Drumtrigger


Drumtriggger

Drumtrigger ist ein Konverter, der Triggerimpulse von Drumpads in MIDI-Daten umwandelt.
Aufmerksam geworden durch Projekte wie edrum oder megadrum stellte sich bei mir ca. 2008 das Gefühl "das will ich auch" ein. Da ich zu der Zeit ohnehin nach einem Übungsprojekt für die Programmierung der Microchip PIC Controller war, war es schnell beschlossene Sache, ein solches Gerät von Grund auf selbst zu entwickeln.
Da ein konventionelles Schlagzeug vorhanden ist (und ich sehr tolerante Nachbarn habe) brauchte ich allerdings kein vollwertiges elektronisches Schlagzeug. Drumtrigger wurde daher von Anfang an nur als 4-kanaliges System entworfen, um zusätzlich zum konventionellen Drumset Zugriff auf ein paar elektronisch erzeugte Effekte / Sounds zu haben.
Drumtrigger selber erzeugt dabei allerdings keine Sounds/Töne, sondern hat lediglich die Aufgabe, die Hits der Drumsticks auf entsprechende Drumpads auszuwerten und in eine geeignete MIDI-Nachricht umzuwandeln. Diese Nachricht wird an einen Computer oder einen geeigneten Expander weitergeleitet, der dann den eigentlichen Sound produziert.

Das Projekt hat sich aus zeitlichen Gründen über mehrere Jahre hingezogen, herausgekommen ist letztlich ein komplettes System incl. Elektronik, Eigenbau-Pads und ein dazu passendes Rack. Die Tonerzeugung übernimmt in meinem Fall ein Apple Powermac mit der Software Garageband.
Dieser Artikel soll einen grundsätzlichen Überblick über das System vermitteln und sollte einen versierten Bastler in die Lage versetzen, ein solches System nachzubauen. Gerade bei der Elektronik stelle ich die kompletten Schaltpläne, Platinenlayouts und Software für den verwendeten Microcontroller zur Verfügung. Die Mechanik (also Gehäuse, Pads usw.) kann und sollte nur als Anregung dienen und kann den eigenen Vorstellungen und Ansprüchen angepasst werden. - So spricht z.B. auch nichts dagegen, ggf. schon vorhandene kommerzielle Pads oder Rackmounts zu verwenden, was beim Bau erheblich Zeit einsparen hilft.


Elektronik

PlatinePlatine

Die Elektronik lässt sich grob in einen analogen und einen digitalen Teil untergliedern. Der analoge Teil wurde weitgehend unverändert aus dem edrum Projekt übernommen (thanks Admir!) und hat die Aufgabe, den Pegel der von den Drumpads generierten Signale durch Verstärkung anzuheben und für den nachfolgenden Microcontroller aufzubereiten. Dazu gehört vor allem die Gleichrichtung und das Verlängern der Impulse/Hits. Über vorgeschaltete Potis lässt sich der Pegel optimal an die Gegebenheiten anpassen. Da diese Einstellung eher selten vorgenommen wird kommen preiswerte Trimmpotis mit eingesteckten Achsen zum Einsatz.
Im digitalen Teil wird ein Mikrocontroller der Fa. Microchip aus der PIC Serie (16F690) verwendet. Dieser 8-Bit Microcontroller wird hier mit 20MHz getaktet und übernimmt die Aufgaben SchaltplanSchaltplan und Bestückungsplan

Zum Abtasten des analogen Signals wird der Microcontroller-eigene AD-Umsetzer verwendet. Aus der Amplitute der ausgewerteten Signale errechnet der Controller den zugehörigen Velocity-Wert für die MIDI-Nachricht. Die Belegung (also welches Pad welche Note des Tonerzeugers anspricht) lässt sich über das Menu je Kanal einstellen.
Für das MIDI-Interface wird die serielle Schnittstelle des PIC verwendet, die Außenbeschaltung mit den 220 Ohm Widerständen entspricht dem MIDI-Standard. Zusätzlich steuert der PIC beim Versenden einer MIDI-Nachricht eine rote LED an, um dem Anwender die Aktivität anzuzeigen.
Bedient wird das System über drei Tasten (links, ok und rechts). Details zur Bedienung siehe Abschnitt "Software".
Die Versorgung des Systems erfolgt über ein externes Steckernetzteil, das 12 V Gleichspannung liefern muss. Diese braucht jedoch nicht stabilisiert zu sein, die Stabilisierung übernehmen die integrierten Spannungsregler 78L05 und 78L08 in Standard-Beschaltung.
Auf der Platine sind für die In-Circuit-Programmierung des PIC eine 5-polige Pfostenleiste und zwei Jumper vorgesehen. Im Falle der In-Circuit-Programmierung müssen diese Jumper gezogen werden und zum Betrieb wieder gesteckt werden. Beides (also die Pfostenleiste und die Jumper) braucht nicht bestückt zu werden, wenn der PIC vor dem Einsatz außerhalb der Schaltung programmiert wurde. In dem Fall sind die Jumperpositionen durch zwei Drahtbrücken zu ersetzen. Es ist jedoch dennoch ratsam, den PIC zu sockeln, um eine ggf. spätere Umprogrammierung zu ermöglichen.

LayoutPlatinenlayout

Gehäuse

Zum Gehäuse ist eigentlich nicht viel zu sagen. Ich habe Wert auf eine sehr kleine Bauform gelegt und daher ein Gehäuse selber entworfen - auf Pläne hierzu verzichte ich, das kann jeder für sich entscheiden. Im Prinzip eignet sich auch jedes industriell gefertigte Standard-Gehäuse.
Mein Gehäuse-Entwurf besteht aus einem U-förmigen Unterteil aus MDF mit aufgeleimten Seitenteilen aus Massivholz. Die MDF ist mattschwarz lackiert und wurde mit entsprechenden Ausfräsungen für die Frontplatte und die Rückwand versehen.
Im Boden ist eine Aluminium-Hülse mit M8-Gewinde eingelassen, so dass sich das Gehäuse problemlos am Rack befestigen lässt.
Frontplatte und Rückwand bestehen aus Acrylglas, hinter das der auf Fotopapier ausgedruckte Frontplatten-Entwurf (Datei siehe unten) aufgeklebt wurde. Das Fenster für das Display wurde vorher aus dem Ausdruck ausgeschnitten.
Auf die Microtaster sind passend gedrehte und polierte Plexiglas-Hülsen aufgesetzt, die knapp aus der Frontplatte herausragen. Dadurch, dass die Taster nur einen sehr geringen Hub benötigen ergibt sich eine angenehme Bedienbarkeit.

GehäseGehäse Gehäse
Frontplatten & Rückwand-Entwurf


Pads

Für den Bau dieser Pads sollte möglichst eine Drechselbank vorhanden sein, da so ziemlich alle Bearbeitungsschritte auf der Drechselbank ausgeführt werden. Ansonsten lassen sich natürlich auch fertige Pads oder eine der zahlreichen Anregungen zum Selbstbau von Pads aus dem Internet verwenden.
Mein Vorschlag basiert im Wesentlichen auf der Verwendung von MDF, dass zunächst grob ausgesägt wird und in den benötigten Kombinationen verleimt wird. Anschließend werden die rohen Teile (also Pad Unterteil und Rim) mit den späteren Schrauben verschraubt und in einer Aufspannung sämtliche Teile abgedreht. Das ergibt maximale Konzentrität und später ein professionelles Finish. Für die Verschraubung kommen in meinen Prototypen gedrehte Einsteckmuttern aus Aluminium zum Einsatz, diese lassen sich ggf. auch durch Einschlagmuttern ersetzen, sofern keine Drehbank vorhanden ist.
Ich lasse an dieser Stelle mal die Bilder für sich sprechen, Zeichnung mit Maßen siehe unten.


Pad in DrechselbankPad in Drechselbank Pad Anprobe DrumfellPad Bestandteile erster ZusammenbauDetail Aufnehmer erster Funktionstest
ZeichnungZeichnung

Rackmount

Als Rackmount habe ich ein einfaches Klammersystem entworfen. An einer Traverse, die als Unterbau einen Standard Beckenständer verwendet können die einzelnen Pads individuell festgeklemmt und in ihrer Neigung verstellt werden. Außerdem gibt es einen speziellen Halter für die Drumtrigger-Elektronik. Meine ursprüngliche Befürchtung, die Klemmung könnte unzureichend für die harte Beanspruchung sein (permanente Schläge durch den Drumstick) waren unbegründet. Die Klammern sitzen "bombenfest". Bisher ist mir noch kein Pad verrutscht.
Das System basiert im Wesentlichen auf Aluminium-Teilen, die Haltebolzen sind aus gewöhnlichem Stahl gefertigt.
Um dieses System nachzubauen ist eine Drehbank unbedingt erforderlich, idealerweise auch eine Fräse für die Halteklammern.
Die Einschlagmuttern der Pads (s.o.) wurden als M8 ausgelegt, ein Gewinde, das auch von vielen Standard-Beckenständern verwendet wird. Ggf. kann man sich also auch mit normalen Beckenständern als Pad-Halter behelfen.
Zeichnung siehe unten.

RackmountRackmount RackmountRackmount Rackmount
RackmountZeichnung

Software

Die Software für Drumtrigger wurde komplett in Assembler programmiert. Der Quelltext steht hier zur Verfügung und ist in Englisch kommentiert. Die übersetzte Version (HEX) kann hier geladen werden. Es sei allerdings darauf hingewiesen, dass dies mein erstes ernstzunehmendes Projekt auf Basis Microchip PIC war und der Programmierstil vermutlich keinen Award gewinnen kann. ;-)
In diesem Abschnitt soll allerdings nicht auf die Inhalte meiner Programmierkünste eingegangen werden, sondern vielmehr eine grobe Übersicht über die Bedienung / Menustruktur der Software gegeben werden.

Nach dem Einschalten und dem obligatorischen Copyright-Hinweis präsentiert sich Drumtrigger so:

SoftwareLinks unten wird die aktuell geladenen Konfiguration dargestellt, auf der rechten Seite die vier Kanäle mit einer Art VU-Meter, die je Kanal per Balken einen Hit und dessen Stärke darstellen.


SoftwareEin beliebiger Druck auf eine der drei Tasten (links, ok oder rechts) springt ins Hauptmenu, von wo aus man mit rechts/links die Menuitems auswählen kann und jeweils mit OK in das Untermenu verzweigt. Exit verlässt das Menu.


SoftwareSoftware LoadConfig lädt eine zuvor gesicherte Konfiguration (1 .. 4). Dies ist z.B. sinnvoll, wenn während eines Konzertes unterschiedliche Belegungen der 4 Pads schnell abgerufen werden sollen.

Software SoftwareSaveConfig sichert die aktuell eingestellte Konfiguration auf einem der 4 Speicherplätze. Die zuletzt eingestellte Konfiguration wird auch nach dem nächsten Einschalten automatisch wieder geladen.

Software SoftwareTreshold stellt die untere Intensitäts-Schwelle dar, unter der keine Hits ausgewertet werden, dass heißt keine MIDI-Nachrichten gesendet werden. Hiermit lassen sich  Fehltriggerungen z.B. durch Hits auf benachbarte Pads weitestgehend unterbinden, jedoch ist das im Wesentlichen auch von der Entkopplung der verwendeten Racks abhängig

Software SoftwareRetrigger verändert die Zeit nach einem erkannten Hit, in der kein erneuter Hit ausgewertet wird. Hilft bei der Vermeidung von Mehrfach-Erfassungen eines einzelnen Hits und Fehltriggerungen. Ein zu großer Wert kann unter Umständen jedoch fast Rolls unmöglich machen.

Software SoftwareMit "Note assign" lässt sich jedem der Kanäle 1..4 die individuelle MIDI-Note zuordnnen, die an den Expander/Computer gesendet wird, wenn auf dem betreffenden Kanal ein Hit erkannt wird. Die Eingabe erfolgt in zwei Schritten. Zunächst steht der Cursor auf dem Channel (1..4), nach >OK< wechselt der Cursor auf die Note, die dann über die Pfeiltasten up/down eingestellt werden kann.

Software SoftwareMit "Gain" lässt sich die Grundempfindlichkeit aller Kanäle zwischen 1 und 2 einstellen. Die Feineinstellung erfolgt über die Potis, die den Kanälen zugeordnet sind.

Software SoftwareDer Parameter Velocity curve beeinflusst den Zusammenhang zwischen dem Input (also Stärke des vom Drumpad gelieferten Impulses) und dem an MIDI gesendeten Output. Hiermit können verschiedene Charakteristika den eigenen Spielweisen und/oder den verwendeten Pads angepasst werden. Die Einstellung ist in 4 Stufen von LIN über Log1 bis Log3 variabel. Der Zusammenhang kann dieser Grafik entnommen werden:
 

Software SoftwareHier kann der verwendete MIDI Channel zwischen 1 und 16 eingestellt werden. Standard ist 10.



SoftwareReset Memory setzt alle Voreinstellungen auf Factory-Defaults zurück. Nur sinnvoll wenn gar nichts mehr geht und man das Teil verkonfiguriert hat.



Während die Parameter verändert werden kann man die Einstellungen übrigens gleich live testen, ohne das Menu zu verlassen. Alle Einstellungen werden sofort übernommen.


Disclaimer:
Für die Funktion der Schaltung und Hardware kann ich trotz sorgfältiger Planung und Prüfung keine Gewährleistung übernehmen. Das Design erfolgte nach bestem Wissen und Gewissen, das System arbeitet bei mir seit geraumer Zeit zur vollen Zufriedenheit. Dennoch kann ich keine Gewährleistung für bestimmte Eigenschaften oder Funktionen übernehmen - da meine Zeit begrenzt ist rechnen Sie besser nicht damit, dass bestimmte Features durch mich nachgerüstet werden. Nachbau und Nutzung also auf eigenes Risiko!