Forum: Mikrocontroller und Digitale Elektronik MIDI-USB-Summierer bauen


von Hi-Tech-Progger S. (Gast)


Lesenswert?

Ich verwende MIDI mit dem klassischen MIDI-Trio, um unterschiedliche 
Controller und Steuergeräte miteinander zu verbinden. Gesteuert wird 
Audio, PA und Licht.

In der jüngeren Zeit ist es allerdings so, dass viele Controller-Geräte 
keinen klassischen MIDI-Ausgang und vor allem kein Through mehr haben, 
sodass Ich grosse Probleme bekomme, moderne Geräte ins Setup 
einzuklinken.

Das Verknüpfen über USB-Hubs ist leider oft nicht möglich, weil die 
Endgeräte nur ein Gerät erkennen oder akzeptieren bzw keine echte 
host-Funktion haben oder es am Strom scheitert.

Ich möchte daher eine programmierbare Platform, an die ich 4 oder mehr 
USB-Geräte anschließen und selber mappen kann. Das heisst, das 
USB-Protokoll umsetzen, die Befehle auf Kanäle verteilen und das 
feedback oder inquiries vom host Rückverteilen und den Controllern 
zuleiten, je nachdem, wer gesendet hat.

Im Prinzip ist es ein Internet-Router für USB, wobei der host nur ein 
einziges Gerät sehen soll.

Das Ummappen hat auch den Zweck, die Bedeutung der Befehle zu ändern: 
Bei den üblichen launch-Pads bin ich oft auf die programmierte Funktion 
festgelegt, die ich nicht schnell ändern kann. Die Setups müssen erst 
vom PC runter geladen werden, was erneuten USB-Stress macht. Schaltet 
man die Settings an machen Geräten um, wie z.B. an meinem Akai MPC, dann 
werden gleich mehrere Funktionen geändert und Geräte fehlgeschaltet.

Obendrein sind die Launch-Pads teuer und haben wenige Tasten. Daher 
würde Ich gerne ganz normale Keyboards benutzen und die Tasten in 
Bereiche gruppieren und zweckentfremden.

Eine Tabelle soll dann einfach definieren, welche Befehlssequenz 
gesendet werden soll, wenn eine bestimmte Taste betätigt wird. Die 
Sequenzen bestehen idealerweise aus bis zu 24 MIDI-Befehlen, was mir 
sehr viele Tasten sparen würde, weil Ich dann mit einer Taste ein 
komplettes Lampensetup weiterschalten könnte.

Ich habe schon bei UCAPPS geschaut, aber da ist nichts derartiges zu 
finden.

Kennt einer zufällig so ein Projekt oder ein System, mit dem man das 
aufziehen kann?

von Joe F. (easylife)


Lesenswert?

Das meiste deines Postings verstehe ich leider nicht.

Wie wäre es denn, wenn du dir einfach ein USB Midi-Interface mit mehr 
als 1 In/Out kaufst?
z.B. MOTU MIDI Express 128 (hat 8 Ein-/Ausgänge).

Oder iConnectivity mio10 (10x In/Out).

: Bearbeitet durch User
von Hi-Tech-Progger S. (Gast)


Lesenswert?

Hallo Joe,

solche Gerätschaften wie 8x8 habe ich haj, aber die verarbeiten nur 
echte MIDI-Geräte mit den bekannten 3 Buchsen. Heutige Controller haben 
die kaum noch, sondern gehen über USB direkt in den PC. Ich brauche aber 
ersten so viele von den Geräten, dass es schwer wird, die über USB Hubs 
zu mischen. Oft werden die Geräte nicht mehr erkannt und es geht gar 
nichts. Wenn sie erkannt werden, geht früher oder später etwas schief.

Daher dachte ich mir, einen intelligenten USB-hub zu nutzen, den man 
programmieren kann, um gleich noch zwei andere Dinge zu tun:

1) Ich möchte die Daten ausmaskieren, um das von von manchen 
Problemcontrollern kommt, zu blocken.

