Android phones and USB DACs
Apr 1, 2013 at 11:45 PM Post #2,011 of 9,526
Quote:
 
Certainly a bit pricey but it's pretty neat
 
http://www.amazon.com/microUSB-Digital-Short-Cable/dp/B00B1NSW8C
 
http://global.rakuten.com/en/store/e-earphone/item/4571263352077/
 
http://global.rakuten.com/en/store/japanshop/item/v1sc4a/

 
As far as I know, this VentureCraft cable won't work with usual USB DAC.
It's only for VentureCraft Go-Dap X, or likely for V-Moda Vamp Verza.
http://www.head-fi.org/t/625054/samsung-galaxy-note-2/210#post_9083490
http://www.head-fi.org/t/632019/apex-glacier-amp-dac-review-and-appreciation-thread/165#post_8924091
 
 

 

 

 
Apr 2, 2013 at 12:50 AM Post #2,012 of 9,526
I finished my comparison of the Apex Glacier and Meier Audio PCSTEP. As it ran a good bit longer than expected (damn my literary heritage), I'm going to take fuzzy1969's advice and post the comparison there if anybody's interested.

TL;DR Version: PCSTEP is more of an 'audiophile' sound, Glacier is a slightly warmer, more forgiving sound. Both are fantastic though.
 
Apr 2, 2013 at 5:50 AM Post #2,013 of 9,526
I was glad to find this useful tread on internets, thanks DanBa for your contribution!
 
Just want to report that Galaxy S3 works fine with FiiO E10 with USB Audio Recorder Pro.
 
