MaestroPro

MaestroPro Intern

Mitte der 1990er Jahre veröffentlichte MacroSystem Germany die Maestro Professional Soundkarte für den Amiga. Sie war eine besondere Soundkarte, da sie vollständig digital war und nur optische und koaxiale digitale Anschlüsse hatte. Sie eignete sich für verlustfreie Aufnahmen von CD und DAT sowie für die Erzeugung verlustfreier Audioausgaben für DAT-Aufnahmen. Mit Tools wie Samplitude wurde der Amiga zu einer digitalen Audio-Workstation in Studioqualität. Es gab auch ein Tool für Backups auf DAT. Damals waren diese Bänder die billigste Möglichkeit, ganze Festplatten zu sichern (ein 90-Minuten-DAT-Band konnte fast 1 GB an Daten sichern, was in den 1990er Jahren eine Menge war).

Leider hatte MacroSystem nie einen Treiber für die Soundkarte veröffentlicht, sodass sie nur von wenigen (und meist kommerziellen) Tools genutzt werden konnte. Ich löcherte ihre Entwickler auf jeder Amiga-Messe, die ich besuchen konnte, aber ohne Erfolg. Dann, Ende 1994, beschloss ich, die Datenblätter der Yamaha-Chips zu suchen, das Board-Design einem Reverse Engineering zu unterziehen und selbst einen Treiber zu schreiben. Es kostete etwas Zeit durch Ausprobieren, aber schließlich war ich erfolgreich. In den kommenden Jahren wurde mein Treiber, die maestix.library (Quellcode), zum inoffiziellen Standardtreiber. OctaMed Professional ist vielleicht die bekannteste Software, die ihn nutzt. Einige professionelle Musiker nutzten Amiga und OctaMED für ihre Produktionen, vielleicht wurde mein Treiber also sogar für die Aufnahme der Master einiger bekannter CDs verwendet? 😁

Digitales Audio in aller Kürze

Die MaestroPro kann digitale Audiodaten entweder im S/P-DIF- oder AES-EBU-Standard empfangen und senden. Ersterer ist heute noch weit verbreitet in Heimgeräten, während letzterer eher in Studiogeräten üblich war. Heutige Standards erlauben verschiedene Kodierungen und hohe Abtastraten, aber die MaestroPro konnte nur 2-Kanal 16-Bit Raw-Audio mit Abtastraten von entweder 48kHz (DAT), 44,1kHz (CD) oder 32kHz (DAB) lesen.

Neben den reinen Audiodaten transportiert der Standard auch Channel Status Bits (CSB) und User Data Bits (UDB). Die CSB enthalten Informationen wie die verwendete Abtastrate und den Kopierschutzstatus. Die UDB sind nicht standardisiert und transportieren normalerweise proprietäre Daten zwischen Studiogeräten.

Das Innenleben der Maestro

Das Design des Boards ist geradlinig. Es enthält hauptsächlich einen Sender, einen Empfänger und einen FIFO-Speicher für den Transport der Samples zwischen dem Board und AmigaOS.

Receiver
YM3623B DIR
Receiver...
Transmitter
YM3437C DIT2
Transmitter...
Serial to Parallel
Serial to Parallel
Parallel to Serial
Parallel to Serial
R-FIFO 1Kx16
R-FIFO 1Kx16
T-FIFO 1Kx16
T-FIFO 1Kx16
DATA BUS
DATA BUS
Board
Controller
Board...
UDB Shift Register
UDB Shift Register
Sampling Clock
Sampling Clock
48kHz
48kHz
Optical
Optical
Coax
Coax
Optical Out
Optical Out
Input Signal
Input Signal
FIFO
FIFO
Bypass
Bypass
In
In
Source
Source
UDB Data
UDB Data
Text is not SVG - cannot display

Die optischen und koaxialen Eingänge gehen an einen Yamaha YM3623B Digital Audio Interface Receiver (DIR). Dieser Chip dekodiert den Audiodatenstrom, extrahiert die CSB und UDB und generiert einen rohen Bitstrom der Audiosamples. Schieberegister wandeln ihn in einen parallelen 16-Bit-Strom um, der in einem 1K x 16-Bit Empfangs-FIFO gespeichert wird. Sobald der FIFO zur Hälfte gefüllt ist, wird ein Interrupt ausgelöst und der Amiga-Treiber liest die empfangenen Daten aus dem FIFO. Dies geschieht bis zu 190 Mal pro Sekunde.

Die wichtigsten CSB sind über ein Statusregister des Board-Controllers auslesbar. Die UDB werden in ein separates 8-Bit-Schieberegister kopiert, das vom Treiber abgefragt werden könnte. Allerdings sind UDB normalerweise 32 Bit breit, sodass ihr Auslesen in der Praxis eigentlich nie genutzt wurde (zumindest nicht meines Wissens). Der Maestix-Treiber bot nur eine sehr rudimentäre API für die UDB.

Auf der Senderseite werden die 16-Bit-Samples in einen Sende-FIFO geschoben und dann durch Schieberegister in einen seriellen Bitstrom umgewandelt. Ein Yamaha YM3437C Digital Audio Interface Transmitter (DIT2) wandelt ihn in einen digitalen Audiostrom um und sendet ihn über einen optischen Ausgang. Die Maestro Pro hat keinen koaxialen Ausgang, vermutlich weil auf dem Board nicht genug Platz für einen vierten Anschluss war.

Der DIT2 kann den Takt der Abtastrate nicht selbst generieren. Er benötigt stattdessen eine externe Taktquelle. Auf der Maestro Pro wird dieser Takt durch den DIR generiert. Er wird entweder aus dem Bitstrom des ausgewählten Eingangs abgeleitet oder durch eine interne feste 48kHz-Taktquelle generiert. Aus diesem Grund ist die Maestro Pro für Ausgabe-Abtastraten von 32kHz und 44,1kHz auf externe Signalquellen angewiesen.

Der Sender kann aus zwei Datenquellen wählen. Eine Quelle ist der Sende-FIFO. Die andere Quelle ist der Bitstrom vom DIR, der die FIFOs umgeht. Dies ermöglicht es dem Board, die UDB und CSB des eingehenden Signals direkt zu ändern, ohne die CPU einzubeziehen. Da Sende- und Empfangsweg jedoch vollständig getrennt sind, ist die MaestroPro sogar in der Lage, Full-Duplex-Audiostreaming zu bieten. Die maestix.library nutzt das mit der „Realtime FX“-Funktion, bei der das Signal aus dem Empfangs-FIFO gelesen, von der CPU modifiziert und dann sofort wieder an den Sende-FIFO zurückgeschickt wird.

Das gesamte Board wird von drei GALs und einer kleinen Handvoll 74LS-Logikchips gesteuert. Sie kümmern sich um das Zorro-Bus-Protokoll, stellen Modus- und Statusregister bereit und orchestrieren die Sende- und Empfangswege.

Defekte MaestroPro

Alle Komponenten einer MaestroPro sind noch auf dem Markt zu finden, obwohl beide Yamaha-Chips nicht mehr produziert werden und nur noch auf einigen chinesischen Online-Märkten als NOS-Teile zu finden sind. Aber im Grunde ist es immer noch möglich, eine defekte MaestroPro zu reparieren.

Die größte Schwachstelle sind die drei kundenspezifisch programmierten GALs. Der GAL-Hersteller gibt eine Speichererhaltungszeit von etwa 20 Jahren an. Das klingt nach ziemlich viel, aber vergiss nicht, dass diese Boards inzwischen fast 30 Jahre alt sind. Wir haben diese Lebensdauer bereits um 50% überschritten!

Als ich meinen Amiga im Jahr 2021 reaktivierte, funktionierte meine MaestroPro ein paar Minuten lang einwandfrei, aber dann begann sie, die Synchronisation mit der Audioquelle zu verlieren. Der einzige Weg, das Problem zu beheben, war, den Amiga auszuschalten und ihn für ein paar Minuten abkühlen zu lassen. Eine genauere Diagnose zeigte, dass sich die Karte anscheinend vom Zorro-Bus trennte. Es schien, dass einer der GAL-Chips thermische Probleme hatte oder vielleicht anfing, seine Programmierung zu „vergessen“. Zum Glück konnte ich das Programmierschema wiederherstellen. Ich habe die originalen GALs durch brandneue Atmel ATF16V8C-7PU ersetzt, und zu meiner Erleichterung funktioniert meine MaestroPro jetzt wieder stabil.

Die Fusemaps sind durch MacroSystem urheberrechtlich geschützt, daher ist es mir nicht gestattet, sie der Öffentlichkeit zugänglich zu machen. Wenn du jedoch zufällig eine defekte Maestro Pro hast, setze dich bitte mit mir in Verbindung. Vielleicht kann ich dir bei der Reparatur helfen.

Die Maestro (ohne Pro)

Es gab einen Vorgänger dieses Boards. Er hieß einfach “Maestro” und hatte einige große Nachteile. Erstens hatte er keinen Sender und konnte nur Audiodaten empfangen. Zweitens hatte er keinen FIFO, sodass die Sample-Wörter von der CPU gelesen werden mussten, sobald sie verfügbar waren, was bis zu 96.000 Mal pro Sekunde entspricht. Dies war nur möglich, indem Multitasking und Interrupts während der Aufnahme ausgeschaltet wurden, was auch bedeutete, dass Aufnahmen nicht auf Festplatte geschrieben werden konnten, sondern zunächst im RAM gespeichert werden mussten.

Im Vergleich zu ihrem Nachfolger war die Maestro kein großer Erfolg. Ich habe seit Ende der 1990er Jahre keine mehr gesehen, und ich kenne auch keine einzige Software, die sie tatsächlich nutzt. Aufgrund der technischen Einschränkungen wird sie vom Maestix-Treiber nicht unterstützt.