DIY Sustain Pedal mit MIDI

Ein Sustain-Pedal mit MIDI-Anschluss selber bauen – kein Problem mit dem ganzen Know-How was wir inzwischen angehäuft haben. In dieser Folge baue ich für meinen Studio- und Werkstattkollegen Henning auf die Schnelle ein solches Pedal. Ein Sustain- bzw. Halte-Pedal ist fürs Klavierspielen am Keyboard unerlässlich – nur was, wenn das Masterkeyboard gar keinen Anschluss für ein normales Sustain-Pedal hat?

DIY MIDI-Sustain-Pedal – Bauteile

https://www.musikding.de/Aluminium-Gehaeuse-Farbig
https://www.musikding.de/1PST-Fusstaster
https://www.musikding.de/Kippschalter-1polig-ON-OFF-ON
Digispark: http://amzn.to/2kUilxO

Das beste Sustain-Pedal (ohne MIDI) – hab ich seit 15 Jahren Live und im Studio im Einsatz ist übrigens das Roland DP-10.

Schaltplan

DIY-MIDI-Sustain-Pedal

Arduino-Sketch

// MIDI-Halte-Pedal mit Digispark
// Umschalter wechselt zwischen Sustain und Modulation

#include <SoftwareSerial.h>
SoftwareSerial mySerial(4, 3); // RX, TX

int const tasterPin = 2;
int const modePin = 0;
int const intLED = 1;
int pedalMode = 0; // 0=Sustain, 1=Modulation
int pedalWert = HIGH;
int pedalWertALT = HIGH;

void setup() {
 pinMode(tasterPin, INPUT_PULLUP);
 pinMode(modePin, INPUT_PULLUP);
 pinMode(intLED, OUTPUT);
 digitalWrite(intLED, LOW);

 mySerial.begin (31250);
}

void loop() {
 
 // Sustain oder Modulation
 if (digitalRead(modePin)==LOW) {
 pedalMode = 1;
 }
 else {
 pedalMode = 0;
 }
 
 // Pedal abfragen
 pedalWert = digitalRead(tasterPin);
 
 // Modulation-Modus
 if (pedalMode==1) {
 if (pedalWert == LOW && pedalWertALT == HIGH) {
 digitalWrite(intLED, HIGH);
 sendeMIDI(176,1,127);
 pedalWertALT = pedalWert;
 }
 if (pedalWert == HIGH && pedalWertALT == LOW) {
 digitalWrite(intLED, LOW);
 sendeMIDI(176,1,0);
 pedalWertALT = pedalWert;
 }
 }

 // Sustain-Modus
 if (pedalMode==0) {
 if (pedalWert == LOW && pedalWertALT == HIGH) {
 digitalWrite(intLED, HIGH);
 sendeMIDI(176,64,127);
 pedalWertALT = pedalWert;
 }
 if (pedalWert == HIGH && pedalWertALT == LOW) {
 digitalWrite(intLED, LOW);
 sendeMIDI(176,64,0);
 pedalWertALT = pedalWert;
 }
 }
}

void sendeMIDI(int statusByte, int dataByte1, int dataByte2) {
 mySerial.write(statusByte);
 mySerial.write(dataByte1);
 mySerial.write(dataByte2);
}

Beteilige dich an der Unterhaltung

9 Kommentare

  1. Hi Gmd °_°

    Kanst du mir bitte eine komplette bauteilliste zusammenstellen midi buchse wiederstände….

  2. Hallo Götz!
    Ich verfolge mit großem Interesse deine Videos und bin begeistert von Deinem Beitrag wo es um den Midi – Controller Fussschalter geht.
    Da hätte ich mehrer Fragen zu. Vielleicht magst du sie mir ja auch beantworten.

    Ist-Situation:
    Ich habe von Behringer die X-Air 12, da ist Midi in / out dran, toll ! 🙂
    Was das Ding nicht hat, ist ein Fussschalter-Input ( ganz normaler Klinkeneingang für einen ganz normalen Fusschalter )

    Was möchte ich erreichen!?
    Ich möchte gerne mit dem Fusschalter die Mute-Group meiner Hall-Effekte mit dem Fusschalter bei Ansagen muten. Beginne ich wieder mit Gesang, – zack 1x Fusschalter treten, Effkte alle wieder in Betrieb.

    Der Wunsch wäre, einen Midi – Fusschalter ( on / off ) mit der X-Air durch nur 1 Midikabel zu verbinden ohne externe Stromverbindung oder sogar Batterie zu betreiben. Wenn die Stromzufuhr allerdings sein muss, dann würde ich das Midi-Controller Kästchen wie in deinem Video ( wo es um das Sustain ging ) in mein 4 HE Rack setzen und dort am Kästchen mit einem 1,5 m langem Klinkenkabel, an einen herkömmlichen Fusschalter ( Firma Boss ) schließen und alles wäre Mega!

    Jetzt die Fragen 🙂

    Gibt es sowas irgendwo zu kaufen?
    Kannst du sowas bauen?

    Freue mich auf Rückantwort
    und sage mal vorab Dankeschön!

    Markus 🙂

    Dertastenfeger@t-online.de

  3. Hi Leon,
    schau einfach ins Video, dort erwähne ich alle benötigten Teile. In der Videobeschreibung findest du auch Links zu einigen Bauteilen.
    VG
    Götz

  4. Deine Videos ist super – habe schon viel gelernt. Schade, dass es deine Videos nicht auf Englisch gibt – du haettest bestimmt noch viele tausend Abonnenten mehr. Eine kleine Anregung – bei deinen Schaltplaenen, wie oben, waere es toll, wenn du die Bauteile bennen wuerdest. z.B. oben ist nicht ganz klar, welches der Fusstaster ist und welches der Kippschalter. Vielen Dank fuer die tollen Projekte und Infos!

  5. Hey Götz,

    erstmal vielen Dank für deine ganzen Videos und das du dir so viel Mühe damit machst.

    Ich wollte schon immer mal mit einem Arduino oder auch Raspberry Pi was basteln.
    Dank dir bin ich in Richtung MIDI gegangnen und habe mir auf Ebay Kleinanzeigen ein altes Casio CA-110 Keyboard gekauft. Dieses Keyboard habe ich zu einem Midi Keyboard/Controller umgebaut.

    Ich möchte/nutze momentan ein Joystick um den Pitch (Y-Achse) und um das Sustain Pedal ein und aus zuschalten (Button). Auf der X-Achse würde ich gerne den Modulations-Modus steuern.
    Jetzt zu meinem Problem. Ich bin nicht musikalisch und wollte mit diesem Projekt in Sachen Musik einsteigen. Macht bisher auch sehr viel Spaß. Nur wie funktioniert das mit dem Modulations-Modus? Muss ich dieses in meinem DAW Programm erstmal auf den Joystick mappen? Nicht wie bei dem Pitch, welches direkt erkannt wird?

    Das ist momentan mein Code für den Joystick (im Prinzip komplett der selbe wie bei dir, aber sehr wahrscheinlich ist es für den Modulationsmodus so nicht gedacht):

    joyY = analogRead(A1);
    if (joyY > 523) {
    modBend = map(joyY,523,1023,65,127);
    sendeMIDI(176,1,modBend);
    }
    if (joyY 513 && joyY < 523) && pitchBend != 64) {
    pitchBend = 64;
    sendeMIDI(176,1,modBend);
    }

    Ich nehme auch mal an das der Modulations-Modus nicht auf 64 im Standard stehen sollte?

    Vielen Dank!
    Freundlliche Grüße

    Hendrik

  6. Hallo Hendrik,
    Pitch Pend ist ja ein eigener MIDI-Befehl und damit auch mit dieser Funktion fest im Synthesizer verknüpft. Modulation hingegen ist kein fester Befehl und keine feste Funktion. Es gibt nur die Empfehlung in den MIDI-Spezifikationen, dass man mit der Controller-Nummer 1 im Synthi „Modulation“ steuern kann. Und daher hat es sich so eingebürgert, dass die Keyboard-Hersteller ein Drehrad oder Joystick eingebaut haben, was zufällig Controller 1 sendet. Was der Synthesizer dann mit dem Befehl macht, kommt ganz darauf an. Bei natürlichen Instrumenten ist es tatsächlich meist Vibrato, bei analogen Synthsounds wird damit meist der Filter-Cutoff gesteuert und bei Drum-Plugins z.B. die Öffnung der Hihat. Ist also keine Einstellung in deiner Musik-Software, sondern hängt vom Synthesizer-Plugin ab und kann dort sogar von Sound zu Sound unterschiedlich sein.

    Pitchbend mit 64 als Position Null ist die Ausnahme – Modulation sollte also ganz normal von 0 – 127 gehen. Du kannst also entweder nur den halben Weg nach oben für Modulation nutzen und den halben Weg nach unten am Joystick für eine andere Controller-Nummer (wie in meinem Tutorial), oder du versuchst, die Klammer, die den Joystick zentriert abzuknipsen, so dass er sich nicht mehr vertikal zentriert.

    Viel Erfolg
    GÖtz

  7. cooles Video, eigentlich genau das was ich brauche. Ich möchte eine Beatmaschine per Fußtaster starten, jedoch kommt das Tempo per MIDI von einem anderen gerät, weshalb ich die MIDI-In Buchse der Beatmaschine brauche. Was muss ich tun, damit ich das Start-Signal zusätzlich zum Clock-Signal nutzen kann? Ich hoffe ich habe mich verständlich ausgedrückt.

  8. 1. musst du rauskriegen, was deine Beatmaschine braucht um überhaupt zu starten. Braucht sie nur eine Clock oder braucht sich auch zusätzlich noch MMC (MIDI Machine Control)?

    2. musst du rauskriegen, was dein zweites Gerät braucht, um mit dem Erzeugen der Beat Clock zu starten. Kann man vllt. einfach einen Fußtaster per Klinke anschließen? Oder reagiert das Gerät auf MMC?

    Guck dir mal dieses Video an:
    https://www.youtube.com/watch?v=Ld_-f2XcBfA

    Hier geht’s zwar hauptsächlich um die Clock (die du ja nicht brauchst) aber es gibt auch ein bisschen Erklärung zu den Bytes für Play/Pause/Stop.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert