def test_expansion_recursive_processing():
    """
    Check that processing/upmixing propagates through the graph when
    an input's channel count is increased.

    Needs to be run through AudioGraph because simple process_tree
    doesn't do upmixing.
    """
    output = AudioOut_Dummy(2)
    graph = AudioGraph(output_device=output)

    a = Constant(4)
    b = a + 1
    c = b * 2
    d = c - 1
    buf = Buffer(2, 1024)
    graph.play(d)
    graph.render_to_buffer(buf)
    assert np.all(buf.data[0] == 9)

    buf = Buffer(2, 1024)
    b.set_input("input0", [5, 6])
    graph.render_to_buffer(buf)
    assert np.all(buf.data[0] == 11)
    assert np.all(buf.data[1] == 13)
    graph.stop(d)
Exemplo n.º 2
0
def test_graph_clear():
    graph = AudioGraph()
    c1 = Constant(1)
    graph.play(c1)
    c2 = Constant(2)
    graph.play(c2)
    buffer = Buffer(1, 1024)
    graph.render_to_buffer(buffer)
    assert np.all(buffer.data[0] == 3)
    graph.clear()
    graph.render_to_buffer(buffer)
    assert np.all(buffer.data[0] == 0)
Exemplo n.º 3
0
def test_graph_cyclic():
    graph = AudioGraph()
    graph.sample_rate = 1000
    line = Line(0, 1, 1)
    m1 = line * 1
    m2 = line * 2
    add = m1 + m2
    graph.play(add)
    buf = Buffer(1, 1000)
    graph.render_to_buffer(buf)
    assert np.all(np.abs(buf.data[0] - np.linspace(0, 3, graph.sample_rate)) < 0.00001)
    del graph
Exemplo n.º 4
0
def test_graph_add_remove_node():
    graph = AudioGraph()
    constant1 = Constant(1)
    constant2 = Constant(2)
    add = Add(constant1, constant2)
    graph.add_node(add)
    buffer = Buffer(1, 1024)
    graph.render_to_buffer(buffer)
    assert np.all(buffer.data[0] == 0.0)
    assert np.all(add.output_buffer[0] == 3)
    del graph

    graph = AudioGraph()
    constant1 = Constant(1)
    constant2 = Constant(2)
    add = Add(constant1, constant2)
    graph.add_node(add)
    graph.remove_node(add)
    buffer = Buffer(1, 1024)
    graph.render_to_buffer(buffer)
    assert np.all(buffer.data[0] == 0.0)
    assert np.all(add.output_buffer[0] == 0)
    del graph