Initial revision

This commit is contained in:
Guido van Rossum 1992-12-14 15:06:32 +00:00
parent 2739c9cce8
commit 8307443175
2 changed files with 155 additions and 0 deletions

65
Demo/sgi/al/cmpaf.py Executable file
View File

@ -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()

90
Demo/sgi/al/cmpaf_form.fd Executable file
View File

@ -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