2) Ich möchte die Funktionen dahingehend erweitern, dass ein "Press On" 
eines einzelnen Gerätes nicht nur ein MIDI on sendet, sondern eine ganze 
Sequenz abspielt, um ein Gerät zu konfigurieren.

Von den bekannten MIDI-Programmen her geht das mit SYSEX, aber ich 
möchte und kann das nicht automatisieren. Ich möchte idealerweise EINE 
Taste drücken und es werden mehrere Geräte per MIDI umgeschaltet. Das 
ginge von PC aus, aber auch dann muss der die USB MIDI Daten alle 
kriegen.

Daher dachte Ich, man könnte es gleich in einer externen Hardware 
reinstecken und auf den PC verzichten. Leider sind Masterkeyboards otf 
nicht umfangreich genug, um andere zu kaskadieren und solchen Umfang 
auszuführen.

Es wäre also so, dass ich einen intelligenten Prozessor habe, der von 
mehreren USB-Kanälen die MIDI-Daten empfängt und diese über eine Tabelle 
übersetzt und dann einfach abspielt, was in der Tabelle drin steht.

von Hi-Tech-Progger S. (Gast)


Lesenswert?

Ich habe mal ein Beispiel gemacht mit der Annahme von 8 USB-Eingängen, 
die alle mit einem 61-Tasten-Keyboard versorgt werden.

Der Controller im Gerät (Hub?) müsste wissen, auf welchem Kanal welche 
Taste kommt und dann handeln. Konkret müsste er z.B. 32 MIDI-Ausgänge 
bedienen:


Fall 1: Alle MIDI Daten vom Input 1 auf den Ausgang 3:

If Event.InputKanalNumber = 1 then Ausgang3 := CurrentEvent



Fall 2: Die Taste 3 des Keyboards auf Input 2 schaltet Lampen 2-4

If Event.InputKanalNumber = 1  AND Event.ToneNumber = 3 then
{
for L = 2 to 3
  SentMidiEvent (Ausgang3, Lamp2On);
  SentMidiEvent (Ausgang3, Lamp3On);
  SentMidiEvent (Ausgang3, Lamp4On);
end loop

}

Es wird also ein Programm durchgerattert, das eine vorprogrammierte 
Folge ausgeben kann. Mir würde  es reichen, das fest compiliert zu 
haben.

von Clemens L. (c_l)


Lesenswert?

USB ist auf der Host-Seite sehr komplex. Etwas fertiges gibt es nicht; 
am nächsten käme noch der Kenton MIDI USB Host, das MIDI-Anschlüsse für 
ein USB-Gerät bereitstellt.

Ich würde es mit einem Raspberry Pi (oder einem ähnlichen Linux-System 
mit USB-Host-Unterstützung) versuchen. Für Linux gibt es dann Software, 
mit der man sich so etwas basteln kann (z.B. mididings, midish).

von Hi-Tech-Progger S. (Gast)


Lesenswert?

Das habe ich befürchtet. Ich werde mich mal nach einer solche Linix APP 
umsehen. Im Technoforum wurde eine Software dafür empfohlen. Kann 
mehrere Devices, kostet aber 499,- und ist nicht frei einstellbar.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Oder man kauft halt nur Controller, die noch echtes MIDI sprechen. Wenn 
das nicht geht, versuchen, im USB-MIDI-Controller MIDI-Daten abzugreifen 
und da einen Treiber und eine Buchse dranbauen. Wenn das auch nicht 
geht, die Platine 'rausbauen und was eigenes einbauen, also nur die 
Hardware des Herstellers verwenden. Das wird allemal günstiger und 
schneller gehen, als ein komplettes Host-System zu entwickeln.

: Bearbeitet durch User
von Hi-Tech-Progger S. (Gast)


Lesenswert?

So einfach ist das sicher nicht, eine HW rauszuschmeissen. Ich will mich 
ja eigentlich nur filternd dazwischenhängen.

