Metadata-Version: 2.1
Name: sc3nb
Version: 1.0.2
Summary: SuperCollider3 (sc3) for Python and Jupyter notebooks
Home-page: https://github.com/interactive-sonification/sc3nb
Author: Thomas Hermann
Author-email: thermann@techfak.uni-bielefeld.de
License: MIT
Project-URL: Documentation, https://interactive-sonification.github.io/sc3nb
Project-URL: Source Code, https://github.com/interactive-sonification/sc3nb
Project-URL: Bug Tracker, https://github.com/interactive-sonification/sc3nb/issues
Keywords: sonification,sound synthesis
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Other
Classifier: Operating System :: OS Independent
Classifier: Framework :: IPython
Classifier: Framework :: Jupyter
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Artistic Software
Classifier: Topic :: Multimedia :: Sound/Audio
Classifier: Topic :: Multimedia :: Sound/Audio :: Analysis
Classifier: Topic :: Multimedia :: Sound/Audio :: Sound Synthesis
Classifier: Topic :: Scientific/Engineering :: Human Machine Interfaces
Classifier: Topic :: Scientific/Engineering :: Visualization
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: psutil
Requires-Dist: python-osc (>=1.7.4)
Requires-Dist: numpy (>=1.15.4)
Requires-Dist: scipy (>=1.3.1)
Requires-Dist: ipython (>=7.2.0)
Requires-Dist: importlib-resources ; python_version < "3.9"
Provides-Extra: dev
Requires-Dist: pre-commit ; extra == 'dev'
Requires-Dist: nbstripout ; extra == 'dev'
Requires-Dist: check-manifest ; extra == 'dev'
Requires-Dist: black ; extra == 'dev'
Requires-Dist: isort ; extra == 'dev'
Provides-Extra: docs
Requires-Dist: Sphinx ; extra == 'docs'
Requires-Dist: sphinx-autoapi ; extra == 'docs'
Requires-Dist: sphinx-rtd-theme ; extra == 'docs'
Requires-Dist: nbsphinx ; extra == 'docs'
Requires-Dist: nbsphinx-link ; extra == 'docs'
Requires-Dist: nbstripout ; extra == 'docs'
Requires-Dist: numpydoc ; extra == 'docs'
Requires-Dist: jupyterlab ; extra == 'docs'
Requires-Dist: matplotlib ; extra == 'docs'
Requires-Dist: PyQt5 ; extra == 'docs'
Requires-Dist: numpy ; extra == 'docs'
Requires-Dist: myst-parser ; extra == 'docs'
Requires-Dist: GitPython ; extra == 'docs'
Requires-Dist: beautifulsoup4 ; extra == 'docs'
Provides-Extra: localtest
Requires-Dist: pytest ; extra == 'localtest'
Requires-Dist: pytest-cov ; extra == 'localtest'
Requires-Dist: pytest-xvfb ; (sys_platform == "linux") and extra == 'localtest'
Requires-Dist: PyQt5 ; (sys_platform == "linux") and extra == 'localtest'
Requires-Dist: pytest-qt ; (sys_platform == "linux") and extra == 'localtest'
Provides-Extra: test
Requires-Dist: tox ; extra == 'test'

# sc3nb

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

* [Documentation](https://interactive-sonification.github.io/sc3nb)
* [Source code](https://github.com/interactive-sonification/sc3nb)
* [Bug reports](https://github.com/interactive-sonification/sc3nb/issues)


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](https://supercollider.github.io/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").
    - clone the repository from https://github.com/interactive-sonification/sc3nb
    - from inside the sc3nb directory run `pip install -e .`
  - or install it directly from GitHub using `pip install git+git://github.com/interactive-sonification/sc3nb@master`
  - we are also currently making sure that sc3nb can also be installed via `pip install sc3nb` from PyPI

## Examples

We provide examples in the form of Jupyter notebooks. You see them executed in the User Guide section of the [documentation](https://interactive-sonification.github.io/sc3nb) and also download them from the [sc3nb examples folder](https://github.com/interactive-sonification/sc3nb/tree/master/examples).


