Arduino MIDI-Translator

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.571
Wie schon in einem anderen Thread angekündigt haben Funkstation und ich ein kleines Bastelprojekt gemacht. Funke wollte mit seinem kleinen Boss FC50 Midi-Treter (5 Preset-Schalter, mehr nicht!) gern auch Szenen schalten und nicht nur Preset anwählen. Das kann der kleine FC50 leider nicht, da hierfür ControlChanges (CCs) gesendet werden müssen. Der FC50 kann aber nur ProgramChanges (PCs) senden.

Hin und her diskutiert und Alternativen gesucht und dann fiel mir was ein. Wir könnten einen Arduino dazwischenhängen. Unser Aufbau sah dann so aus:

FC50 --> Arduino MIDI-In --> Arduino MIDI-Out --> Axe-FX!

Der empfängt alle PCs von der FC50. Den programmieren wir so, dass er einen PC zu bestimmten anderen MIDI-Nachrichten konvertiert. Wir haben begonnen es erstmal ganz einfach zu halten. Wenn auf das Preset 0, 1, 2, 3 oder 4 geschaltet wird, sendet der Arduino an seine MIDI-Out-Buchse einfach auf CC #34 eine 0, 1, 2, 3 oder 4. Der CC #34 ist im Axe-FX der Controller mit dem man direkt Szenen anwählen kann.

Der Source-Code ist aktuell so geschrieben, wenn PCs größer 4 vom Arduino empfangen werden, wird der PC eoinfach an das Axe-FX durchgereicht. Das heißt nur auf der ersten FC50-Bank werden Szenen geschaltet, danach kommen Preset-wechsel. Zusätzlich kann er an der FC50 auch ein Expression-Pedal anschließen, welches CCs sendet. Diese CCs werden auch vom Arduino einfach nur durchgeleitet.

Gesagt getan, simples Programm zusammengeschrieben und Andy gesagt, was er kaufen muss. Der tatsächliche Live-Test steht noch aus, aber meine kleinen Tests haben funktioniert! :)

Alles nichts Wildes. Keine schwierigen Programme! Völlig simples vorgehen, aber sehr effektiv! Wen es interessiert und wer sowas auch brauchen könnte, dem habe ich das Projekt mal auf GitHub.com bereitgestellt: https://github.com/bbuehrig/midi-Translator

Der Code lässt sich einfach auch erweitern und wirklich aufwendige Dinge damit betreiben. Da der Arduino sehr flexibel in der Programmierung ist, könnte man mit ihm auch SysEx-Daten an das Axe-FX senden und somit an jeden beliebigen Parameter eines Effekt-Blocks ein Expression-Pedal hängen... Die Möglichkeiten sind damit auf jeden Fall sehr groß und man kann echt eine Menge aus der kleinen FC50 herausholen! Andy! Stell mal Deine Fotos hier noch mit ein! ;-)
 

funkstation777

Well-known member
Axe-Fest 2023 Teilnehmer
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Okt 7, 2012
Beiträge
6.136
28124316_1955534591378372_1755429807_o.jpg28124381_1955534538045044_1748051385_o.jpg28125924_1955534528045045_1207708183_o.jpg

Wenn man das richtige Gehäuse hat, lässt sich übrigens so ein Arduino fast ohne Lötarbeiten zusammenbauen, da sich die Boards "huckepack" stecken lassen...in meinem Fall ging das
aufgrund der Gehäuseform nicht so gut (und weil ich Vollpfosten vergessen hatte, Steckverbinder mitzubestellen, da hätte ich mir zumindest das Löten zwischen Midi-Board und Arduino erspart)
 

Anhänge

axefx

Administrator
Teammitglied
Axe-Fest 2019 Teilnehmer
Mitglied seit
Sep 28, 2012
Beiträge
5.865
Tolles Projekt, damit könnte ich ja direkt meine olle MIDI Buddy Leiste reanimieren :)
 

axifist

Well-known member
Mitglied seit
Nov 14, 2013
Beiträge
1.925
Sieht recht einfach aus und super dokumentiert.

Wäre es aber ab Zeile 84 nicht schlauer, "case" zu benutzen? Macht wahrscheinlich letztlich keinen Unterschied, aber so viele "else if"s?
 

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.571
Hehe, Gewohnheit... Ich habe das aber mal geändert. In dem Fall ist das eigentlich mit Switch-Case sinnvoller. Und performanter, wie ich gerade nachgelesen habe. ;-) Ich habe es einfach mal geändert... Danke für den Hinweis.
 

axifist

Well-known member
Mitglied seit
Nov 14, 2013
Beiträge
1.925
Ah ok, dass das performanter ist hätte ich jetzt nicht gedacht. Aber um Performance musste dir bei dem Programm ja glaub eh keine Sorgen machen, da macht der Arduino ja bestimmt ordentlich viele Runden pro Sekunde ;)
 

funkstation777

Well-known member
Axe-Fest 2023 Teilnehmer
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Okt 7, 2012
Beiträge
6.136
Heisst das jetzt, daß ich mein CHAOS MIDI MODUL MkI updaten muß? Oder soll ich es gleich verkaufen, weil ein MKII unterwegs ist? Oh Gott, so jung, und doch schon veraltet??? Performance-STeigerung??? Brauch ich das??? ;-)
 

Andy

Well-known member
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Okt 21, 2012
Beiträge
8.738
Vor allen Dingen macht es die switch-case Anweisung leichter erweiterbar und übersichtlicher
 

michl_666

