bowelyzer
#########
| |supercollider| classes for analysis of several audio streams and sending of |osc| messages based on amplitude and frequency thresholds and onset detection
Requirements
____________
| |supercollider| > 3.7
Features
________
* 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
Installation
____________
Git
***
| Clone this repository to somewhere sclang will pick it up on recompiling its class library (such as your |supercollider_extension| folder):
Linux
-----
.. code:: bash
cd ~/.local/share/SuperCollider/Extensions/local
git clone git://sleepmap.de/audio/bowelyzer.git
MacOSX
------
.. code:: bash
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!
.. code:: bash
cd ~/some/other/directory
git clone git://sleepmap.de/audio/bowelyzer.git
cd ./local/share/SuperCollider/Extensios/local/
ln -s ~/some/other/directory/bowelyzer .
Version
*******
| 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.
Usage
_____
| 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.
Configuration
*************
| 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*).
* **Note**: The available inputs of |supercollider| are defined by your |supercollider_startupfile|. Make sure to set the correct amount of |supercollider_numinputbuschannels|.
Output
******
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.
.. |supercollider_extension| raw:: html
Extension
.. |supercollider_numinputbuschannels| raw:: html
numInputBusChannels
.. |supercollider_startupfile| raw:: html
startupFile
.. |osc| raw:: html
OSC
.. |json| raw:: html
JSON
.. |supercollider| raw:: html
SuperCollider
.. |bowelyzer-git-repository| raw:: html
bowelyzer git repository
.. |pitch| raw:: html
Pitch
.. |amplitude| raw:: html
Amplitude
.. |pv_hainsworthfoote| raw:: html
PV_HainsworthFoote