1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
bowelyzer
#########
| |supercollider| classes for analysis of several audio streams and sending of |osc| messages based on amplitude and frequency thresholds and onset detection
Features
________
* |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
<a href="http://doc.sccode.org/Guides/UsingExtensions.html" target="_blank">Extension</a>
.. |supercollider_numinputbuschannels| raw:: html
<a href="http://doc.sccode.org/Classes/ServerOptions.html#-numInputBusChannels" target="_blank">numInputBusChannels</a>
.. |supercollider_startupfile| raw:: html
<a href="http://doc.sccode.org/Reference/StartupFile.html" target="_blank">startupFile</a>
.. |osc| raw:: html
<a href="https://en.wikipedia.org/wiki/Open_Sound_Control" target="_blank">OSC</a>
.. |json| raw:: html
<a href="https://en.wikipedia.org/wiki/JSON" target="_blank">JSON</a>
.. |supercollider| raw:: html
<a href="https://supercollider.github.io/" target="_blank">SuperCollider</a>
.. |bowelyzer-git-repository| raw:: html
<a href="https://git.sleepmap.de/audio/bowelyzer.git" target="_blank">bowelyzer git repository</a>
|