The Beaglebone White, DVI-D with Audio cape and official Debian images

A lot has happened since the original Beaglebone White and the original DVI-D with Audio cape have been released. The Ångstrom distribution has been ditched and Robert C. Nelson produces Debian-based images and kernel updates at an impressive pace. Clearly, the primary focus is on the Beaglebone Black and while compatibility with Beaglebone White is also maintained, some of the capes are no longer supported, probably because they are not compatible with the Beaglebone Black.

Read more

Gqrx on Mac OS X (almost)

Few weeks ago, or maybe a month or two – I don’t remember, I spent an afternoon trying to build gnuradio-core and gr-audio on Mac OS X without using any macports. It was a casual an undocumented attempt that resulted in a compilation failure. I wasn’t surprised because I made several mistakes along the way, so I just left it an moved on.

Read more

Qtmm soundcard modem for decoding AFSK1200

Last week I started on a new experiment trying to integrate the AFSK1200 demodulator code from multimon into a simple Qt-based graphical application. This experiment had two objectives:

  1. Test the feasibility of integrating the AFSK1200 demodulator from multimon into other applications.
  2. Try using the QAudio framework from Qt for audio I/O that should work on both Linux, Windows and Mac OS X.

Read more

A patch to fix audio_alsa_sink[hw:0,0]: snd_pcm_hw_params failed

Last night, while I was preparing for the AMSAT-OZ satellite weekend, I noticed that my gqrx receiver didn’t work very well on my laptops. Every time I tried to change operating mode the receiver stopped with a runtime error:

audio_alsa_sink[hw:0,0]: snd_pcm_hw_params failed: File descriptor in bad state
terminate called after throwing an instance of 'std::runtime_error'
what():  check topology failed on audio_alsa_sink(1) using ninputs=1, noutputs=0

This happened on both my Acer and my MacBook Pro; both running the lates git of GNU Radio v3.3.1git-96-g1fa9a8ea. This was bad news because I was hoping to show off my new software receiver with Qt GUI during the weekend. Fortunately, there is an easy workaround that eliminates the problem.

Read more

Pulseaudio device names

Recording audio with gstreamer is easy:

  gst-launch -e pulsesrc ! audioconvert ! \
lamemp3enc target=1 bitrate=64 cbr=true ! \
filesink location=audio.mp3

The pulsesrc element here refers to the pulseaudio input (pulseaudio is AFAIK the default sound system in all linux distributions nowadays). This is good and will capture audio from the default sound input, which can be microphone or line-in depending on the hardware and the pulseaudio configuration.

But what if I plug in my USB webcam with built-in microphone and I want to capture audio from that?

Read more

A Weekend with GStreamer

Gstreamer LogoThis weekend was dedicated to learning and experimenting with Gstreamer – an open source library and framework for constructing audio and video processing pipelines. Despite the weekend being spoiled by lots of bad luck (power outages, Internet down, etc.) I managed to beat the hell out of Murphy and get some work done!

My hidden agenda is of course finding a good audio/video library to accompany a software defined radio created using GNU Radio and the Universal Software Radio Peripheral (USRP), and to eventually be able to transmit real time high definition video over the air. While GNU Radio and the USRP can take care of everything related to software radio and RF, I am still looking for a good framework for flexible audio/video processing.

Read more

A Weekend with GStreamer

Gstreamer LogoThis weekend was dedicated to learning and experimenting with Gstreamer – an open source library and framework for constructing audio and video processing pipelines. Despite the weekend being spoiled by lots of bad luck (power outages, Internet down, etc.) I managed to beat the hell out of Murphy and get some work done!

My hidden agenda is of course finding a good audio/video library to accompany a software defined radio created using GNU Radio and the Universal Software Radio Peripheral (USRP), and to eventually be able to transmit real time high definition video over the air. While GNU Radio and the USRP can take care of everything related to software radio and RF, I am still looking for a good framework for flexible audio/video processing.

Read more