‘TsacBam’ – Hybrider 8 stimmiger Drumcomputer

Stereopings TsacBam - 8 voice hybrid Drumcomputer and Drumsynthesizer
Stereopings TsacBam – 8 stimmiger hybrider Drumcomputer und Drumsynthesizer

Ich muss zugeben daß dieses Projekt nicht ganz so optimal herausgekommen ist wie ich mir das gewünscht hätte. Das Teil funktioniert, hat aber seine Schattenseiten. Es klingt einfach furchtbar, das Innenleben ist ein Chaos, die Hihat hat bugs … Wenigstens habe ich eine Menge dabei gelernt, das ist es ja eigentlich was zählt. Also bitte die folgende Beschreibung nicht allzu ernst nehmen.

Den TasCam Multitracker habe ich in miserblem Zustand für ca. 10 € bei ebay erstanden. Nachdem ich bei der Entwicklung des TinyRhythm immer wiedr an die Grenzen des Flash-Rom (512kb beim Tiny13) gelangte wollte ich hier ein wenig mit dem atmega8 experimentieren der 8kb bietet. Zweites Ziel war etwas mit einer SD-Card und samples zu entwickeln. Drittes Ziel war, etwas zu bauen was von selber tönen konnte, auch ohne Midinoten. hier ist er also – der TsacBam.

Zur Einstimmung ein mp3-clip mit 7 Demoloops in derselben Geschwindigkeit zusammengeschnitten, keine Kompression, keine Effekte, direkt in den Computer.

Stereopings TsacBam - inside
Stereopings TsacBam – Innenleben

Technisches

Alle OpAmps sind LM324, alle µController (ausser Hihat und Brain) laufen mit internen Oszillatoren und sind Atmega8 (ausser hihat)

  • wiederverwertetes, altes Tascam Multitracker Gehäuse, es wurde auch viel vom Innenleben verwertet (Kabel, Stecker, Potis, Opamps, Kondensatoren
  • 7 verschiedene Drumvoices + Accent. Der Accent-Track kann optional geroutet werden auf eine DR55-Clave (=das ist dann die 8.te voice)
  • 7 drumvoices basieren auf einem Atmega8 (Atmega32 for HH) Microcontroller mit möglichst wenigen zusätzlichen Bauteilen
  • 6 voices werden synthetisiert, Hihats basieren auf 32 samples von SD-card
  • Einzelausgänge für BD, SD, HH, TT und Percussion
  • direkter Zugriff auf alle Synthparameter durch Drehregler und Schalter
  • Voices können per Midi getriggert werden (channel learnable)
  • eingebauter Patternsequencer im Roland DR-55 Programmierstil (sequentielle ‚Note‘- und ‚Pause‘-Programmierung über 2 Tasten)
  • Echtzeit ODER Step-programming
  • 16th, 8th, 6/8th, 5/4th Modi und last step-Funktion
  • 20 Patterns speicherbar
  • optionaler Midisync für internen Sequencer
  • Shuffle :) (10 Intensätsstufen)
  • Triggeroutputs für die meisten Voices
  • so wenig Bauteile wie möglich
  • Output ist Mono
  • Betrieb mit handelsüblichem 12Volt/500mA Netzteil
  • recht guter Geräuschspannungsabstand weil halbdigital
  • level-sliders können in Verzerrung gefahren werden

Gehäuse

Ich mag den Look dieser alten Multitracker und wolte sachon immer mal etwas neues reinbauen in so ein altes Teil. Bei der Geräteentwicklung geht auch immer recht viel Zeit geht für Gehäusebau drauf, die habe ich mir hier gespart. Irgendwie ist es ja auch eine Art Umweltschutz und Recycling aus einem Haufen Schrott etwas neues Nützliches zu bauen. Auch die Bauteile wurden und werden verwurstet. Der Nachteil ist halt daß Potis und Fader auch schon recht alt sind. In diesem Fall waren sie aber durch die Gehäusekonstruktion sehr gut geschützt und in bemerkenswert gutem, Zustand, ausser dem Pitch-Fader, der war komplett durch.

Tsacbam_mainboard_top_noColors

Brain (Zentralgehirn) / Mainboard

Was macht das Zentralgehirn denn eigentlich so den ganzen Tag lang:

  • liest den Zustand der 8 Buttons des Bedienpanels
  • schickt 2 codierte Buchstaben über 3 Leitungen zum LED display mit seinen Shiftregistern
  • empfängt und interpretiert Midinoten und Clock
  • kontrolliert die Logik für Programmierung und Pattern abspielen
  • speichert Pattern ins hauseigene EPROM (1kb mit Platz für 20 Pattern)
  • schickt 8 Triggersignale zu 8 Opamps

Auf dem Mainnboard sind auch 3 Drumvoices untergebracht.

Bassdrum

Der µController schickt 2 Spannungen über PWM (Pulsweitenmodulation) nach draussen. Beide werden gelowpassed um die Trägerfrequenz loszuwerden, ganz simpel über je einen Kondensator und einen Opamp. Eine Spannung ist der Audioausgang, die andere steuert einen gräßlich klingenden VCA an dessen SChaltung ich mir vom DR-110 geborgt habe Es funktioniert ganz gut, nur fängt die Diode an zu zerren wenn der Audiopegel sehr leise wird. Daher ist der Sound der Bassdrum in der hinteren Decayphase etwas ‚grainy‘. Da es allerdings genug sauber klingende Geräte gibt habe ich beschlossen daß das so ok geht.

Stereopings TsacBam - 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
Stereopings TsacBam – 2 lichtempfindliche Widerstände regeln das Decay der beiden Toms. Sie werden beschienen von einer LED die per PWM vom µController angesteuert wird

TomToms

Ich wollte 2 Toms, nicht nur eine. Beide kommen aus EINEM µController, können aber unabhängig angesprochen werden. Die Lösung war, die Audiosignale der beiden Toms per PWM rauszuschicken und über simple Trigger analoge Hüllkurven anzusteuern die die VCAs regeln. Um das Decay für beide Toms regelbar machen zu können lese ich das Decay-Poti per ADC ein, regele die Helligkeit einer LED über eine simple (Software-)PWM und kann die Toms so mit unabhängigen Hüllkurven ansteuern.

Stereopings TsacBam - Hihatboard
Stereopings TsacBam – Hihatboard

HiHats

Ein Hauptziel des Projektes war etwas über SD-Cards und Sampleplaying zu lernen. Von Null aus alles selber zu entwickeln würde nicht nur ewig dauern, ich könnte es auch schlicht fachlich nicht. Für so ewas gibt es Libraries die von Leuten entwickelt wurden die so etwas besser können. Der erste Versuch mit einem Atmega8 schlug fehl weil er nur 1kb RAM hat, 2KB sollten es schon sein. Mit dem Atmega32 gings dann besser. Ich habe folgende Zutaten verwendet:

Weil meine Tascam-Büchse leider nur Potis bietet mit 5k oder 50k musste ich am Schaltplan ein paar Werte ändern. Ein anderes Problem war, daß SD-Karten am schnellsten über den Hardware-SPI-Bus angesprochen werden können. Der wird aber blöderweise auch zum InSystemProgrammieren genutzt und wenn das Programmierkabel UND die Karte am selben Bus hängen klappt gar nichts mehr. Also musste ich immer die Kabel tauschen – Programmieren, umstecken, sehen obs geht – Programmieren, umstecken, sehen obs geht … Beim nächsten Mal werde ich ein Analog Schalter-IC (4066) dazwischen hängen.

Nächstes Problem: der intere Oszillator geht nur bis 8 MHz was zu langsam war. Also musste ein externes 16 MHz-Quartz dran. Nachdem nun endlich alles funtkionierte stellte ich fest daß die HiHat den anderen Voices hinterherhinkt. Das lag daran daß die Hihat jedesmal in der Fat der Karte nachsehen musste wo denn die Startposition fürs Lesen des gewünschten Samples liegt, und das dauert nunmal ein paar Millisekunden. Das lies sich beheben indem ich beim Startup alle Startadressen in Variablen gelesen habe und direkt über das MMC-Filesystem einlese und nicht mehr über das (darüber liegende) Fat-Filesystem.

____________Samplerate und Anzahl

Die Samples sind alle 8bit, 22kHz, 16 sets, jeweils Open- und Closed-Sample. Es würden mehr auf die Karte passen aber ich wähle das Sample mit einem Drehregler, das kann dann zu Springen des ausgewählten Samples führen wenn man zu viele Samples auf den Drehradius legt.

Der 3-Positionen-Schieberegler neben dem Volumefader wählte einen von 3 Modi

oh-trigger spielt oh, ch-trigger spielt ch
oh-trigger spielt oh, ch-trigger spielt selbes Sample wie oh
oh-trigger spielt oh in reverse, ch-trigger spielt ch

____________analoger Teil

Der analoge Teil der hihat ist übernommen von der TR-909: eine analoge Hüllkurve und ein einfacher Transistor vca die wesentlich besser klingen als dieser üble Dioden-VCA aus der Bassdrum. Mittlerweile waren die anderen Voices aber alle schon fertig, zu spät alles umzulöten.

Snare

Ich muss zugeben die Sanre ist nicht gerade das beste Instrument. Auf dem Potiboard des Tascam waren einige OpAmps die ich gerne verwenden wollte. um einen simplen Bandpass für die Snare zu bauen. Er funktioniert und klingt ganz nett aber irgendwie saugt er den Punch aus der Snare.

___________Signalweg

Der µC sendet zwei tonale Audiosignale über PWM nach draussen. Mit einem Schalter kann man wählen ‚1 Oszillator, 2 Oszillatoren mit ähnlicher Frequenz für leicht Schwebungen oder beide Osziollatoren weiter auseinander von der Frequenz‘. Die Signale werden gemischt und zum ‚mix‘-Poti geschickt der zwischen dem tonalen Part und Rauschen fadet. Das Signal durchläuft denselben Horror-VCA wie die BD und wird durch eine analoge Hüllkurve angesteuert.

____________Tone-wrapping

Die Frequenz des Oszillatorparts der Snare kann per Softwarehüllkurve auf und ab ge-bendet werden. EIn weiterer 3fach-Schalter setzt die Geschwindigkeit dieser Bend-Hüllkurve. Wenn nun der interne Parameter für die Snare-Oszillatorfrequenz unter 0 geht oder über 255, schuppt der Wert auf die andere Seite (also auf 255 bzw. auf 0) und bendet dort einfach weiter was dann wie diese blip-blip-blip Computerspielesounds klingt. Durch einen Schalter kann man wählen ob der Oszillator wrappen oder an seine Grenze stehen bleiben soll

Stereopings TsacBam - voiceboard with Rimshot, Accentunit and Percussionvoice
Stereopings TsacBam – Voiceboard mit Clave, Accenteinheit und Percussionvoice

Percussion

Die Percussionvoice basiert auf dem selben Schaltplan wie die BD: Ausio und Hüllkurve über PWM steuert einen grausigen Dioden-VCA. hier wird der VCA nicht mit der typischen Decay-Drumhüllkurve gefüttert sondern mit allerlei Bursts, Claps, Guirokurven usw. Als Audioquelle programmierte ich dann einige Noises (Clap), verstimmte Rechteckoszillatoren (Cambal) und FM-Aliasing (Maracas), am Ende hatte ich 7 oder 8 verschiedene Sounds die man mit dem „Mode“-Poti auswählen kann. Die anderen Potis setzen die Abspielgeschwindigkeit der Envelope-Lookuptable und der Voice. Das Ergebnis ist nicht ganz so cool wie der Text glauben macht aber es ist ok.

Clave

Die Clave habe ich nur reingebaut um beim Realtime-Programmieren ein akustisches Feedback zu haben. Es gibt einen Schalter mit dem man den Accent-Track auf den Clave schicken kann.

Accent

Die simple Accent-Einheit der Roland© DR-110.

Hier zwei Videos die ich mal zu youtUBe hochgeladen habe:

Demosong zusammen mit anderen Synths

6 Minuten Knöpfchendrehen