parser.add_argument("-w", metavar="file", nargs='+', required=True, help='Audio Input file name') parser.add_argument("-o", metavar="file", required=True, help='Audio Output file name') # ---------------------------------------------------------------------------- if len(sys.argv) <= 1: sys.argv.append('-h') args = parser.parse_args() # ---------------------------------------------------------------------------- mixer = ChannelsMixer() for inputFile in args.w: audio = audiodata.open(inputFile) idx = audio.extract_channel(0) mixer.append_channel(audio.get_channel(idx)) newchannel = mixer.mix() # Save the converted channel audio_out = AudioPCM() audio_out.append_channel( newchannel ) audiodata.save( args.o, audio_out ) # ----------------------------------------------------------------------------
# Verify and extract args: # ---------------------------------------------------------------------------- parser = ArgumentParser(usage="%s -o output file [options]" % os.path.basename(PROGRAM), description="A script to apply high-pass filter (development version)") parser.add_argument("-i", metavar="file", required=True, help='Audio Input file name') parser.add_argument("-o", metavar="file", required=True, help='Audio Output file name') if len(sys.argv) <= 1: sys.argv.append('-h') args = parser.parse_args() # ---------------------------------------------------------------------------- audioin = audiodata.open( args.i ) SAMPLE_RATE = audioin.get_framerate() # ---------------------------------------------------------------------------- # IIR filter coefficients freq = 2000 # Hz r = 0.98 a1 = -2.0 * r * math.cos(freq / (SAMPLE_RATE / 2.0) * math.pi) a2 = r * r filter = [a1, a2] print filter n = audioin.get_nframes() original = struct.unpack('%dh' % n, audioin.read_frames(n)) original = [s / 2.0**15 for s in original]
parser.add_argument("-bs", default=0, metavar="value", type=float, help='The position (in seconds) when begins the mix, don\'t use with -bf') parser.add_argument("-es", default=0, metavar="value", type=float, help='The position (in seconds) when ends the mix, don\'t use with -ef') parser.add_argument("-bf", default=0, metavar="value", type=float, help='The position (in number of frames) when begins the mix, don\'t use with -bs') parser.add_argument("-ef", default=0, metavar="value", type=float, help='The position (in number of frames) when ends the mix, don\'t use with -es') # ---------------------------------------------------------------------------- if len(sys.argv) <= 1: sys.argv.append('-h') args = parser.parse_args() # ---------------------------------------------------------------------------- audio_out = AudioPCM() audio = audiodata.open(args.w) if args.bf and args.bs: print "bf option and bs option can't be used at the same time !" sys.exit(1) if args.ef and args.es: print "ef option and es option can't be used at the same time !" sys.exit(1) if args.bf: begin = args.bf elif args.bs: begin = args.bs*audio.get_framerate() else: begin = 0