Jump to content

Frage zu Midisteuerung


mo1001

Recommended Posts

Hallo erstmal in diesem netten Forum!

Für ein Kunstprojekt [[0]] benötigen wir eine eine Ansteuerung. Und dazu habe ich einige Fragen. Ich beschreibe aber erstmal kurz das Projekt , damit jede weiß, worums geht, und danach die spezielle Problematik .

Das Projekt heisst Projekt Musikmaschinen und behandelt die 'Mechanische Umsetzung von elektronischer Musik'. Im Klartext: ein Rechner steuert eine Reihe (etwa 2-3 Dutzend) mechanischer Klangerzeuger (also Trommeln, Saiteninstrumente etc) die durch Motoren und Elektromagneten angeregt werden. Wer das zu kryptisch findet kann sich auf der ProjektHomepage [[0]] genauere Infos holen. :)

Das Projekt  wird durchgeführt von einigen Künstlern aus Göttingen, und läuft schon seit Anfang 2005.

Nun zum Problem: Es sind schon eine Reihe von mechnischen Instrumenten gebaut worden, diese funktionieren auch gut. Zusätzlich gibt es auch schon den leistungselektronischen Teil, auch dieser arbeitet.

Problematisch ist lediglich die Umsetzung MIDI - Steuersignale für die Leitungselektronik. Wir hatten einen Demultiplexer von Botex (ME-72 von Thomann) in Betrieb, der die MIDI Signale eines Channels auf 72 kanäle (Tonhöhe) in Analogwerte (Volumwerte) umsetzt. Das Teil ist toll und total preiswert - nur ist das Timing so schlecht das man es fast nicht einsetzten kann.

Also um zusammenzufassen: wir benötigen etwa 80 binäre Ausgänge, die man per MIDI schalten kann, und das ganze mit einer latenz <20ms.

Ich habe schon auf der Usappsseite geschaut und einiges Equipment (MIDIO128 / Dout modul) gefunden, bin mir aber unsicher ob das das richtige ist und wenn ja wie das zu kombinieren ist,.

ich hoffe ihr könnt uns helfen!

grüsse

moritz

[[0]] http://www.neureal.de/musikmaschinen/

Link to comment
Share on other sites

Hallo Moritz,

fuer MIOS gehoert die Ansteuerung von bis zu 128 digitalen Ausgaengen "zu den leichtesten Uebungen".

Das System ist dabei gerade mal zu 10% ausgelastet, die Latenz ist vernachlaessigbar klein (sobald das MIDI Event eingetroffen ist, wird es im Worst Case ca. 50 uS spaeter bearbeitet). Die Latenz wird also im Wesentlichen von der MIDI Baudrate bestimmt, die betraegt 31250 Baud. Eine Note oder CC Event besteht im Normallfall aus 3 Bytes (-> ergibt 960 uS Uebertragungsdelay), oder im Falle, dass das ein MIDI Programm den sog. Running Status ausnutzt, 2 bytes (-> ergibt 640 uS Uebertragungsdelay)

Nun bleibt nur noch die Frage offen, ob die Ausgaenge ueber ein einzelnes MIDI Event, oder ueber verschiedene (bspw. verschiedene Noten) angesteuert werden sollen.

Falls einzelne Events verlangt werden (bspw. um die Ansteuerung mit einem MIDI Sequenzer zu vereinfachen), ist eine Latenz < 20 mS nicht machbar, da die Uebertragung von 80 Noten bedingt durch die Baudrate 76.8 mS (ohne Running Status), bzw. 51.2 mS (mit Running Status) dauert.

Man koennte jedoch die Eingaenge auch ueber eine SysEx Meldungen ansteuern - 80 bits lassen sich in 12 7-bit werte verstauen, diese werden von einem F0 und F7 Status Byte eingerahmt, macht 14 Bytes. Auf diese Weise koennte man die maximal erreichbare Updaterate bei 5 mS reduzieren.

Gruss,

        Thorsten.

Link to comment
Share on other sites

Hallo Thorsten,

Danke erstmal für deine ausfuehrliche Antwort!

