1# Copyright (c) 2015 Hanspeter Portner (dev@open-music-kontrollers.ch)
2#
3# This is free software: you can redistribute it and/or modify
4# it under the terms of the Artistic License 2.0 as published by
5# The Perl Foundation.
6#
7# This source is distributed in the hope that it will be useful,
8# but WITHOUT ANY WARRANTY; without even the implied warranty of
9# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10# Artistic License 2.0 for more details.
11#
12# You should have received a copy of the Artistic License 2.0
13# along the source as a COPYING file. If not, obtain it from
14# http://www.perlfoundation.org/artistic_license_2_0.
15
16@prefix owl:	<http://www.w3.org/2002/07/owl#> .
17@prefix foaf:	<http://xmlns.com/foaf/0.1/> .
18@prefix doap:	<http://usefulinc.com/ns/doap#> .
19@prefix rdf:	<http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
20@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
21@prefix xsd:	<http://www.w3.org/2001/XMLSchema#> .
22@prefix lv2:	<http://lv2plug.in/ns/lv2core#> .
23@prefix rsz:  <http://lv2plug.in/ns/ext/resize-port#> .
24@prefix atom:	<http://lv2plug.in/ns/ext/atom#> .
25@prefix midi:	<http://lv2plug.in/ns/ext/midi#> .
26@prefix urid: <http://lv2plug.in/ns/ext/urid#> .
27@prefix state: <http://lv2plug.in/ns/ext/state#> .
28@prefix patch: <http://lv2plug.in/ns/ext/patch#> .
29@prefix log:	<http://lv2plug.in/ns/ext/log#> .
30@prefix units: <http://lv2plug.in/ns/extensions/units#> .
31
32@prefix lic:	<http://opensource.org/licenses/> .
33@prefix omk:	<http://open-music-kontrollers.ch/ventosus#> .
34@prefix proj:	<http://open-music-kontrollers.ch/lv2/> .
35@prefix esp:	<http://open-music-kontrollers.ch/lv2/espressivo#> .
36@prefix osc:	<http://open-music-kontrollers.ch/lv2/osc#> .
37@prefix canvas:	<http://open-music-kontrollers.ch/lv2/canvas#> .
38@prefix xpress:	<http://open-music-kontrollers.ch/lv2/xpress#> .
39
40osc:schedule
41	a lv2:Feature .
42
43osc:Event
44	a rdfs:Class ,
45		rdfs:Datatype ;
46	rdfs:label "OSC Event" ;
47	rdfs:subClassOf atom:Atom .
48
49lv2:parameterProperty
50	a rdf:Property ,
51		owl:ObjectProperty ;
52	rdfs:domain lv2:Parameter ;
53	rdfs:range lv2:PortProperty ;
54	rdfs:label "parameter property" ;
55	rdfs:comment """Relates Parameters to PortProperties. The PortProperty may be ignored without catastrophic effects, though it may be useful e.g. for providing a sensible interface for the parameter.""" .
56
57lv2:isBitmask
58	a lv2:PortProperty ;
59	rdfs:label "bitmask" .
60
61xpress:voiceMap
62	a lv2:Feature .
63
64xpress:Message
65	a rdfs:Class ,
66		rdfs:Datatype ;
67	rdfs:subClassOf atom:Atom .
68
69units:midiController
70	a units:Unit ;
71	rdfs:label "MIDI controller" ;
72	units:render "MIDI controller %d" ;
73	units:symbol "controller" .
74
75# Maintainer
76omk:me
77	a foaf:Person ;
78	foaf:name "Hanspeter Portner" ;
79	foaf:mbox <mailto:dev@open-music-kontrollers.ch> ;
80	foaf:homepage <http://open-music-kontrollers.ch> .
81
82# Project
83proj:espressivo
84	a doap:Project ;
85	doap:maintainer omk:me ;
86	doap:name "Espressivo Bundle" .
87
88# Parameters
89canvas:graph
90	a lv2:Parameter ;
91	rdfs:label "Graph" ;
92	rdfs:comment "set canvas graph" ;
93	rdfs:range atom:Tuple .
94canvas:aspectRatio
95	a lv2:Parameter ;
96	rdfs:label "Aspect ratio" ;
97	rdfs:comment "set aspect ratio" ;
98	rdfs:range atom:Float ;
99	lv2:minimum 0.25 ;
100	lv2:maximum 4.0 .
101
102esp:mpe_zones
103	a lv2:Parameter ;
104	rdfs:label "Zones" ;
105	rdfs:comment "number of zones" ;
106	rdfs:range atom:Int ;
107	lv2:minimum 1 ;
108	lv2:maximum 8 .
109
110esp:mpe_velocity
111	a lv2:Parameter ;
112	rdfs:label "Velocity" ;
113	rdfs:comment "set MIDI velocity" ;
114	rdfs:range atom:Int ;
115	lv2:minimum 0 ;
116	lv2:maximum 127 .
117
118esp:mpe_master_range_1
119	a lv2:Parameter ;
120	rdfs:label "Master Bend Range 1" ;
121	rdfs:comment "master MIDI bend range for zone 1" ;
122	rdfs:range atom:Int ;
123	units:unit units:semitone12TET ;
124	lv2:minimum 1 ;
125	lv2:maximum 96 .
126esp:mpe_master_range_2
127	a lv2:Parameter ;
128	rdfs:label "Master Bend Range 2" ;
129	rdfs:comment "master MIDI bend range for zone 2" ;
130	rdfs:range atom:Int ;
131	units:unit units:semitone12TET ;
132	lv2:minimum 1 ;
133	lv2:maximum 96 .
134esp:mpe_master_range_3
135	a lv2:Parameter ;
136	rdfs:label "Master Bend Range 3" ;
137	rdfs:comment "master MIDI bend range for zone 3" ;
138	rdfs:range atom:Int ;
139	units:unit units:semitone12TET ;
140	lv2:minimum 1 ;
141	lv2:maximum 96 .
142esp:mpe_master_range_4
143	a lv2:Parameter ;
144	rdfs:label "Master Bend Range 4" ;
145	rdfs:comment "master MIDI bend range for zone 4" ;
146	rdfs:range atom:Int ;
147	units:unit units:semitone12TET ;
148	lv2:minimum 1 ;
149	lv2:maximum 96 .
150esp:mpe_master_range_5
151	a lv2:Parameter ;
152	rdfs:label "Master Bend Range 5" ;
153	rdfs:comment "master MIDI bend range for zone 5" ;
154	rdfs:range atom:Int ;
155	units:unit units:semitone12TET ;
156	lv2:minimum 1 ;
157	lv2:maximum 96 .
158esp:mpe_master_range_6
159	a lv2:Parameter ;
160	rdfs:label "Master Bend Range 6" ;
161	rdfs:comment "master MIDI bend range for zone 6" ;
162	rdfs:range atom:Int ;
163	units:unit units:semitone12TET ;
164	lv2:minimum 1 ;
165	lv2:maximum 96 .
166esp:mpe_master_range_7
167	a lv2:Parameter ;
168	rdfs:label "Master Bend Range 7" ;
169	rdfs:comment "master MIDI bend range for zone 7" ;
170	rdfs:range atom:Int ;
171	units:unit units:semitone12TET ;
172	lv2:minimum 1 ;
173	lv2:maximum 96 .
174esp:mpe_master_range_8
175	a lv2:Parameter ;
176	rdfs:label "Master Bend Range 8" ;
177	rdfs:comment "master MIDI bend range for zone 8" ;
178	rdfs:range atom:Int ;
179	units:unit units:semitone12TET ;
180	lv2:minimum 1 ;
181	lv2:maximum 96 .
182
183esp:mpe_voice_range_1
184	a lv2:Parameter ;
185	rdfs:label "Voice Bend Range 1" ;
186	rdfs:comment "voice MIDI bend range for zone 1" ;
187	rdfs:range atom:Int ;
188	units:unit units:semitone12TET ;
189	lv2:minimum -1 ;
190	lv2:maximum 96 .
191esp:mpe_voice_range_2
192	a lv2:Parameter ;
193	rdfs:label "Voice Bend Range 2" ;
194	rdfs:comment "voice MIDI bend range for zone 2" ;
195	rdfs:range atom:Int ;
196	units:unit units:semitone12TET ;
197	lv2:minimum -1 ;
198	lv2:maximum 96 .
199esp:mpe_voice_range_3
200	a lv2:Parameter ;
201	rdfs:label "Voice Bend Range 3" ;
202	rdfs:comment "voice MIDI bend range for zone 3" ;
203	rdfs:range atom:Int ;
204	units:unit units:semitone12TET ;
205	lv2:minimum -1 ;
206	lv2:maximum 96 .
207esp:mpe_voice_range_4
208	a lv2:Parameter ;
209	rdfs:label "Voice Bend Range 4" ;
210	rdfs:comment "voice MIDI bend range for zone 4" ;
211	rdfs:range atom:Int ;
212	units:unit units:semitone12TET ;
213	lv2:minimum -1 ;
214	lv2:maximum 96 .
215esp:mpe_voice_range_5
216	a lv2:Parameter ;
217	rdfs:label "Voice Bend Range 5" ;
218	rdfs:comment "voice MIDI bend range for zone 5" ;
219	rdfs:range atom:Int ;
220	units:unit units:semitone12TET ;
221	lv2:minimum -1 ;
222	lv2:maximum 96 .
223esp:mpe_voice_range_6
224	a lv2:Parameter ;
225	rdfs:label "Voice Bend Range 6" ;
226	rdfs:comment "voice MIDI bend range for zone 6" ;
227	rdfs:range atom:Int ;
228	units:unit units:semitone12TET ;
229	lv2:minimum -1 ;
230	lv2:maximum 96 .
231esp:mpe_voice_range_7
232	a lv2:Parameter ;
233	rdfs:label "Voice Bend Range 7" ;
234	rdfs:comment "voice MIDI bend range for zone 7" ;
235	rdfs:range atom:Int ;
236	units:unit units:semitone12TET ;
237	lv2:minimum -1 ;
238	lv2:maximum 96 .
239esp:mpe_voice_range_8
240	a lv2:Parameter ;
241	rdfs:label "Voice Bend Range 8" ;
242	rdfs:comment "voice MIDI bend range for zone 8" ;
243	rdfs:range atom:Int ;
244	units:unit units:semitone12TET ;
245	lv2:minimum -1 ;
246	lv2:maximum 96 .
247
248esp:mpe_pressure_controller_1
249	a lv2:Parameter ;
250	rdfs:label "Pressure Controller 1" ;
251	rdfs:comment "MIDI controller to use as voice pressure for zone 1" ;
252	rdfs:range atom:Int ;
253	units:unit units:midiController ;
254	lv2:minimum -1 ;
255	lv2:maximum 127 .
256esp:mpe_pressure_controller_2
257	a lv2:Parameter ;
258	rdfs:label "Pressure Controller 2" ;
259	rdfs:comment "MIDI controller to use as voice pressure for zone 2" ;
260	rdfs:range atom:Int ;
261	units:unit units:midiController ;
262	lv2:minimum -1 ;
263	lv2:maximum 127 .
264esp:mpe_pressure_controller_3
265	a lv2:Parameter ;
266	rdfs:label "Pressure Controller 3" ;
267	rdfs:comment "MIDI controller to use as voice pressure for zone 3" ;
268	rdfs:range atom:Int ;
269	units:unit units:midiController ;
270	lv2:minimum -1 ;
271	lv2:maximum 127 .
272esp:mpe_pressure_controller_4
273	a lv2:Parameter ;
274	rdfs:label "Pressure Controller 4" ;
275	rdfs:comment "MIDI controller to use as voice pressure for zone 4" ;
276	rdfs:range atom:Int ;
277	units:unit units:midiController ;
278	lv2:minimum -1 ;
279	lv2:maximum 127 .
280esp:mpe_pressure_controller_5
281	a lv2:Parameter ;
282	rdfs:label "Pressure Controller 5" ;
283	rdfs:comment "MIDI controller to use as voice pressure for zone 5" ;
284	rdfs:range atom:Int ;
285	units:unit units:midiController ;
286	lv2:minimum -1 ;
287	lv2:maximum 127 .
288esp:mpe_pressure_controller_6
289	a lv2:Parameter ;
290	rdfs:label "Pressure Controller 6" ;
291	rdfs:comment "MIDI controller to use as voice pressure for zone 6" ;
292	rdfs:range atom:Int ;
293	units:unit units:midiController ;
294	lv2:minimum -1 ;
295	lv2:maximum 127 .
296esp:mpe_pressure_controller_7
297	a lv2:Parameter ;
298	rdfs:label "Pressure Controller 7" ;
299	rdfs:comment "MIDI controller to use as voice pressure for zone 7" ;
300	rdfs:range atom:Int ;
301	units:unit units:midiController ;
302	lv2:minimum -1 ;
303	lv2:maximum 127 .
304esp:mpe_pressure_controller_8
305	a lv2:Parameter ;
306	rdfs:label "Pressure Controller 8" ;
307	rdfs:comment "MIDI controller to use as voice pressure for zone 8" ;
308	rdfs:range atom:Int ;
309	units:unit units:midiController ;
310	lv2:minimum -1 ;
311	lv2:maximum 127 .
312
313esp:mpe_timbre_controller_1
314	a lv2:Parameter ;
315	rdfs:label "Timbre Controller 1" ;
316	rdfs:comment "MIDI controller to use as voice timbre for zone 1" ;
317	rdfs:range atom:Int ;
318	units:unit units:midiController ;
319	lv2:minimum -1 ;
320	lv2:maximum 127 .
321esp:mpe_timbre_controller_2
322	a lv2:Parameter ;
323	rdfs:label "Timbre Controller 2" ;
324	rdfs:comment "MIDI controller to use as voice timbre for zone 2" ;
325	rdfs:range atom:Int ;
326	units:unit units:midiController ;
327	lv2:minimum -1 ;
328	lv2:maximum 127 .
329esp:mpe_timbre_controller_3
330	a lv2:Parameter ;
331	rdfs:label "Timbre Controller 3" ;
332	rdfs:comment "MIDI controller to use as voice timbre for zone 3" ;
333	rdfs:range atom:Int ;
334	units:unit units:midiController ;
335	lv2:minimum -1 ;
336	lv2:maximum 127 .
337esp:mpe_timbre_controller_4
338	a lv2:Parameter ;
339	rdfs:label "Timbre Controller 4" ;
340	rdfs:comment "MIDI controller to use as voice timbre for zone 4" ;
341	rdfs:range atom:Int ;
342	units:unit units:midiController ;
343	lv2:minimum -1 ;
344	lv2:maximum 127 .
345esp:mpe_timbre_controller_5
346	a lv2:Parameter ;
347	rdfs:label "Timbre Controller 5" ;
348	rdfs:comment "MIDI controller to use as voice timbre for zone 5" ;
349	rdfs:range atom:Int ;
350	units:unit units:midiController ;
351	lv2:minimum -1 ;
352	lv2:maximum 127 .
353esp:mpe_timbre_controller_6
354	a lv2:Parameter ;
355	rdfs:label "Timbre Controller 6" ;
356	rdfs:comment "MIDI controller to use as voice timbre for zone 6" ;
357	rdfs:range atom:Int ;
358	units:unit units:midiController ;
359	lv2:minimum -1 ;
360	lv2:maximum 127 .
361esp:mpe_timbre_controller_7
362	a lv2:Parameter ;
363	rdfs:label "Timbre Controller 7" ;
364	rdfs:comment "MIDI controller to use as voice timbre for zone 7" ;
365	rdfs:range atom:Int ;
366	units:unit units:midiController ;
367	lv2:minimum -1 ;
368	lv2:maximum 127 .
369esp:mpe_timbre_controller_8
370	a lv2:Parameter ;
371	rdfs:label "Timbre Controller 8" ;
372	rdfs:comment "MIDI controller to use as voice timbre for zone 8" ;
373	rdfs:range atom:Int ;
374	units:unit units:midiController ;
375	lv2:minimum -1 ;
376	lv2:maximum 127 .
377
378# MPE Output Plugin
379esp:mpe_out
380	a lv2:Plugin ,
381		lv2:ConverterPlugin ;
382	doap:name "Espressivo MPE Out" ;
383	doap:license lic:Artistic-2.0 ;
384	lv2:project proj:espressivo ;
385	lv2:optionalFeature lv2:isLive, lv2:hardRTCapable, xpress:voiceMap, state:threadSafeRestore ;
386	lv2:requiredFeature urid:map, state:loadDefaultState ;
387	lv2:extensionData state:interface ;
388
389	lv2:port [
390	# input event port
391	  a lv2:InputPort ,
392			atom:AtomPort ;
393		atom:bufferType atom:Sequence ;
394		atom:supports xpress:Message, patch:Message ;
395		lv2:index 0 ;
396		lv2:symbol "event_in" ;
397		lv2:name "Event Input" ;
398		lv2:designation lv2:control ;
399	] , [
400	# output midi port
401	  a lv2:OutputPort ,
402			atom:AtomPort ;
403		atom:bufferType atom:Sequence ;
404		atom:supports midi:MidiEvent, patch:Message ;
405		lv2:index 1 ;
406		lv2:symbol "midi_out" ;
407		lv2:name "MIDI Output" ;
408		lv2:designation lv2:control ;
409	] ;
410
411	patch:writable
412		esp:mpe_zones ,
413		esp:mpe_velocity ,
414		esp:mpe_master_range_1 ,
415		esp:mpe_master_range_2 ,
416		esp:mpe_master_range_3 ,
417		esp:mpe_master_range_4 ,
418		esp:mpe_master_range_5 ,
419		esp:mpe_master_range_6 ,
420		esp:mpe_master_range_7 ,
421		esp:mpe_master_range_8 ,
422		esp:mpe_voice_range_1 ,
423		esp:mpe_voice_range_2 ,
424		esp:mpe_voice_range_3 ,
425		esp:mpe_voice_range_4 ,
426		esp:mpe_voice_range_5 ,
427		esp:mpe_voice_range_6 ,
428		esp:mpe_voice_range_7 ,
429		esp:mpe_voice_range_8 ,
430		esp:mpe_pressure_controller_1 ,
431		esp:mpe_pressure_controller_2 ,
432		esp:mpe_pressure_controller_3 ,
433		esp:mpe_pressure_controller_4 ,
434		esp:mpe_pressure_controller_5 ,
435		esp:mpe_pressure_controller_6 ,
436		esp:mpe_pressure_controller_7 ,
437		esp:mpe_pressure_controller_8 ,
438		esp:mpe_timbre_controller_1 ,
439		esp:mpe_timbre_controller_2 ,
440		esp:mpe_timbre_controller_3 ,
441		esp:mpe_timbre_controller_4 ,
442		esp:mpe_timbre_controller_5 ,
443		esp:mpe_timbre_controller_6 ,
444		esp:mpe_timbre_controller_7 ,
445		esp:mpe_timbre_controller_8 ;
446
447	state:state [
448		esp:mpe_zones 1 ;
449		esp:mpe_velocity 64 ;
450		esp:mpe_master_range_1 2 ;
451		esp:mpe_master_range_2 2 ;
452		esp:mpe_master_range_3 2 ;
453		esp:mpe_master_range_4 2 ;
454		esp:mpe_master_range_5 2 ;
455		esp:mpe_master_range_6 2 ;
456		esp:mpe_master_range_7 2 ;
457		esp:mpe_master_range_8 2 ;
458		esp:mpe_voice_range_1 48 ;
459		esp:mpe_voice_range_2 48 ;
460		esp:mpe_voice_range_3 48 ;
461		esp:mpe_voice_range_4 48 ;
462		esp:mpe_voice_range_5 48 ;
463		esp:mpe_voice_range_6 48 ;
464		esp:mpe_voice_range_7 48 ;
465		esp:mpe_voice_range_8 48 ;
466		esp:mpe_pressure_controller_1 70 ;
467		esp:mpe_pressure_controller_2 70 ;
468		esp:mpe_pressure_controller_3 70 ;
469		esp:mpe_pressure_controller_4 70 ;
470		esp:mpe_pressure_controller_5 70 ;
471		esp:mpe_pressure_controller_6 70 ;
472		esp:mpe_pressure_controller_7 70 ;
473		esp:mpe_pressure_controller_8 70 ;
474		esp:mpe_timbre_controller_1 74 ;
475		esp:mpe_timbre_controller_2 74 ;
476		esp:mpe_timbre_controller_3 74 ;
477		esp:mpe_timbre_controller_4 74 ;
478		esp:mpe_timbre_controller_5 74 ;
479		esp:mpe_timbre_controller_6 74 ;
480		esp:mpe_timbre_controller_7 74 ;
481		esp:mpe_timbre_controller_8 74 ;
482	] .
483
484# MPE Input Plugin
485esp:mpe_in
486	a lv2:Plugin ,
487		lv2:ConverterPlugin ;
488	doap:name "Espressivo MPE In" ;
489	doap:license lic:Artistic-2.0 ;
490	lv2:project proj:espressivo ;
491	lv2:optionalFeature lv2:isLive, lv2:hardRTCapable, xpress:voiceMap, state:threadSafeRestore ;
492	lv2:requiredFeature urid:map, state:loadDefaultState ;
493	lv2:extensionData state:interface ;
494
495	lv2:port [
496	# input event port
497	  a lv2:InputPort ,
498			atom:AtomPort ;
499		atom:bufferType atom:Sequence ;
500		atom:supports midi:MidiEvent, patch:Message ;
501		lv2:index 0 ;
502		lv2:symbol "event_in" ;
503		lv2:name "Event Input" ;
504		lv2:designation lv2:control ;
505	] , [
506	# output midi port
507	  a lv2:OutputPort ,
508			atom:AtomPort ;
509		atom:bufferType atom:Sequence ;
510		atom:supports xpress:Message, patch:Message ;
511		lv2:index 1 ;
512		lv2:symbol "midi_out" ;
513		lv2:name "MIDI Output" ;
514		lv2:designation lv2:control ;
515	] ;
516
517	patch:readable
518		esp:mpe_zones ,
519		esp:mpe_master_range_1 ,
520		esp:mpe_master_range_2 ,
521		esp:mpe_master_range_3 ,
522		esp:mpe_master_range_4 ,
523		esp:mpe_master_range_5 ,
524		esp:mpe_master_range_6 ,
525		esp:mpe_master_range_7 ,
526		esp:mpe_master_range_8 ,
527		esp:mpe_voice_range_1 ,
528		esp:mpe_voice_range_2 ,
529		esp:mpe_voice_range_3 ,
530		esp:mpe_voice_range_4 ,
531		esp:mpe_voice_range_5 ,
532		esp:mpe_voice_range_6 ,
533		esp:mpe_voice_range_7 ,
534		esp:mpe_voice_range_8 ;
535
536	state:state [
537	] .
538
539esp:tuio2_deviceWidth
540	a lv2:Parameter ;
541	rdfs:label "Device width" ;
542	rdfs:comment "device width in number of pixels or sensors" ;
543	rdfs:range atom:Int ;
544	lv2:minimum 1 ;
545	lv2:maximum 65535 .
546
547esp:tuio2_deviceHeight
548	a lv2:Parameter ;
549	rdfs:label "Device height" ;
550	rdfs:comment "device height in number of pixels or sensors" ;
551	rdfs:range atom:Int ;
552	lv2:minimum 1 ;
553	lv2:maximum 65535 .
554
555esp:tuio2_deviceName
556	a lv2:Parameter ;
557	rdfs:label "Device name" ;
558	rdfs:comment "device name, e.g. REAC:0@0x7F000001" ;
559	rdfs:range atom:String .
560
561esp:tuio2_octave
562	a lv2:Parameter ;
563	rdfs:label "Octave" ;
564	rdfs:comment "reference octave for fractional MIDI mapping" ;
565	rdfs:range atom:Int ;
566	units:unit units:oct ;
567	lv2:minimum 0 ;
568	lv2:maximum 8 .
569
570esp:tuio2_sensorsPerSemitone
571	a lv2:Parameter ;
572	rdfs:label "Sensors per Semitone" ;
573	rdfs:comment "sensors per semitone for fractional MIDI mapping" ;
574	rdfs:range atom:Int ;
575	lv2:minimum 1 ;
576	lv2:maximum 160 .
577
578esp:tuio2_filterStiffness
579	a lv2:Parameter ;
580	rdfs:label "Filter stiffness" ;
581	rdfs:comment "stiffness of IIR filter for velocity signal derivation" ;
582	rdfs:range atom:Int ;
583	units:unit units:frame ;
584	lv2:minimum 1 ;
585	lv2:maximum 128 .
586
587# TUIO2 Input Plugin
588esp:tuio2_in
589	a lv2:Plugin ,
590		lv2:ConverterPlugin ;
591	doap:name "Espressivo TUIO2 In" ;
592	doap:license lic:Artistic-2.0 ;
593	lv2:project proj:espressivo ;
594	lv2:optionalFeature lv2:isLive, lv2:hardRTCapable, log:log, xpress:voiceMap, state:threadSafeRestore ;
595	lv2:requiredFeature urid:map, state:loadDefaultState ;
596	lv2:extensionData state:interface ;
597
598	lv2:port [
599	# input event port
600	  a lv2:InputPort ,
601			atom:AtomPort ;
602		atom:bufferType atom:Sequence ;
603		atom:supports osc:Event, patch:Message ;
604		lv2:index 0 ;
605		lv2:symbol "osc_in" ;
606		lv2:name "OSC Input" ;
607		lv2:designation lv2:control ;
608	] , [
609	# output event port
610	  a lv2:OutputPort ,
611			atom:AtomPort ;
612		atom:bufferType atom:Sequence ;
613		atom:supports xpress:Message, patch:Message ;
614		lv2:index 1 ;
615		lv2:symbol "event_out" ;
616		lv2:name "Event Output" ;
617		lv2:designation lv2:control ;
618	] ;
619
620	patch:readable
621		esp:tuio2_deviceWidth ,
622		esp:tuio2_deviceHeight ,
623		esp:tuio2_deviceName ;
624
625	patch:writable
626		esp:tuio2_octave ,
627		esp:tuio2_sensorsPerSemitone ,
628		esp:tuio2_filterStiffness ;
629
630	state:state [
631		esp:tuio2_octave 2 ;
632		esp:tuio2_sensorsPerSemitone 3 ;
633		esp:tuio2_filterStiffness 32 ;
634	] .
635
636esp:tuio2_timestampOffset
637	a lv2:Parameter ;
638	rdfs:label "Timestamp offset" ;
639	rdfs:comment "timestamp offset of outgoing OSC bundles" ;
640	rdfs:range atom:Float ;
641	units:unit units:ms;
642	lv2:minimum 0.0 ;
643	lv2:maximum 200.0 .
644
645# TUIO2 Output Plugin
646esp:tuio2_out
647	a lv2:Plugin ,
648		lv2:ConverterPlugin ;
649	doap:name "Espressivo TUIO2 Out" ;
650	doap:license lic:Artistic-2.0 ;
651	lv2:project proj:espressivo ;
652	lv2:optionalFeature lv2:isLive, lv2:hardRTCapable, log:log, xpress:voiceMap, osc:schedule, state:threadSafeRestore ;
653	lv2:requiredFeature urid:map, state:loadDefaultState ;
654	lv2:extensionData state:interface ;
655
656	lv2:port [
657	# input event port
658	  a lv2:InputPort ,
659			atom:AtomPort ;
660		atom:bufferType atom:Sequence ;
661		atom:supports xpress:Message, patch:Message ;
662		lv2:index 0 ;
663		lv2:symbol "event_in" ;
664		lv2:name "Event Input" ;
665		lv2:designation lv2:control ;
666	] , [
667	# output event port
668	  a lv2:OutputPort ,
669			atom:AtomPort ;
670		atom:bufferType atom:Sequence ;
671		atom:supports osc:Event, patch:Message ;
672		lv2:index 1 ;
673		lv2:symbol "osc_out" ;
674		lv2:name "OSC Output" ;
675		lv2:designation lv2:control ;
676	] ;
677
678	patch:writable
679		esp:tuio2_deviceWidth ,
680		esp:tuio2_deviceHeight ,
681		esp:tuio2_deviceName ,
682		esp:tuio2_octave ,
683		esp:tuio2_sensorsPerSemitone ,
684		esp:tuio2_timestampOffset ;
685
686	state:state [
687		esp:tuio2_deviceWidth 160 ;
688		esp:tuio2_deviceHeight 1 ;
689		esp:tuio2_deviceName "LV2:0@0x0" ;
690		esp:tuio2_octave 2 ;
691		esp:tuio2_sensorsPerSemitone 3 ;
692		esp:tuio2_timestampOffset "2.0"^^xsd:float ;
693	] .
694
695esp:midi_range_1
696	a lv2:Parameter ;
697	rdfs:label "Bend Range 1" ;
698	rdfs:comment "MIDI pitch bend range for channel 1" ;
699	rdfs:range atom:Float ;
700	units:unit units:semitone12TET;
701	lv2:minimum 0.0 ;
702	lv2:maximum 96.0 .
703esp:midi_range_2
704	a lv2:Parameter ;
705	rdfs:label "Bend Range 2" ;
706	rdfs:comment "MIDI pitch bend range for channel 2" ;
707	rdfs:range atom:Float ;
708	units:unit units:semitone12TET;
709	lv2:minimum 0.0 ;
710	lv2:maximum 96.0 .
711esp:midi_range_3
712	a lv2:Parameter ;
713	rdfs:label "Bend Range 3" ;
714	rdfs:comment "MIDI pitch bend range for channel 3" ;
715	rdfs:range atom:Float ;
716	units:unit units:semitone12TET;
717	lv2:minimum 0.0 ;
718	lv2:maximum 96.0 .
719esp:midi_range_4
720	a lv2:Parameter ;
721	rdfs:label "Bend Range 4" ;
722	rdfs:comment "MIDI pitch bend range for channel 4" ;
723	rdfs:range atom:Float ;
724	units:unit units:semitone12TET;
725	lv2:minimum 0.0 ;
726	lv2:maximum 96.0 .
727esp:midi_range_5
728	a lv2:Parameter ;
729	rdfs:label "Bend Range 5" ;
730	rdfs:comment "MIDI pitch bend range for channel 5" ;
731	rdfs:range atom:Float ;
732	units:unit units:semitone12TET;
733	lv2:minimum 0.0 ;
734	lv2:maximum 96.0 .
735esp:midi_range_6
736	a lv2:Parameter ;
737	rdfs:label "Bend Range 6" ;
738	rdfs:comment "MIDI pitch bend range for channel 6" ;
739	rdfs:range atom:Float ;
740	units:unit units:semitone12TET;
741	lv2:minimum 0.0 ;
742	lv2:maximum 96.0 .
743esp:midi_range_7
744	a lv2:Parameter ;
745	rdfs:label "Bend Range 7" ;
746	rdfs:comment "MIDI pitch bend range for channel 7" ;
747	rdfs:range atom:Float ;
748	units:unit units:semitone12TET;
749	lv2:minimum 0.0 ;
750	lv2:maximum 96.0 .
751esp:midi_range_8
752	a lv2:Parameter ;
753	rdfs:label "Bend Range 8" ;
754	rdfs:comment "MIDI pitch bend range for channel 8" ;
755	rdfs:range atom:Float ;
756	units:unit units:semitone12TET;
757	lv2:minimum 0.0 ;
758	lv2:maximum 96.0 .
759esp:midi_range_9
760	a lv2:Parameter ;
761	rdfs:label "Bend Range 9" ;
762	rdfs:comment "MIDI pitch bend range for channel 9" ;
763	rdfs:range atom:Float ;
764	units:unit units:semitone12TET;
765	lv2:minimum 0.0 ;
766	lv2:maximum 96.0 .
767esp:midi_range_10
768	a lv2:Parameter ;
769	rdfs:label "Bend Range 10" ;
770	rdfs:comment "MIDI pitch bend range for channel 10" ;
771	rdfs:range atom:Float ;
772	units:unit units:semitone12TET;
773	lv2:minimum 0.0 ;
774	lv2:maximum 96.0 .
775esp:midi_range_11
776	a lv2:Parameter ;
777	rdfs:label "Bend Range 11" ;
778	rdfs:comment "MIDI pitch bend range for channel 11" ;
779	rdfs:range atom:Float ;
780	units:unit units:semitone12TET;
781	lv2:minimum 0.0 ;
782	lv2:maximum 96.0 .
783esp:midi_range_12
784	a lv2:Parameter ;
785	rdfs:label "Bend Range 12" ;
786	rdfs:comment "MIDI pitch bend range for channel 12" ;
787	rdfs:range atom:Float ;
788	units:unit units:semitone12TET;
789	lv2:minimum 0.0 ;
790	lv2:maximum 96.0 .
791esp:midi_range_13
792	a lv2:Parameter ;
793	rdfs:label "Bend Range 13" ;
794	rdfs:comment "MIDI pitch bend range for channel 13" ;
795	rdfs:range atom:Float ;
796	units:unit units:semitone12TET;
797	lv2:minimum 0.0 ;
798	lv2:maximum 96.0 .
799esp:midi_range_14
800	a lv2:Parameter ;
801	rdfs:label "Bend Range 14" ;
802	rdfs:comment "MIDI pitch bend range for channel 14" ;
803	rdfs:range atom:Float ;
804	units:unit units:semitone12TET;
805	lv2:minimum 0.0 ;
806	lv2:maximum 96.0 .
807esp:midi_range_15
808	a lv2:Parameter ;
809	rdfs:label "Bend Range 15" ;
810	rdfs:comment "MIDI pitch bend range for channel 15" ;
811	rdfs:range atom:Float ;
812	units:unit units:semitone12TET;
813	lv2:minimum 0.0 ;
814	lv2:maximum 96.0 .
815esp:midi_range_16
816	a lv2:Parameter ;
817	rdfs:label "Bend Range 16" ;
818	rdfs:comment "MIDI pitch bend range for channel 16" ;
819	rdfs:range atom:Float ;
820	units:unit units:semitone12TET;
821	lv2:minimum 0.0 ;
822	lv2:maximum 96.0 .
823
824esp:midi_pressure_controller_1
825	a lv2:Parameter ;
826	rdfs:label "Pressure Controller 1" ;
827	rdfs:comment "MIDI Controller for channel 1" ;
828	rdfs:range atom:Int ;
829	units:unit units:midiController ;
830	lv2:minimum 0 ;
831	lv2:maximum 127 .
832esp:midi_pressure_controller_2
833	a lv2:Parameter ;
834	rdfs:label "Pressure Controller 2" ;
835	rdfs:comment "MIDI Controller for channel 2" ;
836	rdfs:range atom:Int ;
837	units:unit units:midiController ;
838	lv2:minimum 0 ;
839	lv2:maximum 127 .
840esp:midi_pressure_controller_3
841	a lv2:Parameter ;
842	rdfs:label "Pressure Controller 3" ;
843	rdfs:comment "MIDI Controller for channel 3" ;
844	rdfs:range atom:Int ;
845	units:unit units:midiController ;
846	lv2:minimum 0 ;
847	lv2:maximum 127 .
848esp:midi_pressure_controller_4
849	a lv2:Parameter ;
850	rdfs:label "Pressure Controller 4" ;
851	rdfs:comment "MIDI Controller for channel 4" ;
852	rdfs:range atom:Int ;
853	units:unit units:midiController ;
854	lv2:minimum 0 ;
855	lv2:maximum 127 .
856esp:midi_pressure_controller_5
857	a lv2:Parameter ;
858	rdfs:label "Pressure Controller 5" ;
859	rdfs:comment "MIDI Controller for channel 5" ;
860	rdfs:range atom:Int ;
861	units:unit units:midiController ;
862	lv2:minimum 0 ;
863	lv2:maximum 127 .
864esp:midi_pressure_controller_6
865	a lv2:Parameter ;
866	rdfs:label "Pressure Controller 6" ;
867	rdfs:comment "MIDI Controller for channel 6" ;
868	rdfs:range atom:Int ;
869	units:unit units:midiController ;
870	lv2:minimum 0 ;
871	lv2:maximum 127 .
872esp:midi_pressure_controller_7
873	a lv2:Parameter ;
874	rdfs:label "Pressure Controller 7" ;
875	rdfs:comment "MIDI Controller for channel 7" ;
876	rdfs:range atom:Int ;
877	units:unit units:midiController ;
878	lv2:minimum 0 ;
879	lv2:maximum 127 .
880esp:midi_pressure_controller_8
881	a lv2:Parameter ;
882	rdfs:label "Pressure Controller 8" ;
883	rdfs:comment "MIDI Controller for channel 8" ;
884	rdfs:range atom:Int ;
885	units:unit units:midiController ;
886	lv2:minimum 0 ;
887	lv2:maximum 127 .
888esp:midi_pressure_controller_9
889	a lv2:Parameter ;
890	rdfs:label "Pressure Controller 9" ;
891	rdfs:comment "MIDI Controller for channel 9" ;
892	rdfs:range atom:Int ;
893	units:unit units:midiController ;
894	lv2:minimum 0 ;
895	lv2:maximum 127 .
896esp:midi_pressure_controller_10
897	a lv2:Parameter ;
898	rdfs:label "Pressure Controller 10" ;
899	rdfs:comment "MIDI Controller for channel 10" ;
900	rdfs:range atom:Int ;
901	units:unit units:midiController ;
902	lv2:minimum 0 ;
903	lv2:maximum 127 .
904esp:midi_pressure_controller_11
905	a lv2:Parameter ;
906	rdfs:label "Pressure Controller 11" ;
907	rdfs:comment "MIDI Controller for channel 11" ;
908	rdfs:range atom:Int ;
909	units:unit units:midiController ;
910	lv2:minimum 0 ;
911	lv2:maximum 127 .
912esp:midi_pressure_controller_12
913	a lv2:Parameter ;
914	rdfs:label "Pressure Controller 12" ;
915	rdfs:comment "MIDI Controller for channel 12" ;
916	rdfs:range atom:Int ;
917	units:unit units:midiController ;
918	lv2:minimum 0 ;
919	lv2:maximum 127 .
920esp:midi_pressure_controller_13
921	a lv2:Parameter ;
922	rdfs:label "Pressure Controller 13" ;
923	rdfs:comment "MIDI Controller for channel 13" ;
924	rdfs:range atom:Int ;
925	units:unit units:midiController ;
926	lv2:minimum 0 ;
927	lv2:maximum 127 .
928esp:midi_pressure_controller_14
929	a lv2:Parameter ;
930	rdfs:label "Pressure Controller 14" ;
931	rdfs:comment "MIDI Controller for channel 14" ;
932	rdfs:range atom:Int ;
933	units:unit units:midiController ;
934	lv2:minimum 0 ;
935	lv2:maximum 127 .
936esp:midi_pressure_controller_15
937	a lv2:Parameter ;
938	rdfs:label "Pressure Controller 15" ;
939	rdfs:comment "MIDI Controller for channel 15" ;
940	rdfs:range atom:Int ;
941	units:unit units:midiController ;
942	lv2:minimum 0 ;
943	lv2:maximum 127 .
944esp:midi_pressure_controller_16
945	a lv2:Parameter ;
946	rdfs:label "Pressure Controller 16" ;
947	rdfs:comment "MIDI Controller for channel 16" ;
948	rdfs:range atom:Int ;
949	units:unit units:midiController ;
950	lv2:minimum 0 ;
951	lv2:maximum 127 .
952
953esp:midi_timbre_controller_1
954	a lv2:Parameter ;
955	rdfs:label "Timbre Controller 1" ;
956	rdfs:comment "MIDI Controller for channel 1" ;
957	rdfs:range atom:Int ;
958	units:unit units:midiController ;
959	lv2:minimum 0 ;
960	lv2:maximum 127 .
961esp:midi_timbre_controller_2
962	a lv2:Parameter ;
963	rdfs:label "Timbre Controller 2" ;
964	rdfs:comment "MIDI Controller for channel 2" ;
965	rdfs:range atom:Int ;
966	units:unit units:midiController ;
967	lv2:minimum 0 ;
968	lv2:maximum 127 .
969esp:midi_timbre_controller_3
970	a lv2:Parameter ;
971	rdfs:label "Timbre Controller 3" ;
972	rdfs:comment "MIDI Controller for channel 3" ;
973	rdfs:range atom:Int ;
974	units:unit units:midiController ;
975	lv2:minimum 0 ;
976	lv2:maximum 127 .
977esp:midi_timbre_controller_4
978	a lv2:Parameter ;
979	rdfs:label "Timbre Controller 4" ;
980	rdfs:comment "MIDI Controller for channel 4" ;
981	rdfs:range atom:Int ;
982	units:unit units:midiController ;
983	lv2:minimum 0 ;
984	lv2:maximum 127 .
985esp:midi_timbre_controller_5
986	a lv2:Parameter ;
987	rdfs:label "Timbre Controller 5" ;
988	rdfs:comment "MIDI Controller for channel 5" ;
989	rdfs:range atom:Int ;
990	units:unit units:midiController ;
991	lv2:minimum 0 ;
992	lv2:maximum 127 .
993esp:midi_timbre_controller_6
994	a lv2:Parameter ;
995	rdfs:label "Timbre Controller 6" ;
996	rdfs:comment "MIDI Controller for channel 6" ;
997	rdfs:range atom:Int ;
998	units:unit units:midiController ;
999	lv2:minimum 0 ;
1000	lv2:maximum 127 .
1001esp:midi_timbre_controller_7
1002	a lv2:Parameter ;
1003	rdfs:label "Timbre Controller 7" ;
1004	rdfs:comment "MIDI Controller for channel 7" ;
1005	rdfs:range atom:Int ;
1006	units:unit units:midiController ;
1007	lv2:minimum 0 ;
1008	lv2:maximum 127 .
1009esp:midi_timbre_controller_8
1010	a lv2:Parameter ;
1011	rdfs:label "Timbre Controller 8" ;
1012	rdfs:comment "MIDI Controller for channel 8" ;
1013	rdfs:range atom:Int ;
1014	units:unit units:midiController ;
1015	lv2:minimum 0 ;
1016	lv2:maximum 127 .
1017esp:midi_timbre_controller_9
1018	a lv2:Parameter ;
1019	rdfs:label "Timbre Controller 9" ;
1020	rdfs:comment "MIDI Controller for channel 9" ;
1021	rdfs:range atom:Int ;
1022	units:unit units:midiController ;
1023	lv2:minimum 0 ;
1024	lv2:maximum 127 .
1025esp:midi_timbre_controller_10
1026	a lv2:Parameter ;
1027	rdfs:label "Timbre Controller 10" ;
1028	rdfs:comment "MIDI Controller for channel 10" ;
1029	rdfs:range atom:Int ;
1030	units:unit units:midiController ;
1031	lv2:minimum 0 ;
1032	lv2:maximum 127 .
1033esp:midi_timbre_controller_11
1034	a lv2:Parameter ;
1035	rdfs:label "Timbre Controller 11" ;
1036	rdfs:comment "MIDI Controller for channel 11" ;
1037	rdfs:range atom:Int ;
1038	units:unit units:midiController ;
1039	lv2:minimum 0 ;
1040	lv2:maximum 127 .
1041esp:midi_timbre_controller_12
1042	a lv2:Parameter ;
1043	rdfs:label "Timbre Controller 12" ;
1044	rdfs:comment "MIDI Controller for channel 12" ;
1045	rdfs:range atom:Int ;
1046	units:unit units:midiController ;
1047	lv2:minimum 0 ;
1048	lv2:maximum 127 .
1049esp:midi_timbre_controller_13
1050	a lv2:Parameter ;
1051	rdfs:label "Timbre Controller 13" ;
1052	rdfs:comment "MIDI Controller for channel 13" ;
1053	rdfs:range atom:Int ;
1054	units:unit units:midiController ;
1055	lv2:minimum 0 ;
1056	lv2:maximum 127 .
1057esp:midi_timbre_controller_14
1058	a lv2:Parameter ;
1059	rdfs:label "Timbre Controller 14" ;
1060	rdfs:comment "MIDI Controller for channel 14" ;
1061	rdfs:range atom:Int ;
1062	units:unit units:midiController ;
1063	lv2:minimum 0 ;
1064	lv2:maximum 127 .
1065esp:midi_timbre_controller_15
1066	a lv2:Parameter ;
1067	rdfs:label "Timbre Controller 15" ;
1068	rdfs:comment "MIDI Controller for channel 15" ;
1069	rdfs:range atom:Int ;
1070	units:unit units:midiController ;
1071	lv2:minimum 0 ;
1072	lv2:maximum 127 .
1073esp:midi_timbre_controller_16
1074	a lv2:Parameter ;
1075	rdfs:label "Timbre Controller 16" ;
1076	rdfs:comment "MIDI Controller for channel 16" ;
1077	rdfs:range atom:Int ;
1078	units:unit units:midiController ;
1079	lv2:minimum 0 ;
1080	lv2:maximum 127 .
1081
1082esp:midi_pressure_mode_1
1083	a lv2:Parameter ;
1084	rdfs:label "Pressure Mode 1" ;
1085	rdfs:comment "MIDI Mode for channel 1" ;
1086	rdfs:range atom:Int ;
1087	lv2:scalePoint [ rdfs:label "Controller" ; rdf:value 0 ] ;
1088	lv2:scalePoint [ rdfs:label "Note Pressure" ; rdf:value 1 ] ;
1089	lv2:scalePoint [ rdfs:label "Channel Pressure" ; rdf:value 2 ] ;
1090	lv2:scalePoint [ rdfs:label "Note Velocity" ; rdf:value 3 ] ;
1091	lv2:minimum 0 ;
1092	lv2:maximum 3 .
1093esp:midi_pressure_mode_2
1094	a lv2:Parameter ;
1095	rdfs:label "Pressure Mode 2" ;
1096	rdfs:comment "MIDI Mode for channel 2" ;
1097	rdfs:range atom:Int ;
1098	lv2:scalePoint [ rdfs:label "Controller" ; rdf:value 0 ] ;
1099	lv2:scalePoint [ rdfs:label "Note Pressure" ; rdf:value 1 ] ;
1100	lv2:scalePoint [ rdfs:label "Channel Pressure" ; rdf:value 2 ] ;
1101	lv2:scalePoint [ rdfs:label "Note Velocity" ; rdf:value 3 ] ;
1102	lv2:minimum 0 ;
1103	lv2:maximum 3 .
1104esp:midi_pressure_mode_3
1105	a lv2:Parameter ;
1106	rdfs:label "Pressure Mode 3" ;
1107	rdfs:comment "MIDI Mode for channel 3" ;
1108	rdfs:range atom:Int ;
1109	lv2:scalePoint [ rdfs:label "Controller" ; rdf:value 0 ] ;
1110	lv2:scalePoint [ rdfs:label "Note Pressure" ; rdf:value 1 ] ;
1111	lv2:scalePoint [ rdfs:label "Channel Pressure" ; rdf:value 2 ] ;
1112	lv2:scalePoint [ rdfs:label "Note Velocity" ; rdf:value 3 ] ;
1113	lv2:minimum 0 ;
1114	lv2:maximum 3 .
1115esp:midi_pressure_mode_4
1116	a lv2:Parameter ;
1117	rdfs:label "Pressure Mode 4" ;
1118	rdfs:comment "MIDI Mode for channel 4" ;
1119	rdfs:range atom:Int ;
1120	lv2:scalePoint [ rdfs:label "Controller" ; rdf:value 0 ] ;
1121	lv2:scalePoint [ rdfs:label "Note Pressure" ; rdf:value 1 ] ;
1122	lv2:scalePoint [ rdfs:label "Channel Pressure" ; rdf:value 2 ] ;
1123	lv2:scalePoint [ rdfs:label "Note Velocity" ; rdf:value 3 ] ;
1124	lv2:minimum 0 ;
1125	lv2:maximum 3 .
1126esp:midi_pressure_mode_5
1127	a lv2:Parameter ;
1128	rdfs:label "Pressure Mode 5" ;
1129	rdfs:comment "MIDI Mode for channel 5" ;
1130	rdfs:range atom:Int ;
1131	lv2:scalePoint [ rdfs:label "Controller" ; rdf:value 0 ] ;
1132	lv2:scalePoint [ rdfs:label "Note Pressure" ; rdf:value 1 ] ;
1133	lv2:scalePoint [ rdfs:label "Channel Pressure" ; rdf:value 2 ] ;
1134	lv2:scalePoint [ rdfs:label "Note Velocity" ; rdf:value 3 ] ;
1135	lv2:minimum 0 ;
1136	lv2:maximum 3 .
1137esp:midi_pressure_mode_6
1138	a lv2:Parameter ;
1139	rdfs:label "Pressure Mode 6" ;
1140	rdfs:comment "MIDI Mode for channel 6" ;
1141	rdfs:range atom:Int ;
1142	lv2:scalePoint [ rdfs:label "Controller" ; rdf:value 0 ] ;
1143	lv2:scalePoint [ rdfs:label "Note Pressure" ; rdf:value 1 ] ;
1144	lv2:scalePoint [ rdfs:label "Channel Pressure" ; rdf:value 2 ] ;
1145	lv2:scalePoint [ rdfs:label "Note Velocity" ; rdf:value 3 ] ;
1146	lv2:minimum 0 ;
1147	lv2:maximum 3 .
1148esp:midi_pressure_mode_7
1149	a lv2:Parameter ;
1150	rdfs:label "Pressure Mode 7" ;
1151	rdfs:comment "MIDI Mode for channel 7" ;
1152	rdfs:range atom:Int ;
1153	lv2:scalePoint [ rdfs:label "Controller" ; rdf:value 0 ] ;
1154	lv2:scalePoint [ rdfs:label "Note Pressure" ; rdf:value 1 ] ;
1155	lv2:scalePoint [ rdfs:label "Channel Pressure" ; rdf:value 2 ] ;
1156	lv2:scalePoint [ rdfs:label "Note Velocity" ; rdf:value 3 ] ;
1157	lv2:minimum 0 ;
1158	lv2:maximum 3 .
1159esp:midi_pressure_mode_8
1160	a lv2:Parameter ;
1161	rdfs:label "Pressure Mode 8" ;
1162	rdfs:comment "MIDI Mode for channel 8" ;
1163	rdfs:range atom:Int ;
1164	lv2:scalePoint [ rdfs:label "Controller" ; rdf:value 0 ] ;
1165	lv2:scalePoint [ rdfs:label "Note Pressure" ; rdf:value 1 ] ;
1166	lv2:scalePoint [ rdfs:label "Channel Pressure" ; rdf:value 2 ] ;
1167	lv2:scalePoint [ rdfs:label "Note Velocity" ; rdf:value 3 ] ;
1168	lv2:minimum 0 ;
1169	lv2:maximum 3 .
1170esp:midi_pressure_mode_9
1171	a lv2:Parameter ;
1172	rdfs:label "Pressure Mode 9" ;
1173	rdfs:comment "MIDI Mode for channel 9" ;
1174	rdfs:range atom:Int ;
1175	lv2:scalePoint [ rdfs:label "Controller" ; rdf:value 0 ] ;
1176	lv2:scalePoint [ rdfs:label "Note Pressure" ; rdf:value 1 ] ;
1177	lv2:scalePoint [ rdfs:label "Channel Pressure" ; rdf:value 2 ] ;
1178	lv2:scalePoint [ rdfs:label "Note Velocity" ; rdf:value 3 ] ;
1179	lv2:minimum 0 ;
1180	lv2:maximum 3 .
1181esp:midi_pressure_mode_10
1182	a lv2:Parameter ;
1183	rdfs:label "Pressure Mode 10" ;
1184	rdfs:comment "MIDI Mode for channel 10" ;
1185	rdfs:range atom:Int ;
1186	lv2:scalePoint [ rdfs:label "Controller" ; rdf:value 0 ] ;
1187	lv2:scalePoint [ rdfs:label "Note Pressure" ; rdf:value 1 ] ;
1188	lv2:scalePoint [ rdfs:label "Channel Pressure" ; rdf:value 2 ] ;
1189	lv2:scalePoint [ rdfs:label "Note Velocity" ; rdf:value 3 ] ;
1190	lv2:minimum 0 ;
1191	lv2:maximum 3 .
1192esp:midi_pressure_mode_11
1193	a lv2:Parameter ;
1194	rdfs:label "Pressure Mode 11" ;
1195	rdfs:comment "MIDI Mode for channel 11" ;
1196	rdfs:range atom:Int ;
1197	lv2:scalePoint [ rdfs:label "Controller" ; rdf:value 0 ] ;
1198	lv2:scalePoint [ rdfs:label "Note Pressure" ; rdf:value 1 ] ;
1199	lv2:scalePoint [ rdfs:label "Channel Pressure" ; rdf:value 2 ] ;
1200	lv2:scalePoint [ rdfs:label "Note Velocity" ; rdf:value 3 ] ;
1201	lv2:minimum 0 ;
1202	lv2:maximum 3 .
1203esp:midi_pressure_mode_12
1204	a lv2:Parameter ;
1205	rdfs:label "Pressure Mode 12" ;
1206	rdfs:comment "MIDI Mode for channel 12" ;
1207	rdfs:range atom:Int ;
1208	lv2:scalePoint [ rdfs:label "Controller" ; rdf:value 0 ] ;
1209	lv2:scalePoint [ rdfs:label "Note Pressure" ; rdf:value 1 ] ;
1210	lv2:scalePoint [ rdfs:label "Channel Pressure" ; rdf:value 2 ] ;
1211	lv2:scalePoint [ rdfs:label "Note Velocity" ; rdf:value 3 ] ;
1212	lv2:minimum 0 ;
1213	lv2:maximum 3 .
1214esp:midi_pressure_mode_13
1215	a lv2:Parameter ;
1216	rdfs:label "Pressure Mode 13" ;
1217	rdfs:comment "MIDI Mode for channel 13" ;
1218	rdfs:range atom:Int ;
1219	lv2:scalePoint [ rdfs:label "Controller" ; rdf:value 0 ] ;
1220	lv2:scalePoint [ rdfs:label "Note Pressure" ; rdf:value 1 ] ;
1221	lv2:scalePoint [ rdfs:label "Channel Pressure" ; rdf:value 2 ] ;
1222	lv2:scalePoint [ rdfs:label "Note Velocity" ; rdf:value 3 ] ;
1223	lv2:minimum 0 ;
1224	lv2:maximum 3 .
1225esp:midi_pressure_mode_14
1226	a lv2:Parameter ;
1227	rdfs:label "Pressure Mode 14" ;
1228	rdfs:comment "MIDI Mode for channel 14" ;
1229	rdfs:range atom:Int ;
1230	lv2:scalePoint [ rdfs:label "Controller" ; rdf:value 0 ] ;
1231	lv2:scalePoint [ rdfs:label "Note Pressure" ; rdf:value 1 ] ;
1232	lv2:scalePoint [ rdfs:label "Channel Pressure" ; rdf:value 2 ] ;
1233	lv2:scalePoint [ rdfs:label "Note Velocity" ; rdf:value 3 ] ;
1234	lv2:minimum 0 ;
1235	lv2:maximum 3 .
1236esp:midi_pressure_mode_15
1237	a lv2:Parameter ;
1238	rdfs:label "Pressure Mode 15" ;
1239	rdfs:comment "MIDI Mode for channel 15" ;
1240	rdfs:range atom:Int ;
1241	lv2:scalePoint [ rdfs:label "Controller" ; rdf:value 0 ] ;
1242	lv2:scalePoint [ rdfs:label "Note Pressure" ; rdf:value 1 ] ;
1243	lv2:scalePoint [ rdfs:label "Channel Pressure" ; rdf:value 2 ] ;
1244	lv2:scalePoint [ rdfs:label "Note Velocity" ; rdf:value 3 ] ;
1245	lv2:minimum 0 ;
1246	lv2:maximum 3 .
1247esp:midi_pressure_mode_16
1248	a lv2:Parameter ;
1249	rdfs:label "Pressure Mode 16" ;
1250	rdfs:comment "MIDI Mode for channel 16" ;
1251	rdfs:range atom:Int ;
1252	lv2:scalePoint [ rdfs:label "Controller" ; rdf:value 0 ] ;
1253	lv2:scalePoint [ rdfs:label "Note Pressure" ; rdf:value 1 ] ;
1254	lv2:scalePoint [ rdfs:label "Channel Pressure" ; rdf:value 2 ] ;
1255	lv2:scalePoint [ rdfs:label "Note Velocity" ; rdf:value 3 ] ;
1256	lv2:minimum 0 ;
1257	lv2:maximum 3 .
1258
1259# MIDI Input Plugin
1260esp:midi_in
1261	a lv2:Plugin ,
1262		lv2:ConverterPlugin ;
1263	doap:name "Espressivo MIDI In" ;
1264	doap:license lic:Artistic-2.0 ;
1265	lv2:project proj:espressivo ;
1266	lv2:optionalFeature lv2:isLive, lv2:hardRTCapable, log:log, xpress:voiceMap, state:threadSafeRestore ;
1267	lv2:requiredFeature urid:map, state:loadDefaultState ;
1268	lv2:extensionData state:interface ;
1269
1270	lv2:port [
1271	# input event port
1272	  a lv2:InputPort ,
1273			atom:AtomPort ;
1274		atom:bufferType atom:Sequence ;
1275		atom:supports midi:MidiEvent, patch:Message ;
1276		lv2:index 0 ;
1277		lv2:symbol "event_in" ;
1278		lv2:name "Event In" ;
1279		lv2:designation lv2:control ;
1280	] , [
1281	# output event port
1282	  a lv2:OutputPort ,
1283			atom:AtomPort ;
1284		atom:bufferType atom:Sequence ;
1285		atom:supports patch:Message, xpress:Message ;
1286		lv2:index 1 ;
1287		lv2:symbol "event_out" ;
1288		lv2:name "Event Out" ;
1289		lv2:designation lv2:control ;
1290	] ;
1291
1292	patch:writable
1293		esp:midi_range_1 ,
1294		esp:midi_range_2 ,
1295		esp:midi_range_3 ,
1296		esp:midi_range_4 ,
1297		esp:midi_range_5 ,
1298		esp:midi_range_6 ,
1299		esp:midi_range_7 ,
1300		esp:midi_range_8 ,
1301		esp:midi_range_9 ,
1302		esp:midi_range_10 ,
1303		esp:midi_range_11 ,
1304		esp:midi_range_12 ,
1305		esp:midi_range_13 ,
1306		esp:midi_range_14 ,
1307		esp:midi_range_15 ,
1308		esp:midi_range_16 ,
1309
1310		esp:midi_pressure_controller_1 ,
1311		esp:midi_pressure_controller_2 ,
1312		esp:midi_pressure_controller_3 ,
1313		esp:midi_pressure_controller_4 ,
1314		esp:midi_pressure_controller_5 ,
1315		esp:midi_pressure_controller_6 ,
1316		esp:midi_pressure_controller_7 ,
1317		esp:midi_pressure_controller_8 ,
1318		esp:midi_pressure_controller_9 ,
1319		esp:midi_pressure_controller_10 ,
1320		esp:midi_pressure_controller_11 ,
1321		esp:midi_pressure_controller_12 ,
1322		esp:midi_pressure_controller_13 ,
1323		esp:midi_pressure_controller_14 ,
1324		esp:midi_pressure_controller_15 ,
1325		esp:midi_pressure_controller_16 ,
1326
1327		esp:midi_timbre_controller_1 ,
1328		esp:midi_timbre_controller_2 ,
1329		esp:midi_timbre_controller_3 ,
1330		esp:midi_timbre_controller_4 ,
1331		esp:midi_timbre_controller_5 ,
1332		esp:midi_timbre_controller_6 ,
1333		esp:midi_timbre_controller_7 ,
1334		esp:midi_timbre_controller_8 ,
1335		esp:midi_timbre_controller_9 ,
1336		esp:midi_timbre_controller_10 ,
1337		esp:midi_timbre_controller_11 ,
1338		esp:midi_timbre_controller_12 ,
1339		esp:midi_timbre_controller_13 ,
1340		esp:midi_timbre_controller_14 ,
1341		esp:midi_timbre_controller_15 ,
1342		esp:midi_timbre_controller_16 ,
1343
1344		esp:midi_pressure_mode_1 ,
1345		esp:midi_pressure_mode_2 ,
1346		esp:midi_pressure_mode_3 ,
1347		esp:midi_pressure_mode_4 ,
1348		esp:midi_pressure_mode_5 ,
1349		esp:midi_pressure_mode_6 ,
1350		esp:midi_pressure_mode_7 ,
1351		esp:midi_pressure_mode_8 ,
1352		esp:midi_pressure_mode_9 ,
1353		esp:midi_pressure_mode_10 ,
1354		esp:midi_pressure_mode_11 ,
1355		esp:midi_pressure_mode_12 ,
1356		esp:midi_pressure_mode_13 ,
1357		esp:midi_pressure_mode_14 ,
1358		esp:midi_pressure_mode_15 ,
1359		esp:midi_pressure_mode_16 ;
1360
1361	state:state [
1362		esp:midi_range_1  "2.0"^^xsd:float ;
1363		esp:midi_range_2  "2.0"^^xsd:float ;
1364		esp:midi_range_3  "2.0"^^xsd:float ;
1365		esp:midi_range_4  "2.0"^^xsd:float ;
1366		esp:midi_range_5  "2.0"^^xsd:float ;
1367		esp:midi_range_6  "2.0"^^xsd:float ;
1368		esp:midi_range_7  "2.0"^^xsd:float ;
1369		esp:midi_range_8  "2.0"^^xsd:float ;
1370		esp:midi_range_9  "2.0"^^xsd:float ;
1371		esp:midi_range_10 "2.0"^^xsd:float ;
1372		esp:midi_range_11 "2.0"^^xsd:float ;
1373		esp:midi_range_12 "2.0"^^xsd:float ;
1374		esp:midi_range_13 "2.0"^^xsd:float ;
1375		esp:midi_range_14 "2.0"^^xsd:float ;
1376		esp:midi_range_15 "2.0"^^xsd:float ;
1377		esp:midi_range_16 "2.0"^^xsd:float ;
1378
1379		esp:midi_pressure_controller_1 70 ;
1380		esp:midi_pressure_controller_2 70 ;
1381		esp:midi_pressure_controller_3 70 ;
1382		esp:midi_pressure_controller_4 70 ;
1383		esp:midi_pressure_controller_5 70 ;
1384		esp:midi_pressure_controller_6 70 ;
1385		esp:midi_pressure_controller_7 70 ;
1386		esp:midi_pressure_controller_8 70 ;
1387		esp:midi_pressure_controller_9 70 ;
1388		esp:midi_pressure_controller_10 70 ;
1389		esp:midi_pressure_controller_11 70 ;
1390		esp:midi_pressure_controller_12 70 ;
1391		esp:midi_pressure_controller_13 70 ;
1392		esp:midi_pressure_controller_14 70 ;
1393		esp:midi_pressure_controller_15 70 ;
1394		esp:midi_pressure_controller_16 70 ;
1395
1396		esp:midi_timbre_controller_1 74 ;
1397		esp:midi_timbre_controller_2 74 ;
1398		esp:midi_timbre_controller_3 74 ;
1399		esp:midi_timbre_controller_4 74 ;
1400		esp:midi_timbre_controller_5 74 ;
1401		esp:midi_timbre_controller_6 74 ;
1402		esp:midi_timbre_controller_7 74 ;
1403		esp:midi_timbre_controller_8 74 ;
1404		esp:midi_timbre_controller_9 74 ;
1405		esp:midi_timbre_controller_10 74 ;
1406		esp:midi_timbre_controller_11 74 ;
1407		esp:midi_timbre_controller_12 74 ;
1408		esp:midi_timbre_controller_13 74 ;
1409		esp:midi_timbre_controller_14 74 ;
1410		esp:midi_timbre_controller_15 74 ;
1411		esp:midi_timbre_controller_16 74 ;
1412
1413		esp:midi_pressure_mode_1 0 ;
1414		esp:midi_pressure_mode_2 0 ;
1415		esp:midi_pressure_mode_3 0 ;
1416		esp:midi_pressure_mode_4 0 ;
1417		esp:midi_pressure_mode_5 0 ;
1418		esp:midi_pressure_mode_6 0 ;
1419		esp:midi_pressure_mode_7 0 ;
1420		esp:midi_pressure_mode_8 0 ;
1421		esp:midi_pressure_mode_9 0 ;
1422		esp:midi_pressure_mode_10 0 ;
1423		esp:midi_pressure_mode_11 0 ;
1424		esp:midi_pressure_mode_12 0 ;
1425		esp:midi_pressure_mode_13 0 ;
1426		esp:midi_pressure_mode_14 0 ;
1427		esp:midi_pressure_mode_15 0 ;
1428		esp:midi_pressure_mode_16 0 ;
1429	] .
1430
1431# MIDI Output Plugin
1432esp:midi_out
1433	a lv2:Plugin ,
1434		lv2:ConverterPlugin ;
1435	doap:name "Espressivo MIDI Out" ;
1436	doap:license lic:Artistic-2.0 ;
1437	lv2:project proj:espressivo ;
1438	lv2:optionalFeature lv2:isLive, lv2:hardRTCapable, log:log, xpress:voiceMap, state:threadSafeRestore ;
1439	lv2:requiredFeature urid:map, state:loadDefaultState ;
1440	lv2:extensionData state:interface ;
1441
1442	lv2:port [
1443	# input event port
1444	  a lv2:InputPort ,
1445			atom:AtomPort ;
1446		atom:bufferType atom:Sequence ;
1447		atom:supports xpress:Message, patch:Message ;
1448		lv2:index 0 ;
1449		lv2:symbol "event_in" ;
1450		lv2:name "Event In" ;
1451		lv2:designation lv2:control ;
1452	] , [
1453	# output event port
1454	  a lv2:OutputPort ,
1455			atom:AtomPort ;
1456		atom:bufferType atom:Sequence ;
1457		atom:supports patch:Message, midi:MidiEvent ;
1458		lv2:index 1 ;
1459		lv2:symbol "event_out" ;
1460		lv2:name "Event Out" ;
1461		lv2:designation lv2:control ;
1462	] ;
1463
1464	patch:writable
1465		esp:midi_range_1 ,
1466		esp:midi_range_2 ,
1467		esp:midi_range_3 ,
1468		esp:midi_range_4 ,
1469		esp:midi_range_5 ,
1470		esp:midi_range_6 ,
1471		esp:midi_range_7 ,
1472		esp:midi_range_8 ,
1473		esp:midi_range_9 ,
1474		esp:midi_range_10 ,
1475		esp:midi_range_11 ,
1476		esp:midi_range_12 ,
1477		esp:midi_range_13 ,
1478		esp:midi_range_14 ,
1479		esp:midi_range_15 ,
1480		esp:midi_range_16 ,
1481
1482		esp:midi_pressure_controller_1 ,
1483		esp:midi_pressure_controller_2 ,
1484		esp:midi_pressure_controller_3 ,
1485		esp:midi_pressure_controller_4 ,
1486		esp:midi_pressure_controller_5 ,
1487		esp:midi_pressure_controller_6 ,
1488		esp:midi_pressure_controller_7 ,
1489		esp:midi_pressure_controller_8 ,
1490		esp:midi_pressure_controller_9 ,
1491		esp:midi_pressure_controller_10 ,
1492		esp:midi_pressure_controller_11 ,
1493		esp:midi_pressure_controller_12 ,
1494		esp:midi_pressure_controller_13 ,
1495		esp:midi_pressure_controller_14 ,
1496		esp:midi_pressure_controller_15 ,
1497		esp:midi_pressure_controller_16 ,
1498
1499		esp:midi_timbre_controller_1 ,
1500		esp:midi_timbre_controller_2 ,
1501		esp:midi_timbre_controller_3 ,
1502		esp:midi_timbre_controller_4 ,
1503		esp:midi_timbre_controller_5 ,
1504		esp:midi_timbre_controller_6 ,
1505		esp:midi_timbre_controller_7 ,
1506		esp:midi_timbre_controller_8 ,
1507		esp:midi_timbre_controller_9 ,
1508		esp:midi_timbre_controller_10 ,
1509		esp:midi_timbre_controller_11 ,
1510		esp:midi_timbre_controller_12 ,
1511		esp:midi_timbre_controller_13 ,
1512		esp:midi_timbre_controller_14 ,
1513		esp:midi_timbre_controller_15 ,
1514		esp:midi_timbre_controller_16 ,
1515
1516		esp:midi_pressure_mode_1 ,
1517		esp:midi_pressure_mode_2 ,
1518		esp:midi_pressure_mode_3 ,
1519		esp:midi_pressure_mode_4 ,
1520		esp:midi_pressure_mode_5 ,
1521		esp:midi_pressure_mode_6 ,
1522		esp:midi_pressure_mode_7 ,
1523		esp:midi_pressure_mode_8 ,
1524		esp:midi_pressure_mode_9 ,
1525		esp:midi_pressure_mode_10 ,
1526		esp:midi_pressure_mode_11 ,
1527		esp:midi_pressure_mode_12 ,
1528		esp:midi_pressure_mode_13 ,
1529		esp:midi_pressure_mode_14 ,
1530		esp:midi_pressure_mode_15 ,
1531		esp:midi_pressure_mode_16 ;
1532
1533	state:state [
1534		esp:midi_range_1  "2.0"^^xsd:float ;
1535		esp:midi_range_2  "2.0"^^xsd:float ;
1536		esp:midi_range_3  "2.0"^^xsd:float ;
1537		esp:midi_range_4  "2.0"^^xsd:float ;
1538		esp:midi_range_5  "2.0"^^xsd:float ;
1539		esp:midi_range_6  "2.0"^^xsd:float ;
1540		esp:midi_range_7  "2.0"^^xsd:float ;
1541		esp:midi_range_8  "2.0"^^xsd:float ;
1542		esp:midi_range_9  "2.0"^^xsd:float ;
1543		esp:midi_range_10 "2.0"^^xsd:float ;
1544		esp:midi_range_11 "2.0"^^xsd:float ;
1545		esp:midi_range_12 "2.0"^^xsd:float ;
1546		esp:midi_range_13 "2.0"^^xsd:float ;
1547		esp:midi_range_14 "2.0"^^xsd:float ;
1548		esp:midi_range_15 "2.0"^^xsd:float ;
1549		esp:midi_range_16 "2.0"^^xsd:float ;
1550
1551		esp:midi_pressure_controller_1 70 ;
1552		esp:midi_pressure_controller_2 70 ;
1553		esp:midi_pressure_controller_3 70 ;
1554		esp:midi_pressure_controller_4 70 ;
1555		esp:midi_pressure_controller_5 70 ;
1556		esp:midi_pressure_controller_6 70 ;
1557		esp:midi_pressure_controller_7 70 ;
1558		esp:midi_pressure_controller_8 70 ;
1559		esp:midi_pressure_controller_9 70 ;
1560		esp:midi_pressure_controller_10 70 ;
1561		esp:midi_pressure_controller_11 70 ;
1562		esp:midi_pressure_controller_12 70 ;
1563		esp:midi_pressure_controller_13 70 ;
1564		esp:midi_pressure_controller_14 70 ;
1565		esp:midi_pressure_controller_15 70 ;
1566		esp:midi_pressure_controller_16 70 ;
1567
1568		esp:midi_timbre_controller_1 74 ;
1569		esp:midi_timbre_controller_2 74 ;
1570		esp:midi_timbre_controller_3 74 ;
1571		esp:midi_timbre_controller_4 74 ;
1572		esp:midi_timbre_controller_5 74 ;
1573		esp:midi_timbre_controller_6 74 ;
1574		esp:midi_timbre_controller_7 74 ;
1575		esp:midi_timbre_controller_8 74 ;
1576		esp:midi_timbre_controller_9 74 ;
1577		esp:midi_timbre_controller_10 74 ;
1578		esp:midi_timbre_controller_11 74 ;
1579		esp:midi_timbre_controller_12 74 ;
1580		esp:midi_timbre_controller_13 74 ;
1581		esp:midi_timbre_controller_14 74 ;
1582		esp:midi_timbre_controller_15 74 ;
1583		esp:midi_timbre_controller_16 74 ;
1584
1585		esp:midi_pressure_mode_1 0 ;
1586		esp:midi_pressure_mode_2 0 ;
1587		esp:midi_pressure_mode_3 0 ;
1588		esp:midi_pressure_mode_4 0 ;
1589		esp:midi_pressure_mode_5 0 ;
1590		esp:midi_pressure_mode_6 0 ;
1591		esp:midi_pressure_mode_7 0 ;
1592		esp:midi_pressure_mode_8 0 ;
1593		esp:midi_pressure_mode_9 0 ;
1594		esp:midi_pressure_mode_10 0 ;
1595		esp:midi_pressure_mode_11 0 ;
1596		esp:midi_pressure_mode_12 0 ;
1597		esp:midi_pressure_mode_13 0 ;
1598		esp:midi_pressure_mode_14 0 ;
1599		esp:midi_pressure_mode_15 0 ;
1600		esp:midi_pressure_mode_16 0 ;
1601	] .
1602
1603esp:snh_sample
1604	a lv2:Parameter ;
1605	rdfs:label "Sample" ;
1606	rdfs:comment "toggle to switch between sample'n'hold or release" ;
1607	rdfs:range atom:Bool .
1608esp:snh_hold_dimension_0
1609	a lv2:Parameter ;
1610	rdfs:label "Hold Dimension 0" ;
1611	rdfs:comment "toggle to sample'n'hold dimensions 0" ;
1612	rdfs:range atom:Bool .
1613esp:snh_hold_dimension_1
1614	a lv2:Parameter ;
1615	rdfs:label "Hold Dimension 1" ;
1616	rdfs:comment "toggle to sample'n'hold dimensions 1" ;
1617	rdfs:range atom:Bool .
1618esp:snh_hold_dimension_2
1619	a lv2:Parameter ;
1620	rdfs:label "Hold Dimension 2" ;
1621	rdfs:comment "toggle to sample'n'hold dimensions 2" ;
1622	rdfs:range atom:Bool .
1623esp:snh_hold_dimension_3
1624	a lv2:Parameter ;
1625	rdfs:label "Hold Dimension 3" ;
1626	rdfs:comment "toggle to sample'n'hold dimensions 3" ;
1627	rdfs:range atom:Bool .
1628
1629# Sample and Hold Filter Plugin
1630esp:snh
1631	a lv2:Plugin ,
1632		lv2:ConverterPlugin ;
1633	doap:name "Espressivo Sample and Hold" ;
1634	doap:license lic:Artistic-2.0 ;
1635	lv2:project proj:espressivo ;
1636	lv2:optionalFeature lv2:isLive, lv2:hardRTCapable, log:log, xpress:voiceMap, state:threadSafeRestore ;
1637	lv2:requiredFeature urid:map, state:loadDefaultState ;
1638	lv2:extensionData state:interface ;
1639
1640	lv2:port [
1641	# input event port
1642	  a lv2:InputPort ,
1643			atom:AtomPort ;
1644		atom:bufferType atom:Sequence ;
1645		atom:supports patch:Message, xpress:Message ;
1646		lv2:index 0 ;
1647		lv2:symbol "event_in" ;
1648		lv2:name "Event Input" ;
1649		lv2:designation lv2:control ;
1650	] , [
1651	# output event port
1652	  a lv2:OutputPort ,
1653			atom:AtomPort ;
1654		atom:bufferType atom:Sequence ;
1655		atom:supports patch:Message, xpress:Message ;
1656		lv2:index 1 ;
1657		lv2:symbol "event_out" ;
1658		lv2:name "Event Output" ;
1659		lv2:designation lv2:control ;
1660	] ;
1661
1662	patch:writable
1663		esp:snh_sample ,
1664		esp:snh_hold_dimension_0 ,
1665		esp:snh_hold_dimension_1 ,
1666		esp:snh_hold_dimension_2 ,
1667		esp:snh_hold_dimension_3 ;
1668
1669	state:state [
1670		esp:snh_sample false ;
1671		esp:snh_hold_dimension_0 false ;
1672		esp:snh_hold_dimension_1 true ;
1673		esp:snh_hold_dimension_2 false ;
1674		esp:snh_hold_dimension_3 false ;
1675	] .
1676
1677# Through
1678esp:through_zone_mask
1679	a lv2:Parameter ;
1680	rdfs:label "Zone Mask" ;
1681	rdfs:comment "bitmask denoting zones to let through or block" ;
1682	rdfs:range atom:Int ;
1683	lv2:parameterProperty lv2:isBitmask ;
1684	lv2:minimum 0 ;
1685	lv2:maximum 255 .
1686esp:through_zone_offset
1687	a lv2:Parameter ;
1688	rdfs:label "Zone Offset" ;
1689	rdfs:comment "offset to add to incoming zone numer" ;
1690	rdfs:range atom:Int ;
1691	lv2:minimum 0 ;
1692	lv2:maximum 8 .
1693
1694esp:through
1695	a lv2:Plugin ,
1696		lv2:ConverterPlugin ;
1697	doap:name "Espressivo Through" ;
1698	doap:license lic:Artistic-2.0 ;
1699	lv2:project proj:espressivo ;
1700	lv2:optionalFeature lv2:isLive, lv2:hardRTCapable, xpress:voiceMap, state:threadSafeRestore ;
1701	lv2:requiredFeature urid:map, state:loadDefaultState ;
1702	lv2:extensionData state:interface ;
1703
1704	lv2:port [
1705	# input event port
1706	  a lv2:InputPort ,
1707			atom:AtomPort ;
1708		atom:bufferType atom:Sequence ;
1709		atom:supports patch:Message, xpress:Message ;
1710		lv2:index 0 ;
1711		lv2:symbol "event_in" ;
1712		lv2:name "Event Input" ;
1713		lv2:designation lv2:control ;
1714	] , [
1715	# output event port
1716	  a lv2:OutputPort ,
1717			atom:AtomPort ;
1718		atom:bufferType atom:Sequence ;
1719		atom:supports patch:Message, xpress:Message ;
1720		lv2:index 1 ;
1721		lv2:symbol "event_out" ;
1722		lv2:name "Event Output" ;
1723		lv2:designation lv2:control ;
1724	] ;
1725
1726	patch:writable
1727		esp:through_zone_mask ,
1728		esp:through_zone_offset ;
1729
1730	state:state [
1731		esp:through_zone_mask 255 ;
1732		esp:through_zone_offset 0 ;
1733	] .
1734
1735# Redirector
1736esp:redirector
1737	a lv2:Plugin ,
1738		lv2:ConverterPlugin ;
1739	doap:name "Espressivo Redirector" ;
1740	doap:license lic:Artistic-2.0 ;
1741	lv2:project proj:espressivo ;
1742	lv2:optionalFeature lv2:isLive, lv2:hardRTCapable, xpress:voiceMap, state:threadSafeRestore ;
1743	lv2:requiredFeature urid:map, state:loadDefaultState ;
1744	lv2:extensionData state:interface ;
1745
1746	lv2:port [
1747	# input event port
1748	  a lv2:InputPort ,
1749			atom:AtomPort ;
1750		atom:bufferType atom:Sequence ;
1751		atom:supports patch:Message, xpress:Message ;
1752		lv2:index 0 ;
1753		lv2:symbol "event_in" ;
1754		lv2:name "Event Input" ;
1755		lv2:designation lv2:control ;
1756	] , [
1757	# output event port
1758	  a lv2:OutputPort ,
1759			atom:AtomPort ;
1760		atom:bufferType atom:Sequence ;
1761		atom:supports patch:Message, xpress:Message ;
1762		lv2:index 1 ;
1763		lv2:symbol "event_out" ;
1764		lv2:name "Event Output" ;
1765		lv2:designation lv2:control ;
1766	] ;
1767
1768	state:state [
1769	] .
1770
1771# Modulator
1772esp:modulator_zone_mask_src
1773	a lv2:Parameter ;
1774	rdfs:label "Zone Mask Source" ;
1775	rdfs:comment "bitmask denoting zones to let through or block" ;
1776	rdfs:range atom:Int ;
1777	lv2:parameterProperty lv2:isBitmask ;
1778	lv2:minimum 0 ;
1779	lv2:maximum 255 .
1780esp:modulator_zone_mask_mod
1781	a lv2:Parameter ;
1782	rdfs:label "Zone Mask Modulator" ;
1783	rdfs:comment "bitmask denoting zones to use as modulator" ;
1784	rdfs:range atom:Int ;
1785	lv2:parameterProperty lv2:isBitmask ;
1786	lv2:minimum 0 ;
1787	lv2:maximum 255 .
1788esp:modulator_enum_src
1789	a lv2:Parameter ;
1790	rdfs:label "Enum Source" ;
1791	rdfs:comment "set source enum" ;
1792	rdfs:range atom:Int ;
1793	lv2:minimum 0 ;
1794	lv2:maximum 5 ;
1795	lv2:scalePoint [ rdfs:label "pitch" ; rdf:value 0 ] ;
1796	lv2:scalePoint [ rdfs:label "pressure" ; rdf:value 1 ] ;
1797	lv2:scalePoint [ rdfs:label "timbre" ; rdf:value 2 ] ;
1798	lv2:scalePoint [ rdfs:label "dPitch" ; rdf:value 3 ] ;
1799	lv2:scalePoint [ rdfs:label "dPressure" ; rdf:value 4 ] ;
1800	lv2:scalePoint [ rdfs:label "dTimbre" ; rdf:value 5 ] .
1801esp:modulator_enum_mod
1802	a lv2:Parameter ;
1803	rdfs:label "Enum Modulator" ;
1804	rdfs:comment "set modulator enum" ;
1805	rdfs:range atom:Int ;
1806	lv2:minimum 0 ;
1807	lv2:maximum 5 ;
1808	lv2:scalePoint [ rdfs:label "pitch" ; rdf:value 0 ] ;
1809	lv2:scalePoint [ rdfs:label "pressure" ; rdf:value 1 ] ;
1810	lv2:scalePoint [ rdfs:label "timbre" ; rdf:value 2 ] ;
1811	lv2:scalePoint [ rdfs:label "dPitch" ; rdf:value 3 ] ;
1812	lv2:scalePoint [ rdfs:label "dPressure" ; rdf:value 4 ] ;
1813	lv2:scalePoint [ rdfs:label "dTimbre" ; rdf:value 5 ] .
1814esp:modulator_zone_offset
1815	a lv2:Parameter ;
1816	rdfs:label "Zone Offset" ;
1817	rdfs:comment "offset to add to incoming zone numer" ;
1818	rdfs:range atom:Int ;
1819	lv2:minimum 0 ;
1820	lv2:maximum 8 .
1821esp:modulator_multiplier
1822	a lv2:Parameter ;
1823	rdfs:label "Multiplier" ;
1824	rdfs:comment "set value to multiply modulator with" ;
1825	rdfs:range atom:Float ;
1826	lv2:minimum -10.0 ;
1827	lv2:maximum 10.0 .
1828esp:modulator_adder
1829	a lv2:Parameter ;
1830	rdfs:label "Adder" ;
1831	rdfs:comment "set value to add modulator to" ;
1832	rdfs:range atom:Float ;
1833	lv2:minimum -10.0 ;
1834	lv2:maximum 10.0 .
1835esp:modulator_op
1836	a lv2:Parameter ;
1837	rdfs:label "Operation Mode" ;
1838	rdfs:comment "set operation mode" ;
1839	rdfs:range atom:Int ;
1840	lv2:minimum 0 ;
1841	lv2:maximum 5 ;
1842	lv2:scalePoint [ rdfs:label "add" ; rdf:value 0 ] ;
1843	lv2:scalePoint [ rdfs:label "sub" ; rdf:value 1 ] ;
1844	lv2:scalePoint [ rdfs:label "mul" ; rdf:value 2 ] ;
1845	lv2:scalePoint [ rdfs:label "div" ; rdf:value 3 ] ;
1846	lv2:scalePoint [ rdfs:label "pow" ; rdf:value 4 ] ;
1847	lv2:scalePoint [ rdfs:label "set" ; rdf:value 5 ] .
1848esp:modulator_reset
1849	a lv2:Parameter ;
1850	rdfs:label "Reset" ;
1851	rdfs:comment "toggle to reset modulation" ;
1852	rdfs:range atom:Bool .
1853
1854esp:modulator
1855	a lv2:Plugin ,
1856		lv2:ConverterPlugin ;
1857	doap:name "Espressivo Modulator" ;
1858	doap:license lic:Artistic-2.0 ;
1859	lv2:project proj:espressivo ;
1860	lv2:optionalFeature lv2:isLive, lv2:hardRTCapable, xpress:voiceMap, state:threadSafeRestore ;
1861	lv2:requiredFeature urid:map, state:loadDefaultState ;
1862	lv2:extensionData state:interface ;
1863
1864	lv2:port [
1865	# input event port
1866	  a lv2:InputPort ,
1867			atom:AtomPort ;
1868		atom:bufferType atom:Sequence ;
1869		atom:supports patch:Message, xpress:Message ;
1870		lv2:index 0 ;
1871		lv2:symbol "event_in" ;
1872		lv2:name "Event Input" ;
1873		lv2:designation lv2:control ;
1874	] , [
1875	# output event port
1876	  a lv2:OutputPort ,
1877			atom:AtomPort ;
1878		atom:bufferType atom:Sequence ;
1879		atom:supports patch:Message, xpress:Message ;
1880		lv2:index 1 ;
1881		lv2:symbol "event_out" ;
1882		lv2:name "Event Output" ;
1883		lv2:designation lv2:control ;
1884	] ;
1885
1886	patch:writable
1887		esp:modulator_zone_mask_src ,
1888		esp:modulator_zone_mask_mod ,
1889		esp:modulator_enum_src ,
1890		esp:modulator_enum_mod ,
1891		esp:modulator_zone_offset ,
1892		esp:modulator_multiplier ,
1893		esp:modulator_adder ,
1894		esp:modulator_op ,
1895		esp:modulator_reset ;
1896
1897	state:state [
1898		esp:modulator_zone_mask_src 1 ;
1899		esp:modulator_zone_mask_mod 2 ;
1900		esp:modulator_enum_src 0 ;
1901		esp:modulator_enum_mod 0 ;
1902		esp:modulator_zone_offset 0 ;
1903		esp:modulator_multiplier "1.0"^^xsd:float ;
1904		esp:modulator_adder "0.0"^^xsd:float ;
1905		esp:modulator_op 0 ;
1906		esp:modulator_reset false ;
1907	] .
1908
1909# Chord
1910esp:chord_offset_1
1911	a lv2:Parameter ;
1912	rdfs:label "Offset 1" ;
1913	rdfs:comment "offset to base note" ;
1914	rdfs:range atom:Float ;
1915	units:unit units:semitone12TET ;
1916	lv2:minimum -48.0 ;
1917	lv2:maximum 48.0 .
1918esp:chord_offset_2
1919	a lv2:Parameter ;
1920	rdfs:label "Offset 2" ;
1921	rdfs:comment "offset to base note" ;
1922	rdfs:range atom:Float ;
1923	units:unit units:semitone12TET ;
1924	lv2:minimum -48.0 ;
1925	lv2:maximum 48.0 .
1926esp:chord_offset_3
1927	a lv2:Parameter ;
1928	rdfs:label "Offset 3" ;
1929	rdfs:comment "offset to base note" ;
1930	rdfs:range atom:Float ;
1931	units:unit units:semitone12TET ;
1932	lv2:minimum -48.0 ;
1933	lv2:maximum 48.0 .
1934esp:chord_offset_4
1935	a lv2:Parameter ;
1936	rdfs:label "Offset 4" ;
1937	rdfs:comment "offset to base note" ;
1938	rdfs:range atom:Float ;
1939	units:unit units:semitone12TET ;
1940	lv2:minimum -48.0 ;
1941	lv2:maximum 48.0 .
1942
1943esp:chord
1944	a lv2:Plugin ,
1945		lv2:ConverterPlugin ;
1946	doap:name "Espressivo Chord" ;
1947	doap:license lic:Artistic-2.0 ;
1948	lv2:project proj:espressivo ;
1949	lv2:optionalFeature lv2:isLive, lv2:hardRTCapable, xpress:voiceMap, state:threadSafeRestore ;
1950	lv2:requiredFeature urid:map, state:loadDefaultState ;
1951	lv2:extensionData state:interface ;
1952
1953	lv2:port [
1954	# input event port
1955	  a lv2:InputPort ,
1956			atom:AtomPort ;
1957		atom:bufferType atom:Sequence ;
1958		atom:supports patch:Message, xpress:Message ;
1959		lv2:index 0 ;
1960		lv2:symbol "event_in" ;
1961		lv2:name "Event Input" ;
1962		lv2:designation lv2:control ;
1963	] , [
1964	# output event port
1965	  a lv2:OutputPort ,
1966			atom:AtomPort ;
1967		atom:bufferType atom:Sequence ;
1968		atom:supports patch:Message, xpress:Message ;
1969		lv2:index 1 ;
1970		lv2:symbol "event_out" ;
1971		lv2:name "Event Output" ;
1972		lv2:designation lv2:control ;
1973	] ;
1974
1975	patch:writable
1976		esp:chord_offset_1 ,
1977		esp:chord_offset_2 ,
1978		esp:chord_offset_3 ,
1979		esp:chord_offset_4 ;
1980
1981	state:state [
1982		esp:chord_offset_1 "0.0"^^xsd:float ;
1983		esp:chord_offset_2 "4.0"^^xsd:float ;
1984		esp:chord_offset_3 "7.0"^^xsd:float ;
1985		esp:chord_offset_4 "12.0"^^xsd:float ;
1986	] .
1987
1988# Reducto
1989esp:reducto_position_threshold
1990	a lv2:Parameter ;
1991	rdfs:label "Position threshold" ;
1992	rdfs:comment "threshold of position change to trigger new events" ;
1993	rdfs:range atom:Float ;
1994	units:unit units:semitone12TET ;
1995	lv2:minimum 0.0 ;
1996	lv2:maximum 127.0 .
1997esp:reducto_velocity_threshold
1998	a lv2:Parameter ;
1999	rdfs:label "Velocity threshold" ;
2000	rdfs:comment "threshold of velocity change to trigger new events" ;
2001	rdfs:range atom:Float ;
2002	lv2:minimum 0.0 ;
2003	lv2:maximum 10.0 .
2004
2005esp:reducto
2006	a lv2:Plugin ,
2007		lv2:ConverterPlugin ;
2008	doap:name "Espressivo Reducto" ;
2009	doap:license lic:Artistic-2.0 ;
2010	lv2:project proj:espressivo ;
2011	lv2:optionalFeature lv2:isLive, lv2:hardRTCapable, xpress:voiceMap, state:threadSafeRestore ;
2012	lv2:requiredFeature urid:map, state:loadDefaultState ;
2013	lv2:extensionData state:interface ;
2014
2015	lv2:port [
2016	# input event port
2017	  a lv2:InputPort ,
2018			atom:AtomPort ;
2019		atom:bufferType atom:Sequence ;
2020		atom:supports patch:Message, xpress:Message ;
2021		lv2:index 0 ;
2022		lv2:symbol "event_in" ;
2023		lv2:name "Event Input" ;
2024		lv2:designation lv2:control ;
2025	] , [
2026	# output event port
2027	  a lv2:OutputPort ,
2028			atom:AtomPort ;
2029		atom:bufferType atom:Sequence ;
2030		atom:supports patch:Message, xpress:Message ;
2031		lv2:index 1 ;
2032		lv2:symbol "event_out" ;
2033		lv2:name "Event Output" ;
2034		lv2:designation lv2:control ;
2035	] ;
2036
2037	patch:writable
2038		esp:reducto_position_threshold ,
2039		esp:reducto_velocity_threshold ;
2040
2041	state:state [
2042		esp:reducto_position_threshold "1.0"^^xsd:float ;
2043		esp:reducto_velocity_threshold "0.2"^^xsd:float ;
2044	] .
2045
2046# Discreto
2047esp:discreto_position_order
2048	a lv2:Parameter ;
2049	rdfs:label "Position Order" ;
2050	rdfs:comment "variable denoting position dependence of discrete mapping" ;
2051	rdfs:range atom:Int ;
2052	lv2:minimum 0 ;
2053	lv2:maximum 10 .
2054esp:discreto_velocity_order
2055	a lv2:Parameter ;
2056	rdfs:label "Velocity Order" ;
2057	rdfs:comment "variable denoting velocity dependence of discrete mapping" ;
2058	rdfs:range atom:Int ;
2059	lv2:minimum 0 ;
2060	lv2:maximum 10 .
2061
2062esp:discreto
2063	a lv2:Plugin ,
2064		lv2:ConverterPlugin ;
2065	doap:name "Espressivo Discreto" ;
2066	doap:license lic:Artistic-2.0 ;
2067	lv2:project proj:espressivo ;
2068	lv2:optionalFeature lv2:isLive, lv2:hardRTCapable, xpress:voiceMap, state:threadSafeRestore ;
2069	lv2:requiredFeature urid:map, state:loadDefaultState ;
2070	lv2:extensionData state:interface ;
2071
2072	lv2:port [
2073	# input event port
2074	  a lv2:InputPort ,
2075			atom:AtomPort ;
2076		atom:bufferType atom:Sequence ;
2077		atom:supports patch:Message, xpress:Message ;
2078		lv2:index 0 ;
2079		lv2:symbol "event_in" ;
2080		lv2:name "Event Input" ;
2081		lv2:designation lv2:control ;
2082	] , [
2083	# output event port
2084	  a lv2:OutputPort ,
2085			atom:AtomPort ;
2086		atom:bufferType atom:Sequence ;
2087		atom:supports patch:Message, xpress:Message ;
2088		lv2:index 1 ;
2089		lv2:symbol "event_out" ;
2090		lv2:name "Event Output" ;
2091		lv2:designation lv2:control ;
2092	] ;
2093
2094	patch:writable
2095		esp:discreto_position_order ,
2096		esp:discreto_velocity_order ;
2097
2098	state:state [
2099		esp:discreto_position_order 1 ;
2100		esp:discreto_velocity_order 0 ;
2101	] .
2102
2103esp:sc_synth_name_0
2104	a lv2:Parameter ;
2105	rdfs:label "Synth Name 0" ;
2106	rdfs:comment "name of synth voice for zone 0" ;
2107	rdfs:range atom:String .
2108esp:sc_synth_name_1
2109	a lv2:Parameter ;
2110	rdfs:label "Synth Name 1" ;
2111	rdfs:comment "name of synth voice for zone 1" ;
2112	rdfs:range atom:String .
2113esp:sc_synth_name_2
2114	a lv2:Parameter ;
2115	rdfs:label "Synth Name 2" ;
2116	rdfs:comment "name of synth voice for zone 2" ;
2117	rdfs:range atom:String .
2118esp:sc_synth_name_3
2119	a lv2:Parameter ;
2120	rdfs:label "Synth Name 3" ;
2121	rdfs:comment "name of synth voice for zone 3" ;
2122	rdfs:range atom:String .
2123esp:sc_synth_name_4
2124	a lv2:Parameter ;
2125	rdfs:label "Synth Name 4" ;
2126	rdfs:comment "name of synth voice for zone 4" ;
2127	rdfs:range atom:String .
2128esp:sc_synth_name_5
2129	a lv2:Parameter ;
2130	rdfs:label "Synth Name 5" ;
2131	rdfs:comment "name of synth voice for zone 5" ;
2132	rdfs:range atom:String .
2133esp:sc_synth_name_6
2134	a lv2:Parameter ;
2135	rdfs:label "Synth Name 6" ;
2136	rdfs:comment "name of synth voice for zone 6" ;
2137	rdfs:range atom:String .
2138esp:sc_synth_name_7
2139	a lv2:Parameter ;
2140	rdfs:label "Synth Name 7" ;
2141	rdfs:comment "name of synth voice for zone 7" ;
2142	rdfs:range atom:String .
2143
2144esp:sc_out_offset
2145	a lv2:Parameter ;
2146	rdfs:label "Out Offset" ;
2147	rdfs:comment "offset into output audio buffer array" ;
2148	rdfs:range atom:Int ;
2149	lv2:minimum 0 ;
2150	lv2:maximum 8 .
2151esp:sc_gid_offset
2152	a lv2:Parameter ;
2153	rdfs:label "GID Offset" ;
2154	rdfs:comment "offset into group ID array" ;
2155	rdfs:range atom:Int ;
2156	lv2:minimum 0 ;
2157	lv2:maximum 10000 .
2158esp:sc_sid_offset
2159	a lv2:Parameter ;
2160	rdfs:label "SID Offset" ;
2161	rdfs:comment "offset into synth ID array" ;
2162	rdfs:range atom:Int ;
2163	lv2:minimum 0 ;
2164	lv2:maximum 10000 .
2165esp:sc_sid_wrap
2166	a lv2:Parameter ;
2167	rdfs:label "SID Wrap" ;
2168	rdfs:comment "number to wrap synth IDs around" ;
2169	rdfs:range atom:Int ;
2170	lv2:minimum 0 ;
2171	lv2:maximum 10000 .
2172esp:sc_arg_offset
2173	a lv2:Parameter ;
2174	rdfs:label "Argument Offset" ;
2175	rdfs:comment "offset into argument list" ;
2176	rdfs:range atom:Int ;
2177	lv2:minimum 0 ;
2178	lv2:maximum 4 .
2179esp:sc_allocate
2180	a lv2:Parameter ;
2181	rdfs:label "Allocate" ;
2182	rdfs:comment "toggle to allocate new synth voice" ;
2183	rdfs:range atom:Bool .
2184esp:sc_gate
2185	a lv2:Parameter ;
2186	rdfs:label "Gate" ;
2187	rdfs:comment "toggle to trigger gate parameter or not" ;
2188	rdfs:range atom:Bool .
2189esp:sc_group
2190	a lv2:Parameter ;
2191	rdfs:label "Group" ;
2192	rdfs:comment "toggle to send messages to group ID or synth ID" ;
2193	rdfs:range atom:Bool .
2194
2195# SuperCollider Plugin
2196esp:sc_out
2197	a lv2:Plugin ,
2198		lv2:ConverterPlugin ;
2199	doap:name "Espressivo SuperCollider Out" ;
2200	doap:license lic:Artistic-2.0 ;
2201	lv2:project proj:espressivo ;
2202	lv2:optionalFeature lv2:isLive, lv2:hardRTCapable, osc:schedule, xpress:voiceMap, state:threadSafeRestore ;
2203	lv2:requiredFeature urid:map, state:loadDefaultState ;
2204	lv2:extensionData state:interface ;
2205
2206	# input event port
2207	lv2:port [
2208	  a lv2:InputPort ,
2209			atom:AtomPort ;
2210		atom:bufferType atom:Sequence ;
2211		atom:supports patch:Message, xpress:Message ;
2212		lv2:index 0 ;
2213		lv2:symbol "event_in" ;
2214		lv2:name "Event Input" ;
2215		lv2:designation lv2:control ;
2216	] , [
2217	# output osc port
2218	  a lv2:OutputPort ,
2219			atom:AtomPort ;
2220		atom:bufferType atom:Sequence ;
2221		atom:supports patch:Message, osc:Event ;
2222		lv2:index 1 ;
2223		lv2:symbol "osc_out" ;
2224		lv2:name "OSC Output" ;
2225		lv2:designation lv2:control ;
2226	] ;
2227
2228	patch:writable
2229		esp:sc_synth_name_0 ,
2230		esp:sc_synth_name_1 ,
2231		esp:sc_synth_name_2 ,
2232		esp:sc_synth_name_3 ,
2233		esp:sc_synth_name_4 ,
2234		esp:sc_synth_name_5 ,
2235		esp:sc_synth_name_6 ,
2236		esp:sc_synth_name_7 ,
2237		esp:sc_out_offset ,
2238		esp:sc_gid_offset ,
2239		esp:sc_sid_offset ,
2240		esp:sc_sid_wrap ,
2241		esp:sc_arg_offset ,
2242		esp:sc_allocate ,
2243		esp:sc_gate ,
2244		esp:sc_group ;
2245
2246	state:state [
2247		esp:sc_synth_name_0 "synth_0" ;
2248		esp:sc_synth_name_1 "synth_1" ;
2249		esp:sc_synth_name_2 "synth_2" ;
2250		esp:sc_synth_name_3 "synth_3" ;
2251		esp:sc_synth_name_4 "synth_4" ;
2252		esp:sc_synth_name_5 "synth_5" ;
2253		esp:sc_synth_name_6 "synth_6" ;
2254		esp:sc_synth_name_7 "synth_7" ;
2255		esp:sc_out_offset 0 ;
2256		esp:sc_gid_offset 100 ;
2257		esp:sc_sid_offset 200 ;
2258		esp:sc_sid_wrap 0 ;
2259		esp:sc_arg_offset 0 ;
2260		esp:sc_allocate true ;
2261		esp:sc_gate true ;
2262		esp:sc_group false ;
2263	] .
2264
2265esp:pitchExp
2266	a lv2:Parameter ;
2267	rdfs:label "Pitch sqew" ;
2268	rdfs:comment "set sqew for pitch mapping function" ;
2269	lv2:minimum -3.0 ;
2270	lv2:maximum 3.0 ;
2271	rdfs:range atom:Float .
2272esp:pressureExp
2273	a lv2:Parameter ;
2274	rdfs:label "Pressure sqew" ;
2275	rdfs:comment "set sqew for pressure mapping function" ;
2276	lv2:minimum -3.0 ;
2277	lv2:maximum 3.0 ;
2278	rdfs:range atom:Float .
2279esp:timbreExp
2280	a lv2:Parameter ;
2281	rdfs:label "Timbre sqew" ;
2282	rdfs:comment "set sqew for timbre mapping function" ;
2283	lv2:minimum -3.0 ;
2284	lv2:maximum 3.0 ;
2285	rdfs:range atom:Float .
2286esp:dPitchExp
2287	a lv2:Parameter ;
2288	rdfs:label "dPitch sqew" ;
2289	rdfs:comment "set sqew for dPitch mapping function" ;
2290	lv2:minimum -3.0 ;
2291	lv2:maximum 3.0 ;
2292	rdfs:range atom:Float .
2293esp:dPressureExp
2294	a lv2:Parameter ;
2295	rdfs:label "dPressure sqew" ;
2296	rdfs:comment "set sqew for dPressure mapping function" ;
2297	lv2:minimum -3.0 ;
2298	lv2:maximum 3.0 ;
2299	rdfs:range atom:Float .
2300esp:dTimbreExp
2301	a lv2:Parameter ;
2302	rdfs:label "dTimbre sqew" ;
2303	rdfs:comment "set sqew for dTimbre mapping function" ;
2304	lv2:minimum -3.0 ;
2305	lv2:maximum 3.0 ;
2306	rdfs:range atom:Float .
2307
2308# Sqew Plugin
2309esp:sqew
2310	a lv2:Plugin ,
2311		lv2:ConverterPlugin ;
2312	doap:name "Espressivo Sqew" ;
2313	doap:license lic:Artistic-2.0 ;
2314	lv2:project proj:espressivo ;
2315	lv2:optionalFeature lv2:isLive, lv2:hardRTCapable, xpress:voiceMap, state:threadSafeRestore ;
2316	lv2:requiredFeature urid:map, state:loadDefaultState ;
2317	lv2:extensionData state:interface ;
2318
2319	# input event port
2320	lv2:port [
2321	  a lv2:InputPort ,
2322			atom:AtomPort ;
2323		atom:bufferType atom:Sequence ;
2324		atom:supports patch:Message, xpress:Message ;
2325		lv2:index 0 ;
2326		lv2:symbol "event_in" ;
2327		lv2:name "Event Input" ;
2328		lv2:designation lv2:control ;
2329	] , [
2330	# output osc port
2331	  a lv2:OutputPort ,
2332			atom:AtomPort ;
2333		atom:bufferType atom:Sequence ;
2334		atom:supports patch:Message, xpress:Message ;
2335		lv2:index 1 ;
2336		lv2:symbol "event_out" ;
2337		lv2:name "Event Output" ;
2338		lv2:designation lv2:control ;
2339	] ;
2340
2341	patch:writable
2342		esp:pitchExp ,
2343		esp:pressureExp ,
2344		esp:timbreExp ,
2345		esp:dPitchExp ,
2346		esp:dPressureExp ,
2347		esp:dTimbreExp ;
2348
2349	state:state [
2350		esp:pitchExp "0.0"^^xsd:float ;
2351		esp:pressureExp "0.0"^^xsd:float ;
2352		esp:timbreExp "0.0"^^xsd:float ;
2353		esp:dPitchExp "0.0"^^xsd:float ;
2354		esp:dPressureExp "0.0"^^xsd:float ;
2355		esp:dTimbreExp "0.0"^^xsd:float ;
2356	] .
2357
2358# Monitor Plugin
2359esp:monitor_out
2360	a lv2:Plugin ,
2361		lv2:ConverterPlugin ;
2362	doap:name "Espressivo Monitor Out" ;
2363	doap:license lic:Artistic-2.0 ;
2364	lv2:project proj:espressivo ;
2365	lv2:optionalFeature lv2:isLive, lv2:hardRTCapable, log:log, xpress:voiceMap, state:threadSafeRestore ;
2366	lv2:requiredFeature urid:map, state:loadDefaultState ;
2367	lv2:extensionData state:interface ;
2368
2369	# input event port
2370	lv2:port [
2371	  a lv2:InputPort ,
2372			atom:AtomPort ;
2373		atom:bufferType atom:Sequence ;
2374		atom:supports patch:Message, xpress:Message ;
2375		lv2:index 0 ;
2376		lv2:symbol "event_in" ;
2377		lv2:name "Event Input" ;
2378		lv2:designation lv2:control ;
2379	] , [
2380	# output osc port
2381	  a lv2:OutputPort ,
2382			atom:AtomPort ;
2383		atom:bufferType atom:Sequence ;
2384		atom:supports patch:Message ;
2385		lv2:index 1 ;
2386		lv2:symbol "event_out" ;
2387		lv2:name "Event Output" ;
2388		lv2:designation lv2:control ;
2389	] ;
2390
2391	patch:readable
2392		canvas:graph ;
2393	patch:writable
2394		canvas:aspectRatio ;
2395
2396	state:state [
2397		canvas:aspectRatio "1.0"^^xsd:float ;
2398	] .
2399