Jump to content

Anzahl Digitaleingänge der CORE_STM32F4 Module


Holger
 Share

Recommended Posts

Hallo,

ich bin ziemlicher MIDI-Leie, aber im Besitz einer alten Wersi Galaxis Orgel mit 3 Manualen a 5 Oktaven, die ich gerne midifizieren würde. Jetzt ist das Problem, dass ich mit den 128 Digitaleingängen nicht hinkommen würde. Zusammen mit den Pedalen bräuchte ich 213 Digitaleingänge.

Meine Frage ist nun, gibt es z.B. die Möglichkeit mehr als 128 Kanäle mit dem CORE_STM32F4 Modul einzulesen, z.B. indem man den Port (Digitalausgänge) als Eingänge umfunktioniert oder ist dies Hardwaretechnisch nicht möglich? Die Digitalausgänge bräuchte ich nähmlich nicht unbedigt.

Schöne Grüße, Holger

Nun der Versuch auf Englisch:

I have an old Wersi Galaxy organ with 3 manuals a 5 octaves. In this organ I would like to include MIDI. The problem, the 128 digital inputs are not enough. Together with the pedals I need 213 digital inputs.

Now my question: Is it possible to read more than 128 channels with the CORE_STM32F4 module? For example, by the port (digital outputs) converted as inputs?

Best Greetings , Holger

Link to comment
Share on other sites

Hi Holger,

willkommen bei MIDIbox! :-)

es gibt drei Möglichkeiten:

a) Verwendung mehrerer MIDIboxen, die z.B. über MIDI verkabelt werden (teuer und unelegant, aber trotzdem der Vollständigkeit halber aufgeführt ;-))

b) das Limit von 16 Input-Shiftregistern (4 DINx4 Module mit insgesamt 128 Eingängen) softwareseitig etwas anheben, dies ist machbar, aber etwas experimentell und benötigt viele DIN-Module.

c) mit einer Scan-Matrix arbeiten. Der Trick hierbei ist die Tasten/Pedale in Zeilen und Spalten anzuordnen. Über ein DOUT-Modul wird hierbei z.B. eine Zeile "aktiv" versorgt, dann werden die in dieser Zeile geschalteten Spalten über DINs ausgewertet, danach kommt die nächste Zeile dran... hiermit kommt man mit viel weniger Hardware aus, bleibt aber trotzdem in der Lage, auch Velocity-Informationen auszuwerten. Tutorial 29 gibt ein Beispiel für die Umsetzung: http://ucapps.de/mios32_c.html

Viele Grüße und viel Spaß!

Peter

 

Link to comment
Share on other sites

Hallo Peter,

vielen Dank für Deine schnelle Antwort. Ja, Lösung a) wäre mir auch eingefallen. ;)  

Lösung c, da war ich mir nicht sicher ob ich dann auch mehrere Tasten gleichzeitg auswerten kann? Beim Orgelspiel greift man ja auch mal einen Akkord? Ist das da denn noch möglich? Und falls ja, wie siehts da mit dem Timing aus? Wie gesagt, das sind meine ersten Gehversuche mit MIDI. 

Deine Lösung b) schwebte mir so vor. Die zusälichen DIN-Module fände ich nicht ganz so schlimm, da ich diese ohnehin für jedes Einzelmanual auf eine Platine bringen wollte. 

Nun habe ich die Qual der Wahl zwischen b und c.

c wäre natürlich sehr elegant.

Viele Grüße, Holger

 

Link to comment
Share on other sites

Hi Holger,

bei Lösung c) können auch mehrere Tastendrücke gleichzeitig ausgewertet werden, die Scanfrequenz ist sehr hoch... Hoch genug, um die Zeit zwischen "Beginn des Anschlags" (Kontakt 1) und "voller Anschlag" (Kontakt 2) bei Velocity-sensitiven Keyboards genau zu messen. Hierfür bräuchtest Du dann für jede Taste 2 Kontakte, aber ich weiß nicht, in wieweit eine Anschlagdynamik für Orgeln wichtig ist, oder ob Deine Manuale entsprechend umgerüstet werden können...

