Forum: Digitale Signalverarbeitung / DSP / Machine Learning DIY Digital Mischpult - Auswahl DSP/MCU für 40 Channel


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Stefan R. (stefan_r806)


Lesenswert?

Hallo zusammen

Als Hobbyprojekt würde gerne ein relativ kompaktes digitales Mischpult 
für Synthesizer und andere Instrumente bauen. Von der Idee her wie eine 
vereinfachte Version von https://1010music.com/product/bluebox aber mit 
mehr Eingängen/Ausgängen.

So grob sehe ich folgende Anforderungen:

Muss:
- 24 Symmetrische Line Eingänge
- 16 Symmetrische Line Ausgänge
- 12 interne Bus Spuren
- Speicherbare Lautstärke inklusive Mute pro Channel und Bus
- Speicherbares Routing
- Wandlung = 24Bit/48Hz oder besser
- Midi-Anbindung für Steuerung Gerät
- Brauche keine Mikrofon-Verstärkung
- alle Eingänge sollen auf alle Bus Spuren geroutet werden können
- alle Eingänge sollen auf alle Ausgänge geroutet werden können
- alle Busspuren sollen auf alle Ausgänge geroutet werden können

Soll:
- Aufnahme von 8xEinzel-Spuren entweder über USB oder auf SD-Karte
- Einfache Effekte (z.B Filter)

Zukunftsmusik:
- bestehende Open-Source Audio-Projekte auf C/C++-Basis auf das Gerät 
portieren

Im Moment frage ich mich gerade wie ich alle AD/DA Wandler vernünftig 
angebunden und berechnet kriege. Nach aktuellem Verständnis brauche ich 
mindestens 4 Audio-Codecs für alle Wandler (z.b 4x CS42438 mit je 
6ADC/8DAC). Wenn ich das Datensheet richtig verstehe, kann ich diese 
Chips via 8-fach TDM mit je einer Datenline pro IN und Out an einen 
Mikrokontroller/DSP anbinden. Damit bräuchte ich total 4 Serial In und 4 
Serial Out Ports im 8-fach TDM Modus.

Damit sollten alle Mikrokontroller/SBC aus dem Hobby-Bereich wegfallen. 
(Teensy, Raspberry Pi und so)

Aktuell sehe ich noch folgende Lösungen:
- Sigma-DSP (z.B ADAU1452) von Analog Device: Realistische Lösung aber 
ich frage mich ob damit eine Aufnahme Funktionalität überhaupt möglich 
ist. Hier fehlt mir auch etwas die Flexibilität für künftige 
Erweiterungen
- SHARC-DSP von Analog Device: Vermutlich beste Lösung aber Einstieg ist 
mir zu teuer/komplex
- Blackfin-DSP/TI-DSP: Sehe keine Modell mit genügend Ein/Ausgängen.
- High-End ARM MCU z.B i.MX8 Serie: Relativ teuer und bin mir nicht 
sicher ob ich damit wirklich 40 Audio-Wandler angebunden kriege.

Meine Fragen:
- Was gibt es sonst noch für Alternativen um die Wandler angebunden zu 
kriegen?
- Gibt es noch einen cleveren Trick um die Anzahl Serieller 
Eingänge/Ausgänge zu reduzieren?
- Schaffen die gelisteten Geräte überhaupt die gewünschte Funktionalität 
von der Leistung her?

von Hubert (Gast)


Lesenswert?

Am besten ist, du schaust einfach mal rein wie kommerzielle Lösungen das 
in der Regel implementiert haben (z.B. ein X32)

Da findet man dann z.B.

- 8-Fach AD/DA Wandler -> kriegt man von zB Cirrus Logic. Interface ist 
dann in der Regel eine 8-fach TDM.

- FPGA wird in der Regel verwendet um Signalrouting (zwischen DSP, ADC, 
DAC, USB, etc..) zu regeln und kümmert sich um das korrekte clocking 
aller ICs

- DSPs... ADI Sharcs sind aktuell immer noch recht präsent würde ich 
sagen.

- USB Audio Interface -> XMOS hat da quasi eine "Fertiglösung" die man 
einfach so integriert und dann per TDM an den FPGA zum Signalrouting 
anbindet.

- Linux - Prozessor um das User-Interface mit LCD, Netzwerkinterface & 
co zu regeln.

Grad die größeren Pulte (ich würde so sagen ab 24CH aufwärts) haben 
teilweise auch zwei oder mehr DSPs dann drinnen. Dann werden die Kanäle 
einfach auf mehrere DSPs aufgeteilt und dann einfach nur im FPGA oder so 
die Busse zusammengeführt. Manchmal sind auch noch extra DSPs nur für 
die FX-Engine am Start.


Gibt jetzt aber auch schon Lösungen von z.B. Waves oder auch bei Yamaha 
wo die Stagebox einfach nur ein dummer Umsetzer zwischen Analog- und 
Ethernet macht. Das ganze Processing wird bei einem Waves-Server dann 
einfach auf einer standard Intel Platform gemacht mit Linux und 
RT-Patch.

Wenn ich mit sowas anfangen müsste, würde ich glaube ich auch diesen 
Ansatz nehmen: Am besten ein FPGA-Board mit GBit Ethernet nehmen und was 
bauen, was die 40 Audio-Ströme IN/OUT irgendwie auf ein UDP-Interface 
umsetzen und dann schauen dass man das mit möglichst niedriger Latenz 
irgendwie in einen PC zum processing kriegt und dann ein Linux mit 
Realtime-Kernel. Diesen Ansatz fahren schon einige Pro-Audio Geräte die 
ich kenne die für Live-Einsatz konzipiert sind.
So Sachen wie Multitrack-Recording lassen sich dann auch relativ einfach 
umsetzen wenn man dann auf ner Standard PC-Hardware aufbaut und ein 
Linux das ganze USB-Stack etc. mitbringt. Mit USB 3 und ner SSD mit 
Sicherheit kein Problem, 40 Kanäle parallel im WAV-Format aufzunehmen.

von J. S. (engineer) Benutzerseite


Lesenswert?

Stefan R. schrieb:
> Als Hobbyprojekt würde gerne ein relativ kompaktes digitales Mischpult
> für Synthesizer und andere Instrumente bauen.
Ja, die geile Idee hatte ich vor 20 Jahren auch mal:
http://www.96khz.org/htm/audiodsp.htm

Meine SPEC sah ganz ähnlich aus, allerdings wollte ich direkt alles im 
FPGA machen.

Stefan R. schrieb:
> - Was gibt es sonst noch für Alternativen um die Wandler angebunden zu
> kriegen?
Ein $25 FPGA macht das alles. Ansonsten die Kanäle aufteilen, damit ein 
DSP eine Gruppe managen kann, soweit es seine Interfaces erlauben. 
Grundsätzlich geht das easy, weil jeder die gleiche Firmware mit 
Effekten bekommt, es gibt aber dann wieder Routingprobleme 
untereinander. Ich habe daher alle Audio- und Effekt-Mischfunktionen in 
einem FPGA. Der ist aber aufgrund der Vielzahl der Kanäle auch mit mehr 
als einer Leitung mit den Nachbarn verbunden. (wegen der Frage der 
seriellen Anbindung). Man muss auch schauen, wie es (bei TDM) mit der 
Bandbreite aussieht: Dann kannst nicht beliebig viele Kanäle mit 
beliebig hoher Abtastrate einmultiplexen. Der DSP dürfte da das Nadelöhr 
werden. Ich erlaube mir die Bemerkung, dass der Bau von weniger als 
192kHz aus heutiger Sicht ein Schritt in die Vergangenheit ist.

Zum Thema MIDI ist wenig zu sagen. Das ist wohl das trivialste. Für den 
Arduino gibt es ein fertige Lib, die man portieren könnte.

Der Digitalteil ist aber eh das kleinste Problem, von möglichen 
Effektprozessoren und Mathe mal abgesehen. Die Wandler brauchen vorne 
auch ein gutes Analogfrontend. Wenn das nicht sehr gut gebaut ist, hast 
du eine so reduzierte Qualität, dass das digitale Mischen keinen Vorteil 
bringt. Da ist es besser, ein mittelprächtiges Analogpult zu nutzen. Das 
war dann auch damals bei meinem System der Hinkefuss. Ich habe dann mal 
einfach ein MINDPRINT-Modul (DI-MOD) gekauft und über S/PDIF 
angeschlossen. Dann hatte ich auch Qualität im System. Ab da hatte es 
sich mit Selberbau. Ich benutze seither die Studiowandler, z.B. den 
ANDI, Lucid, Tascam und mein Zeug von RME - am Ende alles über ADAT 
angebunden. (Den TASCAM über Konverter).

Ehrlich gesamt, käme ich nicht mehr auf die Idee, ein Pult als 
isoliertes Gerät zu bauen, weil der letzliche Mix meistens im PC erfolgt 
und die heute extrem leistungsfähig sind und die SW alles kann. Die 
meisten Klangerzeuger haben einen analogen Ausgang und sofern sie es 
nicht haben und man digital mischen könnte, muss man die Geräte 
synchronisieren! Dann und nur dann bist du wirklich besser, als analog. 
Du solltest also über einen word clock und/oder digitale S/PDIF-Ausgänge 
nachdenken, auf die sich deine Geräte synchen können. Mein Tascam-Pult 
z.B. fahre ich so. Der synched sich auf meinen S/PDIF - also durchaus 
den gefakten mit 25MHz * 29/59 und zieht den angeschlossenen Wandler 
mit. Damit sind alle 16 digitalen Kanäle und die 8 anlogen, die er noch 
mitwandelt, synchron im System. Das ganze parallel mit den 
Mindpint-Geräten.

Wenn das nicht genutzt wird, bleibt kein Vorteil für das digitale 
Mischen. Demzufolge bestehen die meisten Digitalmischer auch aus 60% 
Analog-Anbindung, 30% Bedienfunktionalität und 10% digitaler 
Mischleistung. Die ist nämlich trivial. Daher muss man sich auch genau 
ansehen, was die jeweilige Konsole kann: Die ganzen Kompakt-Digitalmixer 
verkaufen überwiegend Convenience und USB-Anbindung und weniger gute 
Analogqualtiät. Wenn man da genau draufschaut, sind €50-€100 je Kanal 
fällig, man darf also bei einem guten digitalen Mischer mit gutem 
Analogfrontend ähnliche Summen ausgeben, wie mit guten externen 
Wandlern. Wir sprechen da von 2k aufwärts.

Geräte im Consumerbereich liegen da deutlich drunter, sind aber trotzdem 
noch von einer Qualität, die man selber nicht einfach nachzubauen oder 
gar übertreffen kann. Man ist aber aufgrund der Verbreitung der Geräte 
und deren hohen Stückzahl allein beim Materialeinkauf mal locker doppelt 
so teuer.

Ich empfehle daher entweder ein gutes Analogpult und eine hochwertigen 
Wandler zu nehmen, der 8 Kanäle kann, um 8 Subgruppen parallel 
aufzuzeichnen oder man nimmt einen 2-Kanal-Top-Wandler und zieht sich 
die Stereokanäle beim Produzieren einzeln nacheinander rein. Das 
Einspielen und Komponieren erfolgt voll parallel mit allen Kanälen, die 
man über billige Analogmischer fährt, damit man alles hören kann.

Ich habe meine ganzen Synthies (allein 5 von e-MU) über mittlerweile 5 
Rackmischer und 2 analoge Pulte angeschlossen, einiges geht über die 
ADAT-Wandler rein. Insgesamt weit über 100 Kanaäle gleichzeitig 
angeschlossen und hörbar. Aufgenommen wird 2-4 kanalog über einen ADI-8 
und demnächst den hier: https://www.rme-audio.de/de_adi-2-pro-fs-be.html

Wenn du etwas bauen willst, was es wirklich braucht, dann wäre das ein 
Mischpult, dass auch komfortable Delays drin hat, um Quellen, die 
ungleichmäßig auf MIDI reagieren und beim Audio-Loop andere Latenzen 
haben,  zu synchen. Das kann man auch nutzen, um ein phasenbasiertes 
Stereo aufzuziehen. Diese beiden Punkte waren u.a. Motivator für die 
Konstruktion meines FPGA-Mixers, weil spätestens da Ende ist mit DSP.

Zum Thema "Open Source Effekte einbinden" wäre die Anbindung oder 
Integration eines 56303-Emulators gut. Dafür gibt es bereits Projekte 
und massig Code, z.B. für den hier:
https://dsp56300.wordpress.com/
Den als hardware in einem FPGA um die gestorbene Chami wiederzubeleben:
http://www.96khz.org/htm/chameleonsynth.htm

Man müsste sozusagen einige dieser Emulatoren parallel als Insert, oder 
Send-Return fahren, um dann die verfügbaren Effekte draufzuladen.

Daneben gibt es nach wie vor kein taugliches System, mit dem man mehrere 
USB-Geräte am MIDI anschließen kann. Es bräuchte da eine Platine mit mal 
wenigstens 4-8 USB-hosts, die von einem DSP/Controller gefahren werden, 
der diese Ports auch isoliert und autark verwalten kann, um die Daten an 
Standard-MIDI anzubinden, damit man seine MIDI-Geräte in Echtzeit ohne 
PC oder weiteren Vermittler anfahren kann.

von Stefan R. (stefan_r806)


Lesenswert?

Besten Dank für die aufschlussreichen Empfehlungen! Echt spitze!

Hubert schrieb:
> - FPGA wird in der Regel verwendet um Signalrouting (zwischen DSP, ADC,
> DAC, USB, etc..) zu regeln und kümmert sich um das korrekte clocking
> aller ICs

Jürgen S. schrieb:
> Ein $25 FPGA macht das alles. Ansonsten die Kanäle aufteilen, damit ein
> DSP eine Gruppe managen kann, soweit es seine Interfaces erlauben.
> Grundsätzlich geht das easy, weil jeder die gleiche Firmware mit
> Effekten bekommt, es gibt aber dann wieder Routingprobleme
> untereinander. Ich habe daher alle Audio- und Effekt-Mischfunktionen in
> einem FPGA. Der ist aber aufgrund der Vielzahl der Kanäle auch mit mehr
> als einer Leitung mit den Nachbarn verbunden. (wegen der Frage der
> seriellen Anbindung). Man muss auch schauen, wie es (bei TDM) mit der
> Bandbreite aussieht: Dann kannst nicht beliebig viele Kanäle mit
> beliebig hoher Abtastrate einmultiplexen. Der DSP dürfte da das Nadelöhr
> werden. Ich erlaube mir die Bemerkung, dass der Bau von weniger als
> 192kHz aus heutiger Sicht ein Schritt in die Vergangenheit ist.

