Git Product home page Git Product logo

ggmorse's Introduction

ggmorse

Actions Status License: MIT ggmorse badge

Morse code decoding library

ggmorse2.mp4
ggmorse0.mp4
ggmorse1.mp4

Try it out

You can easily test the library using the free GGMorse application which is available on the following platforms:

Download on the App Store Get it on Google Play

Simply start the application and place your phone near speakers or radio that plays some Morse code. The speed and frequency of the transmission will be detected automatically by the application and you should be able to see the decoded text in real-time.

Browser Demo: https://ggmorse.ggerganov.com/

Details

The library decodes Morse code transmission in real-time from raw audio captured via microphone.

  • Automatic pitch detection: [0.2, 1.2] kHz
  • Automatic speed detection: [5, 55] WPM

Todo

The current library implementation is not very user-friendly when it comes to using it in external projects. Still, if you want to try using it in your project and have trouble in getting it to work, let me know and I can try to help you.

The next version of the library would be in a much better state. These are the things I want to improve before releasing v0.2.0:

  • Improve the C and C++ interface
  • Add tests
  • Add examples
  • Reduce memory allocations
  • Clean-up the algorithmic part

Depending on the level of interest this gets, I can also provide various language bindings, similar to ggwave.

Examples

The examples folder contains several sample applications of the library:

Example Description Audio
ggmorse-to-file Output a generated waveform to an uncompressed WAV file -
ggmorse-gui GUI application for decoding Morse code SDL

Building

Dependencies for SDL-based examples

[Ubuntu]
$ sudo apt install libsdl2-dev

[Mac OS with brew]
$ brew install sdl2

[MSYS2]
$ pacman -S git cmake make mingw-w64-x86_64-dlfcn mingw-w64-x86_64-gcc mingw-w64-x86_64-SDL2

Linux, Mac, Windows (MSYS2)

# build
git clone https://github.com/ggerganov/ggmorse --recursive
cd ggmorse && mkdir build && cd build
cmake ..
make

# running
./bin/ggmorse-gui

Emscripten

git clone https://github.com/ggerganov/ggmorse --recursive
cd ggmorse
mkdir build && cd build
emcmake cmake ..
make

ggmorse's People

Contributors

ggerganov avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.