mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	Initial revision
This commit is contained in:
		
							parent
							
								
									2739c9cce8
								
							
						
					
					
						commit
						8307443175
					
				
					 2 changed files with 155 additions and 0 deletions
				
			
		
							
								
								
									
										65
									
								
								Demo/sgi/al/cmpaf.py
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										65
									
								
								Demo/sgi/al/cmpaf.py
									
										
									
									
									
										Executable 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
									
								
							
							
						
						
									
										90
									
								
								Demo/sgi/al/cmpaf_form.fd
									
										
									
									
									
										Executable 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
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue