Forum: Mikrocontroller und Digitale Elektronik MIDI Daten über ADAT übertragen


von Gunter R. (mycrobit)


Lesenswert?

Hallo zusammen,
es geht um die beiden IC AL1401 und AL1402. Diese bieten die Möglichkeit 
über den ADAT Datenstrom auch MIDI Daten zu versenden. Jetzt habe ich 
die Datenblätter schon studiert, aber leider steht da nur, dass der 
USER1 Port für die MIDI Daten gedacht ist. Leider konnte ich noch keine 
genaueren Informationen dazu finden.
Bin für jede weiterführende Info dazu dankbar.

Gruß Gunter

von Wastl (hartundweichware)


Lesenswert?

Gunter R. schrieb:
> Bin für jede weiterführende Info dazu dankbar.

Aus dem Datenblatt ist zu entnehmen:
1
Use of this product requires a license
2
agreement between manufacturer and
3
Alesis Studio Electronics. Details and
4
agreement information are available upon
5
request from Alesis Semiconductor or
6
Alesis Studio Electronics.

Da im Datenblatt sonst keine weiteren Informationen enthalten
sind: was könnte man daraus folgern?

von Gunter R. (mycrobit)


Lesenswert?

Aus diesem Grund frage ich ja hier ob einer mehr Infos als im Datenblatt 
beisteuern kann.

von Wastl (hartundweichware)


Lesenswert?

Du solltest dir klarmachen was hinter dem Ausdruck
"license agreement" steckt, was das für den Einzelnen
bedeuten mag.

von Thomas Z. (usbman)


Lesenswert?

aus dem Datenblatt:
"USER0 is used to transmit the ADAT
format 32-bit timecode. USER1 is
used to transmit MIDI data. USER2
and USER3 are reserved and should
be tied low. User bits are sampled at
the WDCLK edge that indicates the
end of right channel data"

das bedeutet du kannst pro Sample 1 Bit durchschieben L/R Clk ´= 
Samplerate 48k. Das ist doch ziemlich eindeutig im DB beschrieben.

https://pdf.datasheetcatalog.com/datasheets2/15/156040_1.pdf

Diese ALxxx Dinger sind im Prinzip Audio DSPs mit Festprogramm. Ich habe 
damit mal vor 20 Jahren etwas gespielt Es gab von Alesis auch einen 
Assembler bzw Simulator. Da die Dinger maskenprogrammiert waren macht es 
aber keinen Sinn sich damit näher zu beschäftigen. Ich erinnere mich 
jedenfalls nicht an OTPs.

: Bearbeitet durch User
von Gunter R. (mycrobit)


Lesenswert?

Ich habe ein Gerät was mit dem AL1402 das ADAT Signal über das LAN Kabel 
versendet. Das gab es auch mit der MIDI Erweiterung. Jetzt wollte ich 
mir die MIDI Erweiterung selbst dazu bauen. Mir ist nur unklar ob man 
die MIDI Daten einfach so in den AL1401/2 schicken kann und er sich 
kümmert, oder ob man die Daten synchronisieren muss. In Schaltplänen von 
Alesis Geräten, in denen der IC verwendet wird, habe ich bis jetzt noch 
nichts mit dem MIDI gefunden.

von Thomas Z. (usbman)


Lesenswert?

senden:
Immer wenn du eine fallende Flanke an LR hast stellst du ein Bit aus 
deinem MidiStream bereit. Das Bit wird dann mit der steigenden Flanke 
rausgetaktet.
Wenn es nichts neues gibt sendest du eine 0. Das funktioniert weil Midi 
< 48k ist, es gibt also keine Überläufe. Ich würde nach jedem Midi Byte 
2..3 mal 0 senden. Da MidiCmds immer mit gesetztem CMD Bit anfangen 
synct sich das von alleine. Natürlich muss den MidiSender Buch über die 
Bits und Bytes führen, das ist aber trivial.
etwa Midi -> Ringbuffer -> bitserializer -> AL1401

receive:
AL1402 -> Buffer -> Bitdeserializer -> Midi.

Der eigentliche Trick sind so Sachen wie Running Status, Sysex, Realtime 
Events wie Active Sense.

Du brauchst also auf beiden Seiten einen Microcontroller. Einen Sender 
und einen Empfänger. Das Prinzip ist so ähnlich wie bei den Spdif 
Transmittern, dort kann man auch pro Sample ein User Bit rausschieben. 
Z.B für Ascii Meldungen.

Edit:
Ich hoffe mal dass du die Mid Spec, auch im Detail, kennst. Sonst kannst 
du das Ganze sowieso vergessen.

: Bearbeitet durch User
von Gunter R. (mycrobit)


Lesenswert?

Danke, das ist schon mal ein Hinweis dem ich nachgehen kann.

von J. S. (engineer) Benutzerseite


Lesenswert?

Das alte und leidige Thema mit ADAT. Ich habe schon vor 15 Jahren 
probiert, eine Schnittstellenbeschreibung zu bekommen, was mir bis heute 
nicht (offiziell) gelungen ist. Die Firma Alesis schafft es irgendwie 
nicht, Ingenieuren ein NDA zukommen zu lassen, das sie unterzeichnen 
können und auch andere haben das gleiche Problem. Das Thema ist in 
Musikforen breit diskutiert.

Die Trägheit des Herstellers hat dazu geführt, dass

a) einer meiner damaligen Kunden kein ADAT in seinem Gerät drin hat
b) ich (offiziell) kein ADAT in meinen Geräten drin habe

... und das obwohl ADAT im Prinzip die gleichen Daten verschickt wie 
S/PDIF und die meisten wissen, dass ich MIDI mit S/PDIF verpacke.

b) viele andere Herstelller auch kein ADAT mehr benutzen

Zu der Implementierung:

Ich würde überlegen, ob es zielführend ist, den Sub-Kanal wie angedeutet 
zu benutzen, weil der nur 1 Bit / Sample übertragen kann und damit kaum 
schneller ist, als MIDI mit 31k selber. Auch wenn man da theoretisch 8 
Kanäle hat, ist das weit weg von schnell.

von Thomas Z. (usbman)


Lesenswert?

J. S. schrieb:
> Auch wenn man da theoretisch 8
> Kanäle

wie kommst du auf 8 Kanäle?

von J. S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Thomas Z. schrieb:
> wie kommst du auf 8 Kanäle?

ADAT hat im Bezug auf die ursprüngliche Grundlage, S/PDIF@48kHz 
insgesamt 8 virtuelle Kanäle und kann folglich 4 Stereopaare übertragen. 
Alternativ 2 auf 96kHz und einen auf 192kHz. Ab dann braucht es den 
nächsten LWL.

Das ist genau so wie beim TDIF1-Interface, die munter hin und her 
konvertiert werden können. Ich habe den an meinem Mischpult dran und 
schiebe es über die RME in den Rechner. Das ist ja das bequeme, dass man 
mit einem optischen Kanal an der TOSLINK-Buchse gleich 4 Stereobusse in 
den Rechner bekam.

Jahrelang DER Hit. Inzwischen total überholt.

von Rolf M. (rmagnus)


Lesenswert?

Thomas Z. schrieb:
> Ich würde nach jedem Midi Byte 2..3 mal 0 senden. Da MidiCmds immer mit
> gesetztem CMD Bit anfangen synct sich das von alleine.

Aber nur die. Die ggf. folgenden Datenbytes fangen alle mit 0 an und 
können auch komplett 0 sein. Wie werden die von den 2..3 mal 0 
unterschieden, die du vorschlägst zu senden?

von Gunter R. (mycrobit)


Lesenswert?

>Ich habe schon vor 15 Jahren probiert, eine Schnittstellenbeschreibung zu 
bekommen
Das habe ich jetzt auch versucht und warte noch auf eine Antwort.
Da die ADAT Daten in meinem Fall über ein LAN Kabel übertragen werden, 
dienen die MIDI Daten nur der Fernsteuerung der Gain von den 
Eingangskanälen. Somit wäre ich jetzt auch nicht unbedingt an das MIDI 
Protokoll gezwungen. Dem Arduino ist es ja Wurst was er ausgibt und 
empfängt. Hatte nur den Gedanken, dass ich das MIDI Protokoll zur 
Übertragung nutze.

Diese Geräte habe ich 2x:
https://appsys.ch/downloads/adat-multicore/ADX32A-64A_de.pdf
Davon gibt es auch diese mit MIDI was ich eben nicht habe:
https://appsys.ch/en/products/extenders/adx-32b-adx-64b-pro
So funktioniert das super mit 24 Kanälen hin und 8 Kanälen zurück. In 
diesem Beitrag haben sie beschrieben was ich so in etwa nachempfinden 
will:
https://www.musiccraft24.de/index.php?eID=dumpFile&t=f&f=2759&token=439001a68d1dc2297d2c939b7ce58861fd5a41c9
Den MIDI Controller mit den 24 Potis für den Gain baue ich mir selber.

von Thomas Z. (usbman)


Lesenswert?

Nun die beiden Alxxx sind wie gesagt Audio DSPs mit festem Programm. 
Vielleicht bilden die ja sogar einen UART nach. Dann würde es reichen 
einfach mal ein Midi Signal z. B vom Keyboard am AL1401 anzulegen und 
mit dem Oszi zu schauen was am AL1402 rauskommt.
Falls du ein Gerät hast was Active Sense sendet kannst du das auch damit 
mal versuchen.
Schau mal hier:
Beitrag "Usb Midi Firmare für die WCH CH55x Controller"
Die Firmware unterstützt active sensing, bei Bedarf könntest von mir so 
einen Stick haben.

von Rbx (rcx)


Lesenswert?

Gunter R. schrieb:
> aber leider steht da nur, dass der
> USER1 Port für die MIDI Daten gedacht ist. Leider konnte ich noch keine
> genaueren Informationen dazu finden.
> Bin für jede weiterführende Info dazu dankbar.

Ich glaube, die besten Karten hast du, wenn man bei Unternehmen 
nachfragt, die den ADAT supporteten, bzw. Schnittstellen und Tools dazu 
verkauften.
Ob jetzt Yamaha, Steinberg Doepfer, Behringer usw. besonderen 
ADAT-Support hatten bzw. weiß ich nicht, aber auch da könnte man zur Not 
nach Hilfe fragen.

Die Userports selber stelle ich mir so vor: UserP heißt ja, dass es 
Presets gibt, bzw. standardisierte Voreinstellungen.

Beispiel Drumcomputer: Man hat normalerweise die Fabriksounds und einen 
Spursequenzer. Per Midi kann man bei Synths alles mögliches steuern, 
sofern die das anbieten. Bei Drumcomputern hat man u.a. 1-x Userplätze 
für eigene Instrumente, die von einem midigesteuerten Sampler mit 
eigenen Sounds kommen können. Der Sequenzer integriert die Klänge dann 
über Midi auf Kanal xy. Üblicherweise hatte man 16 Kanäle.

Dieserlei Zusammenhänge sollte man aber dem Handbuch entnehmen können.

Außerdem brauchte man VHS-Kassetten 
(https://www.verschwundene-dinge.de/zu-den-themen/musikwiedergabe/alesis-adat-mehrspuraufnahmesystem.html)

von Gunter R. (mycrobit)


Lesenswert?

Mit der Firma Appsys in der Schweiz habe ich schon Kontakt und die waren 
so freundlich von dem Gerät, was ich habe, den Schaltplan zu senden. Das 
ist sehr hilfreich. Leider haben sie nicht den Plan von der Pro gegeben. 
Bei der A sind nur die AL1402 enthalten. Zum Senden schicken sie das 
ADAT gleich auf den Leitungstreiber. Jetzt habe ich zwei Möglichkeiten, 
auf einen ADAT Kanal zu verzichten (das wollte ich vermeiden) und dafür 
ein Aderpaar im LAN Kabel verwenden, oder bei einem Kanal einen AL1401 
einzuschleusen und dort die MIDI Daten zu senden. Beim MIDI Format bin 
ich ganz offen, da ja nur der eine Empfänger es verstehen muss. Dafür 
wollte ich einfach nur SysEx Daten senden.

von Rolf E. (Firma: Appsys ProAudio) (roffez)


Lesenswert?

Hier ist die Fa. Appsys ;-)
Also, das MIDI Userbit kann man in den AL1401 einschleusen und im AL1402 
wieder rausziehen. Das Userbit wird mit 48kHz übertragen (es ist völlig 
egal was man da sendet, es wird einfach mit 48kHz abgetastet und kommt 
auf der anderen Seite mit 48kHz Updatefrequenz wieder raus). Beim 
Übertragen von MIDI muss man beachten, dass man deshalb nicht einfach 
den MIDI-Port ans Userbit anklemmen kann - durch das 48k Sampling wird 
die  Waveform vom MIDI-Datenstrom so verzerrt, dann nicht mehr stimmt. 
Man muss also mittels uC erstmal MIDI auf eine Baudrate von 48kHz 
bringen (= Wordclock, dafür gibt es auch praktischerweise einen Ausgang 
am AL1401/AL1402). Dann mit 48kHz übertragen, auf der anderen Seite dann 
wieder zurück auf 31.25KHz.

