diff options
author | Guido van Rossum <guido@python.org> | 1992-12-14 15:06:32 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1992-12-14 15:06:32 (GMT) |
commit | 8307443175f4c763b07c76763114b41f5896cb1c (patch) | |
tree | b3aa33ab5cac1852c596206e6cca3327bee96af9 /Demo/sgi | |
parent | 2739c9cce8082a8380a83342e6c150bd6f6a82ba (diff) | |
download | cpython-8307443175f4c763b07c76763114b41f5896cb1c.zip cpython-8307443175f4c763b07c76763114b41f5896cb1c.tar.gz cpython-8307443175f4c763b07c76763114b41f5896cb1c.tar.bz2 |
Initial revision
Diffstat (limited to 'Demo/sgi')
-rwxr-xr-x | Demo/sgi/al/cmpaf.py | 65 | ||||
-rwxr-xr-x | Demo/sgi/al/cmpaf_form.fd | 90 |
2 files changed, 155 insertions, 0 deletions
diff --git a/Demo/sgi/al/cmpaf.py b/Demo/sgi/al/cmpaf.py new file mode 100755 index 0000000..509f0aa --- /dev/null +++ b/Demo/sgi/al/cmpaf.py @@ -0,0 +1,65 @@ +# Compare different audio compression schemes. +# +# This copies mono audio data from the input port to the output port, +# and puts up a window with 4 toggle buttons: +# +# uLAW : convert the data to uLAW and back +# ADPCM : convert the data to ADPCM and back +# Difference : make only the difference between the converted and the +# original data audible +# Exit : quit from the program + +import fl +import FL +import flp +import al +import AL +import audioop +import sys + +class Cmpaf(): + def init(self): + parsetree = flp.parse_form('cmpaf_form','form') + flp.create_full_form(self, parsetree) + c = al.newconfig() + c.setchannels(AL.MONO) + c.setqueuesize(1800) + self.iport = al.openport('cmpaf','r', c) + self.oport = al.openport('cmpaf','w', c) + self.do_adpcm = self.do_ulaw = self.do_diff = 0 + self.acstate = None + self.form.show_form(FL.PLACE_SIZE, 1, 'compare audio formats') + return self + + def run(self): + while 1: + olddata = data = self.iport.readsamps(600) + if self.do_ulaw: + data = audioop.lin2ulaw(data, 2) + data = audioop.ulaw2lin(data, 2) + if self.do_adpcm: + data, nacstate = audioop.lin2adpcm(data, 2, \ + self.acstate) + data, dummy = audioop.adpcm2lin(data, 2, \ + self.acstate) + self.acstate = nacstate + if self.do_diff: + olddata = audioop.mul(olddata, 2, -1) + data = audioop.add(olddata, data, 2) + self.oport.writesamps(data) + fl.check_forms() + + def cb_exit(self, *args): + sys.exit(0) + + def cb_adpcm(self, obj, val): + self.do_adpcm = obj.get_button() + + def cb_ulaw(self, obj, val): + self.do_ulaw = obj.get_button() + + def cb_diff(self, obj, val): + self.do_diff = obj.get_button() + +cmpaf = Cmpaf().init() +cmpaf.run() diff --git a/Demo/sgi/al/cmpaf_form.fd b/Demo/sgi/al/cmpaf_form.fd new file mode 100755 index 0000000..6667405 --- /dev/null +++ b/Demo/sgi/al/cmpaf_form.fd @@ -0,0 +1,90 @@ +Magic: 12321 + +Internal Form Definition File + (do not change) + +Number of forms: 1 + +=============== FORM =============== +Name: form +Width: 230.000000 +Height: 80.000000 +Number of Objects: 5 + +-------------------- +class: 1 +type: 1 +box: 0.000000 0.000000 230.000000 80.000000 +boxtype: 1 +colors: 47 47 +alignment: 4 +style: 0 +size: 11.000000 +lcol: 0 +label: +name: +callback: +argument: + +-------------------- +class: 12 +type: 1 +box: 10.000000 40.000000 100.000000 30.000000 +boxtype: 1 +colors: 39 3 +alignment: 4 +style: 0 +size: 11.000000 +lcol: 0 +label: uLAW +name: ulawbutton +callback: cb_ulaw +argument: 0 + +-------------------- +class: 12 +type: 1 +box: 10.000000 10.000000 100.000000 30.000000 +boxtype: 1 +colors: 39 3 +alignment: 4 +style: 0 +size: 11.000000 +lcol: 0 +label: ADPCM +name: adpcm_button +callback: cb_adpcm +argument: 0 + +-------------------- +class: 11 +type: 0 +box: 170.000000 10.000000 50.000000 20.000000 +boxtype: 1 +colors: 47 47 +alignment: 4 +style: 0 +size: 11.000000 +lcol: 0 +label: EXIT +name: exit_button +callback: cb_exit +argument: 0 + +-------------------- +class: 12 +type: 1 +box: 120.000000 40.000000 100.000000 30.000000 +boxtype: 1 +colors: 39 3 +alignment: 4 +style: 0 +size: 11.000000 +lcol: 0 +label: Difference +name: diffbutton +callback: cb_diff +argument: 0 + +============================== +create_the_forms |