DYI: MIDI Fußleiste selber bauen?!

P

Pacosipulami

Guest
Hallo Markus bzw. Jean Midi :biggrin:

Der Schalter bzw. der Taster hat 4 Pins wovon jeweils 2 parallel geschaltet sind.

Gruss
Pacosipulami
 

OSon

Administrator
Teammitglied
Axe-Fest 2023 Teilnehmer
Axe-Fest 2022 Teilnehmer
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Sep 29, 2012
Beiträge
2.578
Hihi... Cool! :)

Nur so als Hinweis. Den Schalter PIN 42 habe ich natürlich nur aus Spaß gewählt! :-D

Und den MIDI-Kanal hast Du ja perfekt umgestellt von 10 auf 1. 10 war nur noch ein Test von mir...


so dein schalter hat (wie meiner auch) 4 PINS. 2 davon sind vermutlich aber immer gleich belegt und hat denke ich nur aus Stabilitätsgründen 4 PINS. Wierum der Schalter funktionert, könntest du mit diesem Test aber mal probieren: http://arduino.cc/en/Tutorial/DigitalReadSerial


Und weiteren Code gibt es (hoffentlich) heute Abend. Hab Lust heute da dran weiterrumzubasteln! :)
 

wildlive

Active member
Mitglied seit
Okt 6, 2012
Beiträge
167
Herzlichen Glückwunsch zu den ersten geglückten Gehversuchen!!

Also dein viebeinige Schalter aus dem Video ist kein Schalter sondern ein Taster in dieser Art
http://www.reichelt.de/Kurzhubtaster/TASTER-9305/3/index.html?&ACTION=3&LA=2&ARTICLE=44586&GROUPID=3278&artnr=TASTER+9305

Bei dem sind jeweils zwei Beinchen kurzgeschlossen und bilden einen gemeinsamen Anschluss. Nimm mal ein Multimeter, dann kannst du das fix nachvollziehen. Schön an diesen Tastern ist, dass die kaum zum Prellen zu bekommen sind :)

Um diesen an den AVR anzuschließen gibt es grundsätzlich drei Möglichkeiten, wobei die dritte die hardwaremässig am wenigsten aufwendige ist.

1. Mit externem Pulldown Widerstand.
- Taster an VCC und Widerstand
- Widerstand an Taster und Masse
- Abgriff für den uC zwischen Taster und Widerstand.

Funktion: Wenn gedrückt, wird eine 1 gelesen, sonst eine 0

Konfiguration der Ports:
- entsprechendes Bit im DDR Register des Ports auf 0 (Eingang)
- entsprechendes Bit im PORT Register Ports auf 0 (interner Pullup aus)


2. Mit externem Pullup Widerstand

- Taster an GND und Widerstand
- Widerstand an Taster und VCC
- Abgriff für den uC zwischen Taster und Widerstand.

Funktion: Wenn gedrückt, wird eine 0 gelesen, sonst eine 1

Konfiguration der Ports:
- entsprechendes Bit im DDR Register des Ports auf 0 (Eingang)
- entsprechendes Bit im PORT Register Ports auf 0 (interner Pullup aus)


3. Verwendung des internen Pullup Widerstands

- Taster an uC und GND

Funktion: wie 2.

Konfiguration der Ports:
- entsprechendes Bit im DDR Register des Ports auf 0 (Eingang)
- entsprechendes Bit im PORT Register Ports auf 1 (interner Pullup an)



Wenn du mir schreibst an welchen Port des AVR der Taster angeschlossen werden soll, kann ich dir auch ein wenig C-Code Schnipsel zukommen lassen.

Welcher AVR ist denn auf deinem Arduino Board überhaupt verbaut?
 

axefx

Administrator
Teammitglied
Axe-Fest 2019 Teilnehmer
Mitglied seit
Sep 28, 2012
Beiträge
5.867
Super! OK, hab`s rausbekommen - Schalter geht jetzt. Da im G-Major auf Programm 6-10 nichts hinterlegt ist hat da auch nichts "weiterschalten können". Habe jetzt den Value von 10 auf 1 runtergestellt. Damit schaltet der Taster jetzt immer zwischen PC 1 und 2 hin und her. Läuft ;)

Wie müsste nun der Code aussehen, um CC#s incl. Value Wert zu senden? Basti, da scheint schon Code angelegt, aber noch nicht "live" gesetzt zu sein?

Und ein letztes: Wenn ich den Code an das Board sende müsste der da nicht-flüchtig drin sein, oder? Habe es mal ohne USB verbindung versucht und über den Stromanschluss versucht. Da leuchtet das Board zwar auch, sendet aber keine MIDI Befehle mehr. Vielleicht zu wenig Batterie (Akku)-Spannung, die anliegt?

Aber Yeah ... prinzipiell ausgeile Sache! Muss ich noch rausfinden, wie das mit den CC#s ist und wie mehrere Taster zu verschalten sind, man noch ne Leuchtdiode hinzufügt, die entsprechend dem Taster-Druck leuchtet und dann wäre ich auch schon kuz vor dem Ziel: 8 oder 12 Taster, die CC#34 Value 0 bis 7 (= 8 SCENES) schicken plus 4 Taster, die auf 2 CC#s mit Value 0 und 127 die 2 Amps incl. X/Y schalten (=4 Amp-Channels). Und fertig wäre die Laube. Ich glaube, auch das wird ein Hexenwerk sein. Am Ende alles in ein Gehäuse und Zack ;) Fertig ist die Customized MIDI-Erweiterung zur MFC-101 ;)
 

OSon

Administrator
Teammitglied
Axe-Fest 2023 Teilnehmer
Axe-Fest 2022 Teilnehmer
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Sep 29, 2012
Beiträge
2.578
Controller-Werte kommt nachher! Will ich heute noch schreiben das Programm.

ABER, es wird komplizierter bei mehreren Tastern. Und wenn dann noch das Status auslesen im Axe dazukommt.... ;-)

Code für die Controller ist mit in dem Projekt enthalten. Das stimmt. Ist auch nur eine einfache Funktion. Das funktioniert auch. Hab ich ja schon getestet. Der Code muss aber etwas anders aussehen, da es sich hier ja um einen Taster handelt. Der Code muss dann folgendes machen:

1. Drücken: sende 1x CC On-Value
2. Loslassen: tu nix!
3. Drücken: sende 1x CC Off-Value
4. Loslassen: tu nix!
5. Fang wieder bei 1. an!

So ganz grob... Der Program Change Code macht im Grunde mit dem Taster ja Folgendes, damit Du das nachvollziehen kannst:

1. Drücken: Sende 1x PC-Code
2. Loslassen: Tu nix!
3. Weiter bei 1.
 

axefx

Administrator
Teammitglied
Axe-Fest 2019 Teilnehmer
Mitglied seit
Sep 28, 2012
Beiträge
5.867
Herzlichen Glückwunsch zu den ersten geglückten Gehversuchen!!

Also dein viebeinige Schalter aus dem Video ist kein Schalter sondern ein Taster in dieser Art
http://www.reichelt.de/Kurzhubtaster/TASTER-9305/3/index.html?&ACTION=3&LA=2&ARTICLE=44586&GROUPID=3278&artnr=TASTER+9305

Bei dem sind jeweils zwei Beinchen kurzgeschlossen und bilden einen gemeinsamen Anschluss. Nimm mal ein Multimeter, dann kannst du das fix nachvollziehen. Schön an diesen Tastern ist, dass die kaum zum Prellen zu bekommen sind :)

Um diesen an den AVR anzuschließen gibt es grundsätzlich drei Möglichkeiten, wobei die dritte die hardwaremässig am wenigsten aufwendige ist.

1. Mit externem Pulldown Widerstand.
- Taster an VCC und Widerstand
- Widerstand an Taster und Masse
- Abgriff für den uC zwischen Taster und Widerstand.

Funktion: Wenn gedrückt, wird eine 1 gelesen, sonst eine 0

Konfiguration der Ports:
- entsprechendes Bit im DDR Register des Ports auf 0 (Eingang)
- entsprechendes Bit im PORT Register Ports auf 0 (interner Pullup aus)


2. Mit externem Pullup Widerstand

- Taster an GND und Widerstand
- Widerstand an Taster und VCC
- Abgriff für den uC zwischen Taster und Widerstand.

Funktion: Wenn gedrückt, wird eine 0 gelesen, sonst eine 1

Konfiguration der Ports:
- entsprechendes Bit im DDR Register des Ports auf 0 (Eingang)
- entsprechendes Bit im PORT Register Ports auf 0 (interner Pullup aus)


3. Verwendung des internen Pullup Widerstands

- Taster an uC und GND

Funktion: wie 2.

Konfiguration der Ports:
- entsprechendes Bit im DDR Register des Ports auf 0 (Eingang)
- entsprechendes Bit im PORT Register Ports auf 1 (interner Pullup an)



Wenn du mir schreibst an welchen Port des AVR der Taster angeschlossen werden soll, kann ich dir auch ein wenig C-Code Schnipsel zukommen lassen.

Welcher AVR ist denn auf deinem Arduino Board überhaupt verbaut?
Danke wildlive! Ich lese zwar, was Du sagst - aber verstehe nicht was Du meinst - zum Großteil nur Bahnhof. Muss jetzt leider gleich weg - heute Abend steht noch ein Gig an ;) Aber hey ... Leute: Ich finde es super cool, dass wir hier zusammen so Sachen basteln! Ich komme sicherlich schon in Bälde mit noch eingien Fragen um die Ecke!!!!

Soweit erstmal:


Jaja, bisschen albern jetzt so sachen mit dem handy zu filmen, aber hey: Für mich ist das echt ein Erlebnis ;) Ich find`s echt genial, vor zwei Wochen hätte ich noch gedacht: "Vergiss es - unmöglich für mich ... " Hammer!
 
Zuletzt bearbeitet:

OSon

Administrator
Teammitglied
Axe-Fest 2023 Teilnehmer
Axe-Fest 2022 Teilnehmer
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Sep 29, 2012
Beiträge
2.578
So, ich habe nun die Beispiele mit dem Taster um eins erweitert. Es gilt der gleiche Aufbau, nur gibt es nun ein Programm, mit dem man Controller-Werte senden kann. Hier wird immer zwischen High (127) und Low (0) Werten hin und her geschaltet. Den Code findet ihr auch hier in der Cloud unter http://cloud.axefx.de/public.php?service=files&t=863e5d41055241f029a323b4e3ca3454.

Im Verzeichnis "Test mit Taster" ist der Schaltungsaufbau für Fritzing und zwei Code-Beispiele (Program Change und Controller) enthalten.
 

OSon

Administrator
Teammitglied
Axe-Fest 2023 Teilnehmer
Axe-Fest 2022 Teilnehmer
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Sep 29, 2012
Beiträge
2.578
So aber damit nicht genug! Ich habe nun auch ein Expression-Pedal angeschlossen! :) Erstmal nur mit einem Poti aus dem Starter Kit. Anschließend habe ich eine Stereo-Klinkgen-Buchse angeschlossen und mein Expression-Pedal angeschlossen! Aufbau ist hier der folgende:

Steckplatine.jpg

Anstelle des Potis geht, wie gesagt, auch eine Stereo-Klinkenbuchse mit Expression-Pedal.


Den Code werde ich hier nun nicht näher beschreiben. Ich habe versucht in den Kommentaren alles wichtige zu erklären. Bei Fragen, einfach fragen! :) Alle Beispiele gibt es wieder hier: http://cloud.axefx.de/public.php?service=files&t=863e5d41055241f029a323b4e3ca3454. Verzeichnis ist diesmal "Beispiel_mit_Poti".

Wichtig ist nur, dass es zwei Programme gibt. Das eine steuert per Controller das Effekt-Gerät, das zweite "Kalibrieren" ist dafür da, die richtigen Kalibirerungswerte für das Pedal herauszubekommen. Da Pedale manchmal unterschiedliche Regelwege haben, muss man hier die Start- und Ende-Werte beachten. Wie das geht, steht aber im Kalibrierungsprogramm. Für Tests geht das natürlich alles auch ohne Kalibrierung!

Damit haben wir erstmal alle Einzelparts zusammen für eine einfache MIDI-Leiste. Fehlt im Grunde nur noch der Code für mehrere Buttons und mehrere Expression-Pedale! Und dennoch probiere ich vorher nun noch aus, die einzelnen Effektblock-States aus dem Axe-FX zu ermitteln. Weiß da jemand genaueres zu? Ich vermute mal, dass ich dann eine zweite MIDI-Verbindung benötige, um aus dem MIDI-Out die richtigen Werte zu empfangen, oder? Über die MIDI-In Buchse des Axe-FXs wird ja vermutlich nichts gesendet!!?
 

