def test_renderers(self): usage = Usage(''' desc 1 :alpha str :beta str ''', alpha_beta=lambda args: args.alpha + args.beta) a = usage.parse(['aval', 'bval']) assert a.alpha == 'aval' assert a.beta == 'bval' assert a.alpha_beta == 'avalbval' usage |= Usage(betabeta=lambda args: args.beta * 2) assert usage.parse(['aval', 'bval']).betabeta == 'bvalbval'
def main(): Usage.types['evaluator'] = evaluator_type usage = Usage(__doc__) args = usage.parse() data_folder = join(dirname(realpath(__file__)), 'data') mat = load_mat_from_zip(args.hrir_zip.format(data_folder=data_folder)) hrir = hrir_data_from_mat(mat) processor = Processor(hrir, calc_azimuth=args.azimuth, calc_elevation=args.elevation, calc_distance=args.distance, update_interval=args.update_interval) def callback(in_data, frame_count, time_info, status): audio = np.frombuffer(in_data, dtype=np.float32).reshape((-1, 2))[:, 0] left, right = processor.process(audio) out_data = np.vstack( (left, right)).T.flatten().astype('float32').tobytes() return out_data, pyaudio.paContinue p = pyaudio.PyAudio() stream = p.open(format=pyaudio.paFloat32, channels=2, rate=44100, input=True, output=True, frames_per_buffer=args.chunk_size, stream_callback=callback) stream.start_stream() try: while stream.is_active(): sleep(0.2) finally: stream.stop_stream() stream.close() p.terminate()