@algo-wasm/algo-wasm 1.0.0 → 1.2.0

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.
Files changed (61) hide show
  1. package/CHANGELOG.md +79 -0
  2. package/README.md +6 -4
  3. package/dist/algo-wasm-error.d.ts +13 -0
  4. package/dist/algo-wasm-player.d.ts +169 -0
  5. package/dist/algo_wasm.wasm +0 -0
  6. package/dist/built-in-profiles.d.ts +5 -0
  7. package/dist/engine-core.d.ts +96 -0
  8. package/dist/events.d.ts +5 -1
  9. package/dist/index.d.ts +3 -4
  10. package/dist/index.js +1 -6
  11. package/dist/integrations/phaser.d.ts +9 -2
  12. package/dist/integrations/phaser.js +1 -16
  13. package/dist/integrations/react.d.ts +8 -2
  14. package/dist/integrations/react.js +1 -28
  15. package/dist/integrations/svelte.d.ts +6 -2
  16. package/dist/integrations/svelte.js +1 -17
  17. package/dist/integrations/vue.d.ts +7 -2
  18. package/dist/integrations/vue.js +1 -16
  19. package/dist/load-wasm.d.ts +92 -0
  20. package/dist/profile-schema.json +317 -228
  21. package/dist/profile-spec.d.ts +178 -0
  22. package/dist/profile-wire.d.ts +50 -0
  23. package/dist/profile.d.ts +25 -1
  24. package/dist/types.d.ts +25 -1
  25. package/dist/wire-decode.d.ts +18 -0
  26. package/dist/worklet/algo-worklet.d.ts +1 -83
  27. package/dist/worklet/algo-worklet.js +1 -471
  28. package/package.json +1 -1
  29. package/dist/AlgoWasmError.d.ts +0 -8
  30. package/dist/AlgoWasmError.d.ts.map +0 -1
  31. package/dist/AlgoWasmError.js +0 -9
  32. package/dist/AlgoWasmError.js.map +0 -1
  33. package/dist/AlgoWasmPlayer.d.ts +0 -48
  34. package/dist/AlgoWasmPlayer.d.ts.map +0 -1
  35. package/dist/AlgoWasmPlayer.js +0 -375
  36. package/dist/AlgoWasmPlayer.js.map +0 -1
  37. package/dist/events.d.ts.map +0 -1
  38. package/dist/events.js +0 -25
  39. package/dist/events.js.map +0 -1
  40. package/dist/index.d.ts.map +0 -1
  41. package/dist/index.js.map +0 -1
  42. package/dist/integrations/phaser.d.ts.map +0 -1
  43. package/dist/integrations/phaser.js.map +0 -1
  44. package/dist/integrations/react.d.ts.map +0 -1
  45. package/dist/integrations/react.js.map +0 -1
  46. package/dist/integrations/svelte.d.ts.map +0 -1
  47. package/dist/integrations/svelte.js.map +0 -1
  48. package/dist/integrations/vue.d.ts.map +0 -1
  49. package/dist/integrations/vue.js.map +0 -1
  50. package/dist/loadWasm.d.ts +0 -47
  51. package/dist/loadWasm.d.ts.map +0 -1
  52. package/dist/loadWasm.js +0 -229
  53. package/dist/loadWasm.js.map +0 -1
  54. package/dist/profile.d.ts.map +0 -1
  55. package/dist/profile.js +0 -525
  56. package/dist/profile.js.map +0 -1
  57. package/dist/types.d.ts.map +0 -1
  58. package/dist/types.js +0 -2
  59. package/dist/types.js.map +0 -1
  60. package/dist/worklet/algo-worklet.d.ts.map +0 -1
  61. package/dist/worklet/algo-worklet.js.map +0 -1
@@ -9,16 +9,16 @@
9
9
  "displayName",
10
10
  "version",
11
11
  "tempo",
12
- "scales",
13
12
  "chordRules",
