Tach allerseits! Ich spiele seit längerem mit dem Gedanken meine Audio DSP (FreeDSP.cc) um ein paar Eingänge zu erweitern. Der Grundgedanke dahinter ist den kompletten Analogpfad zu umgehen und dirket digitalen Ton aus dem PC zu holen. Grundsätzlich sind mehrere Schnittstellen zum PC denkbar. Ziel ist aber immer I²S an der DSP. Idee #1 USB Audio ist doch ein alter Schuh. Da gibt es doch bestimmt fertige USB zu I²S Konverter für Mehrkanalton. Denkste. :( Die Teile sind alle Stereo. Es gibt keine USB Klasse für Mehrkanalton. Alles was in die Richtung geht ist propritärer Schrott und bisher hat das keiner als Open Source geschweige denn mit I²S Port gebaut. Falls ich mich irre bitte korrigieren!! Idee #2 S/PDIF oder TOSLINK vom PC. Einige SigmaDSPs haben einen digital Audio port. So wie es aussieht können die aber nur PCM. Also Stereo. Idee #3 Wie oben aber mit decoder vorweg. STA310 ist da eine Adresse. Aber das ist ein riesen chip. Falls da jemand ein Projekt kennt, das damit was gemacht hat, sodass man nicht alles selbst erforschen muss, wäre ich sofort Ohr^^ Idee #4 HDMI führt einen Standard für unkomprimierten Mehrkanalton. Das macht vieles einfacher. Kein live encoden von unkomprimiertem content am PC und keine Lizenzen. Allerdings ist HDMI eine Spur komplexer als S/PDIF. Idee #5 Man hackt einen der S/PDIF oder HDMI decoder, die man von der Stange kaufen kann. Theoretisch muss man nur einen finden, der diskrete DACs hat und das I²S vorher abgreifen. Ziemlich wage da einen passenden zu treffen. Einfach mal einen Schwung auf Amazon kaufen, reinschauen und die unpassenden zurückschicken? :)) Schreibt bitte eure Gedanken und weitere Ideen. Ich habe das Gefühl, dass ich noch nicht die ideale Lösung gefunden habe. Thor
Wie du schon geschrieben hast, ist I2S immer stereo. Es gibt keinen einfachen Weg für dein Problem. Alle Ansätze die du geschrieben hast bringen nix, ausser HDMI. Aber für HDMI brauchst du eine Lizenz, sonst hast du kein HDCP. Ohne HDCP kannst du die meisten Sachen vergessen. Das Wichtigste hast du aber gar nicht geschrieben : Welche Art von Dateien willst du abspielen ? Du kannst ja auch den DSD Weg gehen und alle Probleme lösen sich von selbst (DSD unterstütz Mehrkanalton). Welchen DSP Chip nutzt du denn ?
Ich hab vor einem guten Jahr den ersten Prototyp mit bis zu 8 Kanälen mit einem XMOS Chip aufgebaut. Das ganze klappt sehr gut und die Firmware "Vorlagen" sind sehr gut gemacht. Man ist da mit sehr wenig Aufwand sehr flexibel und kann relativ einfach 4x Out, 4x In usw. realisieren. Mein Prototyp war eine DJ Soundkarte mit 3x Stereo Out... Ich hatte mal geplant eine Art Bausatz zu machen um diesen dann genau für solche Leute wie dich zu verkaufen, weil der Markt hier sehr überschaubar ist und die DIY Audio Leute immer sowas brauchen. Schlussendlich hatte ich dann aber leider zu wenig Zeit und die ganzen Themen wie Windows Treiber, USB Lizenz, Fertigung, usw. haben mich dann ein wenig eingebremst... Ich hätte zwar alles beisammen um das Projekt zu starten, aber ich müsste mich einfach ein paar Wochen frei stellen um es wirklich durch zu ziehen. Falls du dieses Projekt nur für dich machen willst, würde ich dir ein Referenz Design von XMOS ans Herz legen, damit habe ich auch angefangen und man kann die relativ einfach für seine Vorstellungen "umbauen". Du hast dann also den USB -> I2S Teil per Referenz Design und den Analogen Teil machst selber... So denn,
>Idee #1 >USB Audio ist doch ein alter Schuh. Da gibt es doch bestimmt fertige USB >zu I²S Konverter für Mehrkanalton. Denkste. :( Die Teile sind alle >Stereo. Es gibt keine USB Klasse für Mehrkanalton. Alles was in die >Richtung geht ist propritärer Schrott und bisher hat das keiner als Open >Source geschweige denn mit I²S Port gebaut. Falls ich mich irre bitte >korrigieren!! Falsch: Mehrkanal Ton über USB geht sehr wohl habe ich vor über 10 Jahren für eine bekannte deutsche Firma gemacht. Funktioniert ab W98SE(inoffiziell) und XP problemlos unter W2000 nicht. Da niemand bereit ist Geld für digitales 6 Kanal 16Bit Audio zu bezahlen wurden digitale Schnittstellen nicht weiterverfolgt. USB 1.1 kann nur max 6 Kanal in 16 Bit USB2 Audio gab es damals noch nicht. Das Problem ist ein ganz anderes: I2S ist immer Stereo. Was du willst ist 5.1. via SPDIF. Dafür sind wenn man das digital macht Lizenzgebühren notwendig. zu open Source: Nun solche Projekte sind eher im Pro Audio Bereich zu finden. Die Branche hats nicht so mit open Source. Falls du Interesse hast das zu entwickeln nur zu. Du kannst von mir die Deskriptoren für 6 Kanal Audio über USB haben. Du must dann nur einen passenden USB Chip nehmen und 3 SPDIF Transmiter dranflanschen. Alles ganz einfach. Win kann schon lange Mehrkanal Audio. Thomas
Alex S. schrieb: > USB Audio ist doch ein alter Schuh. Da gibt es doch bestimmt fertige USB > zu I²S Konverter für Mehrkanalton. Denkste. :( Die Teile sind alle > Stereo. Es gibt keine USB Klasse für Mehrkanalton. Beide USB-Audio-Klassen unterstützen Mehrkanalton. Du darfst nur nicht von so einer kleinen Klitsche wie Microsoft erwarten, dass die genügend Ressourcen haben, um einen Treiber dafür zu schreiben. Mehr oder weniger fertige Chips gibt es von XMOS und C-Media (letztere nur für Großkunden). > S/PDIF oder TOSLINK vom PC. Per Design nur Stereo. Mehrkanal funktioniert nur mit einem Encoder (z.B. Dolby Digital oder DTS), der die Daten auf die selbe Bandbreite wie ein unkomprimiertes Stereo-Signal eindampft. > HDMI führt einen Standard für unkomprimierten Mehrkanalton. Das macht > vieles einfacher. Kein live encoden von unkomprimiertem content am PC > und keine Lizenzen. Allerdings ist HDMI eine Spur komplexer als S/PDIF. Für "HDMI to I2S" findet Google z.B. dies: http://www.audio-gd.com/Pro/diy/I2Skits/I2SEN.htm
Wow. Das ist ne Menge mehr Feedback als ich erwartet habe. Fangen wir oben an. Das I²S nur zwei Kanäle pro Datenleitung macht ist mir klar. Ich dachte es wäre selbstredent, dass ich genügend Datenleitungen am I²S für mein Vorhaben zur Verfügung stelle. HDCP ist mir furzegal. Ich habe keinen gecrypteten content. Die einzige Audio/Videoquelle, die ich besitzt/benötige, ist mein PC und wie gesagt habe ich da drauf keinen HDCP geschützten content. Nicht mal ein Blueray Laufwerk^^. Problematisch wird die andere Richtung. Eine DVD hat eine DTS oder AC3 Spur. Für Mehrkanalton per S/PDIF alles tuti. Aber ein Spiel erzeugt keinen codierten Audiostream. Das geht bei S/PDIF nur per PCM. Mein Realtek onboard chip hat ein verstecktes feature mit dem man live in Dolby oder DTS codieren kann. Allerdings erfordert das gepatchte Treiber, da mein low end chip dieses feature eigentlich garnicht aktiviert haben darf. Ist also ein bisschen krampfig für den Zweck den es erfüllen soll. Aus dem selben Grund kommt auch ASIO nicht in Frage. Das ganze soll kein Tonstudio mit spezieller Software, die damit umgehen kann, sein sondern ein Heimkino. Kompatibilität ist das Motto. Daher ist mir irgendwann der selbe Gedanke wie Linuxfan gekommen. HDMI Audio bzw. DSD. Einzig die etwas fummelige Natur von HDMI ist halt abschreckend. Das fängt ja schon mit dem Stecker an. S/PDIF kommt mit schön klotzigen Chinch Steckern daher. HDMI ist da schon unangenehmer. Naja, auf der anderen Seite hat sogar schon Reichelt HDMI SMD Stecker im Sortiment. Wird vielleicht mal Zeit, dass man sich an sowas ranwagt;) Die DSP Serie in Diskussion ist die SigmaDSP von Analog. Denkbar ist da jedes chip. Konkret verwende ich grade den ADAU1701. Siehe FreeDSP.cc oder mein angehängtes Bild. Hui, auf die XMOS hatte ich auch schon ein Auge geworfen. Was für riesen chips. Ich hatte mich dann nicht weiter damit beschäftigt, da mir nicht ganz einleuchten wollte warum ich einen Mehrkernprozessor benötige um 8 Kanäle Audio von USB nach I²S zu bringen. Vielleicht hat ja mal jemand sowas mit einem STM32 gemacht? Mich würde aber auch interessieren wie du das ganze aufgezogen hast. Welches board hast verwendet? Selbst gebaut oder ein dev kit? Was kostet das und wo hast du es dir besorgt? Dein Projekt, muntablues, klingt auf jeden Fall wert es weiter zu verfolgen. Mit Lizenzen und Fertigung würde ich mich nicht weiter rum schlagen: Stell einfach mal in einem open source Rahmen vor was du bisher geschafft hast. Wer sich wirklich dafür interessiert wird sich vom ätzen einer Platine nicht abhalten lassen :) OK, USB kann Mehrkanalton. Habe es grade noch mal in den Spezifikationen nachgelesen. Wenn man ein bisschen sucht finden man auch USB Soundkarten variierender Qualität, die das benutzen. Aber kein Vergleich, zu der Flut an Stereo USB Soundkrächtzen. Hinzu kommt, dass ich einfach keinen Beispielcode für die STM32F4 discoverys finde, die Mehrkanalton verwenden. Außerdem sind alle USB DACs von TI, Analog oder ST maximal Stereo. Gibt es da vielleicht doch Stolperstricke? Das S/PDIF, das ist was ich will bezweifle ich ;) Außerdem ist es nicht richtig, dass S/PDIF oder TOSLINK nur 2 Kanal PCM können. ADAT ist hier das Stichwort. Sollen die Realtek chips angeblich auch können aber ich habe da noch niemenden gefunden der das mal ausprobiert hätte. Diese HDMI-zu-I²S Adapter sind eindeutig zu mager bestückt. Im Kontext der anderen Produkte, die dort angeboten werden, vermute ich einen semipassiven Adapter. Dort wird nur das HDMI KABEL für I²S verwendet. Was dieser Audio-gd shop nun tatsächlich anbietet ist etwas schwierig zu interpretieren. Dort steht nirgends etwas in Richtung Mehrkanalton. Zugegeben dort steht auch nirgends stereo. Überhaupt steht da sehr wenig nützliche Information und nur die Hälfte ist verständliches Chenglisch. Alles "ultra high qualitiiii!!" Thor
:
Bearbeitet durch User
Alex S. schrieb: > > Das I²S nur zwei Kanäle pro Datenleitung macht ist mir klar. Ich dachte > es wäre selbstredent, dass ich genügend Datenleitungen am I²S für mein > Vorhaben zur Verfügung stelle. > Der DSP auf dem Board kann auch TDM statt I2S auf den gleichen 3 Pins. TDM: Clock, Data, Sync I2S: Clock, Data, L/R bei TDM muss allerdings im Gegensatzt zu I2S Sender und Empfänger konfiguriert werden.
Ja, das habe ich vergessen zu schreiben. TDM ginge auch. Aber das ist noch seltener als I²S. Wäre natürlich das I-Tüpfelchen aber man kommt auch ohne aus :) Thor
Du willst Sachen wissen :-) Wie gesagt, mein Prototyp ist fertig aufgebaut und besteht aus zwei Boards. Einmal der Master (Usb mit XMOS und Quarz und was sonst noch alles nötig ist) und dann das Analog Board (DACs und Kopfhörer Amp). Ich könnte die Boards (Layout, ..) natürlich online stellen, aber das Problem ist, dass ein "normaler" Bastler die BGAs nie im Leben selber bestücken kann, somit muss man das fast für die Verbrauchen machen. Daraus folgt, dass ich ein Board anbieten wollte, welches die nötigen Anschlüsse für I2S nach außen geführt hat und jeder kann so sein "custom" Analog Board dazu basteln. Mein Ausgangspunkt für die Entwicklung war erst das Audio Referenz Design (gibts aber mittlerweile nicht mehr) und für den letztendlichen Prototyp hab ich das "USB Audio DJ Kit" her genommen. Das hat zwar 4x In und 4x Out aber das ist ja nur eine Software Sache um das zu ändern... Übrigens hab ich mit dem STM32 auch herum probiert, aber der wird mehr als 4 Kanäle nie unterstützen weil die HW schon max 2 I2S hat, also hab ich es gelassen. Stereo hab ich so halb zum Laufen gebracht, aber leif nie so sauber und stabil wie die XMOS Lösung! Naja ich häng mal ein paar Bilder an, dann siehst du mal wie meine "Lösung" aussieht...
Wenn du unkomprimiertes Mehrkanal Audio über USB bekommen willst, kommst du zwangsläufig auch in der Pro-Audio Ecke vorbei - und dort gibt es noch ADAT Interfaces, die dann 4xI2S mit 48Khz bzw. 2x I2S bei 96Khz bereitstellen (also 8 bzw 4 Kanäle) - für noch mehr Kanäle landet man dann bei MADI, AES50 etc. Für ADAT gab es mal Wavefront AL1401/1402 zum Senden und Empfangen, allerdings scheint die Firma alle Produkte eingestellt zu haben - zumindest sind sämtliche Teile als EOL zu 2013 gekennzeichnet... Früher (jetzt auch noch, aber nicht mehr so oft) hätte ich noch FireWire (IEEE1394) vorgeschlagen, worüber man quasi "beliebig" viel Audio durchprügeln konnte, aber selbst Apple (die das als erste hatten) hat sich davon getrennt, ein solches Projekt wäre also auch nur bedingt Zukunftssicher. Als Option käme mir jetzt noch ein FPGA als Signalkonverter in den Sinn - dann könntest du mehrere Interfaces ausprobieren. Jemand anderes hatte schon eine solche Idee: https://sites.google.com/site/koonaudioprojects/usb-to-multi-channel-usb2-0 MfG
Das ist ein wirklich hübsches Plateng geworden! Kandidat für den Kunstwerke Thread ;) Auf ein BGA chip bin ich auch nicht unbedingt wild und schon gar nicht auf ein sechskerniges Monstrum. Das Teil hat mehr Dampf als meine DSP :) Was mich brennend interessiert ist wie du die USB Anbindung mit dem STM32 gemacht hast. Die offiziellen Treiberpakete von ST sehen maximal stereo vor. Außerdem interessiert es mich wie du die Anbindung seitens Windows gelöst hast. Hat Windows da schon Standardtreiber für integriert? Die Anzahl der I²S Kanäle an einem STM32 ist wirklich kein Problem. Nur die kleinsten der Serie haben zwei I²S Kanäle. Schon die einstiegs F4 haben 5 und die etwas größeren zusätzlich zwei TDM fähige Audio interfaces. Da findet sich sicher was^^ Thor
Ich hab vor einigen Jahren das STM32 Beispiel (Usb Audio oder so) her genommen und dann mit einem F107 für Stereo das ganze probiert. Das hat aber nie 100% funktioniert und gleichzeitig hab ich mit dem Referenz Board von XMOS herum gespielt und dann war für mich die Sache klar, dass ich auf XMOS setze! Kurz gesagt, Mehrkanal und STM32 hatte ich nie wirklich am Laufen, da kann ich dir nicht weiter helfen... Dass die neuen F4 mehr I2S haben, war mir auch neu :-) Noch so am Rande: Was stört dich wenn der XMOS so viele Kerne hat und diese auch verwendet?! Kann dir doch eigentlich egal sein, aussagekräftig sind was dabei raus kommt. Von den 6 Kernen werden auch ein (oder zwei) nur für USB verwendet und der Rest macht dann die Arbeit fürs I2S, oder Midi, oder ... Naja für mich war das die beste Lösung damals, wie es bei dir ist, kann ich dir nicht sagen, das musst du selber raus finden ;-)
Die AT91SAM7Snnn können TDM, aber nur USB Fullspeed. Dies sollte allerdings für 8 Channels mit 16bit reichen wnn man den PingPong Buffer schnell genug bedienen kann. Für passende USB Audio Decsriptoren siehe das Angebot von Thomas Beitrag "Re: I²S 6 Kanal vom PC"
>Die AT91SAM7Snnn können TDM, aber nur USB Fullspeed. Dies sollte >allerdings für 8 Channels mit 16bit reichen wnn man den PingPong Buffer dann geht aber auch der TUSB3200. Den habe ich damals genommen 16 bit 3 x Stereo OUT, 1 x Stereo IN. Das hat bei mir schon 2001 funktioniert. Thomas
Hallo zusammen, ich habe/hatte das selbe Problem (Heimkino via FreeDSP). Dafür habe ich mir den USBStreamer zugelegt: http://www.minidsp.com/products/usb-audio-interface/usbstreamer Da ich im Moment über die analogen Eingänge nur Rauschen und Knacken bekomme, bin ich noch nicht dazu gekommen den FreeDSP mit dem USBStreamer zu verbinden. Sollte allerdings möglich sein. Ist aber nicht OpenSource. Viele Grüße
Markus -. schrieb: > Für ADAT gab es mal Wavefront AL1401/1402 zum Senden und Empfangen, > allerdings scheint die Firma alle Produkte eingestellt zu haben - > zumindest sind sämtliche Teile als EOL zu 2013 gekennzeichnet... Die Chips wurden von Coolaudio übernommen: http://www.coolaudio.com/ lieferbar sind sie in geringen Stückzahlen unter http://cabintechglobal.com/ Wenn du irgendwie einen ADAT-Ausgang an deinen PC bekommst, ist das die optimale Lösung :-) Die Chips AL1401/1402 haben je 4x 2 I²S-Leitungen, also kannst du wahlweise 8 Eingänge bzw. 8 digitale Ausgänge an deinen freeDSP ergänzen. Ein Problem ist natürlich der Kostenfaktor - ~12€ je AL1401/1402 + ADAT-Schnittstelle am PC. Wir (freeDSP) haben ein ADAT-Shield für den freeDSP in Planung, wenn es fertig ist gibt es die Layoutdaten dann auf unserer Webseite :-) Die Chips sind ja aber sehr einfach zu löten. Falls du den SPDIF-Weg gehst, muss du sehr aufpassen, was die synchrone Übertragung angeht. In größeren DSPs (ADAU1452) hat man ASRC (asynchronous sample rate converter), um den asynchronen SPDIF-Datenstrom an den internen Takt anzugleichen, der ADAU1701 hat diese noch nicht. Im schlimmsten Fall hat man dann Störungen in der Datenübertragung. (evtl. gibt es SPDIF-I²S-Chips mit internem ASRC) Viele Grüße Ludwig
Den USBStreamer hatte ich auch schon mal gesehen. Auf den ersten Blick passte er perfekt. Preislich auch noch im Rahmen. Allerdings sieht es so aus als hätte der Treiber keinen support für standard Windows Audio. Und wie gesagt ASIO ist keine option für mich. Hallo Ludwig! Schön zu sehen, dass du ebenfalls hier mitliest. ADAT ist sicherlich eine Lösung. Zu bedenken ist allerdings, dass kaum einer ADAT interfaces hat. Ich denke der Weg den man gehen sollte ist HDMI. Es gibt durchaus TMDS chips, die in der Lage sind Audio vom Datenstrom zu trennen und per I²S auszugeben. Außerdem könnte man den STA310 als TOSLINK/SPDIF Decoder einsetzten. Ich habe nur leider keine Erfahrug mit dem STA310. Vielleicht findet sich jemand? Übrigends ein großes Lob und meinen größten Respekt für das FreeDSP Projekt. Ich habe vor einen halben Jahr ein Exemplar aufgebaut, dass seither seinen Dienst im Heimkino unserer WG leistet. Mein Mitbewohner arbeitet momentan an einer kompatiblen SMD Variante. Wir verwenden dafür KiCAD. Ihr solltet überlegen euer layout auch von eagle zu migrieren. Thor
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.