Hello list. I'm trying to put together an AFSK modem in Python, and I have most
of the code worked out. The last remaining issue will be generating the actual
audio signal. Unfortunately, I have never written any kind of audio code before
in any language, so I don't really know what I am doing.
I did find some code that generated a single or DTMF tone, but it only worked
if you let it fill the whole buffer with samples, less than that and it would
get distorted at the end. That, and it didn't allow the frequency to be changed
mid-run. I will need to generate sinusoidal tones of arbitrary length, shifting
frequency as often as once every 8 milliseconds.
The function should be something like this:
def makesamples(frequency,length,phase):
samples=[]
for t in range(length):
# ???
return samples
Then, calling it:
# ...
for sample in makesamples(1200,40,phase):
soundcard.write(chr(sample & 0x00FF) + chr(sample & 0xFF00 >> 8))
# ...
The code calling the function would probably have to figure out the phase for
the next call based on the length of the output.
For what it's worth, this will be running on an x86-64 Linux machine, using the
ossaudiodev module to access the soundcard. Anyone think they can help?
-Joe
_______________________________________________
Tutor maillist - [email protected]
http://mail.python.org/mailman/listinfo/tutor