[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: