@audiofab-io/fv1-core 0.6.1 → 0.6.2

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 (59) 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/simulator/FV1Simulator.js +1 -1
  59. package/package.json +1 -1
@@ -1,152 +1,152 @@
1
- ---
2
- {
3
- "type": "math.mixer4",
4
- "category": "Gain/Mixing",
5
- "name": "4:1 Mixer",
6
- "description": "Mixes 4 audio inputs with optional gain control",
7
- "inputs": [
8
- {
9
- "id": "input1",
10
- "name": "Input 1",
11
- "type": "audio"
12
- },
13
- {
14
- "id": "input2",
15
- "name": "Input 2",
16
- "type": "audio"
17
- },
18
- {
19
- "id": "input3",
20
- "name": "Input 3",
21
- "type": "audio"
22
- },
23
- {
24
- "id": "input4",
25
- "name": "Input 4",
26
- "type": "audio"
27
- },
28
- {
29
- "id": "level_1",
30
- "name": "Level 1",
31
- "type": "control"
32
- },
33
- {
34
- "id": "level_2",
35
- "name": "Level 2",
36
- "type": "control"
37
- },
38
- {
39
- "id": "level_3",
40
- "name": "Level 3",
41
- "type": "control"
42
- },
43
- {
44
- "id": "level_4",
45
- "name": "Level 4",
46
- "type": "control"
47
- }
48
- ],
49
- "outputs": [
50
- {
51
- "id": "output",
52
- "name": "Output",
53
- "type": "audio"
54
- }
55
- ],
56
- "parameters": [
57
- {
58
- "id": "gain1",
59
- "name": "Input Gain 1",
60
- "type": "number",
61
- "min": -18,
62
- "max": 0,
63
- "default": -6,
64
- "conversion": "DBLEVEL"
65
- },
66
- {
67
- "id": "gain2",
68
- "name": "Input Gain 2",
69
- "type": "number",
70
- "min": -18,
71
- "max": 0,
72
- "default": -6,
73
- "conversion": "DBLEVEL"
74
- },
75
- {
76
- "id": "gain3",
77
- "name": "Input Gain 3",
78
- "type": "number",
79
- "min": -18,
80
- "max": 0,
81
- "default": -6,
82
- "conversion": "DBLEVEL"
83
- },
84
- {
85
- "id": "gain4",
86
- "name": "Input Gain 4",
87
- "type": "number",
88
- "min": -18,
89
- "max": 0,
90
- "default": -6,
91
- "conversion": "DBLEVEL"
92
- }
93
- ],
94
- "color": "#2468f2"
95
- }
96
- ---
97
- @section header
98
- @comment "Generated from spincad source file Mixer_4_to_1.spincad"
99
-
100
- @section main
101
- ;REGISTERS
102
- // we dont read input 1 unless it's connected
103
- @if pinConnected(Input 1)
104
- rdax ${input.input1}, ${gain1} ;read input signal
105
- // if level 1 is connected we multiply by level 1
106
- @if pinConnected(Level 1)
107
- mulx ${input.level_1}
108
- @endif
109
- wrax ${output.output}, 0.0
110
- @endif
111
- @if pinConnected(Input 2)
112
- rdax ${input.input2}, ${gain2}
113
- @if pinConnected(Level 2)
114
- mulx ${input.level_2}
115
- @endif
116
- @if pinConnected(Input 1)
117
- rdax ${output.output}, 1.0
118
- @endif
119
- wrax ${output.output}, 0.0
120
- @endif
121
- @if pinConnected(Input 3)
122
- rdax ${input.input3}, ${gain3}
123
- @if pinConnected(Level 3)
124
- mulx ${input.level_3}
125
- @endif
126
- @if pinConnected(Input 1)
127
- rdax ${output.output}, 1.0
128
- @else
129
- @if pinConnected(Input 2)
130
- rdax ${output.output}, 1.0
131
- @endif
132
- @endif
133
- wrax ${output.output}, 0.0
134
- @endif
135
- @if pinConnected(Input 4)
136
- rdax ${input.input4}, ${gain4}
137
- @if pinConnected(Level 4)
138
- mulx ${input.level_4}
139
- @endif
140
- @if pinConnected(Input 1)
141
- rdax ${output.output}, 1.0
142
- @else
143
- @if pinConnected(Input 2)
144
- rdax ${output.output}, 1.0
145
- @else
146
- @if pinConnected(Input 3)
147
- rdax ${output.output}, 1.0
148
- @endif
149
- @endif
150
- @endif
151
- wrax ${output.output}, 0.0
1
+ ---
2
+ {
3
+ "type": "math.mixer4",
4
+ "category": "Gain/Mixing",
5
+ "name": "4:1 Mixer",
6
+ "description": "Mixes 4 audio inputs with optional gain control",
7
+ "inputs": [
8
+ {
9
+ "id": "input1",
10
+ "name": "Input 1",
11
+ "type": "audio"
12
+ },
13
+ {
14
+ "id": "input2",
15
+ "name": "Input 2",
16
+ "type": "audio"
17
+ },
18
+ {
19
+ "id": "input3",
20
+ "name": "Input 3",
21
+ "type": "audio"
22
+ },
23
+ {
24
+ "id": "input4",
25
+ "name": "Input 4",
26
+ "type": "audio"
27
+ },
28
+ {
29
+ "id": "level_1",
30
+ "name": "Level 1",
31
+ "type": "control"
32
+ },
33
+ {
34
+ "id": "level_2",
35
+ "name": "Level 2",
36
+ "type": "control"
37
+ },
38
+ {
39
+ "id": "level_3",
40
+ "name": "Level 3",
41
+ "type": "control"
42
+ },
43
+ {
44
+ "id": "level_4",
45
+ "name": "Level 4",
46
+ "type": "control"
47
+ }
48
+ ],
49
+ "outputs": [
50
+ {
51
+ "id": "output",
52
+ "name": "Output",
53
+ "type": "audio"
54
+ }
55
+ ],
56
+ "parameters": [
57
+ {
58
+ "id": "gain1",
59
+ "name": "Input Gain 1",
60
+ "type": "number",
61
+ "min": -18,
62
+ "max": 0,
63
+ "default": -6,
64
+ "conversion": "DBLEVEL"
65
+ },
66
+ {
67
+ "id": "gain2",
68
+ "name": "Input Gain 2",
69
+ "type": "number",
70
+ "min": -18,
71
+ "max": 0,
72
+ "default": -6,
73
+ "conversion": "DBLEVEL"
74
+ },
75
+ {
76
+ "id": "gain3",
77
+ "name": "Input Gain 3",
78
+ "type": "number",
79
+ "min": -18,
80
+ "max": 0,
81
+ "default": -6,
82
+ "conversion": "DBLEVEL"
83
+ },
84
+ {
85
+ "id": "gain4",
86
+ "name": "Input Gain 4",
87
+ "type": "number",
88
+ "min": -18,
89
+ "max": 0,
90
+ "default": -6,
91
+ "conversion": "DBLEVEL"
92
+ }
93
+ ],
94
+ "color": "#2468f2"
95
+ }
96
+ ---
97
+ @section header
98
+ @comment "Generated from spincad source file Mixer_4_to_1.spincad"
99
+
100
+ @section main
101
+ ;REGISTERS
102
+ // we dont read input 1 unless it's connected
103
+ @if pinConnected(Input 1)
104
+ rdax ${input.input1}, ${gain1} ;read input signal
105
+ // if level 1 is connected we multiply by level 1
106
+ @if pinConnected(Level 1)
107
+ mulx ${input.level_1}
108
+ @endif
109
+ wrax ${output.output}, 0.0
110
+ @endif
111
+ @if pinConnected(Input 2)
112
+ rdax ${input.input2}, ${gain2}
113
+ @if pinConnected(Level 2)
114
+ mulx ${input.level_2}
115
+ @endif
116
+ @if pinConnected(Input 1)
117
+ rdax ${output.output}, 1.0
118
+ @endif
119
+ wrax ${output.output}, 0.0
120
+ @endif
121
+ @if pinConnected(Input 3)
122
+ rdax ${input.input3}, ${gain3}
123
+ @if pinConnected(Level 3)
124
+ mulx ${input.level_3}
125
+ @endif
126
+ @if pinConnected(Input 1)
127
+ rdax ${output.output}, 1.0
128
+ @else
129
+ @if pinConnected(Input 2)
130
+ rdax ${output.output}, 1.0
131
+ @endif
132
+ @endif
133
+ wrax ${output.output}, 0.0
134
+ @endif
135
+ @if pinConnected(Input 4)
136
+ rdax ${input.input4}, ${gain4}
137
+ @if pinConnected(Level 4)
138
+ mulx ${input.level_4}
139
+ @endif
140
+ @if pinConnected(Input 1)
141
+ rdax ${output.output}, 1.0
142
+ @else
143
+ @if pinConnected(Input 2)
144
+ rdax ${output.output}, 1.0
145
+ @else
146
+ @if pinConnected(Input 3)
147
+ rdax ${output.output}, 1.0
148
+ @endif
149
+ @endif
150
+ @endif
151
+ wrax ${output.output}, 0.0
152
152
  @endif
@@ -1,51 +1,51 @@
1
- ---
2
- {
3
- "type": "math.volume",
4
- "category": "Gain/Mixing",
5
- "name": "Volume",
6
- "description": "Applies a gain to the input signal",
7
- "inputs": [
8
- {
9
- "id": "input",
10
- "name": "Input",
11
- "type": "audio"
12
- },
13
- {
14
- "id": "volume",
15
- "name": "Volume",
16
- "type": "control"
17
- }
18
- ],
19
- "outputs": [
20
- {
21
- "id": "output",
22
- "name": "Output",
23
- "type": "audio"
24
- }
25
- ],
26
- "parameters": [
27
- {
28
- "id": "gain",
29
- "name": "Input Gain",
30
- "type": "number",
31
- "min": -24,
32
- "max": 0,
33
- "default": -6,
34
- "conversion": "DBLEVEL"
35
- }
36
- ],
37
- "color": "#2468f2"
38
- }
39
- ---
40
- @section header
41
- @comment "Generated from spincad source file ${input.volume}.spincad"
42
-
43
- @section main
44
- ;REGISTERS
45
- @if pinConnected(${input.input})
46
- rdax ${input.input}, ${gain} ;read ${input.input} signal
47
- @if pinConnected(${input.volume})
48
- mulx ${input.volume}
49
- @endif
50
- wrax ${output.output},0 ;${output.output} in ACC and lf1
1
+ ---
2
+ {
3
+ "type": "math.volume",
4
+ "category": "Gain/Mixing",
5
+ "name": "Volume",
6
+ "description": "Applies a gain to the input signal",
7
+ "inputs": [
8
+ {
9
+ "id": "input",
10
+ "name": "Input",
11
+ "type": "audio"
12
+ },
13
+ {
14
+ "id": "volume",
15
+ "name": "Volume",
16
+ "type": "control"
17
+ }
18
+ ],
19
+ "outputs": [
20
+ {
21
+ "id": "output",
22
+ "name": "Output",
23
+ "type": "audio"
24
+ }
25
+ ],
26
+ "parameters": [
27
+ {
28
+ "id": "gain",
29
+ "name": "Input Gain",
30
+ "type": "number",
31
+ "min": -24,
32
+ "max": 0,
33
+ "default": -6,
34
+ "conversion": "DBLEVEL"
35
+ }
36
+ ],
37
+ "color": "#2468f2"
38
+ }
39
+ ---
40
+ @section header
41
+ @comment "Generated from spincad source file ${input.volume}.spincad"
42
+
43
+ @section main
44
+ ;REGISTERS
45
+ @if pinConnected(${input.input})
46
+ rdax ${input.input}, ${gain} ;read ${input.input} signal
47
+ @if pinConnected(${input.volume})
48
+ mulx ${input.volume}
49
+ @endif
50
+ wrax ${output.output},0 ;${output.output} in ACC and lf1
51
51
  @endif