Lösung b) läuft natürlich immer und Du kannst, wenn Du mit der Anzahl der Shiftregister an ein Hardwarelimit kommst, auch auf Lösung c) umbauen...

 

Dennoch empfehle ich Dir Lösung c), das klappt schon :-). Als MIDIbox Software packst Du dann am besten "MIDO128v3" auf den Core:

http://ucapps.de/midio128.html

Diese Software kann bis zu 16 8x8 Scanmatrizen auslesen, das sind 1024 Eingänge! :-)

http://ucapps.de/midio128/midio128_v3_dio_scanmatrix.pdf

Als Modul bietet sich dann das neue DIO Modul an, siehe MIDIbox Shop, oder

http://ucapps.de/mbhp_dio_matrix.html

Da das alles sehr gut bereits in der Software und Hardware unterstützt wird, würde ich Dir zu diesem Weg raten :-)

Ciao und viele Grüße!

Peter

Link to comment
Share on other sites

Hallo Peter,

ok, da hast Du mir schon mal die Angst eines Unwissenden genommen :) Wenn Du das sagst hat sich diese Methode sicher schon bewehrt. Dann werde ich mich jetzt mal auf Plan c einschießen.

Zwei Kontakte pro Taste hat meine alte Galaxis leider nicht und es ist auch sicherlich nicht einfach dies nachzurüsten. Das wäre vielleicht mal ein Zukunftsprojekt, wenn ich mit MIDI gehen gelernt habe. Die zweite Taste müsste dann ja irgendwie so angeordnet sein, dass sie sobald die Taste berührt wird ein Signal kommt, weil die vorhandene Taste erst schaltet, wenn die Taste gedrückt ist. Möglich wäre unter jede Taste einen DMS zu kleben und über eine Brückenschaltung zu verstärken. Das wäre vielleicht eine klasse Sache. Klar Sinn macht das schon bei einer Orgel. Gerade wenn man eine Gitarre oder Streicherinstrumente simulieren will bestimmt cool. Die modernen Orgeln haben sowas glaube auch, nur mein Schätzchen ist aus den 70ern also komplett analog.  

Ich werde mich sicher bald wieder melden, wenn es losgeht und ich vor dem ein oder anderen Problem stehe. Die Beschreibungen sind ja leider alle in Englisch, und das ist für mich immer sehr schwer zu verstehen.

Aber trotzdem, ich bin schon total gespannt ob ich das hinbekomme.

Dir auch einen schönen Abend und bis dem nächst mal wieder

Holger

 

  • Like 1
Link to comment
Share on other sites

Moin, Moin,

da bin ich schon wieder! Heute sind meine beiden STM32F4 Boards gekommen und ich hatte gleich mein erstes Erfolgserlebnis :-) und die ersten Zweifel.  Nachdem ich die Bootloader Applikation "mios32_bootloader_v1_018" eingeladen habe funktionierte alles wie in der Anleitung. Wenn ich aber anschließend die "midio128_v3_019.hex" auf die STM32F4 schreibe, sagt mir MIOS. "No response from MIOS8 MIOS32 core! (Siehe Sreenshoot) Liegt das daran dass ich noch keine weitere Hardware an der Platine habe oder mache ich irgend etwas falsch?

Gruß Holger

midio128_v3_019.jpg

mios32_bootloader_v1_018.jpg

Link to comment
Share on other sites

Hi Holger,

das schaut doch schon mal ganz gut aus! :-)

Das geschilderte Problem deckt sich mit einem manchmal auftretenden Windows-MIDI-USB-Bug, der uns schon seit einiger Zeit quält. Und zwar wird manchmal direkt nach dem Start die Verbindung zum Core abgebrochen.

So merkwürdig es klingt, probiere mal, alles abzustecken und wieder anzustecken, MIOS Studio neu zu starten, und direkt danach in der Terminalkommandozeile unten drei mal "help" (via Keyboard + Enter) einzugeben und dann erneut upzuloaden, das hilft häufig, die Kommunikation bleibt stabil und der Upload klappt. Du brauchst keine weiteren Zusatzmodule am Core, bevor die Applikation läuft. Eine Alternative wäre ein Upload über die MIDI-Buchsen (und einem MIDI-Interface), oder ein anderes Betriebssystem (Mac oder Linux). Aber es klappt auch mit Windows...

Ciao und viele Grüße!

Peter

Link to comment
Share on other sites

habe alles probiert, auch mal einen anderen PC und sogar einen mit Windows XP. Doch leider immer das gleiche Problem. Ich habe auch mal eine andere Applikation ausprobiert (USB2x2), ging leider auch nicht. Da ich kein Mac habe muss ich wohl warten, bis ich meine MIDI-Adapter Platine bekomme.

Link to comment
Share on other sites

Hm, das ist ungut, es ist sehr wahrscheinlich ein Windows/MIDI/USB-Problem... es gibt einige Reports im Forum mit demselben Problem:

 

Probier doch mal, den gm5 Treiber für Deine Windows-Version (32bit oder 64bit) zu installieren:

http://ucapps.de/mios32_download.html

(Im Thread oben hat es k-Rad geholfen)

Ciao und viel Erfolg!

Peter

Link to comment
Share on other sites

Hallo Peter,

ich habe den GM5 Treiber probiert. Leider auch ohne erfolg :(. Auch habe ich mehrere Versuche gestartet die grüne Taste gedrückt zu halten, die Platine stromlos gemacht, bei gedrückter Taste die USB Kabel wieder angeschlossen und programmiert. Nach dem Programmieren neu gestartet, und das Problem war wieder da. Nur wenn ich die Grüne Taste gedrückt halte, stellt er eine Verbindung her.

Es ist zum verzweifeln

Schöne Grüße, Holger

Link to comment
Share on other sites

Hi Holger...

ok, noch eine Möglichkeit... den Bootloader hast Du mit dem Mini-USB Kabel via ST-Link Software draufgeladen, korrekt?

Und bei der Kommunikation in MIOS-Studio, allerdings nun mit dem Micro-USB Kabel gibt es Probleme? Kannst Du das mal austauschen? Ich hatte schon einige Kabel hier, die sehr schlecht waren...

Ciao und viele Grüße!

Peter

 

Link to comment
Share on other sites

Habe ich probiert, geht auch nicht. Erst hatte ich es das Kabel von meinen Mobiltelefon genommen. Jetzt nochmal das von Reichelt, aber nichts zu machen. Schiiitt

Nachdem ich die Aplikation mit dem MIOS-Studio geflasht habe, muss ich da noch irgendeine Taste besonderst drücken?

Ich habe es schon mit der schwarzen Taste versucht - kurz drücken - mal mit lang drücken. Mit Neustart!

Ich setzte jetzt mal einen Rechner mit Windows 10 auf. Mal schauen was dann passiert.

Link to comment
Share on other sites

Nein, Du musst eigentlich keine Taste drücken. Erst via ST-Link den Bootloader flashen, dann anstecken und MIOS Studio starten, den MIDI Port wählen und Upload der App durchführen (es muss die richtige App aus dem STM32F4 Ordner sein, aber hattest Du gewählt...). Nachdem die Applikation hochgeladen wurde, musst Du MIOS Studio neu starten (oder einen MIDI Port Rescan durchführen), da sich die USB-MIDI-Portnamen geändert haben, aber vorher sagt MIOS Studio "Upload successful" - und so weit kommst Du nicht... Sorry, daß ich Dir da nicht wirklich weiterhelfen konnte... Mit Windows 10 könnte es klappen, oder eben mit einem externen MIDI Interface und verbundenen MIDI Kabeln von MIDI OUT des MIDI-Interfaces zu MIDI IN vom Core und umgekehrt...

Ciao und viele Grüße,
Peter

 

Link to comment
Share on other sites

Hey Peter,

ich habe jetzt noch mal, bevor ich die Applikation geflasht habe, den Befehl "set single_usb 1" + "store" ausgeführt. Damit ging es dann. So wie ich das mit meinen schlechten Englisch rausgelesen habe wird die STM32F4DISCOVERY von dem GM5 teilweise nicht unterstützt. Was ich nur nicht ganz verstehe, ist das es ja offensichtlich teilweise funktioniert und teilweise nicht. Liegt das an den PC oder eher an dem Treiber, oder gibt es eventuell eine USB Karte, die "virtuellen Ports" oder wie auch immer das bezeichnet wird, unterstütz?

Ich vermute mal, so, wie ich die STM32F4 jetzt konfiguriert habe, kann ich nur eine 16x8 Matrix nutzen?

Gibt es eigentlich schon konkrete Pläne von Euch Guru's dieses Problem zu lösen, oder würdest Du mir eher zu einem anderen Prozessor zB.CORE_LPC17?

Schöne Grüße, Holger

Edited by Holger
Link to comment
Share on other sites

Hallo Holger,

das Problem tritt bei allen cores auf, und ausschliesslich unter Windows.

Unter Linux und MacOS koennen die 4 USB Ports problemlos bedient werden.

Leider kann hier nur Microsoft weiterhelfen.
Ich habe uebrigens noch kein USB MIDI Interface mit >= 2 Ports unter Windows gesehen, das mit dem von Microsoft mitgelieferten Treiber problemlos funktioniert. Deshalb haben Firmen angefangen, ihre eigenen Treiber zu implementieren (was wohl nicht so ganz trivial ist), und diese so geschuetzt, dass sie nur mit den eigenen MIDI Interfaces zusammenspielen.

Ich sehe nun allerdings keinen Zusammenhang mit einer 16x8 Matrix?

Gruss, Thorsten.

Link to comment
Share on other sites

Hallo Thorsten!

Ok, das Treiberproblem habe ich verstanden. Also ein reines Windows-Treiberproblem.  Ich denke, auf Microsoft kann man lange warten, also ggf. Ubunto installieren und alles wird gut. :)

