On 25/07/15 12:15, Paul Z wrote:
Are there some way to generate a fixed frequency sound in different
> waves (eg. Sine Wave, Saw Wave, Triangle Wave etc.) and
> different random noise. (eg. white noise & pink noise) ?

While there are several options in Python (check out the
Activestate recipes) the simplest way on Linux may be to
create a file with the relevant signal and then play that
through aplay using the subprocess module.

One such module(by B Walker) that I found on Activestate
is this (slightly tweaked):

def sinebeep():
    header=[ 82, 73, 70, 70, 100, 31, 0, 0, 87, 65, 86, 69,
             102, 109, 116, 32, 16, 0, 0, 0, 1, 0, 1, 0,
             64, 31, 0, 0, 64, 31, 0, 0, 1, 0, 8, 0, 100,
             97, 116, 97, 64, 31, 0, 0 ]
    waveform=[ 79, 45, 32, 45, 79, 113, 126, 113 ]
    wavefile=open("beep.wav", "w+")
        
    for hdr in header:
        wavefile.write(chr(hdr))
    for sample in range(0, 1000, 1):
        for wf in waveform:
            wavefile.write(chr(wf))

    wavefile.close()

if __name__ == '__main__':
    sinebeep()

You can then play the resultant file with

$ aplay beep.wav  #you might need sudo

Its not very clever but you could create a series of beep
files each with a different frequency.

PS.
There is also a command line program called beep that does
what you want but it didn't work for me... YMMV


HTH

--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos


_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to