Android phones and USB DACs
Jul 28, 2013 at 7:28 PM Post #2,731 of 9,526
Quote:
What USB DAC will work w/ the Galaxy S4 w/o USB Audio Recorder Pro?

 
Quote:
Any dac only since I already have a c5 amp?

 
A list of standard USB DAC reportedly interworking with the Android-powered smartphone Samsung Galaxy S4:
http://www.head-fi.org/t/595071/android-phones-and-usb-dacs/2685#post_9642850
 
stock Samsung Galaxy S4 > digital USB audio out >> USB OTG cable (ID pin grounded) >> standard USB DAC >> amp >> headphones
 
...
. GoVibe Mini U-DAC:
http://jaben-bandung.com/index.php?route=product/product&product_id=147
http://forum.xda-developers.com/showpost.php?p=41350105&postcount=24
 
. HeadAmp Pico Upsampling USB DAC:
http://www.headamp.com/pico/pico_usb_dac/index.htm
http://www.head-fi.org/t/595071/android-phones-and-usb-dacs/2190#post_9387172
 
. HiFimeDIY Sabre Tiny USB DAC:
http://hifimediy.com/index.php?route=product/product&path=62&product_id=107
http://www.head-fi.org/t/595071/android-phones-and-usb-dacs/2460#post_9506498
 
. Stoner Acoustics UD100:
http://stoneracoustics.blogspot.fr/
http://www.head-fi.org/t/595071/android-phones-and-usb-dacs/2265#post_9424990
...
 
Jul 28, 2013 at 9:05 PM Post #2,732 of 9,526
@Raenmor: I have no idea what it was you said there, but I love that we have multiple good minds on the task of getting this up and running! Hopefully somebody with more knowledge than I have will be able to take that and get us towards a simple, reliable solution for USB audio. Thanks for the work and the time to type it all up!! Guess I'll have to add you to the list of people I owe a beer to around here... which is starting to get a little unwieldy 
size]

 
Jul 29, 2013 at 2:40 AM Post #2,739 of 9,526
OK, I'll start from theory - on of android sound problems is its own sound layer. So every sound you play goes like this: music player --> android layer --> alsa --> dac --> speaker. Android layer can't pass stream higher than 48/16, so it will downsample anything above (and usually upsample 44.1/16 music as well). After that alsa is coming into play, but default alsa configuration on android includes upsampling as well. So even if your dac is working on android it doesn't mean that it will play your files as expected and unaltered. So there are two ways to bypass it - by using an app with custom usb drivers to send audio to dac bypassing everything in the way (usb audio recorder pro) or accessing alsa directly, but it requires root and proper app (none exists so far. Maybe I will convince developer of aMPD to include alsa output with root, but he's on vacation right now, so eta is unknown). 
 
I really like the technical implementation of audiorecorder, but the main downside for me is that it stops playback as soon as screen goes off making it unusable for me.
 
Since I'm a no developer by any means custom drivers/apps is far beyond my skills. So the only viable solution I found for myself is to run linux alongside android, and play music from it (to bypass android layer and communicate the alsa directly, disabling any resampling and other stuff). But switching to linux each time I want to change track or play/pause is stupid. The way to solve it - use mpd server on linux and mpd client (MPDroid is the best) on android to do all this stuff.
 
Running linux is not that hard (but with some limitations - you need root at least, and for some situation - kernel support). My first attempt using Linux Installer and ubuntu image wasn't successful, since alsa wasn't working properly there (didn't see any soundcards). 
 
After some research I found Linux Deploy, which is freaking awesome. Using it I've installed debian (I wasn't using any preconfigured images), so it was configured specifically for my phone. I didn't install any GUI to keep it as lightweight as possible. After installation was done (on One X it took very long time, approx. 4 hours or so, but developer says that it should take around 30 min. Don't know why and honestly don't care why it took so long for me). Alsa was working out of the box, but I've installed alsa-ustils to check some things (how to use it - read my guide, posted few pages back). After that installing and configuring mpd to run on localhost was easy (search google for some guides about mpd configuration. It is possible to do it without GUI, using sudo -e). So now linux playing my music for me, and all controls are done from android.
 
The only downside I've found so far - when the screen goes off the usb dac unmounts automatically since phone goes to deep sleep (mpdroid has no wakelock), so I have to manually enable simple wakelock to keep cpu running while screen is off.
 
If someone will have questions about any steps - I will be happy to help, but I think writing step by step guide this time will be useless.


