Go Down

Topic: Great big shield! (arduino synth) (Read 5 times) previous topic - next topic

andylama

Oh, ok, I think I understand completely.  So each voice can be running through the same wavetable at independent indexes and rates, right?

How did you extrapolate the source wavetable data in the first place?
I make it all up as I go along.

DeFex

k2pek2:

I have been working on this bit by bit over quite a while on breadboards, and with a few home made toner transfer boards.

Then i decided to build a modular synthesizer for my studio with some bought and some DIY modules (there will be a couple more arduino ones as well). and decided to use this as an oscillator, as well as a more traditional analog.

I have bought a few ICs, and other components for it but none of them are very rare or expensive.

This board was made with ExpressPCB. I had 4 of them made, and each one also has 4 header boards (they go between the MUX and the potentiometer boards) and an extra tiny 4 pole filter board which i put there because my friend wants a subwoofer crossover.

The little boards have to be cut off, but i rigged my lathe with a small slitting saw to make accurate cuts.(the one in the pic already has that part removed)

andylama:
That is correct except with modulation, each voice can be playing a different wavetable depending on velocity, envelope, accent, randome, notenumber, Midi clock, and whetever else i can think of.

It is not 4 voice polyphonic (it could be with a different sketch) this version is "4 oscillator monophonic, with 303 type linear glide". it is designed to be a bass voice with a lot of expression available.

The wavetables are arranged in 64 sets of 16 evolving sets, in a simple non modulated voice it could scan from the first wave to the last one in a set as time progresses after a note is played. because there are only 16 waves per set, it can do a bit of semi random (lookup table actually) granular mixing to make the transition smoother and longer. (or deliberately not!)

The wavetables themselves came from various sources. some are home made, some came from PPG wave, avrx, waldorf and wiard, and various other places i could find any :)

andylama

RE: 4 oscillator monophonic:  That would explain why it sounds so rich and fat.  Wonderful!

By any chance, do you have any affiliation with Analogue Haven?

I am so gratified to see someone doing more sophisticated musical applications with the Arduino.  Please keep us posted as this thing develops!

I myself just finished an unconventional synth application with a Mega (nicely polished, but admittedly nowhere near as deeply technical as what you're doing) and will introduce it here as soon as I can get some halfway decent audio/video demos made up, probably next week.

Rock on!
I make it all up as I go along.

DeFex

#8
May 01, 2010, 02:44 am Last Edit: May 01, 2010, 02:47 am by DeFex Reason: 1
Thanks for the positive responses everyone! i wonder if the anti arduino folks at hack a day will say this is "a waste of a microcontroller"

andylama
I think analogue haven would tar and feather me for making this and putting it in a modular synth :)

for anyone who is interested the original code i based the phase accumulator on it is here.

http://adrianfreed.com/content/arduino-sketch-high-frequency-precision-sine-wave-tone-sound-synthesis

a slightly old version of the synth code is here

http://codeviewer.org/view/code:d6d (a few changes since then this was current around the time the youtube video was made.) and its not called "aciduino" its called "scarab"

I have set up the opto isolator MIDI input now, it is working,
i just edited the sketch to serial.print any MIDI it recieves, so I could test it without the rest of the circuit there.

I will just add sections bit by bit and test them. thats one of the reasons why using an arduino is so good, i can modify the code for testing the circuitry.

The next stage to build will be the "pwm envelope filter" which takes PWM outputs to send to the DACs vref, which works as a voltage controlled amplifier. this filter is important to give the sound the right character, too low a frequency and the attack of the notes will be sluggish, too high and there will be a click as the level is suddenly increased.

If you look at "pwm envelope filter" section on the first pic you can see a lot of extra holes, that is because previously i was just using a 1 pole resistor/capacitor filter and some of the pwm noise would escape in to the DACs vref and cause a little noise. If i made the filter too low then the response was sluggish, (1 pole filter just does not cut it!) thats why i went with a proper 4 pole active filter. (this filter is Salen-key Bessel filter in case anyone cares)

I can put some headers on there so i can experiment with different filter frequencies, theoretically the design i did (on Ti filter designer) should give me a fast enough envelope time but i left it open for tweaking. once i am happy i just solder the proper value in next to the header.

DeFex

some construction







Now i am waiting for a part i stupidly forgot to order for the power supply, which i need to test the filter.  :P


Go Up