1 
2 #include<stdlib.h>
3 #include"uris.h"
4 #include"lv2/lv2plug.in/ns/lv2core/lv2.h"
5 #include"lv2/lv2plug.in/ns/ext/atom/forge.h"
6 
7 typedef enum {
8 	stegosaurus_MIDI_IN=0,
9 	stegosaurus_OUT_LEFT=1,
10 	stegosaurus_OUT_RIGHT=2,
11 	stegosaurus_VOLUME=3,
12 
13 	stegosaurus_KICK_OSC1_ACTIVE=4,
14 	stegosaurus_KICK_OSC1_NOISE=5,
15 	stegosaurus_KICK_OSC1_PITCH=6,
16 	stegosaurus_KICK_OSC1_AMP_ATTACK=7,
17 	stegosaurus_KICK_OSC1_AMP_DECAY=8,
18 	stegosaurus_KICK_OSC1_AMP_SUSTAIN=9,
19 	stegosaurus_KICK_OSC1_AMP_RELEASE=10,
20 	stegosaurus_KICK_OSC1_PITCH_ATTACK=11,
21 	stegosaurus_KICK_OSC1_PITCH_DECAY=12,
22 	stegosaurus_KICK_OSC1_PITCH_SUSTAIN=13,
23 	stegosaurus_KICK_OSC1_PITCH_RELEASE=14,
24 	stegosaurus_KICK_OSC1_VOLUME=15,
25 
26 	stegosaurus_KICK_OSC2_ACTIVE=16,
27 	stegosaurus_KICK_OSC2_NOISE=17,
28 	stegosaurus_KICK_OSC2_PITCH=18,
29 	stegosaurus_KICK_OSC2_AMP_ATTACK=19,
30 	stegosaurus_KICK_OSC2_AMP_DECAY=20,
31 	stegosaurus_KICK_OSC2_AMP_SUSTAIN=21,
32 	stegosaurus_KICK_OSC2_AMP_RELEASE=22,
33 	stegosaurus_KICK_OSC2_PITCH_ATTACK=23,
34 	stegosaurus_KICK_OSC2_PITCH_DECAY=24,
35 	stegosaurus_KICK_OSC2_PITCH_SUSTAIN=25,
36 	stegosaurus_KICK_OSC2_PITCH_RELEASE=26,
37 	stegosaurus_KICK_OSC2_VOLUME=27,
38 
39 
40 	stegosaurus_SNARE_OSC1_ACTIVE=28,
41 	stegosaurus_SNARE_OSC1_NOISE=29,
42 	stegosaurus_SNARE_OSC1_PITCH=30,
43 	stegosaurus_SNARE_OSC1_AMP_ATTACK=31,
44 	stegosaurus_SNARE_OSC1_AMP_DECAY=32,
45 	stegosaurus_SNARE_OSC1_AMP_SUSTAIN=33,
46 	stegosaurus_SNARE_OSC1_AMP_RELEASE=34,
47 	stegosaurus_SNARE_OSC1_PITCH_ATTACK=35,
48 	stegosaurus_SNARE_OSC1_PITCH_DECAY=36,
49 	stegosaurus_SNARE_OSC1_PITCH_SUSTAIN=37,
50 	stegosaurus_SNARE_OSC1_PITCH_RELEASE=38,
51 	stegosaurus_SNARE_OSC1_VOLUME=39,
52 
53 	stegosaurus_SNARE_OSC2_ACTIVE=40,
54 	stegosaurus_SNARE_OSC2_NOISE=41,
55 	stegosaurus_SNARE_OSC2_PITCH=42,
56 	stegosaurus_SNARE_OSC2_AMP_ATTACK=43,
57 	stegosaurus_SNARE_OSC2_AMP_DECAY=44,
58 	stegosaurus_SNARE_OSC2_AMP_SUSTAIN=45,
59 	stegosaurus_SNARE_OSC2_AMP_RELEASE=46,
60 	stegosaurus_SNARE_OSC2_PITCH_ATTACK=47,
61 	stegosaurus_SNARE_OSC2_PITCH_DECAY=48,
62 	stegosaurus_SNARE_OSC2_PITCH_SUSTAIN=49,
63 	stegosaurus_SNARE_OSC2_PITCH_RELEASE=50,
64 	stegosaurus_SNARE_OSC2_VOLUME=51,
65 
66 
67 	stegosaurus_CLHAT_OSC1_ACTIVE=52,
68 	stegosaurus_CLHAT_OSC1_NOISE=53,
69 	stegosaurus_CLHAT_OSC1_PITCH=54,
70 	stegosaurus_CLHAT_OSC1_AMP_ATTACK=55,
71 	stegosaurus_CLHAT_OSC1_AMP_DECAY=56,
72 	stegosaurus_CLHAT_OSC1_AMP_SUSTAIN=57,
73 	stegosaurus_CLHAT_OSC1_AMP_RELEASE=58,
74 	stegosaurus_CLHAT_OSC1_PITCH_ATTACK=59,
75 	stegosaurus_CLHAT_OSC1_PITCH_DECAY=60,
76 	stegosaurus_CLHAT_OSC1_PITCH_SUSTAIN=61,
77 	stegosaurus_CLHAT_OSC1_PITCH_RELEASE=62,
78 	stegosaurus_CLHAT_OSC1_VOLUME=63,
79 
80 	stegosaurus_CLHAT_OSC2_ACTIVE=64,
81 	stegosaurus_CLHAT_OSC2_NOISE=65,
82 	stegosaurus_CLHAT_OSC2_PITCH=66,
83 	stegosaurus_CLHAT_OSC2_AMP_ATTACK=67,
84 	stegosaurus_CLHAT_OSC2_AMP_DECAY=68,
85 	stegosaurus_CLHAT_OSC2_AMP_SUSTAIN=69,
86 	stegosaurus_CLHAT_OSC2_AMP_RELEASE=70,
87 	stegosaurus_CLHAT_OSC2_PITCH_ATTACK=71,
88 	stegosaurus_CLHAT_OSC2_PITCH_DECAY=72,
89 	stegosaurus_CLHAT_OSC2_PITCH_SUSTAIN=73,
90 	stegosaurus_CLHAT_OSC2_PITCH_RELEASE=74,
91 	stegosaurus_CLHAT_OSC2_VOLUME=75,
92 
93 
94 	stegosaurus_OPHAT_OSC1_ACTIVE=76,
95 	stegosaurus_OPHAT_OSC1_NOISE=77,
96 	stegosaurus_OPHAT_OSC1_PITCH=78,
97 	stegosaurus_OPHAT_OSC1_AMP_ATTACK=79,
98 	stegosaurus_OPHAT_OSC1_AMP_DECAY=80,
99 	stegosaurus_OPHAT_OSC1_AMP_SUSTAIN=81,
100 	stegosaurus_OPHAT_OSC1_AMP_RELEASE=82,
101 	stegosaurus_OPHAT_OSC1_PITCH_ATTACK=83,
102 	stegosaurus_OPHAT_OSC1_PITCH_DECAY=84,
103 	stegosaurus_OPHAT_OSC1_PITCH_SUSTAIN=85,
104 	stegosaurus_OPHAT_OSC1_PITCH_RELEASE=86,
105 	stegosaurus_OPHAT_OSC1_VOLUME=87,
106 
107 	stegosaurus_OPHAT_OSC2_ACTIVE=88,
108 	stegosaurus_OPHAT_OSC2_NOISE=89,
109 	stegosaurus_OPHAT_OSC2_PITCH=90,
110 	stegosaurus_OPHAT_OSC2_AMP_ATTACK=91,
111 	stegosaurus_OPHAT_OSC2_AMP_DECAY=92,
112 	stegosaurus_OPHAT_OSC2_AMP_SUSTAIN=93,
113 	stegosaurus_OPHAT_OSC2_AMP_RELEASE=94,
114 	stegosaurus_OPHAT_OSC2_PITCH_ATTACK=95,
115 	stegosaurus_OPHAT_OSC2_PITCH_DECAY=96,
116 	stegosaurus_OPHAT_OSC2_PITCH_SUSTAIN=97,
117 	stegosaurus_OPHAT_OSC2_PITCH_RELEASE=98,
118 	stegosaurus_OPHAT_OSC2_VOLUME=99,
119 
120 
121 } PortIndex;
122 
123 typedef struct {
124 	float* out_left;
125 	float* out_right;
126 
127 	float* params[100];
128 
129 	stegosaurusURIs uris;
130 	LV2_Atom_Forge forge;
131 	LV2_URID_Map* map;
132 	char *bundle_path;
133 
134 	LV2_Atom_Sequence* midi_in;
135 
136 
137 } stegosaurus;
138 
139 
140 
141 
142 
143 
144 
145