Hey there, thanks for positing.
Would you mind me asking few nubile questions? I am new to android since i recently switched from ios to android, wanted to use my dac with my phone and I cant spend xxx$ on ios dacs,duh and bought my phone last week. I am on stock ROM 4.1.2 rooted.

Installed Linux deploy but want to be carefull what I do next. Not that I have tried messing myself but since you have it figured, it would be helpfull to me and to others interested as well. So here are my questions
1- how to install debian?
2- do I need GUI? If no then how to install/use sudo-e?
3- I dont understand when Linux Deploy says one need 1GB to install linux image and then again it says one needs 4GB to install linux image on SD card, I dont buy it, does that means 4GB in flash card, else 1GB in internal memory?
4- does the wakelock eats battery?
Usually when you are not using USBAR PRO and your dac is working with stock/other audio players, it still works when the screen goes off. My battery lasts around 10-12 hours contineous playback. So Wakelock wont change my current battery life right?

Sent from my C5302 using Tapatalk 4 Beta
 
Jul 29, 2013 at 6:41 AM Post #2,740 of 9,526
Dear colleagues, I'd like to share here some of my findings on the Sony Xperia Sola. In brief, it works with UARP, but with many "but"! :)
 

 
The good: 
 
1) Sola is upgradeable to 4.0.4, and I suggest you do that for UARP purposes.
2) Sola can be rooted, and, while it is NOT necessary for UARP, it might be required because of other reasons you'll see below in "the bad".
3) Sola has a properly orientated micro USB socket, so that most stock right-angle USB OTG cables that I bumped into would be nicely aligned with the phone body, with the cable going down. For instance, the Xperia Go that I mistakingly purchased earlier, had a socked reversed compared to Sola, and the cable was going upwards.
4) Sola can normally operate without the SIM card installed (which is my case - the phone acts purely as a digital transport :wink:
 
Now, the bad:
 
1) Sola does not support USB audio out-of-the box. Everyone knows that, and, thanks god, it works with UARP installed.
2) Sola has a stupid and unfortunate "USB OTG Power Consumption Error" glitch. It means that the device may randomly (or at least I cannot track the logic, and seems that other users neither) reject to initialise the USB device, claiming that it requires too much power. The phone then disconnects the USB device, and you can't use it. 
 
This is a very stupid problem, because it has an even more stupid solution: you can add a non-powered USB hub between the Sola and your device, and it then works! To me, it makes absolutely no sence, because clearly a USB hub as a device only increases the overall power consumption from Sola's USB subsystem. But, apparently, there's someting in USB hub schematics that somehow fools the phone, making it think that the power consumption is less. I have no idea what this is, but there are reports from other users, confirming it. 
 
I followed the advice found here: http://www.youtube.com/watch?feature=player_embedded&v=SXvPehEX708#at=11
 
It is about Xperia S, but the principle is the same. And it worked on my Sola.
 
As you can see in the pic, this ugly set up currently uses a 3$ no-name USB hub put in between the Sola and my RSA Predator, and it works perfectly. 
 
So, I consider myself to be half-way through.
 
The next step I will try is to hack into a USB hub, soldering an OTG micro usb cable end directly onto the hub PCB, and then soldering a short mini USB male cable again directly to the PCB instead of one of the USB upstream sockets. The idea is to make the whole thing as compact as possible.
 
However, I bumped into a post about removing this power consumption error thing by sending a certain shell command to rooted phone. It's here: http://androidguyz.com/showthread.php?tid=12
 
I was able to successfully root my phone, and get SU access. However, I have no idea how to send shell commands to it. But I am working on it. If someone did it and succeeded, please share!
 
Anyway, I think what I achieved is already a nice step forward: I have a noiseless and humless digital source that cost me roughly USD 250, that has a good potential to become the main portable source for hi-res digital music for me :)
 
P. S.
 
DanBa, this is to confirm the interoperatbility of Xperia Sola ->UARP ->USB hub -> RSA Predator. This combo DOES NOT work without USB hub because of Power Consumption Error.
 
SV_huMMer out! :)
 
Jul 29, 2013 at 1:19 PM Post #2,742 of 9,526
Quote:
Hey there, thanks for positing.
Would you mind me asking few nubile questions? I am new to android since i recently switched from ios to android, wanted to use my dac with my phone and I cant spend xxx$ on ios dacs,duh and bought my phone last week. I am on stock ROM 4.1.2 rooted.

