From 11ddb4cbf9b695fdd042105d7e341f20e347e018 Mon Sep 17 00:00:00 2001 From: Aleksey Lim Date: Fri, 19 Dec 2008 03:32:22 +0000 Subject: move micrec code to OS.py --- diff --git a/TamTamJam.activity/Jam/JamMain.py b/TamTamJam.activity/Jam/JamMain.py index e9dde2a..d78b095 100644 --- a/TamTamJam.activity/Jam/JamMain.py +++ b/TamTamJam.activity/Jam/JamMain.py @@ -696,13 +696,8 @@ class JamMain(gtk.EventBox): #========================================================== # Mic recording def micRec(self, widget, mic): - if os.path.isfile(os.path.join(Config.DATA_DIR, mic)): - os.system('rm ' + Config.DATA_DIR + '/' + mic) self.csnd.inputMessage("i5600 0 4") - OS.system("arecord -f S16_LE -t wav -r 16000 -d 4 " + Config.DATA_DIR + "/tempMic.wav") - OS.system("csound " + "--strset999=" + Config.DATA_DIR + " " + Config.FILES_DIR + "/crop.csd") - OS.system("mv " + Config.DATA_DIR + "/micTemp.wav " + Config.DATA_DIR + "/" + mic) - OS.system("rm " + Config.DATA_DIR + "/tempMic.wav") + OS.arecord(4, "crop.csd", mic) self.csnd.load_mic_instrument(mic) diff --git a/TamTamMini.activity/Mini/miniTamTamMain.py b/TamTamMini.activity/Mini/miniTamTamMain.py index 28d7df5..2665b5a 100644 --- a/TamTamMini.activity/Mini/miniTamTamMain.py +++ b/TamTamMini.activity/Mini/miniTamTamMain.py @@ -315,13 +315,8 @@ class miniTamTamMain(gtk.EventBox): self.leftBox.remove( self.instrumentPanel ) def micRec(self, widget, mic): - if os.path.isfile(Config.DATA_DIR + '/' + mic): - os.system('rm ' + Config.DATA_DIR + '/' + mic) self.csnd.inputMessage("i5600 0 4") - OS.system("arecord -f S16_LE -t wav -r 16000 -d 4 " + Config.DATA_DIR + "/tempMic.wav") - OS.system("csound " + Config.FILES_DIR + "/crop.csd") - OS.system("mv " + Config.DATA_DIR + "/micTemp " + Config.DATA_DIR + "/" + mic) - OS.system("rm " + Config.DATA_DIR + "/tempMic.wav") + OS.arecord(4, "crop.csd", mic) self.micTimeout = gobject.timeout_add(200, self.loadMicInstrument, mic) self.instrumentPanel.set_activeInstrument(mic,True) self.setInstrument(mic) diff --git a/TamTamSynthLab.activity/SynthLab/SynthLabMain.py b/TamTamSynthLab.activity/SynthLab/SynthLabMain.py index 87ed022..071665f 100644 --- a/TamTamSynthLab.activity/SynthLab/SynthLabMain.py +++ b/TamTamSynthLab.activity/SynthLab/SynthLabMain.py @@ -687,12 +687,7 @@ class SynthLabMain(gtk.EventBox): if self.synthObjectsParameters.types[i] == 9: snd = i - 3 dur = self.synthObjectsParameters.sourcesParameters[(i % 4) * 4] - if os.path.isfile(Config.DATA_DIR + '/labmic' + str(snd)): - os.system('rm ' + Config.DATA_DIR + '/labmic' + str(snd)) - OS.system("arecord -f S16_LE -t wav -r 16000 -d " + str(dur) + " " + Config.DATA_DIR + '/tempMic.wav') - OS.system("csound " + "--strset999=" + Config.DATA_DIR + " " + Config.FILES_DIR + "/cropSynthLab.csd") - OS.system("mv " + Config.DATA_DIR + "/micTemp.wav " + Config.DATA_DIR + "/" + 'labmic' + str(snd)) - OS.system("rm " + Config.DATA_DIR + "/tempMic.wav") + OS.arecord(dur, "cropSynthLab.csd", 'labmic' + str(snd)) return def handleMotion( self, widget, event ): diff --git a/common/Config.py b/common/Config.py index 9e2c069..53b161e 100644 --- a/common/Config.py +++ b/common/Config.py @@ -62,6 +62,9 @@ PLUGIN_NPERIODS = 2 ## SOUNDS ############## +ARECORD = "arecord " + os.getenv("TAMTAM_ARECORD", + "-f S16_LE -t wav -r 16000 -c2 -D hw:0,0") + LOW, MID, HIGH, PUNCH = range( 4 ) INSTRUMENT_TABLE_OFFSET = 5000 diff --git a/common/Util/OS.py b/common/Util/OS.py index 6bea80b..605fbf4 100644 --- a/common/Util/OS.py +++ b/common/Util/OS.py @@ -1,5 +1,8 @@ import commands import logging +import os + +import common.Config as Config def system(*args): cmd = ' '.join(args) @@ -10,3 +13,24 @@ def system(*args): return status +def arecord(duration, crop_csd, dst): + tmp_file = os.path.join(Config.TMP_DIR, 'tempMic.wav') + out_file = os.path.join(Config.TMP_DIR, 'micTemp.wav') + crop_file = os.path.join(Config.FILES_DIR, crop_csd) + dst_file = os.path.join(Config.DATA_DIR, dst) + + if system(Config.ARECORD, "-d", str(duration), tmp_file)[0] != 0: + logging.error('arecord failed') + return False + + system("csound", "--strset999=" + Config.TMP_DIR, crop_file) + + if os.path.isfile(dst): + os.remove(dst_file) + + if os.path.isfile(out_file): + os.rename(out_file, dst_file) + os.remove(tmp_file) + else: + logging.debug('crop failed') + os.rename(tmp_file, dst_file) -- cgit v0.9.1