diff --git a/docs/notebooks/supercollider-symposium-2025/presentation.ipynb b/docs/notebooks/supercollider-symposium-2025/presentation.ipynb index 1536a2da7..08598f588 100644 --- a/docs/notebooks/supercollider-symposium-2025/presentation.ipynb +++ b/docs/notebooks/supercollider-symposium-2025/presentation.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "698deca6-8881-40c3-acb8-8f5aa975858a", "metadata": { "editable": true, @@ -11,15 +11,7 @@ }, "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Pretty printing has been turned OFF\n" - ] - } - ], + "outputs": [], "source": [ "%pprint\n", "%load_ext supriya.ext.ipython\n", @@ -119,7 +111,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "fa85883e-82dd-4d3e-a0d2-00dd56549f42", "metadata": { "editable": true, @@ -165,7 +157,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "id": "1038d0f1-69ea-483d-b4d5-3bfcfab19cc4", "metadata": { "editable": true, @@ -181,7 +173,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "id": "99456c5d-f398-4357-a14a-8900ce5f0eb2", "metadata": { "editable": true, @@ -274,7 +266,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "id": "c9febd96-3538-4aaa-a4c2-63d20236e757", "metadata": { "editable": true, @@ -283,18 +275,7 @@ }, "tags": [] }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "server.boot()" ] @@ -1097,44 +1078,10 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "32e3548e-d330-4729-8f94-76b3a1ba9f45", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Help on method add_buffer in module supriya.contexts.core:\n", - "\n", - "add_buffer(\n", - " *,\n", - " channel_count: Optional[int] = None,\n", - " channel_indices: Optional[List[int]] = None,\n", - " file_path: Optional[os.PathLike] = None,\n", - " frame_count: Optional[int] = None,\n", - " starting_frame: Optional[int] = None,\n", - " on_completion: Optional[Callable[[ForwardRef('Context')], NoneType]] = None\n", - ") -> supriya.contexts.entities.Buffer method of supriya.contexts.realtime.Server instance\n", - " Add a new buffer to the context.\n", - "\n", - " Emit ``/b_alloc``, ``/b_allocRead`` or ``/b_allocReadChannel`` requests\n", - " depending on parameters.\n", - "\n", - " :param channel_count: The channel count of the new buffer. Cannot be used when\n", - " reading from file paths.\n", - " :param channel_indices: The channels to read from a file when reading from a\n", - " file.\n", - " :param file_path: The (optional) file to read from.\n", - " :param frame_count: The frame count of the new buffer.\n", - " :param starting_frame: The frame to start reading from when reading from a file.\n", - " :param on_completion: A callable with the buffer's context as the only argument.\n", - " Permits building an \"on completion\" argument to this method's request\n", - " without an active moment.\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "# i can't remember this one, so let's ask for help\n", "help(server.add_buffer)" @@ -1142,7 +1089,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "id": "abb4da7b-b733-42d1-ab48-3bb188c35308", "metadata": {}, "outputs": [], @@ -1153,21 +1100,10 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "id": "9d27ebca-314a-4bba-a355-ecfeaee63ea0", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "BufferInfo(items=[BufferInfo.Item(buffer_id=0, frame_count=64, channel_count=1, sample_rate=44100.0)])" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# query the buffer\n", "buffer.query()" @@ -1186,7 +1122,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "id": "1c42d936-bf94-41fa-913e-62f4cf12374a", "metadata": {}, "outputs": [], @@ -1197,24 +1133,10 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "id": "03e5f650-f556-4640-af65-b1ffd5490d20", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{0: 0.266357421875,\n", - " 2: 0.25126951932907104,\n", - " 4: 0.2346191555261612,\n", - " 8: 0.19780273735523224}" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# get values at indices in the buffer\n", "buffer.get(0, 2, 4, 8)" @@ -1222,36 +1144,10 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "id": "292f8127-25bc-452b-a3a5-45508ff2967a", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(0.266357421875,\n", - " -0.016357421875,\n", - " 0.25126951932907104,\n", - " -0.01762695237994194,\n", - " 0.2346191555261612,\n", - " -0.01860351487994194,\n", - " 0.21669922769069672,\n", - " -0.01928711123764515,\n", - " 0.19780273735523224,\n", - " -0.01967773400247097,\n", - " 0.17822265625,\n", - " -0.019775390625,\n", - " 0.15825195610523224,\n", - " -0.01958007737994194,\n", - " 0.13818359375,\n", - " -0.01909179799258709)" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# get a range of values\n", "buffer.get_range(index=0, count=16)" @@ -1259,7 +1155,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": null, "id": "ee5b618c-6a4f-4b33-a674-0ac15d6aaac0", "metadata": {}, "outputs": [], @@ -1270,31 +1166,10 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": null, "id": "37d314a4-e499-4936-9b3f-6970ee72eae5", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "PosixPath('/Users/josephine/Library/Caches/supriya/2025-02-16T15-38-27-128279.png')" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# plot the buffer\n", "await plot(buffer)" @@ -1302,31 +1177,10 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": null, "id": "994dca33-d535-46f2-9985-e04fea5e8a4a", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "PosixPath('/Users/josephine/Library/Caches/supriya/2025-02-16T15-38-41-979872.png')" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# create a second buffer and generate differently\n", "other_buffer = server.add_buffer(frame_count=1024)\n", @@ -1336,31 +1190,10 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": null, "id": "04f5ec87-c4ce-4360-9c16-b56c8b224b86", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "PosixPath('/Users/josephine/Library/Caches/supriya/2025-02-16T15-38-54-451698.png')" - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# read a file into a buffer\n", "file_path = supriya.assets_path / \"audio/birds/birds-01.wav\"\n", @@ -1370,39 +1203,10 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": null, "id": "cd90391e-e9db-4c0d-ae4b-f9dca110b9b5", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - " " - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "(PosixPath('/Users/josephine/Library/Caches/supriya/audio-0c7c3ecda2db627616c356d1832925fd61bb4ab55870f54b5e3802f59a33608e.mp3'),\n", - " 0)" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# normally play() isn't async\n", "# but for fussy reasons related to jupyter itself being async,\n", @@ -1412,22 +1216,10 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": null, "id": "a30d1449-61e9-4847-b643-1abccbdc2828", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "BufferGroup(context=, id_=9, count=4)\n", - "Buffer(context=, id_=9, completion=None)\n", - "Buffer(context=, id_=10, completion=None)\n", - "Buffer(context=, id_=11, completion=None)\n", - "Buffer(context=, id_=12, completion=None)\n" - ] - } - ], + "outputs": [], "source": [ "# allocate a group of buffers, e.g.\n", "buffer_group = server.add_buffer_group(count=4, frame_count=512, channel_count=1)\n", @@ -1438,7 +1230,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": null, "id": "d0fd089e-8665-4a25-8da4-4f55bebee3a9", "metadata": {}, "outputs": [], @@ -1650,126 +1442,10 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": null, "id": "45d47e62-4ccf-4ec7-8171-5519a77d01ca", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['ABC',\n", - " 'AddAction',\n", - " 'AddActionLike',\n", - " 'AllocateBuffer',\n", - " 'AllocateReadBuffer',\n", - " 'AllocateReadBufferChannel',\n", - " 'AutoReassignSynthID',\n", - " 'ClearSchedule',\n", - " 'CloseBuffer',\n", - " 'CopyBuffer',\n", - " 'Dict',\n", - " 'DoNothing',\n", - " 'DumpOsc',\n", - " 'DumpTree',\n", - " 'FillBuffer',\n", - " 'FillControlBusRange',\n", - " 'FillNode',\n", - " 'FreeAllSynthDefs',\n", - " 'FreeBuffer',\n", - " 'FreeGroupChildren',\n", - " 'FreeGroupDeep',\n", - " 'FreeNode',\n", - " 'FreeSynthDef',\n", - " 'Future',\n", - " 'GenerateBuffer',\n", - " 'GetBuffer',\n", - " 'GetBufferRange',\n", - " 'GetControlBus',\n", - " 'GetControlBusRange',\n", - " 'GetSynthControl',\n", - " 'GetSynthControlRange',\n", - " 'HeaderFormat',\n", - " 'HeaderFormatLike',\n", - " 'List',\n", - " 'Literal',\n", - " 'LoadSynthDefDirectory',\n", - " 'LoadSynthDefs',\n", - " 'MapAudioBusRangeToNode',\n", - " 'MapAudioBusToNode',\n", - " 'MapControlBusRangeToNode',\n", - " 'MapControlBusToNode',\n", - " 'MoveNodeAfter',\n", - " 'MoveNodeBefore',\n", - " 'MoveNodeToGroupHead',\n", - " 'MoveNodeToGroupTail',\n", - " 'NewGroup',\n", - " 'NewParallelGroup',\n", - " 'NewSynth',\n", - " 'NormalizeBuffer',\n", - " 'Optional',\n", - " 'OrderNodes',\n", - " 'OscBundle',\n", - " 'OscMessage',\n", - " 'PathLike',\n", - " 'QueryBuffer',\n", - " 'QueryNode',\n", - " 'QueryStatus',\n", - " 'QueryTree',\n", - " 'QueryVersion',\n", - " 'Quit',\n", - " 'ReadBuffer',\n", - " 'ReadBufferChannel',\n", - " 'ReceiveSynthDefs',\n", - " 'ReleaseNode',\n", - " 'Request',\n", - " 'RequestBundle',\n", - " 'RequestName',\n", - " 'Requestable',\n", - " 'Response',\n", - " 'RunNode',\n", - " 'SampleFormat',\n", - " 'SampleFormatLike',\n", - " 'Sequence',\n", - " 'SetBuffer',\n", - " 'SetBufferRange',\n", - " 'SetControlBus',\n", - " 'SetControlBusRange',\n", - " 'SetNodeControl',\n", - " 'SetNodeControlRange',\n", - " 'SupportsInt',\n", - " 'SupportsOsc',\n", - " 'Sync',\n", - " 'SynthDef',\n", - " 'TYPE_CHECKING',\n", - " 'ToggleErrorReporting',\n", - " 'ToggleNotifications',\n", - " 'TraceNode',\n", - " 'Tuple',\n", - " 'Union',\n", - " 'WriteBuffer',\n", - " 'ZeroBuffer',\n", - " '__builtins__',\n", - " '__cached__',\n", - " '__doc__',\n", - " '__file__',\n", - " '__loader__',\n", - " '__name__',\n", - " '__package__',\n", - " '__spec__',\n", - " 'abstractmethod',\n", - " 'asyncio',\n", - " 'compile_synthdefs',\n", - " 'dataclasses',\n", - " 'logger',\n", - " 'logging',\n", - " 'new']" - ] - }, - "execution_count": 39, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "import supriya.contexts.requests\n", "\n", @@ -2432,17 +2108,17 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 1, "id": "4b66b483-bad4-4725-87aa-c6c6ff3cd826", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 17, + "execution_count": 1, "metadata": {}, "output_type": "execute_result" } @@ -2451,26 +2127,15 @@ "from supriya import Score, default, play\n", "\n", "score = Score()\n", - "score # TODO: repr doesn't make a lotta sense" + "score" ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "id": "766b9127-6c9c-4e34-a06c-bc601d0f22fd", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['__abstractmethods__', '__annotations__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__firstlineno__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__render__', '__repr__', '__setattr__', '__setstate__', '__sizeof__', '__static_attributes__', '__str__', '__subclasshook__', '__weakref__', '_abc_impl', '_add_request_with_completion', '_add_requests', '_allocate_id', '_apply_completions', '_audio_bus_allocator', '_boot_status', '_buffer_allocator', '_client_id', '_control_bus_allocator', '_free_id', '_get_allocator', '_get_moment', '_get_next_sync_id', '_get_request_context', '_latency', '_lock', '_name', '_node_id_allocator', '_options', '_pop_completion', '_pop_moment', '_push_completion', '_push_moment', '_requests', '_resolve_node', '_setup_allocators', '_sync_id', '_sync_id_maximum', '_sync_id_minimum', '_thread_local', '_validate_can_request', '_validate_moment_timestamp', 'add_buffer', 'add_buffer_group', 'add_bus', 'add_bus_group', 'add_group', 'add_synth', 'add_synthdefs', 'at', 'audio_input_bus_group', 'audio_output_bus_group', 'boot_status', 'clear_schedule', 'client_id', 'close_buffer', 'copy_buffer', 'default_group', 'do_nothing', 'fill_buffer', 'fill_bus_range', 'free_all_synthdefs', 'free_buffer', 'free_buffer_group', 'free_bus', 'free_bus_group', 'free_group_children', 'free_node', 'free_synthdefs', 'generate_buffer', 'iterate_datagrams', 'iterate_osc_bundles', 'iterate_request_bundles', 'latency', 'load_synthdefs', 'load_synthdefs_directory', 'map_node', 'move_node', 'name', 'normalize_buffer', 'options', 'order_nodes', 'pause_node', 'read_buffer', 'render', 'root_node', 'send', 'set_buffer', 'set_buffer_range', 'set_bus', 'set_bus_range', 'set_node', 'set_node_range', 'setup_system_synthdefs', 'unpause_node', 'write_buffer', 'zero_buffer']" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# inspect the score's namespace\n", "# note: no queries, only mutations\n", @@ -2479,7 +2144,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "24f49ba2-1ec7-43d1-9915-c6e5afeab220", "metadata": {}, "outputs": [], @@ -2504,28 +2169,10 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": null, "id": "a82eb2ca-16b7-4b0f-bf2b-a384bb483d75", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - " " - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# play the score (and capture into the notebook)\n", "_ = await play(score)" @@ -2533,21 +2180,10 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "id": "b29ffd11-d38c-4bdb-a055-a2b2e44d19bc", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(PosixPath('/Users/josephine/Library/Caches/supriya/score-b5e6166319aa99a4a61cb3ce6e5e79fda03de211129e3ea3043e3dfda894feb8.aiff'), 0)" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# render the score, returning the path and exit code\n", "await score.render()" @@ -2555,22 +2191,10 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "id": "86a441f9-e6d7-42ab-b6ff-ef1b1d2b8355", "metadata": {}, - "outputs": [ - { - "ename": "AttributeError", - "evalue": "'Score' object has no attribute 'query_tree'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[15], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m score\u001b[38;5;241m.\u001b[39mat(\u001b[38;5;241m0\u001b[39m):\n\u001b[0;32m----> 2\u001b[0m \u001b[43mscore\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mquery_tree\u001b[49m()\n", - "\u001b[0;31mAttributeError\u001b[0m: 'Score' object has no attribute 'query_tree'" - ] - } - ], + "outputs": [], "source": [ "# no queries, only mutations\n", "with score.at(0):\n", @@ -2579,7 +2203,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 3, "id": "1263ff3a-3314-4825-a943-1cfc0966363a", "metadata": {}, "outputs": [ @@ -2587,85 +2211,19 @@ "name": "stdout", "output_type": "stream", "text": [ - "OscBundle(\n", - " contents=(\n", - " OscMessage('/d_recv', b'SCgf\\x00\\x00\\x00\\x02\\x00\\x01\\x07default\\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=\\xcc\\xcc\\xcdC\\xdc\\x00\\x00?\\x80\\x00\\x00?\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x05\\tamplitude\\x00\\x00\\x00\\x00\\tfrequency\\x00\\x00\\x00\\x01\\x04gate\\x00\\x00\\x00\\x02\\x03pan\\x00\\x00\\x00\\x03\\x03out\\x00\\x00\\x00\\x04\\x00\\x00\\x00\\x14\\x07Control\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x04\\x00\\x00\\x01\\x01\\x01\\x01\\x06VarSaw\\x02\\x00\\x00\\x00\\x03\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\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\\x00\\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\\x07Control\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x01\\x00\\x04\\x00\\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\\x00\\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\\x00\\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\\x01\\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\\x02\\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\\x00\\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\\x00\\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\\x03\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x12\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x12\\x00\\x00\\x00\\x01\\x00\\x00'),\n", - " OscMessage('/s_new', 'default', 1000, 0, 0, 'frequency', 111.0),\n", - " ),\n", - " timestamp=0.0,\n", - ")\n", - "OscBundle(\n", - " contents=(\n", - " OscMessage('/s_new', 'default', 1001, 0, 0, 'frequency', 222.0),\n", - " ),\n", - " timestamp=0.25,\n", - ")\n", - "OscBundle(\n", - " contents=(\n", - " OscMessage('/s_new', 'default', 1002, 0, 0, 'frequency', 333.0),\n", - " ),\n", - " timestamp=0.5,\n", - ")\n", - "OscBundle(\n", - " contents=(\n", - " OscMessage('/s_new', 'default', 1003, 0, 0, 'frequency', 444.0),\n", - " ),\n", - " timestamp=0.75,\n", - ")\n", - "OscBundle(\n", - " contents=(\n", - " OscMessage('/s_new', 'default', 1004, 0, 0, 'frequency', 555.0),\n", - " ),\n", - " timestamp=1.0,\n", - ")\n", - "OscBundle(\n", - " contents=(\n", - " OscMessage('/s_new', 'default', 1005, 0, 0, 'frequency', 666.0),\n", - " ),\n", - " timestamp=1.25,\n", - ")\n", - "OscBundle(\n", - " contents=(\n", - " OscMessage('/s_new', 'default', 1006, 0, 0, 'frequency', 777.0),\n", - " ),\n", - " timestamp=1.5,\n", - ")\n", - "OscBundle(\n", - " contents=(\n", - " OscMessage('/s_new', 'default', 1007, 0, 0, 'frequency', 888.0),\n", - " ),\n", - " timestamp=1.75,\n", - ")\n", - "OscBundle(\n", - " contents=(\n", - " OscMessage('/s_new', 'default', 1008, 0, 0, 'frequency', 999.0),\n", - " ),\n", - " timestamp=2.0,\n", - ")\n", - "OscBundle(\n", - " contents=(\n", - " OscMessage('/s_new', 'default', 1009, 0, 0, 'frequency', 1110.0),\n", - " ),\n", - " timestamp=2.25,\n", - ")\n", - "OscBundle(\n", - " contents=(\n", - " OscMessage('/s_new', 'default', 1010, 0, 0, 'frequency', 1221.0),\n", - " ),\n", - " timestamp=2.5,\n", - ")\n", - "OscBundle(\n", - " contents=(\n", - " OscMessage('/s_new', 'default', 1011, 0, 0, 'frequency', 1332.0),\n", - " ),\n", - " timestamp=2.75,\n", - ")\n", - "OscBundle(\n", - " contents=(\n", - " OscMessage(0),\n", - " ),\n", - " timestamp=4.0,\n", - ")\n" + "OscBundle(timestamp=0.0, contents=[OscMessage('/d_recv', b'SCgf\\x00\\x00\\x00\\x02\\x00\\x01\\x07default\\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=\\xcc\\xcc\\xcdC\\xdc\\x00\\x00?\\x80\\x00\\x00?\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x05\\tamplitude\\x00\\x00\\x00\\x00\\tfrequency\\x00\\x00\\x00\\x01\\x04gate\\x00\\x00\\x00\\x02\\x03pan\\x00\\x00\\x00\\x03\\x03out\\x00\\x00\\x00\\x04\\x00\\x00\\x00\\x14\\x07Control\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x04\\x00\\x00\\x01\\x01\\x01\\x01\\x06VarSaw\\x02\\x00\\x00\\x00\\x03\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\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\\x00\\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\\x07Control\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x01\\x00\\x04\\x00\\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\\x00\\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\\x00\\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\\x01\\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\\x02\\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\\x00\\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\\x00\\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\\x03\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x12\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x12\\x00\\x00\\x00\\x01\\x00\\x00'), OscMessage('/s_new', 'default', 1000, 0, 0, 'frequency', 111.0)])\n", + "OscBundle(timestamp=0.25, contents=[OscMessage('/s_new', 'default', 1001, 0, 0, 'frequency', 222.0)])\n", + "OscBundle(timestamp=0.5, contents=[OscMessage('/s_new', 'default', 1002, 0, 0, 'frequency', 333.0)])\n", + "OscBundle(timestamp=0.75, contents=[OscMessage('/s_new', 'default', 1003, 0, 0, 'frequency', 444.0)])\n", + "OscBundle(timestamp=1.0, contents=[OscMessage('/s_new', 'default', 1004, 0, 0, 'frequency', 555.0)])\n", + "OscBundle(timestamp=1.25, contents=[OscMessage('/s_new', 'default', 1005, 0, 0, 'frequency', 666.0)])\n", + "OscBundle(timestamp=1.5, contents=[OscMessage('/s_new', 'default', 1006, 0, 0, 'frequency', 777.0)])\n", + "OscBundle(timestamp=1.75, contents=[OscMessage('/s_new', 'default', 1007, 0, 0, 'frequency', 888.0)])\n", + "OscBundle(timestamp=2.0, contents=[OscMessage('/s_new', 'default', 1008, 0, 0, 'frequency', 999.0)])\n", + "OscBundle(timestamp=2.25, contents=[OscMessage('/s_new', 'default', 1009, 0, 0, 'frequency', 1110.0)])\n", + "OscBundle(timestamp=2.5, contents=[OscMessage('/s_new', 'default', 1010, 0, 0, 'frequency', 1221.0)])\n", + "OscBundle(timestamp=2.75, contents=[OscMessage('/s_new', 'default', 1011, 0, 0, 'frequency', 1332.0)])\n", + "OscBundle(timestamp=4.0, contents=[OscMessage(0)])\n" ] } ], @@ -2677,30 +2235,10 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "d5d68806-1b50-49fe-ab6b-256fcd417ea0", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "RequestBundle(contents=[ReceiveSynthDefs(synthdefs=(,), on_completion=None), NewSynth(synthdef=, synth_id=1000, add_action=AddAction.ADD_TO_HEAD, target_node_id=0, controls={'frequency': 111.0})], timestamp=0.0)\n", - "RequestBundle(contents=[NewSynth(synthdef=, synth_id=1001, add_action=AddAction.ADD_TO_HEAD, target_node_id=0, controls={'frequency': 222.0})], timestamp=0.25)\n", - "RequestBundle(contents=[NewSynth(synthdef=, synth_id=1002, add_action=AddAction.ADD_TO_HEAD, target_node_id=0, controls={'frequency': 333.0})], timestamp=0.5)\n", - "RequestBundle(contents=[NewSynth(synthdef=, synth_id=1003, add_action=AddAction.ADD_TO_HEAD, target_node_id=0, controls={'frequency': 444.0})], timestamp=0.75)\n", - "RequestBundle(contents=[NewSynth(synthdef=, synth_id=1004, add_action=AddAction.ADD_TO_HEAD, target_node_id=0, controls={'frequency': 555.0})], timestamp=1.0)\n", - "RequestBundle(contents=[NewSynth(synthdef=, synth_id=1005, add_action=AddAction.ADD_TO_HEAD, target_node_id=0, controls={'frequency': 666.0})], timestamp=1.25)\n", - "RequestBundle(contents=[NewSynth(synthdef=, synth_id=1006, add_action=AddAction.ADD_TO_HEAD, target_node_id=0, controls={'frequency': 777.0})], timestamp=1.5)\n", - "RequestBundle(contents=[NewSynth(synthdef=, synth_id=1007, add_action=AddAction.ADD_TO_HEAD, target_node_id=0, controls={'frequency': 888.0})], timestamp=1.75)\n", - "RequestBundle(contents=[NewSynth(synthdef=, synth_id=1008, add_action=AddAction.ADD_TO_HEAD, target_node_id=0, controls={'frequency': 999.0})], timestamp=2.0)\n", - "RequestBundle(contents=[NewSynth(synthdef=, synth_id=1009, add_action=AddAction.ADD_TO_HEAD, target_node_id=0, controls={'frequency': 1110.0})], timestamp=2.25)\n", - "RequestBundle(contents=[NewSynth(synthdef=, synth_id=1010, add_action=AddAction.ADD_TO_HEAD, target_node_id=0, controls={'frequency': 1221.0})], timestamp=2.5)\n", - "RequestBundle(contents=[NewSynth(synthdef=, synth_id=1011, add_action=AddAction.ADD_TO_HEAD, target_node_id=0, controls={'frequency': 1332.0})], timestamp=2.75)\n", - "RequestBundle(contents=[DoNothing()], timestamp=4.0)\n" - ] - } - ], + "outputs": [], "source": [ "for bundle in score.iterate_request_bundles():\n", " print(bundle)"