Ich habe aber doch noch eine Frage: du schreibst ,dass die Uebertragung von 80 Noten

ueber verschiedene Events 76.8 mS (ohne Running Status), bzw. 51.2 mS (mit Running

Status) dauern kann. Aber das gilt doch sicherlich nur wenn man alle 80 Noten gleichzeitig

senden wuerde, oder?

Ich habe das wenig ausfuehrlich geschrieben, aber über das Interface laeuft ganz 'normale' Musik:

Bassdrum (ein binaerer Kanal), Snare (zweiter binaerer Kanal) usw.... Insofern ist

es sehr unwahrscheinlich, dass während des Betriebs alle 80 Intrumente gleichzeitig kommen. Die

Verzögerungszeit verringert sich demnach staerker, je weniger Notenwerte gleichzeitig uebertragen werden,

oder?

Und noch ein Frage: du schriebst

Nun bleibt nur noch die Frage offen, ob die Ausgaenge ueber ein einzelnes MIDI Event,

oder ueber verschiedene (bspw. verschiedene Noten) angesteuert werden sollen.[[...]]

Ich muss nnochmal direkt nachfragen: 'Verschiedene Events' heisst hier schon: verschieden

Notenwerte eines Instruments? Das wird, denke ich, der Fall sein.

Und zu allerletzt: Nehmen wir mal an, die Latenz ist in den Griff zu bekommen: Liege ich dann

richtig wenn ich plane, die Baugruppen 'MIDIO 128' und 'DOUT' zu kombinieren, um meine

128 Ausgaenge zu bekommen?

Gruesse aus dem sonnigen Goettigen und 1000 x Danke!! :)

moritz

Link to comment
Share on other sites

Hallo Moritz,

Ich habe aber doch noch eine Frage: du schreibst ,dass die Uebertragung von 80 Noten

ueber verschiedene Events 76.8 mS (ohne Running Status), bzw. 51.2 mS (mit Running

Status) dauern kann. Aber das gilt doch sicherlich nur wenn man alle 80 Noten gleichzeitig

senden wuerde, oder?

Ich habe das wenig ausfuehrlich geschrieben, aber über das Interface laeuft ganz 'normale' Musik:

Bassdrum (ein binaerer Kanal), Snare (zweiter binaerer Kanal) usw.... Insofern ist

es sehr unwahrscheinlich, dass während des Betriebs alle 80 Intrumente gleichzeitig kommen. Die

Verzögerungszeit verringert sich demnach staerker, je weniger Notenwerte gleichzeitig uebertragen werden,

oder?

ja, beides ist richtig.

Und noch ein Frage: du schriebst

Ich muss nnochmal direkt nachfragen: 'Verschiedene Events' heisst hier schon: verschieden

Notenwerte eines Instruments? Das wird, denke ich, der Fall sein.

ja, das war gemeint. Bei der MIDIO128 kann man bspw. auch eine 1-zu-x Steuerung realisieren, bei der ein einziges Event (bspw. ein Program Change), mehrere ausgaenge gleichzeitig schaltet.

Und zu allerletzt: Nehmen wir mal an, die Latenz ist in den Griff zu bekommen: Liege ich dann

richtig wenn ich plane, die Baugruppen 'MIDIO 128' und 'DOUT' zu kombinieren, um meine

128 Ausgaenge zu bekommen?

Ja, ihr benoetigt 4 DOUTX4 Module und ein CORE Modul.

Zusaetzlich ein PIC Programmiergeraet (JDM oder besser PIC_BURNER), wobei hier jedoch optional jemand aus dem Forum den Bootstrap Loader flaschen koennte (MIOS und MIDIO128 werden ueber MIDI aufgespielt)

Gruss,

        Thorsten.

Link to comment
Share on other sites

Ja super! Dann werd' ich das so ausprobieren. Hab mich auch mal mit Markus (Sound Showtechnik, Jühnde) kurzgeschlossen, er wird mir dabei vielleicht etwas Starthilfe geben können.

Also - Vielen Dank für die Hilfe! Ihr hört von uns :)

Moritz

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...
×
×
  • Create New...