Installed Linux deploy but want to be carefull what I do next. Not that I have tried messing myself but since you have it figured, it would be helpfull to me and to others interested as well. So here are my questions
1- how to install debian?
2- do I need GUI? If no then how to install/use sudo-e?
3- I dont understand when Linux Deploy says one need 1GB to install linux image and then again it says one needs 4GB to install linux image on SD card, I dont buy it, does that means 4GB in flash card, else 1GB in internal memory?
4- does the wakelock eats battery?
Usually when you are not using USBAR PRO and your dac is working with stock/other audio players, it still works when the screen goes off. My battery lasts around 10-12 hours contineous playback. So Wakelock wont change my current battery life right?

Sent from my C5302 using Tapatalk 4 Beta

There is nothing wrong with newbie questions, as long as you really want to learn something 
wink.gif

And before I start - it's impossible to ruin your system with linux deploy (probably you can, but you have to do it on purpose, and even then you will probably fail to do so)
 
Ok, now let's start
1)Run linux deploy, go into your profile and run menu-status. Look for the line "Support loop device", if it says "yes", then you can install linux into .img file, if no, you have to do it into directory (/data/linux/ will do fine)
 
2)About image size - with no GUI recommended minimum is 512mb, with GUI - 1024mb, maximum size on fat32 file system (which you probably have) is 4096mb. For our purpose 512 will do fine (I use the same)
 
3)go to settings in linux deploy, scroll down to "operating environment", tick "create symlink" and press "update env". It will ask for root permissions, grant it and wait for completion.
 
4)go to profile properties (once inside the profile - the button with arrow symbol on it)
 
5)Chose
distribution - debian,
suite - wheezy,
architecture - armhf (for newer phones, if you think that you phone is old and/or cheap one, it's safer to choose armel. It's about floating point calculations - software (armel), or hardware (armhf). Tegra 3 is doing fine with armhf, for others I can't say for sure. SoCs like S4 and similar should do fine, I think.)
Installation type - file (if you have loop device support), directory - if you don't
path - choose path for image file, or directory to install (/data/linux, as I already said, but be sure that you have enough free space on /data, at least 400+ mb)
Image size (if you're using image) - 512mb
Install GUI - uncheck
on startup group uncheck everything, except "SSH" and "custom mount" (you want access to your sdcard, right? 
biggrin.gif
)
 
6) scroll to the very top, and press "Install"
 
7) Wait...
 
8)after installation complete press start
 
9)download terminal emulator from market (run "su", and then "linuxdeploy shell" in it, now you're see your linux terminal), or use ssh client on your pc to control your linux (I prefer putty, i'ts nice and simple)
 
10)default root password should be "changeme", but for me it didn't work, so I had to change root pswd using terminal on the phone, and then connect from pc as root with new pswd.
 
11)after you connected as root to your linux you have to refresh you repos by running "apt-get update" command
 
12)install alsa-utils (apt-get alsa-utils) and mpd (apt-get mpd)
 
13)connect your DAC, run "aplay -l" and check, if alsa identified your card, also write down it's card number, subdevice and name (not the long one in "", but the short one before in capital letters)
 
14)run "sudo -e /etc/mpd.conf" (from your pc, 'cause from android it will be painful to use), and edit your mpd configuration file to send audio to your alsa device without alterations (you can read more here, but you need the part about mpd and alsa configuration only, ignore the rest). I've used bind_to_address "any", so I can connect from pc and from the phone itself to the mpd server, If you won't - you can bind it to "localhost".
 
15) download MPDroid from market, set server address in default connections as "localhost" (or 127.0.0.1) and you're good to go.
 