14
13
  "rhythmRules",
15
14
  "bassRules",
16
15
  "melodyRules",
17
16
  "arrangementRules",
18
17
  "automationRules",
18
+ "limits",
19
+ "scales",
19
20
  "patches",
20
- "mixer",
21
- "limits"
21
+ "mixer"
22
22
  ],
23
23
  "properties": {
24
24
  "id": {
@@ -43,114 +43,22 @@
43
43
  "properties": {
44
44
  "minBpm": {
45
45
  "type": "number",
46
- "minimum": 40
46
+ "minimum": 40,
47
+ "maximum": 240
47
48
  },
48
49
  "maxBpm": {
49
50
  "type": "number",
51
+ "minimum": 40,
50
52
  "maximum": 240
51
53
  },
52
54
  "defaultBpm": {
53
- "type": "number"
55
+ "type": "number",
56
+ "minimum": 40,
57
+ "maximum": 240
54
58
  }
55
59
  },
56
60
  "additionalProperties": false
57
61
  },
58
- "scales": {
59
- "type": "array",
60
- "minItems": 1,
61
- "items": {
62
- "type": "object",
63
- "required": [
64
- "name",
65
- "weight"
66
- ],
67
- "properties": {
68
- "name": {
69
- "type": "string",
70
- "minLength": 1
71
- },
72
- "weight": {
73
- "type": "integer",
74
- "minimum": 1
75
- }
76
- },
77
- "additionalProperties": false
78
- }
79
- },
80
- "chordRules": {
81
- "$ref": "#/$defs/chordRules"
82
- },
83
- "rhythmRules": {
84
- "$ref": "#/$defs/rhythmRules"
85
- },
86
- "bassRules": {
87
- "$ref": "#/$defs/bassRules"
88
- },
89
- "melodyRules": {
90
- "$ref": "#/$defs/melodyRules"
91
- },
92
- "arrangementRules": {
93
- "$ref": "#/$defs/arrangementRules"
94
- },
95
- "automationRules": {
96
- "$ref": "#/$defs/automationRules"
97
- },
98
- "patches": {
99
- "type": "array",
100
- "minItems": 11,
101
- "maxItems": 11,
102
- "items": {
103
- "$ref": "#/$defs/patch"
104
- }
105
- },
106
- "mixer": {
107
- "$ref": "#/$defs/mixer"
108
- },
109
- "limits": {
110
- "$ref": "#/$defs/limits"
111
- }
112
- },
113
- "$defs": {
114
- "unit": {
115
- "type": "number",
116
- "minimum": 0,
117
- "maximum": 1
118
- },
119
- "pan": {
120
- "type": "number",
121
- "minimum": -1,
122
- "maximum": 1
123
- },
124
- "gain": {
125
- "type": "number",
126
- "minimum": 0,
127
- "maximum": 2
128
- },
129
- "trackId": {
130
- "enum": [
131
- "kick",
132
- "snare",
133
- "closed_hat",
134
- "open_hat",
135
- "percussion",
136
- "bass",
137
- "chords",
138
- "pad",
139
- "lead",
140
- "arp",
141
- "fx"
142
- ]
143
- },
144
- "wave": {
145
- "enum": [
146
- "sine",
147
- "triangle",
148
- "saw",
149
- "square",
150
- "pulse",
151
- "noise"
152
- ]
153
- },
154
62
  "chordRules": {
155
63
  "type": "object",
156
64
  "required": [
@@ -161,16 +69,24 @@
161
69
  ],
162
70
  "properties": {
163
71
  "cadenceWeight": {
164
- "$ref": "#/$defs/unit"
72
+ "type": "number",
73
+ "minimum": 0,
74
+ "maximum": 4
165
75
  },
166
76
  "movementWeight": {
167
- "$ref": "#/$defs/unit"
77
+ "type": "number",
78
+ "minimum": 0,
79
+ "maximum": 4
168
80
  },
169
81
  "suspendedChance": {
170
- "$ref": "#/$defs/unit"
82
+ "type": "number",
83
+ "minimum": 0,
84
+ "maximum": 1
171
85
  },
172
86
  "brightBorrowChance": {
173
- "$ref": "#/$defs/unit"
87
+ "type": "number",
88
+ "minimum": 0,
89
+ "maximum": 1
174
90
  }
175
91
  },
176
92
  "additionalProperties": false
@@ -185,16 +101,29 @@
185
101
  ],
186
102
  "properties": {
187
103
  "kickDensity": {
188
- "$ref": "#/$defs/unit"
104
+ "type": "number",
105
+ "minimum": 0,
106
+ "maximum": 1
189
107
  },
190
108
  "hatDensity": {
191
- "$ref": "#/$defs/unit"
109
+ "type": "number",
110
+ "minimum": 0,
111
+ "maximum": 1
192
112
  },
193
113
  "percussionDensity": {
194
- "$ref": "#/$defs/unit"
114
+ "type": "number",
115
+ "minimum": 0,
116
+ "maximum": 1
195
117
  },
196
118
  "fillChance": {
197
- "$ref": "#/$defs/unit"
119
+ "type": "number",
120
+ "minimum": 0,
121
+ "maximum": 1
122
+ },
123
+ "halfTimeChance": {
124
+ "type": "number",
125
+ "minimum": 0,
126
+ "maximum": 1
198
127
  }
199
128
  },
200
129
  "additionalProperties": false
@@ -209,16 +138,29 @@
209
138
  ],
