[Q] What is the state of external audio input on Android? - Android Q&A, Help & Troubleshooting

Hello,
I'm trying to get higher quality audio input (sample width and conditioning, don't care about sampling rate above 32k) than is available through the microphone jack and was looking for an overview of where the development of such capabilites stands today. From what I gather:
Android 3.1 (maybe 3.2) added some support for USB Audio, though I can find almost no details on the capabilities. I can't post links, but a post on computeraudiophile with google search terms "usb audio enabled galaxy s3" claims support for a bunch of USB DACs on the Galaxy S3, but there is no mention of using the ADC.
Android 4.1 added support for USB audio docks -- these are generally (as far as I can find) speaker systems with a USB cable -- which only support audio output.
Software such as USB Audio Recorder Pro can record from a number of devices but this is of no use to a developer wishing to get the data into a separate application.
Lots of devices have HDMI ports but I found nothing about anyone managing HDMI input.
I can't find any such device for Bluetooth, but also nothing suggesting that it isn't possible. If so, can anyone speculate on audio quality limitations?
Now, I understand that the vast majority of users who want USB audio want output so it can go to their speakers, but there are some who need the other direction (or both...). Can anyone more familiar with the subject comment on the state of external audio input on Android devices?
Thanks,
Ben

Related

[REQ] iDevice compatible headphone recognition.

Is it possible via software to get apps (or indeed the underlying OS) to recognise the alternative inputs from the 3-contact TRRS (3.5mm headphone) connector as used on iphone compatible headphones?
It would be useful for accessories such as the iLuv inline extension (http://bit.ly/9iSZpA) to enable volume control when used with 3rd party headphones. As it stands the play/pause/skip functionality works, as do inline microphones (such as on the Griffin SmartTalk - http://bit.ly/CkdV) but volume control isn't recognised.
The alternative is to cannabilise the original N1 headphones, but being able to use the much more prevalent iPhone/iPod compatible types would make choices a lot easier.
If this is an electrical limitation rather than software, then please note as such and close the thread.

USB DAC's / ALSA / snd-usb-audio / USB sound card

This is something that android needs. USB DAC support.
I've been doing research and have compiled my own kernel for testing. There is something called the Advanced Linux Sound Architecture which has USB sound card support. However, when enabling this on a kernel I compiled, it seems Android totally ignores it. Once more, when I try to activate the module using the command modprobe snd-usb-audio it just completely fails.
When I plug my device in, I can see that the system is recognizing the device in proc/asound and sys/bus/USB/devices/2-1 and also dev/snd
The wiki https://wiki.archlinux.org/index.php/Alsa#Making_sure_the_sound_modules_are_loaded also tells me that everything is OK in dev/snd
The only chance to get this working is to use asoundconf somehow. I have no idea how to do this.
In my opinion, Android totally needs USB sound card support standardized on all Stock kernels and ROMS so that its users can use USB sound card's (USB DAC'S) as they wish.
There are other sites which have mentioned USB DAC support on Android and they may be useful for further research:
http://www.head-fi.org/t/595071/and...w-to-increase-the-issues-priority-with-google - Page 6 onwards seems interesting
http://www.slatedroid.com/topic/29289-usb-audio-cards-support-drivers-and-libs/
http://code.google.com/p/android/is...&colspec=ID Type Status Owner Summary Sta rs - Please star this issue
I have to say, USB Audio support for Jelly Bean was a massive dissapointment since the DAC has to support the ADK. When I tried my standard DAC with Jelly bean, it did not work.
I just wish more custom kernels could support this and wish Google would support it too.
Sent from my Xoom using xda premium
USB audio works on my Allwinner A10 tablet witn "Unofficial CyanogenMod 9 for many AllWinner A10 tablets" firmware from Christian Troy
Proof that USB audio can work on android.
Sent from my Xoom using xda app-developers app
i need usb audio in ics
ntm12 said:
USB audio works on my Allwinner A10 tablet witn "Unofficial CyanogenMod 9 for many AllWinner A10 tablets" firmware from Christian Troy
Click to expand...
Click to collapse
I,m happy to know that i's go right in your tab. So i ask if u can help to make my tab fuctioning in usb-audio mode.
I have a chinese comp rk29 model.
Cheers thnk u
External USB DAC use from Android GT-i9250?
Hi There,
I am interested if you had any developments here with external USB DAC?
I have the Galaxy GT-i9250 and I would love to play music (44/16 or 96/24) files through an external USB DAC such that I bypass the phones internal DAC. Are there any advancements?
If so, how do I do it and what external DAC's do you recomend?
Thanks,
Asif.
asifmajid said:
Hi There,
I am interested if you had any developments here with external USB DAC?
I have the Galaxy GT-i9250 and I would love to play music (44/16 or 96/24) files through an external USB DAC such that I bypass the phones internal DAC. Are there any advancements?
If so, how do I do it and what external DAC's do you recomend?
Thanks,
Asif.
Click to expand...
Click to collapse
Unfortuantly, USB DAC functionality still seems to be severely limited despite support in Linux.
Many Developers focus on optimising a kernel for a specific ROM rather than adding features to the kernel to add functionality such as USB DAC's. I too would like support from developers to bring this forward as there are just a few devices out of hundreds of Android devices with some sort of USB DAC functionality as mentioned in previous posts. I also know that the Samsung Galaxy S3 has limited but native support for some USB DAC's.
I would recommend getting a popular USB DAC device because it would probably be a higher priority to developers to support. (because it would have more users).
From what I understand, USB DAC isn't a hard feature to implement. The problem lies in the fact that not enough people are asking for this functionality at the moment to develop it, beta test it and subsequently implement it.
Maybe, some time in the future (near future, I hope) we can enjoy this as a feature on our Android devices.
Sent from my Xoom using xda app-developers app
Hi !
Any news about it ?
We are sooo much to wait for this !!
Please devs, add it in your kernels !!
Very interesting. I have tried to enable CONFIG_SND_USB_AUDIO=y and CONFIG_USB_AUDIO=y, But it does not work.
Waiting for other Idea.
Few updates
I have a few updates here.
It appears that my HTC One X running Android Revolution HD 13.0 (Jelly Bean) has the drivers and loaded modules for snd_usb_audio. And when I plug my USB DAC into it. It recognizes it and automatically directs sound to it. This is good.
I've dived into why it works on the HTC One X and not on my Xoom and come across a folder called /proc/asound
This folder is to do with the ALSA (Advanced Linux Sound Architecture) and when I plug my USB DAC into my One X, it creates a folder called 'Headset' (since my USB DAC is a headset).
I've found folders named "snd_usb_audio" (or similar) in the following folder locations:
/sys/bus/usb/drivers/snd-usb-audio
/sys/module/snd_usb_audio
I just don't know how to add this gory stuff into another android device. This is what Im trying to do.
Im going to compile a kernel in the next few days to see if I get anywhere.
I have SGS3 and i tried to connect my old M-Audio Duo USB sound card via USB. The phone plays music thru it, but Inputs of the sound card is not recognized, phone still records by build in mics.
What i really need is portable stereo mic attached by USB for my phone so i can make studio quality recordings with it. Something like tascam did for iPhone:
http://tascam.com/product/im2/
If anybody knows some solution please post it here!
Same here, output works on my One X but not input. That's another key barrier to overcome.
Sent from my HTC One X using xda app-developers app
jamjame said:
Same here, output works on my One X but not input. That's another key barrier to overcome.
Sent from my HTC One X using xda app-developers app
Click to expand...
Click to collapse
If you'll figure out a way to make inputs work via usb that would be revolutionary development for android. I wounder why major companies didn't develop some device like that so far. There's demand for it obviously.
I badly want to see this feature figured out and added to CM10. I flashed drewgaren.com's JB TouchWiz rom last night just to get this feature, and I'm already sorely missing CM10.
I would be positively thrilled to see movement towards implementing this feature outside TouchWiz, would be delighted to help test it, and would even throw money at someone who could get it done for us.
djthread said:
I badly want to see this feature figured out and added to CM10. I flashed drewgaren.com's JB TouchWiz rom last night just to get this feature, and I'm already sorely missing CM10.
I would be positively thrilled to see movement towards implementing this feature outside TouchWiz, would be delighted to help test it, and would even throw money at someone who could get it done for us.
Click to expand...
Click to collapse
If anyone knows the ROM on which both Input and output (or at least input) from the soundcart works thru USB, please let me know.
"eXtream Software Development has released their app USB Audio Recorder PRO to the Play Store. It allows recording and playback using many standards compliant USB audio devices, a first for Android. By writing custom USB audio code, pro audio is now finally possible on millions of Android devices."
"The Android app USB Audio Recorder PRO allows you to record and playback audio using class-compliant USB audio devices on your Android phone or tablet! eXtream Software Development has written a custom USB audio driver from scratch...
Supported are mono and stereo streams, 16-bit and 24-bit and any sample rate (up to 192kHz) that the device provides..."
http://www.head-fi.org/t/595071/android-phones-and-usb-dacs/1020#post_8954935
http://www.extreamsd.com/USBAudioRecorderPRO/
https://play.google.com/store/search?q=usb+audio+recorder+pro
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
A USB audio source code:
http://www.alsa-project.org/main/index.php/Main_Page
https://github.com/sgs3/GT-I9300_Kernel/blob/master/sound/usb/card.c#L2
https://github.com/sgs3/GT-I9300_Kernel/tree/master/sound/usb
USB audio & Android
USB standard (audio, mass storage, etc.) driver supported on stock Galaxy S3 / Note2
"As long as the kernel on the Android device supported the USB standard driver of the hardware (mass storage, input, etc.), Android would be able to use it and therefore open up a new range of extra devices compatible with the system."
USB standard (audio, mass storage, etc.) driver not supported:
* Developing your USB standard (audio, etc.) driver at the kernel space
"However, there are many devices that have not been "compatible" from the beginning. For instance, let's say your common RFID reader. It most likely uses a USB-serial port and probably comes with a Linux or Windows driver as well as some software. Most Android tablets will come without the USB-serial driver for your RFID reader however.
Therefore, if you want to load your driver you will need to root your tablet, determine the version of your current kernel, find the kernel sources online, hope that everything compiles to have your driver ready and then load it onto your tablet. In the end, when you finally have your kernel driver running, you will be required to write C code as well as some JNI glue to communicate with your Activity or Service in Android.
All in all, this approach is not very straightforward.
* Writing your own USB "soft driver" at the user space
There is a very elegant solution to aforementioned problem.
It requires far less skills in hacking and porting than the mentioned approach. However, you will require some advanced knowledge in Android programming as well as some USB know-how.
You can write your own "soft driver" in Android. Since the USB Host API has been released, it is now possible to communicate with any USB device using the most commonly seen USB transfers (control, interrupt, bulk).
In the end, your result will be portable across all Android devices that have USB host enabled and have Android version 3.1+. Moreover, this solution does NOT require root access to the tablet or phone. It is currently the only viable solution that does not require the user to have any know-how of rooting/hacking the device and risk losing warranty in the process."
http://android.serverbox.ch/?p=549
I see that both the Android compatible DACs (V-MODA VAMP VERZA, XDUOO XP-1) and the USB Audio Recorder PRO app supports nearly the same devices.
Other than that I hear that the requirements are:
USB Host (Basically almost every newer device can do this)
USB OTG Cable (Who worries about a cable?)
1. Is this because of simply the CONFIG_USB_AUDIO parameter set to false? Shouldn't a mod like CyanogenMod enable this?
2. Or because V-MODA VAMP VERZA, XDUOO XP-1 are the only USB DACs to support the ADK interface in Jelly Bean ?
3. What exactly is the difference between the Verza, XDUOO and the other DACs? Why wouldn't any DAC be compatible through USB Audio in the linux kernel ?
I really wish to lift my Samsung Galaxy S2 sound quality, and I am ready to spend the money to make it sound good. But the Verza is too expensive for me and has few other outputs and inputs so I doubt the reuse for the crazy price. I simply can't trust XDUOO before they make an english website, god knows what will happen on warranty issues!
dezzadk said:
I see that both the Android compatible DACs (V-MODA VAMP VERZA, XDUOO XP-1) and the USB Audio Recorder PRO app supports nearly the same devices.
Other than that I hear that the requirements are:
USB Host (Basically almost every newer device can do this)
USB OTG Cable (Who worries about a cable?)
1. Is this because of simply the CONFIG_USB_AUDIO parameter set to false? Shouldn't a mod like CyanogenMod enable this?
2. Or because V-MODA VAMP VERZA, XDUOO XP-1 are the only USB DACs to support the ADK interface in Jelly Bean ?
3. What exactly is the difference between the Verza, XDUOO and the other DACs? Why wouldn't any DAC be compatible through USB Audio in the linux kernel ?
I really wish to lift my Samsung Galaxy S2 sound quality, and I am ready to spend the money to make it sound good. But the Verza is too expensive for me and has few other outputs and inputs so I doubt the reuse for the crazy price. I simply can't trust XDUOO before they make an english website, god knows what will happen on warranty issues!
Click to expand...
Click to collapse
Somehow, My Vamp Verza does not work with my New S4, but it worked with S3 and Note2 on Jelly bean.
lmk said:
Somehow, My Vamp Verza does not work with my New S4, but it worked with S3 and Note2 on Jelly bean.
Click to expand...
Click to collapse
I didn't expect that. However, someone has got it working with their FiiO E17 --http://www.head-fi.org/t/595071/android-phones-and-usb-dacs/2415#post_9485365 ..
Do you have i9505 or i9500 ?
And what ROM? latest stock?
lmk said:
Somehow, My Vamp Verza does not work with my New S4, but it worked with S3 and Note2 on Jelly bean.
Click to expand...
Click to collapse
Does your Vamp Verza work with your Galaxy S4 using USB Audio Recorder PRO?
There is a free trial version of USB Audio Recorder PRO?
https://play.google.com/store/apps/details?id=com.extreamsd.usbaudiorecorderpro
"From what I understand, USB Audio Recorder Pro app allows higher quality recordings to be played in their true hi-res quality because it bypasses a 16-bit/48kHz limitation in Android kernel. (The DX100 also does that with the iBasso software.) All other apps downsample to 16/48 before passing the signal to the external DAC like the Apex Glacier.
Besides that, I also find the app to output very natural sound. So I used the app quite a bit when I am in the mood for the best quality."
http://www.head-fi.org/t/595071/android-phones-and-usb-dacs/2475#post_9511194
Tried with audio pro, it does not work too. S4 shv300S 8 core exynos latest 4.2.2 updated last week in Seoul.

Digital audio out

Is it possible to run digital out from the nexus 9 into a mac for recording system audio at the highest possible quality. Don't really want to resort to use the headphone jack.
These are input specs and finally Android taking a step in the right direction.
From the Android Lollipop page:
"Lower latency audio input ensuring that music and communication applications that have strict delay requirements provide an amazing realtime experience"
"Multi-channel audio stream mixing means professional audio applications can now mix up to eight channels including 5.1 and 7.1 channels"
"USB Audio support means you can plug USB microphones, speakers, and a myriad of other USB audio devices like amplifiers and mixers into your Android device"
12paq said:
These are input specs and finally Android taking a step in the right direction.
From the Android Lollipop page:
"Lower latency audio input ensuring that music and communication applications that have strict delay requirements provide an amazing realtime experience"
"Multi-channel audio stream mixing means professional audio applications can now mix up to eight channels including 5.1 and 7.1 channels"
"USB Audio support means you can plug USB microphones, speakers, and a myriad of other USB audio devices like amplifiers and mixers into your Android device"
Click to expand...
Click to collapse
Ok, so I take it I would need an OTG cable, then would I run a usb cable from that into my mac or would I have to go via an audio interface?
Yup. See this:
http://www.androidpolice.com/2014/0...-android-now-natively-supports-usb-audio-out/
Ok, last question. Is the Nexus 9 able to play music at a resolution of 24bit/96k? I ask because I understand that apple products are limited to 16bit/48k. Thanks

Any way of adding an audio input to mix/play with the rest of the android sound?

The KLD2 I have has an AV input but one has to switch the MCU specifically to the AV input in order to listen.
What I am looking for is to have an audio input which mixes/plays full time with the rest of the android apps without having to explicitly switch to it. Has anyone done this? Do any usb devices exist (with android driver support) which implement an audio input and play real time what's coming in?
Yes, people have used a USB DAC, you need to search the original Q&A thread here :
https://forum.xda-developers.com/showthread.php?t=2660662
and maybe the MTCB Hardware Development forum. Try this first, its shorter !
Ok, I'll search that thread. DAC (Digital to Analog Converter) are used for the opposite thing though - to output sound from the MTC unit to an external amplifier or some other device. I am looking for the opposite (ADC) - to bring sound from external analog device into the MTC (and have the MTC mix/play it along). I've searched for USB ADC in the past but haven't found any interesting info yet.
shtirlitz111 said:
Ok, I'll search that thread. DAC (Digital to Analog Converter) are used for the opposite thing though - to output sound from the MTC unit to an external amplifier or some other device. I am looking for the opposite (ADC) - to bring sound from external analog device into the MTC (and have the MTC mix/play it along). I've searched for USB ADC in the past but haven't found any interesting info yet.
Click to expand...
Click to collapse
Doh, stupid me, but maybe an ADC will work in a similar way, via USB etc, so DAC posts may still help ? A seatrh for DAC should bring something up, btw, sometimes it works better to use google to search threads on XDA.
You are looking for something called an audio interrupt device. They used to be more popular when GPS nav units came out and people wanted voice nav over their stereo. They can connect by various means but you'll need to do some research to be sure it will work with your car and stereo setup.

Android USB Multichannel Audio Routing

Hi All,
I have been searching about this topic for months I cannot find a method to use 6 channel usb dac or HDMI Audio output on Android. I dont want surround sound at all, but I would like to use my phone as the infotainment engine. However I should be able to route notification/phone audio to a specific channel lets say front left. I checked android hal service for related interfaces but configuration files doesnt really show clearly how can I implement this.
Are there any kind of example of this? Can you please advice me how can I do it. Even if I can manage to make one stereo pcm output for media + mono pcm output for notifications and calls that should be enough too. I can do the rest with a microcontroller.
One more question I heard few times androids audio mixer layer is so crappy that makes jitter on pcm signals, how is your experiences? For instance qualcomm based socs have integrated dsp why phone developers gets benefit from it?
Thanks
Hi, mbt28 did you manage to find a solution for this?
I'm searching for exactly the same solution, to somehow output digital stream (containing multiple audio tracks) to a DAC, which will then convert it to multiple analog tracks.
Kasparas
I've got multichannel analog output working on my H96 Max V58 tvbox, with a Startech 7.1 channel USB soundcard. It's got Android TV OS 12. I had to edit /vendor/etc/usb_audio_policy_configuration.xml to add the necessary info. I'm attaching a diff with my changes. The changes are just based on what I saw for the HDMI policy. I haven't tried to get the digital channels working on this device yet but that might be nice to try later too.
The reason I deleted some text from the header comment was to keep the overall filesize the same as the original. On my box /vendor is mounted from /dev/block/dm-1 and even though it's an ext4 filesystem, you can't edit any files on it because the FS has no free blocks left. So I had to overwrite the file by finding its byte offset in the block device image instead. If you can edit the policy file on your box, you can ignore that part of the diff.
PS: this is the USB soundcard I used https://www.amazon.com/StarTech-com-7-1-USB-Sound-Card/dp/B002LM0U2S
It works OK except its USB jack is flaky, doesn't always get a good connection. I have to jiggle the cable sometimes to get it to power on, but then it works.
PPS: I just checked, the SPDIF out works as-is, carrying the front left/right audio.

Categories

Resources