Well-known member
Axe-Fest 2023 Teilnehmer
Axe-Fest 2019 Teilnehmer
Mitglied seit
Jan 21, 2014
Beiträge
1.651
Heisst das jetzt, daß ich mein CHAOS MIDI MODUL MkI updaten muß? Oder soll ich es gleich verkaufen, weil ein MKII unterwegs ist? Oh Gott, so jung, und doch schon veraltet??? Performance-STeigerung??? Brauch ich das??? ;-)
NEIN! Heißt es nicht! Mensch Andy, Dein Gerät ist nicht obsolet, nur weil die Firmware veraltet ist. Sei mal froh, dass das Update auf deiner Kiste läuft. Und hoff, dass die nächsten Ideen der Jungs auch noch auf dem Arduino laufen. Aber wenn die gut sind, werden die drauf achten, dass du noch lange Spaß mit der Kiste hast. Und wenn's mal nimmer geht, verwendest sie einfach so weiter, wie sie ist. Ist doch fast wie beim Axe-Fx ...
Wie klingt das Ding eigentlich? :denk::biggrin:
 

marcor66

Well-known member
Mitglied seit
Apr 23, 2014
Beiträge
1.225
Ich sehe schon hier sind die rischdischen Nerds unterwegs, find isch guud
 

Andy

Well-known member
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Okt 21, 2012
Beiträge
8.738
Ich hatte mir ja auch einen Arduino gekauft, als das mit der DIY Fussleiste hier mal angeschubst wurde .. und dann ins Eck gelegt. Vielleicht pack ich das Ding doch mal wieder aus um dann eine Kanalumschaltung für meinen Amp zu bauen.
 

axefx

Administrator
Teammitglied
Axe-Fest 2019 Teilnehmer
Mitglied seit
Sep 28, 2012
Beiträge
5.865
Ich hatte mir ja auch einen Arduino gekauft, als das mit der DIY Fussleiste hier mal angeschubst wurde .. und dann ins Eck gelegt. Vielleicht pack ich das Ding doch mal wieder aus um dann eine Kanalumschaltung für meinen Amp zu bauen.
#MeToo
 

Andy

Well-known member
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Okt 21, 2012
Beiträge
8.738
Hat von euch schon mal einer den Arduino hinter das Axe gehängt. Mal ne kurze Skizze:

MFC -> FASLINK -> AxeFx II Mk1 FASLINK an Ethercon -> Midi Out -> Arduino -> "irgendwas"

Wenn ich mich recht erinnere ist die Midi out hart mit der Midi in verdrahtet, beim IIer., und auch gleichzeitig eine Thru (also die Out). Leider hab ich mein Axe nicht hier und bin mir anhand des Handbuchs nicht so ganz sicher, ob ich über Ethercon eingehende Midibefehle über out/thru routen kann. Ich meine aber schon. Dann halt über die Thru Funktion, die man im IOMenue aktieren muss. Was kommt da dann eigentlich raus? Die gesamte Midi Kommunikation zwischen MFC und Axe?

Noch ne Frage, man kann ja irgend ein Mapping machen, d.h. wenn über den MFC bspw. PC 1 kommt, geht dann auf Midi out/tru eine 1 raus, wenn ich im AxeFx bswp. bei 1 auf 10 gemappt hab?


Aber macht euch keinen Stress ich nehm die Woche das Axe mal mit, dann kann ich das auch selbst austesten.
 

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.571
Zu frage 1: ja ich geh davon aus, das mit den richtigen Einstellungen am Axe die gesamte Kommunikation zwischen Axe fx und MFC herauskommt.

Zu 2. keine Ahnung... das Mapping passiert in der MFC oder? Keine Ahnung was da dann gesendet wird...
 

Andy

Well-known member
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Okt 21, 2012
Beiträge
8.738
zu1: dann ist da vermutlich einiges los. Ich hab einen alten Midiswitcher, der da möglichweise ein wenig ins Stocken kommen könnte wenn er komplett zugeballert wird. Sofern der Arduino zwischendrin ist, dürfte sich das Problem aber beheben lassen.

zu2: Das Mapping passiert im AxeFx, ob das MFC das auch kann weiß ich gar nicht. Eigentlich geh ich davon aus, dass das AxeFx dann das durchroutet was der MFC schickt. Wäre zumindest konsequent. Ist aber auch nicht so wirklich wichtig. Hatte da eine Idee aber die hat sich mittlerweile wieder erübrigt.


Meine Idee geht in die Richtung, am MFC externe Switches "virtuell" einzubinden. Virtuell heisst, die Dinger zu konfigurieren aber gar nichts physikalisch anzuschließen. Wenn ich mich recht erinnere kann man, ob sie EIN oder AUS sind, irgendwie bei den Szenen einstellen. Müsste dann aber am MFC passieren. Wenn ich dann entsprechende CCs von den Schaltern schicke, könnte ich die CCs mit dem Arduino abgreifen und damit dann die Kanäle meines Amps schalten, nach Szenen. Muss mich aber mal damit beschäftigen, ob sich der Aufwand rechnet.
 
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.571
Du kannst aber auch an die Szene IAs einfach weitere CCs oder PCs setzen, wenn mich nicht alles täuscht. Bin gerade dabei, was ähnliches umzusetzen.
 

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.571
Von der MFC kommen auf jeden Fall beim preset Wechsel so viele MIDI Daten über die Leitung, dass der HK Coreblade abstürzt.... ein Bug laut Hughes & Kettner... :( daher muss ein Midi Filter (oder ein Arduino) mit in die MIDI Leitung zum Amp.
 
Oben
mainframe-fourhanded
mainframe-fourhanded