@grame/faustwasm 0.5.2 → 0.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/assets/standalone/create-node.js +35 -2
- package/assets/standalone/faustwasm/index.js.map +2 -2
- package/assets/standalone/index-pwa.js +16 -56
- package/assets/standalone/index.js +17 -30
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs-bundle/index.js.map +2 -2
- package/dist/esm/index.js.map +2 -2
- package/dist/esm-bundle/index.js.map +2 -2
- package/foo.cpp +3312 -0
- package/package.json +1 -1
- package/src/FaustSensors.ts +0 -2
- package/test/faustlive-wasm/faustwasm/index.js.map +2 -2
package/foo.cpp
ADDED
|
@@ -0,0 +1,3312 @@
|
|
|
1
|
+
|
|
2
|
+
#include <cstdint>
|
|
3
|
+
#include <cmath>
|
|
4
|
+
#include <cassert>
|
|
5
|
+
#include <string>
|
|
6
|
+
#include <cstring>
|
|
7
|
+
#include <array>
|
|
8
|
+
|
|
9
|
+
//==============================================================================
|
|
10
|
+
/// Auto-generated C++ class for the 'HelloReverb' processor
|
|
11
|
+
///
|
|
12
|
+
|
|
13
|
+
#if ! (defined (__cplusplus) && (__cplusplus >= 201703L))
|
|
14
|
+
#error "This code requires that your compiler is set to use C++17 or later!"
|
|
15
|
+
#endif
|
|
16
|
+
|
|
17
|
+
struct HelloReverb
|
|
18
|
+
{
|
|
19
|
+
HelloReverb() = default;
|
|
20
|
+
~HelloReverb() = default;
|
|
21
|
+
|
|
22
|
+
static constexpr std::string_view name = "HelloReverb";
|
|
23
|
+
|
|
24
|
+
//==============================================================================
|
|
25
|
+
using EndpointHandle = uint32_t;
|
|
26
|
+
|
|
27
|
+
enum class EndpointType
|
|
28
|
+
{
|
|
29
|
+
stream,
|
|
30
|
+
event,
|
|
31
|
+
value
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
struct EndpointInfo
|
|
35
|
+
{
|
|
36
|
+
uint32_t handle;
|
|
37
|
+
const char* name;
|
|
38
|
+
EndpointType endpointType;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
//==============================================================================
|
|
42
|
+
static constexpr uint32_t numInputEndpoints = 11;
|
|
43
|
+
static constexpr uint32_t numOutputEndpoints = 2;
|
|
44
|
+
|
|
45
|
+
static constexpr uint32_t maxFramesPerBlock = 512;
|
|
46
|
+
static constexpr uint32_t eventBufferSize = 32;
|
|
47
|
+
static constexpr uint32_t maxOutputEventSize = 0;
|
|
48
|
+
static constexpr double latency = 0.000000;
|
|
49
|
+
|
|
50
|
+
enum class EndpointHandles
|
|
51
|
+
{
|
|
52
|
+
out0 = 12,
|
|
53
|
+
out1 = 13,
|
|
54
|
+
freq = 1 ,
|
|
55
|
+
bend = 2 ,
|
|
56
|
+
gain = 3 ,
|
|
57
|
+
envAttack = 4 ,
|
|
58
|
+
sustain = 5 ,
|
|
59
|
+
reedStiffness = 6 ,
|
|
60
|
+
bellOpening = 7 ,
|
|
61
|
+
vibratoFreq = 8 ,
|
|
62
|
+
vibratoGain = 9 ,
|
|
63
|
+
outGain = 10,
|
|
64
|
+
gate = 11
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
static constexpr uint32_t getEndpointHandleForName (std::string_view endpointName)
|
|
68
|
+
{
|
|
69
|
+
if (endpointName == "out0") return static_cast<uint32_t> (EndpointHandles::out0);
|
|
70
|
+
if (endpointName == "out1") return static_cast<uint32_t> (EndpointHandles::out1);
|
|
71
|
+
if (endpointName == "freq") return static_cast<uint32_t> (EndpointHandles::freq);
|
|
72
|
+
if (endpointName == "bend") return static_cast<uint32_t> (EndpointHandles::bend);
|
|
73
|
+
if (endpointName == "gain") return static_cast<uint32_t> (EndpointHandles::gain);
|
|
74
|
+
if (endpointName == "envAttack") return static_cast<uint32_t> (EndpointHandles::envAttack);
|
|
75
|
+
if (endpointName == "sustain") return static_cast<uint32_t> (EndpointHandles::sustain);
|
|
76
|
+
if (endpointName == "reedStiffness") return static_cast<uint32_t> (EndpointHandles::reedStiffness);
|
|
77
|
+
if (endpointName == "bellOpening") return static_cast<uint32_t> (EndpointHandles::bellOpening);
|
|
78
|
+
if (endpointName == "vibratoFreq") return static_cast<uint32_t> (EndpointHandles::vibratoFreq);
|
|
79
|
+
if (endpointName == "vibratoGain") return static_cast<uint32_t> (EndpointHandles::vibratoGain);
|
|
80
|
+
if (endpointName == "outGain") return static_cast<uint32_t> (EndpointHandles::outGain);
|
|
81
|
+
if (endpointName == "gate") return static_cast<uint32_t> (EndpointHandles::gate);
|
|
82
|
+
return 0;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
static constexpr EndpointInfo inputEndpoints[] =
|
|
86
|
+
{
|
|
87
|
+
{ 1, "freq", EndpointType::event },
|
|
88
|
+
{ 2, "bend", EndpointType::event },
|
|
89
|
+
{ 3, "gain", EndpointType::event },
|
|
90
|
+
{ 4, "envAttack", EndpointType::event },
|
|
91
|
+
{ 5, "sustain", EndpointType::event },
|
|
92
|
+
{ 6, "reedStiffness", EndpointType::event },
|
|
93
|
+
{ 7, "bellOpening", EndpointType::event },
|
|
94
|
+
{ 8, "vibratoFreq", EndpointType::event },
|
|
95
|
+
{ 9, "vibratoGain", EndpointType::event },
|
|
96
|
+
{ 10, "outGain", EndpointType::event },
|
|
97
|
+
{ 11, "gate", EndpointType::event }
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
static constexpr EndpointInfo outputEndpoints[] =
|
|
101
|
+
{
|
|
102
|
+
{ 12, "out0", EndpointType::stream },
|
|
103
|
+
{ 13, "out1", EndpointType::stream }
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
//==============================================================================
|
|
107
|
+
static constexpr uint32_t numAudioInputChannels = 0;
|
|
108
|
+
static constexpr uint32_t numAudioOutputChannels = 2;
|
|
109
|
+
|
|
110
|
+
static constexpr std::array outputAudioStreams
|
|
111
|
+
{
|
|
112
|
+
outputEndpoints[0],
|
|
113
|
+
outputEndpoints[1]
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
static constexpr std::array<EndpointInfo, 0> outputEvents {};
|
|
117
|
+
|
|
118
|
+
static constexpr std::array<EndpointInfo, 0> outputMIDIEvents {};
|
|
119
|
+
|
|
120
|
+
static constexpr std::array<EndpointInfo, 0> inputAudioStreams {};
|
|
121
|
+
|
|
122
|
+
static constexpr std::array inputEvents
|
|
123
|
+
{
|
|
124
|
+
inputEndpoints[0],
|
|
125
|
+
inputEndpoints[1],
|
|
126
|
+
inputEndpoints[2],
|
|
127
|
+
inputEndpoints[3],
|
|
128
|
+
inputEndpoints[4],
|
|
129
|
+
inputEndpoints[5],
|
|
130
|
+
inputEndpoints[6],
|
|
131
|
+
inputEndpoints[7],
|
|
132
|
+
inputEndpoints[8],
|
|
133
|
+
inputEndpoints[9],
|
|
134
|
+
inputEndpoints[10]
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
static constexpr std::array<EndpointInfo, 0> inputMIDIEvents {};
|
|
138
|
+
|
|
139
|
+
static constexpr std::array inputParameters
|
|
140
|
+
{
|
|
141
|
+
inputEndpoints[0],
|
|
142
|
+
inputEndpoints[1],
|
|
143
|
+
inputEndpoints[2],
|
|
144
|
+
inputEndpoints[3],
|
|
145
|
+
inputEndpoints[4],
|
|
146
|
+
inputEndpoints[5],
|
|
147
|
+
inputEndpoints[6],
|
|
148
|
+
inputEndpoints[7],
|
|
149
|
+
inputEndpoints[8],
|
|
150
|
+
inputEndpoints[9],
|
|
151
|
+
inputEndpoints[10]
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
static constexpr const char* programDetailsJSON = "{\n"
|
|
155
|
+
" \"mainProcessor\": \"HelloReverb\",\n"
|
|
156
|
+
" \"inputs\": [\n"
|
|
157
|
+
" {\n"
|
|
158
|
+
" \"endpointID\": \"freq\",\n"
|
|
159
|
+
" \"endpointType\": \"event\",\n"
|
|
160
|
+
" \"dataType\": {\n"
|
|
161
|
+
" \"type\": \"float32\"\n"
|
|
162
|
+
" },\n"
|
|
163
|
+
" \"annotation\": {\n"
|
|
164
|
+
" \"name\": \"freq\",\n"
|
|
165
|
+
" \"min\": 50,\n"
|
|
166
|
+
" \"max\": 1000,\n"
|
|
167
|
+
" \"init\": 440,\n"
|
|
168
|
+
" \"step\": 0.01\n"
|
|
169
|
+
" },\n"
|
|
170
|
+
" \"purpose\": \"parameter\"\n"
|
|
171
|
+
" },\n"
|
|
172
|
+
" {\n"
|
|
173
|
+
" \"endpointID\": \"bend\",\n"
|
|
174
|
+
" \"endpointType\": \"event\",\n"
|
|
175
|
+
" \"dataType\": {\n"
|
|
176
|
+
" \"type\": \"float32\"\n"
|
|
177
|
+
" },\n"
|
|
178
|
+
" \"annotation\": {\n"
|
|
179
|
+
" \"name\": \"bend\",\n"
|
|
180
|
+
" \"min\": -2,\n"
|
|
181
|
+
" \"max\": 2,\n"
|
|
182
|
+
" \"init\": 0,\n"
|
|
183
|
+
" \"step\": 0.01\n"
|
|
184
|
+
" },\n"
|
|
185
|
+
" \"purpose\": \"parameter\"\n"
|
|
186
|
+
" },\n"
|
|
187
|
+
" {\n"
|
|
188
|
+
" \"endpointID\": \"gain\",\n"
|
|
189
|
+
" \"endpointType\": \"event\",\n"
|
|
190
|
+
" \"dataType\": {\n"
|
|
191
|
+
" \"type\": \"float32\"\n"
|
|
192
|
+
" },\n"
|
|
193
|
+
" \"annotation\": {\n"
|
|
194
|
+
" \"name\": \"gain\",\n"
|
|
195
|
+
" \"min\": 0,\n"
|
|
196
|
+
" \"max\": 1,\n"
|
|
197
|
+
" \"init\": 0.6,\n"
|
|
198
|
+
" \"step\": 0.01\n"
|
|
199
|
+
" },\n"
|
|
200
|
+
" \"purpose\": \"parameter\"\n"
|
|
201
|
+
" },\n"
|
|
202
|
+
" {\n"
|
|
203
|
+
" \"endpointID\": \"envAttack\",\n"
|
|
204
|
+
" \"endpointType\": \"event\",\n"
|
|
205
|
+
" \"dataType\": {\n"
|
|
206
|
+
" \"type\": \"float32\"\n"
|
|
207
|
+
" },\n"
|
|
208
|
+
" \"annotation\": {\n"
|
|
209
|
+
" \"name\": \"envAttack\",\n"
|
|
210
|
+
" \"min\": 0,\n"
|
|
211
|
+
" \"max\": 30,\n"
|
|
212
|
+
" \"init\": 1,\n"
|
|
213
|
+
" \"step\": 0.01\n"
|
|
214
|
+
" },\n"
|
|
215
|
+
" \"purpose\": \"parameter\"\n"
|
|
216
|
+
" },\n"
|
|
217
|
+
" {\n"
|
|
218
|
+
" \"endpointID\": \"sustain\",\n"
|
|
219
|
+
" \"endpointType\": \"event\",\n"
|
|
220
|
+
" \"dataType\": {\n"
|
|
221
|
+
" \"type\": \"float32\"\n"
|
|
222
|
+
" },\n"
|
|
223
|
+
" \"annotation\": {\n"
|
|
224
|
+
" \"name\": \"sustain\",\n"
|
|
225
|
+
" \"min\": 0,\n"
|
|
226
|
+
" \"max\": 1,\n"
|
|
227
|
+
" \"init\": 0,\n"
|
|
228
|
+
" \"step\": 1\n"
|
|
229
|
+
" },\n"
|
|
230
|
+
" \"purpose\": \"parameter\"\n"
|
|
231
|
+
" },\n"
|
|
232
|
+
" {\n"
|
|
233
|
+
" \"endpointID\": \"reedStiffness\",\n"
|
|
234
|
+
" \"endpointType\": \"event\",\n"
|
|
235
|
+
" \"dataType\": {\n"
|
|
236
|
+
" \"type\": \"float32\"\n"
|
|
237
|
+
" },\n"
|
|
238
|
+
" \"annotation\": {\n"
|
|
239
|
+
" \"name\": \"reedStiffness\",\n"
|
|
240
|
+
" \"min\": 0,\n"
|
|
241
|
+
" \"max\": 1,\n"
|
|
242
|
+
" \"init\": 0.5,\n"
|
|
243
|
+
" \"step\": 0.01\n"
|
|
244
|
+
" },\n"
|
|
245
|
+
" \"purpose\": \"parameter\"\n"
|
|
246
|
+
" },\n"
|
|
247
|
+
" {\n"
|
|
248
|
+
" \"endpointID\": \"bellOpening\",\n"
|
|
249
|
+
" \"endpointType\": \"event\",\n"
|
|
250
|
+
" \"dataType\": {\n"
|
|
251
|
+
" \"type\": \"float32\"\n"
|
|
252
|
+
" },\n"
|
|
253
|
+
" \"annotation\": {\n"
|
|
254
|
+
" \"name\": \"bellOpening\",\n"
|
|
255
|
+
" \"min\": 0,\n"
|
|
256
|
+
" \"max\": 1,\n"
|
|
257
|
+
" \"init\": 0.5,\n"
|
|
258
|
+
" \"step\": 0.01\n"
|
|
259
|
+
" },\n"
|
|
260
|
+
" \"purpose\": \"parameter\"\n"
|
|
261
|
+
" },\n"
|
|
262
|
+
" {\n"
|
|
263
|
+
" \"endpointID\": \"vibratoFreq\",\n"
|
|
264
|
+
" \"endpointType\": \"event\",\n"
|
|
265
|
+
" \"dataType\": {\n"
|
|
266
|
+
" \"type\": \"float32\"\n"
|
|
267
|
+
" },\n"
|
|
268
|
+
" \"annotation\": {\n"
|
|
269
|
+
" \"name\": \"vibratoFreq\",\n"
|
|
270
|
+
" \"min\": 1,\n"
|
|
271
|
+
" \"max\": 10,\n"
|
|
272
|
+
" \"init\": 5,\n"
|
|
273
|
+
" \"step\": 0.01\n"
|
|
274
|
+
" },\n"
|
|
275
|
+
" \"purpose\": \"parameter\"\n"
|
|
276
|
+
" },\n"
|
|
277
|
+
" {\n"
|
|
278
|
+
" \"endpointID\": \"vibratoGain\",\n"
|
|
279
|
+
" \"endpointType\": \"event\",\n"
|
|
280
|
+
" \"dataType\": {\n"
|
|
281
|
+
" \"type\": \"float32\"\n"
|
|
282
|
+
" },\n"
|
|
283
|
+
" \"annotation\": {\n"
|
|
284
|
+
" \"name\": \"vibratoGain\",\n"
|
|
285
|
+
" \"min\": 0,\n"
|
|
286
|
+
" \"max\": 1,\n"
|
|
287
|
+
" \"init\": 0.25,\n"
|
|
288
|
+
" \"step\": 0.01\n"
|
|
289
|
+
" },\n"
|
|
290
|
+
" \"purpose\": \"parameter\"\n"
|
|
291
|
+
" },\n"
|
|
292
|
+
" {\n"
|
|
293
|
+
" \"endpointID\": \"outGain\",\n"
|
|
294
|
+
" \"endpointType\": \"event\",\n"
|
|
295
|
+
" \"dataType\": {\n"
|
|
296
|
+
" \"type\": \"float32\"\n"
|
|
297
|
+
" },\n"
|
|
298
|
+
" \"annotation\": {\n"
|
|
299
|
+
" \"name\": \"outGain\",\n"
|
|
300
|
+
" \"min\": 0,\n"
|
|
301
|
+
" \"max\": 1,\n"
|
|
302
|
+
" \"init\": 0.5,\n"
|
|
303
|
+
" \"step\": 0.01\n"
|
|
304
|
+
" },\n"
|
|
305
|
+
" \"purpose\": \"parameter\"\n"
|
|
306
|
+
" },\n"
|
|
307
|
+
" {\n"
|
|
308
|
+
" \"endpointID\": \"gate\",\n"
|
|
309
|
+
" \"endpointType\": \"event\",\n"
|
|
310
|
+
" \"dataType\": {\n"
|
|
311
|
+
" \"type\": \"float32\"\n"
|
|
312
|
+
" },\n"
|
|
313
|
+
" \"annotation\": {\n"
|
|
314
|
+
" \"name\": \"gate\",\n"
|
|
315
|
+
" \"text\": \"off|on\",\n"
|
|
316
|
+
" \"boolean\": true\n"
|
|
317
|
+
" },\n"
|
|
318
|
+
" \"purpose\": \"parameter\"\n"
|
|
319
|
+
" }\n"
|
|
320
|
+
" ],\n"
|
|
321
|
+
" \"outputs\": [\n"
|
|
322
|
+
" {\n"
|
|
323
|
+
" \"endpointID\": \"out0\",\n"
|
|
324
|
+
" \"endpointType\": \"stream\",\n"
|
|
325
|
+
" \"dataType\": {\n"
|
|
326
|
+
" \"type\": \"float32\"\n"
|
|
327
|
+
" },\n"
|
|
328
|
+
" \"purpose\": \"audio out\",\n"
|
|
329
|
+
" \"numAudioChannels\": 1\n"
|
|
330
|
+
" },\n"
|
|
331
|
+
" {\n"
|
|
332
|
+
" \"endpointID\": \"out1\",\n"
|
|
333
|
+
" \"endpointType\": \"stream\",\n"
|
|
334
|
+
" \"dataType\": {\n"
|
|
335
|
+
" \"type\": \"float32\"\n"
|
|
336
|
+
" },\n"
|
|
337
|
+
" \"purpose\": \"audio out\",\n"
|
|
338
|
+
" \"numAudioChannels\": 1\n"
|
|
339
|
+
" }\n"
|
|
340
|
+
" ]\n"
|
|
341
|
+
"}";
|
|
342
|
+
|
|
343
|
+
//==============================================================================
|
|
344
|
+
struct intrinsics;
|
|
345
|
+
|
|
346
|
+
using SizeType = int32_t;
|
|
347
|
+
using IndexType = int32_t;
|
|
348
|
+
using StringHandle = uint32_t;
|
|
349
|
+
|
|
350
|
+
struct Null
|
|
351
|
+
{
|
|
352
|
+
template <typename AnyType> operator AnyType() const { return {}; }
|
|
353
|
+
Null operator[] (IndexType) const { return {}; }
|
|
354
|
+
};
|
|
355
|
+
|
|
356
|
+
//==============================================================================
|
|
357
|
+
template <typename ElementType, SizeType numElements>
|
|
358
|
+
struct Array
|
|
359
|
+
{
|
|
360
|
+
Array() = default;
|
|
361
|
+
Array (Null) {}
|
|
362
|
+
Array (const Array&) = default;
|
|
363
|
+
|
|
364
|
+
template <typename ElementOrList>
|
|
365
|
+
Array (const ElementOrList& value) noexcept
|
|
366
|
+
{
|
|
367
|
+
if constexpr (std::is_convertible<ElementOrList, ElementType>::value)
|
|
368
|
+
{
|
|
369
|
+
for (IndexType i = 0; i < numElements; ++i)
|
|
370
|
+
this->elements[i] = static_cast<ElementType> (value);
|
|
371
|
+
}
|
|
372
|
+
else
|
|
373
|
+
{
|
|
374
|
+
for (IndexType i = 0; i < numElements; ++i)
|
|
375
|
+
this->elements[i] = static_cast<ElementType> (value[i]);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
template <typename... Others>
|
|
380
|
+
Array (ElementType e0, ElementType e1, Others... others) noexcept
|
|
381
|
+
{
|
|
382
|
+
this->elements[0] = static_cast<ElementType> (e0);
|
|
383
|
+
this->elements[1] = static_cast<ElementType> (e1);
|
|
384
|
+
|
|
385
|
+
if constexpr (numElements > 2)
|
|
386
|
+
{
|
|
387
|
+
const ElementType initialisers[] = { static_cast<ElementType> (others)... };
|
|
388
|
+
|
|
389
|
+
for (size_t i = 0; i < sizeof...(others); ++i)
|
|
390
|
+
this->elements[i + 2] = initialisers[i];
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
Array (const ElementType* rawArray, size_t) noexcept
|
|
395
|
+
{
|
|
396
|
+
for (IndexType i = 0; i < numElements; ++i)
|
|
397
|
+
this->elements[i] = rawArray[i];
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
Array& operator= (const Array&) noexcept = default;
|
|
401
|
+
Array& operator= (Null) noexcept { this->clear(); return *this; }
|
|
402
|
+
|
|
403
|
+
template <typename ElementOrList>
|
|
404
|
+
Array& operator= (const ElementOrList& value) noexcept
|
|
405
|
+
{
|
|
406
|
+
if constexpr (std::is_convertible<ElementOrList, ElementType>::value)
|
|
407
|
+
{
|
|
408
|
+
for (IndexType i = 0; i < numElements; ++i)
|
|
409
|
+
this->elements[i] = static_cast<ElementType> (value);
|
|
410
|
+
}
|
|
411
|
+
else
|
|
412
|
+
{
|
|
413
|
+
for (IndexType i = 0; i < numElements; ++i)
|
|
414
|
+
this->elements[i] = static_cast<ElementType> (value[i]);
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
static constexpr SizeType size() { return numElements; }
|
|
419
|
+
|
|
420
|
+
const ElementType& operator[] (IndexType index) const noexcept { return this->elements[index]; }
|
|
421
|
+
ElementType& operator[] (IndexType index) noexcept { return this->elements[index]; }
|
|
422
|
+
|
|
423
|
+
void clear() noexcept
|
|
424
|
+
{
|
|
425
|
+
for (auto& element : elements)
|
|
426
|
+
element = ElementType();
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
void clear (SizeType numElementsToClear) noexcept
|
|
430
|
+
{
|
|
431
|
+
for (SizeType i = 0; i < numElementsToClear; ++i)
|
|
432
|
+
elements[i] = ElementType();
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
ElementType elements[numElements] = {};
|
|
436
|
+
};
|
|
437
|
+
|
|
438
|
+
//==============================================================================
|
|
439
|
+
template <typename ElementType, SizeType numElements>
|
|
440
|
+
struct Vector : public Array<ElementType, numElements>
|
|
441
|
+
{
|
|
442
|
+
Vector() = default;
|
|
443
|
+
Vector (Null) {}
|
|
444
|
+
|
|
445
|
+
template <typename ElementOrList>
|
|
446
|
+
Vector (const ElementOrList& value) noexcept : Array<ElementType, numElements> (value) {}
|
|
447
|
+
|
|
448
|
+
template <typename... Others>
|
|
449
|
+
Vector (ElementType e0, ElementType e1, Others... others) noexcept : Array<ElementType, numElements> (e0, e1, others...) {}
|
|
450
|
+
|
|
451
|
+
Vector (const ElementType* rawArray, size_t) noexcept : Array<ElementType, numElements> (rawArray, size_t()) {}
|
|
452
|
+
|
|
453
|
+
template <typename ElementOrList>
|
|
454
|
+
Vector& operator= (const ElementOrList& value) noexcept { return Array<ElementType, numElements>::operator= (value); }
|
|
455
|
+
|
|
456
|
+
Vector& operator= (Null) noexcept { this->clear(); return *this; }
|
|
457
|
+
|
|
458
|
+
operator ElementType() const noexcept
|
|
459
|
+
{
|
|
460
|
+
static_assert (numElements == 1);
|
|
461
|
+
return this->elements[0];
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
constexpr auto operator!() const noexcept { return performUnaryOp ([] (ElementType n) { return ! n; }); }
|
|
465
|
+
constexpr auto operator~() const noexcept { return performUnaryOp ([] (ElementType n) { return ~n; }); }
|
|
466
|
+
constexpr auto operator-() const noexcept { return performUnaryOp ([] (ElementType n) { return -n; }); }
|
|
467
|
+
|
|
468
|
+
constexpr auto operator+ (const Vector& rhs) const noexcept { return performBinaryOp (rhs, [] (ElementType a, ElementType b) { return a + b; }); }
|
|
469
|
+
constexpr auto operator- (const Vector& rhs) const noexcept { return performBinaryOp (rhs, [] (ElementType a, ElementType b) { return a - b; }); }
|
|
470
|
+
constexpr auto operator* (const Vector& rhs) const noexcept { return performBinaryOp (rhs, [] (ElementType a, ElementType b) { return a * b; }); }
|
|
471
|
+
constexpr auto operator/ (const Vector& rhs) const noexcept { return performBinaryOp (rhs, [] (ElementType a, ElementType b) { return a / b; }); }
|
|
472
|
+
constexpr auto operator% (const Vector& rhs) const noexcept { return performBinaryOp (rhs, [] (ElementType a, ElementType b) { return intrinsics::modulo (a, b); }); }
|
|
473
|
+
|
|
474
|
+
constexpr auto operator== (const Vector& rhs) const noexcept { return performComparison (rhs, [] (ElementType a, ElementType b) { return a == b; }); }
|
|
475
|
+
constexpr auto operator!= (const Vector& rhs) const noexcept { return performComparison (rhs, [] (ElementType a, ElementType b) { return a != b; }); }
|
|
476
|
+
constexpr auto operator< (const Vector& rhs) const noexcept { return performComparison (rhs, [] (ElementType a, ElementType b) { return a < b; }); }
|
|
477
|
+
constexpr auto operator<= (const Vector& rhs) const noexcept { return performComparison (rhs, [] (ElementType a, ElementType b) { return a <= b; }); }
|
|
478
|
+
constexpr auto operator> (const Vector& rhs) const noexcept { return performComparison (rhs, [] (ElementType a, ElementType b) { return a > b; }); }
|
|
479
|
+
constexpr auto operator>= (const Vector& rhs) const noexcept { return performComparison (rhs, [] (ElementType a, ElementType b) { return a >= b; }); }
|
|
480
|
+
|
|
481
|
+
template <typename Functor>
|
|
482
|
+
constexpr Vector performUnaryOp (Functor&& f) const noexcept
|
|
483
|
+
{
|
|
484
|
+
Vector result;
|
|
485
|
+
|
|
486
|
+
for (IndexType i = 0; i < numElements; ++i)
|
|
487
|
+
result.elements[i] = f (this->elements[i]);
|
|
488
|
+
|
|
489
|
+
return result;
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
template <typename Functor>
|
|
493
|
+
constexpr Vector performBinaryOp (const Vector& rhs, Functor&& f) const noexcept
|
|
494
|
+
{
|
|
495
|
+
Vector result;
|
|
496
|
+
|
|
497
|
+
for (IndexType i = 0; i < numElements; ++i)
|
|
498
|
+
result.elements[i] = f (this->elements[i], rhs.elements[i]);
|
|
499
|
+
|
|
500
|
+
return result;
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
template <typename Functor>
|
|
504
|
+
constexpr Vector<bool, numElements> performComparison (const Vector& rhs, Functor&& f) const noexcept
|
|
505
|
+
{
|
|
506
|
+
Vector<bool, numElements> result;
|
|
507
|
+
|
|
508
|
+
for (IndexType i = 0; i < numElements; ++i)
|
|
509
|
+
result.elements[i] = f (this->elements[i], rhs.elements[i]);
|
|
510
|
+
|
|
511
|
+
return result;
|
|
512
|
+
}
|
|
513
|
+
};
|
|
514
|
+
|
|
515
|
+
//==============================================================================
|
|
516
|
+
template <typename ElementType>
|
|
517
|
+
struct Slice
|
|
518
|
+
{
|
|
519
|
+
Slice() = default;
|
|
520
|
+
Slice (Null) {}
|
|
521
|
+
Slice (ElementType* e, SizeType size) : elements (e), numElements (size) {}
|
|
522
|
+
Slice (const Slice&) = default;
|
|
523
|
+
Slice& operator= (const Slice&) = default;
|
|
524
|
+
template <typename ArrayType> Slice (const ArrayType& a) : elements (const_cast<ArrayType&> (a).elements), numElements (a.size()) {}
|
|
525
|
+
template <typename ArrayType> Slice (const ArrayType& a, SizeType offset, SizeType size) : elements (const_cast<ArrayType&> (a).elements + offset), numElements (size) {}
|
|
526
|
+
|
|
527
|
+
constexpr SizeType size() const { return numElements; }
|
|
528
|
+
ElementType operator[] (IndexType index) const noexcept { return numElements == 0 ? ElementType() : elements[index]; }
|
|
529
|
+
ElementType& operator[] (IndexType index) noexcept { return numElements == 0 ? emptyValue : elements[index]; }
|
|
530
|
+
|
|
531
|
+
Slice slice (IndexType start, IndexType end) noexcept { if (numElements == 0) return {}; return { elements + start, end }; }
|
|
532
|
+
Slice sliceFrom (IndexType start) noexcept { if (numElements == 0) return {}; return { elements + start, numElements - start }; }
|
|
533
|
+
Slice sliceUpTo (IndexType end) noexcept { if (numElements == 0) return {}; return { elements, end }; }
|
|
534
|
+
|
|
535
|
+
ElementType* elements = nullptr;
|
|
536
|
+
SizeType numElements = 0;
|
|
537
|
+
|
|
538
|
+
static inline ElementType emptyValue {};
|
|
539
|
+
};
|
|
540
|
+
|
|
541
|
+
//==============================================================================
|
|
542
|
+
#if __clang__
|
|
543
|
+
#pragma clang diagnostic push
|
|
544
|
+
#pragma clang diagnostic ignored "-Wunused-variable"
|
|
545
|
+
#pragma clang diagnostic ignored "-Wunused-parameter"
|
|
546
|
+
#pragma clang diagnostic ignored "-Wunused-label"
|
|
547
|
+
|
|
548
|
+
#if __clang_major__ >= 14
|
|
549
|
+
#pragma clang diagnostic ignored "-Wunused-but-set-variable"
|
|
550
|
+
#endif
|
|
551
|
+
|
|
552
|
+
#elif __GNUC__
|
|
553
|
+
#pragma GCC diagnostic push
|
|
554
|
+
#pragma GCC diagnostic ignored "-Wunused-variable"
|
|
555
|
+
#pragma GCC diagnostic ignored "-Wunused-parameter"
|
|
556
|
+
#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
|
|
557
|
+
#pragma GCC diagnostic ignored "-Wunused-label"
|
|
558
|
+
#else
|
|
559
|
+
#pragma warning (push, 0)
|
|
560
|
+
#pragma warning (disable: 4702)
|
|
561
|
+
#pragma warning (disable: 4706)
|
|
562
|
+
#endif
|
|
563
|
+
|
|
564
|
+
//==============================================================================
|
|
565
|
+
struct _HelloWorld_1_State
|
|
566
|
+
{
|
|
567
|
+
int32_t framesPerQuarterNote = {};
|
|
568
|
+
float phase = {};
|
|
569
|
+
int32_t i = {};
|
|
570
|
+
float phaseDelta = {};
|
|
571
|
+
int32_t _count = {};
|
|
572
|
+
int32_t _resumeIndex = {};
|
|
573
|
+
};
|
|
574
|
+
|
|
575
|
+
struct faust_reverb_1_State
|
|
576
|
+
{
|
|
577
|
+
int32_t fSampleRate = {};
|
|
578
|
+
float fConst0 = {};
|
|
579
|
+
float fConst1 = {};
|
|
580
|
+
float fVslider0 = {};
|
|
581
|
+
float fSlow0 = {};
|
|
582
|
+
float fConst2 = {};
|
|
583
|
+
Array<float, 2> fRec0;
|
|
584
|
+
int32_t IOTA0 = {};
|
|
585
|
+
Array<float, 16384> fVec0;
|
|
586
|
+
float fVslider1 = {};
|
|
587
|
+
float fSlow1 = {};
|
|
588
|
+
Array<float, 2> fRec1;
|
|
589
|
+
float fConst3 = {};
|
|
590
|
+
float fVslider2 = {};
|
|
591
|
+
float fSlow2 = {};
|
|
592
|
+
float fVslider3 = {};
|
|
593
|
+
float fSlow3 = {};
|
|
594
|
+
float fSlow4 = {};
|
|
595
|
+
float fSlow5 = {};
|
|
596
|
+
float fConst4 = {};
|
|
597
|
+
float fConst5 = {};
|
|
598
|
+
float fVslider4 = {};
|
|
599
|
+
float fSlow6 = {};
|
|
600
|
+
float fSlow7 = {};
|
|
601
|
+
float fVslider5 = {};
|
|
602
|
+
float fSlow8 = {};
|
|
603
|
+
float fSlow9 = {};
|
|
604
|
+
float fSlow10 = {};
|
|
605
|
+
float fSlow11 = {};
|
|
606
|
+
float fSlow12 = {};
|
|
607
|
+
float fSlow13 = {};
|
|
608
|
+
float fSlow14 = {};
|
|
609
|
+
float fVslider6 = {};
|
|
610
|
+
float fSlow15 = {};
|
|
611
|
+
float fSlow16 = {};
|
|
612
|
+
float fConst6 = {};
|
|
613
|
+
float fVslider7 = {};
|
|
614
|
+
float fSlow17 = {};
|
|
615
|
+
float fSlow18 = {};
|
|
616
|
+
float fSlow19 = {};
|
|
617
|
+
Array<float, 2> fRec15;
|
|
618
|
+
float fSlow20 = {};
|
|
619
|
+
Array<float, 2> fRec14;
|
|
620
|
+
Array<float, 32768> fVec1;
|
|
621
|
+
float fConst7 = {};
|
|
622
|
+
int32_t iConst8 = {};
|
|
623
|
+
Array<float, 16384> fVec2;
|
|
624
|
+
float fConst9 = {};
|
|
625
|
+
float fVslider8 = {};
|
|
626
|
+
int32_t iSlow21 = {};
|
|
627
|
+
Array<float, 2048> fVec3;
|
|
628
|
+
int32_t iConst10 = {};
|
|
629
|
+
Array<float, 2> fRec12;
|
|
630
|
+
float fConst11 = {};
|
|
631
|
+
float fConst12 = {};
|
|
632
|
+
float fSlow22 = {};
|
|
633
|
+
float fSlow23 = {};
|
|
634
|
+
float fSlow24 = {};
|
|
635
|
+
float fSlow25 = {};
|
|
636
|
+
float fSlow26 = {};
|
|
637
|
+
float fSlow27 = {};
|
|
638
|
+
float fSlow28 = {};
|
|
639
|
+
float fSlow29 = {};
|
|
640
|
+
Array<float, 2> fRec19;
|
|
641
|
+
float fSlow30 = {};
|
|
642
|
+
Array<float, 2> fRec18;
|
|
643
|
+
Array<float, 32768> fVec4;
|
|
644
|
+
float fConst13 = {};
|
|
645
|
+
int32_t iConst14 = {};
|
|
646
|
+
Array<float, 4096> fVec5;
|
|
647
|
+
int32_t iConst15 = {};
|
|
648
|
+
Array<float, 2> fRec16;
|
|
649
|
+
float fConst16 = {};
|
|
650
|
+
float fConst17 = {};
|
|
651
|
+
float fSlow31 = {};
|
|
652
|
+
float fSlow32 = {};
|
|
653
|
+
float fSlow33 = {};
|
|
654
|
+
float fSlow34 = {};
|
|
655
|
+
float fSlow35 = {};
|
|
656
|
+
float fSlow36 = {};
|
|
657
|
+
float fSlow37 = {};
|
|
658
|
+
float fSlow38 = {};
|
|
659
|
+
Array<float, 2> fRec23;
|
|
660
|
+
float fSlow39 = {};
|
|
661
|
+
Array<float, 2> fRec22;
|
|
662
|
+
Array<float, 16384> fVec6;
|
|
663
|
+
float fConst18 = {};
|
|
664
|
+
int32_t iConst19 = {};
|
|
665
|
+
Array<float, 4096> fVec7;
|
|
666
|
+
int32_t iConst20 = {};
|
|
667
|
+
Array<float, 2> fRec20;
|
|
668
|
+
float fConst21 = {};
|
|
669
|
+
float fConst22 = {};
|
|
670
|
+
float fSlow40 = {};
|
|
671
|
+
float fSlow41 = {};
|
|
672
|
+
float fSlow42 = {};
|
|
673
|
+
float fSlow43 = {};
|
|
674
|
+
float fSlow44 = {};
|
|
675
|
+
float fSlow45 = {};
|
|
676
|
+
float fSlow46 = {};
|
|
677
|
+
float fSlow47 = {};
|
|
678
|
+
Array<float, 2> fRec27;
|
|
679
|
+
float fSlow48 = {};
|
|
680
|
+
Array<float, 2> fRec26;
|
|
681
|
+
Array<float, 32768> fVec8;
|
|
682
|
+
float fConst23 = {};
|
|
683
|
+
int32_t iConst24 = {};
|
|
684
|
+
Array<float, 4096> fVec9;
|
|
685
|
+
int32_t iConst25 = {};
|
|
686
|
+
Array<float, 2> fRec24;
|
|
687
|
+
float fConst26 = {};
|
|
688
|
+
float fConst27 = {};
|
|
689
|
+
float fSlow49 = {};
|
|
690
|
+
float fSlow50 = {};
|
|
691
|
+
float fSlow51 = {};
|
|
692
|
+
float fSlow52 = {};
|
|
693
|
+
float fSlow53 = {};
|
|
694
|
+
float fSlow54 = {};
|
|
695
|
+
float fSlow55 = {};
|
|
696
|
+
float fSlow56 = {};
|
|
697
|
+
Array<float, 2> fRec31;
|
|
698
|
+
float fSlow57 = {};
|
|
699
|
+
Array<float, 2> fRec30;
|
|
700
|
+
Array<float, 16384> fVec10;
|
|
701
|
+
float fConst28 = {};
|
|
702
|
+
int32_t iConst29 = {};
|
|
703
|
+
Array<float, 2048> fVec11;
|
|
704
|
+
int32_t iConst30 = {};
|
|
705
|
+
Array<float, 2> fRec28;
|
|
706
|
+
float fConst31 = {};
|
|
707
|
+
float fConst32 = {};
|
|
708
|
+
float fSlow58 = {};
|
|
709
|
+
float fSlow59 = {};
|
|
710
|
+
float fSlow60 = {};
|
|
711
|
+
float fSlow61 = {};
|
|
712
|
+
float fSlow62 = {};
|
|
713
|
+
float fSlow63 = {};
|
|
714
|
+
float fSlow64 = {};
|
|
715
|
+
float fSlow65 = {};
|
|
716
|
+
Array<float, 2> fRec35;
|
|
717
|
+
float fSlow66 = {};
|
|
718
|
+
Array<float, 2> fRec34;
|
|
719
|
+
Array<float, 16384> fVec12;
|
|
720
|
+
float fConst33 = {};
|
|
721
|
+
int32_t iConst34 = {};
|
|
722
|
+
Array<float, 4096> fVec13;
|
|
723
|
+
int32_t iConst35 = {};
|
|
724
|
+
Array<float, 2> fRec32;
|
|
725
|
+
float fConst36 = {};
|
|
726
|
+
float fConst37 = {};
|
|
727
|
+
float fSlow67 = {};
|
|
728
|
+
float fSlow68 = {};
|
|
729
|
+
float fSlow69 = {};
|
|
730
|
+
float fSlow70 = {};
|
|
731
|
+
float fSlow71 = {};
|
|
732
|
+
float fSlow72 = {};
|
|
733
|
+
float fSlow73 = {};
|
|
734
|
+
float fSlow74 = {};
|
|
735
|
+
Array<float, 2> fRec39;
|
|
736
|
+
float fSlow75 = {};
|
|
737
|
+
Array<float, 2> fRec38;
|
|
738
|
+
Array<float, 16384> fVec14;
|
|
739
|
+
float fConst38 = {};
|
|
740
|
+
int32_t iConst39 = {};
|
|
741
|
+
Array<float, 4096> fVec15;
|
|
742
|
+
int32_t iConst40 = {};
|
|
743
|
+
Array<float, 2> fRec36;
|
|
744
|
+
float fConst41 = {};
|
|
745
|
+
float fConst42 = {};
|
|
746
|
+
float fSlow76 = {};
|
|
747
|
+
float fSlow77 = {};
|
|
748
|
+
float fSlow78 = {};
|
|
749
|
+
float fSlow79 = {};
|
|
750
|
+
float fSlow80 = {};
|
|
751
|
+
float fSlow81 = {};
|
|
752
|
+
float fSlow82 = {};
|
|
753
|
+
float fSlow83 = {};
|
|
754
|
+
Array<float, 2> fRec43;
|
|
755
|
+
float fSlow84 = {};
|
|
756
|
+
Array<float, 2> fRec42;
|
|
757
|
+
Array<float, 16384> fVec16;
|
|
758
|
+
float fConst43 = {};
|
|
759
|
+
int32_t iConst44 = {};
|
|
760
|
+
Array<float, 2048> fVec17;
|
|
761
|
+
int32_t iConst45 = {};
|
|
762
|
+
Array<float, 2> fRec40;
|
|
763
|
+
Array<float, 3> fRec4;
|
|
764
|
+
Array<float, 3> fRec5;
|
|
765
|
+
Array<float, 3> fRec6;
|
|
766
|
+
Array<float, 3> fRec7;
|
|
767
|
+
Array<float, 3> fRec8;
|
|
768
|
+
Array<float, 3> fRec9;
|
|
769
|
+
Array<float, 3> fRec10;
|
|
770
|
+
Array<float, 3> fRec11;
|
|
771
|
+
float fSlow85 = {};
|
|
772
|
+
Array<float, 3> fRec3;
|
|
773
|
+
float fVslider9 = {};
|
|
774
|
+
float fSlow86 = {};
|
|
775
|
+
float fVslider10 = {};
|
|
776
|
+
float fSlow87 = {};
|
|
777
|
+
float fSlow88 = {};
|
|
778
|
+
float fSlow89 = {};
|
|
779
|
+
float fSlow90 = {};
|
|
780
|
+
Array<float, 3> fRec2;
|
|
781
|
+
Array<float, 3> fRec45;
|
|
782
|
+
Array<float, 3> fRec44;
|
|
783
|
+
bool fUpdated = {};
|
|
784
|
+
int32_t _resumeIndex = {};
|
|
785
|
+
};
|
|
786
|
+
|
|
787
|
+
struct faust_echo_1_State
|
|
788
|
+
{
|
|
789
|
+
int32_t IOTA0 = {};
|
|
790
|
+
int32_t fSampleRate = {};
|
|
791
|
+
float fConst0 = {};
|
|
792
|
+
float fVslider0 = {};
|
|
793
|
+
int32_t iSlow0 = {};
|
|
794
|
+
Array<float, 2097152> fRec0;
|
|
795
|
+
Array<float, 2097152> fRec1;
|
|
796
|
+
bool fUpdated = {};
|
|
797
|
+
int32_t _resumeIndex = {};
|
|
798
|
+
};
|
|
799
|
+
|
|
800
|
+
struct faust_voice_1_State
|
|
801
|
+
{
|
|
802
|
+
float fHslider0 = {};
|
|
803
|
+
float fSlow0 = {};
|
|
804
|
+
Array<int32_t, 2> iRec6;
|
|
805
|
+
float fHslider1 = {};
|
|
806
|
+
float fSlow1 = {};
|
|
807
|
+
float fSlow2 = {};
|
|
808
|
+
Array<int32_t, 2> iVec0;
|
|
809
|
+
Array<float, 2> fRec12;
|
|
810
|
+
int32_t fSampleRate = {};
|
|
811
|
+
float fConst0 = {};
|
|
812
|
+
float fConst1 = {};
|
|
813
|
+
float fHslider2 = {};
|
|
814
|
+
float fSlow3 = {};
|
|
815
|
+
float fHslider3 = {};
|
|
816
|
+
float fSlow4 = {};
|
|
817
|
+
float fButton0 = {};
|
|
818
|
+
float fHslider4 = {};
|
|
819
|
+
float fSlow5 = {};
|
|
820
|
+
Array<float, 2> fVec1;
|
|
821
|
+
int32_t iSlow6 = {};
|
|
822
|
+
Array<float, 2> fRec13;
|
|
823
|
+
float fHslider5 = {};
|
|
824
|
+
float fSlow7 = {};
|
|
825
|
+
float fHslider6 = {};
|
|
826
|
+
float fHslider7 = {};
|
|
827
|
+
float fSlow8 = {};
|
|
828
|
+
int32_t iSlow9 = {};
|
|
829
|
+
float fConst2 = {};
|
|
830
|
+
float fSlow10 = {};
|
|
831
|
+
float fSlow11 = {};
|
|
832
|
+
Array<float, 2> fRec14;
|
|
833
|
+
float fHslider8 = {};
|
|
834
|
+
float fSlow12 = {};
|
|
835
|
+
Array<float, 2> fRec16;
|
|
836
|
+
float fConst3 = {};
|
|
837
|
+
float fConst4 = {};
|
|
838
|
+
float fConst5 = {};
|
|
839
|
+
float fConst6 = {};
|
|
840
|
+
Array<int32_t, 2> iRec20;
|
|
841
|
+
float fConst7 = {};
|
|
842
|
+
float fConst8 = {};
|
|
843
|
+
float fConst9 = {};
|
|
844
|
+
Array<float, 3> fRec19;
|
|
845
|
+
Array<float, 2> fRec17;
|
|
846
|
+
float fHslider9 = {};
|
|
847
|
+
float fSlow13 = {};
|
|
848
|
+
int32_t IOTA0 = {};
|
|
849
|
+
Array<float, 2048> fRec18;
|
|
850
|
+
float fConst10 = {};
|
|
851
|
+
Array<float, 2> fVec3;
|
|
852
|
+
Array<float, 2> fRec11;
|
|
853
|
+
Array<float, 2048> fRec2;
|
|
854
|
+
Array<float, 2> fRec0;
|
|
855
|
+
bool fUpdated = {};
|
|
856
|
+
Array<float, 65536> ftbl0voiceSIG0;
|
|
857
|
+
int32_t _resumeIndex = {};
|
|
858
|
+
};
|
|
859
|
+
|
|
860
|
+
struct _HelloReverb_State
|
|
861
|
+
{
|
|
862
|
+
int32_t _sessionID = {};
|
|
863
|
+
double _frequency = {};
|
|
864
|
+
_HelloWorld_1_State Hello;
|
|
865
|
+
faust_reverb_1_State Reverb;
|
|
866
|
+
faust_echo_1_State Echo;
|
|
867
|
+
faust_voice_1_State Clarinet;
|
|
868
|
+
};
|
|
869
|
+
|
|
870
|
+
struct HelloReverb_State
|
|
871
|
+
{
|
|
872
|
+
int32_t _currentFrame = {};
|
|
873
|
+
_HelloReverb_State _state;
|
|
874
|
+
};
|
|
875
|
+
|
|
876
|
+
struct faust_voice_1_voiceSIG0
|
|
877
|
+
{
|
|
878
|
+
Array<int32_t, 2> iVec2;
|
|
879
|
+
Array<int32_t, 2> iRec15;
|
|
880
|
+
};
|
|
881
|
+
|
|
882
|
+
struct HelloReverb_IO
|
|
883
|
+
{
|
|
884
|
+
Array<float, 512> out0;
|
|
885
|
+
Array<float, 512> out1;
|
|
886
|
+
};
|
|
887
|
+
|
|
888
|
+
struct _HelloReverb_IO
|
|
889
|
+
{
|
|
890
|
+
float out0 = {};
|
|
891
|
+
float out1 = {};
|
|
892
|
+
};
|
|
893
|
+
|
|
894
|
+
struct _HelloWorld_1_IO
|
|
895
|
+
{
|
|
896
|
+
float out = {};
|
|
897
|
+
};
|
|
898
|
+
|
|
899
|
+
struct faust_reverb_1_IO
|
|
900
|
+
{
|
|
901
|
+
float input0 = {};
|
|
902
|
+
float input1 = {};
|
|
903
|
+
float output0 = {};
|
|
904
|
+
float output1 = {};
|
|
905
|
+
};
|
|
906
|
+
|
|
907
|
+
struct faust_voice_1_IO
|
|
908
|
+
{
|
|
909
|
+
float output0 = {};
|
|
910
|
+
float output1 = {};
|
|
911
|
+
};
|
|
912
|
+
|
|
913
|
+
struct _HelloWorld_1_Note
|
|
914
|
+
{
|
|
915
|
+
int32_t pitch = {};
|
|
916
|
+
int32_t length = {};
|
|
917
|
+
};
|
|
918
|
+
|
|
919
|
+
using std_intrinsics_T = float;
|
|
920
|
+
using std_intrinsics_T_0 = float;
|
|
921
|
+
using std_intrinsics_T_1 = float;
|
|
922
|
+
using std_intrinsics_T_2 = float;
|
|
923
|
+
using std_intrinsics_T_3 = float;
|
|
924
|
+
using std_intrinsics_T_4 = float;
|
|
925
|
+
using std_intrinsics_T_5 = float;
|
|
926
|
+
using std_notes_T = int32_t;
|
|
927
|
+
using std_intrinsics_T_6 = float;
|
|
928
|
+
using std_intrinsics_T_7 = float;
|
|
929
|
+
using std_intrinsics_T_8 = float;
|
|
930
|
+
using std_intrinsics_T_9 = float;
|
|
931
|
+
using std_intrinsics_T_10 = int32_t;
|
|
932
|
+
using std_intrinsics_T_11 = int32_t;
|
|
933
|
+
using std_intrinsics_T_12 = float;
|
|
934
|
+
|
|
935
|
+
//==============================================================================
|
|
936
|
+
double getMaxFrequency() const
|
|
937
|
+
{
|
|
938
|
+
return 192000.0;
|
|
939
|
+
}
|
|
940
|
+
|
|
941
|
+
void initialise (int32_t sessionID, double frequency)
|
|
942
|
+
{
|
|
943
|
+
assert (frequency <= getMaxFrequency());
|
|
944
|
+
initSessionID = sessionID;
|
|
945
|
+
initFrequency = frequency;
|
|
946
|
+
reset();
|
|
947
|
+
}
|
|
948
|
+
|
|
949
|
+
void reset()
|
|
950
|
+
{
|
|
951
|
+
std::memset (&state, 0, sizeof (state));
|
|
952
|
+
int32_t processorID = 0;
|
|
953
|
+
_initialise (state, processorID, initSessionID, initFrequency);
|
|
954
|
+
}
|
|
955
|
+
|
|
956
|
+
void advance (int32_t frames)
|
|
957
|
+
{
|
|
958
|
+
io.out0.clear (static_cast<SizeType> (frames));
|
|
959
|
+
io.out1.clear (static_cast<SizeType> (frames));
|
|
960
|
+
_advance (state, io, frames);
|
|
961
|
+
}
|
|
962
|
+
|
|
963
|
+
void copyOutputValue (EndpointHandle endpointHandle, void* dest)
|
|
964
|
+
{
|
|
965
|
+
(void) endpointHandle; (void) dest;
|
|
966
|
+
|
|
967
|
+
assert (false);
|
|
968
|
+
}
|
|
969
|
+
|
|
970
|
+
void copyOutputFrames (EndpointHandle endpointHandle, void* dest, uint32_t numFramesToCopy)
|
|
971
|
+
{
|
|
972
|
+
if (endpointHandle == 12) { std::memcpy (dest, std::addressof (io.out0), 4 * numFramesToCopy); std::memset (std::addressof (io.out0), 0, 4 * numFramesToCopy); return; }
|
|
973
|
+
if (endpointHandle == 13) { std::memcpy (dest, std::addressof (io.out1), 4 * numFramesToCopy); std::memset (std::addressof (io.out1), 0, 4 * numFramesToCopy); return; }
|
|
974
|
+
assert (false);
|
|
975
|
+
}
|
|
976
|
+
|
|
977
|
+
uint32_t getNumOutputEvents (EndpointHandle endpointHandle)
|
|
978
|
+
{
|
|
979
|
+
(void) endpointHandle;
|
|
980
|
+
|
|
981
|
+
assert (false); return {};
|
|
982
|
+
}
|
|
983
|
+
|
|
984
|
+
void resetOutputEventCount (EndpointHandle endpointHandle)
|
|
985
|
+
{
|
|
986
|
+
(void) endpointHandle;
|
|
987
|
+
}
|
|
988
|
+
|
|
989
|
+
uint32_t getOutputEventType (EndpointHandle endpointHandle, uint32_t index)
|
|
990
|
+
{
|
|
991
|
+
(void) endpointHandle; (void) index;
|
|
992
|
+
|
|
993
|
+
assert (false); return {};
|
|
994
|
+
}
|
|
995
|
+
|
|
996
|
+
static uint32_t getOutputEventDataSize (EndpointHandle endpointHandle, uint32_t typeIndex)
|
|
997
|
+
{
|
|
998
|
+
(void) endpointHandle; (void) typeIndex;
|
|
999
|
+
|
|
1000
|
+
assert (false); return 0;
|
|
1001
|
+
}
|
|
1002
|
+
|
|
1003
|
+
uint32_t readOutputEvent (EndpointHandle endpointHandle, uint32_t index, unsigned char* dest)
|
|
1004
|
+
{
|
|
1005
|
+
|
|
1006
|
+
(void) endpointHandle; (void) index; (void) dest;
|
|
1007
|
+
|
|
1008
|
+
assert (false);
|
|
1009
|
+
return {};
|
|
1010
|
+
}
|
|
1011
|
+
|
|
1012
|
+
void addEvent_freq (float event)
|
|
1013
|
+
{
|
|
1014
|
+
_sendEvent_freq (state, event);
|
|
1015
|
+
}
|
|
1016
|
+
|
|
1017
|
+
void addEvent_gate (float event)
|
|
1018
|
+
{
|
|
1019
|
+
_sendEvent_gate (state, event);
|
|
1020
|
+
}
|
|
1021
|
+
|
|
1022
|
+
void addEvent (EndpointHandle endpointHandle, uint32_t typeIndex, const unsigned char* eventData)
|
|
1023
|
+
{
|
|
1024
|
+
(void) endpointHandle; (void) typeIndex; (void) eventData;
|
|
1025
|
+
|
|
1026
|
+
if (endpointHandle == 1)
|
|
1027
|
+
{
|
|
1028
|
+
float value;
|
|
1029
|
+
memcpy (&value, eventData, 4);
|
|
1030
|
+
eventData += 4;
|
|
1031
|
+
return addEvent_freq (value);
|
|
1032
|
+
}
|
|
1033
|
+
|
|
1034
|
+
if (endpointHandle == 11)
|
|
1035
|
+
{
|
|
1036
|
+
float value;
|
|
1037
|
+
memcpy (&value, eventData, 4);
|
|
1038
|
+
eventData += 4;
|
|
1039
|
+
return addEvent_gate (value);
|
|
1040
|
+
}
|
|
1041
|
+
}
|
|
1042
|
+
|
|
1043
|
+
void setValue (EndpointHandle endpointHandle, const void* value, int32_t frames)
|
|
1044
|
+
{
|
|
1045
|
+
(void) endpointHandle; (void) value; (void) frames;
|
|
1046
|
+
}
|
|
1047
|
+
|
|
1048
|
+
void setInputFrames (EndpointHandle endpointHandle, const void* frameData, uint32_t numFrames, uint32_t numTrailingFramesToClear)
|
|
1049
|
+
{
|
|
1050
|
+
(void) endpointHandle; (void) frameData; (void) numFrames; (void) numTrailingFramesToClear;
|
|
1051
|
+
}
|
|
1052
|
+
|
|
1053
|
+
//==============================================================================
|
|
1054
|
+
// Rendering state values
|
|
1055
|
+
int32_t initSessionID;
|
|
1056
|
+
double initFrequency;
|
|
1057
|
+
HelloReverb_State state = {};
|
|
1058
|
+
HelloReverb_IO io = {};
|
|
1059
|
+
|
|
1060
|
+
//==============================================================================
|
|
1061
|
+
void _sendEvent_freq (HelloReverb_State& _state, float value) noexcept
|
|
1062
|
+
{
|
|
1063
|
+
_HelloReverb__freq (_state._state, value);
|
|
1064
|
+
}
|
|
1065
|
+
|
|
1066
|
+
void _HelloReverb__freq (_HelloReverb_State& _state, float value) noexcept
|
|
1067
|
+
{
|
|
1068
|
+
faust__voice__freq (_state.Clarinet, value);
|
|
1069
|
+
}
|
|
1070
|
+
|
|
1071
|
+
void faust__voice__freq (faust_voice_1_State& _state, float val) noexcept
|
|
1072
|
+
{
|
|
1073
|
+
_state.fUpdated = (_state.fUpdated ? true : (_state.fHslider2 != val));
|
|
1074
|
+
_state.fHslider2 = val;
|
|
1075
|
+
}
|
|
1076
|
+
|
|
1077
|
+
void _sendEvent_gate (HelloReverb_State& _state, float value) noexcept
|
|
1078
|
+
{
|
|
1079
|
+
_HelloReverb__gate (_state._state, value);
|
|
1080
|
+
}
|
|
1081
|
+
|
|
1082
|
+
void _HelloReverb__gate (_HelloReverb_State& _state, float value) noexcept
|
|
1083
|
+
{
|
|
1084
|
+
faust__voice__gate (_state.Clarinet, value);
|
|
1085
|
+
}
|
|
1086
|
+
|
|
1087
|
+
void faust__voice__gate (faust_voice_1_State& _state, float val) noexcept
|
|
1088
|
+
{
|
|
1089
|
+
_state.fUpdated = (_state.fUpdated ? true : (_state.fButton0 != val));
|
|
1090
|
+
_state.fButton0 = val;
|
|
1091
|
+
}
|
|
1092
|
+
|
|
1093
|
+
void _initialise (HelloReverb_State& _state, int32_t& processorID, int32_t sessionID, double frequency) noexcept
|
|
1094
|
+
{
|
|
1095
|
+
_HelloReverb___initialise (_state._state, processorID, sessionID, frequency);
|
|
1096
|
+
}
|
|
1097
|
+
|
|
1098
|
+
void _HelloReverb___initialise (_HelloReverb_State& _state, int32_t& processorID, int32_t sessionID, double frequency) noexcept
|
|
1099
|
+
{
|
|
1100
|
+
_sessionID = sessionID;
|
|
1101
|
+
_frequency = frequency;
|
|
1102
|
+
HelloWorld___initialise (_state.Hello, processorID, sessionID, frequency);
|
|
1103
|
+
faust__reverb___initialise (_state.Reverb, processorID, sessionID, frequency);
|
|
1104
|
+
faust__echo___initialise (_state.Echo, processorID, sessionID, frequency);
|
|
1105
|
+
faust__voice___initialise (_state.Clarinet, processorID, sessionID, frequency);
|
|
1106
|
+
}
|
|
1107
|
+
|
|
1108
|
+
void HelloWorld___initialise (_HelloWorld_1_State& _state, int32_t& processorID, int32_t sessionID, double frequency) noexcept
|
|
1109
|
+
{
|
|
1110
|
+
_sessionID = sessionID;
|
|
1111
|
+
_frequency = frequency;
|
|
1112
|
+
_state.framesPerQuarterNote = static_cast<int32_t> ((1.0 * _frequency) / static_cast<double> (7));
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1115
|
+
void faust__reverb___initialise (faust_reverb_1_State& _state, int32_t& processorID, int32_t sessionID, double frequency) noexcept
|
|
1116
|
+
{
|
|
1117
|
+
_sessionID = sessionID;
|
|
1118
|
+
_frequency = frequency;
|
|
1119
|
+
faust__reverb__init (_state);
|
|
1120
|
+
}
|
|
1121
|
+
|
|
1122
|
+
void faust__reverb__init (faust_reverb_1_State& _state) noexcept
|
|
1123
|
+
{
|
|
1124
|
+
int32_t sample_rate;
|
|
1125
|
+
|
|
1126
|
+
sample_rate = static_cast<int32_t> (1.0 * _frequency);
|
|
1127
|
+
faust__reverb__instanceInit (_state, sample_rate);
|
|
1128
|
+
}
|
|
1129
|
+
|
|
1130
|
+
void faust__reverb__instanceInit (faust_reverb_1_State& _state, int32_t sample_rate) noexcept
|
|
1131
|
+
{
|
|
1132
|
+
faust__reverb__classInit (sample_rate);
|
|
1133
|
+
faust__reverb__instanceConstants (_state, sample_rate);
|
|
1134
|
+
faust__reverb__instanceResetUserInterface (_state);
|
|
1135
|
+
faust__reverb__instanceClear (_state);
|
|
1136
|
+
}
|
|
1137
|
+
|
|
1138
|
+
void faust__reverb__classInit (int32_t sample_rate) noexcept
|
|
1139
|
+
{
|
|
1140
|
+
}
|
|
1141
|
+
|
|
1142
|
+
void faust__reverb__instanceConstants (faust_reverb_1_State& _state, int32_t sample_rate) noexcept
|
|
1143
|
+
{
|
|
1144
|
+
_state.fSampleRate = sample_rate;
|
|
1145
|
+
_state.fConst0 = intrinsics::min (192000.0f, intrinsics::max (1.0f, static_cast<float> (_state.fSampleRate)));
|
|
1146
|
+
_state.fConst1 = (44.1f / _state.fConst0);
|
|
1147
|
+
_state.fConst2 = (1.0f - _state.fConst1);
|
|
1148
|
+
_state.fConst3 = (6.2831855f / _state.fConst0);
|
|
1149
|
+
_state.fConst4 = intrinsics::floor ((0.219991f * _state.fConst0) + 0.5f);
|
|
1150
|
+
_state.fConst5 = (6.9077554f * (_state.fConst4 / _state.fConst0));
|
|
1151
|
+
_state.fConst6 = (3.1415927f / _state.fConst0);
|
|
1152
|
+
_state.fConst7 = intrinsics::floor ((0.019123f * _state.fConst0) + 0.5f);
|
|
1153
|
+
_state.iConst8 = static_cast<int32_t> (intrinsics::min (16384.0f, intrinsics::max (0.0f, _state.fConst4 - _state.fConst7)));
|
|
1154
|
+
_state.fConst9 = (0.001f * _state.fConst0);
|
|
1155
|
+
_state.iConst10 = static_cast<int32_t> (intrinsics::min (1024.0f, intrinsics::max (0.0f, _state.fConst7 + -1.0f)));
|
|
1156
|
+
_state.fConst11 = intrinsics::floor ((0.256891f * _state.fConst0) + 0.5f);
|
|
1157
|
+
_state.fConst12 = (6.9077554f * (_state.fConst11 / _state.fConst0));
|
|
1158
|
+
_state.fConst13 = intrinsics::floor ((0.027333f * _state.fConst0) + 0.5f);
|
|
1159
|
+
_state.iConst14 = static_cast<int32_t> (intrinsics::min (16384.0f, intrinsics::max (0.0f, _state.fConst11 - _state.fConst13)));
|
|
1160
|
+
_state.iConst15 = static_cast<int32_t> (intrinsics::min (2048.0f, intrinsics::max (0.0f, _state.fConst13 + -1.0f)));
|
|
1161
|
+
_state.fConst16 = intrinsics::floor ((0.192303f * _state.fConst0) + 0.5f);
|
|
1162
|
+
_state.fConst17 = (6.9077554f * (_state.fConst16 / _state.fConst0));
|
|
1163
|
+
_state.fConst18 = intrinsics::floor ((0.029291f * _state.fConst0) + 0.5f);
|
|
1164
|
+
_state.iConst19 = static_cast<int32_t> (intrinsics::min (8192.0f, intrinsics::max (0.0f, _state.fConst16 - _state.fConst18)));
|
|
1165
|
+
_state.iConst20 = static_cast<int32_t> (intrinsics::min (2048.0f, intrinsics::max (0.0f, _state.fConst18 + -1.0f)));
|
|
1166
|
+
_state.fConst21 = intrinsics::floor ((0.210389f * _state.fConst0) + 0.5f);
|
|
1167
|
+
_state.fConst22 = (6.9077554f * (_state.fConst21 / _state.fConst0));
|
|
1168
|
+
_state.fConst23 = intrinsics::floor ((0.024421f * _state.fConst0) + 0.5f);
|
|
1169
|
+
_state.iConst24 = static_cast<int32_t> (intrinsics::min (16384.0f, intrinsics::max (0.0f, _state.fConst21 - _state.fConst23)));
|
|
1170
|
+
_state.iConst25 = static_cast<int32_t> (intrinsics::min (2048.0f, intrinsics::max (0.0f, _state.fConst23 + -1.0f)));
|
|
1171
|
+
_state.fConst26 = intrinsics::floor ((0.125f * _state.fConst0) + 0.5f);
|
|
1172
|
+
_state.fConst27 = (6.9077554f * (_state.fConst26 / _state.fConst0));
|
|
1173
|
+
_state.fConst28 = intrinsics::floor ((0.013458f * _state.fConst0) + 0.5f);
|
|
1174
|
+
_state.iConst29 = static_cast<int32_t> (intrinsics::min (8192.0f, intrinsics::max (0.0f, _state.fConst26 - _state.fConst28)));
|
|
1175
|
+
_state.iConst30 = static_cast<int32_t> (intrinsics::min (1024.0f, intrinsics::max (0.0f, _state.fConst28 + -1.0f)));
|
|
1176
|
+
_state.fConst31 = intrinsics::floor ((0.127837f * _state.fConst0) + 0.5f);
|
|
1177
|
+
_state.fConst32 = (6.9077554f * (_state.fConst31 / _state.fConst0));
|
|
1178
|
+
_state.fConst33 = intrinsics::floor ((0.031604f * _state.fConst0) + 0.5f);
|
|
1179
|
+
_state.iConst34 = static_cast<int32_t> (intrinsics::min (8192.0f, intrinsics::max (0.0f, _state.fConst31 - _state.fConst33)));
|
|
1180
|
+
_state.iConst35 = static_cast<int32_t> (intrinsics::min (2048.0f, intrinsics::max (0.0f, _state.fConst33 + -1.0f)));
|
|
1181
|
+
_state.fConst36 = intrinsics::floor ((0.174713f * _state.fConst0) + 0.5f);
|
|
1182
|
+
_state.fConst37 = (6.9077554f * (_state.fConst36 / _state.fConst0));
|
|
1183
|
+
_state.fConst38 = intrinsics::floor ((0.022904f * _state.fConst0) + 0.5f);
|
|
1184
|
+
_state.iConst39 = static_cast<int32_t> (intrinsics::min (8192.0f, intrinsics::max (0.0f, _state.fConst36 - _state.fConst38)));
|
|
1185
|
+
_state.iConst40 = static_cast<int32_t> (intrinsics::min (2048.0f, intrinsics::max (0.0f, _state.fConst38 + -1.0f)));
|
|
1186
|
+
_state.fConst41 = intrinsics::floor ((0.153129f * _state.fConst0) + 0.5f);
|
|
1187
|
+
_state.fConst42 = (6.9077554f * (_state.fConst41 / _state.fConst0));
|
|
1188
|
+
_state.fConst43 = intrinsics::floor ((0.020346f * _state.fConst0) + 0.5f);
|
|
1189
|
+
_state.iConst44 = static_cast<int32_t> (intrinsics::min (8192.0f, intrinsics::max (0.0f, _state.fConst41 - _state.fConst43)));
|
|
1190
|
+
_state.iConst45 = static_cast<int32_t> (intrinsics::min (1024.0f, intrinsics::max (0.0f, _state.fConst43 + -1.0f)));
|
|
1191
|
+
}
|
|
1192
|
+
|
|
1193
|
+
float std__intrinsics__min (float v1, float v2) noexcept
|
|
1194
|
+
{
|
|
1195
|
+
{
|
|
1196
|
+
return (v1 < v2) ? v1 : v2;
|
|
1197
|
+
}
|
|
1198
|
+
}
|
|
1199
|
+
|
|
1200
|
+
float std__intrinsics__max (float v1, float v2) noexcept
|
|
1201
|
+
{
|
|
1202
|
+
{
|
|
1203
|
+
return (v1 > v2) ? v1 : v2;
|
|
1204
|
+
}
|
|
1205
|
+
}
|
|
1206
|
+
|
|
1207
|
+
float std__intrinsics__floor (float n) noexcept
|
|
1208
|
+
{
|
|
1209
|
+
float rounded;
|
|
1210
|
+
|
|
1211
|
+
rounded = static_cast<float> (static_cast<int64_t> (n));
|
|
1212
|
+
if (rounded == n)
|
|
1213
|
+
{
|
|
1214
|
+
return n;
|
|
1215
|
+
}
|
|
1216
|
+
if (n >= static_cast<float> (0))
|
|
1217
|
+
{
|
|
1218
|
+
return rounded;
|
|
1219
|
+
}
|
|
1220
|
+
return rounded - static_cast<float> (1);
|
|
1221
|
+
}
|
|
1222
|
+
|
|
1223
|
+
void faust__reverb__instanceResetUserInterface (faust_reverb_1_State& _state) noexcept
|
|
1224
|
+
{
|
|
1225
|
+
_state.fUpdated = true;
|
|
1226
|
+
_state.fVslider0 = -20.0f;
|
|
1227
|
+
_state.fVslider1 = 0.0f;
|
|
1228
|
+
_state.fVslider2 = 315.0f;
|
|
1229
|
+
_state.fVslider3 = 0.0f;
|
|
1230
|
+
_state.fVslider4 = 2.0f;
|
|
1231
|
+
_state.fVslider5 = 6000.0f;
|
|
1232
|
+
_state.fVslider6 = 3.0f;
|
|
1233
|
+
_state.fVslider7 = 200.0f;
|
|
1234
|
+
_state.fVslider8 = 60.0f;
|
|
1235
|
+
_state.fVslider9 = 1500.0f;
|
|
1236
|
+
_state.fVslider10 = 0.0f;
|
|
1237
|
+
}
|
|
1238
|
+
|
|
1239
|
+
void faust__reverb__instanceClear (faust_reverb_1_State& _state) noexcept
|
|
1240
|
+
{
|
|
1241
|
+
int32_t l0;
|
|
1242
|
+
int32_t l1;
|
|
1243
|
+
int32_t l2;
|
|
1244
|
+
int32_t l3;
|
|
1245
|
+
int32_t l4;
|
|
1246
|
+
int32_t l5;
|
|
1247
|
+
int32_t l6;
|
|
1248
|
+
int32_t l7;
|
|
1249
|
+
int32_t l8;
|
|
1250
|
+
int32_t l9;
|
|
1251
|
+
int32_t l10;
|
|
1252
|
+
int32_t l11;
|
|
1253
|
+
int32_t l12;
|
|
1254
|
+
int32_t l13;
|
|
1255
|
+
int32_t l14;
|
|
1256
|
+
int32_t l15;
|
|
1257
|
+
int32_t l16;
|
|
1258
|
+
int32_t l17;
|
|
1259
|
+
int32_t l18;
|
|
1260
|
+
int32_t l19;
|
|
1261
|
+
int32_t l20;
|
|
1262
|
+
int32_t l21;
|
|
1263
|
+
int32_t l22;
|
|
1264
|
+
int32_t l23;
|
|
1265
|
+
int32_t l24;
|
|
1266
|
+
int32_t l25;
|
|
1267
|
+
int32_t l26;
|
|
1268
|
+
int32_t l27;
|
|
1269
|
+
int32_t l28;
|
|
1270
|
+
int32_t l29;
|
|
1271
|
+
int32_t l30;
|
|
1272
|
+
int32_t l31;
|
|
1273
|
+
int32_t l32;
|
|
1274
|
+
int32_t l33;
|
|
1275
|
+
int32_t l34;
|
|
1276
|
+
int32_t l35;
|
|
1277
|
+
int32_t l36;
|
|
1278
|
+
int32_t l37;
|
|
1279
|
+
int32_t l38;
|
|
1280
|
+
int32_t l39;
|
|
1281
|
+
int32_t l40;
|
|
1282
|
+
int32_t l41;
|
|
1283
|
+
int32_t l42;
|
|
1284
|
+
int32_t l43;
|
|
1285
|
+
int32_t l44;
|
|
1286
|
+
int32_t l45;
|
|
1287
|
+
int32_t l46;
|
|
1288
|
+
int32_t l47;
|
|
1289
|
+
int32_t l48;
|
|
1290
|
+
int32_t l49;
|
|
1291
|
+
int32_t l50;
|
|
1292
|
+
int32_t l51;
|
|
1293
|
+
int32_t l52;
|
|
1294
|
+
int32_t l53;
|
|
1295
|
+
int32_t l54;
|
|
1296
|
+
int32_t l55;
|
|
1297
|
+
|
|
1298
|
+
{
|
|
1299
|
+
l0 = 0;
|
|
1300
|
+
for (;;)
|
|
1301
|
+
{
|
|
1302
|
+
if (! (l0 < 2))
|
|
1303
|
+
{
|
|
1304
|
+
break;
|
|
1305
|
+
}
|
|
1306
|
+
_state.fRec0[l0 & 1] = 0.0f;
|
|
1307
|
+
{
|
|
1308
|
+
l0 = (l0 + 1);
|
|
1309
|
+
}
|
|
1310
|
+
}
|
|
1311
|
+
}
|
|
1312
|
+
_state.IOTA0 = 0;
|
|
1313
|
+
{
|
|
1314
|
+
l1 = 0;
|
|
1315
|
+
for (;;)
|
|
1316
|
+
{
|
|
1317
|
+
if (! (l1 < 16384))
|
|
1318
|
+
{
|
|
1319
|
+
break;
|
|
1320
|
+
}
|
|
1321
|
+
_state.fVec0[l1 & 16383] = 0.0f;
|
|
1322
|
+
{
|
|
1323
|
+
l1 = (l1 + 1);
|
|
1324
|
+
}
|
|
1325
|
+
}
|
|
1326
|
+
}
|
|
1327
|
+
{
|
|
1328
|
+
l2 = 0;
|
|
1329
|
+
for (;;)
|
|
1330
|
+
{
|
|
1331
|
+
if (! (l2 < 2))
|
|
1332
|
+
{
|
|
1333
|
+
break;
|
|
1334
|
+
}
|
|
1335
|
+
_state.fRec1[l2 & 1] = 0.0f;
|
|
1336
|
+
{
|
|
1337
|
+
l2 = (l2 + 1);
|
|
1338
|
+
}
|
|
1339
|
+
}
|
|
1340
|
+
}
|
|
1341
|
+
{
|
|
1342
|
+
l3 = 0;
|
|
1343
|
+
for (;;)
|
|
1344
|
+
{
|
|
1345
|
+
if (! (l3 < 2))
|
|
1346
|
+
{
|
|
1347
|
+
break;
|
|
1348
|
+
}
|
|
1349
|
+
_state.fRec15[l3 & 1] = 0.0f;
|
|
1350
|
+
{
|
|
1351
|
+
l3 = (l3 + 1);
|
|
1352
|
+
}
|
|
1353
|
+
}
|
|
1354
|
+
}
|
|
1355
|
+
{
|
|
1356
|
+
l4 = 0;
|
|
1357
|
+
for (;;)
|
|
1358
|
+
{
|
|
1359
|
+
if (! (l4 < 2))
|
|
1360
|
+
{
|
|
1361
|
+
break;
|
|
1362
|
+
}
|
|
1363
|
+
_state.fRec14[l4 & 1] = 0.0f;
|
|
1364
|
+
{
|
|
1365
|
+
l4 = (l4 + 1);
|
|
1366
|
+
}
|
|
1367
|
+
}
|
|
1368
|
+
}
|
|
1369
|
+
{
|
|
1370
|
+
l5 = 0;
|
|
1371
|
+
for (;;)
|
|
1372
|
+
{
|
|
1373
|
+
if (! (l5 < 32768))
|
|
1374
|
+
{
|
|
1375
|
+
break;
|
|
1376
|
+
}
|
|
1377
|
+
_state.fVec1[l5 & 32767] = 0.0f;
|
|
1378
|
+
{
|
|
1379
|
+
l5 = (l5 + 1);
|
|
1380
|
+
}
|
|
1381
|
+
}
|
|
1382
|
+
}
|
|
1383
|
+
{
|
|
1384
|
+
l6 = 0;
|
|
1385
|
+
for (;;)
|
|
1386
|
+
{
|
|
1387
|
+
if (! (l6 < 16384))
|
|
1388
|
+
{
|
|
1389
|
+
break;
|
|
1390
|
+
}
|
|
1391
|
+
_state.fVec2[l6 & 16383] = 0.0f;
|
|
1392
|
+
{
|
|
1393
|
+
l6 = (l6 + 1);
|
|
1394
|
+
}
|
|
1395
|
+
}
|
|
1396
|
+
}
|
|
1397
|
+
{
|
|
1398
|
+
l7 = 0;
|
|
1399
|
+
for (;;)
|
|
1400
|
+
{
|
|
1401
|
+
if (! (l7 < 2048))
|
|
1402
|
+
{
|
|
1403
|
+
break;
|
|
1404
|
+
}
|
|
1405
|
+
_state.fVec3[l7 & 2047] = 0.0f;
|
|
1406
|
+
{
|
|
1407
|
+
l7 = (l7 + 1);
|
|
1408
|
+
}
|
|
1409
|
+
}
|
|
1410
|
+
}
|
|
1411
|
+
{
|
|
1412
|
+
l8 = 0;
|
|
1413
|
+
for (;;)
|
|
1414
|
+
{
|
|
1415
|
+
if (! (l8 < 2))
|
|
1416
|
+
{
|
|
1417
|
+
break;
|
|
1418
|
+
}
|
|
1419
|
+
_state.fRec12[l8 & 1] = 0.0f;
|
|
1420
|
+
{
|
|
1421
|
+
l8 = (l8 + 1);
|
|
1422
|
+
}
|
|
1423
|
+
}
|
|
1424
|
+
}
|
|
1425
|
+
{
|
|
1426
|
+
l9 = 0;
|
|
1427
|
+
for (;;)
|
|
1428
|
+
{
|
|
1429
|
+
if (! (l9 < 2))
|
|
1430
|
+
{
|
|
1431
|
+
break;
|
|
1432
|
+
}
|
|
1433
|
+
_state.fRec19[l9 & 1] = 0.0f;
|
|
1434
|
+
{
|
|
1435
|
+
l9 = (l9 + 1);
|
|
1436
|
+
}
|
|
1437
|
+
}
|
|
1438
|
+
}
|
|
1439
|
+
{
|
|
1440
|
+
l10 = 0;
|
|
1441
|
+
for (;;)
|
|
1442
|
+
{
|
|
1443
|
+
if (! (l10 < 2))
|
|
1444
|
+
{
|
|
1445
|
+
break;
|
|
1446
|
+
}
|
|
1447
|
+
_state.fRec18[l10 & 1] = 0.0f;
|
|
1448
|
+
{
|
|
1449
|
+
l10 = (l10 + 1);
|
|
1450
|
+
}
|
|
1451
|
+
}
|
|
1452
|
+
}
|
|
1453
|
+
{
|
|
1454
|
+
l11 = 0;
|
|
1455
|
+
for (;;)
|
|
1456
|
+
{
|
|
1457
|
+
if (! (l11 < 32768))
|
|
1458
|
+
{
|
|
1459
|
+
break;
|
|
1460
|
+
}
|
|
1461
|
+
_state.fVec4[l11 & 32767] = 0.0f;
|
|
1462
|
+
{
|
|
1463
|
+
l11 = (l11 + 1);
|
|
1464
|
+
}
|
|
1465
|
+
}
|
|
1466
|
+
}
|
|
1467
|
+
{
|
|
1468
|
+
l12 = 0;
|
|
1469
|
+
for (;;)
|
|
1470
|
+
{
|
|
1471
|
+
if (! (l12 < 4096))
|
|
1472
|
+
{
|
|
1473
|
+
break;
|
|
1474
|
+
}
|
|
1475
|
+
_state.fVec5[l12 & 4095] = 0.0f;
|
|
1476
|
+
{
|
|
1477
|
+
l12 = (l12 + 1);
|
|
1478
|
+
}
|
|
1479
|
+
}
|
|
1480
|
+
}
|
|
1481
|
+
{
|
|
1482
|
+
l13 = 0;
|
|
1483
|
+
for (;;)
|
|
1484
|
+
{
|
|
1485
|
+
if (! (l13 < 2))
|
|
1486
|
+
{
|
|
1487
|
+
break;
|
|
1488
|
+
}
|
|
1489
|
+
_state.fRec16[l13 & 1] = 0.0f;
|
|
1490
|
+
{
|
|
1491
|
+
l13 = (l13 + 1);
|
|
1492
|
+
}
|
|
1493
|
+
}
|
|
1494
|
+
}
|
|
1495
|
+
{
|
|
1496
|
+
l14 = 0;
|
|
1497
|
+
for (;;)
|
|
1498
|
+
{
|
|
1499
|
+
if (! (l14 < 2))
|
|
1500
|
+
{
|
|
1501
|
+
break;
|
|
1502
|
+
}
|
|
1503
|
+
_state.fRec23[l14 & 1] = 0.0f;
|
|
1504
|
+
{
|
|
1505
|
+
l14 = (l14 + 1);
|
|
1506
|
+
}
|
|
1507
|
+
}
|
|
1508
|
+
}
|
|
1509
|
+
{
|
|
1510
|
+
l15 = 0;
|
|
1511
|
+
for (;;)
|
|
1512
|
+
{
|
|
1513
|
+
if (! (l15 < 2))
|
|
1514
|
+
{
|
|
1515
|
+
break;
|
|
1516
|
+
}
|
|
1517
|
+
_state.fRec22[l15 & 1] = 0.0f;
|
|
1518
|
+
{
|
|
1519
|
+
l15 = (l15 + 1);
|
|
1520
|
+
}
|
|
1521
|
+
}
|
|
1522
|
+
}
|
|
1523
|
+
{
|
|
1524
|
+
l16 = 0;
|
|
1525
|
+
for (;;)
|
|
1526
|
+
{
|
|
1527
|
+
if (! (l16 < 16384))
|
|
1528
|
+
{
|
|
1529
|
+
break;
|
|
1530
|
+
}
|
|
1531
|
+
_state.fVec6[l16 & 16383] = 0.0f;
|
|
1532
|
+
{
|
|
1533
|
+
l16 = (l16 + 1);
|
|
1534
|
+
}
|
|
1535
|
+
}
|
|
1536
|
+
}
|
|
1537
|
+
{
|
|
1538
|
+
l17 = 0;
|
|
1539
|
+
for (;;)
|
|
1540
|
+
{
|
|
1541
|
+
if (! (l17 < 4096))
|
|
1542
|
+
{
|
|
1543
|
+
break;
|
|
1544
|
+
}
|
|
1545
|
+
_state.fVec7[l17 & 4095] = 0.0f;
|
|
1546
|
+
{
|
|
1547
|
+
l17 = (l17 + 1);
|
|
1548
|
+
}
|
|
1549
|
+
}
|
|
1550
|
+
}
|
|
1551
|
+
{
|
|
1552
|
+
l18 = 0;
|
|
1553
|
+
for (;;)
|
|
1554
|
+
{
|
|
1555
|
+
if (! (l18 < 2))
|
|
1556
|
+
{
|
|
1557
|
+
break;
|
|
1558
|
+
}
|
|
1559
|
+
_state.fRec20[l18 & 1] = 0.0f;
|
|
1560
|
+
{
|
|
1561
|
+
l18 = (l18 + 1);
|
|
1562
|
+
}
|
|
1563
|
+
}
|
|
1564
|
+
}
|
|
1565
|
+
{
|
|
1566
|
+
l19 = 0;
|
|
1567
|
+
for (;;)
|
|
1568
|
+
{
|
|
1569
|
+
if (! (l19 < 2))
|
|
1570
|
+
{
|
|
1571
|
+
break;
|
|
1572
|
+
}
|
|
1573
|
+
_state.fRec27[l19 & 1] = 0.0f;
|
|
1574
|
+
{
|
|
1575
|
+
l19 = (l19 + 1);
|
|
1576
|
+
}
|
|
1577
|
+
}
|
|
1578
|
+
}
|
|
1579
|
+
{
|
|
1580
|
+
l20 = 0;
|
|
1581
|
+
for (;;)
|
|
1582
|
+
{
|
|
1583
|
+
if (! (l20 < 2))
|
|
1584
|
+
{
|
|
1585
|
+
break;
|
|
1586
|
+
}
|
|
1587
|
+
_state.fRec26[l20 & 1] = 0.0f;
|
|
1588
|
+
{
|
|
1589
|
+
l20 = (l20 + 1);
|
|
1590
|
+
}
|
|
1591
|
+
}
|
|
1592
|
+
}
|
|
1593
|
+
{
|
|
1594
|
+
l21 = 0;
|
|
1595
|
+
for (;;)
|
|
1596
|
+
{
|
|
1597
|
+
if (! (l21 < 32768))
|
|
1598
|
+
{
|
|
1599
|
+
break;
|
|
1600
|
+
}
|
|
1601
|
+
_state.fVec8[l21 & 32767] = 0.0f;
|
|
1602
|
+
{
|
|
1603
|
+
l21 = (l21 + 1);
|
|
1604
|
+
}
|
|
1605
|
+
}
|
|
1606
|
+
}
|
|
1607
|
+
{
|
|
1608
|
+
l22 = 0;
|
|
1609
|
+
for (;;)
|
|
1610
|
+
{
|
|
1611
|
+
if (! (l22 < 4096))
|
|
1612
|
+
{
|
|
1613
|
+
break;
|
|
1614
|
+
}
|
|
1615
|
+
_state.fVec9[l22 & 4095] = 0.0f;
|
|
1616
|
+
{
|
|
1617
|
+
l22 = (l22 + 1);
|
|
1618
|
+
}
|
|
1619
|
+
}
|
|
1620
|
+
}
|
|
1621
|
+
{
|
|
1622
|
+
l23 = 0;
|
|
1623
|
+
for (;;)
|
|
1624
|
+
{
|
|
1625
|
+
if (! (l23 < 2))
|
|
1626
|
+
{
|
|
1627
|
+
break;
|
|
1628
|
+
}
|
|
1629
|
+
_state.fRec24[l23 & 1] = 0.0f;
|
|
1630
|
+
{
|
|
1631
|
+
l23 = (l23 + 1);
|
|
1632
|
+
}
|
|
1633
|
+
}
|
|
1634
|
+
}
|
|
1635
|
+
{
|
|
1636
|
+
l24 = 0;
|
|
1637
|
+
for (;;)
|
|
1638
|
+
{
|
|
1639
|
+
if (! (l24 < 2))
|
|
1640
|
+
{
|
|
1641
|
+
break;
|
|
1642
|
+
}
|
|
1643
|
+
_state.fRec31[l24 & 1] = 0.0f;
|
|
1644
|
+
{
|
|
1645
|
+
l24 = (l24 + 1);
|
|
1646
|
+
}
|
|
1647
|
+
}
|
|
1648
|
+
}
|
|
1649
|
+
{
|
|
1650
|
+
l25 = 0;
|
|
1651
|
+
for (;;)
|
|
1652
|
+
{
|
|
1653
|
+
if (! (l25 < 2))
|
|
1654
|
+
{
|
|
1655
|
+
break;
|
|
1656
|
+
}
|
|
1657
|
+
_state.fRec30[l25 & 1] = 0.0f;
|
|
1658
|
+
{
|
|
1659
|
+
l25 = (l25 + 1);
|
|
1660
|
+
}
|
|
1661
|
+
}
|
|
1662
|
+
}
|
|
1663
|
+
{
|
|
1664
|
+
l26 = 0;
|
|
1665
|
+
for (;;)
|
|
1666
|
+
{
|
|
1667
|
+
if (! (l26 < 16384))
|
|
1668
|
+
{
|
|
1669
|
+
break;
|
|
1670
|
+
}
|
|
1671
|
+
_state.fVec10[l26 & 16383] = 0.0f;
|
|
1672
|
+
{
|
|
1673
|
+
l26 = (l26 + 1);
|
|
1674
|
+
}
|
|
1675
|
+
}
|
|
1676
|
+
}
|
|
1677
|
+
{
|
|
1678
|
+
l27 = 0;
|
|
1679
|
+
for (;;)
|
|
1680
|
+
{
|
|
1681
|
+
if (! (l27 < 2048))
|
|
1682
|
+
{
|
|
1683
|
+
break;
|
|
1684
|
+
}
|
|
1685
|
+
_state.fVec11[l27 & 2047] = 0.0f;
|
|
1686
|
+
{
|
|
1687
|
+
l27 = (l27 + 1);
|
|
1688
|
+
}
|
|
1689
|
+
}
|
|
1690
|
+
}
|
|
1691
|
+
{
|
|
1692
|
+
l28 = 0;
|
|
1693
|
+
for (;;)
|
|
1694
|
+
{
|
|
1695
|
+
if (! (l28 < 2))
|
|
1696
|
+
{
|
|
1697
|
+
break;
|
|
1698
|
+
}
|
|
1699
|
+
_state.fRec28[l28 & 1] = 0.0f;
|
|
1700
|
+
{
|
|
1701
|
+
l28 = (l28 + 1);
|
|
1702
|
+
}
|
|
1703
|
+
}
|
|
1704
|
+
}
|
|
1705
|
+
{
|
|
1706
|
+
l29 = 0;
|
|
1707
|
+
for (;;)
|
|
1708
|
+
{
|
|
1709
|
+
if (! (l29 < 2))
|
|
1710
|
+
{
|
|
1711
|
+
break;
|
|
1712
|
+
}
|
|
1713
|
+
_state.fRec35[l29 & 1] = 0.0f;
|
|
1714
|
+
{
|
|
1715
|
+
l29 = (l29 + 1);
|
|
1716
|
+
}
|
|
1717
|
+
}
|
|
1718
|
+
}
|
|
1719
|
+
{
|
|
1720
|
+
l30 = 0;
|
|
1721
|
+
for (;;)
|
|
1722
|
+
{
|
|
1723
|
+
if (! (l30 < 2))
|
|
1724
|
+
{
|
|
1725
|
+
break;
|
|
1726
|
+
}
|
|
1727
|
+
_state.fRec34[l30 & 1] = 0.0f;
|
|
1728
|
+
{
|
|
1729
|
+
l30 = (l30 + 1);
|
|
1730
|
+
}
|
|
1731
|
+
}
|
|
1732
|
+
}
|
|
1733
|
+
{
|
|
1734
|
+
l31 = 0;
|
|
1735
|
+
for (;;)
|
|
1736
|
+
{
|
|
1737
|
+
if (! (l31 < 16384))
|
|
1738
|
+
{
|
|
1739
|
+
break;
|
|
1740
|
+
}
|
|
1741
|
+
_state.fVec12[l31 & 16383] = 0.0f;
|
|
1742
|
+
{
|
|
1743
|
+
l31 = (l31 + 1);
|
|
1744
|
+
}
|
|
1745
|
+
}
|
|
1746
|
+
}
|
|
1747
|
+
{
|
|
1748
|
+
l32 = 0;
|
|
1749
|
+
for (;;)
|
|
1750
|
+
{
|
|
1751
|
+
if (! (l32 < 4096))
|
|
1752
|
+
{
|
|
1753
|
+
break;
|
|
1754
|
+
}
|
|
1755
|
+
_state.fVec13[l32 & 4095] = 0.0f;
|
|
1756
|
+
{
|
|
1757
|
+
l32 = (l32 + 1);
|
|
1758
|
+
}
|
|
1759
|
+
}
|
|
1760
|
+
}
|
|
1761
|
+
{
|
|
1762
|
+
l33 = 0;
|
|
1763
|
+
for (;;)
|
|
1764
|
+
{
|
|
1765
|
+
if (! (l33 < 2))
|
|
1766
|
+
{
|
|
1767
|
+
break;
|
|
1768
|
+
}
|
|
1769
|
+
_state.fRec32[l33 & 1] = 0.0f;
|
|
1770
|
+
{
|
|
1771
|
+
l33 = (l33 + 1);
|
|
1772
|
+
}
|
|
1773
|
+
}
|
|
1774
|
+
}
|
|
1775
|
+
{
|
|
1776
|
+
l34 = 0;
|
|
1777
|
+
for (;;)
|
|
1778
|
+
{
|
|
1779
|
+
if (! (l34 < 2))
|
|
1780
|
+
{
|
|
1781
|
+
break;
|
|
1782
|
+
}
|
|
1783
|
+
_state.fRec39[l34 & 1] = 0.0f;
|
|
1784
|
+
{
|
|
1785
|
+
l34 = (l34 + 1);
|
|
1786
|
+
}
|
|
1787
|
+
}
|
|
1788
|
+
}
|
|
1789
|
+
{
|
|
1790
|
+
l35 = 0;
|
|
1791
|
+
for (;;)
|
|
1792
|
+
{
|
|
1793
|
+
if (! (l35 < 2))
|
|
1794
|
+
{
|
|
1795
|
+
break;
|
|
1796
|
+
}
|
|
1797
|
+
_state.fRec38[l35 & 1] = 0.0f;
|
|
1798
|
+
{
|
|
1799
|
+
l35 = (l35 + 1);
|
|
1800
|
+
}
|
|
1801
|
+
}
|
|
1802
|
+
}
|
|
1803
|
+
{
|
|
1804
|
+
l36 = 0;
|
|
1805
|
+
for (;;)
|
|
1806
|
+
{
|
|
1807
|
+
if (! (l36 < 16384))
|
|
1808
|
+
{
|
|
1809
|
+
break;
|
|
1810
|
+
}
|
|
1811
|
+
_state.fVec14[l36 & 16383] = 0.0f;
|
|
1812
|
+
{
|
|
1813
|
+
l36 = (l36 + 1);
|
|
1814
|
+
}
|
|
1815
|
+
}
|
|
1816
|
+
}
|
|
1817
|
+
{
|
|
1818
|
+
l37 = 0;
|
|
1819
|
+
for (;;)
|
|
1820
|
+
{
|
|
1821
|
+
if (! (l37 < 4096))
|
|
1822
|
+
{
|
|
1823
|
+
break;
|
|
1824
|
+
}
|
|
1825
|
+
_state.fVec15[l37 & 4095] = 0.0f;
|
|
1826
|
+
{
|
|
1827
|
+
l37 = (l37 + 1);
|
|
1828
|
+
}
|
|
1829
|
+
}
|
|
1830
|
+
}
|
|
1831
|
+
{
|
|
1832
|
+
l38 = 0;
|
|
1833
|
+
for (;;)
|
|
1834
|
+
{
|
|
1835
|
+
if (! (l38 < 2))
|
|
1836
|
+
{
|
|
1837
|
+
break;
|
|
1838
|
+
}
|
|
1839
|
+
_state.fRec36[l38 & 1] = 0.0f;
|
|
1840
|
+
{
|
|
1841
|
+
l38 = (l38 + 1);
|
|
1842
|
+
}
|
|
1843
|
+
}
|
|
1844
|
+
}
|
|
1845
|
+
{
|
|
1846
|
+
l39 = 0;
|
|
1847
|
+
for (;;)
|
|
1848
|
+
{
|
|
1849
|
+
if (! (l39 < 2))
|
|
1850
|
+
{
|
|
1851
|
+
break;
|
|
1852
|
+
}
|
|
1853
|
+
_state.fRec43[l39 & 1] = 0.0f;
|
|
1854
|
+
{
|
|
1855
|
+
l39 = (l39 + 1);
|
|
1856
|
+
}
|
|
1857
|
+
}
|
|
1858
|
+
}
|
|
1859
|
+
{
|
|
1860
|
+
l40 = 0;
|
|
1861
|
+
for (;;)
|
|
1862
|
+
{
|
|
1863
|
+
if (! (l40 < 2))
|
|
1864
|
+
{
|
|
1865
|
+
break;
|
|
1866
|
+
}
|
|
1867
|
+
_state.fRec42[l40 & 1] = 0.0f;
|
|
1868
|
+
{
|
|
1869
|
+
l40 = (l40 + 1);
|
|
1870
|
+
}
|
|
1871
|
+
}
|
|
1872
|
+
}
|
|
1873
|
+
{
|
|
1874
|
+
l41 = 0;
|
|
1875
|
+
for (;;)
|
|
1876
|
+
{
|
|
1877
|
+
if (! (l41 < 16384))
|
|
1878
|
+
{
|
|
1879
|
+
break;
|
|
1880
|
+
}
|
|
1881
|
+
_state.fVec16[l41 & 16383] = 0.0f;
|
|
1882
|
+
{
|
|
1883
|
+
l41 = (l41 + 1);
|
|
1884
|
+
}
|
|
1885
|
+
}
|
|
1886
|
+
}
|
|
1887
|
+
{
|
|
1888
|
+
l42 = 0;
|
|
1889
|
+
for (;;)
|
|
1890
|
+
{
|
|
1891
|
+
if (! (l42 < 2048))
|
|
1892
|
+
{
|
|
1893
|
+
break;
|
|
1894
|
+
}
|
|
1895
|
+
_state.fVec17[l42 & 2047] = 0.0f;
|
|
1896
|
+
{
|
|
1897
|
+
l42 = (l42 + 1);
|
|
1898
|
+
}
|
|
1899
|
+
}
|
|
1900
|
+
}
|
|
1901
|
+
{
|
|
1902
|
+
l43 = 0;
|
|
1903
|
+
for (;;)
|
|
1904
|
+
{
|
|
1905
|
+
if (! (l43 < 2))
|
|
1906
|
+
{
|
|
1907
|
+
break;
|
|
1908
|
+
}
|
|
1909
|
+
_state.fRec40[l43 & 1] = 0.0f;
|
|
1910
|
+
{
|
|
1911
|
+
l43 = (l43 + 1);
|
|
1912
|
+
}
|
|
1913
|
+
}
|
|
1914
|
+
}
|
|
1915
|
+
{
|
|
1916
|
+
l44 = 0;
|
|
1917
|
+
for (;;)
|
|
1918
|
+
{
|
|
1919
|
+
if (! (l44 < 3))
|
|
1920
|
+
{
|
|
1921
|
+
break;
|
|
1922
|
+
}
|
|
1923
|
+
_state.fRec4[std__intrinsics___wrap_3 (l44)] = 0.0f;
|
|
1924
|
+
{
|
|
1925
|
+
l44 = (l44 + 1);
|
|
1926
|
+
}
|
|
1927
|
+
}
|
|
1928
|
+
}
|
|
1929
|
+
{
|
|
1930
|
+
l45 = 0;
|
|
1931
|
+
for (;;)
|
|
1932
|
+
{
|
|
1933
|
+
if (! (l45 < 3))
|
|
1934
|
+
{
|
|
1935
|
+
break;
|
|
1936
|
+
}
|
|
1937
|
+
_state.fRec5[std__intrinsics___wrap_3 (l45)] = 0.0f;
|
|
1938
|
+
{
|
|
1939
|
+
l45 = (l45 + 1);
|
|
1940
|
+
}
|
|
1941
|
+
}
|
|
1942
|
+
}
|
|
1943
|
+
{
|
|
1944
|
+
l46 = 0;
|
|
1945
|
+
for (;;)
|
|
1946
|
+
{
|
|
1947
|
+
if (! (l46 < 3))
|
|
1948
|
+
{
|
|
1949
|
+
break;
|
|
1950
|
+
}
|
|
1951
|
+
_state.fRec6[std__intrinsics___wrap_3 (l46)] = 0.0f;
|
|
1952
|
+
{
|
|
1953
|
+
l46 = (l46 + 1);
|
|
1954
|
+
}
|
|
1955
|
+
}
|
|
1956
|
+
}
|
|
1957
|
+
{
|
|
1958
|
+
l47 = 0;
|
|
1959
|
+
for (;;)
|
|
1960
|
+
{
|
|
1961
|
+
if (! (l47 < 3))
|
|
1962
|
+
{
|
|
1963
|
+
break;
|
|
1964
|
+
}
|
|
1965
|
+
_state.fRec7[std__intrinsics___wrap_3 (l47)] = 0.0f;
|
|
1966
|
+
{
|
|
1967
|
+
l47 = (l47 + 1);
|
|
1968
|
+
}
|
|
1969
|
+
}
|
|
1970
|
+
}
|
|
1971
|
+
{
|
|
1972
|
+
l48 = 0;
|
|
1973
|
+
for (;;)
|
|
1974
|
+
{
|
|
1975
|
+
if (! (l48 < 3))
|
|
1976
|
+
{
|
|
1977
|
+
break;
|
|
1978
|
+
}
|
|
1979
|
+
_state.fRec8[std__intrinsics___wrap_3 (l48)] = 0.0f;
|
|
1980
|
+
{
|
|
1981
|
+
l48 = (l48 + 1);
|
|
1982
|
+
}
|
|
1983
|
+
}
|
|
1984
|
+
}
|
|
1985
|
+
{
|
|
1986
|
+
l49 = 0;
|
|
1987
|
+
for (;;)
|
|
1988
|
+
{
|
|
1989
|
+
if (! (l49 < 3))
|
|
1990
|
+
{
|
|
1991
|
+
break;
|
|
1992
|
+
}
|
|
1993
|
+
_state.fRec9[std__intrinsics___wrap_3 (l49)] = 0.0f;
|
|
1994
|
+
{
|
|
1995
|
+
l49 = (l49 + 1);
|
|
1996
|
+
}
|
|
1997
|
+
}
|
|
1998
|
+
}
|
|
1999
|
+
{
|
|
2000
|
+
l50 = 0;
|
|
2001
|
+
for (;;)
|
|
2002
|
+
{
|
|
2003
|
+
if (! (l50 < 3))
|
|
2004
|
+
{
|
|
2005
|
+
break;
|
|
2006
|
+
}
|
|
2007
|
+
_state.fRec10[std__intrinsics___wrap_3 (l50)] = 0.0f;
|
|
2008
|
+
{
|
|
2009
|
+
l50 = (l50 + 1);
|
|
2010
|
+
}
|
|
2011
|
+
}
|
|
2012
|
+
}
|
|
2013
|
+
{
|
|
2014
|
+
l51 = 0;
|
|
2015
|
+
for (;;)
|
|
2016
|
+
{
|
|
2017
|
+
if (! (l51 < 3))
|
|
2018
|
+
{
|
|
2019
|
+
break;
|
|
2020
|
+
}
|
|
2021
|
+
_state.fRec11[std__intrinsics___wrap_3 (l51)] = 0.0f;
|
|
2022
|
+
{
|
|
2023
|
+
l51 = (l51 + 1);
|
|
2024
|
+
}
|
|
2025
|
+
}
|
|
2026
|
+
}
|
|
2027
|
+
{
|
|
2028
|
+
l52 = 0;
|
|
2029
|
+
for (;;)
|
|
2030
|
+
{
|
|
2031
|
+
if (! (l52 < 3))
|
|
2032
|
+
{
|
|
2033
|
+
break;
|
|
2034
|
+
}
|
|
2035
|
+
_state.fRec3[std__intrinsics___wrap_3 (l52)] = 0.0f;
|
|
2036
|
+
{
|
|
2037
|
+
l52 = (l52 + 1);
|
|
2038
|
+
}
|
|
2039
|
+
}
|
|
2040
|
+
}
|
|
2041
|
+
{
|
|
2042
|
+
l53 = 0;
|
|
2043
|
+
for (;;)
|
|
2044
|
+
{
|
|
2045
|
+
if (! (l53 < 3))
|
|
2046
|
+
{
|
|
2047
|
+
break;
|
|
2048
|
+
}
|
|
2049
|
+
_state.fRec2[std__intrinsics___wrap_3 (l53)] = 0.0f;
|
|
2050
|
+
{
|
|
2051
|
+
l53 = (l53 + 1);
|
|
2052
|
+
}
|
|
2053
|
+
}
|
|
2054
|
+
}
|
|
2055
|
+
{
|
|
2056
|
+
l54 = 0;
|
|
2057
|
+
for (;;)
|
|
2058
|
+
{
|
|
2059
|
+
if (! (l54 < 3))
|
|
2060
|
+
{
|
|
2061
|
+
break;
|
|
2062
|
+
}
|
|
2063
|
+
_state.fRec45[std__intrinsics___wrap_3 (l54)] = 0.0f;
|
|
2064
|
+
{
|
|
2065
|
+
l54 = (l54 + 1);
|
|
2066
|
+
}
|
|
2067
|
+
}
|
|
2068
|
+
}
|
|
2069
|
+
{
|
|
2070
|
+
l55 = 0;
|
|
2071
|
+
for (;;)
|
|
2072
|
+
{
|
|
2073
|
+
if (! (l55 < 3))
|
|
2074
|
+
{
|
|
2075
|
+
break;
|
|
2076
|
+
}
|
|
2077
|
+
_state.fRec44[std__intrinsics___wrap_3 (l55)] = 0.0f;
|
|
2078
|
+
{
|
|
2079
|
+
l55 = (l55 + 1);
|
|
2080
|
+
}
|
|
2081
|
+
}
|
|
2082
|
+
}
|
|
2083
|
+
}
|
|
2084
|
+
|
|
2085
|
+
int32_t std__intrinsics___wrap_3 (int32_t n) noexcept
|
|
2086
|
+
{
|
|
2087
|
+
int32_t x;
|
|
2088
|
+
|
|
2089
|
+
x = intrinsics::modulo (n, 3);
|
|
2090
|
+
return (x < 0) ? (x + 3) : x;
|
|
2091
|
+
}
|
|
2092
|
+
|
|
2093
|
+
void faust__echo___initialise (faust_echo_1_State& _state, int32_t& processorID, int32_t sessionID, double frequency) noexcept
|
|
2094
|
+
{
|
|
2095
|
+
_sessionID = sessionID;
|
|
2096
|
+
_frequency = frequency;
|
|
2097
|
+
faust__echo__init (_state);
|
|
2098
|
+
}
|
|
2099
|
+
|
|
2100
|
+
void faust__echo__init (faust_echo_1_State& _state) noexcept
|
|
2101
|
+
{
|
|
2102
|
+
int32_t sample_rate;
|
|
2103
|
+
|
|
2104
|
+
sample_rate = static_cast<int32_t> (1.0 * _frequency);
|
|
2105
|
+
faust__echo__instanceInit (_state, sample_rate);
|
|
2106
|
+
}
|
|
2107
|
+
|
|
2108
|
+
void faust__echo__instanceInit (faust_echo_1_State& _state, int32_t sample_rate) noexcept
|
|
2109
|
+
{
|
|
2110
|
+
faust__echo__classInit (sample_rate);
|
|
2111
|
+
faust__echo__instanceConstants (_state, sample_rate);
|
|
2112
|
+
faust__echo__instanceResetUserInterface (_state);
|
|
2113
|
+
faust__echo__instanceClear (_state);
|
|
2114
|
+
}
|
|
2115
|
+
|
|
2116
|
+
void faust__echo__classInit (int32_t sample_rate) noexcept
|
|
2117
|
+
{
|
|
2118
|
+
}
|
|
2119
|
+
|
|
2120
|
+
void faust__echo__instanceConstants (faust_echo_1_State& _state, int32_t sample_rate) noexcept
|
|
2121
|
+
{
|
|
2122
|
+
_state.fSampleRate = sample_rate;
|
|
2123
|
+
_state.fConst0 = intrinsics::min (192000.0f, intrinsics::max (1.0f, static_cast<float> (_state.fSampleRate)));
|
|
2124
|
+
}
|
|
2125
|
+
|
|
2126
|
+
void faust__echo__instanceResetUserInterface (faust_echo_1_State& _state) noexcept
|
|
2127
|
+
{
|
|
2128
|
+
_state.fUpdated = true;
|
|
2129
|
+
_state.fVslider0 = 2.7f;
|
|
2130
|
+
}
|
|
2131
|
+
|
|
2132
|
+
void faust__echo__instanceClear (faust_echo_1_State& _state) noexcept
|
|
2133
|
+
{
|
|
2134
|
+
int32_t l0;
|
|
2135
|
+
int32_t l1;
|
|
2136
|
+
|
|
2137
|
+
_state.IOTA0 = 0;
|
|
2138
|
+
{
|
|
2139
|
+
l0 = 0;
|
|
2140
|
+
for (;;)
|
|
2141
|
+
{
|
|
2142
|
+
if (! (l0 < 0x200000))
|
|
2143
|
+
{
|
|
2144
|
+
break;
|
|
2145
|
+
}
|
|
2146
|
+
_state.fRec0[l0 & 0x1fffff] = 0.0f;
|
|
2147
|
+
{
|
|
2148
|
+
l0 = (l0 + 1);
|
|
2149
|
+
}
|
|
2150
|
+
}
|
|
2151
|
+
}
|
|
2152
|
+
{
|
|
2153
|
+
l1 = 0;
|
|
2154
|
+
for (;;)
|
|
2155
|
+
{
|
|
2156
|
+
if (! (l1 < 0x200000))
|
|
2157
|
+
{
|
|
2158
|
+
break;
|
|
2159
|
+
}
|
|
2160
|
+
_state.fRec1[l1 & 0x1fffff] = 0.0f;
|
|
2161
|
+
{
|
|
2162
|
+
l1 = (l1 + 1);
|
|
2163
|
+
}
|
|
2164
|
+
}
|
|
2165
|
+
}
|
|
2166
|
+
}
|
|
2167
|
+
|
|
2168
|
+
void faust__voice___initialise (faust_voice_1_State& _state, int32_t& processorID, int32_t sessionID, double frequency) noexcept
|
|
2169
|
+
{
|
|
2170
|
+
_sessionID = sessionID;
|
|
2171
|
+
_frequency = frequency;
|
|
2172
|
+
faust__voice__init (_state);
|
|
2173
|
+
}
|
|
2174
|
+
|
|
2175
|
+
void faust__voice__init (faust_voice_1_State& _state) noexcept
|
|
2176
|
+
{
|
|
2177
|
+
int32_t sample_rate;
|
|
2178
|
+
|
|
2179
|
+
sample_rate = static_cast<int32_t> (1.0 * _frequency);
|
|
2180
|
+
faust__voice__instanceInit (_state, sample_rate);
|
|
2181
|
+
}
|
|
2182
|
+
|
|
2183
|
+
void faust__voice__instanceInit (faust_voice_1_State& _state, int32_t sample_rate) noexcept
|
|
2184
|
+
{
|
|
2185
|
+
faust__voice__classInit (_state, sample_rate);
|
|
2186
|
+
faust__voice__instanceConstants (_state, sample_rate);
|
|
2187
|
+
faust__voice__instanceResetUserInterface (_state);
|
|
2188
|
+
faust__voice__instanceClear (_state);
|
|
2189
|
+
}
|
|
2190
|
+
|
|
2191
|
+
void faust__voice__classInit (faust_voice_1_State& _state, int32_t sample_rate) noexcept
|
|
2192
|
+
{
|
|
2193
|
+
faust_voice_1_voiceSIG0 sig0;
|
|
2194
|
+
|
|
2195
|
+
sig0 = faust__voice__newvoiceSIG0();
|
|
2196
|
+
faust__voice__instanceInitvoiceSIG0 (sig0, sample_rate);
|
|
2197
|
+
faust__voice__fillvoiceSIG0_65536 (sig0, 0x10000, _state.ftbl0voiceSIG0);
|
|
2198
|
+
faust__voice__deletevoiceSIG0 (sig0);
|
|
2199
|
+
}
|
|
2200
|
+
|
|
2201
|
+
faust_voice_1_voiceSIG0 faust__voice__newvoiceSIG0() noexcept
|
|
2202
|
+
{
|
|
2203
|
+
faust_voice_1_voiceSIG0 obj;
|
|
2204
|
+
|
|
2205
|
+
obj = faust_voice_1_voiceSIG0 {};
|
|
2206
|
+
return obj;
|
|
2207
|
+
}
|
|
2208
|
+
|
|
2209
|
+
void faust__voice__instanceInitvoiceSIG0 (faust_voice_1_voiceSIG0& this_, int32_t sample_rate) noexcept
|
|
2210
|
+
{
|
|
2211
|
+
int32_t l6;
|
|
2212
|
+
int32_t l7;
|
|
2213
|
+
|
|
2214
|
+
{
|
|
2215
|
+
l6 = 0;
|
|
2216
|
+
for (;;)
|
|
2217
|
+
{
|
|
2218
|
+
if (! (l6 < 2))
|
|
2219
|
+
{
|
|
2220
|
+
break;
|
|
2221
|
+
}
|
|
2222
|
+
this_.iVec2[l6 & 1] = 0;
|
|
2223
|
+
{
|
|
2224
|
+
l6 = (l6 + 1);
|
|
2225
|
+
}
|
|
2226
|
+
}
|
|
2227
|
+
}
|
|
2228
|
+
{
|
|
2229
|
+
l7 = 0;
|
|
2230
|
+
for (;;)
|
|
2231
|
+
{
|
|
2232
|
+
if (! (l7 < 2))
|
|
2233
|
+
{
|
|
2234
|
+
break;
|
|
2235
|
+
}
|
|
2236
|
+
this_.iRec15[l7 & 1] = 0;
|
|
2237
|
+
{
|
|
2238
|
+
l7 = (l7 + 1);
|
|
2239
|
+
}
|
|
2240
|
+
}
|
|
2241
|
+
}
|
|
2242
|
+
}
|
|
2243
|
+
|
|
2244
|
+
void faust__voice__fillvoiceSIG0_65536 (faust_voice_1_voiceSIG0& this_, int32_t count, Array<float, 65536>& table) noexcept
|
|
2245
|
+
{
|
|
2246
|
+
int32_t i1;
|
|
2247
|
+
|
|
2248
|
+
{
|
|
2249
|
+
i1 = 0;
|
|
2250
|
+
for (;;)
|
|
2251
|
+
{
|
|
2252
|
+
if (! (i1 < count))
|
|
2253
|
+
{
|
|
2254
|
+
break;
|
|
2255
|
+
}
|
|
2256
|
+
this_.iVec2[0] = 1;
|
|
2257
|
+
this_.iRec15[0] = intrinsics::modulo (this_.iVec2[1] + this_.iRec15[1], 0x10000);
|
|
2258
|
+
table[i1 & 65535] = intrinsics::sin (0.0000958738f * static_cast<float> (this_.iRec15[0]));
|
|
2259
|
+
this_.iVec2[1] = this_.iVec2[0];
|
|
2260
|
+
this_.iRec15[1] = this_.iRec15[0];
|
|
2261
|
+
{
|
|
2262
|
+
i1 = (i1 + 1);
|
|
2263
|
+
}
|
|
2264
|
+
}
|
|
2265
|
+
}
|
|
2266
|
+
}
|
|
2267
|
+
|
|
2268
|
+
float std__intrinsics__sin (float n) noexcept
|
|
2269
|
+
{
|
|
2270
|
+
{
|
|
2271
|
+
return 0.0f;
|
|
2272
|
+
}
|
|
2273
|
+
}
|
|
2274
|
+
|
|
2275
|
+
void faust__voice__deletevoiceSIG0 (faust_voice_1_voiceSIG0& this_) noexcept
|
|
2276
|
+
{
|
|
2277
|
+
}
|
|
2278
|
+
|
|
2279
|
+
void faust__voice__instanceConstants (faust_voice_1_State& _state, int32_t sample_rate) noexcept
|
|
2280
|
+
{
|
|
2281
|
+
_state.fSampleRate = sample_rate;
|
|
2282
|
+
_state.fConst0 = intrinsics::min (192000.0f, intrinsics::max (1.0f, static_cast<float> (_state.fSampleRate)));
|
|
2283
|
+
_state.fConst1 = (0.0014705883f * _state.fConst0);
|
|
2284
|
+
_state.fConst2 = (1.0f / _state.fConst0);
|
|
2285
|
+
_state.fConst3 = intrinsics::tan (6283.1855f / _state.fConst0);
|
|
2286
|
+
_state.fConst4 = (1.0f / _state.fConst3);
|
|
2287
|
+
_state.fConst5 = (((_state.fConst4 + 1.4142135f) / _state.fConst3) + 1.0f);
|
|
2288
|
+
_state.fConst6 = (0.05f / _state.fConst5);
|
|
2289
|
+
_state.fConst7 = (1.0f / _state.fConst5);
|
|
2290
|
+
_state.fConst8 = (((_state.fConst4 + -1.4142135f) / _state.fConst3) + 1.0f);
|
|
2291
|
+
_state.fConst9 = (2.0f * (1.0f - (1.0f / intrinsics::pow (_state.fConst3, 2.0f))));
|
|
2292
|
+
_state.fConst10 = (0.00882353f * _state.fConst0);
|
|
2293
|
+
}
|
|
2294
|
+
|
|
2295
|
+
float std__intrinsics__tan (float n) noexcept
|
|
2296
|
+
{
|
|
2297
|
+
{
|
|
2298
|
+
return intrinsics::sin (n) / intrinsics::cos (n);
|
|
2299
|
+
}
|
|
2300
|
+
}
|
|
2301
|
+
|
|
2302
|
+
float std__intrinsics__cos (float n) noexcept
|
|
2303
|
+
{
|
|
2304
|
+
{
|
|
2305
|
+
return 0.0f;
|
|
2306
|
+
}
|
|
2307
|
+
}
|
|
2308
|
+
|
|
2309
|
+
float std__intrinsics__pow (float a, float b) noexcept
|
|
2310
|
+
{
|
|
2311
|
+
{
|
|
2312
|
+
return 0.0f;
|
|
2313
|
+
}
|
|
2314
|
+
}
|
|
2315
|
+
|
|
2316
|
+
void faust__voice__instanceResetUserInterface (faust_voice_1_State& _state) noexcept
|
|
2317
|
+
{
|
|
2318
|
+
_state.fUpdated = true;
|
|
2319
|
+
_state.fHslider0 = 0.5f;
|
|
2320
|
+
_state.fHslider1 = 0.5f;
|
|
2321
|
+
_state.fHslider2 = 440.0f;
|
|
2322
|
+
_state.fHslider3 = 0.0f;
|
|
2323
|
+
_state.fButton0 = 0.0f;
|
|
2324
|
+
_state.fHslider4 = 0.0f;
|
|
2325
|
+
_state.fHslider5 = 0.25f;
|
|
2326
|
+
_state.fHslider6 = 0.6f;
|
|
2327
|
+
_state.fHslider7 = 1.0f;
|
|
2328
|
+
_state.fHslider8 = 5.0f;
|
|
2329
|
+
_state.fHslider9 = 0.5f;
|
|
2330
|
+
}
|
|
2331
|
+
|
|
2332
|
+
void faust__voice__instanceClear (faust_voice_1_State& _state) noexcept
|
|
2333
|
+
{
|
|
2334
|
+
int32_t l0;
|
|
2335
|
+
int32_t l1;
|
|
2336
|
+
int32_t l2;
|
|
2337
|
+
int32_t l3;
|
|
2338
|
+
int32_t l4;
|
|
2339
|
+
int32_t l5;
|
|
2340
|
+
int32_t l8;
|
|
2341
|
+
int32_t l9;
|
|
2342
|
+
int32_t l10;
|
|
2343
|
+
int32_t l11;
|
|
2344
|
+
int32_t l12;
|
|
2345
|
+
int32_t l13;
|
|
2346
|
+
int32_t l14;
|
|
2347
|
+
int32_t l15;
|
|
2348
|
+
int32_t l16;
|
|
2349
|
+
|
|
2350
|
+
{
|
|
2351
|
+
l0 = 0;
|
|
2352
|
+
for (;;)
|
|
2353
|
+
{
|
|
2354
|
+
if (! (l0 < 2))
|
|
2355
|
+
{
|
|
2356
|
+
break;
|
|
2357
|
+
}
|
|
2358
|
+
_state.iRec6[l0 & 1] = 0;
|
|
2359
|
+
{
|
|
2360
|
+
l0 = (l0 + 1);
|
|
2361
|
+
}
|
|
2362
|
+
}
|
|
2363
|
+
}
|
|
2364
|
+
{
|
|
2365
|
+
l1 = 0;
|
|
2366
|
+
for (;;)
|
|
2367
|
+
{
|
|
2368
|
+
if (! (l1 < 2))
|
|
2369
|
+
{
|
|
2370
|
+
break;
|
|
2371
|
+
}
|
|
2372
|
+
_state.iVec0[l1 & 1] = 0;
|
|
2373
|
+
{
|
|
2374
|
+
l1 = (l1 + 1);
|
|
2375
|
+
}
|
|
2376
|
+
}
|
|
2377
|
+
}
|
|
2378
|
+
{
|
|
2379
|
+
l2 = 0;
|
|
2380
|
+
for (;;)
|
|
2381
|
+
{
|
|
2382
|
+
if (! (l2 < 2))
|
|
2383
|
+
{
|
|
2384
|
+
break;
|
|
2385
|
+
}
|
|
2386
|
+
_state.fRec12[l2 & 1] = 0.0f;
|
|
2387
|
+
{
|
|
2388
|
+
l2 = (l2 + 1);
|
|
2389
|
+
}
|
|
2390
|
+
}
|
|
2391
|
+
}
|
|
2392
|
+
{
|
|
2393
|
+
l3 = 0;
|
|
2394
|
+
for (;;)
|
|
2395
|
+
{
|
|
2396
|
+
if (! (l3 < 2))
|
|
2397
|
+
{
|
|
2398
|
+
break;
|
|
2399
|
+
}
|
|
2400
|
+
_state.fVec1[l3 & 1] = 0.0f;
|
|
2401
|
+
{
|
|
2402
|
+
l3 = (l3 + 1);
|
|
2403
|
+
}
|
|
2404
|
+
}
|
|
2405
|
+
}
|
|
2406
|
+
{
|
|
2407
|
+
l4 = 0;
|
|
2408
|
+
for (;;)
|
|
2409
|
+
{
|
|
2410
|
+
if (! (l4 < 2))
|
|
2411
|
+
{
|
|
2412
|
+
break;
|
|
2413
|
+
}
|
|
2414
|
+
_state.fRec13[l4 & 1] = 0.0f;
|
|
2415
|
+
{
|
|
2416
|
+
l4 = (l4 + 1);
|
|
2417
|
+
}
|
|
2418
|
+
}
|
|
2419
|
+
}
|
|
2420
|
+
{
|
|
2421
|
+
l5 = 0;
|
|
2422
|
+
for (;;)
|
|
2423
|
+
{
|
|
2424
|
+
if (! (l5 < 2))
|
|
2425
|
+
{
|
|
2426
|
+
break;
|
|
2427
|
+
}
|
|
2428
|
+
_state.fRec14[l5 & 1] = 0.0f;
|
|
2429
|
+
{
|
|
2430
|
+
l5 = (l5 + 1);
|
|
2431
|
+
}
|
|
2432
|
+
}
|
|
2433
|
+
}
|
|
2434
|
+
{
|
|
2435
|
+
l8 = 0;
|
|
2436
|
+
for (;;)
|
|
2437
|
+
{
|
|
2438
|
+
if (! (l8 < 2))
|
|
2439
|
+
{
|
|
2440
|
+
break;
|
|
2441
|
+
}
|
|
2442
|
+
_state.fRec16[l8 & 1] = 0.0f;
|
|
2443
|
+
{
|
|
2444
|
+
l8 = (l8 + 1);
|
|
2445
|
+
}
|
|
2446
|
+
}
|
|
2447
|
+
}
|
|
2448
|
+
{
|
|
2449
|
+
l9 = 0;
|
|
2450
|
+
for (;;)
|
|
2451
|
+
{
|
|
2452
|
+
if (! (l9 < 2))
|
|
2453
|
+
{
|
|
2454
|
+
break;
|
|
2455
|
+
}
|
|
2456
|
+
_state.iRec20[l9 & 1] = 0;
|
|
2457
|
+
{
|
|
2458
|
+
l9 = (l9 + 1);
|
|
2459
|
+
}
|
|
2460
|
+
}
|
|
2461
|
+
}
|
|
2462
|
+
{
|
|
2463
|
+
l10 = 0;
|
|
2464
|
+
for (;;)
|
|
2465
|
+
{
|
|
2466
|
+
if (! (l10 < 3))
|
|
2467
|
+
{
|
|
2468
|
+
break;
|
|
2469
|
+
}
|
|
2470
|
+
_state.fRec19[std__intrinsics___wrap_3 (l10)] = 0.0f;
|
|
2471
|
+
{
|
|
2472
|
+
l10 = (l10 + 1);
|
|
2473
|
+
}
|
|
2474
|
+
}
|
|
2475
|
+
}
|
|
2476
|
+
{
|
|
2477
|
+
l11 = 0;
|
|
2478
|
+
for (;;)
|
|
2479
|
+
{
|
|
2480
|
+
if (! (l11 < 2))
|
|
2481
|
+
{
|
|
2482
|
+
break;
|
|
2483
|
+
}
|
|
2484
|
+
_state.fRec17[l11 & 1] = 0.0f;
|
|
2485
|
+
{
|
|
2486
|
+
l11 = (l11 + 1);
|
|
2487
|
+
}
|
|
2488
|
+
}
|
|
2489
|
+
}
|
|
2490
|
+
_state.IOTA0 = 0;
|
|
2491
|
+
{
|
|
2492
|
+
l12 = 0;
|
|
2493
|
+
for (;;)
|
|
2494
|
+
{
|
|
2495
|
+
if (! (l12 < 2048))
|
|
2496
|
+
{
|
|
2497
|
+
break;
|
|
2498
|
+
}
|
|
2499
|
+
_state.fRec18[l12 & 2047] = 0.0f;
|
|
2500
|
+
{
|
|
2501
|
+
l12 = (l12 + 1);
|
|
2502
|
+
}
|
|
2503
|
+
}
|
|
2504
|
+
}
|
|
2505
|
+
{
|
|
2506
|
+
l13 = 0;
|
|
2507
|
+
for (;;)
|
|
2508
|
+
{
|
|
2509
|
+
if (! (l13 < 2))
|
|
2510
|
+
{
|
|
2511
|
+
break;
|
|
2512
|
+
}
|
|
2513
|
+
_state.fVec3[l13 & 1] = 0.0f;
|
|
2514
|
+
{
|
|
2515
|
+
l13 = (l13 + 1);
|
|
2516
|
+
}
|
|
2517
|
+
}
|
|
2518
|
+
}
|
|
2519
|
+
{
|
|
2520
|
+
l14 = 0;
|
|
2521
|
+
for (;;)
|
|
2522
|
+
{
|
|
2523
|
+
if (! (l14 < 2))
|
|
2524
|
+
{
|
|
2525
|
+
break;
|
|
2526
|
+
}
|
|
2527
|
+
_state.fRec11[l14 & 1] = 0.0f;
|
|
2528
|
+
{
|
|
2529
|
+
l14 = (l14 + 1);
|
|
2530
|
+
}
|
|
2531
|
+
}
|
|
2532
|
+
}
|
|
2533
|
+
{
|
|
2534
|
+
l15 = 0;
|
|
2535
|
+
for (;;)
|
|
2536
|
+
{
|
|
2537
|
+
if (! (l15 < 2048))
|
|
2538
|
+
{
|
|
2539
|
+
break;
|
|
2540
|
+
}
|
|
2541
|
+
_state.fRec2[l15 & 2047] = 0.0f;
|
|
2542
|
+
{
|
|
2543
|
+
l15 = (l15 + 1);
|
|
2544
|
+
}
|
|
2545
|
+
}
|
|
2546
|
+
}
|
|
2547
|
+
{
|
|
2548
|
+
l16 = 0;
|
|
2549
|
+
for (;;)
|
|
2550
|
+
{
|
|
2551
|
+
if (! (l16 < 2))
|
|
2552
|
+
{
|
|
2553
|
+
break;
|
|
2554
|
+
}
|
|
2555
|
+
_state.fRec0[l16 & 1] = 0.0f;
|
|
2556
|
+
{
|
|
2557
|
+
l16 = (l16 + 1);
|
|
2558
|
+
}
|
|
2559
|
+
}
|
|
2560
|
+
}
|
|
2561
|
+
}
|
|
2562
|
+
|
|
2563
|
+
void _advance (HelloReverb_State& _state, HelloReverb_IO& _io, int32_t _frames) noexcept
|
|
2564
|
+
{
|
|
2565
|
+
_HelloReverb_IO ioCopy;
|
|
2566
|
+
|
|
2567
|
+
for (;;)
|
|
2568
|
+
{
|
|
2569
|
+
if (_state._currentFrame == _frames)
|
|
2570
|
+
{
|
|
2571
|
+
break;
|
|
2572
|
+
}
|
|
2573
|
+
ioCopy = _HelloReverb_IO {};
|
|
2574
|
+
main (_state._state, ioCopy);
|
|
2575
|
+
_io.out0[_state._currentFrame] = ioCopy.out0;
|
|
2576
|
+
_io.out1[_state._currentFrame] = ioCopy.out1;
|
|
2577
|
+
++_state._currentFrame;
|
|
2578
|
+
}
|
|
2579
|
+
_state._currentFrame = 0;
|
|
2580
|
+
}
|
|
2581
|
+
|
|
2582
|
+
void main (_HelloReverb_State& _state, _HelloReverb_IO& _io) noexcept
|
|
2583
|
+
{
|
|
2584
|
+
_HelloWorld_1_IO Hello_io;
|
|
2585
|
+
faust_reverb_1_IO Reverb_io;
|
|
2586
|
+
faust_reverb_1_IO Echo_io;
|
|
2587
|
+
faust_voice_1_IO Clarinet_io;
|
|
2588
|
+
|
|
2589
|
+
Hello_io = _HelloWorld_1_IO {};
|
|
2590
|
+
Reverb_io = faust_reverb_1_IO {};
|
|
2591
|
+
Echo_io = faust_reverb_1_IO {};
|
|
2592
|
+
Clarinet_io = faust_voice_1_IO {};
|
|
2593
|
+
{
|
|
2594
|
+
}
|
|
2595
|
+
HelloWorld__main (_state.Hello, Hello_io);
|
|
2596
|
+
{
|
|
2597
|
+
}
|
|
2598
|
+
faust__voice__main (_state.Clarinet, Clarinet_io);
|
|
2599
|
+
{
|
|
2600
|
+
Reverb_io.input0 = (Reverb_io.input0 + Hello_io.out);
|
|
2601
|
+
Reverb_io.input1 = (Reverb_io.input1 + Hello_io.out);
|
|
2602
|
+
Reverb_io.input0 = (Reverb_io.input0 + Clarinet_io.output0);
|
|
2603
|
+
Reverb_io.input1 = (Reverb_io.input1 + Clarinet_io.output1);
|
|
2604
|
+
}
|
|
2605
|
+
faust__reverb__main (_state.Reverb, Reverb_io);
|
|
2606
|
+
{
|
|
2607
|
+
Echo_io.input0 = (Echo_io.input0 + Reverb_io.output0);
|
|
2608
|
+
Echo_io.input1 = (Echo_io.input1 + Reverb_io.output1);
|
|
2609
|
+
}
|
|
2610
|
+
faust__echo__main (_state.Echo, Echo_io);
|
|
2611
|
+
{
|
|
2612
|
+
_io.out0 = (_io.out0 + Echo_io.output0);
|
|
2613
|
+
_io.out1 = (_io.out1 + Echo_io.output1);
|
|
2614
|
+
}
|
|
2615
|
+
}
|
|
2616
|
+
|
|
2617
|
+
void HelloWorld__main (_HelloWorld_1_State& _state, _HelloWorld_1_IO& _io) noexcept
|
|
2618
|
+
{
|
|
2619
|
+
_HelloWorld_1_Note this_;
|
|
2620
|
+
int32_t numFrames;
|
|
2621
|
+
float frequency;
|
|
2622
|
+
|
|
2623
|
+
switch (_state._resumeIndex)
|
|
2624
|
+
{
|
|
2625
|
+
case 1: goto _branch0_0;
|
|
2626
|
+
case 2: goto _branch0_1;
|
|
2627
|
+
default: break;
|
|
2628
|
+
}
|
|
2629
|
+
|
|
2630
|
+
{
|
|
2631
|
+
_state.i = 0;
|
|
2632
|
+
for (;;)
|
|
2633
|
+
{
|
|
2634
|
+
if (_state.i >= 13)
|
|
2635
|
+
{
|
|
2636
|
+
break;
|
|
2637
|
+
}
|
|
2638
|
+
{
|
|
2639
|
+
this_ = melody[_state.i];
|
|
2640
|
+
numFrames = this_.length * _state.framesPerQuarterNote;
|
|
2641
|
+
frequency = std__notes__noteToFrequency (this_.pitch);
|
|
2642
|
+
_state.phaseDelta = static_cast<float> ((static_cast<double> (frequency) * (1.0 / (1.0 * _frequency))) * 6.283185307179586);
|
|
2643
|
+
{
|
|
2644
|
+
_state._count = numFrames;
|
|
2645
|
+
_branch0_0:
|
|
2646
|
+
{
|
|
2647
|
+
for (;;)
|
|
2648
|
+
{
|
|
2649
|
+
--_state._count;
|
|
2650
|
+
if (_state._count < 0)
|
|
2651
|
+
{
|
|
2652
|
+
goto _break_0;
|
|
2653
|
+
}
|
|
2654
|
+
_io.out = (_io.out + (volume * intrinsics::sin (_state.phase)));
|
|
2655
|
+
_state.phase = intrinsics::addModulo2Pi (_state.phase, _state.phaseDelta);
|
|
2656
|
+
_state._resumeIndex = 1;
|
|
2657
|
+
return;
|
|
2658
|
+
}
|
|
2659
|
+
}
|
|
2660
|
+
_break_0: {}
|
|
2661
|
+
}
|
|
2662
|
+
}
|
|
2663
|
+
{
|
|
2664
|
+
++_state.i;
|
|
2665
|
+
}
|
|
2666
|
+
}
|
|
2667
|
+
}
|
|
2668
|
+
_branch0_1:
|
|
2669
|
+
{
|
|
2670
|
+
_state._resumeIndex = 2;
|
|
2671
|
+
}
|
|
2672
|
+
}
|
|
2673
|
+
|
|
2674
|
+
float std__notes__noteToFrequency (int32_t midiNoteNumber) noexcept
|
|
2675
|
+
{
|
|
2676
|
+
return 440.0f * intrinsics::pow (2.0f, 0.083333336f * static_cast<float> (midiNoteNumber - 69));
|
|
2677
|
+
}
|
|
2678
|
+
|
|
2679
|
+
float std__intrinsics__addModulo2Pi (float startValue, float valueToAdd) noexcept
|
|
2680
|
+
{
|
|
2681
|
+
float v;
|
|
2682
|
+
|
|
2683
|
+
v = startValue + valueToAdd;
|
|
2684
|
+
if (v < static_cast<float> (0))
|
|
2685
|
+
{
|
|
2686
|
+
return intrinsics::fmod (v, 6.2831855f) + 6.2831855f;
|
|
2687
|
+
}
|
|
2688
|
+
if (v < 6.2831855f)
|
|
2689
|
+
{
|
|
2690
|
+
return v;
|
|
2691
|
+
}
|
|
2692
|
+
if (v < 12.566371f)
|
|
2693
|
+
{
|
|
2694
|
+
return v - 6.2831855f;
|
|
2695
|
+
}
|
|
2696
|
+
return intrinsics::fmod (v, 6.2831855f);
|
|
2697
|
+
}
|
|
2698
|
+
|
|
2699
|
+
float std__intrinsics__fmod (float x, float y) noexcept
|
|
2700
|
+
{
|
|
2701
|
+
return x - (y * static_cast<float> (static_cast<int64_t> (x / y)));
|
|
2702
|
+
}
|
|
2703
|
+
|
|
2704
|
+
void faust__voice__main (faust_voice_1_State& _state, faust_voice_1_IO& _io) noexcept
|
|
2705
|
+
{
|
|
2706
|
+
float fRec10;
|
|
2707
|
+
float fTemp0;
|
|
2708
|
+
float fTemp1;
|
|
2709
|
+
float fTemp2;
|
|
2710
|
+
float fTemp3;
|
|
2711
|
+
float fTemp4;
|
|
2712
|
+
float fTemp5;
|
|
2713
|
+
float fTemp6;
|
|
2714
|
+
float fTemp7;
|
|
2715
|
+
float fTemp8;
|
|
2716
|
+
float fTemp9;
|
|
2717
|
+
float fTemp10;
|
|
2718
|
+
int32_t iTemp11;
|
|
2719
|
+
int32_t iTemp12;
|
|
2720
|
+
float fTemp13;
|
|
2721
|
+
float fTemp14;
|
|
2722
|
+
int32_t iTemp15;
|
|
2723
|
+
float fTemp16;
|
|
2724
|
+
int32_t iTemp17;
|
|
2725
|
+
float fTemp18;
|
|
2726
|
+
int32_t iTemp19;
|
|
2727
|
+
float fTemp20;
|
|
2728
|
+
int32_t iTemp21;
|
|
2729
|
+
float fRec7;
|
|
2730
|
+
float fRec8;
|
|
2731
|
+
float fRec9;
|
|
2732
|
+
float fRec3;
|
|
2733
|
+
float fRec4;
|
|
2734
|
+
float fRec5;
|
|
2735
|
+
float fRec1;
|
|
2736
|
+
float fTemp22;
|
|
2737
|
+
|
|
2738
|
+
for (;;)
|
|
2739
|
+
{
|
|
2740
|
+
if (_state.fUpdated)
|
|
2741
|
+
{
|
|
2742
|
+
_state.fUpdated = false;
|
|
2743
|
+
faust__voice__control (_state);
|
|
2744
|
+
}
|
|
2745
|
+
_state.iRec6[0] = 0;
|
|
2746
|
+
_state.iVec0[0] = 1;
|
|
2747
|
+
_state.fRec12[0] = ((_state.fSlow2 * _state.fRec11[1]) + (_state.fSlow1 * _state.fRec12[1]));
|
|
2748
|
+
fRec10 = _state.fRec12[0] + static_cast<float> (_state.iRec6[1]);
|
|
2749
|
+
_state.fVec1[0] = _state.fSlow5;
|
|
2750
|
+
fTemp0 = static_cast<float> (static_cast<int32_t> (_state.fSlow5 == _state.fVec1[1]) | _state.iSlow6);
|
|
2751
|
+
_state.fRec13[0] = ((_state.fSlow4 * (1.0f - (0.999f * fTemp0))) + ((0.999f * fTemp0) * _state.fRec13[1]));
|
|
2752
|
+
_state.fRec14[0] = (_state.fSlow11 + (_state.fSlow10 * _state.fRec14[1]));
|
|
2753
|
+
fTemp1 = static_cast<bool> (1 - _state.iVec0[1]) ? 0.0f : (_state.fSlow12 + _state.fRec16[1]);
|
|
2754
|
+
_state.fRec16[0] = (fTemp1 - intrinsics::floor (fTemp1));
|
|
2755
|
+
fTemp2 = _state.ftbl0voiceSIG0[intrinsics::max (0, intrinsics::min (static_cast<int32_t> (65536.0f * _state.fRec16[0]), 65535)) & 65535];
|
|
2756
|
+
fTemp3 = _state.fConst1 * ((_state.fSlow3 / (_state.fRec13[0] * (((_state.fSlow7 * _state.fRec14[0]) * fTemp2) + 1.0f))) + -0.05f);
|
|
2757
|
+
fTemp4 = fTemp3 + -1.499995f;
|
|
2758
|
+
fTemp5 = intrinsics::floor (fTemp4);
|
|
2759
|
+
fTemp6 = fTemp3 + (-4.0f - fTemp5);
|
|
2760
|
+
fTemp7 = fTemp3 + (-3.0f - fTemp5);
|
|
2761
|
+
fTemp8 = fTemp3 + (-2.0f - fTemp5);
|
|
2762
|
+
_state.iRec20[0] = ((0x41c64e6d * _state.iRec20[1]) + 12345);
|
|
2763
|
+
_state.fRec19[0] = ((4.656613e-10f * static_cast<float> (_state.iRec20[0])) - (_state.fConst7 * ((_state.fConst8 * _state.fRec19[2]) + (_state.fConst9 * _state.fRec19[1]))));
|
|
2764
|
+
fTemp9 = _state.fRec14[0] * ((_state.fConst6 * ((_state.fRec19[2] + _state.fRec19[0]) + (2.0f * _state.fRec19[1]))) + 1.0f);
|
|
2765
|
+
fTemp10 = _state.fSlow7 * fTemp2;
|
|
2766
|
+
_state.fRec17[0] = ((fTemp9 + _state.fRec0[1]) + fTemp10);
|
|
2767
|
+
_state.fRec18[(_state.IOTA0 & 2047) & 2047] = ((fTemp10 + fTemp9) - (_state.fRec17[1] * intrinsics::max (-1.0f, intrinsics::min (1.0f, 0.7f - (_state.fSlow13 * _state.fRec17[1])))));
|
|
2768
|
+
iTemp11 = static_cast<int32_t> (fTemp4);
|
|
2769
|
+
iTemp12 = static_cast<int32_t> (intrinsics::min (_state.fConst10, static_cast<float> (intrinsics::max (0, iTemp11)))) + 1;
|
|
2770
|
+
fTemp13 = fTemp3 + (-1.0f - fTemp5);
|
|
2771
|
+
fTemp14 = fTemp3 - fTemp5;
|
|
2772
|
+
iTemp15 = static_cast<int32_t> (intrinsics::min (_state.fConst10, static_cast<float> (intrinsics::max (0, iTemp11 + 1)))) + 1;
|
|
2773
|
+
fTemp16 = fTemp14 * fTemp13;
|
|
2774
|
+
iTemp17 = static_cast<int32_t> (intrinsics::min (_state.fConst10, static_cast<float> (intrinsics::max (0, iTemp11 + 2)))) + 1;
|
|
2775
|
+
fTemp18 = fTemp16 * fTemp8;
|
|
2776
|
+
iTemp19 = static_cast<int32_t> (intrinsics::min (_state.fConst10, static_cast<float> (intrinsics::max (0, iTemp11 + 3)))) + 1;
|
|
2777
|
+
fTemp20 = fTemp18 * fTemp7;
|
|
2778
|
+
iTemp21 = static_cast<int32_t> (intrinsics::min (_state.fConst10, static_cast<float> (intrinsics::max (0, iTemp11 + 4)))) + 1;
|
|
2779
|
+
_state.fVec3[0] = ((fTemp6 * ((fTemp7 * ((fTemp8 * (((0.041666668f * _state.fRec18[((_state.IOTA0 - iTemp12) & 2047) & 2047]) * fTemp13) - ((0.16666667f * fTemp14) * _state.fRec18[((_state.IOTA0 - iTemp15) & 2047) & 2047]))) + ((0.25f * fTemp16) * _state.fRec18[((_state.IOTA0 - iTemp17) & 2047) & 2047]))) - ((0.16666667f * fTemp18) * _state.fRec18[((_state.IOTA0 - iTemp19) & 2047) & 2047]))) + ((0.041666668f * fTemp20) * _state.fRec18[((_state.IOTA0 - iTemp21) & 2047) & 2047]));
|
|
2780
|
+
_state.fRec11[0] = _state.fVec3[1];
|
|
2781
|
+
fRec7 = fRec10;
|
|
2782
|
+
fRec8 = _state.fRec11[0];
|
|
2783
|
+
fRec9 = _state.fRec11[0];
|
|
2784
|
+
_state.fRec2[(_state.IOTA0 & 2047) & 2047] = fRec7;
|
|
2785
|
+
fRec3 = (fTemp6 * ((fTemp7 * ((fTemp8 * (((0.041666668f * fTemp13) * _state.fRec2[((_state.IOTA0 - iTemp12) & 2047) & 2047]) - ((0.16666667f * fTemp14) * _state.fRec2[((_state.IOTA0 - iTemp15) & 2047) & 2047]))) + ((0.25f * fTemp16) * _state.fRec2[((_state.IOTA0 - iTemp17) & 2047) & 2047]))) - ((0.16666667f * fTemp18) * _state.fRec2[((_state.IOTA0 - iTemp19) & 2047) & 2047]))) + ((0.041666668f * fTemp20) * _state.fRec2[((_state.IOTA0 - iTemp21) & 2047) & 2047]);
|
|
2786
|
+
fRec4 = fRec8;
|
|
2787
|
+
fRec5 = fRec9;
|
|
2788
|
+
_state.fRec0[0] = fRec3;
|
|
2789
|
+
fRec1 = fRec5;
|
|
2790
|
+
fTemp22 = _state.fSlow0 * fRec1;
|
|
2791
|
+
_io.output0 = (_io.output0 + fTemp22);
|
|
2792
|
+
_io.output1 = (_io.output1 + fTemp22);
|
|
2793
|
+
_state.iRec6[1] = _state.iRec6[0];
|
|
2794
|
+
_state.iVec0[1] = _state.iVec0[0];
|
|
2795
|
+
_state.fRec12[1] = _state.fRec12[0];
|
|
2796
|
+
_state.fVec1[1] = _state.fVec1[0];
|
|
2797
|
+
_state.fRec13[1] = _state.fRec13[0];
|
|
2798
|
+
_state.fRec14[1] = _state.fRec14[0];
|
|
2799
|
+
_state.fRec16[1] = _state.fRec16[0];
|
|
2800
|
+
_state.iRec20[1] = _state.iRec20[0];
|
|
2801
|
+
_state.fRec19[2] = _state.fRec19[1];
|
|
2802
|
+
_state.fRec19[1] = _state.fRec19[0];
|
|
2803
|
+
_state.fRec17[1] = _state.fRec17[0];
|
|
2804
|
+
_state.IOTA0 = (_state.IOTA0 + 1);
|
|
2805
|
+
_state.fVec3[1] = _state.fVec3[0];
|
|
2806
|
+
_state.fRec11[1] = _state.fRec11[0];
|
|
2807
|
+
_state.fRec0[1] = _state.fRec0[0];
|
|
2808
|
+
return;
|
|
2809
|
+
}
|
|
2810
|
+
}
|
|
2811
|
+
|
|
2812
|
+
void faust__voice__control (faust_voice_1_State& _state) noexcept
|
|
2813
|
+
{
|
|
2814
|
+
_state.fSlow0 = _state.fHslider0;
|
|
2815
|
+
_state.fSlow1 = _state.fHslider1;
|
|
2816
|
+
_state.fSlow2 = (1.0f - _state.fSlow1);
|
|
2817
|
+
_state.fSlow3 = (170.0f / _state.fHslider2);
|
|
2818
|
+
_state.fSlow4 = intrinsics::pow (2.0f, 0.083333336f * _state.fHslider3);
|
|
2819
|
+
_state.fSlow5 = intrinsics::min (1.0f, _state.fButton0 + _state.fHslider4);
|
|
2820
|
+
_state.iSlow6 = static_cast<int32_t> (_state.fSlow5 == 0.0f);
|
|
2821
|
+
_state.fSlow7 = (0.01f * _state.fHslider5);
|
|
2822
|
+
_state.fSlow8 = (0.001f * _state.fHslider7);
|
|
2823
|
+
_state.iSlow9 = static_cast<int32_t> (intrinsics::abs (_state.fSlow8) < 1.1920929e-7f);
|
|
2824
|
+
_state.fSlow10 = (static_cast<bool> (_state.iSlow9) ? 0.0f : intrinsics::exp (- (_state.fConst2 / (static_cast<bool> (_state.iSlow9) ? 1.0f : _state.fSlow8))));
|
|
2825
|
+
_state.fSlow11 = ((_state.fHslider6 * _state.fSlow5) * (1.0f - _state.fSlow10));
|
|
2826
|
+
_state.fSlow12 = (_state.fConst2 * _state.fHslider8);
|
|
2827
|
+
_state.fSlow13 = ((0.26f * _state.fHslider9) + -0.44f);
|
|
2828
|
+
}
|
|
2829
|
+
|
|
2830
|
+
float std__intrinsics__abs (float n) noexcept
|
|
2831
|
+
{
|
|
2832
|
+
{
|
|
2833
|
+
return (n < static_cast<float> (0)) ? (- n) : n;
|
|
2834
|
+
}
|
|
2835
|
+
}
|
|
2836
|
+
|
|
2837
|
+
float std__intrinsics__exp (float n) noexcept
|
|
2838
|
+
{
|
|
2839
|
+
{
|
|
2840
|
+
return 0.0f;
|
|
2841
|
+
}
|
|
2842
|
+
}
|
|
2843
|
+
|
|
2844
|
+
int32_t std__intrinsics__max_0 (int32_t v1, int32_t v2) noexcept
|
|
2845
|
+
{
|
|
2846
|
+
{
|
|
2847
|
+
return (v1 > v2) ? v1 : v2;
|
|
2848
|
+
}
|
|
2849
|
+
}
|
|
2850
|
+
|
|
2851
|
+
int32_t std__intrinsics__min_0 (int32_t v1, int32_t v2) noexcept
|
|
2852
|
+
{
|
|
2853
|
+
{
|
|
2854
|
+
return (v1 < v2) ? v1 : v2;
|
|
2855
|
+
}
|
|
2856
|
+
}
|
|
2857
|
+
|
|
2858
|
+
void faust__reverb__main (faust_reverb_1_State& _state, faust_reverb_1_IO& _io) noexcept
|
|
2859
|
+
{
|
|
2860
|
+
float fTemp0;
|
|
2861
|
+
float fTemp1;
|
|
2862
|
+
float fTemp2;
|
|
2863
|
+
float fTemp3;
|
|
2864
|
+
float fTemp4;
|
|
2865
|
+
float fTemp5;
|
|
2866
|
+
float fRec13;
|
|
2867
|
+
float fTemp6;
|
|
2868
|
+
float fRec17;
|
|
2869
|
+
float fTemp7;
|
|
2870
|
+
float fRec21;
|
|
2871
|
+
float fTemp8;
|
|
2872
|
+
float fRec25;
|
|
2873
|
+
float fTemp9;
|
|
2874
|
+
float fTemp10;
|
|
2875
|
+
float fRec29;
|
|
2876
|
+
float fTemp11;
|
|
2877
|
+
float fRec33;
|
|
2878
|
+
float fTemp12;
|
|
2879
|
+
float fRec37;
|
|
2880
|
+
float fTemp13;
|
|
2881
|
+
float fRec41;
|
|
2882
|
+
float fTemp14;
|
|
2883
|
+
float fTemp15;
|
|
2884
|
+
float fTemp16;
|
|
2885
|
+
float fTemp17;
|
|
2886
|
+
float fTemp18;
|
|
2887
|
+
float fTemp19;
|
|
2888
|
+
float fTemp20;
|
|
2889
|
+
float fTemp21;
|
|
2890
|
+
float fTemp22;
|
|
2891
|
+
float fTemp23;
|
|
2892
|
+
float fTemp24;
|
|
2893
|
+
float fTemp25;
|
|
2894
|
+
float fTemp26;
|
|
2895
|
+
float fTemp27;
|
|
2896
|
+
float fTemp28;
|
|
2897
|
+
float fTemp29;
|
|
2898
|
+
float fTemp30;
|
|
2899
|
+
float fTemp31;
|
|
2900
|
+
float fTemp32;
|
|
2901
|
+
float fTemp33;
|
|
2902
|
+
float fTemp34;
|
|
2903
|
+
float fTemp35;
|
|
2904
|
+
float fTemp36;
|
|
2905
|
+
float fTemp37;
|
|
2906
|
+
float fTemp38;
|
|
2907
|
+
|
|
2908
|
+
for (;;)
|
|
2909
|
+
{
|
|
2910
|
+
if (_state.fUpdated)
|
|
2911
|
+
{
|
|
2912
|
+
_state.fUpdated = false;
|
|
2913
|
+
faust__reverb__control (_state);
|
|
2914
|
+
}
|
|
2915
|
+
_state.fRec0[0] = (_state.fSlow0 + (_state.fConst2 * _state.fRec0[1]));
|
|
2916
|
+
fTemp0 = _io.input0;
|
|
2917
|
+
_state.fVec0[(_state.IOTA0 & 16383) & 16383] = fTemp0;
|
|
2918
|
+
_state.fRec1[0] = (_state.fSlow1 + (_state.fConst2 * _state.fRec1[1]));
|
|
2919
|
+
fTemp1 = _state.fRec1[0] + 1.0f;
|
|
2920
|
+
fTemp2 = 1.0f - (0.5f * fTemp1);
|
|
2921
|
+
_state.fRec15[0] = (- (_state.fSlow18 * ((_state.fSlow19 * _state.fRec15[1]) - (_state.fRec11[1] + _state.fRec11[2]))));
|
|
2922
|
+
_state.fRec14[0] = ((_state.fSlow14 * (_state.fRec11[1] + (_state.fSlow16 * _state.fRec15[0]))) + (_state.fSlow20 * _state.fRec14[1]));
|
|
2923
|
+
_state.fVec1[(_state.IOTA0 & 32767) & 32767] = ((0.35355338f * _state.fRec14[0]) + 1e-20f);
|
|
2924
|
+
fTemp3 = (0.6f * _state.fRec12[1]) + _state.fVec1[((_state.IOTA0 - _state.iConst8) & 32767) & 32767];
|
|
2925
|
+
fTemp4 = _io.input1;
|
|
2926
|
+
_state.fVec2[(_state.IOTA0 & 16383) & 16383] = fTemp4;
|
|
2927
|
+
fTemp5 = 0.3f * _state.fVec2[((_state.IOTA0 - _state.iSlow21) & 16383) & 16383];
|
|
2928
|
+
_state.fVec3[(_state.IOTA0 & 2047) & 2047] = (fTemp3 - fTemp5);
|
|
2929
|
+
_state.fRec12[0] = _state.fVec3[((_state.IOTA0 - _state.iConst10) & 2047) & 2047];
|
|
2930
|
+
fRec13 = 0.6f * (fTemp5 - fTemp3);
|
|
2931
|
+
_state.fRec19[0] = (- (_state.fSlow18 * ((_state.fSlow19 * _state.fRec19[1]) - (_state.fRec7[1] + _state.fRec7[2]))));
|
|
2932
|
+
_state.fRec18[0] = ((_state.fSlow28 * (_state.fRec7[1] + (_state.fSlow29 * _state.fRec19[0]))) + (_state.fSlow30 * _state.fRec18[1]));
|
|
2933
|
+
_state.fVec4[(_state.IOTA0 & 32767) & 32767] = ((0.35355338f * _state.fRec18[0]) + 1e-20f);
|
|
2934
|
+
fTemp6 = (0.6f * _state.fRec16[1]) + _state.fVec4[((_state.IOTA0 - _state.iConst14) & 32767) & 32767];
|
|
2935
|
+
_state.fVec5[(_state.IOTA0 & 4095) & 4095] = (fTemp6 - fTemp5);
|
|
2936
|
+
_state.fRec16[0] = _state.fVec5[((_state.IOTA0 - _state.iConst15) & 4095) & 4095];
|
|
2937
|
+
fRec17 = 0.6f * (fTemp5 - fTemp6);
|
|
2938
|
+
_state.fRec23[0] = (- (_state.fSlow18 * ((_state.fSlow19 * _state.fRec23[1]) - (_state.fRec9[1] + _state.fRec9[2]))));
|
|
2939
|
+
_state.fRec22[0] = ((_state.fSlow37 * (_state.fRec9[1] + (_state.fSlow38 * _state.fRec23[0]))) + (_state.fSlow39 * _state.fRec22[1]));
|
|
2940
|
+
_state.fVec6[(_state.IOTA0 & 16383) & 16383] = ((0.35355338f * _state.fRec22[0]) + 1e-20f);
|
|
2941
|
+
fTemp7 = (_state.fVec6[((_state.IOTA0 - _state.iConst19) & 16383) & 16383] + fTemp5) + (0.6f * _state.fRec20[1]);
|
|
2942
|
+
_state.fVec7[(_state.IOTA0 & 4095) & 4095] = fTemp7;
|
|
2943
|
+
_state.fRec20[0] = _state.fVec7[((_state.IOTA0 - _state.iConst20) & 4095) & 4095];
|
|
2944
|
+
fRec21 = - (0.6f * fTemp7);
|
|
2945
|
+
_state.fRec27[0] = (- (_state.fSlow18 * ((_state.fSlow19 * _state.fRec27[1]) - (_state.fRec5[1] + _state.fRec5[2]))));
|
|
2946
|
+
_state.fRec26[0] = ((_state.fSlow46 * (_state.fRec5[1] + (_state.fSlow47 * _state.fRec27[0]))) + (_state.fSlow48 * _state.fRec26[1]));
|
|
2947
|
+
_state.fVec8[(_state.IOTA0 & 32767) & 32767] = ((0.35355338f * _state.fRec26[0]) + 1e-20f);
|
|
2948
|
+
fTemp8 = (fTemp5 + (0.6f * _state.fRec24[1])) + _state.fVec8[((_state.IOTA0 - _state.iConst24) & 32767) & 32767];
|
|
2949
|
+
_state.fVec9[(_state.IOTA0 & 4095) & 4095] = fTemp8;
|
|
2950
|
+
_state.fRec24[0] = _state.fVec9[((_state.IOTA0 - _state.iConst25) & 4095) & 4095];
|
|
2951
|
+
fRec25 = - (0.6f * fTemp8);
|
|
2952
|
+
_state.fRec31[0] = (- (_state.fSlow18 * ((_state.fSlow19 * _state.fRec31[1]) - (_state.fRec10[1] + _state.fRec10[2]))));
|
|
2953
|
+
_state.fRec30[0] = ((_state.fSlow55 * (_state.fRec10[1] + (_state.fSlow56 * _state.fRec31[0]))) + (_state.fSlow57 * _state.fRec30[1]));
|
|
2954
|
+
_state.fVec10[(_state.IOTA0 & 16383) & 16383] = ((0.35355338f * _state.fRec30[0]) + 1e-20f);
|
|
2955
|
+
fTemp9 = 0.3f * _state.fVec0[((_state.IOTA0 - _state.iSlow21) & 16383) & 16383];
|
|
2956
|
+
fTemp10 = _state.fVec10[((_state.IOTA0 - _state.iConst29) & 16383) & 16383] - (fTemp9 + (0.6f * _state.fRec28[1]));
|
|
2957
|
+
_state.fVec11[(_state.IOTA0 & 2047) & 2047] = fTemp10;
|
|
2958
|
+
_state.fRec28[0] = _state.fVec11[((_state.IOTA0 - _state.iConst30) & 2047) & 2047];
|
|
2959
|
+
fRec29 = 0.6f * fTemp10;
|
|
2960
|
+
_state.fRec35[0] = (- (_state.fSlow18 * ((_state.fSlow19 * _state.fRec35[1]) - (_state.fRec6[1] + _state.fRec6[2]))));
|
|
2961
|
+
_state.fRec34[0] = ((_state.fSlow64 * (_state.fRec6[1] + (_state.fSlow65 * _state.fRec35[0]))) + (_state.fSlow66 * _state.fRec34[1]));
|
|
2962
|
+
_state.fVec12[(_state.IOTA0 & 16383) & 16383] = ((0.35355338f * _state.fRec34[0]) + 1e-20f);
|
|
2963
|
+
fTemp11 = _state.fVec12[((_state.IOTA0 - _state.iConst34) & 16383) & 16383] - (fTemp9 + (0.6f * _state.fRec32[1]));
|
|
2964
|
+
_state.fVec13[(_state.IOTA0 & 4095) & 4095] = fTemp11;
|
|
2965
|
+
_state.fRec32[0] = _state.fVec13[((_state.IOTA0 - _state.iConst35) & 4095) & 4095];
|
|
2966
|
+
fRec33 = 0.6f * fTemp11;
|
|
2967
|
+
_state.fRec39[0] = (- (_state.fSlow18 * ((_state.fSlow19 * _state.fRec39[1]) - (_state.fRec8[1] + _state.fRec8[2]))));
|
|
2968
|
+
_state.fRec38[0] = ((_state.fSlow73 * (_state.fRec8[1] + (_state.fSlow74 * _state.fRec39[0]))) + (_state.fSlow75 * _state.fRec38[1]));
|
|
2969
|
+
_state.fVec14[(_state.IOTA0 & 16383) & 16383] = ((0.35355338f * _state.fRec38[0]) + 1e-20f);
|
|
2970
|
+
fTemp12 = (fTemp9 + _state.fVec14[((_state.IOTA0 - _state.iConst39) & 16383) & 16383]) - (0.6f * _state.fRec36[1]);
|
|
2971
|
+
_state.fVec15[(_state.IOTA0 & 4095) & 4095] = fTemp12;
|
|
2972
|
+
_state.fRec36[0] = _state.fVec15[((_state.IOTA0 - _state.iConst40) & 4095) & 4095];
|
|
2973
|
+
fRec37 = 0.6f * fTemp12;
|
|
2974
|
+
_state.fRec43[0] = (- (_state.fSlow18 * ((_state.fSlow19 * _state.fRec43[1]) - (_state.fRec4[1] + _state.fRec4[2]))));
|
|
2975
|
+
_state.fRec42[0] = ((_state.fSlow82 * (_state.fRec4[1] + (_state.fSlow83 * _state.fRec43[0]))) + (_state.fSlow84 * _state.fRec42[1]));
|
|
2976
|
+
_state.fVec16[(_state.IOTA0 & 16383) & 16383] = ((0.35355338f * _state.fRec42[0]) + 1e-20f);
|
|
2977
|
+
fTemp13 = (_state.fVec16[((_state.IOTA0 - _state.iConst44) & 16383) & 16383] + fTemp9) - (0.6f * _state.fRec40[1]);
|
|
2978
|
+
_state.fVec17[(_state.IOTA0 & 2047) & 2047] = fTemp13;
|
|
2979
|
+
_state.fRec40[0] = _state.fVec17[((_state.IOTA0 - _state.iConst45) & 2047) & 2047];
|
|
2980
|
+
fRec41 = 0.6f * fTemp13;
|
|
2981
|
+
fTemp14 = fRec41 + fRec37;
|
|
2982
|
+
fTemp15 = (fRec29 + fRec33) + fTemp14;
|
|
2983
|
+
_state.fRec4[0] = ((((((((((((_state.fRec12[1] + _state.fRec16[1]) + _state.fRec20[1]) + _state.fRec24[1]) + _state.fRec28[1]) + _state.fRec32[1]) + _state.fRec36[1]) + _state.fRec40[1]) + fRec13) + fRec17) + fRec21) + fRec25) + fTemp15);
|
|
2984
|
+
_state.fRec5[0] = (((((_state.fRec28[1] + _state.fRec32[1]) + _state.fRec36[1]) + _state.fRec40[1]) + fTemp15) - (((((((_state.fRec12[1] + _state.fRec16[1]) + _state.fRec20[1]) + _state.fRec24[1]) + fRec13) + fRec17) + fRec25) + fRec21));
|
|
2985
|
+
fTemp16 = fRec33 + fRec29;
|
|
2986
|
+
_state.fRec6[0] = (((((((_state.fRec20[1] + _state.fRec24[1]) + _state.fRec36[1]) + _state.fRec40[1]) + fRec21) + fRec25) + fTemp14) - ((((((_state.fRec12[1] + _state.fRec16[1]) + _state.fRec28[1]) + _state.fRec32[1]) + fRec13) + fRec17) + fTemp16));
|
|
2987
|
+
_state.fRec7[0] = (((((((_state.fRec12[1] + _state.fRec16[1]) + _state.fRec36[1]) + _state.fRec40[1]) + fRec13) + fRec17) + fTemp14) - ((((((_state.fRec20[1] + _state.fRec24[1]) + _state.fRec28[1]) + _state.fRec32[1]) + fRec21) + fRec25) + fTemp16));
|
|
2988
|
+
fTemp17 = fRec41 + fRec33;
|
|
2989
|
+
fTemp18 = fRec37 + fRec29;
|
|
2990
|
+
_state.fRec8[0] = (((((((_state.fRec16[1] + _state.fRec24[1]) + _state.fRec32[1]) + _state.fRec40[1]) + fRec17) + fRec25) + fTemp17) - ((((((_state.fRec12[1] + _state.fRec20[1]) + _state.fRec28[1]) + _state.fRec36[1]) + fRec13) + fRec21) + fTemp18));
|
|
2991
|
+
_state.fRec9[0] = (((((((_state.fRec12[1] + _state.fRec20[1]) + _state.fRec32[1]) + _state.fRec40[1]) + fRec13) + fRec21) + fTemp17) - ((((((_state.fRec16[1] + _state.fRec24[1]) + _state.fRec28[1]) + _state.fRec36[1]) + fRec17) + fRec25) + fTemp18));
|
|
2992
|
+
fTemp19 = fRec41 + fRec29;
|
|
2993
|
+
fTemp20 = fRec37 + fRec33;
|
|
2994
|
+
_state.fRec10[0] = (((((((_state.fRec12[1] + _state.fRec24[1]) + _state.fRec28[1]) + _state.fRec40[1]) + fRec13) + fRec25) + fTemp19) - ((((((_state.fRec16[1] + _state.fRec20[1]) + _state.fRec32[1]) + _state.fRec36[1]) + fRec17) + fRec21) + fTemp20));
|
|
2995
|
+
_state.fRec11[0] = (((((((_state.fRec16[1] + _state.fRec20[1]) + _state.fRec28[1]) + _state.fRec40[1]) + fRec17) + fRec21) + fTemp19) - ((((((_state.fRec12[1] + _state.fRec24[1]) + _state.fRec32[1]) + _state.fRec36[1]) + fRec13) + fRec25) + fTemp20));
|
|
2996
|
+
fTemp21 = 0.37f * (_state.fRec5[0] + _state.fRec6[0]);
|
|
2997
|
+
fTemp22 = _state.fSlow85 * _state.fRec3[1];
|
|
2998
|
+
fTemp23 = fTemp21 + fTemp22;
|
|
2999
|
+
_state.fRec3[0] = (fTemp23 - (_state.fSlow5 * _state.fRec3[2]));
|
|
3000
|
+
fTemp24 = _state.fSlow5 * _state.fRec3[0];
|
|
3001
|
+
fTemp25 = (fTemp24 + fTemp21) + _state.fRec3[2];
|
|
3002
|
+
fTemp26 = _state.fSlow3 * ((_state.fRec3[2] + fTemp24) - fTemp23);
|
|
3003
|
+
fTemp27 = _state.fSlow90 * _state.fRec2[1];
|
|
3004
|
+
_state.fRec2[0] = (((0.5f * ((fTemp25 - fTemp22) + fTemp26)) + fTemp27) - (_state.fSlow89 * _state.fRec2[2]));
|
|
3005
|
+
fTemp28 = _state.fRec2[2] + (_state.fSlow89 * _state.fRec2[0]);
|
|
3006
|
+
fTemp29 = 0.5f * ((fTemp25 + fTemp26) - fTemp22);
|
|
3007
|
+
_io.output0 = (_io.output0 + ((0.25f * _state.fRec0[0]) * ((fTemp0 * fTemp1) + (fTemp2 * (((fTemp28 + fTemp29) + (_state.fSlow87 * (fTemp28 - (fTemp27 + fTemp29)))) - fTemp27)))));
|
|
3008
|
+
fTemp30 = 0.37f * (_state.fRec5[0] - _state.fRec6[0]);
|
|
3009
|
+
fTemp31 = _state.fSlow85 * _state.fRec45[1];
|
|
3010
|
+
fTemp32 = fTemp30 + fTemp31;
|
|
3011
|
+
_state.fRec45[0] = (fTemp32 - (_state.fSlow5 * _state.fRec45[2]));
|
|
3012
|
+
fTemp33 = _state.fSlow5 * _state.fRec45[0];
|
|
3013
|
+
fTemp34 = (fTemp33 + fTemp30) + _state.fRec45[2];
|
|
3014
|
+
fTemp35 = _state.fSlow3 * ((_state.fRec45[2] + fTemp33) - fTemp32);
|
|
3015
|
+
fTemp36 = _state.fSlow90 * _state.fRec44[1];
|
|
3016
|
+
_state.fRec44[0] = (((0.5f * ((fTemp34 - fTemp31) + fTemp35)) + fTemp36) - (_state.fSlow89 * _state.fRec44[2]));
|
|
3017
|
+
fTemp37 = _state.fRec44[2] + (_state.fSlow89 * _state.fRec44[0]);
|
|
3018
|
+
fTemp38 = 0.5f * ((fTemp34 + fTemp35) - fTemp31);
|
|
3019
|
+
_io.output1 = (_io.output1 + ((0.25f * _state.fRec0[0]) * ((fTemp4 * fTemp1) + (fTemp2 * (((fTemp37 + fTemp38) + (_state.fSlow87 * (fTemp37 - (fTemp36 + fTemp38)))) - fTemp36)))));
|
|
3020
|
+
_state.fRec0[1] = _state.fRec0[0];
|
|
3021
|
+
_state.IOTA0 = (_state.IOTA0 + 1);
|
|
3022
|
+
_state.fRec1[1] = _state.fRec1[0];
|
|
3023
|
+
_state.fRec15[1] = _state.fRec15[0];
|
|
3024
|
+
_state.fRec14[1] = _state.fRec14[0];
|
|
3025
|
+
_state.fRec12[1] = _state.fRec12[0];
|
|
3026
|
+
_state.fRec19[1] = _state.fRec19[0];
|
|
3027
|
+
_state.fRec18[1] = _state.fRec18[0];
|
|
3028
|
+
_state.fRec16[1] = _state.fRec16[0];
|
|
3029
|
+
_state.fRec23[1] = _state.fRec23[0];
|
|
3030
|
+
_state.fRec22[1] = _state.fRec22[0];
|
|
3031
|
+
_state.fRec20[1] = _state.fRec20[0];
|
|
3032
|
+
_state.fRec27[1] = _state.fRec27[0];
|
|
3033
|
+
_state.fRec26[1] = _state.fRec26[0];
|
|
3034
|
+
_state.fRec24[1] = _state.fRec24[0];
|
|
3035
|
+
_state.fRec31[1] = _state.fRec31[0];
|
|
3036
|
+
_state.fRec30[1] = _state.fRec30[0];
|
|
3037
|
+
_state.fRec28[1] = _state.fRec28[0];
|
|
3038
|
+
_state.fRec35[1] = _state.fRec35[0];
|
|
3039
|
+
_state.fRec34[1] = _state.fRec34[0];
|
|
3040
|
+
_state.fRec32[1] = _state.fRec32[0];
|
|
3041
|
+
_state.fRec39[1] = _state.fRec39[0];
|
|
3042
|
+
_state.fRec38[1] = _state.fRec38[0];
|
|
3043
|
+
_state.fRec36[1] = _state.fRec36[0];
|
|
3044
|
+
_state.fRec43[1] = _state.fRec43[0];
|
|
3045
|
+
_state.fRec42[1] = _state.fRec42[0];
|
|
3046
|
+
_state.fRec40[1] = _state.fRec40[0];
|
|
3047
|
+
_state.fRec4[2] = _state.fRec4[1];
|
|
3048
|
+
_state.fRec4[1] = _state.fRec4[0];
|
|
3049
|
+
_state.fRec5[2] = _state.fRec5[1];
|
|
3050
|
+
_state.fRec5[1] = _state.fRec5[0];
|
|
3051
|
+
_state.fRec6[2] = _state.fRec6[1];
|
|
3052
|
+
_state.fRec6[1] = _state.fRec6[0];
|
|
3053
|
+
_state.fRec7[2] = _state.fRec7[1];
|
|
3054
|
+
_state.fRec7[1] = _state.fRec7[0];
|
|
3055
|
+
_state.fRec8[2] = _state.fRec8[1];
|
|
3056
|
+
_state.fRec8[1] = _state.fRec8[0];
|
|
3057
|
+
_state.fRec9[2] = _state.fRec9[1];
|
|
3058
|
+
_state.fRec9[1] = _state.fRec9[0];
|
|
3059
|
+
_state.fRec10[2] = _state.fRec10[1];
|
|
3060
|
+
_state.fRec10[1] = _state.fRec10[0];
|
|
3061
|
+
_state.fRec11[2] = _state.fRec11[1];
|
|
3062
|
+
_state.fRec11[1] = _state.fRec11[0];
|
|
3063
|
+
_state.fRec3[2] = _state.fRec3[1];
|
|
3064
|
+
_state.fRec3[1] = _state.fRec3[0];
|
|
3065
|
+
_state.fRec2[2] = _state.fRec2[1];
|
|
3066
|
+
_state.fRec2[1] = _state.fRec2[0];
|
|
3067
|
+
_state.fRec45[2] = _state.fRec45[1];
|
|
3068
|
+
_state.fRec45[1] = _state.fRec45[0];
|
|
3069
|
+
_state.fRec44[2] = _state.fRec44[1];
|
|
3070
|
+
_state.fRec44[1] = _state.fRec44[0];
|
|
3071
|
+
return;
|
|
3072
|
+
}
|
|
3073
|
+
}
|
|
3074
|
+
|
|
3075
|
+
void faust__reverb__control (faust_reverb_1_State& _state) noexcept
|
|
3076
|
+
{
|
|
3077
|
+
_state.fSlow0 = (_state.fConst1 * intrinsics::pow (10.0f, 0.05f * _state.fVslider0));
|
|
3078
|
+
_state.fSlow1 = (_state.fConst1 * _state.fVslider1);
|
|
3079
|
+
_state.fSlow2 = _state.fVslider2;
|
|
3080
|
+
_state.fSlow3 = intrinsics::pow (10.0f, 0.05f * _state.fVslider3);
|
|
3081
|
+
_state.fSlow4 = (_state.fConst3 * (_state.fSlow2 / intrinsics::sqrt (intrinsics::max (0.0f, _state.fSlow3))));
|
|
3082
|
+
_state.fSlow5 = ((1.0f - _state.fSlow4) / (_state.fSlow4 + 1.0f));
|
|
3083
|
+
_state.fSlow6 = _state.fVslider4;
|
|
3084
|
+
_state.fSlow7 = intrinsics::exp (- (_state.fConst5 / _state.fSlow6));
|
|
3085
|
+
_state.fSlow8 = intrinsics::cos (_state.fConst3 * _state.fVslider5);
|
|
3086
|
+
_state.fSlow9 = intrinsics::pow (_state.fSlow7, 2.0f);
|
|
3087
|
+
_state.fSlow10 = (1.0f - (_state.fSlow8 * _state.fSlow9));
|
|
3088
|
+
_state.fSlow11 = (1.0f - _state.fSlow9);
|
|
3089
|
+
_state.fSlow12 = intrinsics::sqrt (intrinsics::max (0.0f, (intrinsics::pow (_state.fSlow10, 2.0f) / intrinsics::pow (_state.fSlow11, 2.0f)) + -1.0f));
|
|
3090
|
+
_state.fSlow13 = (_state.fSlow10 / _state.fSlow11);
|
|
3091
|
+
_state.fSlow14 = (_state.fSlow7 * (_state.fSlow12 + (1.0f - _state.fSlow13)));
|
|
3092
|
+
_state.fSlow15 = _state.fVslider6;
|
|
3093
|
+
_state.fSlow16 = ((intrinsics::exp (- (_state.fConst5 / _state.fSlow15)) / _state.fSlow7) + -1.0f);
|
|
3094
|
+
_state.fSlow17 = (1.0f / intrinsics::tan (_state.fConst6 * _state.fVslider7));
|
|
3095
|
+
_state.fSlow18 = (1.0f / (_state.fSlow17 + 1.0f));
|
|
3096
|
+
_state.fSlow19 = (1.0f - _state.fSlow17);
|
|
3097
|
+
_state.fSlow20 = (_state.fSlow13 - _state.fSlow12);
|
|
3098
|
+
_state.iSlow21 = static_cast<int32_t> (intrinsics::min (8192.0f, intrinsics::max (0.0f, _state.fConst9 * _state.fVslider8)));
|
|
3099
|
+
_state.fSlow22 = intrinsics::exp (- (_state.fConst12 / _state.fSlow6));
|
|
3100
|
+
_state.fSlow23 = intrinsics::pow (_state.fSlow22, 2.0f);
|
|
3101
|
+
_state.fSlow24 = (1.0f - (_state.fSlow8 * _state.fSlow23));
|
|
3102
|
+
_state.fSlow25 = (1.0f - _state.fSlow23);
|
|
3103
|
+
_state.fSlow26 = intrinsics::sqrt (intrinsics::max (0.0f, (intrinsics::pow (_state.fSlow24, 2.0f) / intrinsics::pow (_state.fSlow25, 2.0f)) + -1.0f));
|
|
3104
|
+
_state.fSlow27 = (_state.fSlow24 / _state.fSlow25);
|
|
3105
|
+
_state.fSlow28 = (_state.fSlow22 * (_state.fSlow26 + (1.0f - _state.fSlow27)));
|
|
3106
|
+
_state.fSlow29 = ((intrinsics::exp (- (_state.fConst12 / _state.fSlow15)) / _state.fSlow22) + -1.0f);
|
|
3107
|
+
_state.fSlow30 = (_state.fSlow27 - _state.fSlow26);
|
|
3108
|
+
_state.fSlow31 = intrinsics::exp (- (_state.fConst17 / _state.fSlow6));
|
|
3109
|
+
_state.fSlow32 = intrinsics::pow (_state.fSlow31, 2.0f);
|
|
3110
|
+
_state.fSlow33 = (1.0f - (_state.fSlow8 * _state.fSlow32));
|
|
3111
|
+
_state.fSlow34 = (1.0f - _state.fSlow32);
|
|
3112
|
+
_state.fSlow35 = intrinsics::sqrt (intrinsics::max (0.0f, (intrinsics::pow (_state.fSlow33, 2.0f) / intrinsics::pow (_state.fSlow34, 2.0f)) + -1.0f));
|
|
3113
|
+
_state.fSlow36 = (_state.fSlow33 / _state.fSlow34);
|
|
3114
|
+
_state.fSlow37 = (_state.fSlow31 * (_state.fSlow35 + (1.0f - _state.fSlow36)));
|
|
3115
|
+
_state.fSlow38 = ((intrinsics::exp (- (_state.fConst17 / _state.fSlow15)) / _state.fSlow31) + -1.0f);
|
|
3116
|
+
_state.fSlow39 = (_state.fSlow36 - _state.fSlow35);
|
|
3117
|
+
_state.fSlow40 = intrinsics::exp (- (_state.fConst22 / _state.fSlow6));
|
|
3118
|
+
_state.fSlow41 = intrinsics::pow (_state.fSlow40, 2.0f);
|
|
3119
|
+
_state.fSlow42 = (1.0f - (_state.fSlow8 * _state.fSlow41));
|
|
3120
|
+
_state.fSlow43 = (1.0f - _state.fSlow41);
|
|
3121
|
+
_state.fSlow44 = intrinsics::sqrt (intrinsics::max (0.0f, (intrinsics::pow (_state.fSlow42, 2.0f) / intrinsics::pow (_state.fSlow43, 2.0f)) + -1.0f));
|
|
3122
|
+
_state.fSlow45 = (_state.fSlow42 / _state.fSlow43);
|
|
3123
|
+
_state.fSlow46 = (_state.fSlow40 * (_state.fSlow44 + (1.0f - _state.fSlow45)));
|
|
3124
|
+
_state.fSlow47 = ((intrinsics::exp (- (_state.fConst22 / _state.fSlow15)) / _state.fSlow40) + -1.0f);
|
|
3125
|
+
_state.fSlow48 = (_state.fSlow45 - _state.fSlow44);
|
|
3126
|
+
_state.fSlow49 = intrinsics::exp (- (_state.fConst27 / _state.fSlow6));
|
|
3127
|
+
_state.fSlow50 = intrinsics::pow (_state.fSlow49, 2.0f);
|
|
3128
|
+
_state.fSlow51 = (1.0f - (_state.fSlow8 * _state.fSlow50));
|
|
3129
|
+
_state.fSlow52 = (1.0f - _state.fSlow50);
|
|
3130
|
+
_state.fSlow53 = intrinsics::sqrt (intrinsics::max (0.0f, (intrinsics::pow (_state.fSlow51, 2.0f) / intrinsics::pow (_state.fSlow52, 2.0f)) + -1.0f));
|
|
3131
|
+
_state.fSlow54 = (_state.fSlow51 / _state.fSlow52);
|
|
3132
|
+
_state.fSlow55 = (_state.fSlow49 * (_state.fSlow53 + (1.0f - _state.fSlow54)));
|
|
3133
|
+
_state.fSlow56 = ((intrinsics::exp (- (_state.fConst27 / _state.fSlow15)) / _state.fSlow49) + -1.0f);
|
|
3134
|
+
_state.fSlow57 = (_state.fSlow54 - _state.fSlow53);
|
|
3135
|
+
_state.fSlow58 = intrinsics::exp (- (_state.fConst32 / _state.fSlow6));
|
|
3136
|
+
_state.fSlow59 = intrinsics::pow (_state.fSlow58, 2.0f);
|
|
3137
|
+
_state.fSlow60 = (1.0f - (_state.fSlow8 * _state.fSlow59));
|
|
3138
|
+
_state.fSlow61 = (1.0f - _state.fSlow59);
|
|
3139
|
+
_state.fSlow62 = intrinsics::sqrt (intrinsics::max (0.0f, (intrinsics::pow (_state.fSlow60, 2.0f) / intrinsics::pow (_state.fSlow61, 2.0f)) + -1.0f));
|
|
3140
|
+
_state.fSlow63 = (_state.fSlow60 / _state.fSlow61);
|
|
3141
|
+
_state.fSlow64 = (_state.fSlow58 * (_state.fSlow62 + (1.0f - _state.fSlow63)));
|
|
3142
|
+
_state.fSlow65 = ((intrinsics::exp (- (_state.fConst32 / _state.fSlow15)) / _state.fSlow58) + -1.0f);
|
|
3143
|
+
_state.fSlow66 = (_state.fSlow63 - _state.fSlow62);
|
|
3144
|
+
_state.fSlow67 = intrinsics::exp (- (_state.fConst37 / _state.fSlow6));
|
|
3145
|
+
_state.fSlow68 = intrinsics::pow (_state.fSlow67, 2.0f);
|
|
3146
|
+
_state.fSlow69 = (1.0f - (_state.fSlow8 * _state.fSlow68));
|
|
3147
|
+
_state.fSlow70 = (1.0f - _state.fSlow68);
|
|
3148
|
+
_state.fSlow71 = intrinsics::sqrt (intrinsics::max (0.0f, (intrinsics::pow (_state.fSlow69, 2.0f) / intrinsics::pow (_state.fSlow70, 2.0f)) + -1.0f));
|
|
3149
|
+
_state.fSlow72 = (_state.fSlow69 / _state.fSlow70);
|
|
3150
|
+
_state.fSlow73 = (_state.fSlow67 * (_state.fSlow71 + (1.0f - _state.fSlow72)));
|
|
3151
|
+
_state.fSlow74 = ((intrinsics::exp (- (_state.fConst37 / _state.fSlow15)) / _state.fSlow67) + -1.0f);
|
|
3152
|
+
_state.fSlow75 = (_state.fSlow72 - _state.fSlow71);
|
|
3153
|
+
_state.fSlow76 = intrinsics::exp (- (_state.fConst42 / _state.fSlow6));
|
|
3154
|
+
_state.fSlow77 = intrinsics::pow (_state.fSlow76, 2.0f);
|
|
3155
|
+
_state.fSlow78 = (1.0f - (_state.fSlow77 * _state.fSlow8));
|
|
3156
|
+
_state.fSlow79 = (1.0f - _state.fSlow77);
|
|
3157
|
+
_state.fSlow80 = intrinsics::sqrt (intrinsics::max (0.0f, (intrinsics::pow (_state.fSlow78, 2.0f) / intrinsics::pow (_state.fSlow79, 2.0f)) + -1.0f));
|
|
3158
|
+
_state.fSlow81 = (_state.fSlow78 / _state.fSlow79);
|
|
3159
|
+
_state.fSlow82 = (_state.fSlow76 * (_state.fSlow80 + (1.0f - _state.fSlow81)));
|
|
3160
|
+
_state.fSlow83 = ((intrinsics::exp (- (_state.fConst42 / _state.fSlow15)) / _state.fSlow76) + -1.0f);
|
|
3161
|
+
_state.fSlow84 = (_state.fSlow81 - _state.fSlow80);
|
|
3162
|
+
_state.fSlow85 = (intrinsics::cos (_state.fConst3 * _state.fSlow2) * (_state.fSlow5 + 1.0f));
|
|
3163
|
+
_state.fSlow86 = _state.fVslider9;
|
|
3164
|
+
_state.fSlow87 = intrinsics::pow (10.0f, 0.05f * _state.fVslider10);
|
|
3165
|
+
_state.fSlow88 = (_state.fConst3 * (_state.fSlow86 / intrinsics::sqrt (intrinsics::max (0.0f, _state.fSlow87))));
|
|
3166
|
+
_state.fSlow89 = ((1.0f - _state.fSlow88) / (_state.fSlow88 + 1.0f));
|
|
3167
|
+
_state.fSlow90 = (intrinsics::cos (_state.fConst3 * _state.fSlow86) * (_state.fSlow89 + 1.0f));
|
|
3168
|
+
}
|
|
3169
|
+
|
|
3170
|
+
float std__intrinsics__sqrt (float n) noexcept
|
|
3171
|
+
{
|
|
3172
|
+
{
|
|
3173
|
+
return 0.0f;
|
|
3174
|
+
}
|
|
3175
|
+
}
|
|
3176
|
+
|
|
3177
|
+
void faust__echo__main (faust_echo_1_State& _state, faust_reverb_1_IO& _io) noexcept
|
|
3178
|
+
{
|
|
3179
|
+
for (;;)
|
|
3180
|
+
{
|
|
3181
|
+
if (_state.fUpdated)
|
|
3182
|
+
{
|
|
3183
|
+
_state.fUpdated = false;
|
|
3184
|
+
faust__echo__control (_state);
|
|
3185
|
+
}
|
|
3186
|
+
_state.fRec0[(_state.IOTA0 & 0x1fffff) & 0x1fffff] = (_io.input0 + (0.7f * _state.fRec0[((_state.IOTA0 - _state.iSlow0) & 0x1fffff) & 0x1fffff]));
|
|
3187
|
+
_io.output0 = (_io.output0 + _state.fRec0[(_state.IOTA0 & 0x1fffff) & 0x1fffff]);
|
|
3188
|
+
_state.fRec1[(_state.IOTA0 & 0x1fffff) & 0x1fffff] = (_io.input1 + (0.7f * _state.fRec1[((_state.IOTA0 - _state.iSlow0) & 0x1fffff) & 0x1fffff]));
|
|
3189
|
+
_io.output1 = (_io.output1 + _state.fRec1[(_state.IOTA0 & 0x1fffff) & 0x1fffff]);
|
|
3190
|
+
_state.IOTA0 = (_state.IOTA0 + 1);
|
|
3191
|
+
return;
|
|
3192
|
+
}
|
|
3193
|
+
}
|
|
3194
|
+
|
|
3195
|
+
void faust__echo__control (faust_echo_1_State& _state) noexcept
|
|
3196
|
+
{
|
|
3197
|
+
_state.iSlow0 = (static_cast<int32_t> (_state.fConst0 * _state.fVslider0) + 1);
|
|
3198
|
+
}
|
|
3199
|
+
|
|
3200
|
+
//==============================================================================
|
|
3201
|
+
const char* getStringForHandle (uint32_t handle, size_t& stringLength)
|
|
3202
|
+
{
|
|
3203
|
+
(void) handle; (void) stringLength;
|
|
3204
|
+
return "";
|
|
3205
|
+
}
|
|
3206
|
+
|
|
3207
|
+
//==============================================================================
|
|
3208
|
+
int32_t _sessionID {};
|
|
3209
|
+
double _frequency {};
|
|
3210
|
+
const Array<_HelloWorld_1_Note, 13> melody { Array<_HelloWorld_1_Note, 13> { _HelloWorld_1_Note { 79, 1 }, _HelloWorld_1_Note { 77, 1 }, _HelloWorld_1_Note { 69, 2 }, _HelloWorld_1_Note { 71, 2 }, _HelloWorld_1_Note { 76, 1 }, _HelloWorld_1_Note { 74, 1 }, _HelloWorld_1_Note { 65, 2 }, _HelloWorld_1_Note { 67, 2 }, _HelloWorld_1_Note { 74, 1 }, _HelloWorld_1_Note { 72, 1 }, _HelloWorld_1_Note { 64, 2 }, _HelloWorld_1_Note { 67, 2 }, _HelloWorld_1_Note { 72, 4 } } };
|
|
3211
|
+
static constexpr float volume { 0.15f };
|
|
3212
|
+
|
|
3213
|
+
//==============================================================================
|
|
3214
|
+
struct intrinsics
|
|
3215
|
+
{
|
|
3216
|
+
template <typename T> static T modulo (T a, T b)
|
|
3217
|
+
{
|
|
3218
|
+
if constexpr (std::is_floating_point<T>::value)
|
|
3219
|
+
return std::fmod (a, b);
|
|
3220
|
+
else
|
|
3221
|
+
return a % b;
|
|
3222
|
+
}
|
|
3223
|
+
|
|
3224
|
+
template <typename T> static T addModulo2Pi (T a, T b)
|
|
3225
|
+
{
|
|
3226
|
+
constexpr auto twoPi = static_cast<T> (3.141592653589793238 * 2);
|
|
3227
|
+
auto n = a + b;
|
|
3228
|
+
return n >= twoPi ? std::remainder (n, twoPi) : n;
|
|
3229
|
+
}
|
|
3230
|
+
|
|
3231
|
+
template <typename T> static T abs (T a) { return std::abs (a); }
|
|
3232
|
+
template <typename T> static T min (T a, T b) { return std::min (a, b); }
|
|
3233
|
+
template <typename T> static T max (T a, T b) { return std::max (a, b); }
|
|
3234
|
+
template <typename T> static T clamp (T a, T b, T c) { return a < b ? b : (a > c ? c : a); }
|
|
3235
|
+
template <typename T> static T wrap (T a, T b) { if (b == 0) return 0; auto n = modulo (a, b); if (n < 0) n += b; return n; }
|
|
3236
|
+
template <typename T> static T fmod (T a, T b) { return b != 0 ? std::fmod (a, b) : 0; }
|
|
3237
|
+
template <typename T> static T remainder (T a, T b) { return b != 0 ? std::remainder (a, b) : 0; }
|
|
3238
|
+
template <typename T> static T floor (T a) { return std::floor (a); }
|
|
3239
|
+
template <typename T> static T ceil (T a) { return std::ceil (a); }
|
|
3240
|
+
template <typename T> static T rint (T a) { return std::rint (a); }
|
|
3241
|
+
template <typename T> static T sqrt (T a) { return std::sqrt (a); }
|
|
3242
|
+
template <typename T> static T pow (T a, T b) { return std::pow (a, b); }
|
|
3243
|
+
template <typename T> static T exp (T a) { return std::exp (a); }
|
|
3244
|
+
template <typename T> static T log (T a) { return std::log (a); }
|
|
3245
|
+
template <typename T> static T log10 (T a) { return std::log10 (a); }
|
|
3246
|
+
template <typename T> static T sin (T a) { return std::sin (a); }
|
|
3247
|
+
template <typename T> static T cos (T a) { return std::cos (a); }
|
|
3248
|
+
template <typename T> static T tan (T a) { return std::tan (a); }
|
|
3249
|
+
template <typename T> static T sinh (T a) { return std::sinh (a); }
|
|
3250
|
+
template <typename T> static T cosh (T a) { return std::cosh (a); }
|
|
3251
|
+
template <typename T> static T tanh (T a) { return std::tanh (a); }
|
|
3252
|
+
template <typename T> static T asinh (T a) { return std::asinh (a); }
|
|
3253
|
+
template <typename T> static T acosh (T a) { return std::acosh (a); }
|
|
3254
|
+
template <typename T> static T atanh (T a) { return std::atanh (a); }
|
|
3255
|
+
template <typename T> static T asin (T a) { return std::asin (a); }
|
|
3256
|
+
template <typename T> static T acos (T a) { return std::acos (a); }
|
|
3257
|
+
template <typename T> static T atan (T a) { return std::atan (a); }
|
|
3258
|
+
template <typename T> static T atan2 (T a, T b) { return std::atan2 (a, b); }
|
|
3259
|
+
template <typename T> static T isnan (T a) { return std::isnan (a) ? 1 : 0; }
|
|
3260
|
+
template <typename T> static T isinf (T a) { return std::isinf (a) ? 1 : 0; }
|
|
3261
|
+
|
|
3262
|
+
static int32_t reinterpretFloatToInt (float a) { int32_t i; memcpy (std::addressof(i), std::addressof(a), sizeof(i)); return i; }
|
|
3263
|
+
static int64_t reinterpretFloatToInt (double a) { int64_t i; memcpy (std::addressof(i), std::addressof(a), sizeof(i)); return i; }
|
|
3264
|
+
static float reinterpretIntToFloat (int32_t a) { float f; memcpy (std::addressof(f), std::addressof(a), sizeof(f)); return f; }
|
|
3265
|
+
static double reinterpretIntToFloat (int64_t a) { double f; memcpy (std::addressof(f), std::addressof(a), sizeof(f)); return f; }
|
|
3266
|
+
|
|
3267
|
+
static int32_t rightShiftUnsigned (int32_t a, int32_t b) { return static_cast<int32_t> (static_cast<uint32_t> (a) >> b); }
|
|
3268
|
+
static int64_t rightShiftUnsigned (int64_t a, int64_t b) { return static_cast<int64_t> (static_cast<uint64_t> (a) >> b); }
|
|
3269
|
+
|
|
3270
|
+
struct VectorOps
|
|
3271
|
+
{
|
|
3272
|
+
template <typename Vec> static Vec abs (Vec a) { return a.performUnaryOp ([] (auto x) { return intrinsics::abs (x); }); }
|
|
3273
|
+
template <typename Vec> static Vec min (Vec a, Vec b) { return a.performBinaryOp (b, [] (auto x, auto y) { return intrinsics::min (x, y); }); }
|
|
3274
|
+
template <typename Vec> static Vec max (Vec a, Vec b) { return a.performBinaryOp (b, [] (auto x, auto y) { return intrinsics::max (x, y); }); }
|
|
3275
|
+
template <typename Vec> static Vec sqrt (Vec a) { return a.performUnaryOp ([] (auto x) { return intrinsics::sqrt (x); }); }
|
|
3276
|
+
template <typename Vec> static Vec log (Vec a) { return a.performUnaryOp ([] (auto x) { return intrinsics::log (x); }); }
|
|
3277
|
+
template <typename Vec> static Vec log10 (Vec a) { return a.performUnaryOp ([] (auto x) { return intrinsics::log10 (x); }); }
|
|
3278
|
+
template <typename Vec> static Vec sin (Vec a) { return a.performUnaryOp ([] (auto x) { return intrinsics::sin (x); }); }
|
|
3279
|
+
template <typename Vec> static Vec cos (Vec a) { return a.performUnaryOp ([] (auto x) { return intrinsics::cos (x); }); }
|
|
3280
|
+
template <typename Vec> static Vec tan (Vec a) { return a.performUnaryOp ([] (auto x) { return intrinsics::tan (x); }); }
|
|
3281
|
+
template <typename Vec> static Vec sinh (Vec a) { return a.performUnaryOp ([] (auto x) { return intrinsics::sinh (x); }); }
|
|
3282
|
+
template <typename Vec> static Vec cosh (Vec a) { return a.performUnaryOp ([] (auto x) { return intrinsics::cosh (x); }); }
|
|
3283
|
+
template <typename Vec> static Vec tanh (Vec a) { return a.performUnaryOp ([] (auto x) { return intrinsics::tanh (x); }); }
|
|
3284
|
+
template <typename Vec> static Vec asinh (Vec a) { return a.performUnaryOp ([] (auto x) { return intrinsics::asinh (x); }); }
|
|
3285
|
+
template <typename Vec> static Vec acosh (Vec a) { return a.performUnaryOp ([] (auto x) { return intrinsics::acosh (x); }); }
|
|
3286
|
+
template <typename Vec> static Vec atanh (Vec a) { return a.performUnaryOp ([] (auto x) { return intrinsics::atanh (x); }); }
|
|
3287
|
+
template <typename Vec> static Vec asin (Vec a) { return a.performUnaryOp ([] (auto x) { return intrinsics::asin (x); }); }
|
|
3288
|
+
template <typename Vec> static Vec acos (Vec a) { return a.performUnaryOp ([] (auto x) { return intrinsics::acos (x); }); }
|
|
3289
|
+
template <typename Vec> static Vec atan (Vec a) { return a.performUnaryOp ([] (auto x) { return intrinsics::atan (x); }); }
|
|
3290
|
+
template <typename Vec> static Vec atan2 (Vec a, Vec b) { return a.performBinaryOp (b, [] (auto x, auto y) { return intrinsics::atan2 (x, y); }); }
|
|
3291
|
+
template <typename Vec> static Vec pow (Vec a, Vec b) { return a.performBinaryOp (b, [] (auto x, auto y) { return intrinsics::pow (x, y); }); }
|
|
3292
|
+
template <typename Vec> static Vec exp (Vec a) { return a.performUnaryOp ([] (auto x) { return intrinsics::exp (x); }); }
|
|
3293
|
+
};
|
|
3294
|
+
};
|
|
3295
|
+
|
|
3296
|
+
static constexpr float _inf32 = std::numeric_limits<float>::infinity();
|
|
3297
|
+
static constexpr double _inf64 = std::numeric_limits<double>::infinity();
|
|
3298
|
+
static constexpr float _ninf32 = -std::numeric_limits<float>::infinity();
|
|
3299
|
+
static constexpr double _ninf64 = -std::numeric_limits<double>::infinity();
|
|
3300
|
+
static constexpr float _nan32 = std::numeric_limits<float>::quiet_NaN();
|
|
3301
|
+
static constexpr double _nan64 = std::numeric_limits<double>::quiet_NaN();
|
|
3302
|
+
|
|
3303
|
+
//==============================================================================
|
|
3304
|
+
#if __clang__
|
|
3305
|
+
#pragma clang diagnostic pop
|
|
3306
|
+
#elif __GNUC__
|
|
3307
|
+
#pragma GCC diagnostic pop
|
|
3308
|
+
#else
|
|
3309
|
+
#pragma warning (pop)
|
|
3310
|
+
#endif
|
|
3311
|
+
};
|
|
3312
|
+
|