Den Ansatz über ein FPGA werde ich prüfen! Bis jetzt habe ich etwas 
davon zurückgeschreckt, aber scheint wohl der vernünftigste Weg zu sein 
unabhängig davon, wo die DSP-Berechnung stattfindet.

Hubert schrieb:
> Am besten ist, du schaust einfach mal rein wie kommerzielle Lösungen das
> in der Regel implementiert haben (z.B. ein X32)

Ich hab mir vor gängig bereits das Service Manual von X32 angeschaut. 
Behringer verwendet da die SHARC-DSPs (ADSP-21371) um die Wandler 
anzuschliessen und vermutlich auch die Berechnungen vorzunehmen. Das 
Problem damit ist jedoch, dass die Kosten für ein Sharc-Board, 
Debugger/Emulator und Visual-DSP sehr hoch scheinen (glaub über 5000 
Euro). Das ist mir für den Anfang dann doch eine Nummer zu gross.

Hubert schrieb:
> Wenn ich mit sowas anfangen müsste, würde ich glaube ich auch diesen
> Ansatz nehmen: Am besten ein FPGA-Board mit GBit Ethernet nehmen und was
> bauen, was die 40 Audio-Ströme IN/OUT irgendwie auf ein UDP-Interface
> umsetzen und dann schauen dass man das mit möglichst niedriger Latenz
> irgendwie in einen PC zum processing kriegt und dann ein Linux mit
> Realtime-Kernel. Diesen Ansatz fahren schon einige Pro-Audio Geräte die
> ich kenne die für Live-Einsatz konzipiert sind.
> So Sachen wie Multitrack-Recording lassen sich dann auch relativ einfach
> umsetzen wenn man dann auf ner Standard PC-Hardware aufbaut und ein
> Linux das ganze USB-Stack etc. mitbringt. Mit USB 3 und ner SSD mit
> Sicherheit kein Problem, 40 Kanäle parallel im WAV-Format aufzunehmen.

Für den Anfang wäre dies sicherlich mal interessant um die Strecke 
Analog-Wandler-FPGA zu prüfen. Für den finalen Wurf hätte ich allerdings 
lieber keinen X86-Computer verbaut wegen Strom-,Platzbedarf und 
Lautstärke.

Hubert schrieb:
> - USB Audio Interface -> XMOS hat da quasi eine "Fertiglösung" die man
> einfach so integriert und dann per TDM an den FPGA zum Signalrouting
> anbindet.

Das müsste ich auch mal prüfen!

Jürgen S. schrieb:
> Ja, die geile Idee hatte ich vor 20 Jahren auch mal:
> http://www.96khz.org/htm/audiodsp.htm
>
> Meine SPEC sah ganz ähnlich aus, allerdings wollte ich direkt alles im
> FPGA machen.

Sehr cool, da warst ja richtig früh dran mit FPGA im Musikbereich! :D 
Gibt es zu dem Projekt noch weitere Informationen? Finde gerade nicht 
besonders viel dazu auf der Website.

Jürgen S. schrieb:
> Ich erlaube mir die Bemerkung, dass der Bau von weniger als
> 192kHz aus heutiger Sicht ein Schritt in die Vergangenheit ist.
>
> Der Digitalteil ist aber eh das kleinste Problem, von möglichen
> Effektprozessoren und Mathe mal abgesehen. Die Wandler brauchen vorne
> auch ein gutes Analogfrontend. Wenn das nicht sehr gut gebaut ist, hast
> du eine so reduzierte Qualität, dass das digitale Mischen keinen Vorteil
> bringt. Da ist es besser, ein mittelprächtiges Analogpult zu nutzen. Das
> war dann auch damals bei meinem System der Hinkefuss. Ich habe dann mal
> einfach ein MINDPRINT-Modul (DI-MOD) gekauft und über S/PDIF
> angeschlossen. Dann hatte ich auch Qualität im System. Ab da hatte es
> sich mit Selberbau. Ich benutze seither die Studiowandler, z.B. den
> ANDI, Lucid, Tascam und mein Zeug von RME - am Ende alles über ADAT
> angebunden. (Den TASCAM über Konverter).
>
> Ehrlich gesamt, käme ich nicht mehr auf die Idee, ein Pult als
> isoliertes Gerät zu bauen, weil der letzliche Mix meistens im PC erfolgt
> und die heute extrem leistungsfähig sind und die SW alles kann.

Ich teile deine Ambitionen aber realistisch betrachtet werde ich kaum 
was auf die Beine stellen, was bezüglich Audio-Qualität an kommerzielle 
Lösungen herankommt.

Meine Zielsetzung ist hier weniger das beste digitale Mischpult in Bezug 
auf die Audioqualität zu erstellen und allen möglichen Features. Es geht 
mir eher darum das man ein Musik-Setup mit vielen Synthesizer ohne 
Computer (DAWLESS :D) speicherbar und relativ kompakt kriegt und hier 
auch ein Routing aller angeschlossenen Geräte pro Speicherplatz 
definieren kann. Dennoch wäre es ganz nett, damit auch Aufnahmen machen 
zu können damit man die Projekte doch noch am PC fertigstellen kann.

Ich wäre einer analogen Lösung auch nicht abgeneigt, aber ich vermute 
ein Speichern aller Lautstärken und Routing-Einstellungen wird analog 
ähnlich kompliziert werden? Oder irre ich mich da?

Jürgen S. schrieb:
> Wenn du etwas bauen willst, was es wirklich braucht, dann wäre das ein
> Mischpult, dass auch komfortable Delays drin hat, um Quellen, die
> ungleichmäßig auf MIDI reagieren und beim Audio-Loop andere Latenzen
> haben,  zu synchen. Das kann man auch nutzen, um ein phasenbasiertes
> Stereo aufzuziehen. Diese beiden Punkte waren u.a. Motivator für die
> Konstruktion meines FPGA-Mixers, weil spätestens da Ende ist mit DSP.

Ja, so was wäre genial! Das nehme ich als Idee mal mit! Doofe Frage aber 
warum ist da Ende mit DSP? Wegen dem Ram für das Delay?

Jürgen S. schrieb:
> Zum Thema "Open Source Effekte einbinden" wäre die Anbindung oder
> Integration eines 56303-Emulators gut. Dafür gibt es bereits Projekte
> und massig Code, z.B. für den hier:
> https://dsp56300.wordpress.com/
> Den als hardware in einem FPGA um die gestorbene Chami wiederzubeleben:
> http://www.96khz.org/htm/chameleonsynth.htm

Coole Idee! Nehme ich auch mal mit.

Ich denke allgemein fehlt mir noch sehr viel Know-How. Im ersten Schritt 
werde ich mal probieren ein paar Wandler-Boards aus China an ein FPGA zu 
kriegen und mal schauen wie ich damit ein Routing hinkriegen kann.

Gleichzeitig muss ich mich zu Thema analog Frontend mal einarbeiten.

Vielen Dank nochmals!

von J. S. (engineer) Benutzerseite


Lesenswert?

Stefan R. schrieb:
> Gibt es zu dem Projekt noch weitere Informationen?
Nur das was auf der Seite drauf ist. Unten dem Link "Platform Overwiew" 
/ "DSP Structure" und dann "Enter old site" folgen.

Stefan R. schrieb:
> ein Speichern aller Lautstärken und Routing-Einstellungen
deshalb nehmen alle den PC. Das Problem ist nämlich auch, die in der DAW 
oder sonst wo gespeicherten Mix-Automations-Kommandos anzuwenden: 
Beliebig viel bekommt man über MIDI nicht nach unten. Daher mache ich 
auch das hier:
http://www.96khz.org/oldpages/enhancedmiditransmission.htm

von Markus W. (naggusm)


Lesenswert?

Jürgen S. schrieb:
> Stefan R. schrieb:
>> ein Speichern aller Lautstärken und Routing-Einstellungen
> deshalb nehmen alle den PC. Das Problem ist nämlich auch, die in der DAW
> oder sonst wo gespeicherten Mix-Automations-Kommandos anzuwenden:
> Beliebig viel bekommt man über MIDI nicht nach unten. Daher mache ich
> auch das hier:
> http://www.96khz.org/oldpages/enhancedmiditransmission.htm


Mhh also ich denke, dass das Speichern der Parameter in den Mischpulten 
im Regelfall dadurch gelöst wird, einfach regelmäßig (nach einer 
Änderung) die Daten irgendwo intern in einem Flash abzulegen.
Wichtig hierbei ist natürlich, dass man auf Wear-Leveling achtet, da man 
ja konstant Daten in den Flash schreibt, damit man nicht irgendwann 
defekte Sektoren o.ä. kriegt.

von J. S. (engineer) Benutzerseite


Lesenswert?

Na klar, dass machen einige. Andere aber auch nicht - eben wegen der 
Flashthematik. Die meisten sind aber deshalb im Gebrauch, weil sie eben 
per MIDI ein- und ausgelesen werden können. Daher sind die gut in die 
DAW integrierbar. Allerdings hat das seine Grenzen:

Der TE möchte eventuell nur "Einstellungen speichern", aber der Punkt 
ist eigentlich der, dass wir bei der MIX-Automation WÄHREND des 
Abmischen die Regler bedienen und damit die Mischung herstellen. Das 
trifft auf den downmix und das Mastering zu und wird insbesondere beim 
DJ-ing so gemacht, wo ganze Tracks gemuted werden oder massix 
Einblendungen unterliegen. DAS ist der Hauptaspket der digitalen Regler 
und nicht nur die letzte Einstellung, die sich auf gfs einen anderen Mix 
von vorgestern bezieht.

Dieses erfordert aber sehr viel MIDI-Kommunikation und ist daher 
limitiert. Nimmt man USB hat man Latzenzen, nimmt man MIDI31250 ist das 
ein Flaschenhals.

Deshalb gingen die Produzenten irgendwann mal auf den PC.
PC-Integration ist daher der Hauptaspekt, wenn man ein System in Mixes 
bringen will. Dort kann man nämlich alles an Einstellungen für die 
Klangerzeuger speichern. Die Mischeinstellungen alleine bringen noch 
nicht viel.

von Klaus R. (klausro)


Lesenswert?

Da hast du dir was vorgenommen...

Stefan R. schrieb:
> Damit sollten alle Mikrokontroller/SBC aus dem Hobby-Bereich wegfallen.
> (Teensy, Raspberry Pi und so)

Naja, die STM32H7 können beim SAI Interface TDM, gugst du: 
https://www.st.com/content/ccc/resource/training/technical/product_training/group0/d3/c0/b0/0e/fe/eb/40/a9/STM32H7-Peripheral-Serial-Audio-Interface_SAI/files/STM32H7-Peripheral-Serial-Audio-Interface_SAI.pdf/_jcr_content/translations/en.STM32H7-Peripheral-Serial-Audio-Interface_SAI.pdf

Das habe ich aber selbst noch nicht probiert. Gleichzeitig könnte man 
mit SPI mehrere STM32H7 koppeln. Einer wird wohl zu schwach für deine 40 
Kanäle sein (hängt von den Effekten ab, die du pro Spur haben willst). 
Mischen sollte er problemlos schaffen. Dank der FPU könnten auch Effekte 
einfach berechnet werden, eine Übersicht ist hier zu finden: 
http://www.spinsemi.com/knowledge_base/effects.html oder im Audio EQ 
Cookbook. 
https://www.musicdsp.org/en/latest/Filters/197-rbj-audio-eq-cookbook.html
Das meiste ist relativ einfach (BTDT), lediglich (gute) Reverb 
Algorithmen sind schwierig zu finden.

Ich möchte anmerken, dass eine FPU für DSP Effekte natürlich nicht 
unbedingt nötig ist, das geht auch mit Festkomma, vereinfacht die Sache 
aber aus meiner Sicht deutlich. Hier meinte jemand, dass wohl auch ein 
RPi Pico TDM mit dem PIO könnte. 
https://forums.raspberrypi.com/viewtopic.php?t=321213 Der RPi Pico ist 
billig, gut verfügbar, könnte aber nur Festkomma. Er hätte aber zwei SPI 
Lines, d.h. man könnte auch hier eine SPI für der TDM nehmen (wenn das 
ginge) und die andere um ihn mit weiter Picos zu koppeln.

Unabhängig davon: Geht es dir um Erkenntnis Gewinn oder um Geld zu 
sparen? Ich habe (Behringer hin oder her) mit dem X32 bzw. mit der Midas 
Variante eigentlich ganz gute Erfahrungen gemacht. Ein Monat ist schnell 
rum um einen lauffähigen Prototypen zusammenzuschustern, der zumindest 
mischen könnte, vom Gehäuse, Effekte usw. mal ganz abgesehen. In der 
Zeit könnte man auch das Geld verdienen, was ein Fertiggerät kostet. Du 
darfst auch nicht vergessen, dass du wohl mehrere µC, DSPs koppeln oder 
einen FPGA verwenden müsstest, um überhaupt die 40 Kanäle verarbeiten zu 
können. Das vereinfacht das Debuging nicht, ein (schneller) 
LogicAnalyzer wird fast Pflicht.

von Markus W. (naggusm)


Lesenswert?

Ich frage mal so frech in die Runde:

Wer hätte denn Lust, ernsthaft mal einen Digitalmixer anzugehen?

Ich wollte das schonmal mit einem Bekannten machen (wir wollten damals 
auf Xilinx Zynq als Platform gehen).
Ob der ZC702 mit seinen zwei A9's ausreicht sei mal dahingestellt. Das 
ist in Sachen Audio mit Sicherheit nicht auf Augenhöhe mit 
hochoptimierten Sharc-DSP's. Allerdings darf man nicht vergessen, dass 
man viel von den Processing in den FPGA auslagern kann.

Wir bzw. ich (ich war für HW verantwortlich) hatte sogar PCB Schematic- 
sowie Layout für Preamps mit digital steuerbarem Gain sowie 
Phantomspeisung und Ausgangsstufen soweit fertig. Das ganze hätte man 
dann an ein Digilent Arty Board angedockt.

Hat sich dann irgendwie verlaufen aufgrund von Zeitmangel und anderen 
Projekten im Leben...

Mir schwebt das immer noch nach wie vor im Kopf vor um ehrlich zu sein - 
allerdings würde ich mich diesmal mehr auf Software bzw Logicware direkt 
fokussieren.

