Re: Configuring ALSA and SCHIIT BIfrost for "bit perfect"

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

 



Daniel and list;

An observation to add to those below...

On Wed, Sep 12, 2012 at 5:39 PM, chris hermansen <clhermansen@xxxxxxxxx> wrote:
> More information, still not success...
>
> On Wed, Sep 12, 2012 at 2:19 PM, Daniel Mack <zonque@xxxxxxxxx> wrote:
>
>> I suggest using aplay for that kind of test. It's the simplest client I
>> can think of, and the less logic you have in the chain the better.
>
> Ok, using aplay -L I seem to have a lot of alternatives for this device.
>
> I decided to avoid the default, surround, ied958, dmix and dsnoop ones.
>
> (that dsnoop thing sounds interesting, but anyway).
>
> That leaves me with three "hw" and three "plughw" interfaces.
>
> hw:CARD=Interface,DEV=0
>     Schiit USB Interface, USB Audio
>     Direct hardware device without any conversions
> hw:CARD=Interface,DEV=1
>     Schiit USB Interface, USB Audio #1
>     Direct hardware device without any conversions
> hw:CARD=Interface,DEV=2
>     Schiit USB Interface, USB Audio #2
>     Direct hardware device without any conversions
> plughw:CARD=Interface,DEV=0
>     Schiit USB Interface, USB Audio
>     Hardware device with all software conversions
> plughw:CARD=Interface,DEV=1
>     Schiit USB Interface, USB Audio #1
>     Hardware device with all software conversions
> plughw:CARD=Interface,DEV=2
>     Schiit USB Interface, USB Audio #2
>     Hardware device with all software conversions
>
>
> Still on the "bit perfect" goal, I decided to try the hw interfaces.
>
> The 44.1 / 16bit file works fine on hw:CARD=Interface,DEV=0 but there
> is no sound on hw:CARD-interface,DEV=1 nor ...DEV=2.
>
> The 192 / 24bit file errors out on all the hw: interfaces, eg:
>
> clh@nice:~/WavTest$ sudo aplay -D hw:CARD=Interface,DEV=0 2L*.wav
> Home directory /home/clh not ours.
> Playing WAVE '2L38_01_192kHz.wav' : Signed 24 bit Little Endian in
> 3bytes, Rate 192000 Hz, Stereo
> aplay: set_params:1081: Sample format non available
> Available formats:
> - S16_LE
> - S32_LE
>
> Ok, I don't want to turn 24 bits into 16, so I decided to try the plughw with
> the 192 / 24 file.
>
> Eww there is that weirdly distorted version of Mozart's Violin
> Concerto in D major
> (sounds more like a bass kazoo than a violin)
>
> CTRL-C and tried again: all good!
>
> I can get it back to not working by playing a 44.1 / 16 file (once to get fuzz,
> twice to get proper sound).  So here we are, back with the bass kazoo version
> and the "-v" flag on aplay:
>
> clh@nice:~/WavTest$ sudo aplay -D plughw:CARD=Interface,DEV=0 -v 2L*.wav
> Home directory /home/clh not ours.
> Playing WAVE '2L38_01_192kHz.wav' : Signed 24 bit Little Endian in
> 3bytes, Rate 192000 Hz, Stereo
> Plug PCM: Linear conversion PCM (S32_LE)
> Its setup is:
>   stream       : PLAYBACK
>   access       : RW_INTERLEAVED
>   format       : S24_3LE
>   subformat    : STD
>   channels     : 2
>   rate         : 192000
>   exact rate   : 192000 (192000/1)
>   msbits       : 24
>   buffer_size  : 96000
>   period_size  : 24000
>   period_time  : 125000
>   tstamp_mode  : NONE
>   period_step  : 1
>   avail_min    : 24000
>   period_event : 0
>   start_threshold  : 96000
>   stop_threshold   : 96000
>   silence_threshold: 0
>   silence_size : 0
>   boundary     : 1572864000
> Slave: Hardware PCM card 1 'Schiit USB Interface' device 0 subdevice 0
> Its setup is:
>   stream       : PLAYBACK
>   access       : MMAP_INTERLEAVED
>   format       : S32_LE
>   subformat    : STD
>   channels     : 2
>   rate         : 192000
>   exact rate   : 192000 (192000/1)
>   msbits       : 32
>   buffer_size  : 96000
>   period_size  : 24000
>   period_time  : 125000
>   tstamp_mode  : NONE
>   period_step  : 1
>   avail_min    : 24000
>   period_event : 0
>   start_threshold  : 96000
>   stop_threshold   : 96000
>   silence_threshold: 0
>   silence_size : 0
>   boundary     : 1572864000
>   appl_ptr     : 0
>   hw_ptr       : 0
>
> To me, the above output seems interesting; aplay
> has the idea that all is at 192kHz.
>
> Meanwhile, here is /proc/asound/card1/stream0, where
> "something" still seems to think it is playing 176 / 24 data.
>
> clh@nice:/proc/asound/card1$ cat stream0
> CMEDIA Schiit USB Interface at usb-0000:00:13.5-5, high speed : USB Audio
>
> Playback:
>   Status: Running
>     Interface = 1
>     Altset = 2
>     Packet Size = 208
>     Momentary freq = 176430 Hz (0x16.0dc0)
>     Feedback Format = 10.14
>     Packet Size = 0
>     Momentary freq = 192000 Hz (0x18.0000)
>   Interface 1
>     Altset 1
>     Format: S16_LE
>     Channels: 2
>     Endpoint: 5 OUT (ASYNC)
>     Rates: 44100, 48000, 88200, 96000, 192000
>     Data packet interval: 125 us
>   Interface 1
>     Altset 2
>     Format: S32_LE
>     Channels: 2
>     Endpoint: 5 OUT (ASYNC)
>     Rates: 44100, 48000, 88200, 96000, 192000
>     Data packet interval: 125 us
>
> if I crash out of the aplay and start it again, sounds great, and
> we get back to the proper 192 momentary frequency in
> /proc/asound/card1/stream0
>
> clh@nice:/proc/asound/card1$ cat stream0
> CMEDIA Schiit USB Interface at usb-0000:00:13.5-5, high speed : USB Audio
>
> Playback:
>   Status: Running
>     Interface = 1
>     Altset = 2
>     Packet Size = 208
>     Momentary freq = 192031 Hz (0x18.0100)
>     Feedback Format = 8.16
>     Packet Size = 0
>     Momentary freq = 192000 Hz (0x18.0000)
>   Interface 1
>     Altset 1
>     Format: S16_LE
>     Channels: 2
>     Endpoint: 5 OUT (ASYNC)
>     Rates: 44100, 48000, 88200, 96000, 192000
>     Data packet interval: 125 us
>   Interface 1
>     Altset 2
>     Format: S32_LE
>     Channels: 2
>     Endpoint: 5 OUT (ASYNC)
>     Rates: 44100, 48000, 88200, 96000, 192000
>     Data packet interval: 125 us
>
> I guess I find it weird that aplay thinks it is playing
> 192kHz data but /proc/asound/card1/stream0 says
> it's 172kHz.
>
> The first time.  But the second, things seem correct.

One thing I notice, which may not be meaningful.

The "endpoint" lines above all say "5 OUT (ASYNC)".

The patch includes the following text:

case USB_ID(0x0d8c, 0x0304): /* CMEDIA - Schiit USB Interface */
+		if (ep->type == SND_USB_ENDPOINT_TYPE_SYNC)

Should that be SND_USB_ENDPOINT_TYPE_ASYNC?

Thanks again, for the patience and assitance!


-- 
Chris Hermansen · clhermansen@xxxxxxxxx

C'est ma façon de parler.

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Alsa-user mailing list
Alsa-user@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/alsa-user



[Index of Archives]     [ALSA Devel]     [Linux Audio Users]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]

  Powered by Linux