@audiofab-io/fv1-core 0.5.0 → 0.6.1

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 (65) hide show
  1. package/blocks/ATL_DEVELOPER_REFERENCE.md +156 -156
  2. package/blocks/control/constant.atl +36 -36
  3. package/blocks/control/entropy_lfo.atl +74 -74
  4. package/blocks/control/envelope.atl +120 -120
  5. package/blocks/control/invert.atl +33 -33
  6. package/blocks/control/pot.atl +149 -149
  7. package/blocks/control/power.atl +76 -76
  8. package/blocks/control/ramp_lfo.atl +122 -122
  9. package/blocks/control/scale_offset.atl +84 -84
  10. package/blocks/control/sincos_lfo.atl +126 -126
  11. package/blocks/control/smoother.atl +48 -48
  12. package/blocks/control/tremolizer.atl +54 -54
  13. package/blocks/effects/delay/micro_stutter.atl +77 -77
  14. package/blocks/effects/delay/mn3011.atl +280 -280
  15. package/blocks/effects/delay/simple_delay.atl +96 -96
  16. package/blocks/effects/delay/triple_tap_delay.atl +176 -176
  17. package/blocks/effects/lo-fi/bit_mangler.atl +74 -74
  18. package/blocks/effects/lo-fi/chiptune.atl +311 -311
  19. package/blocks/effects/lo-fi/tape_degrade.atl +181 -181
  20. package/blocks/effects/modulation/chorus.atl +141 -141
  21. package/blocks/effects/modulation/chorus_4voice.atl +188 -188
  22. package/blocks/effects/modulation/flanger.atl +184 -184
  23. package/blocks/effects/modulation/harmonic_trem.atl +129 -129
  24. package/blocks/effects/modulation/phaser.atl +299 -299
  25. package/blocks/effects/pitch/octave_up_down.atl +80 -80
  26. package/blocks/effects/pitch/pitch_offset.atl +149 -149
  27. package/blocks/effects/pitch/pitch_offset_dual.atl +197 -197
  28. package/blocks/effects/pitch/pitch_shift.atl +115 -115
  29. package/blocks/effects/pitch/sub_octave.atl +100 -100
  30. package/blocks/effects/reverb/ducking_reverb.atl +145 -145
  31. package/blocks/effects/reverb/min_reverb.atl +132 -132
  32. package/blocks/effects/reverb/plate_reverb.atl +344 -344
  33. package/blocks/effects/reverb/room_reverb.atl +293 -293
  34. package/blocks/effects/reverb/smear.atl +90 -90
  35. package/blocks/effects/reverb/spring_reverb.atl +353 -353
  36. package/blocks/filter/1p_high_pass.atl +62 -62
  37. package/blocks/filter/1p_low_pass.atl +58 -58
  38. package/blocks/filter/auto_wah.atl +207 -207
  39. package/blocks/filter/bbd_loss.atl +79 -79
  40. package/blocks/filter/shelving_high_pass.atl +76 -76
  41. package/blocks/filter/shelving_low_pass.atl +76 -76
  42. package/blocks/filter/svf_2p.atl +116 -116
  43. package/blocks/gain_mix/crossfade.atl +93 -93
  44. package/blocks/gain_mix/crossfade2.atl +86 -86
  45. package/blocks/gain_mix/crossfade3.atl +71 -71
  46. package/blocks/gain_mix/gainboost.atl +54 -54
  47. package/blocks/gain_mix/mixer2.atl +76 -76
  48. package/blocks/gain_mix/mixer3.atl +109 -109
  49. package/blocks/gain_mix/mixer4.atl +151 -151
  50. package/blocks/gain_mix/volume.atl +50 -50
  51. package/blocks/io/adc.atl +53 -53
  52. package/blocks/io/dac.atl +61 -61
  53. package/blocks/other/stickynote.atl +24 -24
  54. package/blocks/other/tone_gen_adjustable.atl +137 -137
  55. package/blocks/other/tone_gen_fixed.atl +109 -109
  56. package/dist/blockDiagram/builtinBlocks.js +107 -107
  57. package/dist/blockDiagram/builtinBlocks.js.map +1 -1
  58. package/dist/blockDiagram/compiler/BlockTemplate.d.ts.map +1 -1
  59. package/dist/blockDiagram/compiler/BlockTemplate.js +18 -0
  60. package/dist/blockDiagram/compiler/BlockTemplate.js.map +1 -1
  61. package/dist/spnbank/index.d.ts +49 -7
  62. package/dist/spnbank/index.d.ts.map +1 -1
  63. package/dist/spnbank/index.js +99 -15
  64. package/dist/spnbank/index.js.map +1 -1
  65. package/package.json +2 -2
@@ -1,132 +1,132 @@
1
- ---
2
- {
3
- "type": "effects.reverb.min",
4
- "name": "Simple Reverb",
5
- "category": "Effects",
6
- "subcategory": "Reverb",
7
- "description": "Minimal 100% wet reverb with 4 input allpass and 2 delay loops. Reverb time can be controlled via parameter or external CV.",
8
- "color": "#7100FC",
9
- "width": 180,
10
- "inputs": [
11
- {
12
- "id": "input",
13
- "name": "Audio Input",
14
- "type": "audio",
15
- "required": true
16
- },
17
- {
18
- "id": "reverb_time",
19
- "name": "Reverb Time",
20
- "type": "control",
21
- "required": false,
22
- "parameter": "reverbTime"
23
- }
24
- ],
25
- "outputs": [
26
- {
27
- "id": "output",
28
- "name": "Audio Output",
29
- "type": "audio"
30
- }
31
- ],
32
- "parameters": [
33
- {
34
- "id": "reverbTime",
35
- "name": "Reverb Time",
36
- "type": "number",
37
- "default": 0.5,
38
- "min": 0,
39
- "max": 0.99,
40
- "description": "Feedback coefficient for the reverb tail (0.0 to 0.99). Controls the decay length.",
41
- "step": 0.01
42
- }
43
- ],
44
- "memories": [
45
- {
46
- "id": "api1",
47
- "size": 122
48
- },
49
- {
50
- "id": "api2",
51
- "size": 303
52
- },
53
- {
54
- "id": "api3",
55
- "size": 553
56
- },
57
- {
58
- "id": "api4",
59
- "size": 922
60
- },
61
- {
62
- "id": "ap1",
63
- "size": 3823
64
- },
65
- {
66
- "id": "del1",
67
- "size": 6512
68
- },
69
- {
70
- "id": "ap2",
71
- "size": 4732
72
- },
73
- {
74
- "id": "del2",
75
- "size": 5016
76
- }
77
- ],
78
- "registers": [
79
- "apout",
80
- "dry"
81
- ]
82
- }
83
- ---
84
- ; Minimal 100% wet reverb
85
- @equals kap 0.325
86
-
87
- ; Store dry signal
88
- rdax ${input.input}, 1.0
89
- wrax ${reg.dry}, 0.0
90
-
91
- ; Input with scaling to prevent clipping (wet path)
92
- rdax ${reg.dry}, 0.25
93
-
94
- ; 4 series input allpass filters
95
- rda ${mem.api1}#, ${kap}
96
- wrap ${mem.api1}, -1.0
97
- rda ${mem.api2}#, ${kap}
98
- wrap ${mem.api2}, -1.0
99
- rda ${mem.api3}#, ${kap}
100
- wrap ${mem.api3}, -1.0
101
- rda ${mem.api4}#, ${kap}
102
- wrap ${mem.api4}, -1.0
103
-
104
- ; Save allpass output for second loop
105
- wrax ${reg.apout}, 1.0
106
-
107
- ; First loop delay
108
- rda ${mem.del2}#, 1.0
109
- @mulcv reverb_time
110
-
111
- ; Loop allpass 1
112
- rda ${mem.ap1}#, -${kap}
113
- wrap ${mem.ap1}, ${kap}
114
-
115
- ; Write to delay 1
116
- wra ${mem.del1}, 1.99
117
-
118
- ; Second loop delay
119
- rdax ${reg.apout}, 1.0
120
-
121
- rda ${mem.del1}#, 1.0
122
- @mulcv reverb_time
123
-
124
- ; Loop allpass 2
125
- rda ${mem.ap2}#, -${kap}
126
- wrap ${mem.ap2}, ${kap}
127
-
128
- ; Write to delay 2 and output
129
- wra ${mem.del2}, 1.99
130
-
131
- ; Export final wet signal (already at 0.25 scale)
132
- wrax ${output.output}, 0.0
1
+ ---
2
+ {
3
+ "type": "effects.reverb.min",
4
+ "name": "Simple Reverb",
5
+ "category": "Effects",
6
+ "subcategory": "Reverb",
7
+ "description": "Minimal 100% wet reverb with 4 input allpass and 2 delay loops. Reverb time can be controlled via parameter or external CV.",
8
+ "color": "#7100FC",
9
+ "width": 180,
10
+ "inputs": [
11
+ {
12
+ "id": "input",
13
+ "name": "Audio Input",
14
+ "type": "audio",
15
+ "required": true
16
+ },
17
+ {
18
+ "id": "reverb_time",
19
+ "name": "Reverb Time",
20
+ "type": "control",
21
+ "required": false,
22
+ "parameter": "reverbTime"
23
+ }
24
+ ],
25
+ "outputs": [
26
+ {
27
+ "id": "output",
28
+ "name": "Audio Output",
29
+ "type": "audio"
30
+ }
31
+ ],
32
+ "parameters": [
33
+ {
34
+ "id": "reverbTime",
35
+ "name": "Reverb Time",
36
+ "type": "number",
37
+ "default": 0.5,
38
+ "min": 0,
39
+ "max": 0.99,
40
+ "description": "Feedback coefficient for the reverb tail (0.0 to 0.99). Controls the decay length.",
41
+ "step": 0.01
42
+ }
43
+ ],
44
+ "memories": [
45
+ {
46
+ "id": "api1",
47
+ "size": 122
48
+ },
49
+ {
50
+ "id": "api2",
51
+ "size": 303
52
+ },
53
+ {
54
+ "id": "api3",
55
+ "size": 553
56
+ },
57
+ {
58
+ "id": "api4",
59
+ "size": 922
60
+ },
61
+ {
62
+ "id": "ap1",
63
+ "size": 3823
64
+ },
65
+ {
66
+ "id": "del1",
67
+ "size": 6512
68
+ },
69
+ {
70
+ "id": "ap2",
71
+ "size": 4732
72
+ },
73
+ {
74
+ "id": "del2",
75
+ "size": 5016
76
+ }
77
+ ],
78
+ "registers": [
79
+ "apout",
80
+ "dry"
81
+ ]
82
+ }
83
+ ---
84
+ ; Minimal 100% wet reverb
85
+ @equals kap 0.325
86
+
87
+ ; Store dry signal
88
+ rdax ${input.input}, 1.0
89
+ wrax ${reg.dry}, 0.0
90
+
91
+ ; Input with scaling to prevent clipping (wet path)
92
+ rdax ${reg.dry}, 0.25
93
+
94
+ ; 4 series input allpass filters
95
+ rda ${mem.api1}#, ${kap}
96
+ wrap ${mem.api1}, -1.0
97
+ rda ${mem.api2}#, ${kap}
98
+ wrap ${mem.api2}, -1.0
99
+ rda ${mem.api3}#, ${kap}
100
+ wrap ${mem.api3}, -1.0
101
+ rda ${mem.api4}#, ${kap}
102
+ wrap ${mem.api4}, -1.0
103
+
104
+ ; Save allpass output for second loop
105
+ wrax ${reg.apout}, 1.0
106
+
107
+ ; First loop delay
108
+ rda ${mem.del2}#, 1.0
109
+ @mulcv reverb_time
110
+
111
+ ; Loop allpass 1
112
+ rda ${mem.ap1}#, -${kap}
113
+ wrap ${mem.ap1}, ${kap}
114
+
115
+ ; Write to delay 1
116
+ wra ${mem.del1}, 1.99
117
+
118
+ ; Second loop delay
119
+ rdax ${reg.apout}, 1.0
120
+
121
+ rda ${mem.del1}#, 1.0
122
+ @mulcv reverb_time
123
+
124
+ ; Loop allpass 2
125
+ rda ${mem.ap2}#, -${kap}
126
+ wrap ${mem.ap2}, ${kap}
127
+
128
+ ; Write to delay 2 and output
129
+ wra ${mem.del2}, 1.99
130
+
131
+ ; Export final wet signal (already at 0.25 scale)
132
+ wrax ${output.output}, 0.0