Audio, Soundbylayout: how to use it at 24 bits/96 KHz
Hi All
PowerBook5,8 here.
I want to play a sound file that is coded to 24 bits/96000 Hz at
exactly these sample rates.
$ file 24-96-sound.wav
24-96-sound.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 24 bit, stereo 96000 Hz
Apple says the soundcard I have is able to do 16 or 24 bits, and
sample rates of up to 96KHz:
"The audio circuitry and audio device drivers handle audio data in
multiple formats. Both digital and analog audio circuitry handle audio
input and output data at sample rates of 32.0 kHz, 44.1 kHz, 48.0 kHz,
64.0 kHz, 88.2 kHz, and 96.0 kHz at sample depths of 16 bits and 24
bits."
Problem is, it looks as if I get maximum 48KHz when playing this 24/96
file:
-------------------------------
$ aplay -v -r 96000 24-96-sound.wav
Playing WAVE '24-96-sound.wav' : Signed 24 bit Little Endian in 3bytes, Rate 96000 Hz, Stereo
Plug PCM: Rate conversion PCM (48000, sformat=S16_BE)
Its setup is:
stream : PLAYBACK
access : RW_INTERLEAVED
format : S24_3LE
subformat : STD
channels : 2
rate : 96000
exact rate : 96000 (96000/1)
msbits : 24
buffer_size : 32768
period_size : 2048
period_time : 21333
tstamp_mode : NONE
period_step : 1
avail_min : 2048
period_event : 0
start_threshold : 32768
stop_threshold : 32768
silence_threshold: 0
silence_size : 0
boundary : 1073741824
Slave: Soft volume PCM
Control: PCM Playback Volume
min_dB: -51
max_dB: 0
resolution: 256
Its setup is:
stream : PLAYBACK
access : MMAP_INTERLEAVED
format : S16_BE
subformat : STD
channels : 2
rate : 48000
exact rate : 48000 (48000/1)
msbits : 16
buffer_size : 16384
period_size : 1024
period_time : 21333
tstamp_mode : NONE
period_step : 1
avail_min : 1024
period_event : 0
start_threshold : 16384
stop_threshold : 16384
silence_threshold: 0
silence_size : 0
boundary : 1073741824
Slave: Direct Stream Mixing PCM
Its setup is:
stream : PLAYBACK
access : MMAP_INTERLEAVED
format : S16_BE
subformat : STD
channels : 2
rate : 48000
exact rate : 48000 (48000/1)
msbits : 16
buffer_size : 16384
period_size : 1024
period_time : 21333
tstamp_mode : NONE
period_step : 1
avail_min : 1024
[ .... ]
-----------------------------
mplayer:
-----------------------------
$ mplayer -identify 24-96-sound.wav
MPlayer SVN-r29409-4.3.3 (C) 2000-2009 MPlayer Team
Can't open joystick device /dev/input/js0: No such file or directory
Can't init input joystick
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.
Playing 24-96-sound.wav.
ID_AUDIO_ID=0
Audio only file format detected.
ID_FILENAME=24-96-sound.wav
ID_DEMUXER=audio
ID_AUDIO_FORMAT=1
ID_AUDIO_BITRATE=4608000
ID_AUDIO_RATE=0
ID_AUDIO_NCH=2
ID_LENGTH=394.00
ID_SEEKABLE=1
ID_CHAPTERS=0
==========================================================================
Opening audio decoder: [pcm] Uncompressed PCM audio decoder
AUDIO: 96000 Hz, 2 ch, s24le, 4608.0 kbit/100.00% (ratio: 576000->576000)
ID_AUDIO_BITRATE=4608000
ID_AUDIO_RATE=96000
ID_AUDIO_NCH=2
Selected audio codec: [pcm] afm: pcm (Uncompressed PCM)
==========================================================================
[AO_ALSA] Format s24le is not supported by hardware, trying default.
AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample)
ID_AUDIO_CODEC=pcm
Video: no video
Starting playback...
-----------------------------
do I have to recompile the 2.6.30 kernel I use, and if yes, what do I change?:
excerpt pcm.h:
------------------------
/* If you change this don't forget to change rates[] table in pcm_native.c */
#define SNDRV_PCM_RATE_5512 (1<<0) /* 5512Hz */
#define SNDRV_PCM_RATE_8000 (1<<1) /* 8000Hz */
#define SNDRV_PCM_RATE_11025 (1<<2) /* 11025Hz */
#define SNDRV_PCM_RATE_16000 (1<<3) /* 16000Hz */
#define SNDRV_PCM_RATE_22050 (1<<4) /* 22050Hz */
#define SNDRV_PCM_RATE_32000 (1<<5) /* 32000Hz */
#define SNDRV_PCM_RATE_44100 (1<<6) /* 44100Hz */
#define SNDRV_PCM_RATE_48000 (1<<7) /* 48000Hz */
#define SNDRV_PCM_RATE_64000 (1<<8) /* 64000Hz */
#define SNDRV_PCM_RATE_88200 (1<<9) /* 88200Hz */
#define SNDRV_PCM_RATE_96000 (1<<10) /* 96000Hz */
#define SNDRV_PCM_RATE_176400 (1<<11) /* 176400Hz */
#define SNDRV_PCM_RATE_192000 (1<<12) /* 192000Hz */
----------------------
Or some module parameter I could change for what I want?
What else?
Thanks in anticipation
Best regards
Wolfgang
--
http://heelsbroke.wordpress.com
Reply to: