EDIT: The instructions here no longer work - please see the Enhanced Digital Output app for support of usb dacs. These experiments are closed except for tests on specific dacs to improve support.
As reported by John S I've been looking at support for async usb dacs connected to the Usb port of Touch. I believe I've made some progress and have some changes to the touch firmware which I believe are worth sharing. At present this is really a proof of concept and I am looking for testers who have an async usb dac (usb 1.1 devices for the moment) and are willing to try some tests.
I've been testing these modifications with a usb 1 dac (Audiolab MDAC) - it will play at 44.1 and 48k sampling rates with my modified kernel. (The dac is capable of 96k, but to make it work with Touch at present I've modified the kernel to only support these lower rates)
The process for installing the updates is slightly involved, but should all be able to be done from the normal user interface. Instructions below:
1) Update to latest released Touch firmware
2) Perform factory reset to ensure any previous usb mods are removed
3) Add the following new repository url to the LMS Web settings page: Settings, Plugins (additonal repositories at bottom of page), press apply
http://triodeapplets.googlecode.com/...sbtestrepo.xml (copy the link not text to make sure this forum does not give you a bad url)
4) Go to Settings, Advanced, Applet Installer on the player, unselect "Recommended Applets Only" and two new applets should appear in the list: Kernel Updater and USB Audio Ouput - install them one at a time (touch will reboot each time you install one)
5) Go to Settings, Advanced, Kernel Updater and select the kernel to install. Select one of the test kernels (See below), then read the warning text and select "Install". Touch should download a kernel and reboot, when it reboots it should include the text "USB Test Kernel" on the startup screen. If you do not see this then you are not running the test kernel and you should investigate why.
6) Ensure USB Dac is pluged in and turned on
7) Go to Setttings, Advanced, USB Audio Output and see if your USB Dac appears in the menu - if so select it (touch will reboot)
8) Touch should now be using the selected USB device for its audio output - to see the status return to the Settings, Advanced, USB Audio Output menu and select the device - this should show the current status of any playing stream
Important - before you update to the standard firmware again, you must reselect the Default output on the USB Audio Output menu otherwise the touch will continually reboot. [If you get to this point, press and hold the reset button to perform a factory reset and it should boot correctly]
Please report your findings here - interested in which dacs and what works/doesn't.
Update:
There are now three test kernels:
Test Kernel #1 - restricts the output rate to 44/48k sampling rates by overriding the rate at which the dac asks for output. It may allow async usb to work at these rates with a dac directly connected to your Touch. Known working devices:
- Audiolab M-DAC
- Audiolab 8200CDQ
Test Kernel #2 - this supports up to 96k sampling rate, but may require an external high speed usb hub between Touch and your dac. Known working devices:
- Audiolab M-DAC with external high speed hub
- Music Streamer II with external high speed hub
Test Kernel #3 - this includes most of the changes to the linux usbaudio driver to bring it up to date with ~April 2011. It may support a wider range of dacs.
Known working device:
- Audiolab M-DAC (USB audio class 1) with external high speed hub
- Audiolab M-DAC with external high speed hub
- Music Streamer II with external high speed hub
- Audiolab 8200CDQ with external high speed hub
- AudioEngine D1 with external high speed hub
Test Kernel #4 - as Kernel #3 but with more internal debugging messages (for expert users)
Results 1 to 10 of 311
Hybrid View
-
2012-01-29, 10:52 #1Senior Member
- Join Date
- Apr 2005
- Posts
- 6,932
Async USB Dac Experiments - testers wanted...
Last edited by Triode; 2012-05-01 at 12:37.
-
2012-01-29, 12:09 #2Member
- Join Date
- Oct 2011
- Posts
- 62
Cool!
Will install later this afternoon, can't shake feeding the family first...
-Paul
-
2012-01-29, 14:30 #3Member
- Join Date
- Jul 2007
- Posts
- 45
Would step 3 be done on the Touch itself or on the Server side???
I ask because I dont see the option you listed shown after I select Settings->Plugins on the Server side.
Don't know or can't find LMS Web setting page either.Last edited by dynaudiorules; 2012-01-29 at 15:01.
-
2012-01-29, 15:38 #4Senior Member
- Join Date
- Apr 2005
- Posts
- 6,932
-
2012-01-29, 15:55 #5Member
- Join Date
- Jul 2007
- Posts
- 45
Okay found out that Additional Repositories does not show on Linux servers.
I used my Windows Server.
I am using a Musical Fidelity V-Link, I get very faint pops about 1 min apart. Otherwise it works great.
-
2012-01-29, 16:01 #6Senior Member
- Join Date
- Apr 2005
- Posts
- 6,932
Shows on my linux server...
Does the instantaneous frequency update on the Usb Audio Output info display on touch? It could be that your dac has a smaller buffer than mine. This kernel overrides the rate at which the dac asks for data to make sure the feedback packets arrive. I will add more debugging info to the next kernel to help us understand more. Lets get some more reports first though.I am using a Musical Fidelity V-Link, I get very faint pops about 1 min apart. Otherwise it works great.
-
2012-01-29, 16:05 #7Member
- Join Date
- Jul 2007
- Posts
- 45
-
2012-01-29, 19:40 #8Member
- Join Date
- Oct 2011
- Posts
- 62
Results
Installed and tried on a MF VLink, A Wavelength CoSecant, and a Peachtree DAC*IT.
No synch to the VLink or CoSecant.
The Peachtree played the music cleanly, but the music "dragged" if that makes any sense.
By the way, install was flawless and the uninstall was also flawless. Good work, please don't get discouraged!
-Paul
-
2012-01-30, 12:10 #9Senior Member
- Join Date
- Apr 2005
- Posts
- 6,932
Hi Paul - can you confirm whether you saw the words "USB Test Kernel" on the startup screen? I want to make sure that you actually installed the test kernel as the other case looks like it was not running. I've added to the instructions to hopefully make this clearer, but it would be good to understand what you saw in more detail..
-
2012-02-01, 15:38 #10Senior Member
- Join Date
- Apr 2005
- Posts
- 6,932
Hi - I've been doing some more tests on this and have another kernel for people to try (Test Kernel #2)
Please also update to USB Audio Output 0.2 as this includes something to improve 96k playback.
I should point out what the different kernels do and what is leading me to look at this. From tests with my dac it appears that there is some form of limitation with the USB hardware in Touch related to the "Transaction Translator". This is part of the usb implementation which supports usb 1.0/1.1 devices connected to a usb 2.0 host. The specific limitation is that it does not appear to support output and input iso packets (sitd) in the same 1ms timeslot on the usb bus. The two kernels work round this in different ways and so one may be appropriate to you:
Kernel #1 - supports up to 44/48k sampling rates by restricting output packets to every other 1ms frame, thus allowing async input packets on the interviening frames. This relies on the async implementation in the dac supporting data arriving every other frame it asked for. It works with my Audiolab dac (with usb firmware by Lakewest audio) and I've verified with the author of that firmware that it should work. However it is breaking the requested parameters and so does not looks to work with several other dacs. This is probably the reason for the other test cases above failing.
Kernel #2 - supports up to 96k sampling rate by not changing the usb protocol. (Its a very minor modification of the default kernel to avoid the "not enough bandwidth message" seen with some usb devices) However it is intended to be used with an external usb high speed hub. In this configuration, the usb 1.0 to 2.0 translation is done by the external hub rather than the silicon within Touch and this seems to bypass the problem hardware. It works for me with the hub in my monitor - it is worth people testing with any "high speed" hub. Note there can be problem with rebooting the Touch, hub and dac in the right order so the Touch sees the dac, but once working seems to work ok at all sampling rates upto 96k for me.
Thanks to Dominik of Lakewest for suggesting the hub approach.
Please test and post here if these work better for you....

Reply With Quote

