Vega strike Python Modules doc  0.5.1
Documentation of the " Modules " folder of Vega strike
 All Data Structures Namespaces Files Functions Variables
audiodev Namespace Reference

Data Structures

class  error
 
class  Play_Audio_sgi
 
class  Play_Audio_sun
 

Functions

def initclass
 
def __init__
 if 0: access outrate, sampwidth, nchannels, inited_outrate, inited_width, \ inited_nchannels, converter: private More...
 
def __del__
 
def wait
 
def stop
 
def setoutrate
 
def setsampwidth
 
def setnchannels
 
def writeframes
 
def getfilled
 
def getfillable
 
def ulaw2lin
 if 0: access *: private More...
 
def AudioDev
 

Nobody remembers what this method does, and it's broken.

More...
 
def test
 

Variables

list __all__ = ["error","AudioDev"]
 
int classinited = 0
 if 0: access frameratelist, nchannelslist, sampwidthlist, oldparams, \ params, config, inited_outrate, inited_width, \ inited_nchannels, port, converter, classinited: private More...
 
 frameratelist = None
 
 nchannelslist
 
 sampwidthlist
 
 oldparams
 
 params
 
 config
 
 inited_outrate
 
 inited_width
 
 inited_nchannels
 
 converter
 
 port
 
 outrate
 
 sampwidth
 
 nchannels
 
 o_encoding
 

Detailed Description

Classes for manipulating audio devices (currently only for Sun and SGI)

Function Documentation

def __del__ (   self)

Definition at line 54 of file audiodev.py.

54 
55  def __del__(self):
56  if self.port:
57  self.stop()
58  if self.oldparams:
59  import al, AL
60  al.setparams(AL.DEFAULT_DEVICE, self.oldparams)
61  self.oldparams = []
def __init__ (   self)

if 0: access outrate, sampwidth, nchannels, inited_outrate, inited_width, \ inited_nchannels, converter: private

Definition at line 40 of file audiodev.py.

40 
41  def __init__(self):
42  import al, AL
43  if not self.classinited:
44  self.initclass()
45  self.oldparams = []
46  self.params = [AL.OUTPUT_RATE, 0]
47  self.config = al.newconfig()
48  self.inited_outrate = 0
49  self.inited_width = 0
50  self.inited_nchannels = 0
51  self.converter = None
52  self.port = None
53  return
def audiodev.AudioDev ( )

Nobody remembers what this method does, and it's broken.

