TsacBam - Hybrid 8 voice drumsynth in a cute TasCam Multitrack-housing
I got this TasCam multitracker from the bay in a horrible condition for about 10 €. Because in the making of the TinyRhythm i always ran out of Flash-Rom (512kb on the Tiny13), i wanted to try to make some drumvoices with the Atmega8s which offer 8kb. Second target was to learn how to use a SD-Card for playing back some samples. Third, i wanted to make something which could play by itself, not only with external keyboard.
So there it is - The TsacBam
Here is a mp3-clip with 7 Demoloops in same speed cut together, no compression or effects, dry into computer. I also upped this clip without mp-compression as plain wav-file.
Video:
Technical
All OpAmps are LM324, all µControllers (except hihat and brain) run with internal oscillators and are Atmega 8 (except hihat)...
Specs in detail:
recycled, old tascam multitracker housing, recycling of its electronic parts (cables, jacks, pots, opamps & capacitors)
7 different drumvoices + Accent. Accent-Track can optionaly be routed to a builtin DR55-Clave (=8 voices)
7 drumvoices based on Atmega8 (Atmega32 for HH) Microcontroller with minimal additional electronic parts
6 voices directly synthesized, hihats based on 32 samples on SD-card
individual outputs for BD, SD, HH, TT and Percussion
analog direct access to each of the drumvoices parameters with real pots and switches
miditriggering of voices (channel learnable)
built in sequencer with Roland DR-55 programmingstyle (two button 'Note'- and 'pause'-programming)
realtime OR step note/pause-programming
16th, 8th, 6/8th, 5/4th modes and last step-altering
20 pattern can be saved
optional midisync for internal sequencer
shuffle (10 steps for intensity)
triggeroutputs for most of the voices
less parts as possible
Output is mono
runs with a standard 12Volt/500mA wallwart-psu
quite good noise-signal-ratio - when voiceplaying is over, µControllers are perfectly mute, very few opamps
level-sliders can be cranked up into heavy distortion
a look inside the finished machine
TsacBam frontpanel
Housing
I like the look of these multitrackers although i never used one. I always wanted to make somthing new out of one of these obsolete devices which were replaced by computers or modern digital multitrackers (with MUCH less pots) in newer days. When making an ekectronic musicdevice a lot of work is killed by building the housing and frontpanel. With this, i spared LOTS of time and the result looks quite professional. For my personal satisfaction i consider this as a sort of environmental protection because a not-needed-anymore device is not thrown away but brought to new life, even with its own electronic parts.
So after cleaning the very dirty housing most of the electronic was ripped out. The board with the pots and the other one with the outputjacks was cleaned from most of the electronic parts. I used lots of them for building the drumvoices so they hadn't to leave their home.
The pots were in great condition considering their age of about 20 years, they were neatly dustprotected by the cover. Just the fader (formerly for pitch) was unrepairable dusted and needed a replacement.
this was the look when i got it. i guess englishpeople would say 'disgusting'
... after cleaning it
Brain / Mainboard
... well, 'brain' - it's a small brain :) But it does it's job:
read the 8 buttons from the interface (see to the left)
sends 2 letters on 3 wires to the LED display (shiftregistered)
receives and interprets midimessages
holds the logic for the patternprogramming and playing
saves the internal pattern to its internal eeprom (1kb holds 20 pattern)
sends 8 triggersignals to 8 opamps
The mainboard also holds 3 drumvoices which are described below. The whole unit runs unipolar on +5 V (µControllers) and +10 V (OpAmps).
The 4 sections colorcoded: brain, BD, Toms and Snare
userinterface for brain
mainboard
other side
Bassdrum
The µC outputs 2 voltages by PWM. They are both lowpassed to get rid of the carrierfrequency. One Voltage is the audiooutput (is also amplified), the other one drives a very simple and shitty sounding VCA i borrowed from the Roland DR-110. It works well except that the diode begins to clip the audio at lower levels. The audio sounds somewhat grainy in the decaytime but there is enough 'clean' sounding gear so i decided to like, at least for its simplicity.
The heart of the BD is based on the frequency / wavetable-avancing-idea of the brilliant 'arduino piano synth', so my adapted code for the bassdrum is open and can be grabbed to the right. The noiseparts in the code can be deleted, it is to supply the Snare which couldnt make its own noise anymore due to speed-reasons..
I wanted two toms, not just one. They both come from ONE µC but can be used independantly. The solution was to output both toms-audiosignals through the PWM-outputs and to just trigger two external analog envelopes for steering the VCAs. To be able to alter the decay i replaced the decay-pots with 2 LDRs (resistors which alter their value by light). A simple third (software-)PWM reads the decaypot through ADC, sets the bightness of the led and let the toms be independantly triggered with independant envelopes from one µC.
see above on mainboard
the 2 light dependant resistors set the decay for the two toms. they are shyned at by a LED which's brightness is driven by PWM
schematics:
HiHats
One maintarget of this project was learning how to use SD-cards for playing audiosamples. To start this from scratch would take to much time, others already made libraries for this and they made it much better than i could. I just wanted to get an insight and try it myself. The first try with an Atmega8 failed. It only has 1kb of RAM and i didnt get it to work. With an Atmega32 which offers 2kb everything worked fine. I used the following ingedients:
Because the potboard of the tascam offered only pots with 5k and 50k i had to change some values in the schematic. Another enoying thing was, the sd-card reads only fast enough when driven through SPI-hardware interface (ca. 4x faster than software - according to the forum). but the SPI is also needed to program the controller and nothing works when card AND programmer share cables and both want to talk to the controller. I spent the card a 6 pin-jack and always changed the cables for 'programming - trying out - programming - trying out...' Next time i will add a hardwareswitch or some analog switch-ICs (4066 aso.)
First test showed that the internal oscillator of max. 8 MhZ was to slow, i had to add an external 16 MHz-crystal.
After all was set, i realized all samples start to late, the hihats laged behind. This came from the fact that on each sampling-start the card had to lookup through the fat system from which block to start reading. This took to much time. I solved this by reading all startblocks and samplelengths in variables on startup. When playback is triggered, the samples now are read directly through the mmc-filesystem and not with the (above sitting and slower) fatsystem. After that, the timing was right.
No opencode (yet) for this. I plan two more projects with sampling-mangling through direct pot-interface, maybe something commercial.
____________samplerate, samplecount
Samples are all 8bit, 22kHz, 16 sets, each with Open- and Closed-sample. There could be more but i choose the desired sampleset with a pot and it gets difficult to select the right set when there are to muc.
The 3-position-switch beside the volumefader sets 3 modes
oh-trigger plays oh, ch-trigger plays ch
oh-trigger plays oh, ch-trigger plays same sample as oh
oh-trigger plays oh in reverse, ch-trigger plays ch
____________analog part
The analog part is borrowed from the TR-909: an analogue envelope and a simple transistor vca which sounds MUCH better than this crappy diode-vca. But i already had built all the other voices, to late to swap to this version. Maybe i should build a second revision of this mashine... hmmmm
Snare
Well i must admit the snare is not the coolest voice. On the potboard of the tascam there were some opamps. I wanted to use them for simple bandpass-filtering the snare. It works and sounds quite interesting but it somehow takes the power out of the tonal parts of the snare.
___________signalflow
The µC gives out two audiosignals through PWM for the 2 tonal parts of the snare (like the 909snare does). With a switch one can choose '1 waveform, 2 with narrow frequencies resulting in a kind of chorus and wide frequencies like on the 909 snare'. The waves are mixed and sent to the 'mix'-pot which blends between noise and the tonal part. This signal runs through the VCA (same as BD) which is driven by an analog envelope.
____________tone-wrapping
The tone-part of the snare can be bended up and down. Another tripleswitch sets the speed to slow, fast and very fast. Now when the program-value of the frequency gets below 0 or to high, it 'wraps' around and appears on the other side of the span. resulting in thiese blip-blip-blip-sounds. I used a switch on the panel to choose if this wrapping should occur or if the snaretone should stay at its upper or lower edge.
see above on mainboard
schematic for extremely simple BPF
audio demo of BPF
Percussion / Clave / Accent-unit
__________________clave
Now the clave is just to have kind of audio feedback when programmming pauses, when a note is programmed, the appr. voice will be heard. I added a switch to let the clave also sound on accents when playing.
__________________accent
The very simple accent unit is taken from the Roland dr-110 schemes.
_________________percussion
The Percussion-voice is the same scheme as the BD: Audio and envelope-voltages through PWM - shitty and simple diaode VCA. I wanted to try out if it works to feed the VCA with different tables conaining other envelopes than just the typical decaying drumenvelope. I also implemented some 'bursted Clap' and a guiro-type shape. For audiosource i implemented some noise (clap), ringing-oscillators (Cymbal) and fm-type aliasing-things (maracas) resuting in about 7 or 8 different sounds one can choose with a 'mode'-pot. The other pots set the readout-speed of the envelopetable (decay) and the readoutspeed of the voicetable (tune). The result does not sound as cool as the text implies. But it's ok :)
The board with the percussionvoice, the analog DR-55- clave and the DR-110 Accent-unit