package/blocks/io/adc.atl CHANGED
@@ -1,53 +1,53 @@
1
- ---
2
- {
3
- "type": "input.adc",
4
- "name": "ADC Input",
5
- "category": "Input/Output",
6
- "description": "Reads audio from an analog input (ADC) with adjustable gain.",
7
- "color": "#2196F3",
8
- "width": 150,
9
- "labelTemplate": "ADC ${param.adcNumber == 0 ? 'L' : 'R'}",
10
- "inputs": [],
11
- "outputs": [
12
- {
13
- "id": "out",
14
- "name": "Audio",
15
- "type": "audio"
16
- }
17
- ],
18
- "parameters": [
19
- {
20
- "id": "adcNumber",
21
- "name": "ADC Number",
22
- "type": "select",
23
- "default": 0,
24
- "options": [
25
- {
26
- "label": "ADCL",
27
- "value": 0
28
- },
29
- {
30
- "label": "ADCR",
31
- "value": 1
32
- }
33
- ]
34
- },
35
- {
36
- "id": "gain",
37
- "name": "Gain",
38
- "type": "number",
39
- "default": 1,
40
- "min": 0,
41
- "max": 1.9999,
42
- "step": 0.01
43
- }
44
- ]
45
- }
46
- ---
47
- @section input
48
- @if adcNumber == 0
49
- rdax ADCL, ${param.gain}
50
- @else
51
- rdax ADCR, ${param.gain}
52
- @endif
53
- wrax ${output.out}, 0
1
+ ---
2
+ {
3
+ "type": "input.adc",
4
+ "name": "ADC Input",
5
+ "category": "Input/Output",
6
+ "description": "Reads audio from an analog input (ADC) with adjustable gain.",
7
+ "color": "#2196F3",
8
+ "width": 150,
9
+ "labelTemplate": "ADC ${param.adcNumber == 0 ? 'L' : 'R'}",
10
+ "inputs": [],
11
+ "outputs": [
12
+ {
13
+ "id": "out",
14
+ "name": "Audio",
15
+ "type": "audio"
16
+ }
17
+ ],
18
+ "parameters": [
19
+ {
20
+ "id": "adcNumber",
21
+ "name": "ADC Number",
22
+ "type": "select",
23
+ "default": 0,
24
+ "options": [
25
+ {
26
+ "label": "ADCL",
27
+ "value": 0
28
+ },
29
+ {
30
+ "label": "ADCR",
31
+ "value": 1
32
+ }
33
+ ]
34
+ },
35
+ {
36
+ "id": "gain",
37
+ "name": "Gain",
38
+ "type": "number",
39
+ "default": 1,
40
+ "min": 0,
41
+ "max": 1.9999,
42
+ "step": 0.01
43
+ }
44
+ ]
45
+ }
46
+ ---
47
+ @section input
48
+ @if adcNumber == 0
49
+ rdax ADCL, ${param.gain}
50
+ @else
51
+ rdax ADCR, ${param.gain}
52
+ @endif
53
+ wrax ${output.out}, 0
package/blocks/io/dac.atl CHANGED
@@ -1,61 +1,61 @@
1
- ---
2
- {
3
- "type": "output.dac",
4
- "name": "DAC Output",
5
- "category": "Input/Output",
6
- "description": "Writes audio to an analog output (DAC) with adjustable gain.",
7
- "color": "#F44336",
8
- "width": 150,
9
- "inputs": [
10
- {
11
- "id": "in",
12
- "name": "Audio",
13
- "type": "audio",
14
- "required": true
15
- }
16
- ],
17
- "outputs": [],
18
- "labelTemplate": "DAC ${param.dacNumber == 0 ? 'L' : 'R'}",
19
- "parameters": [
20
- {
21
- "id": "dacNumber",
22
- "name": "DAC Number",
23
- "type": "select",
24
- "default": 0,
25
- "options": [
26
- {
27
- "label": "DACL",
28
- "value": 0
29
- },
30
- {
31
- "label": "DACR",
32
- "value": 1
33
- }
34
- ]
35
- },
36
- {
37
- "id": "gain",
38
- "name": "Gain",
39
- "type": "number",
40
- "default": 1,
41
- "min": -2,
42
- "max": 1.9999,
43
- "step": 0.01
44
- }
45
- ]
46
- }
47
- ---
48
- @section output
49
-
50
- ; DAC Output
51
- rdax ${input.in}, 1.0
52
-
53
- @if gain != 1.0
54
- sof ${param.gain}, 0.0
55
- @endif
56
-
57
- @if dacNumber == 0
58
- wrax DACL, 0
59
- @else
60
- wrax DACR, 0
61
- @endif
1
+ ---
2
+ {
3
+ "type": "output.dac",
4
+ "name": "DAC Output",
5
+ "category": "Input/Output",
6
+ "description": "Writes audio to an analog output (DAC) with adjustable gain.",
7
+ "color": "#F44336",
8
+ "width": 150,
9
+ "inputs": [
10
+ {
11
+ "id": "in",
12
+ "name": "Audio",
13
+ "type": "audio",
14
+ "required": true
15
+ }
16
+ ],
17
+ "outputs": [],
18
+ "labelTemplate": "DAC ${param.dacNumber == 0 ? 'L' : 'R'}",
19
+ "parameters": [
20
+ {
21
+ "id": "dacNumber",
22
+ "name": "DAC Number",
23
+ "type": "select",
24
+ "default": 0,
25
+ "options": [
26
+ {
27
+ "label": "DACL",
28
+ "value": 0
29
+ },
30
+ {
31
+ "label": "DACR",
32
+ "value": 1
33
+ }
34
+ ]
35
+ },
36
+ {
37
+ "id": "gain",
38
+ "name": "Gain",
39
+ "type": "number",
40
+ "default": 1,
41
+ "min": -2,
42
+ "max": 1.9999,
43
+ "step": 0.01
44
+ }
45
+ ]
46
+ }
47
+ ---
48
+ @section output
49
+
50
+ ; DAC Output
51
+ rdax ${input.in}, 1.0
52
+
53
+ @if gain != 1.0
54
+ sof ${param.gain}, 0.0
55
+ @endif
56
+
57
+ @if dacNumber == 0
58
+ wrax DACL, 0
59
+ @else
60
+ wrax DACR, 0
61
+ @endif
@@ -1,24 +1,24 @@
1
- ---
2
- {
3
- "type": "other.stickynote",
4
- "name": "Sticky Note",
5
- "category": "Other",
6
- "description": "Add documentation comments to your diagram",
7
- "color": "#FFEB3B",
8
- "width": 120,
9
- "inputs": [],
10
- "outputs": [],
11
- "parameters": [
12
- {
13
- "id": "text",
14
- "name": "Note",
15
- "type": "string",
16
- "default": "Add your notes here...",
17
- "multiline": true,
18
- "description": "Text content for the sticky note. Will be added as comments in the assembly output."
19
- }
20
- ],
21
- "labelTemplate": "${param.text}"
22
- }
23
- ---
24
- @comment ${param.text}
1
+ ---
2
+ {
3
+ "type": "other.stickynote",
4
+ "name": "Sticky Note",
5
+ "category": "Other",
6
+ "description": "Add documentation comments to your diagram",
7
+ "color": "#FFEB3B",
8
+ "width": 120,
9
+ "inputs": [],
10
+ "outputs": [],
11
+ "parameters": [
12
+ {
13
+ "id": "text",
14
+ "name": "Note",
15
+ "type": "string",
16
+ "default": "Add your notes here...",
17
+ "multiline": true,
18
+ "description": "Text content for the sticky note. Will be added as comments in the assembly output."
19
+ }
20
+ ],
21
+ "labelTemplate": "${param.text}"
22
+ }
23
+ ---
24
+ @comment ${param.text}