von Hi-Tech-Progger S. (Gast)


Lesenswert?

Hier sind nochmal zwei solche Kandidaten:

ICON i-ConPad und the i-creativ IR controller. Die haben beide USb, sind 
auch USB-powered und so ohne weiteres nicht gemeinsam oder mit anderen 
zu verwenden. Selbst ein PC mit mehreren USB-ports kommt da oft nicht 
mir klar.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Gerade für einen anderen Thread gefunden:

http://www.kentonuk.com/products/items/utilities/usb-host.shtml

Könnte möglicherweise irgendwobei helfen.

von Hi-Tech-Progger S. (Gast)


Lesenswert?

Das ist der, der oben bereits erwähnt wurde, nehme ich an "Kenton MIDI 
USB Host".

Ok, es würde wieder auf normale MIDI-Schnittstellen übersetzen, aber die 
müssten auch wieder gemerged werden.

Möglicherweise kommt man aber in dieses Gerät irgendwie rein.

von J. S. (engineer) Benutzerseite


Lesenswert?

Re. S. schrieb:
> Ok, es würde wieder auf normale MIDI-Schnittstellen übersetzen, aber die
> müssten auch wieder gemerged werden.

... und nicht nur das: Für jeden USB-Kanal braucht es einen eigenen 
USB-MIDI-Wandler! Wieviele sollten das werden?

Vielleicht ist es ja eine Möglichkeit, das mit intelligenter Hwardware 
zu lösen, z.B. mit Teensy / Arduino. Dafür gibt es DIY USB-Anwendungen, 
teilweise auch MIDI. Da gäbe es z.B. das hier:
http://www.inspektorgadjet.com/cerebelusb/

Der scheint sowas mit Arduino gemacht zu haben. Braucht auch mehrere und 
die müsste man dann dazu bringen, miteinander zu reden.

Die meisten Musiker, die das brauchen, mischen das im PC mit Software. 
Dort gibt es auch die Möglichkeit, MIDI-routing zu betreiben.

von Clemens L. (c_l)


Lesenswert?

Das iConnectMIDI 4+ sieht auch vielversprechend aus.

von Hi-Tech-Progger S. (Gast)


Lesenswert?

Clemens L. schrieb:
> Das iConnectMIDI 4+ sieht auch vielversprechend aus.

Glaub Ich eher nicht. Das sieht mir mehr so aus, als ob das zwei hoasts 
auf die 4 MIDIS zugreifen können.

Ich habe in der Zwischenzeit auch nochmals gesucht aber nichts gefunden.

Kann ja wohl nicht sein!

Sind alle damit zufrieden, dass sie nur ein Keyboard anschließen können?

von Clemens L. (c_l)


Lesenswert?

Reinhard S. schrieb:
> Clemens L. schrieb:
>> Das iConnectMIDI 4+ sieht auch vielversprechend aus.
>
> Glaub Ich eher nicht. Das sieht mir mehr so aus, als ob das zwei hoasts
> auf die 4 MIDIS zugreifen können.

Wäre es zu viel verlangt, mal ins Handbuch zu schauen?
"The default routing (remember, this can be changed): ...
Each port on the USB Host jack routes to:
all four pairs of MIDI DIN jacks"

von Hi-Tech-Progger S. (Gast)


Lesenswert?

Ob 4:1 oder 4:4 ist nicht das Problem. Es geht um die Datenrichtung und 
um die Tatsache, dass die gemultiplexten Daten selbst vom PC oft nicht 
sortiert werden können.

von Tippgeber (Gast)


Lesenswert?

Hier ist ein solches Projekt aufgeführt:
https://hackaday.io/project/169980-20-usb-midi-host

