@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.
- package/blocks/ATL_DEVELOPER_REFERENCE.md +156 -156
- package/blocks/control/constant.atl +36 -36
- package/blocks/control/entropy_lfo.atl +74 -74
- package/blocks/control/envelope.atl +120 -120
- package/blocks/control/invert.atl +33 -33
- package/blocks/control/pot.atl +149 -149
- package/blocks/control/power.atl +76 -76
- package/blocks/control/ramp_lfo.atl +122 -122
- package/blocks/control/scale_offset.atl +84 -84
- package/blocks/control/sincos_lfo.atl +126 -126
- package/blocks/control/smoother.atl +48 -48
- package/blocks/control/tremolizer.atl +54 -54
- package/blocks/effects/delay/micro_stutter.atl +77 -77
- package/blocks/effects/delay/mn3011.atl +280 -280
- package/blocks/effects/delay/simple_delay.atl +96 -96
- package/blocks/effects/delay/triple_tap_delay.atl +176 -176
- package/blocks/effects/lo-fi/bit_mangler.atl +74 -74
- package/blocks/effects/lo-fi/chiptune.atl +311 -311
- package/blocks/effects/lo-fi/tape_degrade.atl +181 -181
- package/blocks/effects/modulation/chorus.atl +141 -141
- package/blocks/effects/modulation/chorus_4voice.atl +188 -188
- package/blocks/effects/modulation/flanger.atl +184 -184
- package/blocks/effects/modulation/harmonic_trem.atl +129 -129
- package/blocks/effects/modulation/phaser.atl +299 -299
- package/blocks/effects/pitch/octave_up_down.atl +80 -80
- package/blocks/effects/pitch/pitch_offset.atl +149 -149
- package/blocks/effects/pitch/pitch_offset_dual.atl +197 -197
- package/blocks/effects/pitch/pitch_shift.atl +115 -115
- package/blocks/effects/pitch/sub_octave.atl +100 -100
- package/blocks/effects/reverb/ducking_reverb.atl +145 -145
- package/blocks/effects/reverb/min_reverb.atl +132 -132
- package/blocks/effects/reverb/plate_reverb.atl +344 -344
- package/blocks/effects/reverb/room_reverb.atl +293 -293
- package/blocks/effects/reverb/smear.atl +90 -90
- package/blocks/effects/reverb/spring_reverb.atl +353 -353
- package/blocks/filter/1p_high_pass.atl +62 -62
- package/blocks/filter/1p_low_pass.atl +58 -58
- package/blocks/filter/auto_wah.atl +207 -207
- package/blocks/filter/bbd_loss.atl +79 -79
- package/blocks/filter/shelving_high_pass.atl +76 -76
- package/blocks/filter/shelving_low_pass.atl +76 -76
- package/blocks/filter/svf_2p.atl +116 -116
- package/blocks/gain_mix/crossfade.atl +93 -93
- package/blocks/gain_mix/crossfade2.atl +86 -86
- package/blocks/gain_mix/crossfade3.atl +71 -71
- package/blocks/gain_mix/gainboost.atl +54 -54
- package/blocks/gain_mix/mixer2.atl +76 -76
- package/blocks/gain_mix/mixer3.atl +109 -109
- package/blocks/gain_mix/mixer4.atl +151 -151
- package/blocks/gain_mix/volume.atl +50 -50
- package/blocks/io/adc.atl +53 -53
- package/blocks/io/dac.atl +61 -61
- package/blocks/other/stickynote.atl +24 -24
- package/blocks/other/tone_gen_adjustable.atl +137 -137
- package/blocks/other/tone_gen_fixed.atl +109 -109
- package/dist/blockDiagram/builtinBlocks.js +107 -107
- package/dist/blockDiagram/builtinBlocks.js.map +1 -1
- package/dist/blockDiagram/compiler/BlockTemplate.d.ts.map +1 -1
- package/dist/blockDiagram/compiler/BlockTemplate.js +18 -0
- package/dist/blockDiagram/compiler/BlockTemplate.js.map +1 -1
- package/dist/spnbank/index.d.ts +49 -7
- package/dist/spnbank/index.d.ts.map +1 -1
- package/dist/spnbank/index.js +99 -15
- package/dist/spnbank/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,188 +1,188 @@
|
|
|
1
|
-
---
|
|
2
|
-
{
|
|
3
|
-
"type": "effects.modulation.chorus4voice",
|
|
4
|
-
"category": "Effects",
|
|
5
|
-
"subcategory": "Modulation",
|
|
6
|
-
"name": "4-Voice Chorus",
|
|
7
|
-
"description": "Four-voice chorus with independent outputs",
|
|
8
|
-
"color": "#24F2F2",
|
|
9
|
-
"labelTemplate": "LFO ${param.lfoSel}",
|
|
10
|
-
"inputs": [
|
|
11
|
-
{ "id": "input", "name": "Input", "type": "audio", "required": true },
|
|
12
|
-
{ "id": "rateIn", "name": "LFO Rate", "type": "control", "required": false },
|
|
13
|
-
{ "id": "widthIn", "name": "LFO Width", "type": "control", "required": false }
|
|
14
|
-
],
|
|
15
|
-
"outputs": [
|
|
16
|
-
{ "id": "voice1", "name": "Voice 1", "type": "audio" },
|
|
17
|
-
{ "id": "voice2", "name": "Voice 2", "type": "audio" },
|
|
18
|
-
{ "id": "voice3", "name": "Voice 3", "type": "audio" },
|
|
19
|
-
{ "id": "voice4", "name": "Voice 4", "type": "audio" }
|
|
20
|
-
],
|
|
21
|
-
"parameters": [
|
|
22
|
-
{
|
|
23
|
-
"id": "gain1",
|
|
24
|
-
"name": "Input Gain",
|
|
25
|
-
"type": "number",
|
|
26
|
-
"min": -24,
|
|
27
|
-
"max": 0,
|
|
28
|
-
"default": -6,
|
|
29
|
-
"conversion": "DBLEVEL"
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
"id": "delayLength",
|
|
33
|
-
"name": "Chorus Time",
|
|
34
|
-
"type": "number",
|
|
35
|
-
"default": 15,
|
|
36
|
-
"min": 0,
|
|
37
|
-
"max": 50,
|
|
38
|
-
"conversion": "MS_TO_SAMPLES",
|
|
39
|
-
"description": "Delay time in ms.",
|
|
40
|
-
"step": 1
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
"id": "tap1Center",
|
|
44
|
-
"name": "Tap 1 Center",
|
|
45
|
-
"type": "number",
|
|
46
|
-
"default": 0.25,
|
|
47
|
-
"min": 0.0,
|
|
48
|
-
"max": 1.0,
|
|
49
|
-
"step": 0.001
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
"id": "tap2Center",
|
|
53
|
-
"name": "Tap 2 Center",
|
|
54
|
-
"type": "number",
|
|
55
|
-
"default": 0.33,
|
|
56
|
-
"min": 0.0,
|
|
57
|
-
"max": 1.0,
|
|
58
|
-
"step": 0.001
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
"id": "tap3Center",
|
|
62
|
-
"name": "Tap 3 Center",
|
|
63
|
-
"type": "number",
|
|
64
|
-
"default": 0.63,
|
|
65
|
-
"min": 0.0,
|
|
66
|
-
"max": 1.0,
|
|
67
|
-
"step": 0.001
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
"id": "tap4Center",
|
|
71
|
-
"name": "Tap 4 Center",
|
|
72
|
-
"type": "number",
|
|
73
|
-
"default": 0.75,
|
|
74
|
-
"min": 0.0,
|
|
75
|
-
"max": 1.0,
|
|
76
|
-
"step": 0.001
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
"id": "rate",
|
|
80
|
-
"name": "LFO Rate (Hz)",
|
|
81
|
-
"type": "number",
|
|
82
|
-
"default": 1.0,
|
|
83
|
-
"min": 0.05,
|
|
84
|
-
"max": 10,
|
|
85
|
-
"conversion": "HZ_TO_LFO_RATE",
|
|
86
|
-
"description": "Frequency of the chorus modulation in Hz.",
|
|
87
|
-
"step": 0.01
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
"id": "width",
|
|
91
|
-
"name": "LFO Width (ms)",
|
|
92
|
-
"type": "number",
|
|
93
|
-
"default": 1,
|
|
94
|
-
"min": 0,
|
|
95
|
-
"max": 20,
|
|
96
|
-
"conversion": "MS_TO_LFO_RANGE",
|
|
97
|
-
"description": "The width of modulation in ms.",
|
|
98
|
-
"step": 0.1
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
"id": "lfoSel",
|
|
102
|
-
"name": "LFO Select",
|
|
103
|
-
"type": "select",
|
|
104
|
-
"default": 0,
|
|
105
|
-
"options": [
|
|
106
|
-
{ "label": "LFO 0", "value": 0 },
|
|
107
|
-
{ "label": "LFO 1", "value": 1 }
|
|
108
|
-
]
|
|
109
|
-
}
|
|
110
|
-
],
|
|
111
|
-
"memories": [
|
|
112
|
-
{ "id": "delayLine", "size": "${delayLength}" }
|
|
113
|
-
]
|
|
114
|
-
}
|
|
115
|
-
---
|
|
116
|
-
@section header
|
|
117
|
-
; Calculations for Centers:
|
|
118
|
-
EQU tap1 (0.9 * ${tap1Center} * ${delayLength} + 0.05 * ${delayLength})
|
|
119
|
-
EQU tap2 (0.9 * ${tap2Center} * ${delayLength} + 0.05 * ${delayLength})
|
|
120
|
-
EQU tap3 (0.9 * ${tap3Center} * ${delayLength} + 0.05 * ${delayLength})
|
|
121
|
-
EQU tap4 (0.9 * ${tap4Center} * ${delayLength} + 0.05 * ${delayLength})
|
|
122
|
-
|
|
123
|
-
@if isequalto lfoSel 0
|
|
124
|
-
@equals lfoNum SIN0
|
|
125
|
-
@equals lfoRateReg SIN0_RATE
|
|
126
|
-
@equals lfoRange SIN0_RANGE
|
|
127
|
-
@else
|
|
128
|
-
@equals lfoNum SIN1
|
|
129
|
-
@equals lfoRateReg SIN1_RATE
|
|
130
|
-
@equals lfoRange SIN1_RANGE
|
|
131
|
-
@endif
|
|
132
|
-
|
|
133
|
-
@section init
|
|
134
|
-
; Initialize LFO
|
|
135
|
-
skp run, done_4voice_lfo
|
|
136
|
-
wlds ${lfoNum}, ${rate}, ${width}
|
|
137
|
-
done_4voice_lfo:
|
|
138
|
-
|
|
139
|
-
@section main
|
|
140
|
-
@if pinConnected(input)
|
|
141
|
-
|
|
142
|
-
; Validate LFO Rate
|
|
143
|
-
@if pinConnected(rateIn)
|
|
144
|
-
rdax ${input.rateIn}, (${rate} / 511.0)
|
|
145
|
-
wrax ${lfoRateReg}, 0.0
|
|
146
|
-
@endif
|
|
147
|
-
|
|
148
|
-
; Validate LFO Width
|
|
149
|
-
@if pinConnected(widthIn)
|
|
150
|
-
rdax ${input.widthIn}, (${width} / 16384.0)
|
|
151
|
-
wrax ${lfoRange}, 0.0
|
|
152
|
-
@endif
|
|
153
|
-
|
|
154
|
-
; Write input to delay line
|
|
155
|
-
rdax ${input.input}, ${gain1}
|
|
156
|
-
wra ${mem.delayLine}, 0.0
|
|
157
|
-
|
|
158
|
-
; Voice 1: SIN, REG|COMPC
|
|
159
|
-
@if pinConnected(voice1)
|
|
160
|
-
cho rda, ${lfoNum}, SIN|REG|COMPC, ${mem.delayLine} + tap1
|
|
161
|
-
cho rda, ${lfoNum}, SIN, ${mem.delayLine} + tap1 + 1
|
|
162
|
-
wrax ${output.voice1}, 0.0
|
|
163
|
-
@endif
|
|
164
|
-
|
|
165
|
-
; Voice 2: SIN, REG|COMPA
|
|
166
|
-
@if pinConnected(voice2)
|
|
167
|
-
cho rda, ${lfoNum}, SIN|REG|COMPA, ${mem.delayLine} + tap2
|
|
168
|
-
cho rda, ${lfoNum}, SIN|COMPC|COMPA, ${mem.delayLine} + tap2 + 1
|
|
169
|
-
wrax ${output.voice2}, 0.0
|
|
170
|
-
@endif
|
|
171
|
-
|
|
172
|
-
; Voice 3: COS, REG|COMPC
|
|
173
|
-
@if pinConnected(voice3)
|
|
174
|
-
cho rda, ${lfoNum}, COS|REG|COMPC, ${mem.delayLine} + tap3
|
|
175
|
-
cho rda, ${lfoNum}, COS, ${mem.delayLine} + tap3 + 1
|
|
176
|
-
wrax ${output.voice3}, 0.0
|
|
177
|
-
@endif
|
|
178
|
-
|
|
179
|
-
; Voice 4: COS, REG|COMPA
|
|
180
|
-
@if pinConnected(voice4)
|
|
181
|
-
cho rda, ${lfoNum}, COS|REG|COMPA, ${mem.delayLine} + tap4
|
|
182
|
-
cho rda, ${lfoNum}, COS|COMPC|COMPA, ${mem.delayLine} + tap4 + 1
|
|
183
|
-
wrax ${output.voice4}, 0.0
|
|
184
|
-
@endif
|
|
185
|
-
|
|
186
|
-
@else
|
|
187
|
-
; 4-Voice Chorus (no input connected)
|
|
188
|
-
@endif
|
|
1
|
+
---
|
|
2
|
+
{
|
|
3
|
+
"type": "effects.modulation.chorus4voice",
|
|
4
|
+
"category": "Effects",
|
|
5
|
+
"subcategory": "Modulation",
|
|
6
|
+
"name": "4-Voice Chorus",
|
|
7
|
+
"description": "Four-voice chorus with independent outputs",
|
|
8
|
+
"color": "#24F2F2",
|
|
9
|
+
"labelTemplate": "LFO ${param.lfoSel}",
|
|
10
|
+
"inputs": [
|
|
11
|
+
{ "id": "input", "name": "Input", "type": "audio", "required": true },
|
|
12
|
+
{ "id": "rateIn", "name": "LFO Rate", "type": "control", "required": false },
|
|
13
|
+
{ "id": "widthIn", "name": "LFO Width", "type": "control", "required": false }
|
|
14
|
+
],
|
|
15
|
+
"outputs": [
|
|
16
|
+
{ "id": "voice1", "name": "Voice 1", "type": "audio" },
|
|
17
|
+
{ "id": "voice2", "name": "Voice 2", "type": "audio" },
|
|
18
|
+
{ "id": "voice3", "name": "Voice 3", "type": "audio" },
|
|
19
|
+
{ "id": "voice4", "name": "Voice 4", "type": "audio" }
|
|
20
|
+
],
|
|
21
|
+
"parameters": [
|
|
22
|
+
{
|
|
23
|
+
"id": "gain1",
|
|
24
|
+
"name": "Input Gain",
|
|
25
|
+
"type": "number",
|
|
26
|
+
"min": -24,
|
|
27
|
+
"max": 0,
|
|
28
|
+
"default": -6,
|
|
29
|
+
"conversion": "DBLEVEL"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"id": "delayLength",
|
|
33
|
+
"name": "Chorus Time",
|
|
34
|
+
"type": "number",
|
|
35
|
+
"default": 15,
|
|
36
|
+
"min": 0,
|
|
37
|
+
"max": 50,
|
|
38
|
+
"conversion": "MS_TO_SAMPLES",
|
|
39
|
+
"description": "Delay time in ms.",
|
|
40
|
+
"step": 1
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"id": "tap1Center",
|
|
44
|
+
"name": "Tap 1 Center",
|
|
45
|
+
"type": "number",
|
|
46
|
+
"default": 0.25,
|
|
47
|
+
"min": 0.0,
|
|
48
|
+
"max": 1.0,
|
|
49
|
+
"step": 0.001
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "tap2Center",
|
|
53
|
+
"name": "Tap 2 Center",
|
|
54
|
+
"type": "number",
|
|
55
|
+
"default": 0.33,
|
|
56
|
+
"min": 0.0,
|
|
57
|
+
"max": 1.0,
|
|
58
|
+
"step": 0.001
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"id": "tap3Center",
|
|
62
|
+
"name": "Tap 3 Center",
|
|
63
|
+
"type": "number",
|
|
64
|
+
"default": 0.63,
|
|
65
|
+
"min": 0.0,
|
|
66
|
+
"max": 1.0,
|
|
67
|
+
"step": 0.001
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"id": "tap4Center",
|
|
71
|
+
"name": "Tap 4 Center",
|
|
72
|
+
"type": "number",
|
|
73
|
+
"default": 0.75,
|
|
74
|
+
"min": 0.0,
|
|
75
|
+
"max": 1.0,
|
|
76
|
+
"step": 0.001
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"id": "rate",
|
|
80
|
+
"name": "LFO Rate (Hz)",
|
|
81
|
+
"type": "number",
|
|
82
|
+
"default": 1.0,
|
|
83
|
+
"min": 0.05,
|
|
84
|
+
"max": 10,
|
|
85
|
+
"conversion": "HZ_TO_LFO_RATE",
|
|
86
|
+
"description": "Frequency of the chorus modulation in Hz.",
|
|
87
|
+
"step": 0.01
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"id": "width",
|
|
91
|
+
"name": "LFO Width (ms)",
|
|
92
|
+
"type": "number",
|
|
93
|
+
"default": 1,
|
|
94
|
+
"min": 0,
|
|
95
|
+
"max": 20,
|
|
96
|
+
"conversion": "MS_TO_LFO_RANGE",
|
|
97
|
+
"description": "The width of modulation in ms.",
|
|
98
|
+
"step": 0.1
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"id": "lfoSel",
|
|
102
|
+
"name": "LFO Select",
|
|
103
|
+
"type": "select",
|
|
104
|
+
"default": 0,
|
|
105
|
+
"options": [
|
|
106
|
+
{ "label": "LFO 0", "value": 0 },
|
|
107
|
+
{ "label": "LFO 1", "value": 1 }
|
|
108
|
+
]
|
|
109
|
+
}
|
|
110
|
+
],
|
|
111
|
+
"memories": [
|
|
112
|
+
{ "id": "delayLine", "size": "${delayLength}" }
|
|
113
|
+
]
|
|
114
|
+
}
|
|
115
|
+
---
|
|
116
|
+
@section header
|
|
117
|
+
; Calculations for Centers:
|
|
118
|
+
EQU tap1 (0.9 * ${tap1Center} * ${delayLength} + 0.05 * ${delayLength})
|
|
119
|
+
EQU tap2 (0.9 * ${tap2Center} * ${delayLength} + 0.05 * ${delayLength})
|
|
120
|
+
EQU tap3 (0.9 * ${tap3Center} * ${delayLength} + 0.05 * ${delayLength})
|
|
121
|
+
EQU tap4 (0.9 * ${tap4Center} * ${delayLength} + 0.05 * ${delayLength})
|
|
122
|
+
|
|
123
|
+
@if isequalto lfoSel 0
|
|
124
|
+
@equals lfoNum SIN0
|
|
125
|
+
@equals lfoRateReg SIN0_RATE
|
|
126
|
+
@equals lfoRange SIN0_RANGE
|
|
127
|
+
@else
|
|
128
|
+
@equals lfoNum SIN1
|
|
129
|
+
@equals lfoRateReg SIN1_RATE
|
|
130
|
+
@equals lfoRange SIN1_RANGE
|
|
131
|
+
@endif
|
|
132
|
+
|
|
133
|
+
@section init
|
|
134
|
+
; Initialize LFO
|
|
135
|
+
skp run, done_4voice_lfo
|
|
136
|
+
wlds ${lfoNum}, ${rate}, ${width}
|
|
137
|
+
done_4voice_lfo:
|
|
138
|
+
|
|
139
|
+
@section main
|
|
140
|
+
@if pinConnected(input)
|
|
141
|
+
|
|
142
|
+
; Validate LFO Rate
|
|
143
|
+
@if pinConnected(rateIn)
|
|
144
|
+
rdax ${input.rateIn}, (${rate} / 511.0)
|
|
145
|
+
wrax ${lfoRateReg}, 0.0
|
|
146
|
+
@endif
|
|
147
|
+
|
|
148
|
+
; Validate LFO Width
|
|
149
|
+
@if pinConnected(widthIn)
|
|
150
|
+
rdax ${input.widthIn}, (${width} / 16384.0)
|
|
151
|
+
wrax ${lfoRange}, 0.0
|
|
152
|
+
@endif
|
|
153
|
+
|
|
154
|
+
; Write input to delay line
|
|
155
|
+
rdax ${input.input}, ${gain1}
|
|
156
|
+
wra ${mem.delayLine}, 0.0
|
|
157
|
+
|
|
158
|
+
; Voice 1: SIN, REG|COMPC
|
|
159
|
+
@if pinConnected(voice1)
|
|
160
|
+
cho rda, ${lfoNum}, SIN|REG|COMPC, ${mem.delayLine} + tap1
|
|
161
|
+
cho rda, ${lfoNum}, SIN, ${mem.delayLine} + tap1 + 1
|
|
162
|
+
wrax ${output.voice1}, 0.0
|
|
163
|
+
@endif
|
|
164
|
+
|
|
165
|
+
; Voice 2: SIN, REG|COMPA
|
|
166
|
+
@if pinConnected(voice2)
|
|
167
|
+
cho rda, ${lfoNum}, SIN|REG|COMPA, ${mem.delayLine} + tap2
|
|
168
|
+
cho rda, ${lfoNum}, SIN|COMPC|COMPA, ${mem.delayLine} + tap2 + 1
|
|
169
|
+
wrax ${output.voice2}, 0.0
|
|
170
|
+
@endif
|
|
171
|
+
|
|
172
|
+
; Voice 3: COS, REG|COMPC
|
|
173
|
+
@if pinConnected(voice3)
|
|
174
|
+
cho rda, ${lfoNum}, COS|REG|COMPC, ${mem.delayLine} + tap3
|
|
175
|
+
cho rda, ${lfoNum}, COS, ${mem.delayLine} + tap3 + 1
|
|
176
|
+
wrax ${output.voice3}, 0.0
|
|
177
|
+
@endif
|
|
178
|
+
|
|
179
|
+
; Voice 4: COS, REG|COMPA
|
|
180
|
+
@if pinConnected(voice4)
|
|
181
|
+
cho rda, ${lfoNum}, COS|REG|COMPA, ${mem.delayLine} + tap4
|
|
182
|
+
cho rda, ${lfoNum}, COS|COMPC|COMPA, ${mem.delayLine} + tap4 + 1
|
|
183
|
+
wrax ${output.voice4}, 0.0
|
|
184
|
+
@endif
|
|
185
|
+
|
|
186
|
+
@else
|
|
187
|
+
; 4-Voice Chorus (no input connected)
|
|
188
|
+
@endif
|