aboutsummaryrefslogtreecommitdiffstats
path: root/README.rst
blob: 3c88d5c8d5542fac69d1a81e39878e3d87b449c6 (plain)
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
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

  <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>

.. |pitch| raw:: html

  <a href="http://doc.sccode.org/Classes/Pitch.html" target="_blank">Pitch</a>

.. |amplitude| raw:: html

  <a href="http://doc.sccode.org/Classes/Amplitude.html" target="_blank">Amplitude</a>

.. |pv_hainsworthfoote| raw:: html

  <a href="http://doc.sccode.org/Classes/PV_HainsworthFoote.html" target="_blank">PV_HainsworthFoote</a>