Open-source USB interface: Audio Widget

Very strange. I got some soldering paste yesterday and got all the pins on the MCU secured. I does play once after reset and a freshly started vlc but it only plays for about 5s - then silence. The quality of the sound is very nice. My feeling is that it fills some buffer but can't signal the pc to send more. The leds keeps flashing on as if it was playing. Some obvious parts to check? This is Georges variant of the audio-widget with ess9023.

I can program it but not verify the memory...

Brgds
 
Last edited:
XP Professional. I will check widgetcontrol in the afternoon if time given by the authority ;-)
I will also test it with linux. I gave it some more heat on two pins and it's now playing for abt 10s but after 5s I can hear some harsh hiss for a fraction of a second.

Yeah, and thanks for your input Alex!

Brgds
 
Last edited:
Ok, I have set the 8 boxes as you showed in the picture exept the UAC1_audio - then what?
Read firmware doesn't give anything. Reset toggles the leds but tells me that a DG8SAQ/MOBO device not found. Factory reset gives the same as do Start USB...

Brgds

BTW, this was on winxp...

Does anyone have instructions of what is needed for installing widget-control on linux?
 
Last edited:
Does anyone have instructions of what is needed for installing widget-control on linux?
a recent version of "Python" (I have 2.7, maybe 2.6 is ok too) with some modules (pythoncard, python-usb, wx, ...).

If you have python installed, just run "WidgetControl.py" from a cmd line. If some module is missing, you'll see which one from the error messages. ;)
 
Thanks UnixMan, just what I did and got some of the stuff installed. Now I'm stuck with this error:

File "/usr/lib/pymodules/python2.7/PythonCard/components/statictext.py", line 39, in __init__
widget.Widget.__init__( self, aParent, aResource )
File "/usr/lib/pymodules/python2.7/PythonCard/widget.py", line 68, in __init__
self._setBackgroundColor(self._resource.backgroundColor)
File "/usr/lib/pymodules/python2.7/PythonCard/widget.py", line 115, in _setBackgroundColor
self.SetBackgroundColour( aColor )
File "/usr/lib/python2.7/dist-packages/wx-2.6-gtk2-unicode/wx/_core.py", line 9509, in SetBackgroundColour
return _core_.Window_SetBackgroundColour(*args, **kwargs)
TypeError: Expected a wxColour object or a string containing a colour name or '#RRGGBB'.

Brgds
 
Hi Tubon,

Congrats :)

You need to set the audio system up in Linux to fully take advantage of the performance of the audio-widget.

Basically you want to play each song at the native sampling rate, and the maximum bit depth.

The format of the audio-widget is s32le, and the widget is capable of every sampling rate, ie: 44.1/48/88.2/96/176.4/192 khz.

Only one program, mpd, is capable of automatically playing at the correct native sampling rate.

You need to set up ~/.mpdconf properly. My looks like this:

port "6600"
music_directory "~/Music"
playlist_directory "~/.mpd/playlists"\
db_file "~/.mpd/mpd.db"
log_file "~/.mpd/mpd.log"
audio_output {
type "alsa"
name "My ALSA Device"
device "hw:1,0"
auto_resample "no"
}
zeroconf_enabled "yes"
zeroconf_name "Downstairs music player daemon"
#samplerate_converter "SRC_SINC_BEST_QUALITY"

The key is the autoresample "no".

For playing from other programs, such as rhythmbox, vlc etc., they will be using the pulseaudio system.

Pulse, unfortunately, can only communicate with the soundcards at a single sampling rate specified on server startup. ALL other sampling rates are automatically resampled to this server sampling rate !!! To get the best music, you will then have to manually set pulse server to the sampling rate of the music material.

Copy the /etc/pulse/daemon.conf file to ~/.pulse/daemon.conf and then edit the file. Mine (only relevant parts shown) is like:

resample-method = speex-float-8
; enable-remixing = yes
; enable-lfe-remixing = no

flat-volumes = no

; rlimit-fsize = -1
; rlimit-data = -1
; rlimit-stack = -1
; rlimit-core = -1
; rlimit-as = -1
; rlimit-rss = -1
; rlimit-nproc = -1
; rlimit-nofile = 256
; rlimit-memlock = -1
; rlimit-locks = -1
; rlimit-sigpending = -1
; rlimit-msgqueue = -1
; rlimit-nice = 31
; rlimit-rtprio = 9
; rlimit-rttime = 1000000

default-sample-format = s32le
default-sample-rate = 48000
default-sample-channels = 2
default-channel-map = front-left,front-right

So the pulse server is now set at 48khz with the correct format (note the s32le) for the audio-widget. The resampling method is speex-float-8. speex-float-1 is the lowest and -10 is the highest. 10 gives the best quality but it consumes all of your cpu. 1 is the fastest but the SQ is very bad.

After editing .pulse/daemon.conf, you need to restart the pulse server for it to take effect:

$ killall pulseaudio

After a few seconds, pulse server will be restarted by the system.

However, AVOID resampling to get the best SQ.

Once you have mpd and/or pulse setup correctly, you will enjoy the music :)

Get some studio 192khz or 96/khz 24bit music and you should be able to hear the difference.

Give us feedback :)

Alex
 
btw, to check whether indeed the software is playing at the native sampling rate, do:

(Assuming that the audio-widget is card 1):

$ cat /proc/asound/card1/pcm0p/sub0/hw_params

For example, I'm now playing with mpd a 192khz/24bit recording:

alex@downstairs:~$ cat /proc/asound/card1/pcm0p/sub0/hw_params
access: RW_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 192000 (192000/1)
period_size: 24000
buffer_size: 96000