This post is a shameless plug for a new project started in this TMO thread.
The goal is to take advantage of the “USB Host” (h-e-n) package to stream digital audio through the USB port.
In the portable music player scenario, the N900 is used for digital music storage (32BG internal + µSD), user interface software (like Rockbox) and decoding music files (like mp3 or flac) to uncompressed PCM format.
This stream is then sent out through the USB port to an external digital-to-analog converter (DAC) and headphone amplifier, bypassing the N900′s own electronics, to achieve maximum sound quality (see the first post in the thread for a more detailed explanation).
Such DAC/amp “combos” exist in portable form, such as the Fiio E17 and iBasso D-Zero.
Another (technically similar) scenario is to stream sound in through the USB port, for example from a portable mixing console, and use the N900 as a high-quality recording device.
Right now we have proof-of-concept for both use cases, as h-e-n with power-kernel automatically supports such USB audio functions, and the corresponding ALSA device is created.
Using command-line tools in xterm (like mplayer, MOC or arecord), sound can be streamed to/from this ALSA device, with very good results.
One limitation of this method, however, is that it doesn’t work with Hildon GUI apps (like the stock Maemo media player, or the Rockbox port).
Another is that it doesn’t use the N900′s DSP, doing all the encoding/decoding in software, with higher than necessary CPU usage.
Our present understanding, so far, is that we would need to:
- tweak PulseAudio to make the USB “sound card” available system-wide,
- and use gstreamer to take advantage of the mafw framework and the DSP.
Unfortunately none of us end users really understand how this alsa/mafw/gstreamer/pulseaudio puzzle fits together inside Maemo. Conventional wisdom for regular desktop Linux does not seem to apply, and all experiments to date have failed.
If you are reading this and are knowledgeable about the specifics of the Maemo sound system… and enjoy a challenge… please do chime in ! :-)