Das Analog I/O kriegt man ja faktisch fertig (siehe z.B. Behringer S32 
bzw Midas DL32 oder von Presonus die AVB Stageboxen).
Man müsste sich dann mal ein Adapter bauen um AES50 kommunizieren zu 
können (soweit mir bekannt ist, ist das einfach nur 100 MBit Ethernet + 
zwei Sample-Clock Signale).

Ich würde das gerne so ein bisschen im Stil dann von Midas MR18 bzw. 
Soundcraft UI24 machen. Über Software per Netzwerk bedienbar...
Gibt sogar recht gute Apps wie z.B. Mixing-Station mit der man das Thema 
GUI dann erschlagen kann um sich direkt auf den DSP-Kernel zu 
fokussieren.

Für mich wäre definitiv Multitrack-Recording direkt auf USB-Disk sowie 
integrierter MP3-Player noch ein habe-muss.

von He. (Gast)


Lesenswert?

Markus W. schrieb:
> Wir bzw. ich (ich war für HW verantwortlich) hatte sogar PCB Schematic-
> sowie Layout für Preamps mit digital steuerbarem Gain sowie
> Phantomspeisung und Ausgangsstufen soweit fertig. Das ganze hätte man
> dann an ein Digilent Arty Board angedockt.

Für industrielle Messtechnik gibt es das fix und fertig, allerdings zu 
Apothekenpreisen. Es wäre wünschenswert, das als DIY-Unit zu bekommen.
Am Besten skalierbar mit Wandlern bis zu 1 MHz.

Markus W. schrieb:
> Für mich wäre definitiv Multitrack-Recording direkt auf USB-Disk sowie
> integrierter MP3-Player noch ein habe-muss.
In der Band benutzen wir ein Tascam Model 24. Der kann direkt auf 
MC-card.
Auch die Presonus-Geräte können das.

von Thomas F. (tf1973)


Lesenswert?

Wenn man nicht wirklich schon sehr fit ist mit FPGA, finde ich eine 
Mixing Console damit schon sehr ambitioniert. Der Programmieraufwand 
dürfte immens sein. Ich halte die Lösung mit ADAU1452/146x für deutlich 
effizienter als Einzelstück. Mit SIGMA STUDIO kommt man da sehr schnell 
zu Ergebnissen.
Solange man keine immensen Delay Settings braucht oder gar FIR Filter, 
kommt man damit sehr gut zurecht. Man hat dann immer genug Biquads für 
die ganzen Filter. Man kann zum Beispiel 4 ADAU nehmen und untereinander 
per I2S verbinden. Als Wandler funktionieren 8-Kanal ADC und DAC von AKM 
recht gut (und klingen nebenbei auch noch besser als der ganze CIRRUS 
Kram, Sorry, isso....), das Aurora freeDSP Projekt zeigt wie diese 
eingebunden werden können.
Eine komplette Stagebox bauen ist noch einmal eine besondere Hausnummer 
wegen der Netzwerkgeschichte :) "AES50 ist ein bischen 100Mbit mit 
Clock"  unterschätzt die Sache komplett. Aber als Ansatz wäre hier 
eventuell die Verwendung von AES67 Modulen interesant, sowas bekommt man 
locker von Alibaba:

https://www.alibaba.com/product-detail/Audiocom-Dante-AES67-32IN-32OUT-Audio_1600706009810.html?spm=a2700.galleryofferlist.normal_offer.d_title.6e085311XjgbD4

von J. S. (engineer) Benutzerseite


Lesenswert?

Markus W. schrieb:
> Man müsste sich dann mal ein Adapter bauen um AES50 kommunizieren zu
> können (soweit mir bekannt ist, ist das einfach nur 100 MBit Ethernet +
> zwei Sample-Clock Signale).

Hatte ich mir schon mal angesehen. Ist sicher mit einem FPGA leicht zu 
implementieren, allerdings steht es wohl noch unter Patentschutz und es 
ist behringerspezifisch. In der Tat scheint es 100Mbit Ethernet zu sein, 
was sofort die Frage aufwirft, wieso man nicht "normales" ein 1GB Netz 
verwendet und es direkt über TCP/IP sendet. Ich nehme an, die 
Klarktec-Komponente setzt es in ein zyklisches und damit latenzarmes 
Format um. Rechnerisch kann ich so die 96kHz x 192 Kanäle 
nachvollziehen, wenn man keine Redundanz hat, was ich auf der Bühne aber 
fordern würde - insbesondere, wenn es über WLAN laufen soll. Wenn da 
100MBit reichen, braucht es für 1GB kein spezielles optimiertes Format. 
Wie auch immer:

Aus meiner Sicht ist die Übertragung über CAT nur sinnvoll, wenn man 
wirklich Bühnentechnik bauen und nutzen will. Dazu braucht es aber 
nichts Neues und Eigenes. Die 900,- für die 16er Stagebox sind ja super 
günstig.

