Ejemplo n.º 1
0
 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'
Ejemplo n.º 2
0
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()