OSon

Administrator
Teammitglied
Axe-Fest 2023 Teilnehmer
Axe-Fest 2022 Teilnehmer
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Sep 29, 2012
Beiträge
2.578
Ich lese gerade im MFC-Manual, dass man ein komplett verdrahtetes MIDI-Kabel benötigt. Also mit allen 5-PINs. Aktuell verwenden wir in den Beispielen ja nur 3 Pins, was ja dem MIDI-Standard entspricht. Werden über die weiteren 2 Pins dann für ein MIDI-Out des Axe-FXs belegt? Weiß da jemand genaueres?
 
P

Pacosipulami

Guest
Da ist ja das pure "DIY-MIDI"-Fieber ausgebrochen! Cool! Ich bin momentan ja gerade etwas zurückhaltender was das Basteln angeht (hab einige andere Baustellen), verfolge den Thread aber mit grossem Interesse. An Ardunio hab ich mich bisher (Schande über mich) nie herangewagt. Das muss ich ändern ;-))

Gruss
Pacosipulami
 

OSon

Administrator
Teammitglied
Axe-Fest 2023 Teilnehmer
Axe-Fest 2022 Teilnehmer
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Sep 29, 2012
Beiträge
2.578
Hihi, ganz ehrlich... Ich spiele schon länger mit dem Gedanken ein MIDI-Board zu bauen. Daher hab ich hier nun nicht lange gefackelt! ;-)
 

axefx

Administrator
Teammitglied
Axe-Fest 2019 Teilnehmer
Mitglied seit
Sep 28, 2012
Beiträge
5.867
Ich lese gerade im MFC-Manual, dass man ein komplett verdrahtetes MIDI-Kabel benötigt. Also mit allen 5-PINs. Aktuell verwenden wir in den Beispielen ja nur 3 Pins, was ja dem MIDI-Standard entspricht. Werden über die weiteren 2 Pins dann für ein MIDI-Out des Axe-FXs belegt? Weiß da jemand genaueres?
Ich glaube, hier werden 5 Pins benötigt, weil auch der Datenrückfluss über dasselbe Kabel realisiert werden wollte. Sprich: MIDI IN und OUT gehen über ein Kabel - daher noch zwei Anschlüsse mehr. Kann das sein?

Basti, ich lese deine Beiträge so genau, dass ich sie alle Versuche nachzubauen! :biggrin::biggrin::biggrin: Momentan verstehe ich immer noch fast überall nur bahnhof ... vor allem wenn Wildlive von Pulldown widerständen, VCC`s und uCs spricht ... und DDR Registern ... hiess das nicht früher Gauck-Behörde? :bounce: Also ... nichts gegen die Fachkenntnis von wildlive, denn wenn Basti die versteht und ich wiederum Basti ... ;) Und den rest frag ich mirhier zusammen.

Back to topic: wenn Du auch Midi returns (besser MIDI IN Daten) interpretieren lassen willst vom Controller (wie die MFC), dann wirds wirklich spannend. Mein Etappenziel ist erst einmal etwas niedriger angesetzt, aber jetzt muss ich mir erstmla den CC# Code von Dir ansehen Basti!

MAN BIN ICH FROH EUCH ZU HABEN! DANKE! Das macht schon Spaß mit euch!
 

axefx

Administrator
Teammitglied
Axe-Fest 2019 Teilnehmer
Mitglied seit
Sep 28, 2012
Beiträge
5.867
Kennt ihr eigentlich den Link schon: http://www.ucapps.de/
Yep, ...

2) Dann gibt es das "offene" MIDIbox-Projekt:
http://www.ucapps.de/
http://www.midibox.org/
Naja, erster Post - lange her, mein Gedächntis lässt auch nach .... :bounce: Jedenfalls: Ich habe auf den Seiten nur Bahnhof verstanden (welch Wunder ... *hust*) ... und hatte aus dem Bauch raus so das Gefühl, dass die Arduino Plattform vielleicht doch die etwas "zeitgemäßere", "modernere" Plattform wäre, die auch leichter zu handeln ist? Anyhow ... jetzt haben wir uns ja hier alle ziemlich auf Arduino eingeschossen ... ;)
 

OSon

Administrator
Teammitglied
Axe-Fest 2023 Teilnehmer
Axe-Fest 2022 Teilnehmer
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Sep 29, 2012
Beiträge
2.578
Ich glaube, hier werden 5 Pins benötigt, weil auch der Datenrückfluss über dasselbe Kabel realisiert werden wollte. Sprich: MIDI IN und OUT gehen über ein Kabel - daher noch zwei Anschlüsse mehr. Kann das sein?
Ja das ist so. Soweit bin ich schon! :-D Aber wie ist das dann verkabelt? Pin 2 + 3 für Midi-In und Pin 4 + 5 für Midi-Out? Und ist der RJ45-Anschluss des Axe-FX II evtl. nur ein anderer Anschluss für die Midi-In/Out Buchse? Hat da jemand wissen?


Basti, ich lese deine Beiträge so genau, dass ich sie alle Versuche nachzubauen! :biggrin::biggrin::biggrin: Momentan verstehe ich immer noch fast überall nur bahnhof ... vor allem wenn Wildlive von Pulldown widerständen, VCC`s und uCs spricht ... und DDR Registern ... hiess das nicht früher Gauck-Behörde? :bounce: Also ... nichts gegen die Fachkenntnis von wildlive, denn wenn Basti die versteht und ich wiederum Basti ... ;) Und den rest frag ich mirhier zusammen.
Was soll ich sagen? Wenn Wildlive con Pulldowns und sonstwas anfängt, steige ich auch aus, bzw. versuche es zu verstehen. Aber ich bin eine Niete in Elektronik! Aber ich hoffe, ich lerne es und ich hoffe, ich mache hier nix falsch! ;-) Daher die die kleinen Ziele noch ohne Multiple


