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.