/
alo.ttl
242 lines (225 loc) · 5.75 KB
/
alo.ttl
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix pprops: <http://lv2plug.in/ns/ext/port-props#>.
@prefix units: <http://lv2plug.in/ns/extensions/units#> .
@prefix atom: <http://lv2plug.in/ns/ext/atom#> .
@prefix time: <http://lv2plug.in/ns/ext/time#> .
@prefix urid: <http://lv2plug.in/ns/ext/urid#> .
@prefix midi: <http://lv2plug.in/ns/ext/midi#> .
<http://devcurmudgeon.com/alo>
a lv2:Plugin, lv2:UtilityPlugin;
lv2:project <http://lv2plug.in/ns/lv2>;
doap:name "ALO";
doap:license <http://opensource.org/licenses/isc>;
lv2:minorVersion 0;
lv2:microVersion 9;
rdfs:comment """
ALO is a multi-track looper designed for live audio looping. It works in sync mode, with Global BPM, or in free-running mode.
There are six loops. Press a loop button to:
- arm the loop for recording
- stop playing the loop
- resume the loop
[THRESHOLD] sets the input level in dB that will trigger loop recording.
[BARS] sets the loop length in sync mode (when Global BPM is running). In free running mode, loop length is set at the end of recording the first loop, by activating a different loop button.
[MIDI Base] optionally allows loops to be controlled from a connected MIDI device sending MIDI note on/off messages ([MIDI Base]..[MIDI Base + 5]).
[INSTANT LOOPS] changes the behaviour so some or all loops will stop and resume instantly:
- 0 sets all loops to play from start to finish
- 3 sets loops 1,2 and 3 to play and stop when their loop buttons are pressed
- 6 sets all loops to play and stop when loop buttons are pressed
[CLICK] sets the volume of the click in sync mode, when no loop is playing.
[MIX] sets the output dry/wet levels for the input and loop signals
- 0 for only input
- 50 for matched input and loop levels
- 100 for only loops
[RESET MODE] controls when loops are wiped:
- 0 wipe when ALO is turned off, bpm tempo changes, when `bars` changes
- 1 same as 0, and wipe when all loops are off
- 2 same as 0, and wipe when a button is double-pressed within one second
- 3 same as 2, but only the double-pressed loop is wiped
Loop6 behaves differently - it outputs the loop while replacing it with the input signal for next time. So if the output is looped back to the input, it works as an overdub. If the loopback goes via an effect, then the effect will be applied each time the loop passes through.
""";
lv2:port
[
a lv2:AudioPort, lv2:InputPort;
lv2:index 0;
lv2:symbol "in_left";
lv2:name "In_left"
],
[
a lv2:AudioPort, lv2:InputPort;
lv2:index 1;
lv2:symbol "in_right";
lv2:name "In_right"
],
[
a lv2:AudioPort, lv2:OutputPort;
lv2:index 2;
lv2:symbol "out_left";
lv2:name "Out_left"
],
[
a lv2:AudioPort, lv2:OutputPort;
lv2:index 3;
lv2:symbol "out_right";
lv2:name "Out_right"
],
[
a lv2:ControlPort, lv2:InputPort;
lv2:index 4;
lv2:symbol "loop1";
lv2:name "Loop1";
lv2:default 0;
lv2:minimum 0;
lv2:maximum 1;
lv2:portProperty lv2:integer, lv2:toggled;
],
[
a lv2:ControlPort, lv2:InputPort;
lv2:index 5;
lv2:symbol "loop2";
lv2:name "Loop2";
lv2:default 0;
lv2:minimum 0;
lv2:maximum 1;
lv2:portProperty lv2:integer, lv2:toggled;
],
[
a lv2:ControlPort, lv2:InputPort;
lv2:index 6;
lv2:symbol "loop3";
lv2:name "Loop3";
lv2:default 0;
lv2:minimum 0;
lv2:maximum 1;
lv2:portProperty lv2:integer, lv2:toggled;
],
[
a lv2:ControlPort, lv2:InputPort;
lv2:index 7;
lv2:symbol "loop4";
lv2:name "Loop4";
lv2:default 0;
lv2:minimum 0;
lv2:maximum 1;
lv2:portProperty lv2:integer, lv2:toggled;
],
[
a lv2:ControlPort, lv2:InputPort;
lv2:index 8;
lv2:symbol "loop5";
lv2:name "Loop5";
lv2:default 0;
lv2:minimum 0;
lv2:maximum 1;
lv2:portProperty lv2:integer, lv2:toggled;
],
[
a lv2:ControlPort, lv2:InputPort;
lv2:index 9;
lv2:symbol "loop6";
lv2:name "Loop6";
lv2:default 0;
lv2:minimum 0;
lv2:maximum 1;
lv2:portProperty lv2:integer, lv2:toggled;
],
[
a lv2:InputPort, lv2:ControlPort;
lv2:index 10;
lv2:symbol "threshold";
lv2:name "Threshold";
lv2:default -40;
lv2:minimum -90;
lv2:maximum 24;
lv2:portProperty lv2:integer;
],
[
a atom:AtomPort, lv2:InputPort;
atom:bufferType atom:Sequence;
atom:supports midi:MidiEvent;
lv2:index 11;
lv2:symbol "midiin";
lv2:name "MIDI In";
],
[
a lv2:ControlPort, lv2:InputPort;
lv2:index 12;
lv2:symbol "midi_base";
lv2:name "MIDI Base";
lv2:default 60;
lv2:minimum 1;
lv2:maximum 120;
lv2:portProperty lv2:integer;
],
[
a lv2:ControlPort, lv2:InputPort;
lv2:index 13;
lv2:symbol "instant_loops";
lv2:name "Instant Loops";
lv2:default 0;
lv2:minimum 0;
lv2:maximum 6;
lv2:portProperty lv2:integer;
],
[
a lv2:ControlPort, lv2:InputPort;
lv2:index 14;
lv2:symbol "click";
lv2:name "Click";
lv2:default 1;
lv2:minimum 0;
lv2:maximum 10;
lv2:portProperty lv2:integer;
],
[
a lv2:ControlPort, lv2:InputPort;
lv2:index 15;
lv2:symbol "bars";
lv2:name "Bars";
lv2:default 2;
lv2:minimum 1;
lv2:maximum 32;
lv2:portProperty lv2:integer;
],
[
a lv2:InputPort, atom:AtomPort ;
atom:bufferType atom:Sequence ;
atom:supports time:Position ;
lv2:index 16;
lv2:symbol "control" ;
lv2:name "Control" ;
],
[
a lv2:ControlPort, lv2:InputPort;
lv2:index 17;
lv2:symbol "mix";
lv2:name "Mix";
lv2:default 50;
lv2:minimum 0;
lv2:maximum 100;
lv2:portProperty lv2:integer;
],
[
a lv2:ControlPort, lv2:InputPort;
lv2:index 18;
lv2:symbol "reset_mode";
lv2:name "Reset Mode";
lv2:default 3;
lv2:minimum 0;
lv2:maximum 3;
lv2:portProperty lv2:integer;
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 19;
lv2:symbol "ENABLED" ;
lv2:name "ENABLED" ;
lv2:default 1.0 ;
lv2:minimum 0.0 ;
lv2:maximum 1.0 ;
lv2:designation lv2:enabled;
lv2:portProperty lv2:toggled;
].