Does the iFi iDAC work with the Galaxy S4 using USB Audio Recorder PRO?
Does the iFi iDAC work with the Galaxy S4 using USB Audio Recorder PRO?
I’m used to listen music on my Galaxy S3 + ODAC using USB Audio Recorder PRO in shuffle mode while reading ebook.
1. USB Audio Recorder PRO in shuffle mode
2. Click on the Home key
3. Launch eReader app, or launch any other app, or screen timeout
A list of standard USB DAC reportedly interworking with the Android-powered smartphone Samsung Galaxy S4:
stock Samsung Galaxy S4 > digital USB audio out >> USB OTG cable (ID pin grounded) >> standard USB DAC >> amp >> headphones
. GoVibe Mini U-DAC:
. HeadAmp Pico Upsampling USB DAC:
. HiFimeDIY Sabre Tiny USB DAC:
. Stoner Acoustics UD100:
@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 .
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.
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"! :-)
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 ;-)
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 :-)
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! :-)
There is nothing wrong with newbie questions, as long as you really want to learn something
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)
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? )
6) scroll to the very top, and press "Install"
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.
NuForce Icon DAC Goes Straight to the (Android) Source
"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.