|
Universal module bus system
It's very helpful to have a standardized interface for the individual drum-instruments. I decided to use a 6-pin-jack. It sends mass, 5V, 9V and the triggersignal to the module and the module sends back the audio signal. This way all the instrument modules are interchangable. Every new module can easily be added or removed.
|
|
|
Story about the Digital to Analog converters
The controller only knows bits, means 1 and 0. Drums are struck with different power -> we need to convert the digitaldata (midi-velocity-data) into different voltagelevels. Thats what the DAC makes.
At first i wanted to use a single DAC for the trigger-height and distribute it's output to the 8 channels with a 4051 'digitally adressable rotary switch'. There are also single chips which already contain 8 DACs with separate outputs. But i dont have a source here in germany to get them and they seem to be quite expensive (~30 €).
A problem arising from my first plan is the timing. Each trigger had to wait the trigger before to finish, until it could have been distributed through the 4051. With 4 drumvoices on one beat this would not be as tight as i wanted. Interesting: on reverse-engeneering some industry-hardware i stumbled nevertheless over this imperfect type of Midi/Trigger-DAC-Management :)
On trying to build a standard R-2R-DAC i had the idea of trying not ONE DAC with 8 bit and distribute it over the 4051 but building EIGHT parallel DACs each with 2 bit resolution. Of course thats quite less versatile because it only knows 4 different levels in contrast to the 256 levels of the 8bit DAC but for a simple drummer thats enought for me. The famour roland-drummies even had only ONE aceent-track for ALL drumvoices together and few complained about that.
With 8 individual DACs of 2 bit, we of course need to occupy 16 pins of the atmega8 instead of only 8 (for DAC) + 3 (for 4051) = 11. But i had left enougth unused. The 2 bit dac consists of simply 2 resistors (10k and 4.7 k) which connect to the noninverting input of the lm324. The inverting is coupled back to output. Important: to overcome the loss of level i powered the lm324 with 9 volt. As a result i got 3 clearly defined, buffered velocitylevels, the highest about 4.9 volt - with just 2 resistors and a single opamp per channel.
BTW... the source, which inspired me to convert the triggersigals in parallel instead of one after the other was the excellent
GPL license midi-trigger-interface of Vaco Loco .
|
breadboarded simple dac

The satisfying result of the dac on the oscar. For developing i just sent all 4 possible combinations (00, 01, 10, 11) one after the other to the 2 controllerpins. The simple-dac makes voltages of different power out of it.

Simple schematic of my 2bit-DAC, opamp should be LM324, works better with unipolar voltagesupply. The LM324 wants 9 Volt here. If you only got 5 Volt just put another 10k in series to the 4,7k-resistor, also worked great in my tests. Downside of powering opamp with only 5V: the highest triggerlevel you archive will be below 3 Volt :(
|