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.
I have been thoroughly distracted and I totally lost track of this effort. However, I believe that the stated goals have been achieved, and certainly roman.z has put together an awesome tool. Looking through the code I see it is very clean, commented and includes unit tests.
Amusingly, after all of Roman's effort, Newar found the minimodem library which somehow evaded detection in this thread for many months (years?). I think it's a slower-but-sufficient solution for linux-to-linux communication. For this, I think Newar deserves an "Honorable mention" of 1 BTC.
Therefore, I will split the bounty 24 BTC to Roman and 1 BTC Newar.