def setup_nodes(server): microphone_synth = supriya.Synth( synthdef=supriya.synthdefs.system_link_audio_2, in_=int(server.audio_input_bus_group), out=int(server.audio_output_bus_group), name='mic_input', ) source_group = supriya.Group(name='source_group') source_compressor = supriya.Synth( synthdef=synthdefs.multiband_compressor, name='source_compressor', ) effect_group = supriya.Group(name='effect_group') grain_synthdef = build_grain_synthdef() grain_synth = supriya.Synth( synthdef=grain_synthdef, name='grain_synth', ) pitch_shift_synthdef = build_pitch_shift_synthdef() pitch_shift_synth = supriya.Synth( synthdef=pitch_shift_synthdef, name='pitch_shift_synth', ) delay_synthdef = build_delay_synthdef() delay_synth = supriya.Synth( synthdef=delay_synthdef, name='delay_synth', ) freeverb_synthdef = build_freeverb_synthdef() freeverb_synth = supriya.Synth( synthdef=freeverb_synthdef, name='freeverb_synth', ) effect_group.extend([ grain_synth, pitch_shift_synth, delay_synth, freeverb_synth, ]) effect_compressor = supriya.Synth( synthdef=synthdefs.multiband_compressor, name='effect_compressor', ) server.default_group.extend([ microphone_synth, source_group, source_compressor, effect_group, effect_compressor, ])
def _setup_default_groups(self): default_groups = [ supriya.Group(node_id_is_permanent=True) for _ in range(self.maximum_logins) ] self.root_node.extend(default_groups) self._default_group = default_groups[self.client_id]
def test_boot_a_and_connect_b(): server_a, server_b = Server(), Server() assert not server_a.is_running and not server_a.is_owner assert not server_b.is_running and not server_b.is_owner server_a.boot(maximum_logins=4) assert server_a.is_running and server_a.is_owner assert not server_b.is_running and not server_b.is_owner server_b.connect() assert server_a.is_running and server_a.is_owner assert server_b.is_running and not server_b.is_owner assert server_a.query_remote_nodes() == server_b.query_remote_nodes() assert server_a.client_id == 0 and server_b.client_id == 1 assert server_a.default_group.node_id == 1 and server_b.default_group.node_id == 2 group = supriya.Group() group.allocate(target_node=server_a) assert server_a.root_node[0][0] is group server_b.sync() assert server_b.root_node[0][0] is not group assert server_a.query_remote_nodes() == server_b.query_remote_nodes()
def test_01(server): outer_group = supriya.Group() inner_group = supriya.Group() synth_a = supriya.Synth() synth_b = supriya.Synth() synth_c = supriya.Synth() outer_group.extend([synth_a, inner_group, synth_c]) inner_group.append(synth_b) assert format(outer_group.__graph__(), "graphviz") == uqbar.strings.normalize(""" digraph G { graph [bgcolor=transparent, color=lightslategrey, dpi=72, fontname=Arial, outputorder=edgesfirst, overlap=prism, penwidth=2, rankdir=TB, ranksep=0.5, splines=spline, style="dotted, rounded"]; node [fontname=Arial, fontsize=12, penwidth=2, shape=Mrecord, style="filled, rounded"]; edge [penwidth=2]; group [fillcolor=lightsteelblue2, label="{ <f_0_0> Group | <f_0_1> id: 0 }"]; "synth-0" [fillcolor=lightgoldenrod2, label="{ <f_0_0> Synth | <f_0_1> id: 0-0 }"]; "group-1" [fillcolor=lightsteelblue2, label="{ <f_0_0> Group | <f_0_1> id: 0-1 }"]; "synth-1-0" [fillcolor=lightgoldenrod2, label="{ <f_0_0> Synth | <f_0_1> id: 0-1-0 }"]; "synth-2" [fillcolor=lightgoldenrod2, label="{ <f_0_0> Synth | <f_0_1> id: 0-2 }"]; group -> "synth-0"; group -> "group-1"; group -> "synth-2"; "group-1" -> "synth-1-0"; } """) outer_group.allocate() assert format(outer_group.__graph__(), "graphviz") == uqbar.strings.normalize(""" digraph G { graph [bgcolor=transparent, color=lightslategrey, dpi=72, fontname=Arial, outputorder=edgesfirst, overlap=prism, penwidth=2, rankdir=TB, ranksep=0.5, splines=spline, style="dotted, rounded"]; node [fontname=Arial, fontsize=12, penwidth=2, shape=Mrecord, style="filled, rounded"]; edge [penwidth=2]; "group-1000" [fillcolor=lightsteelblue2, label="{ <f_0_0> Group | <f_0_1> id: 1000 }"]; "synth-1001" [fillcolor=lightgoldenrod2, label="{ <f_0_0> Synth | <f_0_1> id: 1001 }"]; "group-1002" [fillcolor=lightsteelblue2, label="{ <f_0_0> Group | <f_0_1> id: 1002 }"]; "synth-1003" [fillcolor=lightgoldenrod2, label="{ <f_0_0> Synth | <f_0_1> id: 1003 }"]; "synth-1004" [fillcolor=lightgoldenrod2, label="{ <f_0_0> Synth | <f_0_1> id: 1004 }"]; "group-1000" -> "synth-1001"; "group-1000" -> "group-1002"; "group-1000" -> "synth-1004"; "group-1002" -> "synth-1003"; } """) outer_group.free() assert format(outer_group.__graph__(), "graphviz") == uqbar.strings.normalize(""" digraph G { graph [bgcolor=transparent, color=lightslategrey, dpi=72, fontname=Arial, outputorder=edgesfirst, overlap=prism, penwidth=2, rankdir=TB, ranksep=0.5, splines=spline, style="dotted, rounded"]; node [fontname=Arial, fontsize=12, penwidth=2, shape=Mrecord, style="filled, rounded"]; edge [penwidth=2]; group [fillcolor=lightsteelblue2, label="{ <f_0_0> Group | <f_0_1> id: 0 }"]; "synth-0" [fillcolor=lightgoldenrod2, label="{ <f_0_0> Synth | <f_0_1> id: 0-0 }"]; "group-1" [fillcolor=lightsteelblue2, label="{ <f_0_0> Group | <f_0_1> id: 0-1 }"]; "synth-1-0" [fillcolor=lightgoldenrod2, label="{ <f_0_0> Synth | <f_0_1> id: 0-1-0 }"]; "synth-2" [fillcolor=lightgoldenrod2, label="{ <f_0_0> Synth | <f_0_1> id: 0-2 }"]; group -> "synth-0"; group -> "group-1"; group -> "synth-2"; "group-1" -> "synth-1-0"; } """)