def __del__(self): if self.port: self.stop() if self.oldparams: import al, AL al.setparams(AL.DEFAULT_DEVICE, self.oldparams) self.oldparams = []
def stop(self): if self.__port: self.__port.closeport() self.__port = None if self.__oldparams: al.setparams(al.DEFAULT_DEVICE, self.__oldparams) self.__oldparams = []
def main(): s = socket(AF_INET, SOCK_DGRAM) s.bind('', PORT) oldparams = [AL.OUTPUT_RATE, 0] params = oldparams[:] al.getparams(AL.DEFAULT_DEVICE, oldparams) params[1] = AL.RATE_44100 try: al.setparams(AL.DEFAULT_DEVICE, params) config = al.newconfig() config.setwidth(AL.SAMPLE_16) config.setchannels(AL.STEREO) port = al.openport('CD Player', 'w', config) while 1: data = s.recv(CDDA_DATASIZE) if not data: print 'EOF' break port.writesamps(data) except KeyboardInterrupt: pass al.setparams(AL.DEFAULT_DEVICE, oldparams)
def stop(self): if self.port: self.port.closeport() self.port = None if self.oldparams: import al, AL al.setparams(AL.DEFAULT_DEVICE, self.oldparams) self.oldparams = []
def writeframes(self, data): if not self.__format or not self.__params[1]: raise Error, 'params not specified' if not self.__port: self.__port = al.openport('Python', 'w', self.__config) self.__oldparams = self.__params[:] al.getparams(al.DEFAULT_DEVICE, self.__oldparams) al.setparams(al.DEFAULT_DEVICE, self.__params) self.__port.writesamps(data)
def writeframes(self, data): if not (self.inited_outrate and self.inited_nchannels): raise error, 'params not specified' if not self.port: import al, AL self.port = al.openport('Python', 'w', self.config) self.oldparams = self.params[:] al.getparams(AL.DEFAULT_DEVICE, self.oldparams) al.setparams(AL.DEFAULT_DEVICE, self.params) if self.converter: data = self.converter(data) self.port.writesamps(data)
def main(): import sys, readcd, al, AL, CD, cdplayer verbose = 0 r = readcd.Readcd().init() prstatus(r.getstatus()) prtrackinfo(r.gettrackinfo()) cdinfo = cdplayer.Cdplayer().init(r.gettrackinfo()) if cdinfo.title <> '': print 'Title: "' + cdinfo.title + '"' if cdinfo.artist <> '': print 'Artist: ' + cdinfo.artist for arg in sys.argv[1:]: if arg == '-v': verbose = 1 continue x = eval(arg) try: l = len(x) r.appendstretch(x[0], x[1]) except TypeError: r.appendtrack(x) try: oldparams = [AL.OUTPUT_RATE, 0] params = oldparams[:] al.getparams(AL.DEFAULT_DEVICE, oldparams) params[1] = AL.RATE_44100 al.setparams(AL.DEFAULT_DEVICE, params) config = al.newconfig() config.setwidth(AL.SAMPLE_16) config.setchannels(AL.STEREO) port = al.openport('CD Player', 'w', config) for i in range(8): r.setcallback(i, callback, None) if verbose: r.setcallback(CD.PTIME, tcallback, None) r.setcallback(CD.ATIME, tcallback, None) else: r.removecallback(CD.PTIME) r.removecallback(CD.ATIME) r.setcallback(CD.PNUM, prtrack, cdinfo) r.setcallback(CD.AUDIO, playaudio, port) data = r.play() except KeyboardInterrupt: status = r.getstatus() print 'Interrupted at '+triple(status[2])+' into track '+ \ `status[1]`+' (absolute time '+triple(status[3])+')' al.setparams(AL.DEFAULT_DEVICE, oldparams)
def main(): import sys, readcd, al, AL, CD, cdplayer verbose = 0 r = readcd.Readcd() prstatus(r.getstatus()) prtrackinfo(r.gettrackinfo()) cdinfo = cdplayer.Cdplayer(r.gettrackinfo()) if cdinfo.title <> '': print 'Title: "' + cdinfo.title + '"' if cdinfo.artist <> '': print 'Artist: ' + cdinfo.artist for arg in sys.argv[1:]: if arg == '-v': verbose = 1 continue x = eval(arg) try: l = len(x) r.appendstretch(x[0], x[1]) except TypeError: r.appendtrack(x) try: oldparams = [AL.OUTPUT_RATE, 0] params = oldparams[:] al.getparams(AL.DEFAULT_DEVICE, oldparams) params[1] = AL.RATE_44100 al.setparams(AL.DEFAULT_DEVICE, params) config = al.newconfig() config.setwidth(AL.SAMPLE_16) config.setchannels(AL.STEREO) port = al.openport('CD Player', 'w', config) for i in range(8): r.setcallback(i, callback, None) if verbose: r.setcallback(CD.PTIME, tcallback, None) r.setcallback(CD.ATIME, tcallback, None) else: r.removecallback(CD.PTIME) r.removecallback(CD.ATIME) r.setcallback(CD.PNUM, prtrack, cdinfo) r.setcallback(CD.AUDIO, playaudio, port) data = r.play() except KeyboardInterrupt: status = r.getstatus() print 'Interrupted at '+triple(status[2])+' into track '+ \ `status[1]`+' (absolute time '+triple(status[3])+')' al.setparams(AL.DEFAULT_DEVICE, oldparams)
def ioloop(s, otheraddr): # dev = AL.DEFAULT_DEVICE params = al.queryparams(dev) al.getparams(dev, params) time.sleep(1) saveparams = params[:] for i in range(0, len(params), 2): if params[i] in (AL.INPUT_RATE, AL.OUTPUT_RATE): params[i+1] = AL.RATE_16000 elif params[i] == AL.INPUT_SOURCE: params[i+1] = AL.INPUT_MIC try: al.setparams(dev, params) ioloop1(s, otheraddr) finally: al.setparams(dev, saveparams)
def ioloop(s, otheraddr): # dev = AL.DEFAULT_DEVICE params = al.queryparams(dev) al.getparams(dev, params) time.sleep(1) saveparams = params[:] for i in range(0, len(params), 2): if params[i] in (AL.INPUT_RATE, AL.OUTPUT_RATE): params[i + 1] = AL.RATE_16000 elif params[i] == AL.INPUT_SOURCE: params[i + 1] = AL.INPUT_MIC try: al.setparams(dev, params) ioloop1(s, otheraddr) finally: al.setparams(dev, saveparams)
def main(): if len(sys.argv) < 2: f = sys.stdin filename = sys.argv[0] else: if len(sys.argv) <> 2: sys.stderr.write('usage: ' + \ sys.argv[0] + ' filename\n') sys.exit(2) filename = sys.argv[1] f = open(filename, 'r') # magic = f.read(4) extra = '' if magic == '0008': rate = 8000 elif magic == '0016': rate = 16000 elif magic == '0032': rate = 32000 else: sys.stderr.write('no magic header; assuming 8k samples/sec.\n') rate = 8000 extra = magic # pv = [AL.OUTPUT_RATE, rate] al.setparams(AL.DEFAULT_DEVICE, pv) c = al.newconfig() c.setchannels(AL.MONO) c.setwidth(AL.SAMPLE_8) port = al.openport(filename, 'w', c) if extra: port.writesamps(extra) while 1: buf = f.read(BUFSIZE) if not buf: break port.writesamps(buf) while port.getfilled() > 0: time.millisleep(100)
# Play CD audio on speaker or headphones.
print 'kbytes :', \ ain.getnframes() * ain.getnchannels() * ain.getsampwidth() print 'Opening audio output port..' c = al.newconfig() c.setchannels(ain.getnchannels()) c.setwidth(ain.getsampwidth()) nullsample = '\0' * ain.getsampwidth() samples_per_second = ain.getnchannels() * ain.getframerate() if qsize <= 0: qsize = samples_per_second / 10 qsize = max(qsize, 512) c.setqueuesize(qsize) saveparams = [AL.OUTPUT_RATE, 0] al.getparams(AL.DEFAULT_DEVICE, saveparams) newparams = [AL.OUTPUT_RATE, ain.getframerate()] al.setparams(AL.DEFAULT_DEVICE, newparams) aport = al.openport(audiofile, 'w', c) print 'Opening video output window..' gl.foreground() gl.prefsize(vin.width, vin.height) wid = gl.winopen(videofile + ' + ' + audiofile) gl.clear() vin.initcolormap() print 'Playing..' gl.qdevice(DEVICE.ESCKEY) gl.qdevice(DEVICE.LEFTARROWKEY) gl.qdevice(DEVICE.RIGHTARROWKEY) ## gl.qdevice(DEVICE.UPARROWKEY) ## gl.qdevice(DEVICE.DOWNARROWKEY)
# intercom -- use mike and headset to *talk* to a person on another host.
#! /usr/bin/env python # Play synchronous video and audio. # Highly experimental! import sys import getopt import string import os import VFile import aifc import gl, GL, DEVICE import al, AL def usage(): sys.stderr.write( \ 'usage: aplay [-o offset] [-q qsize] videofile audiofile\n') sys.exit(2) def main(): offset = 0 qsize = 0 # This defaults to 1/10 second of sound videofile = 'film.video' audiofile = 'film.aiff' try: opts, args = getopt.getopt(sys.argv[1:], 'o:q:') except getopt.error, msg: sys.stderr.write(msg + '\n') usage() try: for o, a in opts: if o == '-o': offset = string.atoi(a)
# Play old style sound files (Guido's private format)
"""Classes for manipulating audio devices (currently only for Sun and SGI)"""
# Receive UDP packets from sendcd.py and play them on the speaker or
def handle_3(self): # setparams dev, params = self.unpacker.unpack_int_params() self.turn_around() ## print 'setparams:', dev, params al.setparams(dev, params)