DYI: MIDI Fußleiste selber bauen?!

axefx

Administrator
Teammitglied
Axe-Fest 2019 Teilnehmer
Mitglied seit
Sep 28, 2012
Beiträge
5.871
Ich dachte, dass OOP eigentlich hilft auf lange Sicht Code zu sparen? Weil eine definierte Variable dann eben einspart, jedesmal "nominal" dieseelben Befehlssätze (nur für einen anderen Button, z.B.:) schreiben zu müssen? Sie "Pulldown-Diskussion", wo am Ende nur eine zeile geändert werden musste, die für alle Schalter galt ... ?

Sehe ich das falsch?


Ich denke zur Zeit über Hardware nach ... welche Taster nehmen?
Den: http://www.musikding.de/1PST-Fusstaster ?
Den: https://www.tube-town.net/ttstore/product_info.php/info/p6178_Alpha-Fusstaster-2-Pol--EIN--EIN-.html
Den: https://www.tube-town.net/ttstore/product_info.php/info/p5802_Fusstaster-1-Pol--EIN----EIN-.html
oder den: https://www.tube-town.net/ttstore/product_info.php/info/p5803_Fusstaster-2-Pol--EIN----EIN-.html

Was bedeutet eigentlich 1PST vs. 2(3)PDT und eine Beschreibung "Fusstaster 1-Pol, EIN - (EIN)" interpretiere ich mal als: Dieser Taster kann "drücken -> Strom durch; loslassen -> Strom nicht durch.
(oder umgekehrt, je nach Programmierung der Software, gelle? das ist die Umkehrung von dem externen Pulldown (Widerstand -> GND) zu den internen Pullups (Widerstand an PIN) RICHTIG? Ich lerne ... ;) )
Aber was macht dann ein 2-Pol Fußtaster? Dasselbe, hat aber einfach nur mehr Pins zum löten dran? so wie unser 4 Pin Buttons, bei denen 2 gebrückt sind, wären bei einem 6 Pin Schalter je drei gebrückt?

In unserer Schaltung brauche ich bisher 1x PIN, 1x GND -> 2 Lötanschlüsse. LED-Steuerung, etc ... läuft alles über Software an eigenen PINs ... mehr als 2 PINs brauche ich nicht, oder? Damit würde die billigste Lösung auch niemals ein Fehlkauf, oder? Nämlich die erstgenannte: http://www.musikding.de/1PST-Fusstaster

Die nehmen? Wenn es soweit ist ...

Bei den Gehäusen lande ich auch bei Nils Empfehlung: Pulverisiertes Stahlgehäuse in schwarz von Hammond: https://www.tube-town.net/ttstore/index.php/cat/c24_Hammond-Stahl-1441-Serie.html
 

Nils H.

New member
Mitglied seit
Nov 6, 2013
Beiträge
9
Auch wenn's bis dahin evtl. noch etwas hin ist: Die größte Unwissenheitsfalle, in die ich getappt bin, waren die ganzen Ausgabestrings und der Zeichensatz für das Display, die standardmäßig im SRAM gespeichert werden - da ging mir auf halber Strecke plötzlich der Speicher aus. Abhilfe schafft nutzung des PROGMEM, damit kann man statische Variablen statt im Arbeitsspeicher im Flash ablegen. Das ist Anfangs etwas tricky, funktioniert aber wunderbar.
 

Nils H.

New member
Mitglied seit
Nov 6, 2013
Beiträge
9
Man muss sich im klaren sein, dass billige Taster möglicherweise mehr prellen und/oder eine eine kürzere Lebensdauer haben können als z.B. die (sehr teuren) Carlings. Ich habe für mein Projekt die Taster von Musikding in der Soft-Variante gewählt, dass heißt, sie haben keine so stark definierte Tastschwelle und klicken nicht. Hat Vorteile beim Bedienen mit der Hand, z.B. beim Programmieren des Boards. Bisher hab ich noch keine Ausfälle, Prellen hält sich in Grenzen; entprellen muss man trotzdem, entweder in Hardware oder in Software. Ich mache das in Software auf Basis der Dannegger-Timer-Routine.


Was bedeutet eigentlich 1PST vs. 2(3)PDT und eine Beschreibung "Fusstaster 1-Pol, EIN - (EIN)" interpretiere ich mal als: Dieser Taster kann "drücken -> Strom durch; loslassen -> Strom nicht durch.
(oder umgekehrt, je nach Programmierung der Software, gelle? das ist die Umkehrung von dem externen Pulldown (Widerstand -> GND) zu den internen Pullups (Widerstand an PIN) RICHTIG? Ich lerne ... ;) )
Aber was macht dann ein 2-Pol Fußtaster? Dasselbe, hat aber einfach nur mehr Pins zum löten dran? so wie unser 4 Pin Buttons, bei denen 2 gebrückt sind, wären bei einem 6 Pin Schalter je drei gebrückt?
1PST (manchmal auch SPST) heißt "1 Pole, Single Throw" und steht für einen Taster/Schalter mit einer Ebene und (meist) einem einfachen Schließer mit zwei Kontakten - Taster gedrückt = Kontakte gebrückt, Taster nicht gedrückt = Kontakte offen.

1PDT = 1 Pole Double Throw, also eine Schaltebene und ein Wechselkontakt mit drei Pins. Der (meist) mittlere Pin wird beim Betätigen vom ersten auf den dritten Pin umgelegt.

2P,3P,4P heißt dann, dass der Taster mehrere Ebenen hat und verschiedene unabhängige Signale gleichzeitig geschaltet werden können. Bei Bodeneffektgeräten nutzt man z.B. einen 3P, mit zwei Ebenen wird der Effekt-Bypass geschaltet, mit dem dritten die Kontroll-LED.


In unserer Schaltung brauche ich bisher 1x PIN, 1x GND -> 2 Lötanschlüsse. LED-Steuerung, etc ... läuft alles über Software an eigenen PINs ... mehr als 2 PINs brauche ich nicht, oder? Damit würde die billigste Lösung auch niemals ein Fehlkauf, oder? Nämlich die erstgenannte: http://www.musikding.de/1PST-Fusstaster

Die nehmen? Wenn es soweit ist ...
Nimm die Softvariante. Die ist einen Euro teurer, aber angenehmer zu schalten (meiner Meinung nach) und nervt nicht so sehr mit Klickgeräuschen.

Edit: Oh, ich sehe gerade, die Softvariante gibt's im Moment nicht.

Gruß, Nils
 
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.586
Übrigens, mal ein kleiner Tipp am Rande... Wer das Arduino mit Code programmiert, und eine MIDI-Out-Buchse normal an Pin 1 angeschlossen hat, dort per MIDI ein Gerät dran hat, kommt es bei mir (und Markus) vor, dass das MIDI-Gerät ein wenig herumspinnt und evtl. wild schaltet. Der bekommt da offensichtlich durch den Programmiervorgang irgendwelche Signale.

Wer das vermeiden möchte, der soll die MIDI-Buchse einfach in z.B. PIN 18 stecken. Da sind noch weitere Serial-Transfer-Aus-/Eingänge am Board vorhanden, die keine Signale bei der Programmierung des Boards heraussenden. Wichtig dabei ist aber, dass ihr für euch die MIDI-Library etwas umkonfiguriert. Die MIDI-Library habt ihr unter Windows nach "C:\Program Files (x86)\Arduino\libraries\MIDI" kopiert. Hier findet ihr die MIDI.h. Dort gibt es einen Eintrag

#define USE_SERIAL_PORT Serial

Wenn ihr das Serial in Serial1 ändert, funktioniert die MIDI-Kommunikation über Pin 18 und stört nicht mehr beim Programmen.
 

Nils H.

New member
Mitglied seit
Nov 6, 2013
Beiträge
9
Der µC auf dem Board wird über die serielle Schnittstelle programmiert; auf den Arduino-Boards sitzt eine USB-UART-Bridge (Uno etc.) bzw. ein Slave-µC (MEGA-Boards), der die Umsetzung USB-Seriell übernimmt. Klar, dass dann an der MIDI-Buchse unsinnige Befehle ausgegeben werden. Wer kein Board mit dem 2560 benutzt, muss damit leben, denn die älteren AVR haben nur eine serielle Schnitstelle.

Gruß, Nils
 

axefx

