An error-correcting AFSK digital radio protocol designed to enable digital data to be transmitted and received by analog-only radios with no external hardware besides a personal computer.
The initial implementation of afskmodem is in Python. I also implemented it in Java (linked below). Both versions are fully compatible with each other.