Go Down

Topic: Audio Synth (Read 3096 times) previous topic - next topic

harish017

Hello Guys,

I am new to arduino, looking for some guidance to initiate my new project. This is what i am planning to build.

LFO-->DCO-->MIXER (1.FM 2.RING MODULATOR 3.PWM )-->ENVELOPE (ADSR)-->FILTER (1.LP,2.HP,3.BP)-->(FX) 1.DELAY 2.REVERB-->AMP(OUT).

I have bought my new arduino UNO r3, which I am going to intergrate all with this. My question is, can if I run programs for Oscillators, Mixers, Filters and FX altogether in Arduino UNO R3 single board??. If it is possible, then i can start working on it.

So guys your support is much needed, perhaps this is my dream to build a Digital Firmware synth

Cheers,

Harish

DVDdoug

Quote
I have bought my new arduino UNO r3, which I am going to intergrate all with this. My question is, can if I run programs for Oscillators, Mixers, Filters and FX altogether in Arduino UNO R3 single board??. If it is possible, then i can start working on it.
If you're thinking about doing all of that in software, no.  You can do some simple square wave or rectangle wave tones, but you're not going to get anything like a real synthesizer. 

As a master controller for all of that stuff, maybe...   The Arduino Uno has 6 analog inputs and digital 14 I/O pins, and 6 of those I/O pins can be used for PWM output.   There are no true-analog outputs.   If that's enough to control your oscillators & filters, etc., you can build your synth around the Uno.  I wouldn't recommend any DSP directly with the arduino.  Do you need keyboard input? 

Grumpy_Mike

While you can do a lot with a Uno, like wave table synthesis you are limited as to what can be done at once.
A couple of tone generators or a ring modulator is fine but not all that stuff you want.
With a bit of extra hardware you can make instruments like this:-
SpoonDuino

However for lots of stuff you need a much more powerful processor like the Due or the Teensy. There is an audio library with a web based graphics front end here:-
http://forum.arduino.cc/index.php?topic=360126

pjrc

If you're thinking about doing all of that in software, no.  You can do some simple square wave or rectangle wave tones, but you're not going to get anything like a real synthesizer.
Indeed 8 bit AVR is limited, especially for delay-based effects (chorus, flange, reverb, etc), but you can actually get quite a lot of waveform synthesis capability.  The best synth library (for 8 bit AVR) is Mozzi.

http://sensorium.github.io/Mozzi/

So much more is possible on 32 bit chips.  I've spent the last couple years working on a more advanced audio library for Teensy.  That doesn't help you for Uno, other than knowing more exists if you upgrade to better hardware.  I'm curious to hear where you're going with this project, but I must admit my focus is developing more advanced synthesis capabilities on 32 bit ARM.

For the 8 bit AVR board you already have, definitely check out Mozzi.


harish017

If you're thinking about doing all of that in software, no.  You can do some simple square wave or rectangle wave tones, but you're not going to get anything like a real synthesizer. 

As a master controller for all of that stuff, maybe...   The Arduino Uno has 6 analog inputs and digital 14 I/O pins, and 6 of those I/O pins can be used for PWM output.   There are no true-analog outputs.   If that's enough to control your oscillators & filters, etc., you can build your synth around the Uno.  I wouldn't recommend any DSP directly with the arduino.  Do you need keyboard input? 

Yes, I require a MIDI input to drive my arduino synth

harish017

While you can do a lot with a Uno, like wave table synthesis you are limited as to what can be done at once.
A couple of tone generators or a ring modulator is fine but not all that stuff you want.
With a bit of extra hardware you can make instruments like this:-
SpoonDuino

However for lots of stuff you need a much more powerful processor like the Due or the Teensy. There is an audio library with a web based graphics front end here:-
http://forum.arduino.cc/index.php?topic=360126
Hey, thanks for the tip, So can i go ahead buying the extra hardware like the one you mentioned "due" or "teensy" to proceed with my build up or any other recommendation of hardware tags i can purchase?. If so please.

Thank you

Grumpy_Mike

The MIDI is the least of your problems, that is simple. That is if you use MIDI from the normal MIDI interface. You can't use a keyboard with a MIDI out very easily.

It is the other stuff that will consume the CPU time and fill the memory.

You can add extra memory on a Uno but it will be paged memory which is fine for what you want. I would also recommend that you add an A/D chip. The MCP4921 is a 12 bit A/D which will give you some scope for mixing more than one signal together.

Quote
So can i go ahead buying the extra hardware like the one you mentioned "due" or "teensy"
Yes, have a look at that link for the teensey although that is more signal processing than synthesizing. They both have inbuilt D/A and much more memory.

harish017

Indeed 8 bit AVR is limited, especially for delay-based effects (chorus, flange, reverb, etc), but you can actually get quite a lot of waveform synthesis capability.  The best synth library (for 8 bit AVR) is Mozzi.

http://sensorium.github.io/Mozzi/

So much more is possible on 32 bit chips.  I've spent the last couple years working on a more advanced audio library for Teensy.  That doesn't help you for Uno, other than knowing more exists if you upgrade to better hardware.  I'm curious to hear where you're going with this project, but I must admit my focus is developing more advanced synthesis capabilities on 32 bit ARM.

For the 8 bit AVR board you already have, definitely check out Mozzi.


