24 Bit Sounddaten + 8 Bit = 32 Bit Nutzdaten möglich mit Adacity aufzunehmen?

  • hallo!
    ich habe eine spezielle frage:
    im rahmen meiner dipl.arbeit beschäftige ich mich mit audiodaten, die über die spdif-schnittstelle ankommen. ich habe eine audiokarte gefunden (hersteller: rme) mit spdif eingang. der treiber des herstellers gibt die audiodaten im folgenden format weiter:


    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX000BPCUV


    X = Audiodaten 0 = ungenutzt B = CBL P = Parity C = Channel Status U = User Bit V = Validity Bit


    mir geht es einerseits um die 24bit audiodaten, daraus soll ein wavefile erzeugt werden, andererseits aber auch um die Bits PCUV, die ich entweder gerne synchron im wavefile stehen hätte (32bit-modus, wenn das möglich ist) oder in irgend einem anderen format.


    kann mir audacity bei dem problem helfen?


    bin über jegliche hilfe sehr dankbar!!!!!
    grüsse darwin

  • Audacity verwendet die Bibliothek Portaudio, um sich Sounddaten zu holen. Portaudio wiederum verwendet die Soundschnittstelle der jeweiligen Plattform (wavein/waveout oder ASIO unter Windows, ALSA/OSS auf Linux usw.). Die Soundschnittstelle wiederum greift auf den Treiber zu. Dieser gibt normalerweise nur PCM-Daten aus. Die Bits B/P/C/U/V usw. sehen mir so aus, als ob sie vorwiegend zur Fehlerkorrektur da wären. Das ist normalerweise etwas, um was sich der Treiber selbst kümmert, eine Anwendung bekommt das normalerweise nicht zu Gesicht (und es sollte auch keinen Grund dafür geben, diese Infos haben zu wollen).


    Soll heißen, wenn es nur darum geht, Audiodaten von SPDIF aufzunehmen und in eine WAV-Datei zu speichern, dann installiere Audacity und die Soundkarte und drücke auf Aufnahme ;) Zu beachten ist hierbei nur noch, dass die Treiberarchitekturen mancher Betriebssysteme nur 16-bit Samples unterstützen, d.h., es kann sein, dass bei Audacity evtl von den 24 bit nur 16 bit ankommen (was aber für normale Aufnahmen nichts macht).


    Wenn Du aber wirklich so tief einsteigen willst, dass Du irgendwelche Zusatzbits abfangen willst, wirst Du wahrscheinlich nicht darum herum kommen, in sehr hardwarenahe Weise direkt auf die Soundkarte bzw. deren Treiber / Firmware zuzugreifen. Dabei kann Dir Audacity erstmal nicht helfen. (Du kannst aber natürlich unabhängig davon Audacity später zum Analysieren und Editieren Deiner WAV-Dateien verwenden.)

  • dann muss ich mich wohl mal mit ASIO auseinandersetzen... denn mir kommt es ganz genau auf diese PCUV-Bits an... ganz speziell auf das LSB, denn da steht drin, ob das vom modul ausgespuckte sample "vertrauenswürdig" ist oder nicht...


    wie gesagt, der treiber stellt diese 24 Bit sounddaten + 8 Bit zusatzdaten zur erfügung und so wie ich das verstehe, müsste ich sie mir dort dann abholen.
    leider sind meine programmierkenntnisse etwas eingerostet. hast du zufällig einen link zur programmierung mit ASIO für noobs?


    gruss darwin

  • Gegenfrage: Wer sagt das mit den B/P/C/U/V und wo kann man das nachlesen (Website oder so)? Dann kann ich Dir vielleicht auch sagen, wie Du an die Daten rankommst. ASIO ist unter Windows nämlich eher noch eine zusätzliche Ebene, die ich mir nicht ohne Zwang antun würde.

  • hallo nochmal!
    einmal kann man das im spdif-standard nachlesen, dann in habe ich nicht öffentliche firmen specs vorliegen und auf dieser seite (von der ich die soundkarte beziehne werde)
    http://www.rme-audio.de/techinfo/tms.htm


    wie meinst du kommt man sonst dran?


    vielleicht sollte ich nochmal kurz mein ziel erläutern:
    ich hätte gerne die möglichkeit, dass was von der sounkarte über den treiber geliefert wird, als wave aufzuzeichen und parallel, wenn möglich eine zweite datei zu erstellen, die PCUV bits synchron zu den samples in der wave-datei enthält... (langer satz, sorry)


    einen weiterer denkansatz ist das ganz mit matlab zu machen. "einfach" die vom treiber kommenden daten in eine zweispaltige matrix packen, erste spalte audio, zweite spalte PCUV. in matlab gibt es eine nette wave edit toolbox, mit der es recht einfach ist aus samples in einer matrix eine wave-datei zu erstellen. nur suche ich hier verzeweifelt die möglichkeit mittels matlab am soundkartentreiber zu "lauschen"...


    wenn du (markus) odr irgendmd eine idee hat... ich wäre ihm zu tausend dank verpflichtet!!!

  • Von der genannten Seite:


    "Damit TMS kein toter Standard bleibt stellt RME daher den Softwareherstellern kostenlos einen Sourcecode mit den in DIGICheck verwendeten Routinen zur Verfügung. Auf Basis dieses Beispielcodes ist eine Implementation kein Problem mehr, und in weniger als einem Tag erledigt."


    Hört sich doch gut an....

  • ich bin auf eine toolbox von matlab gestossen!
    unter umständen geht es, wenn ich da in einigen funktionen etwas "rumpfusche" noch einfacher! :)