If you have any more questions - feel free to ask, but very basic ones (like "how to change root password" you can google yourself. From android terminal (using linuxdeploy shell) you're connected to linux as root anyway and can do anything you want)
 
And about wakelock - no, it wont eat your battery, as any music player enables it by default. MPDroid is not a player, it's a client, thus it doesn't use wakelock. That's why you have to turn it on manually.
 
Jul 29, 2013 at 4:18 PM Post #2,743 of 9,526
NuForce Icon DAC Goes Straight to the (Android) Source
http://www.technologytell.com/hometech/98926/nuforce-icon-dac-for-android/
 
"NuForce has released a new addition to its line of DACs and headphone amps that should be of particular interest to you Android fans in the audience. The new Icon DAC not only features 32-bit digital-to-analog conversion for Macs and PCs, but also serves as an audiophile caliber DAC and headphone amp for phones and tablets running Android 4.1.1 or later with USB OTG Audio capabilities, including HTC ONE X, Samsung S3, SONY Xperia Z, and all newer versions of those devices.
...
“With the advent of Smartphones and their enormous storage capabilities, a great many audio enthusiasts have been longing for a quality DAC/headphone amp they can simply plug directly into in order to experience their favorite music delivered with vivid clarity,” said Jason Lim, NuForce CEO.  “We’ve created a solution for Android users that we believe is comprehensive and fills the void.”
 
Icon DAC is a diverse device that can be used in the home or office.  The Icon DAC can be used as a DAC, a headphone amp or a preamp utilizing the secondary analog input for stereo signals from most home-audio and mobile sources.  The DAC is packed with the latest technology and accepts PCM sample rates up to 96kHz."
 
 
 

 

 
Jul 29, 2013 at 10:03 PM Post #2,744 of 9,526
There is nothing wrong with newbie questions, as long as you really want to learn something 
wink.gif


And before I start - it's impossible to ruin your system with linux deploy (probably you can, but you have to do it on purpose, and even then you will probably fail to do so)

Ok, now let's start
1)Run linux deploy, go into your profile and run menu-status. Look for the line "Support loop device", if it says "yes", then you can install linux into .img file, if no, you have to do it into directory (/data/linux/ will do fine)

2)About image size - with no GUI recommended minimum is 512mb, with GUI - 1024mb, maximum size on fat32 file system (which you probably have) is 4096mb. For our purpose 512 will do fine (I use the same)

3)go to settings in linux deploy, scroll down to "operating environment", tick "create symlink" and press "update env". It will ask for root permissions, grant it and wait for completion.

4)go to profile properties (once inside the profile - the button with arrow symbol on it)

5)Chose
distribution - debian,
suite - wheezy,
architecture - armhf (for newer phones, if you think that you phone is old and/or cheap one, it's safer to choose armel. It's about floating point calculations - software (armel), or hardware (armhf). Tegra 3 is doing fine with armhf, for others I can't say for sure. SoCs like S4 and similar should do fine, I think.)
Installation type - file (if you have loop device support), directory - if you don't
path - choose path for image file, or directory to install (/data/linux, as I already said, but be sure that you have enough free space on /data, at least 400+ mb)
Image size (if you're using image) - 512mb
Install GUI - uncheck
on startup group uncheck everything, except "SSH" and "custom mount" (you want access to your sdcard, right? 
biggrin.gif

)

6) scroll to the very top, and press "Install"

7) Wait...

8)after installation complete press start

9)download terminal emulator from market (run "su", and then "linuxdeploy shell" in it, now you're see your linux terminal), or use ssh client on your pc to control your linux (I prefer putty, i'ts nice and simple)

10)default root password should be "changeme", but for me it didn't work, so I had to change root pswd using terminal on the phone, and then connect from pc as root with new pswd.

11)after you connected as root to your linux you have to refresh you repos by running "apt-get update" command

12)install alsa-utils (apt-get alsa-utils) and mpd (apt-get mpd)

13)connect your DAC, run "aplay -l" and check, if alsa identified your card, also write down it's card number, subdevice and name (not the long one in "", but the short one before in capital letters)

14)run "sudo -e /etc/mpd.conf" (from your pc, 'cause from android it will be painful to use), and edit your mpd configuration file to send audio to your alsa device without alterations (you can read more here, but you need the part about mpd and alsa configuration only, ignore the rest). I've used bind_to_address "any", so I can connect from pc and from the phone itself to the mpd server, If you won't - you can bind it to "localhost".

15) download MPDroid from market, set server address in default connections as "localhost" (or 127.0.0.1) and you're good to go.

If you have any more questions - feel free to ask, but very basic ones (like "how to change root password" you can google yourself. From android terminal (using linuxdeploy shell) you're connected to linux as root anyway and can do anything you want)

And about wakelock - no, it wont eat your battery, as any music player enables it by default. MPDroid is not a player, it's a client, thus it doesn't use wakelock. That's why you have to turn it on manually.


Wow thats some steps, thanks man, 'll do today. Its always good to know people out there trying to develop sonething that's not perfect before.

Thanks for your help buddy. I 'll report back.

Regards
Jared
 
Jul 29, 2013 at 10:49 PM Post #2,745 of 9,526
Ok so I have a quick question.
 
Galaxy S4 -> USB OTG -> Sabre Tiny DAC -> JDS C5 -> T-Peos H-200
 
Why am I able to change the volume from my Android device using PowerAmp? Is this considered true line out quality or is it the same as using the headphone out? Should I leave the volume on the Android device at 100% and control the volume through my amp?
 

 

Users who are viewing this thread

Back
Top