BTW, I've took some time to improve the audio modem library a bit:
- a few optimizations so decoding can run "in parallel", while the audio is being recorded.
- unit test suite with good code coverage (integrated with https://travis-ci.org/romanz/amodem and https://coveralls.io/r/romanz/amodem)
- better (and easier) command line interface for sending and receiving data.
- make the library code to be PEP8 compatible.
- add support for Python 3.
- calibration process now checks all frequencies that are used for transmission.
- improve equalization process, with better handling of signal distortions.
- I am using a hexagonal constellation grid (instead of standard QAM), to improve SNR for existing bit rate -> thus decreasing error probablity
See
https://github.com/romanz/amodem for details.