Jump to content

Midibox HUI für Pro Tools


yagosan
 Share

Recommended Posts

Hallo zusammen.

 

In 2008 hab ich mir eine FX Control auf Basis der Midibox LC gebaut.

Eine LC ohne Motorfader nur um die Effekte zu bearbeiten.

 
post-5343-0-71772500-1437312069_thumb.jp
 
Hab die zwar auch erfolgreich genutzt, bin aber nie über den Prototypen rausgekommen...
Da ich mittlerweile Pro Tools nutze und das natürlich das Mackie Protokoll nicht unterstützt.  :rolleyes:
Hab ich mir gedacht bauste die Box halt um.
Die proof of Concept Phase hab ich erfolgreich überwunden und es scheint alles, was die Mackie HUI kann, machbar zu sein.  :w00t:
War einiges gefummel in Assembler aber mittlerweile funktionieren Buttons, Encoder und das Display!
 
Nun zu meinem Problem:
Pro Tools sendet ein Display Update:
 
B0 0C 1C ;Button Bereich (1c parameter edit) ausgewählt
B0 2C 05 ;Button gedrückt
F0 00 00 66 05 00 12 04 4C 46 20 51 20 31 2E 30 20 20 F7 ;zweite Reihe Pos 01 - 10 (04 nach der 12)
F0 00 00 66 05 00 12 05 4C 46 20 46 20 31 30 30 20 20 F7 ;zweite Reihe Pos 11 - 20
F0 00 00 66 05 00 12 06 4C 46 20 47 20 30 2E 30 20 20 F7 ;zweite Reihe Pos 21 - 30
F0 00 00 66 05 00 12 07 20 20 20 20 20 20 20 20 20 20 F7 ;zweite Reihe Pos 31 - 40
B0 0F 1C ;Button Bereich (1c parameter edit) ausgewählt
B0 2F 02 ;Button losgelassen
F0 00 00 66 05 00 12 00 20 20 20 20 20 20 20 20 20 20 F7 ;erste Reihe Pos 01 - 10
F0 00 00 66 05 00 12 01 4C 46 20 54 20 53 68 65 20 20 F7 ;erste Reihe Pos 11 - 20
F0 00 00 66 05 00 12 02 4C 46 20 20 20 49 6E 20 20 20 F7 ;erste Reihe Pos 21 - 30
F0 00 00 66 05 00 12 03 20 20 20 20 20 20 20 20 20 20 F7 ;erste Reihe Pos 31 - 40

Die Mackie Leute haben damals das Display (2x40) in 8 Bereiche zu je 10 Zeichen aufgeteilt.

Die Box kriegt es aber nicht immer gebacken alle Bereiche darzustellen. Sie übernimmt nur jeden zweiten Sysex String.

Init String:
F0 00 00 66 05 00 
Display Nr:
12 
Display Position:
00 (01 02 03 usw.)
10 Zeichen:
20 20 20 20 20 20 20 20 20 20 
Ende F7

Ich kann das verhalten mit MIOS Studio nachstellen in dem ich im SysEx Tool das Send Delay auf 0 setze und die 8 Sysex String sende

Hab ich die Box langsam gemacht oder kann der PIC18F das nicht umsetzen? 

 

Der von mir zusammengefriemelte sysex Teil:

sysex.inc

 

Meine Software basierend auf einem ASM Skeleton

proControl2.zip

 

MACKIE HUI MIDI protocol reverse-engineering-session by theageman

HUI.zip

 

lg

Andre

 

Link to comment
Share on other sites

Hallo Andre,

 

Du verwendest ein graphisches Display, richtig?

Dann dauert die LCD Ausgabe zu lange.

 

Abhilfe: die Zeichen in einem RAM Buffer zwischenspeichern, und im LCD Handler ausgeben.

 

Hier hat man dann die Zeit, die fuer die Display-Ausgabe spendiert wird, besser unter Kontrolle.

Ich weiss jetzt nicht auswendig, wie lange die Ausgabe bei GLCDs dauert (das haengt vom Display-Typ ab), doch der PIC sollte nicht mehr wie 10 mS spendieren, ansonsten laeuft der MIDI IN Buffer ueber (der kann in dieser Zeit ca. 30 Bytes empfangen)

 

Die LCD Ausgabe sollte also so aussehen, dass der LCD Handler im RAM Buffer nach neuen Zeichen sucht, sie ausgibt, und nach (bspw.) 10 Zeichen abbricht.

Wenn er erneut aufgerufen wird, kann er die restlichen Zeichen abarbeiten, bis der Display-Content mit dem RAM Buffer uebereinstimmt.

 

Wie erkennt man neue Zeichen?

Am einfachsten, in dem man im Buffer die bereits ausgegebenen Zeichen auf 0 setzt, oder auch einfach bit #7 setzt (so mache ich das ueblicherweise - Vorteil: die Zeichen gehen nicht verloren, man koennte also bspw. temporaer auch etwas anderes auf dem Display darstellen, und dann zurueck zum gebufferten Screen)

 

Gruss, Thorsten.

Link to comment
Share on other sites

Hallo Thorsten,

 

Danke für die super schnelle Antwort. :)

 

Ne kein GLCD ist ein 4x40 CLCD. aber das Konzept/Problem müsste das gleiche sein...

 

Während die erste Nachricht geschrieben wird kommt die Nächste, die wird aber nicht abgearbeitet weil ja noch geschrieben wird,
wenn dann die dritte kommt ist das schreiben zwar beendet, die zweite Nachricht ist aber schon verloren... 

 

Ich fange also die sysex Nachrichten ab -> Speicher die zwischen -> und arbeite dann Zeichen für Zeichen ab

dann ist auch egal ob zwischendurch neue Strings kommen, die landen erstmal am ende der Warteschlange...

 

Wenn ich das richtig verstanden hab, dann Danke für die Richtungsweisung. :)

 

Was meinst du mit LCD Händler? Der ist von mir zu Schreiben und dann per USER_DISPLAY_Tick zu starten?

 

Gruss Andre

Link to comment
Share on other sites

Ein character LCD sollte die Zeichen eigentlich ziemlich schnell ausgeben (in 20..30 uS wenn ich mich richtig erinnere), ueber MIDI kommt jedoch nur alle 320 uS ein neues Zeichen.

 

Somit ist es evtl. doch kein Problem mit der Zeichenausgabe, und Du kannst den Code erstmal so lassen wie er ist.

 

Wie vertrauenswuerdig ist eigentlich das MIDI Interface, das du verwendest?

Koennte es sein, dass bereits bei der Uebertragung zum PIC Daten verloren gehen?

Am einfachsten laesst sich das mit einem hardwaremaessigen MIDI Out->IN Loopback am Interface ueberpruefen.

Sende mit dem SysEx Tool die Daten, und ueberpruefe, ob sie auch wieder komplett empfangen werden.

 

Gruss, Thorsten.

Link to comment
Share on other sites

Wirklich vertrauenswürdig ist das Midi Interface nicht gerade. Ist so ein 10€ China MidiBug.

Kleiner durchsichtiger Kasten zwei Midi Kabel auf der einen Seite ein USB Kabel auf der anderen.

Ich probier mal heut Abend meine anderen Möglichkeiten. BSF2000, Soundkarte usw.

 

Gruss Andre

Link to comment
Share on other sites

Ich kriech die Krise! Manchmal ist die Lösung, so einfach...

Hab's grad an meiner BCF2000 angeschlossen. Und es funktioniert wie es soll!  :hyper:

 

Es wird mittlerweile soviel Schrott produziert, reine Energieverschwendung.  :sick:

Nach 33 Jahren Midi Standard sollte man doch meinen, das man ein Interface produzieren kann,

welches auch für einen 10er zuverlässig funktioniert...  :huh:

 

Vielen vielen Dank, 

auch für das Midiboxprojekt  :phone:

Dem Projekt steht nu nix mehr im wege. 

Link to comment
Share on other sites

Tja, ich verstehe das leider auch nicht. Microsoft hat es auch nach 15 Jahren noch nicht geschafft, einen stabilen USB MIDI Treiber bereitzustellen, und bei den Herstellern gibt es viele Dilettanten, die ein Produkt ohne ausgiebige Qualitaetssicherung auf den Markt werfen... die dann leider auch noch jahrelang auf Ebay rumgeistern, weil sie niemand gebrauchen kann.

 

Das perfekte Fertig-Produkt war bisher das Neusonik uMIDI/O22 fuer 15 EUR. Leider war es auch schnell ausverkauft, nachdem wir es auf die Whitelist gesetzt haben. Seitdem habe ich nichts vergleichbares in dieser Preislage gesehen.

 

Gruss, Thorsten.

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...