:-( def getfillable(self): return BUFFERSIZE - self.getfilled()

Definition at line 217 of file audiodev.py.

218 def AudioDev():
219  # Dynamically try to import and use a platform specific module.
220  try:
221  import al
222  except ImportError:
223  try:
224  import sunaudiodev
225  return Play_Audio_sun()
226  except ImportError:
227  try:
228  import Audio_mac
229  except ImportError:
230  raise error, 'no audio device'
231  else:
232  return Audio_mac.Play_Audio_mac()
233  else:
234  return Play_Audio_sgi()
def audiodev.getfillable (   self)

Definition at line 131 of file audiodev.py.

132  def getfillable(self):
133  if self.port:
134  return self.port.getfillable()
135  else:
136  return self.config.getqueuesize()
def getfilled (   self)

Definition at line 125 of file audiodev.py.

126  def getfilled(self):
127  if self.port:
128  return self.port.getfilled()
129  else:
130  return 0
def audiodev.initclass (   self)

Definition at line 17 of file audiodev.py.

17 
18  def initclass(self):
19  import AL
20  self.frameratelist = [
21  (48000, AL.RATE_48000),
22  (44100, AL.RATE_44100),
23  (32000, AL.RATE_32000),
24  (22050, AL.RATE_22050),
25  (16000, AL.RATE_16000),
26  (11025, AL.RATE_11025),
27  ( 8000, AL.RATE_8000),
28  ]
29  self.nchannelslist = [
30  (1, AL.MONO),
31  (2, AL.STEREO),
32  (4, AL.QUADRO),
33  ]
34  self.sampwidthlist = [
35  (1, AL.SAMPLE_8),
36  (2, AL.SAMPLE_16),
37  (3, AL.SAMPLE_24),
38  ]
39  self.classinited = 1
def setnchannels (   self,
  nchannels 
)

Definition at line 103 of file audiodev.py.

104  def setnchannels(self, nchannels):
105  for (raw, cooked) in self.nchannelslist:
106  if nchannels == raw:
107  self.config.setchannels(cooked)
108  self.inited_nchannels = 1
109  break
110  else:
111  raise error, 'bad # of channels'
def setoutrate (   self,
  rate 
)

Definition at line 79 of file audiodev.py.

79 
80  def setoutrate(self, rate):
81  for (raw, cooked) in self.frameratelist:
82  if rate == raw:
83  self.params[1] = cooked
84  self.inited_outrate = 1
85  break
86  else:
87  raise error, 'bad output rate'
def setsampwidth (   self,
  width 
)

Definition at line 88 of file audiodev.py.

88 
89  def setsampwidth(self, width):
90  for (raw, cooked) in self.sampwidthlist:
91  if width == raw:
92  self.config.setwidth(cooked)
93  self.inited_width = 1
94  break
95  else:
96  if width == 0:
97  import AL
98  self.inited_width = 0
99  self.config.setwidth(AL.SAMPLE_16)
100  self.converter = self.ulaw2lin
101  else:
102  raise error, 'bad sample width'
def stop (   self)

Definition at line 70 of file audiodev.py.

70 
71  def stop(self):
72  if self.port:
73  self.port.closeport()
74  self.port = None
75  if self.oldparams:
76  import al, AL
77  al.setparams(AL.DEFAULT_DEVICE, self.oldparams)
78  self.oldparams = []
def audiodev.test (   fn = None)

Definition at line 235 of file audiodev.py.

References AudioDev(), and aifc.open().

236 def test(fn = None):
237  import sys
238  if sys.argv[1:]:
239  fn = sys.argv[1]
240  else:
241  fn = 'f:just samples:just.aif'
242  import aifc
243  af = aifc.open(fn, 'r')
244  print fn, af.getparams()
245  p = AudioDev()
246  p.setoutrate(af.getframerate())
247  p.setsampwidth(af.getsampwidth())
248  p.setnchannels(af.getnchannels())
249  BUFSIZ = af.getframerate()/af.getsampwidth()/af.getnchannels()
250  while 1:
251  data = af.readframes(BUFSIZ)
252  if not data: break
253  print len(data)
254  p.writeframes(data)
255  p.wait()
def audiodev.ulaw2lin (   self,
  data 
)

if 0: access *: private

Definition at line 140 of file audiodev.py.

141  def ulaw2lin(self, data):
142  import audioop
143  return audioop.ulaw2lin(data, 2)
def wait (   self)

Definition at line 62 of file audiodev.py.

62 
63  def wait(self):
64  if not self.port:
65  return
66  import time
67  while self.port.getfilled() > 0:
68  time.sleep(0.1)
69  self.stop()
def writeframes (   self,
  data 
)

Definition at line 112 of file audiodev.py.

113  def writeframes(self, data):
114  if not (self.inited_outrate and self.inited_nchannels):
115  raise error, 'params not specified'
116  if not self.port:
117  import al, AL
118  self.port = al.openport('Python', 'w', self.config)
119  self.oldparams = self.params[:]
120  al.getparams(AL.DEFAULT_DEVICE, self.oldparams)
121  al.setparams(AL.DEFAULT_DEVICE, self.params)
122  if self.converter:
123  data = self.converter(data)
124  self.port.writesamps(data)

Variable Documentation

list __all__ = ["error","AudioDev"]

Definition at line 3 of file audiodev.py.

classinited = 0

if 0: access frameratelist, nchannelslist, sampwidthlist, oldparams, \ params, config, inited_outrate, inited_width, \ inited_nchannels, port, converter, classinited: private

Definition at line 14 of file audiodev.py.

config

Definition at line 46 of file audiodev.py.

converter

Definition at line 50 of file audiodev.py.

frameratelist = None

Definition at line 15 of file audiodev.py.

inited_nchannels

Definition at line 49 of file audiodev.py.

inited_outrate

Definition at line 47 of file audiodev.py.

inited_width

Definition at line 48 of file audiodev.py.

nchannels

Definition at line 151 of file audiodev.py.

nchannelslist

Definition at line 28 of file audiodev.py.

o_encoding

Definition at line 185 of file audiodev.py.

oldparams

Definition at line 44 of file audiodev.py.

outrate

Definition at line 149 of file audiodev.py.

params

Definition at line 45 of file audiodev.py.

port

Definition at line 51 of file audiodev.py.

sampwidth

Definition at line 150 of file audiodev.py.

sampwidthlist

Definition at line 33 of file audiodev.py.