Vorstellung: DIY MIDI Mini 3 Button Controller (HX Stomp)

LustigePerson
LustigePerson
Registrierter Benutzer
Zuletzt hier
06.12.22
Registriert
13.12.04
Beiträge
380
Kekse
620
Ort
Bonn
Hallo,

ich dachte ich stelle hier mal ganz kurz meinen MIDI-Controller Eigenbau auf basis eines Arduino Mikrocontrollers vor. Er ist natürlich universell einsetzbar, wurde für mir aber als Erweiterung für meinen HX Stomp gebaut.
Das Ganze ist auf meine Bedürfnisse zugeschnitten und auch das Design sollte ein bisschen speziell aussehen. ;)
Lasst mir gerne Feedback da, oder stellt Fragen. Das war auch mein erster Versuch. Funktion, Aufbau und ein paar Hinweise gibt es unten auch noch.
01_midi.jpg
02_midi_back.jpg
03_midi_arduino.jpg
04_midi_inside.jpg


Auf dem Board macht er sich ganz gut:

board.jpg

Inspiration kam von folgenden Quellen:

Funktionen​

Ich nutze 3 Bänke (Rosa, Grün, Blau) und jedem Taster ist jeweils ein kurzer und ein langer Druck zugeordnet.

Die Funktion beim langen Druck ist dabei immer gleich:
  • Links: HC Stomp Modes Durchschalten (Stomp, Scroll, Preset, Snapshot)
  • Mitte: "Boost" a.k.a. Custom Funktion (Sendet CC100 abwechselnd an/aus. Meine Idee ist es hier in meinem Presets IMMER einen Soloboost drauf zu legen)
  • Rechts: Nächste Bank
Ein kurzer Tastendruck hat je nach Bank andere Funktionen und beim Aufrufen einer Bank passieren Dinge:

Bank 0

Snapshot Mode (Rosa)

Beim Aufruf: HX Stomp wechselt in Stomp Mode
  • Links: Snapshot 1
  • Mitte: Snapshot 2
  • Rechts: Snapshot 3

Bank 1

Tap / Tuner Mode (Grün)

Beim Aufruf: HX Stomp wechselt in Snapshot Mode
  • Links: Tuner An/Aus
  • Mitte: Tap Tempo
  • Rechts: HX Stomp Bypass An/Aus

Bank 2

FS Mode (Blau)

Beim Aufruf: HX Stomp wechselt in Snapshot Mode
  • Links: Footswitch 4 Funktion
  • Mitte: Footswitch 5 Funktion
  • Rechts: Toggle midi CC 101 (frei belegbar im Stomp)
Hier auch noch mal als Übersicht:

Bank​
0​
Description
Snapshot Mode​
On Bank Enter
Stomp to Stomp mode​
Button
A
B
C
Short Press
Snapshot 1​
Snapshot 2​
Snapshot 3​
Long Press
FS Mode Up​
Boost CC 100​
Bank Up​





Bank​
1​
Description
Tap/Tuner​
On Bank Enter
Stomp to Snap mode​
Button
A
B
C
Short Press
Toggle tuner​
Tap Tempo​
Toggle Bypass​
Long Press
FS Mode Up​
Boost CC 100​
Bank Up​





Bank​
2​
Description
FS Mode​
On Bank Enter
Stomp to Snap mode​
Button
A
B
C
Short Press
FS4​
FS5​
Toggle CC 101​
Long Press
FS Mode Up​
Boost CC 100​
Bank Up​

Bau & Pläne​

Das ganze war als Eigenbau recht billig, mit Komponenten vom freundlichen Chinamann (Aliexpress) und z.T. von Musikding.
Im Wesentlichen braucht es:
  • Gehäuse (hier Typ A Alu-Guss)
  • 3 Taster (keine Schalter)
  • Midi-Buchse
  • DC Buchse
  • LED (Hier Neopixel 5mm LED um beliebige Farben darstellen zu können)
  • Mikrocontroller (Hab mich für einen Arduino Pro Mini entschieden)
  • Kabel, Widerstände etc.
Quellcode, Bankbeschreibung / Switchbelegung und Verkabelung findet sich hier: https://github.com/LustigePerson/HXstomp_Midi

Die Verkabelung sieht so aus:

HX_Stomp_Midi_Steckplatine.png

HX_Stomp_Midi_Schaltplan.png

Besonderheiten / Watch Outs​

  • Das Gehäuse ist schön kompakt dadurch sind die Taster natürlich auch nah beisammen. Der mittlere steht höher, was für mich OK ist. Man könnte das Ganze aber sich auch mit 2 Tastern realisieren bzw. ein größeres Gehäuse wählen wenn man im Eifer des Gefechts nicht mehr so zielsicher ist.
  • Ich habe den Arduino zur Sicherheit mit einem Verpolschutz (Diode) versehen. Er läuft ganz normal mit 9V (center negative), kommt aber mit bis zu 12 volt klar
  • Es ist auch Möglich einen "langen Tastendruck" zu nutzen, das hat aber IMMER einen Nachteil. Da nach dem ersten Druck gewartet werden muss ob noch ein Zweiter kommt, können "Einfachsignale" nicht SOFORT ausgelöst werden sondern erst nach einer definierten Wartezeit
  • Weiterhin ist es möglich auch das Drücken zweier Tasten gleichzeitig zu nutzen. Mein Code ist dafür nicht ausgelegt, das war mir auch nicht praxistauglich genug. Wenn man aber mit Zwei dtat Drei Tastern arbeitet könnte das ein guter Weg sein
  • Ein "Problem" des Stomps ist es dass man nicht einfach so "Toggle Bypass" Befehle schicken kann. das geht nur wenn man FS4/5 per midi emuliert, ich hoffe da tut sich nochmal was. Aus diesem Grund sendet bei mir CC100/CC101 immer abwechselnd an/aus. Schaltet man in der Zwischenzeit den entsprechenden Block am Stomp um weiß der Switch davon natürlich nichts. Das betrifft aber ALLE Midiswitches, da Unidirektional. Man KÖNNTE natürlich den Switch auch noch mit einem MIDI Input versehen, aber das ist den Aufwand wohl nicht wert
  • Man könnte natürlich auch mehr Taster in ein größeres Gehäuse bauen, dem Ganzen ein Display spendieren und komplexe Presets etc hier ablegen, für mich sollte es aber einfach sein und ich wollte es "schnell" mal bauen und testen
  • Eine generelle "Lessons Learned" für mich war: Es genügt nicht die Taster Klug auf dem Gehäuse zu verteilen. Man sollte auch früh genug überlegen/prüfen WO auf dem Board das ganze sein soll und wie gut man dann noch an die Taster kommt
  • EDIT: Es gibt übrigens auch Adapter für Midi auf 3,5mm Stereoklinke. Das wird auch oft für MIDI genutzt. Vorteil ist die kleinere Bauform der Buchsen und die Drehbarkeit des Kabels; wäre also eine mögliche Alternative zur MIDI Buchse
  • EDIT: Ich sammle hier weitere Dinge. @boisdelac hätte darauf hingewiesen: Man kann auch "einfache" RGB LEDs nutzen. Oder 2-farbige LEDs. Das KANN etwas günstiger sein, braucht dann aber mehr Pins, entsprechende Vorwiderstände und man muss selbst schauen das die einzelnen Helligkeiten passen. Und da ich evtl. mehr als eine LED nutzen wollte funktioniert das mit den Neopixel/WS2812b ganz ohne weitere Pins einfach in Serie

Ich freue mich auf eure Rückmeldung!
 
Grund: + / - vertauscht im Schaltplan
Zuletzt bearbeitet:
  • Gefällt mir
  • Interessant
Reaktionen: 10 Benutzer
boisdelac
boisdelac
Registrierter Benutzer
Zuletzt hier
06.12.22
Registriert
19.06.12
Beiträge
2.450
Kekse
13.353
Ort
Großraum Stuttgart
Tolle Vorstellung!!!

Kostenlose Ideen für weitere MIDI-Controller....

Ersetz die NEO-Pixel-RGB-Led durch eine einfache RGB-LED mit Vorwiderständen und schließe die an drei Analog-PWD-Ausgänge an. Das ist eventuell preisgünstiger
Die Spannungsversorgung könntest Du beim HX-Stomp mit einem Y-Kabel abzwacken.
Ein MIDI-Eingang hätte den Charme, dass man den Fußschalter mit dem HX-Stomp z.B. bei PC-Befehlen oder beim Tap-Tempo synchronisieren könnte

Und wenn Du jetzt auch noch das scetch postest, gibts noch Kekse :great:
 
  • Gefällt mir
Reaktionen: 2 Benutzer
LustigePerson
LustigePerson
Registrierter Benutzer
Zuletzt hier
06.12.22
Registriert
13.12.04
Beiträge
380
Kekse
620
Ort
Bonn
Und wenn Du jetzt auch noch das scetch postest, gibts noch Kekse :great:
Liegt doch alles im verlinkten Repo:
https://github.com/LustigePerson/HXstomp_Midi

Grund für den Neopixel war, dass ich zunächst mit dem Digispark arbeiten wollte, der hat nicht genug PINs, und da ich evtl. plane doch in ein größeres Gehäuse zu gehen und mehr LEDs zu nutzen kann man die einfach chainen und braucht keine weiteren PINs.

Was meinst du mit der Spannungsversorgung? Einfach von der HX Stomp Versorgung? Das ist natürlich wurscht wie man es macht, ich hatte noch Ausgänge am Palmer PWT frei. Oder meinst du Poer über die freien Adern des Midikabels senden? Darüber hatte ich auch mal nachgedacht.

Ja, das mit dem MIDI Eingang wäre wie gesagt nett, braucht dann aber ein größeres Gehäuse für die weitere Buchse und man muss natürlich dem Stomp auch noch mal erklären was er senden soll. Was sehr fancy wäre, insb. LED in sync mit midi clock, aber der Gesamtaufwand war mir erst mal doch zu groß.
Sehr schade dass MIDI halt nur Unidirektional ist und doch so ein bisschen oll... Ich frage mich ob man statt der Midibuchse auch das Midi-über-USB des Stomps nutzen könnte. Das wäre natürlich noch eine Möglichkeit.
 
boisdelac
boisdelac
Registrierter Benutzer
Zuletzt hier
06.12.22
Registriert
19.06.12
Beiträge
2.450
Kekse
13.353
Ort
Großraum Stuttgart
Repo ... hab ich übersehen. Verzeih

Spannungsversorgung ... das HX Stomp braucht ja auch 9VDC und es hat auch die gleiche Polung. Dann könnte man da mit einem Y-Kabel ran.
So Extragedöns wie Spannungsversorgung über ein MIDI-Kabel würde ich persönlich lassen, weil das nicht Standard ist.
 
  • Gefällt mir
Reaktionen: 1 Benutzer
LustigePerson
LustigePerson
Registrierter Benutzer
Zuletzt hier
06.12.22
Registriert
13.12.04
Beiträge
380
Kekse
620
Ort
Bonn
So Extragedöns wie Spannungsversorgung über ein MIDI-Kabel würde ich persönlich lassen, weil das nicht Standard ist.
Genau aus dem Grund hab ich es gelassen.

Y-Kabel: geht ja eigentlich immer. Auf dem Board bei mir hat alles 9v Center negative.
Solange ich aber am Netzteil noch freie Pins hab mache ich es lieber so, da galvanisch getrennt. Y-Kabel bzw. Daisy chains sind da ja manchmal problematisch. Aber wenn man nur HX Stomp + Midi controller nutzt ist es natürlich eine optimale Lösung mit Y-Kabel.

Ich glaube man kann so ein Projekt sehr weit treiben. Freue mich wenn Andere ihre Controller und Ideen teilen.
 
LustigePerson
LustigePerson
Registrierter Benutzer
Zuletzt hier
06.12.22
Registriert
13.12.04
Beiträge
380
Kekse
620
Ort
Bonn
Achso, was natürlich noch möglich ist: man kann den Loper mir erweiterten Funktionen per Midi Steuern. Auf dem Stomp selbst geht ja nur die One-Button Variante, während die großen Helixe ja mehrere Buttons nutzen. Die Funktionen sind aber auch im Stomp vorhanden. Bisher habe ich den Boss RC1 genutzt, aber Mal sehen ob ich nicht da auch auf den Stomp setze.
 
SubbrSchwob
SubbrSchwob
Registrierter Benutzer
Zuletzt hier
06.12.22
Registriert
07.08.12
Beiträge
1.133
Kekse
5.044
Ort
Tübingen
Wie ist das mit dem Entprellen der Fußtaster? Macht das die von Dir genutzte Library?

Ich hab mal eine MIDI-Clock mit Fuß-Tap-Funktion gebaut und das Prellen war ein ziemliches Problem. Hab's dann aber doch hingepfuscht… das Ding hat auch gleichzeitig einen Tap-Output für mein Delay-Pedal, letzteren hatte ich über ein Reed-Relais umgesetzt.
 
LustigePerson
LustigePerson
Registrierter Benutzer
Zuletzt hier
06.12.22
Registriert
13.12.04
Beiträge
380
Kekse
620
Ort
Bonn
*Überflüssiges Vollzitat des direkt vorangegangenen Beitrages entfernt*

Genau, das ist ja bei mechanischen Buttons immer ein Thema, das überniummt aber die Library. Allerdings kann man die "Entprellzeit" mit setDebounceTicks setzen.
Je niedriger mand ie setzen kann desto schneller reagieren die Switches natürlich. Ich bin jetzt bei 25ms.
Ganz ähnlihc kann man auch definieren ab wann ein Tastendruck ein "langer Druck" ist, mit setPressTicks, das sind bei mir 300ms.
Steht aber alles recht gut und übersichtlich in der Library readme: https://github.com/mathertel/OneButton
Ich denke mal die minimale Einstellung für's Entprellen hängt auch von den verwendeten Schaltern ab.
 
Zuletzt bearbeitet von einem Moderator:
T
Tonschlosser
Registrierter Benutzer
Zuletzt hier
04.12.22
Registriert
12.10.17
Beiträge
4
Kekse
0
Man muss sich mit der Minimierung der Debounce Zeit gar nicht so viel Stress machen.

Die Debounce Zeit hat mit der Reaktionszeit des Mikrocontrollers nichts zu tun.
Der Schaltvorgang wird direkt durch den ersten Kontakt des Tasters ausgelöst.

Der Schalteingang wird lediglich für die eingestellte Zeit gesperrt, um weitere Auslösungen durch das Nachprellen des Tasters zu verhindern.
Innerhalb der Debounce Zeit, kann man also keinen weiteren Schaltvorgang auslösen.

Innerhalb von 40 - 50 ms zweimal Schalten können sollte für einen Effekt Fußschalter wahrscheinlich in der Praxis vollkommen ausreichend.

... und das muss man ja auch erstmal schaffen, ohne beim Spielen aus der Kurve zu fliegen :)
 
  • Gefällt mir
Reaktionen: 1 Benutzer
LustigePerson
LustigePerson
Registrierter Benutzer
Zuletzt hier
06.12.22
Registriert
13.12.04
Beiträge
380
Kekse
620
Ort
Bonn
*Überflüssiges Vollzitat des direkt vorangegangenen Beitrages entfernt*

Stimmt, aber wegen des (möglichen) "Doppelklicks" wird es (zumindest theoretisch) relevant.
Denn wenn die Debounce Zeit z.B. bei 50ms steht wird das Signal an den Stomp auch erst danach gesendet, da ja theoretisch noch ein Doppelklick folgen kann. Ich wollte aber sicher gehen dass die Änderung schnellstmöglich an den stomp geht, wenn man z.B. sauber zum Taktwechsel einen Effekt (de-)aktivieren möchte. Aber klar, 50ms sollten da auch genügen ;) Meine Switches haben aber kein Problem mit "false fire" bei 25ms.
In dem code hier nutze ich ja keine Doppelklicks, ich hatte aber damit experimentiert. Was man da noch beachten muss: Die maximale "Tap Tempo" Geschwindigkeit bevor der Switch von einem Doppelklick ausgeht. ;)

EDIT: Wenn ich drüber nachdenke muss die Debounce Zeit aber auch so abgewartet müssen, da ja nach deren ablauif geprüft wird ob der Switch noch "gehalten" wird. Also auch wegen des "Long Clicks" "relevant".
 
Zuletzt bearbeitet von einem Moderator:
LustigePerson
LustigePerson
Registrierter Benutzer
Zuletzt hier
06.12.22
Registriert
13.12.04
Beiträge
380
Kekse
620
Ort
Bonn
Hallo Zusammen,
es gibt ein Update. Der Stand wie oben beschrieben findet sich weiterhin als Version v1.0 im Git Repository.

Version 2.0 bietet nun aber auch die Möglichkeit den Looper des HX Stomp zu steuern und damit dessen Funktionsumfang zu erweitern.

Dazu kam nun eine Bank (rote LED) dazu:

Bank​
3​
Description
Looper Mode​
On Bank Enter
Stomp to Snap mode​
Button
A
B
C
Short Press
Rec/OverD​
Play/Stop​
Undo/Redo​
Long Press
FS Mode Up​
Boost CC 100​
Bank Up​

Während der Aufnahme / des Overdups blinkt die LED schnell, während der Wiedergabe langsam. Wie immer ist es natürlich so, dass Veränderungen am Stomp dem Midi Controller nicht bekannt sind. D.h. wenn ein Preset gewechselt wird oder der Looper direkt am Stomp deaktiviert wird, wird die LED ggf. weiter blinken. Dann muss man diese natürlich abschalten.

Da ich nicht sicher bin ob ich immer 4 Bänke brauche kann man die Looperfunktion beim Booten (de)aktivieren.
Während die LED weiß leuchtet hält man eine der Tasten gedrückt. ein 3-maliges blinken zeigt den Status an: 3x weiß = Looperfunktion nicht vorhanden; 3x rot = Looperfunktion vorhanden. Diese Einstellung bleibt auch gespeichert und wird, wenn man keine taste drückt während des bootens, ebenfalls durch 3-maliges Blinken angezeigt.
 

Ähnliche Themen


Neue Themen

Unser weiteres Online-Angebot:
Bassic.de · Deejayforum.de · Sequencer.de · Clavio.de · Guitarworld.de · Recording.de

Musiker-Board Logo
Oben