Die hosten praktisch das MIDI-Gerät und wandeln dessen Information in 
ein "normales" (altes) MIDI um. Dazu braucht es eine Verwaltung des 
MIDI-Gerätes, also ein management des Instruments als UBB-Client, einen 
Takt mit Abfragen an das Gerät und einen Empfangspuffer für das 
Gesendete (aus Sicht des Vermittlers, das "Empfangene") sowie einen 
Sendepuffer mit Übersetzung der Pegel. Soll das als MIDI heraus, braucht 
es noch eine Stromschleife.

Wenn die MIDI-Geräte auch gemischt werden müssen, dann braucht es A) 
entweder einen HUB, der das schon auf der USB-Seite tut, oder B) mehrere 
USB-Anschlüsse und hosts, deren Ausgänge wiederum gemischt werden.

A) Das erste scheitert daran, dass die Geräteverwaltung oft schon mit 
professionellen Chips in einem PC nicht funktioniert, weil die Clients 
immer denselben FTDI-Chip drin haben und man sie nicht auseinander 
halten kann, oder sie zuviele Daten liefern, dass der Vermittler es 
nicht schafft, das timing einzuhalten. Besonders bei USB 2.0 Geräten ist 
das so: Die funktionieren oft nur richtig, wenn sie an unterschiedliche 
hubs im PC angeschlossen werden. Trotzdem kommt es da immer wieder zu 
Problemen. Oft haben sie sogar ein spezielles Protokoll und erfordern 
einen speziellen Teiber.

B) Das Zweite scheitert daran, dass der Vermittler nicht weiß, wie er 
mit mehreren Geräten umgehen soll: MIDI kommt mit 16 Kanälen und wenn es 
aus 4 Geräten prickelt, dann müssen 64 auf 16 gemappt werden, was erst 
einmal eine Zuordnung braucht, die willkürlich erfolgen muss.

Mein MIDI-Mischer ist dazu programmierbar, kann in der neuen Version 8x2 
solcher Eingänge auf 8+8 Ausgänge mischen. Jeder davon hat wieder 
"seine" 16 logischen MIDI-Kanäle.

Was noch fehlt ist ein MIDI-host, der schnell genug ist, wirklich das 
Tempo von USB mitzugehen und es auf (m)ein schnelles MIDI übersetzt, 
respektive zumindest auf 230k seriell, damit es Arduino und Raspberry 
oder andere Hardware wie die hier verarbeiten können:

Beitrag "Analoge Orgel mit USB-MIDI steuern"

von J. S. (engineer) Benutzerseite


Lesenswert?

Der obige Beitrag war von mir, war aber nicht eingelogged, da vom 
anderen Browser aus gepostet. Hier wurde das Thema auch aufgegriffen:
Beitrag "Re: Analoge Orgel mit USB-MIDI steuern"

Was ich abweichend von oben noch gefunden habe, ist das hier:
http://www.inspektorgadjet.com/cerebelusb/
Die mischen offenbar sogar schon die USB-Geräte, allerdings geht der 
shop link nicht.(?)

Hier gibt es ein fertiges Produkt für einen Kanal:
https://www.indiamart.com/proddetail/mini-usb-host-shield-2-0-for-arduino-adk-slr-development-tool-20922080730.html

und auch der hier hat was gebaut:
https://modwiggler.com/forum/viewtopic.php?t=240740

Dazu gibt es noch einen "CAMOLA USB MIDI Host Box MIDI".

Diese Geräte kranken aber alle daran, dass sie auf langsames MIDI 
übersetzen und damit ungeeignet sind, Daten aus einem Masterkeyboard 
praktisch zeitgleich zu verarbeiten. Das sendet nämlich auch noch 
spezifisches SYSEX und hat gfs einen Sequenzer drin, der die 
angeschlossenen Synths mit Daten vollklopft.

Schnelle USB-breath controller produzieren inzwischen auch schon 
deutlich mehr MIDI-Daten-Dichte, als es per MIDI 1.0 transportierbar 
wäre. Dazu gehören auch und einige Theremine und Ribbon-Controller.

Mein Ziel ist eine open Plattform, bei der man an die firmware rankommt, 
um sie entsprechen umschalten zu können.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.