Aufnahmeproblem mit Hifiberry Digi+ I/O

Melomane
Aktiver Hörer
Beiträge: 3134
Registriert: 14.10.2011, 18:30

Aufnahmeproblem mit Hifiberry Digi+ I/O

Beitrag von Melomane »

Hallo,

ich hoffe, ihr könnt mir helfen. Vorhaben ist Digitalisierung von Schallplatte in folgender Kette: Plattenspieler -> Phonopre -> Funk Lap -> RME ADI -2 (altes Modell ohne USB) -> Hifiberry Digi/Rpi. Der RME ist konfiguriert, 96kHz auszugeben. Die kommen auch beim rpi an. Mit der Formatangabe S24_LE. Das Format zeigt zumindest folgender Befehl auf dem rpi bei Wiedergabe:

Code: Alles auswählen

cat /proc/asound/card1/pcm0p/sub0/hw_params 
access: MMAP_INTERLEAVED
format: S24_LE
subformat: STD
channels: 2
rate: 96000 (96000/1)
period_size: 1920
buffer_size: 7680
Mit folgendem Befehl habe ich folglich aufzunehmen versucht:

Code: Alles auswählen

sudo arecord -t wav -D plughw:CARD=sndrpihifiberry,DEV=0 -c 2 -f s24_le -r 96000 <Dateiname>
Dann bekomme ich - je nach Player - nur Rauschen zu hören oder die Fehlermeldung über einen Datenstromfehler.

Ändere ich das Format auf s32_le bekomme ich Musik zu hören, aber viel zu schnell.

Wie müsste die korrekte Formatangabe heißen, um 24bit aufzuzeichen?

Viele Grüße

Jochen
Bild
Melomane
Aktiver Hörer
Beiträge: 3134
Registriert: 14.10.2011, 18:30

Beitrag von Melomane »

Ergänzung:

Direkter Zugriff auf die Hardware ergibt:

Code: Alles auswählen

sudo arecord  -t wav -D hw:CARD=sndrpihifiberry,DEV=0 -c 2 -f S32_LE  -r 96000 /recording/rec/test1.
wav 
Recording WAVE '/recording/rec/test1.wav' : Signed 32 bit Little Endian, Rate 96000 Hz, Stereo
arecord: set_params:1339: Sample format non available
Available formats:
- S16_LE
- S24_LE
Aber die Formate an arecord übergeben erzeugen nur Rauschen.
Bild
Melomane
Aktiver Hörer
Beiträge: 3134
Registriert: 14.10.2011, 18:30

Beitrag von Melomane »

Noch ein wenig Input:

VLC sagt in Sachen Codec-Info:
Typ: audio
Codec: PCM S24 LE (s24l)
Kanäle: Stereo
Abtastrate: 96000 Hz
Bit pro Sample: 32
Bild
Melomane
Aktiver Hörer
Beiträge: 3134
Registriert: 14.10.2011, 18:30

Beitrag von Melomane »

Hallo,

nach Rücksprache mit HifiBerry stellt sich die Sache folgendermaßen und bislang unbefriedigend dar: arecord kann keine korrekten wav-Header schreiben.

Fragen an die Linux-Nutzer: Welches andere von arecord genutzte Format (voc, raw, au) kann man nutzen, um es zu wav/flac weiterzuverarbeiten in der korrekten Auflösung (96/24)? Alternativ: Gibt es andere tools für die Linux-Konsole, die gleich korrekte wav-Dateien schreiben?

Edit: Suchmaschine wirft mir ffmpeg aus. Habt ihr damit Erfahrungen in Sachen Audioaufzeichnung?

Edit II: Sieht so aus, als könne der Job erledigt werden, indem im raw-Format aufgenommen wird und dann mit sox die nötige Umwandlung vorgenommen wird. Das werde ich die Tage testen.

Viele Grüße

Jochen
Bild
Buschel
Aktiver Hörer
Beiträge: 989
Registriert: 12.12.2013, 20:12
Wohnort: Raum Karlsruhe

Beitrag von Buschel »

Hallo Jochen,

die typischen Programme dafür sind ffmpeg und sox (persönlich bevorzuge ich sox). Beide können dir auch die Formate nach Wunsch ändern. Du kannst z.B. mit 32 Bit rein- und mit 16 Bit rausgehen, mit oder ohne Noise Shaping. Auch die Samplerate kann dabei, falls gewünscht, geändert werden. Ich bin mir auch relativ (aber nicht 100%ig) sicher, dass du direkt in eine flac-Datei hinein aufnehmen kannst. Du findest dazu eine Menge Hilfe im Netz, oder vielleicht auch hier im Forum. Ich kann gerade mangels Zugriff auf meinen PC nur begrenzt helfen.

Grüße,
Andree
Bild
Melomane
Aktiver Hörer
Beiträge: 3134
Registriert: 14.10.2011, 18:30

Beitrag von Melomane »

Hallo Andree, hallo an die anderen sox-Nutzer,

ich bin zu blöd, mir die passenden Parameter aus der manpage zusammenzusuchen. Vielleicht kann mir jemand helfen, den arecord-Befehl:

Code: Alles auswählen

sudo arecord  -t wav -D hw:CARD=sndrpihifiberry,DEV=0 -c 2 -f S24_LE  -r 96000 aufnahme.wav
nach sox zu "übersetzen"? Danke im voraus.

Die Suchmaschinen habe ich wohl nicht mit den richtigen Begriffen gefüttert.

Die Aufnahme mit arecord nach raw hat übrigens für mich mangels Wissen um die sachgerechte Weiterverarbeitung auch nichts Sinnvolles erbracht.

Edit: Das sox-script "rec" steht übrigens nicht zur Verfügung.
Das ganze Unternehmen soll übrigens mit einer spartanischen Distribution Picoreplayer verwirklicht werden.

Viele Grüße

Jochen
Bild
Buschel
Aktiver Hörer
Beiträge: 989
Registriert: 12.12.2013, 20:12
Wohnort: Raum Karlsruhe

Beitrag von Buschel »

Hallo Jochen,

ich kann das wie schon geschrieben derzeit nicht testen, aber das Kommando sieht in etwa so aus:

Code: Alles auswählen

sox -t alsa sndrpihifiberry datei.flac
Mit mehr Vorgaben für das Format so:

Code: Alles auswählen

sox -r 96k -b 24 -c 2 -e signed -t alsa sndrpihifiberry datei.flac
Ich bin gespannt. :wink:

Grüße,
Andree
Bild
Melomane
Aktiver Hörer
Beiträge: 3134
Registriert: 14.10.2011, 18:30

Beitrag von Melomane »

Hallo Andree,

das kommt dabei raus:

Code: Alles auswählen

