class TestCase(TestCase): pattern = patterntools.Ppar([ patterntools.Pmono( amplitude=1.0, duration=1.0, frequency=patterntools.Pseq([440, 660, 880, 990], 1), ), patterntools.Pbind( amplitude=1.0, duration=0.75, frequency=patterntools.Pseq([222, 333, 444, 555], 1), ), ]) def test_manual_incommunicado(self): lists, deltas = self.manual_incommunicado(self.pattern, 10) assert lists == [ [10, [ ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1000, 0, 1, 'amplitude', 1.0, 'frequency', 440], ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1001, 0, 1, 'amplitude', 1.0, 'frequency', 222]]], [10.75, [ ['/n_set', 1001, 'gate', 0], ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1002, 0, 1, 'amplitude', 1.0, 'frequency', 333]]], [11.0, [['/n_set', 1000, 'amplitude', 1.0, 'frequency', 660]]], [11.5, [ ['/n_set', 1002, 'gate', 0], ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1003, 0, 1, 'amplitude', 1.0, 'frequency', 444]]], [12.0, [['/n_set', 1000, 'amplitude', 1.0, 'frequency', 880]]], [12.25, [ ['/n_set', 1003, 'gate', 0], ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1004, 0, 1, 'amplitude', 1.0, 'frequency', 555]]], [13.0, [ ['/n_set', 1004, 'gate', 0], ['/n_set', 1000, 'amplitude', 1.0, 'frequency', 990]]], [14.0, [['/n_set', 1000, 'gate', 0]]]] assert deltas == [0.75, 0.25, 0.5, 0.5, 0.25, 0.75, 1.0, None] def test_manual_communicado(self): player = patterntools.RealtimeEventPlayer( self.pattern, server=self.server, ) # Initial State server_state = str(self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group ''') # Step 1 player(0, 0) self.server.sync() server_state = str(self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group 1001 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 222.0, gate: 1.0, pan: 0.5 1000 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 440.0, gate: 1.0, pan: 0.5 ''') # Step 2 player(0, 0) self.server.sync() server_state = str(self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group 1002 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 333.0, gate: 1.0, pan: 0.5 1001 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 222.0, gate: 0.0, pan: 0.5 1000 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 440.0, gate: 1.0, pan: 0.5 ''') # Wait for termination time.sleep(0.5) server_state = str(self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group 1002 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 333.0, gate: 1.0, pan: 0.5 1000 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 440.0, gate: 1.0, pan: 0.5 ''') # Step 3 player(0, 0) self.server.sync() server_state = str(self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group 1002 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 333.0, gate: 1.0, pan: 0.5 1000 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 660.0, gate: 1.0, pan: 0.5 ''') # Step 4 player(0, 0) self.server.sync() server_state = str(self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group 1003 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 444.0, gate: 1.0, pan: 0.5 1002 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 333.0, gate: 0.0, pan: 0.5 1000 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 660.0, gate: 1.0, pan: 0.5 ''') # Wait for termination time.sleep(0.5) server_state = str(self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group 1003 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 444.0, gate: 1.0, pan: 0.5 1000 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 660.0, gate: 1.0, pan: 0.5 ''') # Step 5 player(0, 0) self.server.sync() server_state = str(self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group 1003 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 444.0, gate: 1.0, pan: 0.5 1000 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 880.0, gate: 1.0, pan: 0.5 ''') # Step 6 player(0, 0) self.server.sync() server_state = str(self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group 1004 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 555.0, gate: 1.0, pan: 0.5 1003 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 444.0, gate: 0.0, pan: 0.5 1000 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 880.0, gate: 1.0, pan: 0.5 ''') # Wait for termination time.sleep(0.5) server_state = str(self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group 1004 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 555.0, gate: 1.0, pan: 0.5 1000 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 880.0, gate: 1.0, pan: 0.5 ''') # Step 7 player(0, 0) self.server.sync() server_state = str(self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group 1004 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 555.0, gate: 0.0, pan: 0.5 1000 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 990.0, gate: 1.0, pan: 0.5 ''') # Wait for termination time.sleep(0.5) server_state = str(self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group 1000 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 990.0, gate: 1.0, pan: 0.5 ''') # Step 8 player(0, 0) self.server.sync() server_state = str(self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group 1000 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 990.0, gate: 0.0, pan: 0.5 ''') # Wait for termination time.sleep(0.5) server_state = str(self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group ''') def test_automatic_communicado(self): self.pattern.play(server=self.server) time.sleep(4) def test_nonrealtime(self): session = nonrealtimetools.Session() with session.at(10): self.pattern.inscribe(session) assert session.to_lists() == [ [10.0, [ ['/d_recv', bytearray(synthdefs.default.compile())], ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1000, 0, 0, 'amplitude', 1.0, 'frequency', 440], ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1001, 0, 0, 'amplitude', 1.0, 'frequency', 222]]], [10.75, [ ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1002, 0, 0, 'amplitude', 1.0, 'frequency', 333], ['/n_set', 1001, 'gate', 0]]], [11.0, [ ['/n_set', 1000, 'amplitude', 1.0, 'frequency', 660]]], [11.5, [ ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1003, 0, 0, 'amplitude', 1.0, 'frequency', 444], ['/n_set', 1002, 'gate', 0]]], [12.0, [ ['/n_set', 1000, 'amplitude', 1.0, 'frequency', 880]]], [12.25, [ ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1004, 0, 0, 'amplitude', 1.0, 'frequency', 555], ['/n_set', 1003, 'gate', 0]]], [13.0, [ ['/n_set', 1000, 'amplitude', 1.0, 'frequency', 990], ['/n_set', 1004, 'gate', 0]]], [14.0, [ ['/n_set', 1000, 'gate', 0], [0]]]]
class TestCase(TestCase): pattern = patterntools.Pgpar([ patterntools.Pmono( amplitude=1.0, duration=1.0, frequency=patterntools.Pseq([440, 660, 880, 990], 1), ), patterntools.Pbind( amplitude=1.0, duration=0.75, frequency=patterntools.Pseq([222, 333, 444, 555], 1), ), ]) def test_manual_incommunicado(self): lists, deltas = self.manual_incommunicado(self.pattern, 10) assert lists == [ [ 10, [['/g_new', 1000, 1, 1], ['/g_new', 1001, 1, 1], [ '/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1002, 0, 1000, 'amplitude', 1.0, 'frequency', 440 ], [ '/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1003, 0, 1001, 'amplitude', 1.0, 'frequency', 222 ]] ], [ 10.75, [['/n_set', 1003, 'gate', 0], [ '/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1004, 0, 1001, 'amplitude', 1.0, 'frequency', 333 ]] ], [11.0, [['/n_set', 1002, 'amplitude', 1.0, 'frequency', 660]]], [ 11.5, [['/n_set', 1004, 'gate', 0], [ '/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1005, 0, 1001, 'amplitude', 1.0, 'frequency', 444 ]] ], [12.0, [['/n_set', 1002, 'amplitude', 1.0, 'frequency', 880]]], [ 12.25, [['/n_set', 1005, 'gate', 0], [ '/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1006, 0, 1001, 'amplitude', 1.0, 'frequency', 555 ]] ], [ 13.0, [['/n_set', 1006, 'gate', 0], ['/n_set', 1002, 'amplitude', 1.0, 'frequency', 990]] ], [14.0, [['/n_set', 1002, 'gate', 0]]], [14.25, [['/n_free', 1000, 1001]]] ] assert deltas == [0.75, 0.25, 0.5, 0.5, 0.25, 0.75, 1.0, 0.25, None] def test_nonrealtime(self): session = nonrealtimetools.Session() with session.at(10): self.pattern.inscribe(session) assert session.to_lists() == [ [ 10.0, [['/d_recv', bytearray(synthdefs.default.compile())], ['/g_new', 1000, 1, 0], ['/g_new', 1001, 1, 0], [ '/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1002, 0, 1000, 'amplitude', 1.0, 'frequency', 440 ], [ '/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1003, 0, 1001, 'amplitude', 1.0, 'frequency', 222 ]] ], [ 10.75, [[ '/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1004, 0, 1001, 'amplitude', 1.0, 'frequency', 333 ], ['/n_set', 1003, 'gate', 0]] ], [11.0, [['/n_set', 1002, 'amplitude', 1.0, 'frequency', 660]]], [ 11.5, [[ '/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1005, 0, 1001, 'amplitude', 1.0, 'frequency', 444 ], ['/n_set', 1004, 'gate', 0]] ], [12.0, [['/n_set', 1002, 'amplitude', 1.0, 'frequency', 880]]], [ 12.25, [[ '/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1006, 0, 1001, 'amplitude', 1.0, 'frequency', 555 ], ['/n_set', 1005, 'gate', 0]] ], [ 13.0, [['/n_set', 1002, 'amplitude', 1.0, 'frequency', 990], ['/n_set', 1006, 'gate', 0]] ], [14.0, [['/n_set', 1002, 'gate', 0]]], [14.25, [['/n_free', 1000, 1001], [0]]] ]
class TestCase(TestCase): pattern = patterntools.Pgpar([ patterntools.Pmono( amplitude=1.0, duration=1.0, frequency=patterntools.Pseq([440, 660, 880, 990], 1), ), patterntools.Pbind( amplitude=1.0, duration=0.75, frequency=patterntools.Pseq([222, 333, 444, 555], 1), ), ]) def test_manual_incommunicado(self): lists, deltas = self.manual_incommunicado(self.pattern, 10) assert lists == [ [10, [ ['/g_new', 1000, 1, 1], ['/g_new', 1001, 1, 1], ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1002, 0, 1000, 'amplitude', 1.0, 'frequency', 440], ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1003, 0, 1001, 'amplitude', 1.0, 'frequency', 222]]], [10.75, [ ['/n_set', 1003, 'gate', 0], ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1004, 0, 1001, 'amplitude', 1.0, 'frequency', 333]]], [11.0, [['/n_set', 1002, 'amplitude', 1.0, 'frequency', 660]]], [11.5, [ ['/n_set', 1004, 'gate', 0], ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1005, 0, 1001, 'amplitude', 1.0, 'frequency', 444]]], [12.0, [['/n_set', 1002, 'amplitude', 1.0, 'frequency', 880]]], [12.25, [ ['/n_set', 1005, 'gate', 0], ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1006, 0, 1001, 'amplitude', 1.0, 'frequency', 555]]], [13.0, [ ['/n_set', 1006, 'gate', 0], ['/n_set', 1002, 'amplitude', 1.0, 'frequency', 990]]], [14.0, [['/n_set', 1002, 'gate', 0]]], [14.25, [['/n_free', 1000, 1001]]]] assert deltas == [0.75, 0.25, 0.5, 0.5, 0.25, 0.75, 1.0, 0.25, None] def test_nonrealtime(self): session = nonrealtimetools.Session() with session.at(10): self.pattern.inscribe(session) assert session.to_lists() == [ [10.0, [ ['/d_recv', bytearray(synthdefs.default.compile())], ['/g_new', 1000, 1, 0], ['/g_new', 1001, 1, 0], ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1002, 0, 1000, 'amplitude', 1.0, 'frequency', 440], ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1003, 0, 1001, 'amplitude', 1.0, 'frequency', 222]]], [10.75, [ ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1004, 0, 1001, 'amplitude', 1.0, 'frequency', 333], ['/n_set', 1003, 'gate', 0]]], [11.0, [['/n_set', 1002, 'amplitude', 1.0, 'frequency', 660]]], [11.5, [ ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1005, 0, 1001, 'amplitude', 1.0, 'frequency', 444], ['/n_set', 1004, 'gate', 0]]], [12.0, [['/n_set', 1002, 'amplitude', 1.0, 'frequency', 880]]], [12.25, [ ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1006, 0, 1001, 'amplitude', 1.0, 'frequency', 555], ['/n_set', 1005, 'gate', 0]]], [13.0, [ ['/n_set', 1002, 'amplitude', 1.0, 'frequency', 990], ['/n_set', 1006, 'gate', 0]]], [14.0, [['/n_set', 1002, 'gate', 0]]], [14.25, [['/n_free', 1000, 1001], [0]]]] def test_send_01(self): events, iterator = [], iter(self.pattern) for _ in range(3): events.append(next(iterator)) iterator.send(True) events.extend(iterator) assert [ (type(x).__name__, x.get('is_stop') or False) for x in events] == [ ('GroupEvent', False), ('GroupEvent', False), ('NoteEvent', False), ('GroupEvent', True), ('GroupEvent', True), ] def test_send_02(self): events, iterator = [], iter(self.pattern) for _ in range(2): events.append(next(iterator)) iterator.send(True) events.extend(iterator) assert [ (type(x).__name__, x.get('is_stop') or False) for x in events] == [ ('GroupEvent', False), ('GroupEvent', False), ('GroupEvent', True), ('GroupEvent', True), ] def test_send_03(self): events, iterator = [], iter(self.pattern) for _ in range(1): events.append(next(iterator)) iterator.send(True) events.extend(iterator) assert [ (type(x).__name__, x.get('is_stop') or False) for x in events] == [ ('GroupEvent', False), ('GroupEvent', True), ]
class TestCase(TestCase): pmono_01 = patterntools.Pmono( amplitude=1.0, duration=patterntools.Pseq([1.0, 2.0, 3.0], 1), frequency=patterntools.Pseq([440, 660, 880], 1), ) pmono_02 = patterntools.Pmono( amplitude=1.0, duration=patterntools.Pseq([1.0, 2.0, 3.0], 1), frequency=patterntools.Pseq([[440, 550], [550, 660], [660, 770]]), ) def test_manual_incommunicado_pmono_01(self): lists, deltas = self.manual_incommunicado(self.pmono_01) assert lists == [[ 10, [[ '/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1000, 0, 1, 'amplitude', 1.0, 'frequency', 440 ]] ], [11.0, [['/n_set', 1000, 'amplitude', 1.0, 'frequency', 660]] ], [13.0, [['/n_set', 1000, 'amplitude', 1.0, 'frequency', 880]]], [16.0, [['/n_set', 1000, 'gate', 0]]]] assert deltas == [1.0, 2.0, 3.0, None] def test_manual_communicado_pmono_01(self): player = patterntools.RealtimeEventPlayer( self.pmono_01, server=self.server, ) # Initial State server_state = str( self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group ''') # Step 1 player(0, 0) self.server.sync() server_state = str( self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group 1000 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 440.0, gate: 1.0, pan: 0.5 ''') # Step 2 player(0, 0) self.server.sync() server_state = str( self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group 1000 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 660.0, gate: 1.0, pan: 0.5 ''') # Step 3 player(0, 0) self.server.sync() server_state = str( self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group 1000 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 880.0, gate: 1.0, pan: 0.5 ''') # Step 4 player(0, 0) self.server.sync() server_state = str( self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group 1000 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 880.0, gate: 0.0, pan: 0.5 ''') # Wait for termination time.sleep(0.5) server_state = str( self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group ''') def test_automatic_communicado_pmono_01(self): self.pmono_01.play(server=self.server) time.sleep(1) def test_manual_incommunicado_pmono_02(self): lists, deltas = self.manual_incommunicado(self.pmono_02) assert lists == [ [ 10, [[ '/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1000, 0, 1, 'amplitude', 1.0, 'frequency', 440 ], [ '/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1001, 0, 1, 'amplitude', 1.0, 'frequency', 550 ]] ], [ 11.0, [['/n_set', 1000, 'amplitude', 1.0, 'frequency', 550], ['/n_set', 1001, 'amplitude', 1.0, 'frequency', 660]] ], [ 13.0, [['/n_set', 1000, 'amplitude', 1.0, 'frequency', 660], ['/n_set', 1001, 'amplitude', 1.0, 'frequency', 770]] ], [16.0, [['/n_set', 1000, 'gate', 0], ['/n_set', 1001, 'gate', 0]]] ] assert deltas == [1.0, 2.0, 3.0, None] def test_manual_communicado_pmono_02(self): player = patterntools.RealtimeEventPlayer( self.pmono_02, server=self.server, ) # Initial State server_state = str( self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group ''') # Step 1 player(0, 0) self.server.sync() server_state = str( self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group 1001 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 550.0, gate: 1.0, pan: 0.5 1000 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 440.0, gate: 1.0, pan: 0.5 ''') # Step 2 player(0, 0) self.server.sync() server_state = str( self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group 1001 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 660.0, gate: 1.0, pan: 0.5 1000 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 550.0, gate: 1.0, pan: 0.5 ''') # Step 3 player(0, 0) self.server.sync() server_state = str( self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group 1001 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 770.0, gate: 1.0, pan: 0.5 1000 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 660.0, gate: 1.0, pan: 0.5 ''') # Step 4 player(0, 0) self.server.sync() server_state = str( self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group 1001 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 770.0, gate: 0.0, pan: 0.5 1000 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 660.0, gate: 0.0, pan: 0.5 ''') # Wait for termination time.sleep(0.5) server_state = str( self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group ''') def test_automatic_communicado_pmono_02(self): self.pmono_02.play(server=self.server) time.sleep(1) def test_nonrealtime_01(self): session = nonrealtimetools.Session() with session.at(10): self.pmono_01.inscribe(session) assert session.to_lists() == [ [ 10.0, [['/d_recv', bytearray(synthdefs.default.compile())], [ '/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1000, 0, 0, 'amplitude', 1.0, 'frequency', 440 ]] ], [11.0, [['/n_set', 1000, 'amplitude', 1.0, 'frequency', 660]]], [13.0, [['/n_set', 1000, 'amplitude', 1.0, 'frequency', 880]]], [16.0, [['/n_set', 1000, 'gate', 0], [0]]], ] def test_nonrealtime_02(self): session = nonrealtimetools.Session() with session.at(0): self.pmono_02.inscribe(session) assert session.to_lists() == [ [ 0.0, [['/d_recv', bytearray(synthdefs.default.compile())], [ '/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1000, 0, 0, 'amplitude', 1.0, 'frequency', 440 ], [ '/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1001, 0, 0, 'amplitude', 1.0, 'frequency', 550 ]] ], [ 1.0, [['/n_set', 1001, 'amplitude', 1.0, 'frequency', 660], ['/n_set', 1000, 'amplitude', 1.0, 'frequency', 550]] ], [ 3.0, [['/n_set', 1001, 'amplitude', 1.0, 'frequency', 770], ['/n_set', 1000, 'amplitude', 1.0, 'frequency', 660]] ], [ 6.0, [['/n_set', 1000, 'gate', 0], ['/n_set', 1001, 'gate', 0], [0]] ], ] def test_manual_stop_pmono_01(self): # Initial State server_state = str( self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group ''') player = self.pmono_01.play(server=self.server) time.sleep(2) server_state = str( self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group 1000 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 660.0, gate: 1.0, pan: 0.5 ''') player.stop() self.server.sync() server_state = str( self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group ''') # assert server_state == self.normalize(r''' # NODE TREE 0 group # 1 group # 1000 da0982184cc8fa54cf9d288a0fe1f6ca # out: 0.0, amplitude: 1.0, frequency: 660.0, gate: 0.0, pan: 0.5 # ''') # Wait for termination time.sleep(0.5) server_state = str( self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group ''') def test_manual_stop_pmono_02(self): # Initial State server_state = str( self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group ''') player = self.pmono_02.play(server=self.server) time.sleep(2) server_state = str( self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group 1001 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 660.0, gate: 1.0, pan: 0.5 1000 da0982184cc8fa54cf9d288a0fe1f6ca out: 0.0, amplitude: 1.0, frequency: 550.0, gate: 1.0, pan: 0.5 ''') player.stop() self.server.sync() server_state = str( self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group ''') # assert server_state == self.normalize(r''' # NODE TREE 0 group # 1 group # 1001 da0982184cc8fa54cf9d288a0fe1f6ca # out: 0.0, amplitude: 1.0, frequency: 660.0, gate: 0.0, pan: 0.5 # 1000 da0982184cc8fa54cf9d288a0fe1f6ca # out: 0.0, amplitude: 1.0, frequency: 550.0, gate: 0.0, pan: 0.5 # ''') # Wait for termination time.sleep(0.5) server_state = str( self.server.query_remote_nodes(include_controls=True)) assert server_state == self.normalize(r''' NODE TREE 0 group 1 group ''')
class TestCase(TestCase): pattern = patterntools.Pbus( patterntools.Pgpar([ patterntools.Pmono( amplitude=1.0, duration=1.0, frequency=patterntools.Pseq([440, 660, 880, 990], 1), ), patterntools.Pbind( amplitude=1.0, duration=0.75, frequency=patterntools.Pseq([222, 333, 444, 555], 1), ), ]), ) def test_manual_incommunicado(self): lists, deltas = self.manual_incommunicado(self.pattern, 10) assert lists == [ [10, [ ['/g_new', 1000, 0, 1], ['/s_new', '454b69a7c505ddecc5b39762d291a5ec', 1001, 3, 1000, 'in_', 0], ['/g_new', 1002, 1, 1000], ['/g_new', 1003, 1, 1000], ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1004, 0, 1002, 'amplitude', 1.0, 'frequency', 440, 'out', 0], ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1005, 0, 1003, 'amplitude', 1.0, 'frequency', 222, 'out', 0]]], [10.75, [ ['/n_set', 1005, 'gate', 0], ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1006, 0, 1003, 'amplitude', 1.0, 'frequency', 333, 'out', 0]]], [11.0, [['/n_set', 1004, 'amplitude', 1.0, 'frequency', 660, 'out', 0]]], [11.5, [ ['/n_set', 1006, 'gate', 0], ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1007, 0, 1003, 'amplitude', 1.0, 'frequency', 444, 'out', 0]]], [12.0, [['/n_set', 1004, 'amplitude', 1.0, 'frequency', 880, 'out', 0]]], [12.25, [ ['/n_set', 1007, 'gate', 0], ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1008, 0, 1003, 'amplitude', 1.0, 'frequency', 555, 'out', 0]]], [13.0, [ ['/n_set', 1008, 'gate', 0], ['/n_set', 1004, 'amplitude', 1.0, 'frequency', 990, 'out', 0]]], [14.0, [['/n_set', 1004, 'gate', 0]]], [14.25, [['/n_free', 1002, 1003]]], [14.5, [['/n_free', 1000, 1001]]]] assert deltas == [0.75, 0.25, 0.5, 0.5, 0.25, 0.75, 1.0, 0.25, 0.25, None] def test_nonrealtime(self): session = nonrealtimetools.Session() with session.at(10): self.pattern.inscribe(session) assert session.to_lists() == [ [10.0, [ ['/d_recv', bytearray( synthdeftools.SynthDefCompiler.compile_synthdefs([ synthdefs.system_link_audio_2, synthdefs.default, ]))], ['/g_new', 1000, 0, 0], ['/s_new', '454b69a7c505ddecc5b39762d291a5ec', 1001, 3, 1000, 'in_', 16], ['/g_new', 1002, 1, 1000], ['/g_new', 1003, 1, 1000], ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1004, 0, 1002, 'amplitude', 1.0, 'frequency', 440, 'out', 16], ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1005, 0, 1003, 'amplitude', 1.0, 'frequency', 222, 'out', 16]]], [10.75, [ ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1006, 0, 1003, 'amplitude', 1.0, 'frequency', 333, 'out', 16], ['/n_set', 1005, 'gate', 0]]], [11.0, [ ['/n_set', 1004, 'amplitude', 1.0, 'frequency', 660, 'out', 16]]], [11.5, [ ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1007, 0, 1003, 'amplitude', 1.0, 'frequency', 444, 'out', 16], ['/n_set', 1006, 'gate', 0]]], [12.0, [ ['/n_set', 1004, 'amplitude', 1.0, 'frequency', 880, 'out', 16]]], [12.25, [ ['/s_new', 'da0982184cc8fa54cf9d288a0fe1f6ca', 1008, 0, 1003, 'amplitude', 1.0, 'frequency', 555, 'out', 16], ['/n_set', 1007, 'gate', 0]]], [13.0, [ ['/n_set', 1004, 'amplitude', 1.0, 'frequency', 990, 'out', 16], ['/n_set', 1008, 'gate', 0]]], [14.0, [ ['/n_set', 1004, 'gate', 0]]], [14.25, [ ['/n_free', 1002, 1003]]], [14.5, [ ['/n_free', 1000], ['/n_set', 1001, 'gate', 0], [0]]]]