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.5b2-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b3a551059b3f17fda368e846fd5068f943d2be3223af94b325f3a313103cd30c |
|
MD5 | 202424e38a54573954d8f46e1f63481d |
|
BLAKE2b-256 | 5ca9a8b05ca8a7479df8ae2f654025430a38ff63078da2684c67b2c0fa75d816 |
Hashes for supriya-23.5b2-cp311-cp311-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e92f7dd108396158a11bf6c04e8d288e401053c89bf04c7906e223544fbc1b7c |
|
MD5 | 95bb713965f5cba3301b0793050008df |
|
BLAKE2b-256 | 2c93463dc6d5d428535c40957d5cc7834a0ef78f5a9478cfd1071850b7782951 |
Hashes for supriya-23.5b2-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f39fbfc57889b479f11424820195820b9ccd20478628f90aca672315a1ac446 |
|
MD5 | e660ca89bb7f702a1b52fb0306a7e71b |
|
BLAKE2b-256 | 517caa1cdce281a86158a41510721bd23fdb2ae75e26b79641b26c15ecf34464 |
Hashes for supriya-23.5b2-cp311-cp311-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c253a006107c2e969f4b681fec565a18805836dea0fa7318ce5a4e07bcb0ef2c |
|
MD5 | ae2681ddf16071f18e115b41dd730f61 |
|
BLAKE2b-256 | c46c8ad3c0906cd52867d03e6bb0a9d75f8adf978eeb75470f867bb8e2c2a36a |
Hashes for supriya-23.5b2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7bd472bcb28ba35fffb341978b80d4914daffc344ad0e31c4255031a9f2080c5 |
|
MD5 | 142d35188336002684ff71a4ef19ec99 |
|
BLAKE2b-256 | 0afb739e75aad5bcfb450b6729d5a4ae635d32194877114ea74b8a42624a9497 |
Hashes for supriya-23.5b2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9cc3cf686d16ff167cbf647daa95afc05205399ca7f2ecf6ac21b724ece21b84 |
|
MD5 | fb2c2215be2db06c94fbbdc1599a7b7c |
|
BLAKE2b-256 | 45a0433f82c2695d82697e6b8f11d88ed229d921993f4de5b4007bad0a1604e2 |
Hashes for supriya-23.5b2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce24919fd969a132e1e1557020537ef1d2944935b9a24a62fd1235ad579a42e8 |
|
MD5 | 90145466e01acb55cd0fb16fd18d9fc6 |
|
BLAKE2b-256 | 5602b054ba957aededdaf6062e6eb900a50145629e3c9b759cd9c3bd026a9069 |
Hashes for supriya-23.5b2-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8bfc5ec9125fb407fe70e867ccdae5f062542064245ad9da4cf82e47cf156ab1 |
|
MD5 | adc3fcab4f873eeaf8424a19840c9053 |
|
BLAKE2b-256 | 27f9a3ebd99591fcf88c78c2c3c37b7299ff6df50c1775545aa6edfcd35c7cb4 |
Hashes for supriya-23.5b2-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4e132335e729150da04eaa47827a11a1822921ee72d0ad7b3194d6c56ad078a |
|
MD5 | 4ed6e3abe7a4e455b817ac0490456be5 |
|
BLAKE2b-256 | 3f29d2f7ff7d29e9500ff717a5900fea0fe491861d3a7177121250837ad327bf |
Hashes for supriya-23.5b2-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d55f36afca420cd6ac9f9bb99928850cf903cf8a17ab79f10088d0680ad45a7a |
|
MD5 | 8c583997d69d51e7a3da3ef710f77532 |
|
BLAKE2b-256 | 22d333aac841d6e5b4d04a9bff1fc10f37256b1063ba1ae9bbfa8bb7894521ee |
Hashes for supriya-23.5b2-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e481c97c0ac34a4b2624a7b97df39115f8b7faba63083b1f4f5419c18c58d8a5 |
|
MD5 | f68c767b5dfe1a39a8218977df7197a2 |
|
BLAKE2b-256 | 4cc6f81fa1256b870cd52504a1744814277c276786ec0b2ccb4f0fdc3f94628d |
Hashes for supriya-23.5b2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1fc2c399b57095f3b37e19174206acbe0b2f8084ba76c41ee969b07fd3d43ecd |
|
MD5 | 51bf28046ea627509f07061efdd054c0 |
|
BLAKE2b-256 | ba51e3eb3e54d1a252cc95b807939158df914432e77552731a877c15d0d23ac3 |
Hashes for supriya-23.5b2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3e51e8b95d72b404f24c9a677e599851a87f5e56d644725bc249431e6719b13 |
|
MD5 | 270ebcbc6b1138c7555ff7ff39161b02 |
|
BLAKE2b-256 | b239e23576cebb9ea5078f0d07a864ae96feceee99ccc135d07319f80616fde4 |
Hashes for supriya-23.5b2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b45ef6bb007e4bb8fb54d4257c5bf3b279ed5d2d387c9377c2ca0772a52f354d |
|
MD5 | c2cc327498f275e977177d7858a8f860 |
|
BLAKE2b-256 | 2933f044ea094d0374f34268144133a7a54a70b1f58b72ca476e47528f00cb7d |
Hashes for supriya-23.5b2-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59be88f73ea6baad689d20a906dfee6e8bfdedd55a861716a51da37cf7a1047e |
|
MD5 | 52e1e0df6ad64cd6ed0f7b37c41dc30c |
|
BLAKE2b-256 | c7abfbb18a6aef4a7cc9965c1f044e6271351144ec480dac9f56a7d229861be4 |
Hashes for supriya-23.5b2-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 514617c1f2deaaa1273ed1d3f0dec2f2f21b3cfd1aac1c7d7970b53849c102c8 |
|
MD5 | 94c0eefa5e6748a192b01b1fcc875277 |
|
BLAKE2b-256 | f91330360c0b4bc5ad171e00f8ba0727c7798ad140f484e1c9b51cb5118f6898 |
Hashes for supriya-23.5b2-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fff6cb7ac0b1e362f1bfbe9980b54a144314b5391424d509188c31cf939d0dc3 |
|
MD5 | 86508e4230b7ef6bb1a087851af3df6b |
|
BLAKE2b-256 | 4ad987bf54a4165488cc5c03e0b5803be68e865f3a214475a63ebdc2a55d6a9d |
Hashes for supriya-23.5b2-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 287b827aa718e79d5d066ad58cd576ab0b86b201b7d00a181f3d0896a7d85c63 |
|
MD5 | 17f666498a6a1cc68ea5c605ad42c9c6 |
|
BLAKE2b-256 | d1355ffce6c3800109843767ecb28b6a40a2069e12c6f07b2931441aa33ed3f6 |
Hashes for supriya-23.5b2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 666f9abfc20e739455aa7cbb16b95862f44d6cd3db53a117acf8f46d7f6983b7 |
|
MD5 | 73aa67178841a6ce191d41adb664bc41 |
|
BLAKE2b-256 | f2661936f2fe7ac42edf98785029f818d7b4fbac82d315fe685fd357fc334e72 |
Hashes for supriya-23.5b2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b176d06dadb9f4d7f7311913d93eeed5a06282268ea423b7f7a75505bcdeb48 |
|
MD5 | a3427a84ce8de3d4b30971f060e65759 |
|
BLAKE2b-256 | 40383a0c7f20b6b5a18b140f4867e4812a9cdf5f915360681db930bdd0f414ec |
Hashes for supriya-23.5b2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 809442a9fb5beba11b467e93f578764cd7f2abe0fd63507e8a6ff1e563ce51eb |
|
MD5 | 2ede74c65c3b3671e992309d565ed9d5 |
|
BLAKE2b-256 | 69da3a84086419d9f91df83e7fabf9caab0aa623df185f5e6e963b00268fd84c |
Hashes for supriya-23.5b2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dba4f4891de0b15fca4c73c44c9753c8a2d0f7b1eff7dc099be1d8557c034ba4 |
|
MD5 | 2da84ca75fba000709c536940276b991 |
|
BLAKE2b-256 | 9df73abed235d812f17942922c3689f2ca8249ea2c0b0b5c026bc06d98adefc8 |
Hashes for supriya-23.5b2-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3884443592a771847ab959cc3b9d53c9eb87ac46dffb6e1d9cc0255a60128f1 |
|
MD5 | f8237b05f706a86bd3d86f2ff1c89c43 |
|
BLAKE2b-256 | 4ef341b1ca6e91f5bc9a107a498e728364328352df5383306917e2bac28c443e |
Hashes for supriya-23.5b2-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8433d0be83d848e05a5f02bcbb360d42a7771c14924bc12aa1f9fefbad3afde |
|
MD5 | 7eb287e23fad266f6bffe9ea088898d9 |
|
BLAKE2b-256 | c66cd62fd0ad99f28a52cf2803b3e5a5e1d2bcbf40ee0f039885ee0937a5676c |
Hashes for supriya-23.5b2-cp38-cp38-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95d384e593c90019a7cc15f70150cb2d3d4f4ceea2ef69b35043ee1462eebdea |
|
MD5 | e311829dd2012ac504c3abf470afbaa9 |
|
BLAKE2b-256 | 7405357e1cf76b8b60b45e9ee1870d52d0e8588869370dade76f6884e6c786d2 |
Hashes for supriya-23.5b2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69ef0586f4cc7d44fa8403f69fd5e30e0c19cea385c9b8dce3bffbfa6a8e76aa |
|
MD5 | aa4398b565d8cba50bb5ac23e0cfc51d |
|
BLAKE2b-256 | 2d8ba533ba641fd5da210109d840e144629a72e1503e1510656b5a0ab030a651 |
Hashes for supriya-23.5b2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f394132a612fe780ee813e82ad3f44645d6cba740aeb46d1de1ec59c243e980a |
|
MD5 | 90f3fa5a101cedcb980c89a051d3dbb5 |
|
BLAKE2b-256 | f97adcd82c80ebd2cf81867741a72026089aefc00945848da307626d8c78cdb0 |
Hashes for supriya-23.5b2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0cfb839e8a3286f3e5f7a52c767c5e654d017ee0c303528e630671090860f335 |
|
MD5 | e27650f89483f9e8ec172b55c211017b |
|
BLAKE2b-256 | 4707225bdb6dcc2ce35bde13ab7d202e1563da0329c50f3927c7c4f4a9081ec8 |