Monday, June 27, 2011

FunCube Dongle and OSX, ie fun with python

So gnuradio seems to have a bug with CoreAudio right now, I cant use any SR higher then 44100 without getting errors. The funcube dongle has a fixed rate of 96000, no other option. So hence I cant use gnuradio with it, and basically thats all I want my funcube dongle for.

So instead of learning coreaudio to fix the bug I figured it would be fun to learn a little more about python and how wav files work and how gnuradio stores and transmits data.

Here is a small app I wrote that takes data from the funcube dongle (in int 16bit 2ch) and converts it to a 32bit float for gnuradio. Now I dont know python that well but I couldnt for the life of me find a function that did this, so I had to learn how float's were stored in a bitwise fashion then write my own function. Its ugly and slow, actually too slow, so I had to write a small app to make a cross reference include file with an array of the values converting int16 to float32

But whatever, it works :) now I can use my funcube dongle in osx again.

Ive included the record_tcp app that creates a server for gnuradio to connect to

127.0.0.1:21644

and record_file that saves the output in both gnuradio .dat and .wav format

FunCube python interface.zip