SuperCollider classes for analysis of several audio streams and sending of OSC messages based on amplitude and frequency thresholds and onset detection



  • externalization of the Pitch, Amplitude and PV_HainsworthFoote UGens
  • JSON configuration file
  • multi-channel (channels are additionally selectable multiple times)
  • analysis of amplitude, pitch and onset settable
  • on-the-fly renaming and rerouting of channels



Clone this repository to somewhere sclang will pick it up on recompiling its class library (such as your Extension folder):


cd ~/.local/share/SuperCollider/Extensions/local
git clone git://sleepmap.de/audio/bowelyzer.git


cd ~/Library/Application Support/SuperCollider/Extensions/local
git clone git://sleepmap.de/audio/bowelyzer.git
If the local folder doesn't exist, create it, otherwise you can also directly clone into the Extensions folder (the folder and all of its children will get picked up on recompile).
Symlinking is fine, too!
cd ~/some/other/directory
git clone git://sleepmap.de/audio/bowelyzer.git
cd ./local/share/SuperCollider/Extensios/local/
ln -s ~/some/other/directory/bowelyzer .


You can also try a specific version of bowelyzer, by downloading it from the bowelyzer git repository (version tar balls are listed under the Tag header).
Extract the tar ball into the above mentioned Extensions/local folder on your specific operating system.


Go to the cloned directory and open bowelyzer.scd in your favorite SuperCollider IDE.
How to start the application with and without configuration is explained there.


Bowelyzer is configured by a JSON file with pre-defined fields.
Have a look at the shipped example, to see how it works and what is available.
Generally there are some global options (such as addresses and ports) and per channel configurations (such as inputs and controls).


Bowelyzer sends OSC messages to a preconfigured host and port of the form [/name, amplitude, pitch, hasPitch, onSet], where /name refers to the name of the channel, amplitude to the detected amplitude (0.0 - 1.0), pitch to the detected frequency (20Hz - 20kHz), hasPitch (0, 1) to whether a pitch was detected and onSet (0, 1) to whether an onset was detected.