def test_NonrealtimeProvider_free_node_error(session): """ Requires moment. """ provider = Provider.from_context(session) with provider.at(0): group_proxy = provider.add_group() with pytest.raises(ValueError): provider.free_node(group_proxy)
def test_NonrealtimeProvider_set_bus_1(session): provider = Provider.from_context(session) with provider.at(1.2345): bus_group_proxy = provider.add_bus_group(channel_count=4) for i, bus_proxy in enumerate(bus_group_proxy): bus_proxy.set_(pow(2, i)) assert session.to_lists(10) == [ [1.2345, [["/c_set", 0, 1.0, 1, 2.0, 2, 4.0, 3, 8.0]]], [10.0, [[0]]], ]
def test_NonrealtimeProvider_add_bus_error(session): """ Must be control or audio rate. """ provider = Provider.from_context(session) with pytest.raises(ValueError): provider.add_bus() with provider.at(0): with pytest.raises(ValueError): provider.add_bus(calculation_rate="scalar")
def test_NonrealtimeProvider_add_buffer_1(session): provider = Provider.from_context(session) file_path = locate("supriya.assets:audio/pulse_44100sr_16bit_octo.wav") with provider.at(1.2345): proxy = provider.add_buffer(file_path=file_path) assert isinstance(proxy, BufferProxy) assert session.to_lists(10) == [ [1.2345, [["/b_allocRead", 0, str(file_path), 0, -1]]], [10.0, [["/b_free", 0], [0]]], ]
def test_RealtimeProvider_set_bus_error(server): provider = Provider.from_context(server) with provider.at(1.2345): audio_bus_proxy = provider.add_bus( calculation_rate=CalculationRate.AUDIO) control_bus_proxy = provider.add_bus() with pytest.raises(ValueError): audio_bus_proxy.set_(0.1234) with pytest.raises(ValueError): control_bus_proxy.set_(0.1234)
def test_RealtimeProvider_move_node_error(server): """ Requires moment. """ provider = Provider.from_context(server) with provider.at(0): group_proxy_one = provider.add_group() group_proxy_two = provider.add_group() with pytest.raises(ValueError): group_proxy_one.move(AddAction.ADD_TO_HEAD, group_proxy_two)
def test_RealtimeProvider_set_node_1(server): provider = Provider.from_context(server) seconds = time.time() with provider.at(seconds): group_proxy = provider.add_group() with server.osc_protocol.capture() as transcript: with provider.at(seconds + 0.01): group_proxy["foo"] = 23 assert [entry.message.to_list() for entry in transcript] == [[ seconds + 0.01 + provider.latency, [["/n_set", 1000, "foo", 23]] ]]
def test_NonrealtimeProvider_set_node_1(session): provider = Provider.from_context(session) with provider.at(1.2345): group_proxy = provider.add_group() with provider.at(2.3456): group_proxy["foo"] = 23 assert session.to_lists(10) == [ [1.2345, [["/g_new", 1000, 0, 0]]], [2.3456, [["/n_set", 1000, "foo", 23]]], [10.0, [["/n_free", 1000], [0]]], ]
def test_NonrealtimeProvider_add_group_1(session): provider = Provider.from_context(session) seconds = 1.2345 with provider.at(seconds): group_proxy = provider.add_group() assert group_proxy == GroupProxy( identifier=session.nodes_by_session_id[1000], provider=provider) assert session.to_lists(10) == [ [1.2345, [["/g_new", 1000, 0, 0]]], [10.0, [["/n_free", 1000], [0]]], ]
def test_RealtimeProvider_add_bus_1(server): provider = Provider.from_context(server) with provider.at(1.2345): bus_proxy_one = provider.add_bus(calculation_rate="audio") bus_proxy_two = provider.add_bus() assert bus_proxy_one == BusProxy(calculation_rate=CalculationRate.AUDIO, identifier=16, provider=provider) assert bus_proxy_two == BusProxy(calculation_rate=CalculationRate.CONTROL, identifier=0, provider=provider)
def test_RealtimeProvider_set_bus_1(server): provider = Provider.from_context(server) seconds = time.time() with server.osc_protocol.capture() as transcript: with provider.at(seconds): bus_group_proxy = provider.add_bus_group(channel_count=4) for i, bus_proxy in enumerate(bus_group_proxy): bus_proxy.set_(pow(2, i)) assert [entry.message.to_list() for entry in transcript] == [[ seconds + provider.latency, [["/c_set", 0, 1.0, 1, 2.0, 2, 4.0, 3, 8.0]] ]]
def test_RealtimeProvider_add_bus_group_error(server): """ Must be 1 or more channels and control or audio rate. """ provider = Provider.from_context(server) with pytest.raises(ValueError): provider.add_bus_group() with provider.at(0): with pytest.raises(ValueError): provider.add_bus_group(channel_count=0) with pytest.raises(ValueError): provider.add_bus_group(calculation_rate="scalar")
def test_RealtimeProvider_add_buffer_1(server): provider = Provider.from_context(server) file_path = locate("supriya.assets:audio/pulse_44100sr_16bit_octo.wav") with server.osc_protocol.capture() as transcript: with provider.at(1.2345): proxy = provider.add_buffer(file_path=file_path) time.sleep(0.1) assert isinstance(proxy, BufferProxy) assert [entry.message.to_list() for entry in transcript] == [ [1.3345, [["/b_allocRead", 0, str(file_path), 0, -1]]], ["/done", "/b_allocRead", 0], ]
def test_RealtimeProvider_free_buffer(server): provider = Provider.from_context(server) file_path = locate("supriya.assets:audio/pulse_44100sr_16bit_octo.wav") with provider.at(1.2345): proxy = provider.add_buffer(file_path=file_path) time.sleep(0.1) with server.osc_protocol.capture() as transcript: with provider.at(2.3456): proxy.free() assert [entry.message.to_list() for entry in transcript] == [ [2.4456, [["/b_free", 0]]], ]
def test_NonrealtimeProvider_move_node_1(session): provider = Provider.from_context(session) with provider.at(1.2345): group_proxy_one = provider.add_group() group_proxy_two = provider.add_group() with provider.at(2.3456): provider.move_node(group_proxy_one, AddAction.ADD_TO_TAIL, group_proxy_two) assert session.to_lists(10) == [ [1.2345, [["/g_new", 1000, 0, 0], ["/g_new", 1001, 0, 0]]], [2.3456, [["/g_tail", 1001, 1000]]], [10.0, [["/n_free", 1000, 1001], [0]]], ]
def test_NonrealtimeProvider_add_group_2(session): provider = Provider.from_context(session) with provider.at(1.2345): group_proxy_one = provider.add_group() with provider.at(2.3456): group_proxy_two = provider.add_group(target_node=group_proxy_one) assert session.to_lists(10) == [ [1.2345, [["/g_new", 1000, 0, 0]]], [2.3456, [["/g_new", 1001, 0, 1000]]], [10.0, [["/n_free", 1000, 1001], [0]]], ] assert group_proxy_one == GroupProxy( identifier=session.nodes_by_session_id[1000], provider=provider) assert group_proxy_two == GroupProxy( identifier=session.nodes_by_session_id[1001], provider=provider)
def test_NonrealtimeProvider_add_bus_1(session): provider = Provider.from_context(session) with provider.at(1.2345): bus_proxy_one = provider.add_bus(calculation_rate="audio") bus_proxy_two = provider.add_bus() assert bus_proxy_one == BusProxy( calculation_rate=CalculationRate.AUDIO, identifier=session.buses_by_session_id[0], provider=provider, ) assert bus_proxy_two == BusProxy( calculation_rate=CalculationRate.CONTROL, identifier=session.buses_by_session_id[1], provider=provider, ) assert session.to_lists(10) == [[10.0, [[0]]]]
def test_NonrealtimeProvider_set_node_2(session): provider = Provider.from_context(session) with provider.at(1.2345): synth_proxy = provider.add_synth() with provider.at(2.3456): synth_proxy["frequency"] = 666.666 assert session.to_lists(10) == [ [ 1.2345, [ *pytest.helpers.build_d_recv_commands([default]), ["/s_new", default.anonymous_name, 1000, 0, 0], ], ], [2.3456, [["/n_set", 1000, "frequency", 666.666]]], [10.0, [["/n_set", 1000, "gate", 0], [0]]], ]
def test_NonrealtimeProvider_add_bus_group_1(session): provider = Provider.from_context(session) with provider.at(1.2345): bus_group_proxy_one = provider.add_bus_group(channel_count=2) bus_group_proxy_two = provider.add_bus_group(channel_count=4) assert bus_group_proxy_one == BusGroupProxy( calculation_rate=CalculationRate.CONTROL, channel_count=2, identifier=session.buses_by_session_id[0], provider=provider, ) assert bus_group_proxy_two == BusGroupProxy( calculation_rate=CalculationRate.CONTROL, channel_count=4, identifier=session.buses_by_session_id[1], provider=provider, ) assert session.to_lists(10) == [[10.0, [[0]]]]
def test_RealtimeProvider_add_bus_group_1(server): provider = Provider.from_context(server) with server.osc_protocol.capture() as transcript: with provider.at(None): bus_group_proxy_one = provider.add_bus_group(channel_count=2) bus_group_proxy_two = provider.add_bus_group(channel_count=4) assert bus_group_proxy_one == BusGroupProxy( calculation_rate=CalculationRate.CONTROL, channel_count=2, identifier=0, provider=provider, ) assert bus_group_proxy_two == BusGroupProxy( calculation_rate=CalculationRate.CONTROL, channel_count=4, identifier=2, provider=provider, ) assert [entry.message for entry in transcript] == []
def test_RealtimeProvider_add_synth_2(server): provider = Provider.from_context(server) seconds = time.time() with server.osc_protocol.capture() as transcript: with provider.at(None): group_proxy = provider.add_group() with provider.at(seconds + 0.01) as provider_moment: synth_proxy = provider.add_synth(target_node=group_proxy, amplitude=0.5, frequency=666) assert synth_proxy == SynthProxy( identifier=1001, provider=provider, synthdef=default, settings=dict(amplitude=0.5, frequency=666), ) assert provider_moment == ProviderMoment( provider=provider, seconds=seconds + 0.01, bus_settings=[], node_additions=[(synth_proxy, AddAction.ADD_TO_HEAD, group_proxy)], node_removals=[], node_reorderings=[], node_settings=[], ) assert [entry.message.to_list() for entry in transcript] == [ [None, [["/g_new", 1000, 0, 1]]], [ seconds + 0.01 + provider.latency, [[ "/s_new", "default", 1001, 0, 1000, "amplitude", 0.5, "frequency", 666 ]], ], ] time.sleep(0.1) assert str(server) == normalize(""" NODE TREE 0 group 1 group 1000 group 1001 default out: 0.0, amplitude: 0.5, frequency: 666.0, gate: 1.0, pan: 0.5 """)
def test_NonrealtimeProvider_free_node_1(session): provider = Provider.from_context(session) with provider.at(1.2345): group_proxy = provider.add_group() synth_proxy = provider.add_synth() with provider.at(2.3456): group_proxy.free() synth_proxy.free() assert session.to_lists(10) == [ [ 1.2345, [ *pytest.helpers.build_d_recv_commands([default]), ["/g_new", 1000, 0, 0], ["/s_new", default.anonymous_name, 1001, 0, 0], ], ], [2.3456, [["/n_free", 1000], ["/n_set", 1001, "gate", 0]]], [10.0, [[0]]], ]
def test_RealtimeProvider_free_node_1(server): provider = Provider.from_context(server) with server.osc_protocol.capture() as transcript: with provider.at(None): group_proxy = provider.add_group() synth_proxy = provider.add_synth() with provider.at(None): group_proxy.free() synth_proxy.free() assert [entry.message.to_list() for entry in transcript] == [ [None, [["/g_new", 1000, 0, 1], ["/s_new", "default", 1001, 0, 1]]], [None, [["/n_free", 1000], ["/n_set", 1001, "gate", 0]]], ] time.sleep(0.1) assert str(server) == normalize(""" NODE TREE 0 group 1 group 1001 default out: 0.0, amplitude: 0.1, frequency: 440.0, gate: 0.0, pan: 0.5 """)
def test_RealtimeProvider_free_bus_group_1(server): provider = Provider.from_context(server) seconds = time.time() with server.osc_protocol.capture() as transcript: with provider.at(seconds): audio_bus_group = provider.add_bus_group( channel_count=2, calculation_rate=CalculationRate.AUDIO) control_bus_group_a = provider.add_bus_group(channel_count=2) control_bus_group_b = provider.add_bus_group(channel_count=3) control_bus_group_c = provider.add_bus_group(channel_count=2) with provider.at(seconds + 0.01): audio_bus_group.free() control_bus_group_a.free() control_bus_group_d = provider.add_bus_group(channel_count=2) assert audio_bus_group.identifier == 16 assert control_bus_group_a.identifier == 0 assert control_bus_group_b.identifier == 2 assert control_bus_group_c.identifier == 5 assert control_bus_group_d.identifier == 0 assert [entry.message for entry in transcript] == []
def test_RealtimeProvider_move_node_1(server): provider = Provider.from_context(server) seconds = time.time() with server.osc_protocol.capture() as transcript: with provider.at(seconds): group_proxy_one = provider.add_group() group_proxy_two = provider.add_group() provider.move_node(group_proxy_one, AddAction.ADD_TO_TAIL, group_proxy_two) assert [entry.message.to_list() for entry in transcript] == [[ seconds + provider.latency, [["/g_new", 1000, 0, 1], ["/g_new", 1001, 0, 1], ["/g_tail", 1001, 1000]], ]] time.sleep(0.1) assert str(server) == normalize(""" NODE TREE 0 group 1 group 1001 group 1000 group """)
def test_RealtimeProvider_set_node_2(server): provider = Provider.from_context(server) with provider.at(None): synth_proxy = provider.add_synth() time.sleep(0.01) assert str(server) == normalize(""" NODE TREE 0 group 1 group 1000 default out: 0.0, amplitude: 0.1, frequency: 440.0, gate: 1.0, pan: 0.5 """) with server.osc_protocol.capture() as transcript: with provider.at(None): synth_proxy["frequency"] = 443 assert [entry.message.to_list() for entry in transcript ] == [[None, [["/n_set", 1000, "frequency", 443.0]]]] time.sleep(0.01) assert str(server) == normalize(""" NODE TREE 0 group 1 group 1000 default out: 0.0, amplitude: 0.1, frequency: 443.0, gate: 1.0, pan: 0.5 """)
def test_RealtimeProvider_add_synth_3(server): provider = Provider.from_context(server) with server.osc_protocol.capture() as transcript: with provider.at(None): audio_bus_proxy = provider.add_bus("audio") control_bus_proxy = provider.add_bus("control") synth_proxy = provider.add_synth(amplitude=control_bus_proxy, out=audio_bus_proxy) assert synth_proxy == SynthProxy( identifier=1000, provider=provider, synthdef=default, settings=dict(amplitude=control_bus_proxy, out=audio_bus_proxy), ) assert [entry.message.to_list() for entry in transcript] == [[ None, [["/s_new", "default", 1000, 0, 1, "amplitude", "c0", "out", 16.0]] ]] assert str(server) == normalize(""" NODE TREE 0 group 1 group 1000 default out: 16.0, amplitude: c0, frequency: 440.0, gate: 1.0, pan: 0.5 """)
def test_NonrealtimeProvider_free_bus_error(session): provider = Provider.from_context(session) with provider.at(1.2345): bus_proxy = provider.add_bus() with pytest.raises(ValueError): provider.free_bus(bus_proxy)
def test_NonrealtimeProvider_free_bus_group_error(session): provider = Provider.from_context(session) with provider.at(1.2345): bus_group_proxy = provider.add_bus_group(channel_count=2) with pytest.raises(ValueError): bus_group_proxy.free()
def test_RealtimeProvider_free_bus_group_error(server): provider = Provider.from_context(server) with provider.at(0): bus_group_proxy = provider.add_bus_group() with pytest.raises(ValueError): provider.free_bus_group(bus_group_proxy)