Administrator
Teammitglied
Axe-Fest 2019 Teilnehmer
Mitglied seit
Sep 28, 2012
Beiträge
5.871
Danke Nils für die PST / PDT Aufklärung - das habe sogar ich verstanden :rolleyes: Betreffend der Schalter: Ich bin eigentlich ein großer Freund von festem Druckpunkt und lauten Geräuschen, das gibt mir irgendwie das gefühl von Stabilität ;) von daher werden es wohl für die ersten Gehversuche die billigen 1PST Schalter mit zwei Lötpins vom Musikding. die habe ich auch schon in meinen 2 2-fach Fußtastern für die 4 External-Switch-Anschlüsse der MFC verbaut - machen mir einen soliden Eindruck. Da sowieso entprellt werden muss ... was soll`s, *schulterzuck ;) Aber jetzt weiss ich, dass ich keine Schalter mit mehr Lötanschlüssen brauche ... gute Sache!

Wer kein Board mit dem 2560 benutzt, muss damit leben, denn die älteren AVR haben nur eine serielle Schnitstelle.
Sprich, OSon`s Umkonfigurierungsvorschlag ( #define USE_SERIAL_PORT Serial ) funktioniert nur mit dem 2560?... wie gut, das ich den habe ... hihi ...
 

axefx

Administrator
Teammitglied
Axe-Fest 2019 Teilnehmer
Mitglied seit
Sep 28, 2012
Beiträge
5.871
Um nochmal auf die Idee mit den Gruppen (siehe http://www.axefx.de/showthread.php/1040-DYI-MIDI-Fußleiste-selber-bauen-!?p=12228&viewfull=1#post12228 ) zurückzukommen:

Der gute Basti hat das schon Software-seitig aufgegriffen, ich will das nochmal anhand folgendem Layout verdeutlichen:



Erklärung:
Die LEDs mit dem Kringel drumherum leuchten aktiv. Die rechte Zeile mit den 4 "weißen" tba (to be advised) - Schaltern sind als Platzhalter für sonstwas zu betrachten, derzeit also zu ignorieren...

Wir haben vier Gruppen:
Preset Gruppe: Immer nur ein PC kann gleichzeitig aktiv sein -> korrespondierende LED brennt (hier: Preset 3)
Scenes Gruppe: Immer diesselbe CC (default 34) mit einem CC Value Status (0 bis 7) kann aktiv sein -> korrespondierende LED brennt (hier: SCENE 2)
Amp Gruppe: 3 CCs und deren Value-Status definieren, welche der 4 möglichen Amp-Kanäle aktiv ist -> korrespondierende LED brennt (hier: Amp-Channel 3 -> könnte also auf dem Axe AMP2 X sein)
Stompbox Gruppe: Beliebig viele CCs können den CC value "AN" haben -> alle aktiven Effektblöcke und deren korresponiderenden LEDs brennen (hier: gleichzeitg stompox 1 und 4)

Dabei ist die Software derzeit so angelegt, dass beliebig viele PCs und CC auf beliebig vielen MIDI Kanälen PRO SCHALTER definiert werden können. Die zugehörigen LEDs der Schalter werden dann jeweils EINER der Gruppen zugeordnet.

Desweiteren kann selbst bestimmt werden, wieviele Schalter überhaupt angelegt werden. damit ist die "Größe" der MIDI Leiste frei skalierbar, die Gruppengrößen der einelnen Schalter-Gruppen ist freu definierbar und welche Gruppen überhaupt genutzt werden soll/können ist auch frei definierbar.

Basti`s Software Ansatz kümmert sich dabei derzeit nur um die "Master"-Funktion des Leiste: Eine Interpretation eingehender MIDI Signale vom Axe-Fx und deren Interpretation (korrekte Anzeige der LED-Stati) ist derzeit noch KEIN Thema.

Aber jetzt, wo ich mir das Schaubild so ansehe fallen mir schon wieder ein paar elementare Probleme ein, die die software, nach meinem jetzigen Verständis- und Kenntnisstand noch nicht berücksichtigt. Da muss ich nochmal ne Email an Basti schreiben, aber der soll sich jetzt erstmal von seinem gestrigen Gig erholen *kicher ... hoffe, der war geil! Der Gig ... ;)

Sollte Basti es schaffen, seinen Software Ansatz echt einsatzfähig durchzusetzen, dann wäre das der Hammer! Ich beispielsweise wäre dann eigentlich schon theoretisch an meinem selbstgesteckten
ersten Etappenziel (auch wenn der Basti die Strecke fast alleine gelaufen sein wird ... :hail:):

4 AMP Schalter + 8 SCENES Schalter. Würde ich dann einfach keine LEDs für die 4 Amp Schalter verbauen, sondern nur für die SCENES, hätte ich schon eine voll einsatzfähige Erweiterung für die MFC. Sprich: Ich nutze nur den Ausschnitt SCENES und AMP-CHANNEL des Schaubildes.

Von daher hege ich große Hoffnung, dass der Basti "die Beer´ noch schält", wie der Hesse zu sagen pflegt .... ;)
 
Zuletzt bearbeitet:

Andy

Well-known member
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Okt 21, 2012
Beiträge
8.738
Ich muss ehrlich gesagt gestehen, das was du hier beschreibst versteh ich besser, als das was das MFC alles so kann oder eben auch nicht kann :)
Ich hinke da als alter Preset-Wechsler noch etwas hinterher ;)

Gruß

Andy
 

axefx

Administrator
Teammitglied
Axe-Fest 2019 Teilnehmer
Mitglied seit
Sep 28, 2012
Beiträge
5.871
Also, wenn wir das so verwirklicht bekommen, wie ich es mir letzten Endes vorstellen KÖNNTE, könnte dieser Footcontroller einen etwas anders gelagerte "Priorisierung" beschreiben, als das übliche, was der Markt kennt. Und auch dieser "Gruppen"-Ansatz könnte in letzter Konsequenz einen Schritt weiter gehen, als das, was die MFC bisher beherrscht.... schaun mer mal ... mein Problem ist, dass ich halt echt nicht programmieren kann. Aber ich hätte da noch so ein paar Ideen im Hinterkopf .... :biggrin: Aber immer eins nach dem anderen ....
 
Zuletzt bearbeitet:

Andy

Well-known member
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Okt 21, 2012
Beiträge
8.738
So, hab mir jetzt auch so ein Board bestellt. Eins mit dem 2560 und nem Display.
Bin mal gespannt, wie lang das unterwegs ist ;) Wobei das nicht so wild ist, die nächsten 1 - 2 Wochen
bin ich eh Land unter :(

Gruß

Andy
 

Andy

Well-known member
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Okt 21, 2012
Beiträge
8.738
Gerade Rückmeldung bekommen, Lieferung erfolgt erst Ende des Monats :(

BTW:
Hat von euch einer die Sourcen zu einem Beispielprogramm um Mididaten von und zum bspw. AxeFx über einen Midi-USB Adapter von nem
Windows Rechner aus zu schicken.

Würd im Vorfeld gern mal was ausprobiern, hauptsächlich in die Richtung gehend, was
das AxeFx so alles an Informationen schickt. Vielleicht könnte man auch ne kleine Simulationsumgebung für den
Code auf dem ATMEGA Board schaffen. Wenn da was nicht funktioniert, wird man ohne nen Debugger ja verrückt.

Wenn nicht versuch ich das MidiOX mal irgendwie einzubinden. Soll ja skriptfähig sein.


Gruß

Andy
 

axefx

Administrator
Teammitglied
Axe-Fest 2019 Teilnehmer
Mitglied seit
Sep 28, 2012
Beiträge
5.871
Mit dem MidiOX müsste man eigentlich die Daten, die das Axe-Fx sendet auslesen können?!
 

Andy

Well-known member
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Okt 21, 2012
Beiträge
8.738
Jepp, das mag sein. Ich würd aber gern die Programmteile, die ich später mal auf dem ATMEGA laufen lassen will, quasi in einem PC Programm auch gleich am PC testen wollen. Da müsst ich erst mal Zugriff auf
ein Interface zum MidiOX haben.

Ums vielleicht verständlicher zu machen, der Basti hat in seinem Programm sendCC und recvCC Funktionen, soweit ich mich erinner und genau solche möchte ich gern am PC. Wenn man dann nicht völlig bescheuert programmiert, kann man das Programm
am PC testen und bindet es später einfach im ATMEGA Projekt ein, bereits getestet - zumindest soweit es geht ;)

Hab vorhin ein paar Qt- Projekte gefunden. Schau ich mir morgen mal näher an.
Jetzt muss ich noch ein wenig üben ;) .....
 
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.586
Nur kurz... Morgen genaueres... Du willst aber nur CCs und PCs senden? Dann sollte das so gehen. Das axe fx an sich sendet allerdings nicht viel. Allerhöchstens das tap Tempo und bei preset umschalten einen Sydney "tick".

Status der effektblöcke liest scheinbar das mfc dann per sysex aus... das kommt aber nicht automatisch vom axe fx!

Gesendet von meinem HTC One X mit Tapatalk
 

Andy

Well-known member
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Okt 21, 2012
Beiträge
8.738
Nur kurz... Morgen genaueres... Du willst aber nur CCs und PCs senden? Dann sollte das so gehen. Das axe fx an sich sendet allerdings nicht viel. Allerhöchstens das tap Tempo und bei preset umschalten einen Sydney "tick".
Status der effektblöcke liest scheinbar das mfc dann per sysex aus... das kommt aber nicht automatisch vom axe fx!
Ich bin mal ganz ehrlich, ich bin mir nicht sicher, was ich mir vom AxeFx senden lassen wollte.

Eigentlich wollte ich mir alles anzeigen lassen, was auch der, ... das MFC kann. Also Presetname, Tuner, ...... ?????
Aber ok, seh ich ein, dass das dann über syx Dateien verschickt wird.

Mein "Starterkit" hängt gerade beim Leipziger Zoll fest. Auch cool, wusst ich nicht, dass die Bestellung bei Amazon eigentlich aus dem Ausland kommt ;)
Man glaubt den Preis beim Zoll nicht.....

Gruß

Andy
 

Andy

Well-known member
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Okt 21, 2012
Beiträge
8.738
Mal ne Frage, wie treib ich es dem AxeFx aus, dass es mich mit Sysx Messages "zuscheisst" ;)
Sorry für die Wortwahl, das ist nicht wirklich böse gemeint.

Aktuell schickt das AxeFx über Midi Sysx-Meldungen und zwar so schnell wie es nur kann.
Hab Send Sysx Realtime im I/O Menue deaktiviert aber das war es wohl nicht.

Ist immer die gleich Nachricht, ich mein ich hatte das schon mal, Tempo oder Tuner oder irgendwas in der Art.
Ich find es nur nicht mehr :(

Gruß
Andy
 

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.586
Ich hätte jetzt gesagt, genau da! Im i/o Menü die realtime sysex daten für Tier und Tempo werden gesendet. Aber das scheint das ja bei dir nie zu sein...

Was sendet denn dein axe fx? Poste mal einen Ausschnitt von dem, was du empfängst...
 

axefx

Administrator
Teammitglied
Axe-Fest 2019 Teilnehmer
Mitglied seit
Sep 28, 2012
Beiträge
5.871
Ich kann nicht viel helfen, aber da war ja mal die Aussage: Wenn Axe-Fx II = MIDI/USB Schnittstelle (für FW update MFC), dann: Video ab 4.15: http://www.youtube.com/edit?video_id=zEZ23o3grPc (sorry, wenig Zeit). Das soll das Gerät "ruhig" stellen ... ;) Dann aber wohl zu ruhig ... *hust*
 

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.586
So, ich habe mit Markus mal meinen letzten Code-Stand getestet. Ich habe etwas mit dynamischer Speicher-Zuweisung gekämpft. Das war wohl etwas zu viel fürs Arduino! ;-) Im GitHub gibt es nun neuen Code. Da könnt ihr nicht nur eine MIDI-Nachricht pro Button senden, sondern beliebig viele. Und LED-Gruppen bilden! Damit bei Szenen, die umgeschaltet werden, auch nur eine LED leuchtet. Genauso bei Presets usw. Damit wäre schon ein sehr individuelles MIDI-Board möglich.

Preset-Bänke (wie bei anderen Midi-Boards) gibt es bei dem Konzept allerdings noch nicht! :)
 

axefx

Administrator
Teammitglied
Axe-Fest 2019 Teilnehmer
Mitglied seit
Sep 28, 2012
Beiträge
5.871
So, ich habe mit Markus mal meinen letzten Code-Stand getestet.:)
Yupp, und hier nun der aktuelle Stand als Video. Hier habe ich quasi 6 Schalter verbaut, die jeweils in Pärchen arbeiten:

2x "blaue" Schalter, die jeweils eine SCENE anwählen.
2x "grüne" Schalter, die jeweils einen "AMP-Kanal" (hier: AMP1X bzw. AMP2Y) auswählen.
2x "rote" Schalter, die "normale" Stompboxes repräsentieren (hier: Drive und Delay).

Das interessante daran ist nun unser "Gruppen-Modus". Alle 6 Schalter senden #CCs (die Gruppe PC wurde hier mangels Baumaterial nicht integriert, wäre aber ebenso machbar). Normalerweise ist es ja dann so, dass CC#s unabhängig an oder aus sein können (Stompox mode). für die letzten beiden CC#s gilt dies auch, aber die Gruppe SCENES und die Gruppe AMPs laufen völlig unabhängig zueinander und unabhängig von der "Stompbox Gruppe".

Somit können nun eben beliebig viele Amp-Kanäle (Schalter) angelegt werden, wo eben auch nur der leuchtet, der aktiviert wurde, beliebig viele Scenes-Schalter, wo eben auch nur diese leuchtet, die aktiviert wurde, beliebig viele Stompboxes, wo alles leuchtet, was angeschaltet wird und beliebig viele PCs, die hier aktuell allerdings nicht konfiguriert sind.

 
Oben
mainframe-fourhanded
mainframe-fourhanded