Ahoj, na rpi se zvukovou kartou cirrus logic jsem nahrál wav:
arecord -Dhw:sndrpiwsp -r 44100 -c 2 -f S24_LE test.wav
pokud se pokusím soubor přehrát pomocí vlc, je slyšet jen hrozný praskání, to stejné pokud soubor otevřu v audacity.
Soubor přehraji čistě jen pomocí aplay:
Signed 24 bit Little Endian, Rate 44100 Hz, Stereo
ALSA <-> PulseAudio PCM I/O Plugin
Its setup is:
stream : PLAYBACK
access : RW_INTERLEAVED
format : S24_LE
subformat : STD
channels : 2
rate : 44100
exact rate : 44100 (44100/1)
msbits : 32
buffer_size : 22050
period_size : 5512
period_time : 125000
tstamp_mode : NONE
tstamp_type : GETTIMEOFDAY
period_step : 1
avail_min : 5512
period_event : 0
start_threshold : 22050
stop_threshold : 22050
silence_threshold: 0
silence_size : 0
boundary : 6206523236469964800
Co dělám špatně? Díky za nasměrování.
S24_LE nebo S24_3LE? Tipuju si, že důvod je tenhle.
Citace od: redustin kdy 10. 03. 2019, 23:36:09
S24_LE nebo S24_3LE? Tipuju si, že důvod je tenhle.
Nevím, pokud spustím
aplay -f S24_3LE test.wavdostanu:
Warning: format is changed to S24_LE
Playing WAVE 'test.wav' : Signed 24 bit Little Endian, Rate 44100 Hz, Stereo
A co přesně konkrétně děláš? Příkazy, typ zvukovky atd...
Citace od: redustin kdy 12. 03. 2019, 16:09:42
A co přesně konkrétně děláš? Příkazy, typ zvukovky atd...
zvukova karta je intel ALC3227, jde mi o vytvoření mini nahrávacího studia s rpi, sestříhání v audacity, export -> flac, mp3...
zvukova karta na rpi je tato - https://www.element14.com/community/servlet/JiveServlet/downloadBody/72078-102-2-310056/Cirrus%20Logic%20Audio%20Card%20for%20B%2B%20and%20A%2B%20onwards%20V1.02.pdf (https://www.element14.com/community/servlet/JiveServlet/downloadBody/72078-102-2-310056/Cirrus%20Logic%20Audio%20Card%20for%20B%2B%20and%20A%2B%20onwards%20V1.02.pdf)
Bohužel k rpi teď nemám přístup, nejdřív o víkendu. Zkusím nahrát víc souborů, 16bit, 32bit.
Pokud nahraji wav pomocí arecord tak to přehraji zase jen pomocí aplay? Každopádně díky za snahu, po víkendu se snad posunu dál.
Pomohl by především vzorek toho vadného souboru.
16bit i 32bit LE je v pohodě, přehrát nejde jen 24bit.
Mně to v Audacity funguje, když to naimportuju buď jako wav, nebo když to naimportuju jako raw data. Tam to správně uhádne že to je Signed 32-bit PCM, LE, 2ch. (aktuální verze z Debianu Unstable)
Další nápovědu se dozvíš když se to pokusíš (neúspěšně) přehrát mplayerem:
AUDIO: 44100 Hz, 2 ch, s24le, 2822.4 kbit/133.33% (ratio: 352800->264600)
Všimni si těch procent/ratio, které u komprimovaných formátů bývá < 100 %, a tady je to naopak.
Nadále pohled hexdumpem ukazuje sloupce nulových bajtů.
Hypotéza (ověř si sám, na to jsem zase moc líný to dělat): ty samply vypadají tak, že je to vždycky 4 bajty, přičemž horní bajt je 0.
https://stackoverflow.com/questions/40297935/alsa-using-pcm-s24le/40301874#40301874
https://patchwork.kernel.org/patch/8868851/#18659311
wav neumí uložit formát S24_LE.
Buď bych zkusil S24_3LE (tedy skutečné 3 bajty), nebo S32_LE (tedy s nulovým bajtem na LSB pozici). S24_LE je obskurní formát.