I think you are on to something here.
The radio device records at 96000.  It won't record at any other rate.
The playback device only plays back at 48000.  It won't play at 96000.
It looks like the player down-converts the sample rate.

If I record and pipe it to aplay with -v on, it plays a pop each second or 
so with no music, just the pop and silence, I get:

debian@beaglebone:~$ arecord -D hw:1,0 -c2 -fS16_LE -r96000 | aplay -c2 
-fS16_LE -r96000 -v

Recording WAVE 'stdin' : Signed 16 bit Little Endian, Rate 96000 Hz, Stereo

Playing WAVE 'stdin' : Signed 16 bit Little Endian, Rate 96000 Hz, Stereo

Plug PCM: Rate conversion PCM (48000, sformat=S16_LE)

Converter: libspeex (builtin)

Protocol version: 10002

Its setup is:

  stream       : PLAYBACK

  access       : RW_INTERLEAVED

  format       : S16_LE

  subformat    : STD

  channels     : 2

  rate         : 96000

  exact rate   : 96000 (96000/1)

  msbits       : 16

  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: Direct Stream Mixing PCM

Its setup is:

  stream       : PLAYBACK

  access       : MMAP_INTERLEAVED

  format       : S16_LE

  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

Hardware PCM card 0 'C-Media USB Headphone Set' device 0 subdevice 0

Its setup is:

  stream       : PLAYBACK

  access       : MMAP_INTERLEAVED

  format       : S16_LE

  subformat    : STD

  channels     : 2

  rate         : 48000

  exact rate   : 48000 (48000/1)

  msbits       : 16

  buffer_size  : 16384

  period_size  : 1024

  period_time  : 21333

  tstamp_mode  : ENABLE

  period_step  : 1

  avail_min    : 1024

  period_event : 0

  start_threshold  : 1

  stop_threshold   : 1073741824

  silence_threshold: 0

  silence_size : 1073741824

  boundary     : 1073741824

  appl_ptr     : 0

  hw_ptr       : 0

But the interesting part is when I record to a file, then play back the 
file successfully, I get:

debian@beaglebone:~$ aplay radio.wav -v

Playing WAVE 'radio.wav' : Signed 16 bit Little Endian, Rate 96000 Hz, 
Stereo

Plug PCM: Rate conversion PCM (48000, sformat=S16_LE)

Converter: libspeex (builtin)

Protocol version: 10002

Its setup is:

  stream       : PLAYBACK

  access       : RW_INTERLEAVED

  format       : S16_LE

  subformat    : STD

  channels     : 2

  rate         : 96000

  exact rate   : 96000 (96000/1)

  msbits       : 16

  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: Direct Stream Mixing PCM

Its setup is:

  stream       : PLAYBACK

  access       : MMAP_INTERLEAVED

  format       : S16_LE

  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

Hardware PCM card 0 'C-Media USB Headphone Set' device 0 subdevice 0

Its setup is:

  stream       : PLAYBACK

  access       : MMAP_INTERLEAVED

  format       : S16_LE

  subformat    : STD

  channels     : 2

  rate         : 48000

  exact rate   : 48000 (48000/1)

  msbits       : 16

  buffer_size  : 16384

  period_size  : 1024

  period_time  : 21333

  tstamp_mode  : ENABLE

  period_step  : 1

  avail_min    : 1024

  period_event : 0

  start_threshold  : 1

  stop_threshold   : 1073741824

  silence_threshold: 0

  silence_size : 1073741824

  boundary     : 1073741824

  appl_ptr     : 0

  hw_ptr       : 0

It does the down-convert both times, but fails when using the pipe.

Any clue why it does this?

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to