tc@piCorePlayer:~$ sox -r 96k -b 24 -c 2 -e signed -t alsa sndrpihifiberry /recording/datei.flac
sox FAIL formats: no handler for given file type `alsa'
So langsam denke ich, dass Picoreplayer a bisserl zu rudimentär ist.

Viele Grüße

Jochen
Bild
Buschel
Aktiver Hörer
Beiträge: 989
Registriert: 12.12.2013, 20:12
Wohnort: Raum Karlsruhe

Beitrag von Buschel »

Hallo Jochen,

alternativ mit arecord aufnehmen und dann an sox übergeben. Das sieht dann so aus:

Code: Alles auswählen

arecord -t wav -D plughw:CARD=sndrpihifiberry,DEV=0 -c 2 -f s24_le -r 96000 | sox -r 96k -b 24 -c 2 -e signed -t raw - datei.flac
Ob die Parameter für arecord dann wirklich passen, kann ich nicht sagen. Das wäre zumindest das Kommado, das bei dir nicht nur Rauschen ergeben hat. Bitte auch mit „arecord -t raw ...“ probieren. Wenn das nicht klappt, stehe ich auf dem Schlauch...

Grüße,
Andree
Bild
Melomane
Aktiver Hörer
Beiträge: 3134
Registriert: 14.10.2011, 18:30

Beitrag von Melomane »

Hallo Andree,

das Kommando läuft zwar fehlerfrei, aber erzeugt Rauschen auf einem Kanal, auf dem anderen nichts.

Aber wie sieht das mit den Formaten aus? acrecord sendet wav, sox geht von raw aus. Und wie kommt flac zum Einsatz? Reicht die Dateiendung, um sox dazu zu bewegen, flac zu erzeugen?

Viele Grüße

Jochen
Bild
Buschel
Aktiver Hörer
Beiträge: 989
Registriert: 12.12.2013, 20:12
Wohnort: Raum Karlsruhe

Beitrag von Buschel »

Hallo Jochen,

hast du arecord auch mit „-t raw“ probiert? Wichtig ist erst einmal, dass bei arecord und sox dieselben Formate benutzt werden, derzeit 2 Kanäle, 96 kHz, 24 Bit, Little Endian. Du kannst das entsprechend auf beiden Seiten anpassen. Das Rauschen führe ich auf falsches Formst zurück. Im worst case einfach sox jeweils explizit mit „-L“, „-B“ oder „-x“ aufrufen. Und ja, sox sollte FLAC an der Formateendung erkennen. Du kannst aber auch mal .wav testen.

Aber von hier aus, und ohne Kenntnis von raspis und den Distributionen ist das leider ein Ratespiel.

Grüße,
Andree
Bild
Melomane
Aktiver Hörer
Beiträge: 3134
Registriert: 14.10.2011, 18:30

Beitrag von Melomane »

Hallo Andree,

ich gebe morgen Rückmeldung. Für heute ist Schluss --- und ein schönes Glas Rotwein und Musik dran.

Jedenfalls schönen Dank für deine Hilfe! :cheers:

Viele Grüße

Jochen
Bild
Melomane
Aktiver Hörer
Beiträge: 3134
Registriert: 14.10.2011, 18:30

Beitrag von Melomane »

Hallo Andree und die anderen Mitleser:

Sache erledigt: Man nehme ein ausgewachsenes Raspbian und dann läuft die Sache mit sox/rec. Mit arecord will's dann immer noch nicht so gut, weil Aufnahme zu leise. Nun, daran ließe sich feilen, aber da rec es tut, besteht kein unmittelbarer Handlungsbedarf.

Man sollte eben Spezialdistributionen nicht überfordern, indem man sie "aufbohrt". ;)

Viele Grüße

Jochen
Bild
Buschel
Aktiver Hörer
Beiträge: 989
Registriert: 12.12.2013, 20:12
Wohnort: Raum Karlsruhe

Beitrag von Buschel »

Hallo Jochen,

das hört sich doch gut an. :cheers:

Grüße,
Andree
Bild
Sire
Aktiver Hörer
Beiträge: 311
Registriert: 02.12.2013, 14:01

Beitrag von Sire »

Hallo Jochen,

mit "rec" habe ich vor einiger Zeit erfolgreich experimentiert. Leider finde ich die Scripte nicht mehr. Mit "rec -n" wird auf der Konsole ein einfacher Level-Meter sichtbar. Mit "-S" wird es noch detaillierter. Eventl. kannst Du die Aufnahmelautstärke mit "vol" [Effekte] regulieren, ich hatte es damals mit dem Ausgangsregler des Audiointerfaces geregelt. Ich nehme an, dass Du die LPs in einem Rutsch digitalisieren willst, ansonsten bietet rec auch die Möglichkeit, die Tracks automatisch zu splitten... http://sox.sourceforge.net/sox.html

Viele Grüße Klaus
Bild
Antworten