Morse Code Decoder

Download MorseCodeDecoder.zip (176 KB)

In this project I’ve created an application that detect and translates morse code from a live audio stream. What started as a 3 hour project eventually ended up taking a couple of weekends, and the result is not a “complete app” but rather a proof of concept. I’ve decided to publish the code anyway as it may be of use to someone, not least because it uses a live microphone stream.

I’m using SlimDX as a wrapper for DirectX since Managed DirectX is now deprecated in favour of Microsoft XNA, which seemed a little heavy handed for this project.

Known Issues
Restarting the listener after stopping it doesn’t work. There seems to be an issue with cancelling the background worker thread. The IsBusy flag does not reset after calling the CancelAsync() method.

Testing
I’ve been using the 5 WPM examples from The National Association for Amateur Radio website.

References
Thanks goes to César Souza for his article on Capturing Sound From The Microphone Using SlimDX. One of only a handful of good examples I could find.

Download MorseCodeDecoder.zip (176 KB)

Advertisements
This entry was posted in Projects and tagged , . Bookmark the permalink.

2 Responses to Morse Code Decoder

  1. Rizwan Merchant says:

    Hello there,

    I know this is a pretty old post, but I found this last night, and tried your code out. I discovered your known issue, and after a bit of going through your code, solved the issue. It now can record, stop, and record again.

    I’m interested in emailing you the fixed copy solution, and to also ask a question or two.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s