📄 cmpaf.py
字号:
# 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 programimport flimport FLimport flpimport alimport ALimport audioopimport sysclass 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') 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()cmpaf.run()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -