Forum: Projekte & Code Linuxbasiertes Mehrkanal-Audiosystem mit niedriger Latenz


von Henrik L. (henrix)


Lesenswert?

Hallo,

vor kurzem haben wir ein Audiosystem, basierend auf dem BeagleBone 
Black/Green (TI AM335X SoC) und dem AD1938 Audiocodec von Analog 
Devices, fertiggestellt.
Das Audiosystem stellt 2 Stereo-Eingänge und 4 Stereo-Ausgänge zur 
Verfügung und bietet sich als offene Plattform für DIY Audioprojekte an.
Zur Demonstration habe ich ein Surround-Delay Effekt, basierend auf der 
Open Source C++ Bibliothek DSPatch von Marcus Tomlinson erstellt, 
welcher alle Eingänge und Ausgänge des Audiosystems nutzt.
Zur Evaluierung habe ich weiterhin einen automatisierten Test 
entwickelt, welcher mithilfe von GNU Octave verschiedene 
Qualitätskennwerte, wie THD+N, DNR, Crosstalk, Latenz und Frequenzgang 
ermittelt.
Der komplette Artikel ist hier zu finden:
http://www.creative-technologies.de/linux-based-low-latency-multichannel-audio-system-2/
Ich hoffe auf potentielle Interessenten und konstruktives Feedback:)

von Alexander S. (alex998)


Lesenswert?

Hi,
ich hab nur mal kurz auf eure Seite geschaut:

"Signals are generated using a DAW on the host PC, sent to the analog in 
of the audio system, processed on the BeagleBone and sent back to the 
host using the analog out of the system."

Dass heisst also: Wandlung DA (PC) -> Wandlung AD (eure Karte) -> 
digitale Bearbeitung (Beagle) -> Wandlung DA (eure Karte) -> Wandlung AD 
(PC).

Wäre es nicht einfacher mit digitalen Schnittstellen?

: Bearbeitet durch User
von Petr (Gast)


Lesenswert?

Alexander S. schrieb:
> Hi,
> ich hab nur mal kurz auf eure Seite geschaut:
>
> "Signals are generated using a DAW on the host PC, sent to the analog in
> of the audio system, processed on the BeagleBone and sent back to the
> host using the analog out of the system."
>
> Dass heisst also: Wandlung DA (PC) -> Wandlung AD (eure Karte) ->
> digitale Bearbeitung (Beagle) -> Wandlung DA (eure Karte) -> Wandlung AD
> (PC).
>
> Wäre es nicht einfacher mit digitalen Schnittstellen?

Ich denke, dass es sich so lediglich um einen Test-setup handlet.

von Henrik L. (henrix)


Lesenswert?

Hi,

genau, der PC sollte nur als "Demoinstrument" dienen.
Das Audiosystem ist als offene Plattform gedacht, um bspw. einen eigenen 
Effekt bzw. unterschiedliche Effektketten für die einzelnen Eingänge und 
Ausgänge zu implementieren.

von Henrik L. (henrix)


Lesenswert?

Gestern haben wir die Hardware Design Dateien in einem extra Repository 
auf Github.com veröffentlicht.
Der Link zum Repo ist auf unserer Webseite.

von Alexander S. (alex998)


Lesenswert?

Achso, ist als Stand-Alone konzipiert.

Hatte die Seite nur grob überflogen, den Link zu deiner Bachelor-Arbeit 
hab ich übersehen.

Wie hoch schätzt du denn die Gesamtkosten All-Inclusive (Fertigung, 
Bestückung, BeagleBone, ...)?

von Henrik L. (henrix)


Lesenswert?

Die Gesamtkosten belaufen sich auf ca. 65€ ohne BeagleBone SBC.

von Tom (Gast)


Lesenswert?

Auch wenn mich das Thema nicht so sehr interessiert, finde ich es toll, 
dass ihr das veröffentlicht habt und die Arbeit nicht mit der Klausel 
"Dritten darf nur mit Genehmigung des Instituts Mitteilung über den 
Inhalt der Arbeit erfolgen." auf ewig im Regal verschwindet.

von Foo B. (foo_b)


Lesenswert?

hallo henrik,
als erstes mal gratulation zu dieser guten arbeit! bin darauf gestoßen, 
als ich für ein ähnliches DIY-projekt recherchiert habe. ich habe noch 
viele offene fragen zu dem thema, vielleicht kannst du mir ja 
weiterhelfen ;)
mein projekt: ein musikplayer auf einem kleinen (linux?)-brett mit 
integrierter digitaler frequenzweiche incl. laufzeitkorrektur etc.
ursprünglich dachte ich an den RPi3, allerdings scheint es, als wären 
die ALSA-möglichkeiten auf 2 kanäle limitiert, weshalb es auch nur 
unzählige fertige I2S stereo DAC lösungen gibt, aber keinen 5.1 DAC 
(oder andere mehrkanal-konfigurationen). es gibt einige externe 
USB-soundkarten mit 6 kanälen, aber ich weiß nicht, ob diese ohne großen 
aufwand angesteuert werden können... viele benutzer klagen darüber, dass 
in ihrer konfiguration nur der stereo-modus funktioniert.
soweit ich das eurer arbeit entnommen habe, gibt es beim beagle bone ja 
eine mehrkanal-schnittstelle, für die man dann "nur" eine kleine 
DAC-platine basteln muss. die frage ist aber, inwiefern man dann dem 
"soundtreiber" beibringen kann, zuerst eigene filter anzuwenden, bevor 
die daten an die DACs gehen. habt ihr diesbezüglich erfahrungswerte?
danke im voraus für deine unterstützung!
mfg

von Henrik L. (henrix)


Lesenswert?

Hi,

ALSA an sich limitiert die Audiokanäle nicht.
Ganz im Gegenteil, mit ALSA kann man sogar mehrere Soundkarten zu einer 
virtuellen bündeln.
Die digitale Audioschnittstelle vom RPi unterstützt hardwaremäßig nur 
zwei Audiokanäle, deswegen gibt es dafür keine Multichannel Lösungen.
Weiterhin gibt es beim RPi nur einen einzigen Datenbus, deswegen rate 
ich von USB ab.
Unsere Soundkartentreiber wurden bereits in den Upstream Kernel gemergt, 
so dass sie standardmäßig in den BeagleBone Images enthalten sind.
Die ALSA Treiber unterstützen alle Kanäle der Soundkarte (sind gerade 
auch dabei die Codecs zu daisy chainen, so dass man 16 Ausgänge und 8 
Eingänge zur Verfügung stehen hat). Der Prototyp funktioniert bereits.
Da du unsere Soundkarte ganz normal, wie jede andere über die ALSA 
Treiber ansprechen kannst, kannst du auch JACK nutzen. Du kannst also 
jede Linuxkompatible Software mit der Soundkarte verwenden.
Ich habe jetzt keinen konkreten Softwaretipp, aber es gibt sicherlich 
einige einfach Filteranwendungen, um eine Frequenzweiche zu realisieren.

: Bearbeitet durch User
von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Kriege Ich da ein USB-Keyboard dran?

von Henrik L. (henrix)


Lesenswert?

Hi,

ja, ALSA bietet nativen MIDI Support.

VG

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.