Skip to main content

SuperCollider3 (sc3) for Python and Jupyter notebooks

Project description

sc3nb

sc3nb is a python package that offers an interface to SuperCollider3 (SC3), with special support to be used within jupyter notebooks.

The goal of sc3nb is to facilitate the development of auditory displays and interactive sonifications by teaming up

  • python (and particularly numpy, scipy, pandas, matplotlib etc.) for data science
  • and SuperCollider3 for interactive real-time sound rendering. ​

It allows:

  • to interface with the SuperCollider audio server (scsynth) aswell as the SuperCollider Language and Interpreter (sclang) via the SC class
  • The SuperCollider audio server can be started and addressed via
    • OSC directly with OSC messages and bundles
    • Python implementations of Classes from SuperCollider like Synth, SynthDef, Buffer and Bus
    • the Score class for non-realtime synthesis
  • use the SuperCollider language (sclang) interactively via a subprocess.
    • write SuperCollider language code in Jupyter Notebooks and let sclang evaluate it.
    • inject Python variables into your sclang code
    • get the results of the sclang code in Python
  • helper functions such as linlin, cpsmidi, midicps, clip, ampdb, dbamp which work like their SC3 counterparts.

sc3nb can be used for

  • multi-channel audio processing
  • auditory display and sonification
  • sound synthesis experiment
  • audio applications in general such as games or GUI-enhancements
  • signal analysis and plotting
  • computer music and just-in-time music control
  • any usecase that the SuperCollider 3 language supports

It is meant to grow into a backend for a sonification package, and can be used both from jupyter and in standard python software development.

Installation

  • To use sc3nb you need a installation of SuperCollider on your system. See SuperCollider Download for installation files.
  • To install sc3nb you can
    • install it locally in editable mode (i.e. changes to sc3nb code will automatically be "re-installed").
    • or install it directly from PyPI using pip install sc3nb

Examples

We provide examples in the form of Jupyter notebooks. You see them executed in the User Guide section of the documentation and also download them from the sc3nb examples folder.

Publications & Citation

If you use sc3nb please cite the sc3nb introduction paper https://doi.org/10.1145/3478384.3478401

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sc3nb-1.1.0.tar.gz (252.5 kB view details)

Uploaded Source

Built Distribution

sc3nb-1.1.0-py3-none-any.whl (71.9 kB view details)

Uploaded Python 3

File details

Details for the file sc3nb-1.1.0.tar.gz.

File metadata

  • Download URL: sc3nb-1.1.0.tar.gz
  • Upload date:
  • Size: 252.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for sc3nb-1.1.0.tar.gz
Algorithm Hash digest
SHA256 83ccf05164bf5e6186990573702f4252bd2b762e5eb157dc106c3ff5ff4e931b
MD5 cd2f70e20ccd4be259c49191fece0966
BLAKE2b-256 c6c630dc00102c456f68dba43882e96277cba91e1b66846738707bf8d1aee69e

See more details on using hashes here.

File details

Details for the file sc3nb-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: sc3nb-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 71.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for sc3nb-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 533cee102451e31776082a395d5e533e8965a6725ad4967827c69be9c401cd5a
MD5 dd813e4f31383fec80ea0281c1a9f23d
BLAKE2b-256 950d07cc3b8e26a3ae0c6432dd73a4d752601ac13356828497ed4c64627bc123

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page