@Triode

I see you are busy with upsampling schemes, but I wanted to report my
issues in configuring different DACs using Jivelite.

I had good success with a Musical Fidelity UAC2 VLink 192 interface, but
utterly failed with an AudioEngine D2 UAC1 and also failed HiFimeDIY
Sabre DAC UAC1 device. All three could be configured via JackOfAll's web
GUI page. 

So I started looking into why this could be.  It turned out that
SetupSqueezeliteApplet.lua was attempting to parse the contents of
/proc/asound/" .. card .. "/stream0", but with assumptions about
relative line numbers used for certain parameters, which don't appear to
hold true for some DACs. For example, my ultra-cheap HiFimeDIY DAC has
the following stream0

Code:
--------------------
    
  HiFimeDIY Audio HiFimeDIY DAC at usb-fsl-ehci.1-1.1, full speed : USB Audio
  
  Playback:
  Status: Running
  Interface = 3
  Altset = 2
  URBs = 2 [ 5 6 ]
  Packet Size = 582
  Momentary freq = 44100 Hz (0x2c.199a)
  Interface 3
  Altset 1
  Format: S16_LE
  Channels: 2
  Endpoint: 3 OUT (ADAPTIVE)
  Rates: 8000, 16000, 32000, 44100, 48000, 96000
  Interface 3
  Altset 2
  Format: S24_3LE
  Channels: 2
  Endpoint: 3 OUT (ADAPTIVE)
  Rates: 8000, 16000, 32000, 44100, 48000, 96000
  
  Capture:
  Status: Stop
  Interface 2
  Altset 1
  Format: S16_LE
  Channels: 2
  Endpoint: 2 IN (ADAPTIVE)
  Rates: 8000, 16000, 32000, 44100, 48000, 96000
  Interface 2
  Altset 2
  Format: S24_3LE
  Channels: 2
  Endpoint: 2 IN (ADAPTIVE)
  Rates: 8000, 16000, 32000, 44100, 48000, 96000
  
--------------------

whereas my Musical Fidelity interface has 

Code:
--------------------
    
  Musical Fidelity Musical Fidelity V-Link 192kHz at usb-fsl-ehci.1-1.2, high 
spe : USB Audio
  
  Playback:
  Status: Stop
  Interface 1
  Altset 1
  Format: S32_LE
  Channels: 2
  Endpoint: 1 OUT (ASYNC)
  Rates: 44100, 48000, 88200, 96000, 176400, 192000
  Data packet interval: 125 us
  
--------------------

In the first case where there are a number of Altsets on a number of
Interfaces, the assumption that you can skip 2 lines after parsing the
Rates: line doesn't work; you end up misaligned and assigning a bunch of
nil values to parameters which trips up the code later on.

I made a quick fix (see patch) by scanning for Interface lines without
any particular assumption of where they would be in relation to the
previously read field. I am not sure it is good way to make this robust
for all cases, but it does work for the DACs I have in house.


+-------------------------------------------------------------------+
|Filename: SetupSqueezeliteApplet.patch                             |
|Download: http://forums.slimdevices.com/attachment.php?attachmentid=14887|
+-------------------------------------------------------------------+

------------------------------------------------------------------------
dsdreamer's Profile: http://forums.slimdevices.com/member.php?userid=12588
View this thread: http://forums.slimdevices.com/showthread.php?t=98544

_______________________________________________
unix mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/unix

Reply via email to