Wenn, würde ich etwas fürs Studio brauchen und dann aber für die 
Eingänge was Hochwertigeres einsetzen, als das MIDAS oder gar das 
Behringer. (Ja, die so tollen MIDAS-Eingänge sind so super gut nicht - 
sie sind nur besser, als das, was Behringer zuvor hatte, bevor sie es 
gekauft haben).

Im Zweifel fände ich ADAT praktischer! Diese Boxen haben ja oft auch 
ADAT Ausgang und eine PC-Karte mit ADAT ist super günstig und weit 
verbreitet. ADAT kriege ich auch leicht ins FPGA und ist für 
Studioverkabelung oder Homerecording praktischer.

Wenn man sich selber was bauen will, wäre noch 192kHz S/PDIF als 4fach 
TDM sinnvoll. Sind auch 8 Kanäle und liefert ein praktisches 
8-Kanal-WAV, das jede DAW verarbeiten kann.

Ich wäre da auch fähig und bereit was zu liefern, sehe aber den Benefit 
bei den hier genannten Entwürfen einfach nicht:

In meiner DAW habe ich ja einen Digital-Mixer und zwar einen der 1024 
Kanäle mit 192kHz Ausgang mischen kann. Ausgelastet ist er momentan mit 
den 256 Stereokanälen (64 Kanal-Stereo-Mischer und einem gleich großen 
Bündel an Return-Channeln, der Effekte und Loops) sowie 50% Reserve für 
ein weiteres potentielles Synthese FPGA board. Aufgebaut ist er aus 
insgesamt 8 parallelen Multipliern für die 8 Gruppenausgänge und 
verschlingt damit gewaltige 2% aller Multiplier und 1% aller BRAMs im 
FPGA -> Kosten in der Größenordnung von weniger als einem Euro.

Die Leistung besteht also darin, in einem einzigen Chip eine Masse von 
Kanälen verteilen, mit Effekten belegen und 8-kanalig auf Ausgänge 
mischen zu können, was man sonst nur mit mehreren kaskadierten Pulten 
könnte.

Nur noch einen weiteren kleinen digitalen Mixer braucht eigentlich 
keiner. Man braucht nur ein Summe an preisgünstigen und hochwertigen 
ADAT-Wandlern, die man bei Bedarf auf 192kHz schalten und in den 
Stereobetrieb nehmen kann und einen FPGA mit mehreren ADAT-Eingängen.

Das ist das was ich als Audio-Frontend momentan noch plane, damit nicht 
nur MIDI in Klang verwandelt und in breiter Masse in den Mischer fließen 
kann, sondern auch Externes eingelesen werden kann, was momentan in 
Masse nur über den PC geht. (Mein Audiomixer hat nur 2 S/PDIF Eingänge).

Was geplant ist, wäre ein board mit 16 optischen Eingängen, die 
alternativ auf Coax umschaltbar sind und jeweils bis zu 768kHz Stereo 24 
Bit verarbeiten können und es über ein serielles IF an den Mischer-FPGA 
übertragen. Technisch machbar wäre es mit den 720er Trenz-Modulen, die 
250Mbps können und damit sogar 16 Kanäle zu 192kHz gleichzeitig packen.

Eventuell bekommt man dann von den Eingängen her auch noch die 
MIDI-Matrix und die Eingänge mit rein.

Das wäre etwas, was es so nicht zu kaufen gibt.

von Stefan R. (stefan_r806)


Lesenswert?

Thomas F. schrieb:
> Ich halte die Lösung mit ADAU1452/146x für deutlich
> effizienter als Einzelstück. Mit SIGMA STUDIO kommt man da sehr schnell
> zu Ergebnissen.

Ja das scheint mir auch die vernünftigste Lösung für den Moment.

Für einen ersten Versuch hab ich mir ein ADAU1452-Dev-Board aus China 
bestellt. Dazu noch 4 Codec Boards (CS42448) mit je 6 in/8out.

Die angedachten 24 Eingänge und 16 Ausgänge sollten damit machbar sein.
Ich habe mal mit SigmaDSP herumgespielt. Equalizer pro Kanal und 
Mixing/Routing scheint von der DSP-Leistung schon mal zu gehen.

Der Plan ist dann, die ADAU-DSP über ein Teensy oder so zu steuern und 
die ganze Peripherie darüber laufen zu lassen.

Aktuell prüfe ich ob ich zusätzlich noch 8 Kanäle aus der ADAU-DSP 
rauskriege und über den Teensy abgreifen kann. Damit wäre dann eventuell 
Audio über Ethernet/USB oder zumindest eine Aufnahme auf eine SD-Karte 
möglich.

Wenn das Ganze mal so mehr oder weniger läuft, würde ich mir vermutlich 
eine eigene PCB designen für die ganzen Wandler und Buchsen und ein paar 
Header für die Verbindung zum Teensy und ADAU1452-Board.

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.