annotate src/sc_default_grammar.cpp @ 0:add35537fdbb tip

Initial import
author irh <ian.r.hobson@gmail.com>
date Thu, 25 Aug 2011 11:05:55 +0100
parents
children
rev   line source
ian@0 1 // Copyright 2011, Ian Hobson.
ian@0 2 //
ian@0 3 // This file is part of gpsynth.
ian@0 4 //
ian@0 5 // gpsynth is free software: you can redistribute it and/or modify
ian@0 6 // it under the terms of the GNU General Public License as published by
ian@0 7 // the Free Software Foundation, either version 3 of the License, or
ian@0 8 // (at your option) any later version.
ian@0 9 //
ian@0 10 // gpsynth is distributed in the hope that it will be useful,
ian@0 11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
ian@0 12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
ian@0 13 // GNU General Public License for more details.
ian@0 14 //
ian@0 15 // You should have received a copy of the GNU General Public License
ian@0 16 // along with gpsynth in the file COPYING.
ian@0 17 // If not, see http://www.gnu.org/licenses/.
ian@0 18
ian@0 19 // Contents of grammar/sc.json
ian@0 20
ian@0 21 #include "sc_default_grammar.hpp"
ian@0 22
ian@0 23 namespace sc {
ian@0 24
ian@0 25 const char* g_default_grammar =
ian@0 26 "{\n"
ian@0 27 " \"sclang-version\": \"3\",\n"
ian@0 28 " \"name\": \"sc3\",\n"
ian@0 29 " \"arg-types\": [\n"
ian@0 30 " {\n"
ian@0 31 " \"type\": \"frequency\",\n"
ian@0 32 " \"range\": [20, 20000],\n"
ian@0 33 " \"range_control\": [0, 100],\n"
ian@0 34 " \"scaling\": \"log\"\n"
ian@0 35 " },\n"
ian@0 36 " {\n"
ian@0 37 " \"type\": \"radians\",\n"
ian@0 38 " \"range\": [0, 6.2831853072]\n"
ian@0 39 " },\n"
ian@0 40 " {\n"
ian@0 41 " \"type\": \"audio\",\n"
ian@0 42 " \"range\": [-1, 1]\n"
ian@0 43 " },\n"
ian@0 44 " {\n"
ian@0 45 " \"type\": \"time\",\n"
ian@0 46 " \"range\": [0, 10],\n"
ian@0 47 " \"scaling\": \"log\"\n"
ian@0 48 " },\n"
ian@0 49 " {\n"
ian@0 50 " \"type\": \"trigger\",\n"
ian@0 51 " \"range\": [-1, 1],\n"
ian@0 52 " \"fixed_range\": true\n"
ian@0 53 " }\n"
ian@0 54 " ],\n"
ian@0 55 "\n"
ian@0 56 " \"sources\": [\n"
ian@0 57 " // oscillators\n"
ian@0 58 " {\n"
ian@0 59 " \"name\": \"SinOsc\",\n"
ian@0 60 " \"args\": [\n"
ian@0 61 " { \"name\": \"freq\", \"type\": \"frequency\" },\n"
ian@0 62 " { \"name\": \"phase\", \"type\": \"radians\" }\n"
ian@0 63 " ]\n"
ian@0 64 " },\n"
ian@0 65 " {\n"
ian@0 66 " \"name\": \"Saw\",\n"
ian@0 67 " \"args\": { \"name\": \"freq\", \"type\": \"frequency\" }\n"
ian@0 68 " },\n"
ian@0 69 " {\n"
ian@0 70 " \"name\": \"SyncSaw\",\n"
ian@0 71 " \"args\": [\n"
ian@0 72 " { \"name\": \"syncFreq\", \"type\": \"frequency\" },\n"
ian@0 73 " { \"name\": \"sawFreq\", \"type\": \"frequency\" }\n"
ian@0 74 " ]\n"
ian@0 75 " },\n"
ian@0 76 " {\n"
ian@0 77 " \"name\": \"VarSaw\",\n"
ian@0 78 " \"args\": [ { \"name\": \"freq\", \"type\": \"frequency\" }, \"iphase\", \"width\" ]\n"
ian@0 79 " },\n"
ian@0 80 " {\n"
ian@0 81 " \"name\": \"Pulse\",\n"
ian@0 82 " \"args\": [ { \"name\": \"freq\", \"type\": \"frequency\" }, \"width\" ]\n"
ian@0 83 " },\n"
ian@0 84 " {\n"
ian@0 85 " \"name\": \"Impulse\",\n"
ian@0 86 " \"args\": [ { \"name\": \"freq\", \"type\": \"frequency\" }, \"phase\" ]\n"
ian@0 87 " },\n"
ian@0 88 " {\n"
ian@0 89 " \"name\": \"Blip\",\n"
ian@0 90 " \"args\": [\n"
ian@0 91 " { \"name\": \"freq\", \"type\": \"frequency\" },\n"
ian@0 92 " { \"name\": \"numharm\", \"range\": [1, 200] }\n"
ian@0 93 " ]\n"
ian@0 94 " },\n"
ian@0 95 " {\n"
ian@0 96 " \"name\": \"SinOscFB\",\n"
ian@0 97 " \"args\": [\n"
ian@0 98 " { \"name\": \"freq\", \"type\": \"frequency\" },\n"
ian@0 99 " { \"name\": \"feedback\", \"type\": \"radians\" }\n"
ian@0 100 " ]\n"
ian@0 101 " },\n"
ian@0 102 " {\n"
ian@0 103 " \"name\": \"PMOsc\",\n"
ian@0 104 " \"args\": [\n"
ian@0 105 " { \"name\": \"carfreq\", \"type\": \"frequency\" },\n"
ian@0 106 " { \"name\": \"modfreq\", \"type\": \"frequency\" },\n"
ian@0 107 " { \"name\": \"pmindex\", \"type\": \"radians\" },\n"
ian@0 108 " { \"name\": \"modphase\", \"type\": \"radians\" }\n"
ian@0 109 " ]\n"
ian@0 110 " },\n"
ian@0 111 " {\n"
ian@0 112 " \"name\": \"FBSineC\",\n"
ian@0 113 " \"output\": \"audio\",\n"
ian@0 114 " \"args\": [\n"
ian@0 115 " { \"name\": \"freq\", \"type\": \"frequency\" },\n"
ian@0 116 " { \"name\": \"im\", \"range\": [1, 64] },\n"
ian@0 117 " { \"name\": \"fb\", \"range\": [0, 0.5] },\n"
ian@0 118 " { \"name\": \"a\", \"range\": [1, 1.2] },\n"
ian@0 119 " { \"name\": \"c\", \"range\": [0.1, 0.9] }\n"
ian@0 120 " ]\n"
ian@0 121 " },\n"
ian@0 122 " {\n"
ian@0 123 " \"name\": \"FBSineN\",\n"
ian@0 124 " \"output\": \"audio\",\n"
ian@0 125 " \"args\": [\n"
ian@0 126 " { \"name\": \"freq\", \"type\": \"frequency\" },\n"
ian@0 127 " { \"name\": \"im\", \"range\": [1, 64] },\n"
ian@0 128 " { \"name\": \"fb\", \"range\": [0, 0.5] },\n"
ian@0 129 " { \"name\": \"a\", \"range\": [1, 1.2] },\n"
ian@0 130 " { \"name\": \"c\", \"range\": [0.1, 0.9] }\n"
ian@0 131 " ]\n"
ian@0 132 " },\n"
ian@0 133 " {\n"
ian@0 134 " \"name\": \"Logistic\",\n"
ian@0 135 " \"args\": [\n"
ian@0 136 " { \"name\": \"chaosParam\", \"range\": [3, 3.999] },\n"
ian@0 137 " { \"name\": \"freq\", \"type\": \"frequency\" }\n"
ian@0 138 " ]\n"
ian@0 139 " },\n"
ian@0 140 " // Noise\n"
ian@0 141 " {\n"
ian@0 142 " \"name\": \"LFNoise0\",\n"
ian@0 143 " \"args\": { \"name\": \"freq\", \"type\": \"frequency\" }\n"
ian@0 144 " },\n"
ian@0 145 " \"WhiteNoise\",\n"
ian@0 146 " \"BrownNoise\",\n"
ian@0 147 " \"PinkNoise\",\n"
ian@0 148 " {\n"
ian@0 149 " \"name\": \"Crackle\",\n"
ian@0 150 " \"args\": { \"name\": \"chaosParam\", \"range\": [1, 2] }\n"
ian@0 151 " },\n"
ian@0 152 " // Lines/Envelopes\n"
ian@0 153 " {\n"
ian@0 154 " \"name\": \"Line\",\n"
ian@0 155 " \"output\": \"control\",\n"
ian@0 156 " \"args\": { \"name\": \"dur\", \"type\": \"time\" }\n"
ian@0 157 " },\n"
ian@0 158 " {\n"
ian@0 159 " \"name\": \"XLine\",\n"
ian@0 160 " \"output\": \"control\",\n"
ian@0 161 " \"args\": [ \n"
ian@0 162 " { \"name\": \"dur\", \"type\": \"time\" },\n"
ian@0 163 " { \"name\": \"add\", \"constant\": -1 }\n"
ian@0 164 " ]\n"
ian@0 165 " },\n"
ian@0 166 " {\n"
ian@0 167 " \"name\": \"Linen\",\n"
ian@0 168 " \"output\": \"control\",\n"
ian@0 169 " \"args\": [\n"
ian@0 170 " \"gate\",\n"
ian@0 171 " { \"name\": \"attackTime\", \"type\": \"time\" },\n"
ian@0 172 " \"susLevel\", \n"
ian@0 173 " { \"name\": \"releaseTime\", \"type\": \"time\" }\n"
ian@0 174 " ]\n"
ian@0 175 " }\n"
ian@0 176 " ],\n"
ian@0 177 "\n"
ian@0 178 " \"modifiers\": [\n"
ian@0 179 " // Filters\n"
ian@0 180 " {\n"
ian@0 181 " \"name\": \"LPF\",\n"
ian@0 182 " \"args\": { \"name\": \"freq\", \"type\": \"frequency\" }\n"
ian@0 183 " },\n"
ian@0 184 " {\n"
ian@0 185 " \"name\": \"HPF\",\n"
ian@0 186 " \"args\": { \"name\": \"freq\", \"type\": \"frequency\" }\n"
ian@0 187 " },\n"
ian@0 188 " {\n"
ian@0 189 " \"name\": \"BPF\",\n"
ian@0 190 " \"args\": [ { \"name\": \"freq\", \"type\": \"frequency\" }, \"rq\" ]\n"
ian@0 191 " },\n"
ian@0 192 " {\n"
ian@0 193 " \"name\": \"BRF\",\n"
ian@0 194 " \"args\": [ { \"name\": \"freq\", \"type\": \"frequency\" }, \"rq\" ]\n"
ian@0 195 " },\n"
ian@0 196 " {\n"
ian@0 197 " \"name\": \"RLPF\",\n"
ian@0 198 " \"args\": [ { \"name\": \"freq\", \"type\": \"frequency\" }, \"rq\" ]\n"
ian@0 199 " },\n"
ian@0 200 " {\n"
ian@0 201 " \"name\": \"RHPF\",\n"
ian@0 202 " \"args\": [ { \"name\": \"freq\", \"type\": \"frequency\" }, \"rq\" ]\n"
ian@0 203 " },\n"
ian@0 204 " {\n"
ian@0 205 " \"name\": \"Resonz\",\n"
ian@0 206 " \"args\": [ { \"name\": \"freq\", \"type\": \"frequency\" }, \"bwr\" ]\n"
ian@0 207 " },\n"
ian@0 208 " {\n"
ian@0 209 " \"name\": \"Ringz\",\n"
ian@0 210 " \"args\": [ \n"
ian@0 211 " { \"name\": \"freq\", \"type\": \"frequency\" },\n"
ian@0 212 " { \"name\": \"decaytime\", \"type\": \"time\" }\n"
ian@0 213 " ]\n"
ian@0 214 " },\n"
ian@0 215 " {\n"
ian@0 216 " \"name\": \"Formlet\",\n"
ian@0 217 " \"args\": [\n"
ian@0 218 " { \"name\": \"freq\", \"type\": \"frequency\" },\n"
ian@0 219 " { \"name\": \"attacktime\", \"type\": \"time\" },\n"
ian@0 220 " { \"name\": \"decaytime\", \"type\": \"time\" }\n"
ian@0 221 " ]\n"
ian@0 222 " },\n"
ian@0 223 " {\n"
ian@0 224 " \"name\": \"MoogFF\",\n"
ian@0 225 " \"args\": [ \n"
ian@0 226 " { \"name\": \"freq\", \"type\": \"frequency\" },\n"
ian@0 227 " { \"name\": \"gain\", \"range\": [0, 4] }\n"
ian@0 228 " ]\n"
ian@0 229 " },\n"
ian@0 230 " {\n"
ian@0 231 " \"name\": \"FreeVerb\",\n"
ian@0 232 " \"output\": \"audio\",\n"
ian@0 233 " \"args\": [ \"mix\", \"room\", \"damp\" ]\n"
ian@0 234 " },\n"
ian@0 235 " // Dynamics\n"
ian@0 236 " {\n"
ian@0 237 " \"name\": \"Limiter\",\n"
ian@0 238 " \"output\": \"audio\",\n"
ian@0 239 " \"args\": \"level\"\n"
ian@0 240 " },\n"
ian@0 241 " {\n"
ian@0 242 " \"name\": \"Amplitude\",\n"
ian@0 243 " \"output\": \"control\",\n"
ian@0 244 " \"args\": [\n"
ian@0 245 " { \"name\": \"attackTime\", \"type\": \"time\" },\n"
ian@0 246 " { \"name\": \"releaseTime\", \"type\": \"time\" }\n"
ian@0 247 " ]\n"
ian@0 248 " },\n"
ian@0 249 " {\n"
ian@0 250 " \"name\": \"Normalizer\",\n"
ian@0 251 " \"output\": \"audio\",\n"
ian@0 252 " \"args\": [ \"level\", { \"name\": \"dur\", \"range\": [0.001, 0.5] } ]\n"
ian@0 253 " },\n"
ian@0 254 " {\n"
ian@0 255 " \"name\": \"Compander\",\n"
ian@0 256 " \"output\": \"audio\",\n"
ian@0 257 " \"args\": [ \n"
ian@0 258 " { \"name\": \"control\", \"type\": \"audio\" },\n"
ian@0 259 " \"thresh\",\n"
ian@0 260 " { \"name\": \"slopeBelow\", \"type\": \"time\" },\n"
ian@0 261 " { \"name\": \"slopeAbove\", \"type\": \"time\" },\n"
ian@0 262 " { \"name\": \"clampTime\", \"range\": [0.001, 0.2] },\n"
ian@0 263 " { \"name\": \"relaxTime\", \"range\": [0.001, 0.2] }\n"
ian@0 264 " ]\n"
ian@0 265 " },\n"
ian@0 266 " // shifters\n"
ian@0 267 " {\n"
ian@0 268 " \"name\": \"FreqShift\",\n"
ian@0 269 " \"output\": \"audio\",\n"
ian@0 270 " \"args\": [\n"
ian@0 271 " { \"name\": \"freq\", \"range\": [-1000, 1000] },\n"
ian@0 272 " { \"name\": \"phase\", \"type\": \"radians\" }\n"
ian@0 273 " ]\n"
ian@0 274 " },\n"
ian@0 275 " {\n"
ian@0 276 " \"name\": \"PitchShift\",\n"
ian@0 277 " \"output\": \"audio\",\n"
ian@0 278 " \"args\": [\n"
ian@0 279 " { \"name\": \"pitchRatio\", \"range\": [0, 4] },\n"
ian@0 280 " { \"name\": \"pitchDispersion\", \"range\": [0, 4] },\n"
ian@0 281 " { \"name\": \"timeDispersion\", \"range\": [0, 0.2] }\n"
ian@0 282 " ]\n"
ian@0 283 " },\n"
ian@0 284 " // delays\n"
ian@0 285 " {\n"
ian@0 286 " \"name\": \"DelayC\",\n"
ian@0 287 " \"args\": [\n"
ian@0 288 " { \"name\": \"maxdelaytime\", \"constant\": 1 },\n"
ian@0 289 " { \"name\": \"delaytime\", \"range\": [0.001, 1] }\n"
ian@0 290 " ]\n"
ian@0 291 " },\n"
ian@0 292 " {\n"
ian@0 293 " \"name\": \"Pluck\",\n"
ian@0 294 " \"output\": \"audio\",\n"
ian@0 295 " \"args\": [\n"
ian@0 296 " { \"name\": \"trig\", \"type\": \"trigger\" },\n"
ian@0 297 " { \"name\": \"maxdelaytime\", \"constant\": 1 },\n"
ian@0 298 " { \"name\": \"delaytime\" },\n"
ian@0 299 " { \"name\": \"decaytime\", \"type\": \"time\" },\n"
ian@0 300 " { \"name\": \"coef\", \"range\": [-0.9, 0.9] }\n"
ian@0 301 " ]\n"
ian@0 302 " },\n"
ian@0 303 " {\n"
ian@0 304 " \"name\": \"CombC\",\n"
ian@0 305 " \"args\": [\n"
ian@0 306 " { \"name\": \"maxdelaytime\", \"constant\": 1 },\n"
ian@0 307 " { \"name\": \"delaytime\" },\n"
ian@0 308 " { \"name\": \"decaytime\", \"range\": [-1, 1] }\n"
ian@0 309 " ]\n"
ian@0 310 " },\n"
ian@0 311 " // misc\n"
ian@0 312 " {\n"
ian@0 313 " \"name\": \"Decay\",\n"
ian@0 314 " \"args\": { \"name\": \"decayTime\", \"type\": \"time\" }\n"
ian@0 315 " },\n"
ian@0 316 " {\n"
ian@0 317 " \"name\": \"Latch\",\n"
ian@0 318 " \"args\": { \"name\": \"trig\", \"type\": \"trigger\" }\n"
ian@0 319 " }\n"
ian@0 320 " ] // end of modifiers\n"
ian@0 321 "}\n"
ian@0 322 ;
ian@0 323
ian@0 324 } // sc namespace