TR-0815 – Nachbau einer TR-808

TR-0815 Finished
Die fertige TR-0815

Die TR-808 ist ein analoger Drumcomputer (mit digitalem Hirn) aus den 80ern des japanischen Musikinstrumenteherstellers Roland®. Viele Musiker lieben den Sound dieser Maschine, skrupellose Besserverdiener und Sammler haben die Preise für das Gerät allerdings mittlerweile in unanständige Regionen getrieben (Stand 05/213: Sofortkaufangebot eines Onlineauktionshauses 3.500 EUR). Nachdem ich die freien Pläne des OpenSource-Nachbauprojektes MB-808 (die irgendwie strukturierter wirkten als die Originalpläne) ausgiebig studiert hatte traute ich mich dann einen selbst einen TR-808-clone zu entwerfen – wenn möglich mit einigen Anpassungen an meinen persönlichen Geschmack. Mein Wunschvorstellung vor Projektbeginn war ungefähr folgende:

  • möglichst simple Bedienung des Step-Sequencers. Für meine Begriffe ist der MB-808-Sequencer etwas überfrachtet (verwirrende Zusatzbuttons für Shift, Alt, Aux, LCD-Display, 5-Taster für Start/Stop/Weiter/Ne doch wieder zurück, pro Track LastStep/Richtung/Loopppunkte … sicher alles tolle Features. Wenn ich Musik mache will ich aber nicht Anleitungen rausholen, das Gerät muss intuitiv zu bedienen sein
  • A, B, AB-Pattern-Funktion, soll heissen: ein Pattern hat 2×16 Schritte die als Pattern A oder B mit jew. 16 (max) Schritten oder abwechselnd nacheinander (32 Schritte) gespielt werden können
  • Swing und Flam
  • Features die über jene des TR-Sequencers hinausgehen: Last step, Zufallspatterns, nach links/rechts einen Schirtt weiterutschen (Bit-Rotating) von Tracks, Midi-dump und Import für Patterns …
  • einen ‚Song‘-Modus brauche ich bei einem Drumcomputer wirklich nicht :)
  • einen möglichst schicken und funktionellen Aufbau im Äusseren wie Inneren
  • original TR-808-Instrumente aber mit erweiterten Funktionen (Mods). z.B. die Snare sollte eine Pitch-Hüllkurve wie die TR-606-Snare bekommen und Noisedecay, Cowbell stimmbar und mit einstellbarem Bandpassfilter …
  • modularer Aufbau der Steckverbindungen (PSU, trigger, accent)
  • Keine Kabel von Platine zu Drehreglern, möglichst alle Interfaceelemente direkt auf die Platine für optimalen Störgeräuschabstand
Hier sind 9 Patterns um das Soundpspektrum und einige Features der TR-0815 zu demonstrieren
TR0815 9Loops
TR-0815 - on plate for development
TR-0815 – Entwicklungsumgebung

Hardware

Zentrale CPU ist ein Atmega32 8bit Microcontroller von Atmel. Die Pattern werden über eine Software TWI in einem 24C512 EEprom gespeichert. Es gibt 4 Bänke mit je 12 Pattern. Die Pattern können auch per Sysex über Midi empfangen und gedumpt werden. Die Taster werden gelesen über 3 x 74HCT165, die LEDs und Trigger über 3 x 74HCT4094.

TR-0815 Top View
TR-0815 Draufsicht

Software / Userinterface

Die Firmware ist in C programmiert. Ich hatte auch mal ein Assemblerprojekt (8-Step-analog Sequencer mit Midi), Assembler ist sehr viel näher an der Funktionsweise einer Prozessors (und daher im Allgemeinen schneller in der Ausführung) aber für meine Begriffe auch sehr viel abstrakter; C liegt mir eher. Derzeit werden 80 % der 32kB verfügbaren Flashroms im Atmega32 verwendet. Das data flashrom (2 kb) für temporäre Variablen wie Instrument-Triggers, Sequencerposition, Midichannel ist zu ca 30% belegt.

TR-0815 - colorcoded interface. Pressing blue or green function button and then one of the 16 patternbuttons calls appropriate function. Tap has some extrafunctions
TR-0815 – farbcodiertes Interface. Wenn man den blauen oder grünen FUNCTION-Button drückt und anschliessend einen der 16 Patternbuttons wird die gewünschte Funktion ausgeführt. TAP hat einige Sonderfunktionen

