A Python API for SuperCollider
Project description
Supriya
Supriya is a Python API for SuperCollider.
Supriya lets you:
-
Boot and communicate with SuperCollider's
scsynth
synthesis engine: servers in realtime. -
Compile SuperCollider SynthDefs natively in Python code
-
Explore nonrealtime composition with scores.
-
Build time-agnostic asyncio-aware applications with the context interface.
-
Schedule patterns and callbacks with tempo- and meter-aware clocks
Quickstart
1. Get Supriya
Install from PyPI:
pip install supriya
Or from source:
git clone https://github.com/josiah-wolf-oberholtzer/supriya.git
cd supriya
pip install -e .
2. Get SuperCollider
Get SuperCollider from http://supercollider.github.io/.
3. Boot the server
Start your Python interpreter and import Supriya:
>>> import supriya
Boot the SuperCollider server:
>>> server = supriya.Server().boot()
4. Build a SynthDef
Import some classes:
>>> from supriya.ugens import EnvGen, Out, SinOsc
>>> from supriya.synthdefs import Envelope, synthdef
Make a synthesizer definition:
>>> @synthdef()
... def simple_sine(frequency=440, amplitude=0.1, gate=1):
... sine = SinOsc.ar(frequency=frequency) * amplitude
... envelope = EnvGen.kr(envelope=Envelope.adsr(), gate=gate, done_action=2)
... Out.ar(bus=0, source=[sine * envelope] * 2)
...
Visualize the SynthDef (requires Graphviz):
>>> supriya.graph(simple_sine)
Allocate it on the server:
>>> _ = server.add_synthdefs(simple_sine)
5. Create some nodes
Create and allocate a group:
>>> group = server.add_group()
Create some synthesizers with the previously defined synthesizer definition, and allocate them on the server as a child of the previously created group:
>>> for i in range(3):
... _ = group.add_synth(simple_sine, frequency=111 * (i + 1))
...
Query the server's node tree:
>>> print(server.query_tree())
NODE TREE 0 group
1 group
1000 group
1003 simple_sine
amplitude: 0.1, frequency: 333.0, gate: 1.0
1002 simple_sine
amplitude: 0.1, frequency: 222.0, gate: 1.0
1001 simple_sine
amplitude: 0.1, frequency: 111.0, gate: 1.0
6. Release and quit
Release the synths:
>>> for synth in group.children[:]:
... synth.free()
...
Quit the server:
>>> server.quit()
License
This library is made available under the terms of the MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for supriya-23.5b1-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 07d3b183a7cb3fad13350c4fbb8649d93081327b7e0e4b7f019744545acf6ed8 |
|
MD5 | 19387ab4582699de350910146f86b70e |
|
BLAKE2b-256 | 7a13120991ce84fc0a1b93fed1acf79d0b1ade614bda4b2880ecc6d245dbb7ff |
Hashes for supriya-23.5b1-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15b4590288167f9164f875595e93a9a97460f7e0d02f81a856ca0d712cef2e07 |
|
MD5 | f5a13671e6a81c7db70eef3b60784219 |
|
BLAKE2b-256 | d9ad41d07e0b4cb5e19766c2aba9e0fe65781c9cd4c151c2fdf15addc1083b6b |
Hashes for supriya-23.5b1-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24f032ebd5660a078d2a7afcc75acc4c3729d25b850e3c0f394dd2849e2cebbe |
|
MD5 | 995043731b5d0d044d33a2d53b4ac1e1 |
|
BLAKE2b-256 | 8a335d9ec98ad2558c52deda5f69ed6f24608742f85d37e82f259c6a02f0dccb |
Hashes for supriya-23.5b1-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3cb9eaca4c9b5d024707dade01ead61696a4a3364897cbb39816cba376967b88 |
|
MD5 | ad6ca2e972c64949a2c573b21b9e3dde |
|
BLAKE2b-256 | dc0838e3ad07069a85938b6d43ecb497a068f193bdd95ec6dbe89445367f0697 |
Hashes for supriya-23.5b1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c2ee1041f7fd023b5612350f3eb0961dbee2ae4a4a3000bb02e369d768ccd25 |
|
MD5 | c6c12404c34053c268f5f7eeb6dc807a |
|
BLAKE2b-256 | 11a580b7e564781cf0b23fac75e57a9c41e5c6b0122e3adf4e2a66490ae05dee |
Hashes for supriya-23.5b1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aa27bc076e7d0242bb0a45633f210ffd53cdacb40d0e30b4b16b3253d63af534 |
|
MD5 | 75cdf685043ef23631d26f86713b8f7b |
|
BLAKE2b-256 | 12e3cf06e0076373c1b46bb42df43169e6a9a79cc79715418bcc657b8ba37eea |
Hashes for supriya-23.5b1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 924ce0f813a2bb2c386fb479c89e7da468aa3064b51ace048c6b1c5c23e194cf |
|
MD5 | 8c0b61a1a257ee19febba122983e6b41 |
|
BLAKE2b-256 | bb5b13c9dbde367799e3dabda9ceec73db27001593ff995547be55d7967ef037 |
Hashes for supriya-23.5b1-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3be68766c0671b2913295498fb415f666f96982db48c5e86eec60c5a0c2115f1 |
|
MD5 | 5804dc4c936962459ffa5d7f9170d661 |
|
BLAKE2b-256 | be980ee90b66924341993bbbb57f4c868bad37a25ac27c6dc26fe02b1fdf0600 |
Hashes for supriya-23.5b1-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45c13c8e8f4f6d1510dd26570554de1cc431e8c5fb4f5da2faca9be7508552dc |
|
MD5 | 303806d6e245ca2cfe46444ad1affc95 |
|
BLAKE2b-256 | 0b3710ab2ad96a5e2d79e96c0f7d56ba1d2853180011f225a40056348e1e63ce |
Hashes for supriya-23.5b1-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 10d2c3447c198620561ab365c7170d1a3c38cff6745680096ba784a1644079a7 |
|
MD5 | 2e3a91bea30486693aa3b03656b5f38f |
|
BLAKE2b-256 | ec313946302295f28ad7eac744582c19b1faa4023513fe77b124012c51840ec3 |
Hashes for supriya-23.5b1-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8df511d9ce373836b4d2853796254cdd5084842b1ce190882eed59d96744d6d1 |
|
MD5 | 2dafe411713a01388c91a4ab0685d46a |
|
BLAKE2b-256 | 6529b539995859b732b0735a2dbe4d7e8403044e90a453bc1ef316dc252432f4 |
Hashes for supriya-23.5b1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59322f49f91621e80c1627ae274370ac7c7d12f9bc7a4afe9576e99567ebd9f9 |
|
MD5 | d26f1ad6cc500d5c3a54b3662309e4a6 |
|
BLAKE2b-256 | 45bfdea2973b1fbc098db60f53c8f88e44ed9d874d3663e27f15fcb954fdf1aa |
Hashes for supriya-23.5b1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 501202977f46a26d5a2fabe2d8802acf821588e7681ce84eaed108395e79ebc1 |
|
MD5 | 911016a418d1947c7e399fd175cb48a0 |
|
BLAKE2b-256 | 495626dc187c57bb149b3a3a32acaf4e6c3a501ec82ad7c9245e90d109079884 |
Hashes for supriya-23.5b1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 724bfa65997c811d6f37f7ef98e5c221c737c1d0b12563c87a04a105dbc76a56 |
|
MD5 | 6ba5569542ee4a216acc0c98bcd7396b |
|
BLAKE2b-256 | f52fe30d7e3ac6a6396f6f4cbde6266ecbd600a45681fcc5086d7b8a085e6094 |
Hashes for supriya-23.5b1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3c8149b45ca5fc510b437344a004a8fd2cd687f8687168f308cb82a28e13d18b |
|
MD5 | 9ee515f942219aec5f9383004d42f084 |
|
BLAKE2b-256 | 20e1389363f4587836f7358159de00c438d183d33522608e3acb5a70b58839a2 |
Hashes for supriya-23.5b1-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a57ea625488ad54ff5ddc67558f2074b5f6d5661dea659a529f6642c8427fff |
|
MD5 | 2f538301c28270a0c48b979daad74313 |
|
BLAKE2b-256 | 1ddb798bf4e36f06d0ba1e41b762fa8c82c1da9851fe54708aa6d4cc742ce9d2 |
Hashes for supriya-23.5b1-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0f979dd10d9a65b55f0ea1ffa964d266cda38a92d5c98e72e2504b969f9fb56 |
|
MD5 | c152aefb44aa899a3695f9430f105551 |
|
BLAKE2b-256 | a9ff075a4019bcf6b1dfa7a23a8e83ca634f639a0264d51de9cf7eb8c650d6c1 |
Hashes for supriya-23.5b1-cp38-cp38-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 108518d521c70bde8c47b8304953aa79c4cde2bc2800e4bdc7cd8548e9650881 |
|
MD5 | 904a28f7b528b4f9720fa8de9b922267 |
|
BLAKE2b-256 | 1ae09bcbb009ac806acb8c644f852415ae73803d58104d563740d23f9f14a59d |
Hashes for supriya-23.5b1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4bb021087b9ce3324cbdf5a5171255ccc4096f3dd693149015b889d535528c6 |
|
MD5 | 0e8105530429a703f96f6fd7226638e9 |
|
BLAKE2b-256 | 56e6aeb27010c2654a742b03bda59b891ef31aace793565955ad2052ba281029 |
Hashes for supriya-23.5b1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5402212b753682b74eeb98a125632e831b310a00d3df069dea77e58f1d7ca2bb |
|
MD5 | 4cbc7ab69c5fc10696e8b7ba814a1d6c |
|
BLAKE2b-256 | b5417c08f697633321696a8c68a78c54c50fe0bbe8641709dfda35ea2f04d74c |
Hashes for supriya-23.5b1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47f7b58116cc7e5c4ad703e1b198aaa71ae6be5b44668d37a0cbcc11ad310fae |
|
MD5 | b4e97abc693de36c77c96cbee75d5c57 |
|
BLAKE2b-256 | d4b0df8c66e9426f13f8b1910b67d9a3da992ec3c5251728e6f5f73a53f12e3d |