diff options
author | Guido van Rossum <guido@python.org> | 1992-03-30 11:39:53 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1992-03-30 11:39:53 (GMT) |
commit | 715a65315287876f9bd2dd9ad5d453df3f6caa7c (patch) | |
tree | 20d113d4ebfd0cfef67cc406d3c9398487188b25 /Demo/sgi/audio | |
parent | 4a5ab81bc93004773070de89cc4acfad75103c7e (diff) | |
download | cpython-715a65315287876f9bd2dd9ad5d453df3f6caa7c.zip cpython-715a65315287876f9bd2dd9ad5d453df3f6caa7c.tar.gz cpython-715a65315287876f9bd2dd9ad5d453df3f6caa7c.tar.bz2 |
Initial revision
Diffstat (limited to 'Demo/sgi/audio')
-rw-r--r-- | Demo/sgi/audio/README | 8 | ||||
-rwxr-xr-x | Demo/sgi/audio/play.py | 75 |
2 files changed, 83 insertions, 0 deletions
diff --git a/Demo/sgi/audio/README b/Demo/sgi/audio/README new file mode 100644 index 0000000..02a3701 --- /dev/null +++ b/Demo/sgi/audio/README @@ -0,0 +1,8 @@ +Programs that demonstrate the use of the audio device on the SGI 4D/25. +These require the built-in module 'audio'. + +XXX This hardware is already obsolete; see ../al for examples of audio +XXX on the Indigo and 4D/35. + +play Read a sound sample from a file and play it through the + speaker. Options to set volume, sampling rate etc. diff --git a/Demo/sgi/audio/play.py b/Demo/sgi/audio/play.py new file mode 100755 index 0000000..adc7625 --- /dev/null +++ b/Demo/sgi/audio/play.py @@ -0,0 +1,75 @@ +#! /usr/local/python + +import sys +import audio + +import string +import getopt +import auds + +debug = [] + +DEF_RATE = 3 + +def main(): + # + gain = 100 + rate = 0 + starter = audio.write + stopper = 0 + # + optlist, args = getopt.getopt(sys.argv[1:], 'adg:r:') + # + for optname, optarg in optlist: + if 0: + pass + elif optname == '-d': + debug.append(1) + elif optname == '-g': + gain = string.atoi(optarg) + if not (0 < gain < 256): + raise optarg.error, '-g gain out of range' + elif optname == '-r': + rate = string.atoi(optarg) + if not (1 <= rate <= 3): + raise optarg.error, '-r rate out of range' + elif optname == '-a': + starter = audio.start_playing + stopper = audio.wait_playing + # + audio.setoutgain(gain) + audio.setrate(rate) + # + if not args: + play(starter, rate, auds.loadfp(sys.stdin)) + else: + real_stopper = 0 + for file in args: + if real_stopper: + real_stopper() + play(starter, rate, auds.load(file)) + real_stopper = stopper + +def play(starter, rate, data): + magic = data[:4] + if magic == '0008': + mrate = 3 + elif magic == '0016': + mrate = 2 + elif magic == '0032': + mrate = 1 + else: + mrate = 0 + if mrate: + data = data[4:] + else: + mrate = DEF_RATE + if not rate: rate = mrate + audio.setrate(rate) + starter(data) + +try: + main() +finally: + audio.setoutgain(0) + audio.done() |