Back to topic: wenn Du auch Midi returns (besser MIDI IN Daten) interpretieren lassen willst vom Controller (wie die MFC), dann wirds wirklich spannend. Mein Etappenziel ist erst einmal etwas niedriger angesetzt, aber jetzt muss ich mir erstmla den CC# Code von Dir ansehen Basti!
Ja, das weiß ich ja. Vielleicht kriege ich es ja fertig den Code für eine "normale", nur sendendes MIDI-Board fertig zu bekommen. Dann könntest Du tatsächlich loslegen. :)
 
P

Pacosipulami

Guest
Wenn Wildlive con Pulldowns und sonstwas anfängt, steige ich auch aus, bzw. versuche es zu verstehen.
Ich versuche Euch da zu helfen. Sicher kennt ihr das Problem - ein Schalter/Taster oder Encoder gedrückt oder gedreht und statt sich die Schaltung ein- oder umschaltet, gibt es gleich zwei- oder mehrere Schaltbefehle. Bei einem Encoder oft besonders nervig - statt einen Wert nach vorne, springt er zwei oder drei Werte nach vorne oder zurück . Das kommt von der mechanischen Vibration beim Schaltvorgang, sprich der dadurch entstehenden Schaltsignalverschmutzung. Man sprich dabei auch von "prellen". Und um diese Schalter bzw. Taster zu "entprellen" werden je nach Signalleitung entweder sogenannte Pull-down oder Pull-up Widerstände eingesetzt, die die Schaltung im "offenen" Zustand auf einen definierten Pegel legen um ein "Prellen" eines Schalters/Tasters zu verhindern.

Gruss
Pacosipulami
 

OSon

Administrator
Teammitglied
Axe-Fest 2023 Teilnehmer
Axe-Fest 2022 Teilnehmer
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Sep 29, 2012
Beiträge
2.578
Wenn ich mir das SparkFun MIDI-Board ansehen, ist hier der MIDI In "Optoisoliert" um Masseschleifen zu unterbinden. Ist ja nicht ganz schlecht. Was bräuchte ich dafür, um meinen MIDI-In noch dmit zu erweitern? Kann mir da jemand weiterhelfen?
 

OSon

Administrator
Teammitglied
Axe-Fest 2023 Teilnehmer
Axe-Fest 2022 Teilnehmer
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Sep 29, 2012
Beiträge
2.578
Und das ist egal, was ich da für einen Optokoppler nehme. Hauptsache die passenden Widerstände (und eine Diode) da dran?
 
Oben
mainframe-fourhanded
mainframe-fourhanded