210
139
  "properties": {
211
140
  "density": {
212
- "$ref": "#/$defs/unit"
141
+ "type": "number",
142
+ "minimum": 0,
143
+ "maximum": 1
213
144
  },
214
145
  "slideChance": {
215
- "$ref": "#/$defs/unit"
146
+ "type": "number",
147
+ "minimum": 0,
148
+ "maximum": 1
216
149
  },
217
150
  "accentChance": {
218
- "$ref": "#/$defs/unit"
151
+ "type": "number",
152
+ "minimum": 0,
153
+ "maximum": 1
219
154
  },
220
155
  "octaveJumpChance": {
221
- "$ref": "#/$defs/unit"
156
+ "type": "number",
157
+ "minimum": 0,
158
+ "maximum": 1
159
+ },
160
+ "sustainChance": {
161
+ "type": "number",
162
+ "minimum": 0,
163
+ "maximum": 1
222
164
  }
223
165
  },
224
166
  "additionalProperties": false
@@ -233,18 +175,24 @@
233
175
  ],
234
176
  "properties": {
235
177
  "density": {
236
- "$ref": "#/$defs/unit"
178
+ "type": "number",
179
+ "minimum": 0,
180
+ "maximum": 1
237
181
  },
238
182
  "mutationChance": {
239
- "$ref": "#/$defs/unit"
183
+ "type": "number",
184
+ "minimum": 0,
185
+ "maximum": 1
240
186
  },
241
187
  "callResponseChance": {
242
- "$ref": "#/$defs/unit"
188
+ "type": "number",
189
+ "minimum": 0,
190
+ "maximum": 1
243
191
  },
244
192
  "maxRangeSemitones": {
245
193
  "type": "integer",
246
194
  "minimum": 1,
247
- "maximum": 36
195
+ "maximum": 48
248
196
  }
249
197
  },
250
198
  "additionalProperties": false
@@ -260,7 +208,8 @@
260
208
  "properties": {
261
209
  "minSectionBars": {
262
210
  "type": "integer",
263
- "minimum": 1
211
+ "minimum": 1,
212
+ "maximum": 64
264
213
  },
265
214
  "maxSectionBars": {
266
215
  "type": "integer",
@@ -273,7 +222,9 @@
273
222
  "maximum": 64
274
223
  },
275
224
  "resetChance": {
276
- "$ref": "#/$defs/unit"
225
+ "type": "number",
226
+ "minimum": 0,
227
+ "maximum": 1
277
228
  }
278
229
  },