Bezüglich der 16x8 Matrix habe ich vieleicht ein Verständnisproblem. Also, wenn ich meine Orgel (3 Manuale a 61 Tasten und Pedal 30 Tasten) komplett midifizieren möchte, müsste ich 4 x 16x8 abtasten (theoretisch würden oder 3 mal 16x7 und einmal 16x2) funktionieren. In MIOS Studio könnte ich nun 127 DIN's zuorden. Beispielsweise die ersten 61 Tasten Kanal 1 die nächsten Kanal 2 usw. Aber nach 127 ist doch schluss. Wie kann ich dann die restlichen Tasten zuordnen? Ich dachte, dafür bräuchte ich dann mehrere USB-Ports. Oder anders gefragt, wofür benötige ich 4 viertuelle Midiports über einen USB-Anschluss sonst, wenn nicht dafür?

Gruß Holger 

 

Link to comment
Share on other sites

Hi Holger,

freut mich, daß es nun klappt - und ein Linux auf einer zweiten Partition, oder auf einem Memorystick macht wirklich Sinn! :-)

die 16x8 DIN-Abtastmatrix hat mit der Anzahl der verfügbaren logischen USB-MIDI-Ports erstmal noch nichts zu tun. Die gescannten Tastenevents werden ja von MIDIO als App "weiterverarbeitet" (die DINs werden nicht in MIOS Studio zugewiesen). Die App kann dann über einen einzelnen "virtuellen" USB-MIDI-Port  z.B. 16 Kanäle betreiben, jeder Kanal kann ja 127 Notenwerte (Note On/Off) beinhalten, das sollte reichen.

Du kannst das sogar direkt über das physikalische Userinterface (MIDIbox SCS) ohne Computer konfigurieren, interessant ist hier die M8x8 page, womit Du eine 8x8er Matrix (64 Scankontakte) zuweisen und die Weiterleitung auf MIDI-OUT Ports, MIDI-Kanäle festlegen kannst.

Aus dem Handbuch kopiert:

The M8x8 page:
Screen
allows to configure the scan matrices:

  • Matrix: the matrix number counted from 1..16
  • Channel: the MIDI channel to which the matrix will send Note Events
  • Base: the base node for the first pin of the matrix.
  • DIN: DIN register assignment. If "---", the matrix is disabled, with "1..16" the selected matrix is assigned to the given DIN shift register.
    Please note that the appr. pins of the shift register won't be available for sending common MIDI events as configured in the DIN page anymore!
  • DOUT: DOUT register assignment. If "---", the matrix won't write to any DOUT register, with "1..16" the matrix will write to the given DOUT register in order to select the matrix row.
    Please note that the appr. pins of the shift register won't be available for outputing values on incoming MIDI events as configured in the DOUT page anymore!
    Please note also that all matrices will output the same value to the DOUT shift registers in order to select a button row. Accordingly it's possible to share a single DOUT register for all matrices to save hardware. However, using multple DOUT SRs could make sense if for example selarate keyboards should be scanned.
Link to comment
Share on other sites

Hi Holger,

genau die App, die oben im vierten Posting empfohlen wurde, ist MIDIO128v3. Das ist das Programm, das Thorsten geschrieben hat, um einfach MIDIfizierungen realisieren zu können, ohne daß man selbst außer dem Hardwarezusammenbau etwas entwickeln muss.

Das Handbuch findest Du hier:

http://ucapps.de/midio128.html

Wenn Dir die Features gefallen und das Projekt läuft, freut sich TK. übrigens immer über eine Bierspende :-)

Ciao und viele Grüße!
Peter

 

Link to comment
Share on other sites

Das hat er sich auch verdient. Da steckt ja ne wahnsinns Arbeit drin.
Ich denke, ich würde bei den vielen Tasten die Bearbeitung der Zuweisungen mit Excel bevorzugen. Wie ich mir die Konfiguration in MIOS anschauen kann, habe ich gerade rausgefunden. Aber nicht, wie ich sie ohne SD-Karte speichern und schreiben kann?

Link to comment
Share on other sites

Super! :-)

Also, Du brauchst eine SD-Karte... Der Editierprozess am PC sollte so laufen (hab es selber noch nicht durchgeführt):

MIDIO128v3 auf Core installieren (falls noch nicht geschehen). SD-Karte rein, Core booten (USB Stromzufuhr ab und anstecken). SD-Karte entnehmen. Auf der Karte ist eine Datei "DEFAULT.MIO". Diese auf Deinen Rechner kopieren und in  "DEFAULT.CSV" umbenennen. Office starten und das CSV bearbeiten. Datei speichern. Wieder in DEFAULT.MIO umbenennen und auf die SD-Karte kopieren. Core erneut booten oder über das SCS-Menü über Disk->Load laden...

Ciao und viel Erfolg!

Peter

Link to comment
Share on other sites

Mir fällt ein Stein vom Herzen. Dann muss ich jetzt nur noch warten bis die Platinen da sind, die ich von SmashTV bestellt habe. Kann ein bisschen dauern. Ich habe mir noch mal die Manuale genau angeschaut. Einen zweiten Schalter einbauen wird sehr schwierig. Mit DMS wird vermutlich auch zu aufwendig und zu teuer. Durch die alte Analogtechnik ist das alles sehr zugebaut und die meisten Kabel sind auf die Platinen direkt aufgelötet. Eventuell gingen kleine Reedkontakte, mal schauen.

Und vielen, vielen Dank für Deine gute Unterstützung und Geduld!

Schönen Gruß, Holger

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...