Head-Fi.org › Forums › Equipment Forums › Portable Source Gear › Android phones and USB DACs
New Posts  All Forums:Forum Nav:

Android phones and USB DACs - Page 135

post #2011 of 5935

 

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

 

 

 

 


Edited by DanBa - 4/1/13 at 8:56pm
post #2012 of 5935
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.
post #2013 of 5935

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.

post #2014 of 5935

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. 

post #2015 of 5935
Quote:
Originally Posted by DanBa View Post

 

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

 

im pretty sure its just a normal otg cable but with different ends.  Fundamentals are the same, connectors are just different.  

post #2016 of 5935
Quote:
Originally Posted by fuzzy1969 View Post

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...

post #2017 of 5935

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


Edited by fuzzy1969 - 4/2/13 at 9:32am
post #2018 of 5935

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???

post #2019 of 5935
Quote:
Originally Posted by Hiver View Post

I was glad to find this useful tread on internets

 

 

Welcome!

 

 


Quote:
Originally Posted by Hiver View Post

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.

 

 

 

Quote:
Originally Posted by Hiver View Post

 

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.


Edited by DanBa - 4/2/13 at 1:27pm
post #2020 of 5935

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:

<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)

<7>[ 1475.390630] c3 usb 2-1: adding 2-1:1.3 (config #1, interface 3)

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.


Edited by Hiver - 4/2/13 at 2:19pm
post #2021 of 5935

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.

post #2022 of 5935

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.

post #2023 of 5935

It would be nice but its still early days, USB recorder pro is the way forward to play 24 bit flac on 24 bit dac something which would be nice.

post #2024 of 5935
post #2025 of 5935

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.

New Posts  All Forums:Forum Nav:
  Return Home
  Back to Forum: Portable Source Gear
Head-Fi.org › Forums › Equipment Forums › Portable Source Gear › Android phones and USB DACs