Hardware wavetable on an arduino
Re: Hardware wavetable on an arduino
Well its an EEPROM so its programmable from the microcontroller, (actually flash is a kind of EEPROM) i got 128k of wavetables on it, some are ones i made myself, some are from the AVR-X synth and some are from Wiard(sp?) modular wavetable osc.
each of the 32 wavetables has 16 waves carefully kept in phase (for mixing) and it completely scannable so you can start the wave playing anywhere in the 16 wave group (and below and above by a switch) and if there is a glitch between the last and first sample it is fixed with a 4 sample slope so there is no click. this is great for the 2 "main" oscillators having a delayed tracking and getting very rich sounds.
The third oscillator is just used for attacks, exra beef for fade in type dnb sounds or a bit of color on the accent it only has an a/d envelope. (but still use any wavetable and be modulated)
now i am working on tweaking the envelopes and modulation matrix, (huge "long" integers rather than floating point, the little chip can handle that and still loop quickly) its amazing how a proper log decay makes things sound A LOT better.
Untill i get the "LCD backpack" i ordered i can not use encoders/menu system so i have 16 knobs multiplexed, and 16 knobs coming in by MIDI(doepfer pocket control). they have pretty much run out because there is a comprehensive modulation matrix(encoder code is working, just no display to show pages).
For now i can modulate the filter frequency with env1, env2, LFO, and velocity
and the frequency of osc 3 with the same things. whan sync is on changing the frequency of osc3 gives a lot of nice timbres. (it does not sound like analog sysnc, more like paradox)
I started out with a little fun project but it has really grown, and is becoming a proper synth. once it is done it will take proud place in my studio.
each of the 32 wavetables has 16 waves carefully kept in phase (for mixing) and it completely scannable so you can start the wave playing anywhere in the 16 wave group (and below and above by a switch) and if there is a glitch between the last and first sample it is fixed with a 4 sample slope so there is no click. this is great for the 2 "main" oscillators having a delayed tracking and getting very rich sounds.
The third oscillator is just used for attacks, exra beef for fade in type dnb sounds or a bit of color on the accent it only has an a/d envelope. (but still use any wavetable and be modulated)
now i am working on tweaking the envelopes and modulation matrix, (huge "long" integers rather than floating point, the little chip can handle that and still loop quickly) its amazing how a proper log decay makes things sound A LOT better.
Untill i get the "LCD backpack" i ordered i can not use encoders/menu system so i have 16 knobs multiplexed, and 16 knobs coming in by MIDI(doepfer pocket control). they have pretty much run out because there is a comprehensive modulation matrix(encoder code is working, just no display to show pages).
For now i can modulate the filter frequency with env1, env2, LFO, and velocity
and the frequency of osc 3 with the same things. whan sync is on changing the frequency of osc3 gives a lot of nice timbres. (it does not sound like analog sysnc, more like paradox)
I started out with a little fun project but it has really grown, and is becoming a proper synth. once it is done it will take proud place in my studio.
Re: Hardware wavetable on an arduino
Do you use the internal EEPROm or an extra unit external to the AVR microcontroller ?
Re: Hardware wavetable on an arduino
the avr flash has to be programmed every time i make a change, witch takes too long, so its external for now. ill probably fill the external one, or even get a larger one for more wavetables. and the avr flash is limited. i will use it for presets.
i looked in to using an sd card but the interface was too slow.
i looked in to using an sd card but the interface was too slow.
Re: Hardware wavetable on an arduino
So it is a 128 kB external EEPROM ?
Do you upgrade the wavatable through MIDI ?
Do you upgrade the wavatable through MIDI ?
Re: Hardware wavetable on an arduino
NME awards!
http://www.nme.com/awards/video/id/1rAw ... oscillator
could be worse for half finished device ;p
http://www.nme.com/awards/video/id/1rAw ... oscillator
could be worse for half finished device ;p
more has been done with less
https://soundcloud.com/at0m-studio
https://soundcloud.com/at0m-studio
Re: Hardware wavetable on an arduino
Well deserved! 

Re: Hardware wavetable on an arduino
Thanks 
@ HUROLURA
actually due to sheer noobishness and stupididty the 256k EEPROM i got was 256k BIT, so i can only put 32 k in there, (8 x 16 waves, 256 bytes each) what i needed was a 1 meg EEPROM to put 128k in. anyways i selected 8 of the wavetables and made a 32k version of my ROM file.
anyways i found some 2 magaBIT winbond flash EEPROMS on ebay very cheap, i will use them, and still have room for another 32 wavetable for a total of 64
the flash could be programmed from the microcontroller, since it does not require different voltage to burn, (through MIDI or USB) but its easier just to put it in the chip programmer and flash it. anyhow if i release a board/kit it will use internal waves for reduced chip count and cost
I found some waldorf waves in a software update for the waldorf wave, they are not progressive though. also i made a few myself once i found out the proper note (well its a note - a certain amount of cents) to record at so i dont have to screw about resampling
after breaking the program and the circuit by changing to external ROM i have gradually been bringing it back to where it was, guess what. i dont like the SSM2044 at all. even with a compensation circuit it gets much quieter when the rez is turned up then when it self oscillates it becomes really loud, and it does not self oscillate evenly. at higher filter frequency it will oscillate much sooner.
I tried putting in a second one, and leaving its rez low, but the volume on the rez one decreases so much you can hardly hear it till it oscillates.
not microcontroller friendly at all, and the example circuits of how it is used in synths are missing major things like how they compensated for that behaviour.

@ HUROLURA
actually due to sheer noobishness and stupididty the 256k EEPROM i got was 256k BIT, so i can only put 32 k in there, (8 x 16 waves, 256 bytes each) what i needed was a 1 meg EEPROM to put 128k in. anyways i selected 8 of the wavetables and made a 32k version of my ROM file.
anyways i found some 2 magaBIT winbond flash EEPROMS on ebay very cheap, i will use them, and still have room for another 32 wavetable for a total of 64
the flash could be programmed from the microcontroller, since it does not require different voltage to burn, (through MIDI or USB) but its easier just to put it in the chip programmer and flash it. anyhow if i release a board/kit it will use internal waves for reduced chip count and cost
I found some waldorf waves in a software update for the waldorf wave, they are not progressive though. also i made a few myself once i found out the proper note (well its a note - a certain amount of cents) to record at so i dont have to screw about resampling
after breaking the program and the circuit by changing to external ROM i have gradually been bringing it back to where it was, guess what. i dont like the SSM2044 at all. even with a compensation circuit it gets much quieter when the rez is turned up then when it self oscillates it becomes really loud, and it does not self oscillate evenly. at higher filter frequency it will oscillate much sooner.
I tried putting in a second one, and leaving its rez low, but the volume on the rez one decreases so much you can hardly hear it till it oscillates.
not microcontroller friendly at all, and the example circuits of how it is used in synths are missing major things like how they compensated for that behaviour.
Re: Hardware wavetable on an arduino
Regarding the SSM2044, the fact that it is not "microcontroller-friendly" is not that much a surprise: it IS an analog component. Maybe some ROM compensation curve control could help in case the beahviour is the same from one chip to the over.
Maybe checking some vintage analog schematics could help:
http://www.electricdruid.net/index.php? ... fo.ssm2044
What is the min and max voltage you apply to the Q control pin (pin 2) ?
Maybe checking some vintage analog schematics could help:
http://www.electricdruid.net/index.php? ... fo.ssm2044
What is the min and max voltage you apply to the Q control pin (pin 2) ?
Re: Hardware wavetable on an arduino
Well i am still adjusting the Q manually with a pot untill i can get it just how i want. (the q is already supposed to be "compensated" with a circuit i got from midibox.com http://www.midibox.org/dokuwiki/doku.php?id=ssm2044_pcb but home made version)
I think part of the problem is, all of those synths had the final envelope after the filter, so they could have some automatic gain control.
and i prefer to have the envelope before the filter, which is something i also do with scope circuits. i prefer the sound that way(and in this case its easier because DACs have a free VCA in them, the vref pin).
I can probably just make the program turn the level down when the q is lower.
but i have started building this as well.
http://yusynth.net/Modular/EN/MOOGVCF/index.html
and the oscillator will be a module as well. It can even get some CV inputs.
I think part of the problem is, all of those synths had the final envelope after the filter, so they could have some automatic gain control.
and i prefer to have the envelope before the filter, which is something i also do with scope circuits. i prefer the sound that way(and in this case its easier because DACs have a free VCA in them, the vref pin).
I can probably just make the program turn the level down when the q is lower.
but i have started building this as well.
http://yusynth.net/Modular/EN/MOOGVCF/index.html
and the oscillator will be a module as well. It can even get some CV inputs.
Re: Hardware wavetable on an arduino
You mean you put the amplification stage before the filter ?
The envelope you are writing about is the VCA enveloppe ?
The envelope you are writing about is the VCA enveloppe ?
Re: Hardware wavetable on an arduino
Yes the VCA is before the filter, each osc has a separate one which also allows mixing their levels. and retaining the bit depth. since its going to be a modular module, ill also have some trigger outputs for analog VCAs (these are PWM outputs filtered and used as the DAC vref)
you can also do that backwards, and feed an analog signal to the vref, and the digital input will modulate the output level. very handy if you dont want to fart about with slow serial protocols like i2c (usually used in digital pots)
you can also do that backwards, and feed an analog signal to the vref, and the digital input will modulate the output level. very handy if you dont want to fart about with slow serial protocols like i2c (usually used in digital pots)
Re: Hardware wavetable on an arduino
Please go on! New experiments like this one, are really formative.
Neutron, you should really participate to some high-end course Assaf does... I mean synthesis through Scope is excellent but applications like that (reserved to a few people I'm not part of) could be interesting...
Neutron, you should really participate to some high-end course Assaf does... I mean synthesis through Scope is excellent but applications like that (reserved to a few people I'm not part of) could be interesting...
Re: Hardware wavetable on an arduino
Cheapest microcontroller way to have control DAC ...Neutron wrote:
ill also have some trigger outputs for analog VCAs (these are PWM outputs filtered and used as the DAC vref)
I just think this story will end up with a new modular hardware interface for Scope merging DSP and vintage analog sound in the most flexible way ...
CheerZ
Re: Hardware wavetable on an arduino

Re: Hardware wavetable on an arduino
Could be nice ...
Re: Hardware wavetable on an arduino
Now that's jaw dropping and drool worthy
Re: Hardware wavetable on an arduino
a little update on making a modular version. I got some synthesizers.com modules and some extra blank panels to put my diode ladder filter on, and this will fit as well 



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





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


Re: Hardware wavetable on an arduino
that looks pretty damn cool, Neutron

tempted to wield the soldering iron, Tom
(ok... almost - I probably couldn't do it even half as neatly)


tempted to wield the soldering iron, Tom
(ok... almost - I probably couldn't do it even half as neatly)
Re: Hardware wavetable on an arduino
serious work, impressive...
Re: Hardware wavetable on an arduino
Thank you!
Its got some company!
now i can start testing with some basic modules in this little frame

when it is finished it will stand up, and have power supply etc. what i made there was just from stuff i had lying about, and the nice oak frame thing someone threw out.
The new version sounds a lot better, the Proper filter for the envelope signal, and proper 4 quadrant multiplying of the DACs still experimenting with the program as well, trying various things based on velocity etc.
Its got some company!
now i can start testing with some basic modules in this little frame

when it is finished it will stand up, and have power supply etc. what i made there was just from stuff i had lying about, and the nice oak frame thing someone threw out.
The new version sounds a lot better, the Proper filter for the envelope signal, and proper 4 quadrant multiplying of the DACs still experimenting with the program as well, trying various things based on velocity etc.