279
230
  "additionalProperties": false
@@ -287,100 +238,253 @@
287
238
  ],
288
239
  "properties": {
289
240
  "filterMotion": {
290
- "$ref": "#/$defs/unit"
241
+ "type": "number",
242
+ "minimum": 0,
243
+ "maximum": 1
291
244
  },
292
245
  "sendMotion": {
293
- "$ref": "#/$defs/unit"
246
+ "type": "number",
247
+ "minimum": 0,
248
+ "maximum": 1
294
249
  },
295
250
  "panMotion": {
296
- "$ref": "#/$defs/unit"
251
+ "type": "number",
252
+ "minimum": 0,
253
+ "maximum": 1
297
254
  }
298
255
  },
299
256
  "additionalProperties": false
300
257
  },
301
- "patch": {
258
+ "limits": {
302
259
  "type": "object",
303
260
  "required": [
304
- "track",
305
- "wave",
306
- "gain",
307
- "pan",
308
- "attackMs",
309
- "decayMs",
310
- "sustain",
311
- "releaseMs",
312
- "filterCutoff",
313
- "resonance",
314
- "delaySend",
315
- "reverbSend"
261
+ "minSampleRate",
262
+ "maxSampleRate",
263
+ "minBpm",
264
+ "maxBpm",
265
+ "maxTracks",
266
+ "maxVoices",
267
+ "maxBarsQueued",
268
+ "maxEventsPerBlock"
316
269
  ],
317
270
  "properties": {
318
- "track": {
319
- "$ref": "#/$defs/trackId"
320
- },
321
- "wave": {
322
- "$ref": "#/$defs/wave"
323
- },
324
- "gain": {
325
- "$ref": "#/$defs/gain"
326
- },
327
- "pan": {
328
- "$ref": "#/$defs/pan"
271
+ "minSampleRate": {
272
+ "type": "integer",
273
+ "minimum": 22050,
274
+ "maximum": 96000
329
275
  },
330
- "attackMs": {
331
- "type": "number",
332
- "minimum": 0
276
+ "maxSampleRate": {
277
+ "type": "integer",
278
+ "minimum": 22050,
279
+ "maximum": 96000
333
280
  },
334
- "decayMs": {
281
+ "minBpm": {
335
282
  "type": "number",
336
- "minimum": 0
337
- },
338
- "sustain": {
339
- "$ref": "#/$defs/unit"
283
+ "minimum": 1,
284
+ "maximum": 1000
340
285
  },
341
- "releaseMs": {
286
+ "maxBpm": {
342
287
  "type": "number",
343
- "minimum": 0
288
+ "minimum": 1,
289
+ "maximum": 1000
344
290
  },
345
- "filterCutoff": {
346
- "type": "number",
347
- "minimum": 20,
348
- "maximum": 20000
291
+ "maxTracks": {
292
+ "type": "integer",
293
+ "minimum": 11,
294
+ "maximum": 11
349
295
  },
350
- "resonance": {
351
- "$ref": "#/$defs/unit"
296
+ "maxVoices": {
297
+ "type": "integer",
298
+ "minimum": 1,
299
+ "maximum": 64
352
300
  },
353
- "delaySend": {
354
- "$ref": "#/$defs/unit"
301
+ "maxBarsQueued": {
302
+ "type": "integer",
303
+ "minimum": 1,
304
+ "maximum": 64
355
305
  },
356
- "reverbSend": {
357
- "$ref": "#/$defs/unit"
306
+ "maxEventsPerBlock": {
307
+ "type": "integer",
308
+ "minimum": 1,
309
+ "maximum": 512
358
310
  }
359
311
  },
360
312
  "additionalProperties": false
361
313
  },
314
+ "scales": {
315
+ "type": "array",
316
+ "minItems": 1,
317
+ "maxItems": 8,
318
+ "items": {
319
+ "type": "object",
320
+ "required": [
321
+ "name",
322
+ "weight"
323
+ ],
324
+ "properties": {
325
+ "name": {
326
+ "enum": [
327
+ "natural_minor",
328
+ "dorian",
329
+ "aeolian",
330
+ "phrygian_dominant",
331
+ "minor_pentatonic"
332
+ ]
333
+ },
334
+ "weight": {
335
+ "type": "integer",
336
+ "minimum": 1,
337
+ "maximum": 1000000
338
+ }
339
+ },
340
+ "additionalProperties": false
341
+ }
342
+ },
343
+ "patches": {
344
+ "type": "array",
345
+ "minItems": 11,
346
+ "maxItems": 11,
347
+ "items": {
348
+ "type": "object",
349
+ "required": [
350
+ "track",
351
+ "wave",
352
+ "gain",
353
+ "pan",
354
+ "attackMs",
355
+ "decayMs",
356
+ "sustain",
357
+ "releaseMs",
358
+ "filterCutoff",
359
+ "resonance",
360
+ "delaySend",
361
+ "reverbSend"
362
+ ],
363
+ "properties": {
364
+ "track": {
365
+ "enum": [
366
+ "kick",
367
+ "snare",
368
+ "closed_hat",
369
+ "open_hat",
370
+ "percussion",
371
+ "bass",
372
+ "chords",
373
+ "pad",
374
+ "lead",
375
+ "arp",
376
+ "fx"
377
+ ]
378
+ },
379
+ "wave": {
380
+ "enum": [
381
+ "sine",
382
+ "triangle",
383
+ "saw",
384
+ "square",
385
+ "pulse",
386
+ "noise"
387
+ ]
388
+ },
389
+ "gain": {
390
+ "type": "number",
391
+ "minimum": 0,
392
+ "maximum": 2
393
+ },
394
+ "pan": {
395
+ "type": "number",
396
+ "minimum": -1,
397
+ "maximum": 1
398
+ },
399
+ "attackMs": {
400
+ "type": "number",
401
+ "minimum": 0,
402
+ "maximum": 10000
403
+ },
404
+ "decayMs": {
405
+ "type": "number",
406
+ "minimum": 0,
407
+ "maximum": 10000
408
+ },
409
+ "sustain": {
410
+ "type": "number",
411
+ "minimum": 0,
412
+ "maximum": 1
413
+ },
414
+ "releaseMs": {
415
+ "type": "number",
416
+ "minimum": 0,
417
+ "maximum": 10000
418
+ },
419
+ "filterCutoff": {
420
+ "type": "number",
421
+ "minimum": 20,
422
+ "maximum": 20000
423
+ },
424
+ "resonance": {
425
+ "type": "number",
426
+ "minimum": 0,
427
+ "maximum": 1
428
+ },
429
+ "delaySend": {
430
+ "type": "number",
431
+ "minimum": 0,
432
+ "maximum": 1
433
+ },
434
+ "reverbSend": {
435
+ "type": "number",
436
+ "minimum": 0,
437
+ "maximum": 1
438
+ },
439
+ "detuneCents": {
440
+ "type": "number",
441
+ "minimum": 0,
442
+ "maximum": 50
443
+ },
444
+ "filterEnvOctaves": {
445
+ "type": "number",
446
+ "minimum": 0,
447
+ "maximum": 6
448
+ },
449
+ "filterEnvDecayMs": {
450
+ "type": "number",
451
+ "minimum": 1,
452
+ "maximum": 10000
453
+ },
454
+ "lfoRate": {
455
+ "type": "number",
456
+ "minimum": 0,
457
+ "maximum": 8
458
+ },
459
+ "lfoDepth": {
460
+ "type": "number",
461
+ "minimum": 0,
462
+ "maximum": 4
463
+ },
464
+ "width": {
465
+ "type": "number",
466
+ "minimum": 0,
467
+ "maximum": 1
468
+ },
469
+ "duck": {
470
+ "type": "number",
471
+ "minimum": 0,
472
+ "maximum": 1
473
+ }
474
+ },
475
+ "additionalProperties": false
476
+ }
477
+ },
362
478
  "mixer": {
363
479
  "type": "object",
364
480
  "required": [
481
+ "tracks",
365
482
  "masterGain",
366
483
  "limiterDrive",
367
484
  "delayFeedback",
368
- "reverbMix",
369
- "tracks"
485
+ "reverbMix"
370
486
  ],
371
487
  "properties": {
372
- "masterGain": {
373
- "$ref": "#/$defs/gain"
374
- },
375
- "limiterDrive": {
376
- "$ref": "#/$defs/gain"
377
- },
378
- "delayFeedback": {
379
- "$ref": "#/$defs/unit"
380
- },
381
- "reverbMix": {
382
- "$ref": "#/$defs/unit"
383
- },
384
488
  "tracks": {
385
489
  "type": "array",
386
490
  "minItems": 11,
@@ -394,68 +498,53 @@
394
498
  ],
395
499
  "properties": {
396
500
  "track": {
397
- "$ref": "#/$defs/trackId"
501
+ "enum": [
502
+ "kick",
503
+ "snare",
504
+ "closed_hat",
505
+ "open_hat",
506
+ "percussion",
507
+ "bass",
508
+ "chords",
509
+ "pad",
510
+ "lead",
511
+ "arp",
512
+ "fx"
513
+ ]
398
514
  },
399
515
  "gain": {
400
- "$ref": "#/$defs/gain"
516
+ "type": "number",
517
+ "minimum": 0,
518
+ "maximum": 2
401
519
  },
402
520
  "pan": {
403
- "$ref": "#/$defs/pan"
521
+ "type": "number",
522
+ "minimum": -1,
523
+ "maximum": 1
404
524
  }
405
525
  },
406
526
  "additionalProperties": false
407
527
  }
408
- }
409
- },
410
- "additionalProperties": false
411
- },
412
- "limits": {
413
- "type": "object",
414
- "required": [
415
- "minSampleRate",
416
- "maxSampleRate",
417
- "minBpm",
418
- "maxBpm",
419
- "maxTracks",
420
- "maxVoices",
421
- "maxBarsQueued",
422
- "maxEventsPerBlock"
423
- ],
424
- "properties": {
425
- "minSampleRate": {
426
- "type": "integer",
427
- "minimum": 22050
428
528
  },
429
- "maxSampleRate": {
430
- "type": "integer",
431
- "maximum": 96000
432
- },
433
- "minBpm": {
529
+ "masterGain": {
434
530
  "type": "number",
435
- "minimum": 40
531
+ "minimum": 0,
532
+ "maximum": 2
436
533
  },
437
- "maxBpm": {
534
+ "limiterDrive": {
438
535
  "type": "number",
439
- "maximum": 240
536
+ "minimum": 0,
537
+ "maximum": 2
440
538
  },
441
- "maxTracks": {
442
- "type": "integer",
443
- "const": 11
444
- },
445
- "maxVoices": {
446
- "type": "integer",
447
- "minimum": 1,
448
- "maximum": 64
449
- },
450
- "maxBarsQueued": {
451
- "type": "integer",
452
- "minimum": 1,
453
- "maximum": 64
539
+ "delayFeedback": {
540
+ "type": "number",
541
+ "minimum": 0,
542
+ "maximum": 1
454
543
  },
455
- "maxEventsPerBlock": {
456
- "type": "integer",
457
- "minimum": 1,
458
- "maximum": 512
544
+ "reverbMix": {
545
+ "type": "number",
546
+ "minimum": 0,
547
+ "maximum": 1
459
548
  }
460
549
  },
461
550
  "additionalProperties": false