def demo4(appURL): """ Generate a wavefrom from a raw PCM file using the AudioServerRequest object to call the web server. """ # define header spec headerSpec = HeaderSpec("fmt=pcm,width=16,channels=1,rate=48000") # create request req = AudioServerRequest(filePath=EXAMPLE_PCM_FILE, headerSpec=headerSpec) # create destination destination = os.path.join(OUTPUT_DIR, "demo4.png") fp = open(destination, "w") # use the retrieve function to call the web server AudioServerRequest.retrieve(fp, req.buildURL(appURL, "waveform")) fp.close() print "Waveform image saved at: %s" %destination
def demo5(appURL): """ Convert a file to mp3 and validate the request. """ # define settings (either use create or instantiate) settings = MP3Settings(bitRate=96) # create request req = AudioServerRequest(filePath=EXAMPLE_WAV_FILE, settings=settings) req.validate(MP3Settings) # create destination destination = os.path.join(OUTPUT_DIR, "demo5.mp3") fp = open(destination, "w") # calling the object uses the retrieve function (same as above) req(fp, appURL, "mp3") fp.close() print "MP3 file saved at: %r" %destination
def waveform(data): req = AudioServerRequest.decode(data) req.validate(WaveformSettings) w = WavFile(req.filePath, req.headerSpec) fp = StringIO(w.header + w.data) # translate colour setting settings = copy.deepcopy(req.settings) try: colour = settings["colour"] except KeyError: pass else: settings.update(WaveformSettings.translateColours(colour)) del settings["colour"] waveformGenerator = WaveformGenerator(**settings) waveform = waveformGenerator(fp) return send_file(StringIO(waveform), mimetype="image/png")
def ogg(data): req = AudioServerRequest.decode(data) req.validate(OggSettings) encoder = OggEncoder() ogg = encoder(req.filePath, req.headerSpec, **req.settings) return send_file(StringIO(ogg), mimetype="audio/ogg")
def mp3(data): req = AudioServerRequest.decode(data) req.validate(MP3Settings) encoder = MP3Encoder() mp3 = encoder(req.filePath, req.headerSpec, **req.settings) return send_file(StringIO(mp3), mimetype="audio/mpeg3")