von Gunter R. (mycrobit)


Lesenswert?

Hallo Rolf, das sind ja richtig gute Nachrichten. Da muss ich mich in 
meinem Fall nicht an den MIDI Standard halten und den Arduino gleich mit 
48khz senden lassen. Kann ich mir das Umrechnen sparen. Wenn ich richtig 
verstanden habe muss ich das nur synchronisieren mit Wordclock.

von J. S. (engineer) Benutzerseite


Lesenswert?

Rolf E. schrieb:
> Also, das MIDI Userbit kann man in den AL1401 einschleusen und im AL1402
> wieder rausziehen. Das Userbit wird mit 48kHz übertragen (es ist völlig
> egal was man da sendet, es wird einfach mit 48kHz abgetastet und kommt
> auf der anderen Seite mit 48kHz Updatefrequenz wieder raus).

Ist das auf jedem Kanal oder nur auf einem? Was ist, wenn ich ADAT mit 
192kHz fahre?

von Gunter R. (mycrobit)


Lesenswert?

Verändert sich das WordClock Signal bei 192kHz? Es wird doch nur die 
Anzahl der Kanäle reduziert um die Datenmenge bei gleicher Taktung zu 
übertragen.

von Gunter R. (mycrobit)


Lesenswert?

Dazu muss ich sagen, der Mixer kann nicht mehr als 48kHz und mir ist es 
wichtig viele Kanäle über ein LAN Kabel zu senden. Der Bau ist ja für 
die spezielle Anwendung gedacht. Die einfachste Sache wäre ein 
zusätzliches Kabel für die MIDI (Steuer) Daten zu verwenden. Aber genau 
das wollte ich vermeiden.

von J. S. (engineer) Benutzerseite


Lesenswert?

ESI hatte doch da eine Lösung.
Mir war das aber nie was mit MIDI übers Ethernet.

Daher:
http://www.96khz.org/htm/midiviaspdif.htm
Das ist das Schnellste und Beste!

Ich verwende aber das gesamte Stereowort und nicht nur den einen 
USER-Kanal.

Dir wird also nichts anderes überbleiben, als dir das USER-Bit zu 
schnappen und das MIDI einzucodieren.

... und zu hoffen, dass sonst niemand das Signal benutzt. Viele 
Lautsprecherhersteller benutzen das user-bit im S/PDIF und optical ADATA 
nämlich, um ihre System zu synchen.

von Gunter R. (mycrobit)


Lesenswert?

Danke für die weiteren Hinweise. Übrigens hatte ich eine Anfrage bei 
Alesis gestellt. Zu Geräten die sie herstellen können sie Auskunft 
erteilen, aber nicht zu Bauteilen.
Jetzt muss ich mir erst mal einen AL1401 besorgen und dann kann ich das 
mal testen.

von J. S. (engineer) Benutzerseite


Lesenswert?

Gunter R. schrieb:
> brigens hatte ich eine Anfrage bei
> Alesis gestellt. Zu Geräten die sie herstellen können sie Auskunft
> erteilen, aber nicht zu Bauteilen.

Ja so in etwa fallen die Antworten aus. Dabei wäre es zweckmäßig, den 
Standard weitergetrieben zu haben, weil es zumindest damals vor 20 
Jahren die technisch nichts Vergleichbares gab, das so billig war.

von Gunter R. (mycrobit)


Lesenswert?

So, der AL1401 ist eingetroffen. Jetzt meine Frage:
Soll das zu übertragende Bit bei steigender oder fallender Flanke des 
Word clock bereit stehen?
Gibt es schon eine fertige Lösung für synchrone Datenübertragung mit dem 
Arduino?

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.