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