Yes, I intend to bring new features that requires some upgraded hardware interfaced to arduino or something that runs solo without the arduino looking into its limitations will prompt my decision now. However, u can suggest me hardware names that i can seriously work on as i am so intensional to bring forward my ideas to light can be big a concern. My new features that i want to include: Detuned Hypersaw oscillators, Granular lookup tables, Formant Filters and Phase Modulation. This is what i got from one of my  friend, its an open source board but not fully developed.

http://www.tolaemon.com/scorea/

Grumpy_Mike

Quote
My new features that i want to include: ......
Way over the top for an Arduino.

Quote
This is what i got from one of my  friend, its an open source board but not fully developed.
The processor in that is more advanced than any in the Arduino range. Go with that board.

pjrc

However, u can suggest me hardware names that i can seriously work on as i am so intensional to bring forward my ideas to light can be big a concern.
Well, of course I believe you should give Teensy 3.2 a try!  My opinion is biased, since I'm the guy who designed Teensy and the Teensy Audio Library.

Quote
My new features that i want to include: Detuned Hypersaw oscillators, Granular lookup tables, Formant Filters and Phase Modulation.
As you can see in the tutorial video, and also in the design tool (on the left, scroll down to the synth, filter, and effects sections), the library already has most of the building blocks (oscillators, filters, delay effects) for the stuff you want to do.

You'll probably need to add your own objects to the library for specific synthesis, like specialized granules.  But the software infrastructure is all there, and many similar objects already exist, so you only have to write the code which fills small arrays with the samples you synthesize and just transmit the buffer to the rest of the library.  The hard parts like efficiently dealing with data transfer to hardware, and just all the work of creating all the other library pieces like mixers, sample player, etc is already done.


Go with that board.
That Synth Core A does look pretty amazing.  But does it have working software?  Does the software support efficient DMA-based data movement?  (which allows the CPU to remain mostly free to actually synthesize samples)

I can tell you from the last 2 years of experience that the software part is *FAR* more work than creating the hardware.  If you want to spend all your time working on that difficult low-level driver stuff, by all means jump onto a project that's only at the initial hardware stage.  But if you want to spend your effort doing synthesis, look for a platform which has working hardware and software infrastructure, or at least good quality drivers to move your samples to the DAC chip.

You might also look into whether Synth Core A is still active.  The last update on its news page was in 2011.

Grumpy_Mike

Quote
That Synth Core A does look pretty amazing.  But does it have working software? ....
I wouldn't disagree with any of that.
I don't think the OP knows what he is asking of a processor.

harish017

Way over the top for an Arduino.
The processor in that is more advanced than any in the Arduino range. Go with that board.
Sure,

I will buy Teensy and start my project with it. Later i can see if i can add more DSP

harish017

Well, of course I believe you should give Teensy 3.2 a try!  My opinion is biased, since I'm the guy who designed Teensy and the Teensy Audio Library.

As you can see in the tutorial video, and also in the design tool (on the left, scroll down to the synth, filter, and effects sections), the library already has most of the building blocks (oscillators, filters, delay effects) for the stuff you want to do.

You'll probably need to add your own objects to the library for specific synthesis, like specialized granules.  But the software infrastructure is all there, and many similar objects already exist, so you only have to write the code which fills small arrays with the samples you synthesize and just transmit the buffer to the rest of the library.  The hard parts like efficiently dealing with data transfer to hardware, and just all the work of creating all the other library pieces like mixers, sample player, etc is already done.


That Synth Core A does look pretty amazing.  But does it have working software?  Does the software support efficient DMA-based data movement?  (which allows the CPU to remain mostly free to actually synthesize samples)

I can tell you from the last 2 years of experience that the software part is *FAR* more work than creating the hardware.  If you want to spend all your time working on that difficult low-level driver stuff, by all means jump onto a project that's only at the initial hardware stage.  But if you want to spend your effort doing synthesis, look for a platform which has working hardware and software infrastructure, or at least good quality drivers to move your samples to the DAC chip.

You might also look into whether Synth Core A is still active.  The last update on its news page was in 2011.

No unfortunately, I couldn't contact the developer. I suppose they would have stopped the project or moved into another domain. If I contact them, will let you know and I will try insisting them to release a firmware version with synth core. so that, it will be a great advantage for all developers to work on advanced DSP.

Regarding Teensy 3.2, I do want to buy your hardware to initiate my new project. But, I dont have a VISA card active with money.

So, can u post your hardware on amazon.in (AMAZON INDIA) with cash on delivery options. Last stocks on amazon.in (AMAZON INDIA) on teensy got outdated. Please do post me when your done with it and do link me so that i can do the purchase immediately.

Cheers,

Harish


harish017

I wouldn't disagree with any of that.
I don't think the OP knows what he is asking of a processor.
Yes,

Actually I want to implement synthesis of wave forms by writing a code and feeding into the chip rather than building a hardware. Suppose its hard to stack 7-8 Detuned saw oscillators and processing each unit separately which is time consuming. So, I came up with this idea of programming just for the saw oscillators, Filters and FX. The remaining units we can insert different chips like for example PWM with 555/556 timer.

Grumpy_Mike

I don't think you understand my English.

You know what to do but you have no idea about the processing resource you will need to do it.

Go Up