Home > HAM Radio, Projects, RTL-SDR > Cocoa Radio Alpha testing

Cocoa Radio Alpha testing

September 15th, 2012 Leave a comment Go to comments

I’ve been working on a stand-alone software defined radio (SDR) application for Mac OS on-and-off for a few months, and I think it’s good enough now to encourage people to test it and provide feedback.  Though it’s possible, of course, to do everything my app does in GNU Radio, it’s much more convenient to have a dedicated app.  Especially because this app uses a lot less CPU than GNU Radio.

This video shows the basic operation of the user interface:

And this one shows an ‘inside peek’ at what happens to the signal inside of the application. In normal usage, the waterfall display won’t do this, but it’s an interesting effect:

There are still many, many bugs, but it should be enough to play around with. I’ve been able to listen to broadcast FM radio for some time using the app. There is no squelch control, that’s on the list of things to add. Also, it’s possible to get audio buffer underruns. It’s likely caused by slight differences in the clock rate of the rtl-sdr dongle and the audio device that you’re using.

If you notice any bugs, or have specific issues that you would like addressed, please create an issue on the github page.  Also, if you are able to contribute, please let me know.  I’m obviously in need of some GUI assistance!

One word of advice, don’t try to change the modulation type using the drop-down menu, it doesn’t work! :)

Again, code is available at github, as is an application binary.



  1. Chad
    September 15th, 2012 at 15:21 | #1

    Very cool! I’ll give this a try later tonight.

  2. Tofurk
    September 15th, 2012 at 17:16 | #2

    I can’t run it, or compile it myself, because it needs Xcode 4.4?

    Can the code just be compiled without XCode?

  3. September 15th, 2012 at 20:21 | #3

    I don’t know why you would want to, but probably not. You can download the binary.

  4. September 16th, 2012 at 07:21 | #4

    It’s great to see a new SDR application for mac that even comes with GPL’d source code :-)
    Please keep working on it and I hope you can make it so that we can add other input devices later.

  5. September 16th, 2012 at 11:47 | #5

    So that’s what that signal at 480 Mhz is! Thanks for the tip.

  6. September 16th, 2012 at 19:29 | #6

    It’s great to see a new SDR application for mac that even comes with GPL’d source code :-)
    Please keep working on it and I hope you can make it so that we can add other input devices later.

    I definitely intend to!

    I’ve tried to make sure that it’s as extensible as possible. Adding tuners for the RTL-SDR dongles are easy. I just ordered another dongle with a different tuner to do just that. If there’s any device that you’d like to have supported, let me know. I do accept HW donations! ;p

  7. September 16th, 2012 at 23:59 | #7

    hi!

    i’m happy to see that a osx version is coming :)
    many thanks for that!

    so the first test is: it works, but if i like to change the frequency, it crashs :(

    Process: CocoaRadio [43226]
    Path: /Users/USER/Desktop/CocoaRadio.app/Contents/MacOS/CocoaRadio
    Identifier: com.us.alternet.CocoaRadio
    Version: 1.0 (1)
    Code Type: X86-64 (Native)
    Parent Process: launchd [167]
    User ID: 501

    Date/Time: 2012-09-17 09:59:03.775 +0200
    OS Version: Mac OS X 10.8 (12A269)
    Report Version: 10

    Interval Since Last Report: 734173 sec
    Crashes Since Last Report: 3
    Per-App Interval Since Last Report: 40 sec
    Per-App Crashes Since Last Report: 2
    Anonymous UUID: F2185C4F-36FE-452D-BCF1-ACC3AF129084

    Crashed Thread: 5 com.apple.audio.IOThread.client

    Exception Type: EXC_BAD_ACCESS (SIGSEGV)
    Exception Codes: EXC_I386_GPFLT

    [...]

    Thread 5 Crashed:: com.apple.audio.IOThread.client
    0 libsystem_c.dylib 0x00007fff9262bd5c bzero$VARIANT$sse42 + 92
    1 com.us.alternet.CocoaRadio 0x000000010001034f OutputProc + 255
    2 com.apple.audio.units.Components 0x000000010f333867 AUInputElement::PullInput(unsigned int&, AudioTimeStamp const&, unsigned int, unsigned int) + 215
    3 com.apple.audio.units.Components 0x000000010f332f30 AUInputFormatConverter2::InputProc(OpaqueAudioConverter*, unsigned int*, AudioBufferList*, AudioStreamPacketDescription**, void*) + 116
    4 com.apple.audio.toolbox.AudioToolbox 0x00007fff900f23a9 AudioConverterChain::CallInputProc(unsigned int) + 475
    5 com.apple.audio.toolbox.AudioToolbox 0x00007fff900f20cc AudioConverterChain::FillBufferFromInputProc(unsigned int*, CABufferList*) + 98
    6 com.apple.audio.toolbox.AudioToolbox 0x00007fff900f205a BufferedAudioConverter::GetInputBytes(unsigned int, unsigned int&, CABufferList const*&) + 182
    7 com.apple.audio.toolbox.AudioToolbox 0x00007fff900f3f8e Resampler2Wrapper::RenderOutput(CABufferList*, unsigned int, unsigned int&) + 204
    8 com.apple.audio.toolbox.AudioToolbox 0x00007fff900f1cf8 BufferedAudioConverter::FillBuffer(unsigned int&, AudioBufferList&, AudioStreamPacketDescription*) + 286
    9 com.apple.audio.toolbox.AudioToolbox 0x00007fff900f203a BufferedAudioConverter::GetInputBytes(unsigned int, unsigned int&, CABufferList const*&) + 150
    10 com.apple.audio.toolbox.AudioToolbox 0x00007fff900f1f10 CBRConverter::RenderOutput(CABufferList*, unsigned int, unsigned int&, AudioStreamPacketDescription*) + 104
    11 com.apple.audio.toolbox.AudioToolbox 0x00007fff900f1cf8 BufferedAudioConverter::FillBuffer(unsigned int&, AudioBufferList&, AudioStreamPacketDescription*) + 286
    12 com.apple.audio.toolbox.AudioToolbox 0x00007fff900f1e61 AudioConverterChain::RenderOutput(CABufferList*, unsigned int, unsigned int&, AudioStreamPacketDescription*) + 99
    13 com.apple.audio.toolbox.AudioToolbox 0x00007fff900f1cf8 BufferedAudioConverter::FillBuffer(unsigned int&, AudioBufferList&, AudioStreamPacketDescription*) + 286
    14 com.apple.audio.toolbox.AudioToolbox 0x00007fff900f1960 AudioConverterFillComplexBuffer + 291
    15 com.apple.audio.units.Components 0x000000010f332e44 AUInputFormatConverter2::PullAndConvertInput(AudioTimeStamp const&, unsigned int&, AudioBufferList&, AudioStreamPacketDescription*, bool&) + 114
    16 com.apple.audio.units.Components 0x000000010f332ab6 AUConverterBase::RenderBus(unsigned int&, AudioTimeStamp const&, unsigned int, unsigned int) + 784
    17 com.apple.audio.units.Components 0x000000010f330551 AUBase::DoRenderBus(unsigned int&, AudioTimeStamp const&, unsigned int, AUOutputElement*, unsigned int, AudioBufferList&) + 127
    18 com.apple.audio.units.Components 0x000000010f32ec9d AUBase::DoRender(unsigned int&, AudioTimeStamp const&, unsigned int, unsigned int, AudioBufferList&) + 429
    19 com.apple.audio.units.Components 0x000000010f335d61 AUHAL::AUIOProc(unsigned int, AudioTimeStamp const*, AudioBufferList const*, AudioTimeStamp const*, AudioBufferList*, AudioTimeStamp const*, void*) + 2029
    20 com.apple.audio.CoreAudio 0x00007fff927fdd8f HALC_ProxyIOContext::IOWorkLoop() + 2413
    21 com.apple.audio.CoreAudio 0x00007fff927fd391 HALC_ProxyIOContext::IOThreadEntry(void*) + 83
    22 com.apple.audio.CoreAudio 0x00007fff927fd24b HALB_IOThread::Entry(void*) + 75
    23 libsystem_c.dylib 0x00007fff9263e782 _pthread_start + 327
    24 libsystem_c.dylib 0x00007fff9262b1c1 thread_start + 13

    [...]

  8. September 17th, 2012 at 04:46 | #8

    So I’ve noticed. :) Which version of the code are you using? I updated it last night (both on GitHub and the binary). More information is available here: https://github.com/hpux735/Cocoa-Radio/issues/7

  9. September 19th, 2012 at 00:19 | #9

    @hpux735

    so is there a new compiled version without the frequency-change-error?

  10. September 19th, 2012 at 06:12 | #10

    Yes. I deleted the old one, and edited the post. However, I decided that it makes the most sense to have binaries available at github:

    https://github.com/hpux735/Cocoa-Radio/downloads

    This version even has some early squelch code.

  11. October 8th, 2012 at 21:57 | #11

    any news about a next version ? :)

  12. October 9th, 2012 at 06:58 | #12

    The new versions are available at github, here:

    https://github.com/hpux735/Cocoa-Radio

    I don’t know if you already know about that, I’ve been out of the country the last few weeks, so I haven’t done any work on it in a while.

  1. No trackbacks yet.


nine × 2 =