But in native mode I'm getting in dmesg this:
<7>[ 1475.334922] c3 usb 2-1: adding 2-1:1.1 (config #1, interface 1)
<7>[ 1475.341661] c3 snd-usb-audio 2-1:1.1: usb_probe_interface
<7>[ 1475.341800] c3 snd-usb-audio 2-1:1.1: usb_probe_interface - got id
<7>[ 1475.352243] c0 max77686: id=27, org=1e, val=1c
<3>[ 1475.385089] c3 16:1: cannot get min/max values for control 2 (id 16)
<7>[ 1475.389856] c3 usb 2-1: adding 2-1:1.2 (config #1, interface 2)
 
Looks like it that fails from register proper interface for playback.
Message itself goes from sound/usb/mixer.c:static int get_min_max(struct usb_mixer_elem_info *cval, int default_min).
I have limited debugging capabilities and pretty new to kernel media infrastructure, but I hope I'll debug it once.
 
Apr 2, 2013 at 6:37 AM Post #2,014 of 9,526
Im a bit rusty with c, but 'get_min_max' is a function which might be in mixer.c or one of the included libraries declared in the the .c header, 'grep' is a useful tool for finding things in files. 
 
Apr 2, 2013 at 9:32 AM Post #2,015 of 9,526
Apr 2, 2013 at 11:39 AM Post #2,016 of 9,526
Quote:
Im a bit rusty with c, but 'get_min_max' is a function which might be in mixer.c or one of the included libraries declared in the the .c header, 'grep' is a useful tool for finding things in files. 

Yes - you're right it is in mixer.c, I've pointed that in my message :)
The question is why it fails to read desired information from FiiO chip - Since I've not found a way (yet) to run this code under gdb, data sheet for USB chip on FiiO E10 could be useful to find some inconsistencies between kernel expectations and hardware implementation...
 
Apr 2, 2013 at 12:16 PM Post #2,017 of 9,526
Im not sure my fiio E17 only works with my s3 with usb recorder pro, the 'struct' statement refering 'to usb_mixer_elem_info' will be a record of different variables maybe these will be commented in the code and give a idea of which variable is failing to return a value. edit this may be of some use I know its for Linux but Android shares a lot of the same code base..
 
http://kernel.opensuse.org/cgit/kernel/commit/?id=dcaaf9f2c16b56f8bb316881fcd3f15c18fc71e7
 
Apr 2, 2013 at 12:50 PM Post #2,018 of 9,526
This is a whole nother can of worms that I have no experience in.
 
I have a HTC One X.. and was about to buy either a e7 or e17. From what I've read.. typically.. the DAC portion won't function on my phone?
 
But.. it seems like there are ways to bypass this with the "RIGHT" interface + app???
 
Apr 2, 2013 at 4:23 PM Post #2,019 of 9,526
Quote:
I was glad to find this useful tread on internets
 

 
Welcome!
 
 

Just want to report that Galaxy S3 works fine with FiiO E10 with USB Audio Recorder Pro.
 

 
Thanks!

 
I will include the FiiO E10 in the next S3 – USB DAC compatibility list on the next page 135 + 5.
 
 
 
 
I was glad to find this useful tread on internets, thanks DanBa for your contribution!
 
Just want to report that Galaxy S3 works fine with FiiO E10 with USB Audio Recorder Pro.
 
But in native mode I'm getting in dmesg this:
<7>[ 1475.334922] c3 usb 2-1: adding 2-1:1.1 (config #1, interface 1)
<7>[ 1475.341661] c3 snd-usb-audio 2-1:1.1: usb_probe_interface
<7>[ 1475.341800] c3 snd-usb-audio 2-1:1.1: usb_probe_interface - got id
<7>[ 1475.352243] c0 max77686: id=27, org=1e, val=1c
<3>[ 1475.385089] c3 16:1: cannot get min/max values for control 2 (id 16)
<7>[ 1475.389856] c3 usb 2-1: adding 2-1:1.2 (config #1, interface 2)
 
Looks like it that fails from register proper interface for playback.
Message itself goes from sound/usb/mixer.c:static int get_min_max(struct usb_mixer_elem_info *cval, int default_min).
I have limited debugging capabilities and pretty new to kernel media infrastructure, but I hope I'll debug it once.
 

 
Yes, the Galaxy S3 has a perfectible native USB enumeration that stops interacting with the FiiO E10 / E17 when receiving a buggy USB interface descriptor.
http://forum.xda-developers.com/showpost.php?p=27612972&postcount=458
http://www.head-fi.org/t/595071/android-phones-and-usb-dacs/615#post_8807747
 
According to the USB specification, “interfaces are numbered from zero to one less than the number of concurrent interfaces supported by the configuration”.
 
The three interface descriptors of the E17 are the following:
. interface descriptor number 0: Human Interface Device
. interface descriptor number 1: Audio Control
. interface descriptor number 3: Audio Streaming
 
This latter should have the number 2.
 
 
The USB enumeration of USB Audio Recorder PRO is more tolerant; and the Galaxy S3 using USB Audio Recorder PRO can work with the FiiO E10 / E17.
 
 
As modify the software of the Galaxy S3 is much easier than modify the firmware of existing USB DAC, I asked Samsung to improve the USB enumeration of the Galaxy S3.
http://developer.samsung.com/forum/board/thread/view.do?boardName=GeneralB&messageId=227582&startId=zzzzz~
 
It should be perfect if you could add your finding on the FiiO E10 to the mentioned Samsung thread.
 
That Samsung thread is somewhat a petition to improve USB audio.
The more people post in that Samsung thread, the better Android USB audio could be improved.
 
And what is good for Samsung is also good for others (HTC, Sony,…) which seem to follow Samsung in USB audio.
 
Apr 2, 2013 at 5:16 PM Post #2,020 of 9,526
Actually I haven't seen in Samsung branch of kernel codes (I checked I9300 update 7) mentioned by ALSA gurus patch. So I believe enumeration issue still presents.
 
But, surprisinigly, I'm really not sure that for my FiiO E10 there is the same problem. At least I wasn't able to reproduce described dmesg output.
According to my dmesg log, E10 is not breaking said USB spec here:
Code:
 <7>[ 1475.334922] c3 usb 2-1: adding 2-1:1.1 (config #1, [color=#ff0000]interface 1[/color]) <7>[ 1475.341661] c3 snd-usb-audio 2-1:1.1: usb_probe_interface <7>[ 1475.341800] c3 snd-usb-audio 2-1:1.1: usb_probe_interface - got id <7>[ 1475.352243] c0 max77686: id=27, org=1e, val=1c <3>[ 1475.385089] c3 16:1: cannot get min/max values for control 2 (id 16) <7>[ 1475.389856] c3 usb 2-1: adding 2-1:1.2 (config #1, [color=#ff0000]interface 2[/color]) <7>[ 1475.390630] c3 usb 2-1: adding 2-1:1.3 (config #1, [color=#ff0000]interface 3[/color])
So enumeration seems to be passed fine, but those snd-usb-audio specifics gone wrong with reading min/max values of some parameter of device. 
 
I just bought my DAC, so maybe FiiO changed USB chip for latest revisions of E10 and that caused different behavior.
 
I'll try to do some deeper investigation, if I get some result I'll update here.
 
Apr 2, 2013 at 5:38 PM Post #2,021 of 9,526
Im going out on a limb here, Im not familiar with android kernel source code, but back in my unix days, what you can do is compile mixer.c against the kernel headers to create a mixer.o file and use printf to get variable values and use 'insmod' after the device has booted.
 
Apr 2, 2013 at 5:57 PM Post #2,022 of 9,526
Anyhow, on a same Android device, using a same USB driver, if the native USB audio can’t interact with some USB DAC and if the USB audio of USB Audio Recorder PRO can, the native USB audio should be modified or improved.
 
Apr 2, 2013 at 6:33 PM Post #2,025 of 9,526
The lvr read is interesting it refers to a powered hub (500 ma) although with a android device (100 ma) is the limit. Also 'Some controllers can manage enumeration entirely in hardware except possibly for vendor-provided values in EEPROM' which is where I think fiio messed up with the E17.
 

Users who are viewing this thread

Back
Top