Hier einige der Hauptmerkmale des Interface:

  • rechts gibt es 3 MODE-Buttons: PATTERN um Bänke und Pattern auszuwählen, MUTE um mit Patternbuttons einzelne Instrumente zu muten und EDIT um Steps zu setzen/zu löschen für Instruments bzw. Submodi wie Abspeichern, Sysex-Dump usw.
  • links gibt es auch 3 Buttons: SELECT INSTRUMENT um ein Instrument für die Stepprogrammierung zu wählen FUNCTION 1 (blau) und FUNCTION 2 (grün). Um eine Funktion auszuführen wie Speichern, Randompattern, Bitshift hält man den Funktionbutton und wählt den passenden Patternbutton
  • echtzeit Drehregler für TEMPO, SWING, FLAM und ACCENT
  • Start/Stop-Button mit Status-LED
  • Jede Funktion wie copy, paste, speichern, Laststep, Patternauswahl kann bei laufendem Sequencer ausgeführt werden. Manchmal wird beim Speichern im laufenden Betrieb ein Step etwas verzögert. Eproms speichern recht langsam und die Daten pro Pattern sind recht umfangreich (32 Triggersteps, Timesignature, 2x Last Step, 2x Mutes, 32 Steps für Flams…)
  • 16 Patternbuttons um Pattern auszuwählen bei gleichzeitiger Anzeige des aktuell Angewählten. Es gibt 4 Bänke à 12 Pattern. 2 oder mehr Pattern einer Bank können ge-chained werden um sie nacheinander im Kreis abzuspielen, dazu muss man bei einfach mehrere Taster gleichzeitig drücken in der Reihenfolge wie sie dann gespielt werden sollen. Die LEDs der gewählten Patterns leuchten, das aktuell gespielte blinkt (oder blinkt das kommende Pattern?)
  • jedes Pattern hat 2 Speicher (A und B) die über einen 3-Stufen-Schalter gewählt werden können. In der Mitte spielen A und B abwechselnd und das Pattern hat (maximal) 32 Steps. Wenn nur A oder B gewählt ist kann das jeweils andere per Druck auf TAP einmalig als Fill In angerufen werden
  • Patterns können von 1 bis 16 Steps jede Länge haben, für A und B unabhängig
  • Patterns A und B sowie Tracks (Instrumente) können per Copy/Paste herumkopiert werden
  • Tracks können während des Betriebs bitrotiert oder randomized werden
  • kurzes oder langes Decay (nur Bassdrum, Cowbell und Digivoice) wird gewählt durch mehrfaches Drücken des entspr. Buttonsund wird angezeigt durch dauerleuchtende oder blinkende LED
  • sehr pratischer ‚Multirecord‘-Mode: kein langwieriges Anwählen einzelner Instrumente. Jeder Patternbutton steht für ein Instrument. In diesem Modus werden die Tastendrücke aller Instrumente quantisiert aufgezeichnet während der Sequencer spielt. TAP löscht Noten wieder
  • Flam ist pro Instrument implementiert, nicht global für alle gleichzeitig
  • Mutes werden pro Pattern abgespeichert und auch separat für A und B. Das Drücken von TAP im MUTE-Mode unmuted alle Stimmen
  • ein beliebiges Pattern kann als das Template für ‚leeres Pattern‘ gesaved werden welches genutzt wird wenn man CLEAR PATTERN wählt
  • rechts gibt es noch zwei 3-Stufen Schalter um die 3 verschiedenen Rausch-Soundquellen (weißes Rauschen, verstimmter 6-fach Rechteckoscillator und Ausgang von Digivoice) auf Clap/Maracas und Hihat/Cymbals zu routen. In Kombination mit den Digivoice-Spekten ergeben sich recht ungewöhnliche Sounds
  • Midisync mit verschiedenen Zeiteinheiten um auf 8th, 16th, Triolen zu synchen
  • Patterns archivierbar über Dump und Empfang per Midi-Sysex

Instrumente

Im Grunde habe ich nur die Stimmen kopiert von den MB-808 Schaltplänen. Im Folgenden die Modifikationen die ich vorgenommen habe.

TR-0815 - Bassdrum and Snaredrumvoice. At bottom the 6 pon connector for Accent, Trigger and Noise sent to the Mainboard
TR-0815 – Bassdrum und Snaredrum-Platine. Unten sieht man den 6 pin Stecker für Accent, Trigger und Weißes Rauschen das von der Snare zum Mainboard geschickt wird (für Clap/Maracas)

Bassdrum

Die berühmte TR808-BD ist eigentlich perfekt, hier gibt es nicht viel zu verbessern oder zu verändern.

  • R170 (470k) wurd getauscht gegen Widerstand (380k) mit einem Trimmer (100k) in Serie zur leichteren Kalibrierung des längstmöglichen Decay
  • ich habe ein analoges Schalter-IC zwischen desn Decaypot und C43 gesetzt um zwischen 2 verschiedenen Decays über den Sequencer schalten zu können. Die BD-Steps des Sequencers haben 3 Möglichkeiten die durch mehrmaliges Drücken des BD-Tasters im Kreis durchgeschaltet werden: OFF mit LED aus, ON mit LED an (Decay regelbar mit Frontplatten-Poti) und ON mit blinkender LED und kurzen, festgelegtem Decay. Natürlich schneidet die kurze eine lange BD ab was sehr dynamisch einsetzbar ist.

Snaredrum

Die Snare besteht aus 3 Elementen: 2 T-Brücken-Oscillatoren und weißem Rauschen das über einen VCA und eine Decay-Hüllkurve geformt wird.

  • Tune für den tieferen Oscillator – R116 ersetzt durch 1M-Pot mit 220k Festwiderstand in Serie. Der tiefere Oszillator kann dan in weiten Grenzen getuned werden. Die 220k verhindern daß der Oszillator in unangenehme EIgenschwingung gerät bei extremer Potieinstellung. Man könnte auch einen 2.2 M-Pot nehmen aber jenseits der 1M passiert nicht viel. Der Oszillator verliert auch naturgemäß etwas an Punch wenn er heruntergepitcht wird
  • Noisefilter – R22 wird ersetzt durch 50k-Pot und 4.7k in Series. Auch hier verhindern die 4.7k unangenehmes Quietschen.
  • Noisedecay – ich habe hier einen 10k-pot parallel zu C37 gesetzt. Es ist nicht die blödste Idee einen Sockel für C37 zu setzen in Form eines Stücks 1-reihiger Stifleiste. So lassen sich ohne Löten verschiedene Kondensatoren ausprobieren ohne Löterei. Sound ist Geschmackssache, einer mags weich, ein anderer brutal. Zu große Werte (>2,2µ) führen dazu daß der Kondensator zu lange braucht um geladen zu werden, wabbelige Attacks sind die Folge
  • TR606-Pitch Hüllkurve für beide Oscillatoren – ich habe hier einfach den simplen TR-606-SD-Aufbau für jeden Oscillator separat aufgebaut und per Poti regelbar gemacht
  • Die TR606-Pitch Envelope – wenn sie per Poti reingedreht wird – tunet den sowieso schon recht hoch getuneten Oscillator 1 noch höher. Ich habe daher C32/C33 (6.8n) geändert in 10n um den Oszillator allgemein tiefer zu tunen. Auch hier: Stiftleisten und man kann selber sehen welche Werte einem an Besten gefallen. Die Werte für Kondensatoren und Widerständen im frequenzgebenden Glied sollten aber schon einigermassen harmonieren sonst wird der Oszillator lasch oder hat zu wenig Decay
  • nach dem Aufbau der Rauscheinheit gemäß Plan war ich mit dem white Noise-Sound gar nicht glücklich. Egal was ich am 20k-pot herumdrehte, das Rauschen klang irgendwie ‚grainy‘, nur nicht weiß und dicht. Ich habe den 100k-Widerstand am OpAmp-Eingang (R280) getauscht gegen einen 5k-Pot, klang wesentlich besser.
TR-0815 - Toms right from schematics without changes
TR-0815 – Toms ohne Änderungen nach Plan gebaut

Low, Mid, High Tom/Conga

Direkt vom Plan gebaut, keine Änderungen.

TR-0815 - Hihat and Cymbal voicecard
TR-0815 – Hihat / Cymbal Voicecard

HiHats / Cymbal
Ich habe je ein Poti für open und closed Hihat gesetzt für die Mittenfrequenz des Bandpassfilter welcher das Signal des 6fach-RechteckOszillators filtert. Cymbal hat auch so einen Bandpass, es erschien mir hier aber nicht so gewinnbringend, die Cymbal klingt einfach klasse so wie sie ist.

  • R365 (open hihat) und R366 (closed hihat) die beide 2.7k haben wurden getauscht gegen einen Festwiderstand (1k) mit einem Potentiometer (10k) in Serie für die beiden o.g. Bandpassfilter. Wie oben: der 1k-Widerstand begrenzt die einstellbare Spanne, wer will schon daß das FIlter aus Versehen anfängt zu qietschen wenn das Poti auf Vollanschlag gedreht wird.
  • der Eingang der Hihats und Cymbal für den Ringing-Rechteckoscillator kann auf dem Hauptboard uimgeschaltet werden um HH/CY alternativ mit weißem Rauschen oder dem Signal der Digivoice gespeist zu werden
TR-0815 - voicecard with maracas and claps. In the meantime the clap has an additional 3-way-switch to select three reverb decaytimes
TR-0815 – Voicecard mit Maracas und Claps. In der Zwischenzeit hat die Claps noch einen 3-fach-Schalter bekommen um die Reverb-Decayzeit umzustellen (original. long. off)

Maracas

  • Bandpassfilter für Maracas durch Austausch von R103 (3.3k) gegen 330 Ohm-Festwiderstand und 10k-pot.
  • Decay für Maracas durch Austausch von R112 (150k) gegen 50k Widerstand und 100k-pot.

Clap

Die Clap hat 2 Komponenten: Reverb (Nachhall) und Bursts (ähhhh … Schläge?). Der Reverb ist gefiltertes weißes Rauschen über einen VCA mit Hüllkurve. Die Bursts sind eine Reihe (3-6) sehr kurzer Impulse die sehr schnell einen VCA öffnen und schließen. Ich fand die Bursts zu laut und je nach Pattern kann es auch interessant klingen NUR den Reverb anteil mithauchen zu lassen, also habe ich hier einen Pot eingesetzt um den Burst-Pegel (bis auf null) regeln zu können.

  • Bandpassfilter für Reverb durch Austausch von R149 (10k) in 1k Widerstand mit 50k-pot
  • Burstlevel über 100k-pot mit einer Seite am Punkt zwischen C92 und R112 und dem Schleider an Masse
  • Offset-pot: Es gibt einen 10k-Trimmer der einen Offset zwischen Masse und -15 Volt auf R233 legt. Hier wird der optimale Arbeitspunkt für Q71 eingestellt. Normalerweise stellt man den einmal ein und gut. In einer seiner Extrempositionen sind die Bursts gemuted. Wenn man ihn nun aufdreht werden die Bursts langsam lauter und verändern dabei aber auch ihren Charakter und klingen teilweise nach Guiro. Wenn man noch weiter dreht klingt es ‚richtig‘ wie die 808-Clap und wenn man NOCH weiter dreht bleibt irgendwann der VCA offen. Irgendwie haben mir die verschiedenen SOunds gefallen und ihch habe diesen Trimmer auf die Frontplatte gelegt.
  • die Rauschquelle ist hier normalerweise weißes Rauschen von der Snare. Auch hier gibt es einen 3-fach-Schalter um wählen zu können: white Noise, Ringinoszillator von HiHats oder Digivoice
  • 3-fach Schalter für Reverb Decay, mit einem poti habe ich das nicht hinbekommen. Der Schalter setzt oder unterbricht die Verbindung von C76 wie in der regulären Schaltung: 47n für normale Reverbdauer, 100n für langes reverb oder – in Mittelposition – kein Kondensator für – genau – KEIN reverb.
TR-0815 - voicecard with cowbell, clave and rim. In contrast to the original TR-808 (where parts are shared by clave&rim) clave and rim are unique separate voices
TR-0815 – voicecard mit Cowbell, Clave and Rim. Im Gegensatz zur echten 808 (bei der sich RIm und Clave einige Bauteile teilen müssen) sind Clave and Rim hier separate Stimmen die auch unabhängig oder gleichzeitig erklingen können

Rimshot

Laut Originalplan teilen sich Rimshot (RS) und Clave (CL) die meisten ihrer Bauteile und man muss sich per Schalter entscheiden welche von beiden man hören möchte. Da ich beide gleich gern habe und genug Triggeroutputs da sind aheb ich beide unabhängig aufgebaut. Mehr Aufwand aber ich finde es lohnt sich.

  • Pitch einstellbar durch Austausch von R72 (1k) gegen 1k Widerstand mit 10k-pot in Serie

Cowbell

Cowbell – sie nutzt 2 der Schmitt-trigger-Rechteckwellenformen (4584N) der hiHat und hat einen recht resonanten Bandpassfilter Eric archer bietet auf seiner Seite eine Menge Infos wie die Cowbell aufgebaut ist und wie sie funktioniert.

  • tune für Oscillator 1 und 2 durch Austausch der calibrationstrimmer gegen normale Pots für die Frontplatte. Natürlich beeinflusst die Einstellung der Tunes auch ein wenig die HiHats.
  • Bandpassfilter frequenzeinstellung durch Austausch von R252 (2.2k) gegen 220 Ohm-Widerstand in Serie mit einem 10k-Poti
  • Umschaltung kurzes/langes Decay wie bei der Bassdrum über einen elektronischen Schalter der vom Sequencer der CPU angesteuert wird. Der Schalter verbindet den Punkt zwischen R244 und C134 entweder wie im Schaltplan mit R259 und C135 oder – für den kurzen Sound – über einen 100k-Pot (regelbar) ohne Kondensator gegen Masse.

Clave

  • Tuning durch Austausch R72 (1k) gegen 220 Ohm Widerstand in Serie mit 10k-pot
TR-0815 - voicecard with simple pulse and a hybrid multifunction voice which can make claps, noisebursts, guiro, cowbells and wrapping squarewave blips
TR-0815 – Voicecard mit simplem Pulse und einer hybriden Multifunktionsstimme die Claps, Guiros, 8bit-Noise und Blips oder Cowbells machen kann

Pulse & DigiVoice
Die beiden Triggeroutput-Shiftregister haben 8 Ausgänge und geben somit 16 Triggersignale aus. Da die 808 nur 13 Instrumente hat und ein Trigger für den Accent draufgeht bleiben noch 2 Trigger übrig. Die darf man nicht ungenutzt lassen, ich musste also noch 2 Voices selbst entwickeln.

Pulse

Das ist simpler kurzer Impuls der durch einen regelbaren Bandpass-filter wie bei der CB geschickt wird mit nachgeschaltetem Lowpass (Tone) wie bei der Bassdrum. Klingt nicht gerade umwerfend, kann aber ab uns zu mal hilfreich sein so eine minimalistische, extrem kurze Voice zu haben.

DigiVoice

Das ist eine hybride Stimme, halb analog, halb digital. Der analoge Teil ist quasi ein Clone der Cowbell mit ihrem simplen VCA der durch eine digitale PWM-Hüllkurve aus dem Digivoice Microprozessor angesteuerrt wird und regelbarem Bandpassfilter.

Der digitale Teil ist ein Atmega8-µController der allerlei Rauschen, Rechteckwellen und Ringmodulatortimbres produziert. Der Audioausgang tönt permanent, auch wenn die Voice nicht getriggert wird um – falls nötig – die HiHats und Clap/Maracas mit Sound zu versorgen. Welche Art Timbre die Stimme produziert hängt vom gewählten Mode und den Stellungen der 4 Potis ab die von den ADCs (Analog to Digital Converters) des Controllers eingelesen werden. Rechts unten ist ein Taster der die Modi nacheinander und am Ende wieder von vorn beginnend auswählt. Der Atmega liest auch den Trigger ein und sendet eine einstellbare analoge Hüllkurve über PWM (Pulse Width Modulation) nach draussen. Auch diese Voice hat – wie Cowbell und Bassdrum – die beiden sequencergesteuerten Möglichkeiten: normales Decay und kurzes Decay. Der kurze Decay stoppt das lange was ziemlich cool und groovy klingen kann.

Die 4 einstellbaren Modi sind:

  • 8-bit Rauschen (eine Art Snaredrum) – mit den Potis einstellbar: Noise Grundfrequenz, Frequency-Pitchbend-Speed, Sample/Hold-Tiefe (bei jedem Trigger eine andere Grundfrequenz) und VCA-Envelope-Decay
  • 8bit Rechteck-Oscillator (eine Art Tom) – mit den Potis einstellbar: Grundfrequenz, Frequency-Pitchbend-Speed, Sample/Hold-Tiefe (bei jedem Trigger eine andere Grundfrequenz) und VCA-Envelope-Decay
  • Cowbell -mit den Potis einstellbar: Grundfrequenz für 2 Rechteck-Oscillatoren (die so etwas wie ringmoduliert werden und strange Timbres produzieren), muted (short) VCA-Decay und unmuted VCA-Decay
  • Clap/Guiro/Maracas – Pot 1: Tune/Timbre, Pot 2: Oscillatormode (Noise, Bent noise, Square, Cowbell), Pot 3: VCA-Envelopemode (Clap,Guiro,Maracas), Pot 4: VCA-Envelope-Decay. Der muted/unmuted Status regelt das Decay oder – wenn im Guiro Modus – stoppt die Lookuptable für die VCA-Envelope auf der Hälfte (so etwas wie: kr,kr,krrrrrr,kr,kr,krrrrrrr)

Case

Falls Du auch noch wissen möchtest wie das Gehäuse entstanden ist findest Du hier ein paar Bilder.