hello_world_debugged¶
Hello, world!, debugged.
Let’s play a C-major chord! But this time, let’s also print out logs and
debugging information about the state of the server, the scsynth
process,
and the OSC messages sent by our client.
We’ll perform four kinds of debugging:
Turn on logging for the
scsynth
subprocess so we can see what it says when it boots up.Print the “status” of the server at various points so we can see CPU usage, actual sample rates, node counts, etc.
Print the “node tree”: the structure of the groups and synths in the server.
Capture and print OSC messages sent by Supriya to
scsynth
.
Invoke with:
josephine@laptop:~/supriya$ python -m examples.hello_world_debugged
INFO:supriya.scsynth:[127.0.0.1:57110/0x7f35bd8a4830] booting ...
INFO:supriya.scsynth:[127.0.0.1:57110/0x7f35bd8a4830] command: /usr/local/bin/scsynth -R 0 -l 1 -u 57110
INFO:supriya.scsynth:[127.0.0.1:57110/0x7f35bd8a4830] received: Cannot lock down 107341340 byte memory area (Cannot allocate memory)
INFO:supriya.scsynth:[127.0.0.1:57110/0x7f35bd8a4830] received: JackDriver: client name is 'SuperCollider'
INFO:supriya.scsynth:[127.0.0.1:57110/0x7f35bd8a4830] received: SC_AudioDriver: sample rate = 44100.000000, driver's block size = 1024
INFO:supriya.scsynth:[127.0.0.1:57110/0x7f35bd8a4830] received: SuperCollider 3 server ready.
INFO:supriya.scsynth:[127.0.0.1:57110/0x7f35bd8a4830] ... booted!
BEFORE PLAYING:
Status: StatusInfo(actual_sample_rate=44106.022607717845, average_cpu_usage=0.0312314722687006, group_count=2, peak_cpu_usage=0.1152452826499939, synth_count=0, synthdef_count=32, target_sample_rate=44100.0, ugen_count=0)
Tree: NODE TREE 0 group
Tree: 1 group
IMMEDIATELY AFTER PLAYING:
Status: StatusInfo(actual_sample_rate=44106.022607717845, average_cpu_usage=0.0312314722687006, group_count=2, peak_cpu_usage=0.1152452826499939, synth_count=0, synthdef_count=32, target_sample_rate=44100.0, ugen_count=0)
Transcript:
Sent: OscMessage('/d_recv', b'SCgf\x00\x00\x00\x02\x00\x01\x0fsupriya:default\x00\x00\x00\x0c\x00\x00\x00\x00>\x99\x99\x9a<#\xd7\n?333@\x00\x00\x00\xbe\xcc\xcc\xcd>\xcc\xcc\xcdEz\x00\x00E\x9c@\x00E\x1c@\x00EH\x00\x00?\x80\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00=\xcc\xcc\xcdC\xdc\x00\x00?\x80\x00\x00?\x00\x00\x00\x00\x00\x00\x05\x03out\x00\x00\x00\x00\tamplitude\x00\x00\x00\x01\tfrequency\x00\x00\x00\x02\x04gate\x00\x00\x00\x03\x03pan\x00\x00\x00\x04\x00\x00\x00\x14\x07Control\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07Control\x01\x00\x00\x00\x00\x00\x00\x00\x04\x00\x01\x01\x01\x01\x01\x06VarSaw\x02\x00\x00\x00\x03\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x01\x02\x05Linen\x01\x00\x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\xff\xff\xff\xff\x00\x00\x00\x02\xff\xff\xff\xff\x00\x00\x00\x03\xff\xff\xff\xff\x00\x00\x00\x01\xff\xff\xff\xff\x00\x00\x00\x04\x01\x04Rand\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\xff\xff\xff\xff\x00\x00\x00\x05\xff\xff\xff\xff\x00\x00\x00\x00\x00\x0cBinaryOpUGen\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x00\x01\x06VarSaw\x02\x00\x00\x00\x03\x00\x00\x00\x01\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x01\x02\x04Rand\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x06\x00\x0cBinaryOpUGen\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x00\x01\x06VarSaw\x02\x00\x00\x00\x03\x00\x00\x00\x01\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x01\x02\x04Sum3\x02\x00\x00\x00\x03\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\t\x00\x00\x00\x00\x02\x0cBinaryOpUGen\x02\x00\x00\x00\x02\x00\x00\x00\x01\x00\x02\x00\x00\x00\n\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x01\x02\x04Rand\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\xff\xff\xff\xff\x00\x00\x00\x07\xff\xff\xff\xff\x00\x00\x00\x08\x00\x04Rand\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\xff\xff\xff\xff\x00\x00\x00\t\xff\xff\xff\xff\x00\x00\x00\n\x00\x05XLine\x01\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\r\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x0b\xff\xff\xff\xff\x00\x00\x00\x00\x01\x03LPF\x02\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x00\x02\x0cBinaryOpUGen\x02\x00\x00\x00\x02\x00\x00\x00\x01\x00\x02\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x02\x0cBinaryOpUGen\x02\x00\x00\x00\x02\x00\x00\x00\x01\x00\x02\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x02\x04Pan2\x02\x00\x00\x00\x03\x00\x00\x00\x02\x00\x00\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x03\xff\xff\xff\xff\x00\x00\x00\x0b\x02\x02\tOffsetOut\x02\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x01\x00\x00', OscBundle(contents=[OscMessage('/s_new', 'supriya:default', 1000, 0, 1, 'frequency', 261.63), OscMessage('/s_new', 'supriya:default', 1001, 0, 1, 'frequency', 329.63), OscMessage('/s_new', 'supriya:default', 1002, 0, 1, 'frequency', 392.0)]))
Tree: NODE TREE 0 group
Tree: 1 group
PLAYING:
Status: StatusInfo(actual_sample_rate=44106.022607717845, average_cpu_usage=0.0312314722687006, group_count=2, peak_cpu_usage=0.1152452826499939, synth_count=0, synthdef_count=32, target_sample_rate=44100.0, ugen_count=0)
Transcript:
Sent: OscMessage('/sync', 1)
Received: OscMessage('/n_go', 1000, 1, -1, -1, 0)
Received: OscMessage('/n_go', 1001, 1, -1, 1000, 0)
Received: OscMessage('/n_go', 1002, 1, -1, 1001, 0)
Received: OscMessage('/done', '/d_recv')
Received: OscMessage('/synced', 1)
Tree: NODE TREE 0 group
Tree: 1 group
Tree: 1002 supriya:default
Tree: out: 0.0, amplitude: 0.1, frequency: 392.0, gate: 1.0, pan: 0.5
Tree: 1001 supriya:default
Tree: out: 0.0, amplitude: 0.1, frequency: 329.630005, gate: 1.0, pan: 0.5
Tree: 1000 supriya:default
Tree: out: 0.0, amplitude: 0.1, frequency: 261.630005, gate: 1.0, pan: 0.5
JUST BEFORE STOPPING:
Status: StatusInfo(actual_sample_rate=44105.22998562333, average_cpu_usage=0.4361172318458557, group_count=2, peak_cpu_usage=0.445691853761673, synth_count=3, synthdef_count=33, target_sample_rate=44100.0, ugen_count=60)
Tree: NODE TREE 0 group
Tree: 1 group
Tree: 1002 supriya:default
Tree: out: 0.0, amplitude: 0.1, frequency: 392.0, gate: 1.0, pan: 0.5
Tree: 1001 supriya:default
Tree: out: 0.0, amplitude: 0.1, frequency: 329.630005, gate: 1.0, pan: 0.5
Tree: 1000 supriya:default
Tree: out: 0.0, amplitude: 0.1, frequency: 261.630005, gate: 1.0, pan: 0.5
IMMEDIATELY AFTER STOPPING:
Status: StatusInfo(actual_sample_rate=44105.22998562333, average_cpu_usage=0.4361172318458557, group_count=2, peak_cpu_usage=0.445691853761673, synth_count=3, synthdef_count=33, target_sample_rate=44100.0, ugen_count=60)
Transcript:
Sent: OscBundle(contents=[OscMessage('/n_set', 1000, 'gate', 0.0), OscMessage('/n_set', 1001, 'gate', 0.0), OscMessage('/n_set', 1002, 'gate', 0.0)])
Tree: NODE TREE 0 group
Tree: 1 group
Tree: 1002 supriya:default
Tree: out: 0.0, amplitude: 0.1, frequency: 392.0, gate: 0.0, pan: 0.5
Tree: 1001 supriya:default
Tree: out: 0.0, amplitude: 0.1, frequency: 329.630005, gate: 0.0, pan: 0.5
Tree: 1000 supriya:default
Tree: out: 0.0, amplitude: 0.1, frequency: 261.630005, gate: 0.0, pan: 0.5
AFTER RELEASING:
Status: StatusInfo(actual_sample_rate=44105.00352740025, average_cpu_usage=0.46997976303100586, group_count=2, peak_cpu_usage=0.4775012731552124, synth_count=0, synthdef_count=33, target_sample_rate=44100.0, ugen_count=0)
Transcript:
Received: OscMessage('/n_end', 1002, 1, -1, 1001, 0)
Received: OscMessage('/n_end', 1001, 1, -1, 1000, 0)
Received: OscMessage('/n_end', 1000, 1, -1, -1, 0)
Tree: NODE TREE 0 group
Tree: 1 group
INFO:supriya.scsynth:[127.0.0.1:57110/0x7f35bd8a4830] quitting ...
INFO:supriya.scsynth:[127.0.0.1:57110/0x7f35bd8a4830] ... quit!
INFO:supriya.scsynth:[127.0.0.1:57110/0x7f35bd8a4830] quitting ...
INFO:supriya.scsynth:[127.0.0.1:57110/0x7f35bd8a4830] ... already quit!
See the example documentation for a complete explanation.