@gorilla-engine-sdk/create-gorilla-engine-plugin 1.0.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.
- package/LICENSE.md +64 -0
- package/README.md +103 -0
- package/generator-gorilla-engine-plugin/app/index.js +338 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/SKILL.md +295 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/effects-filters.md +186 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/indexing.md +129 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/instrument-files.md +547 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/key-rules.md +81 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/modulation.md +210 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/module-control.md +217 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/module-reference-bus-effects.md +663 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/module-reference-core.md +145 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/module-reference-misc.md +59 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/module-reference-modulation.md +85 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/module-reference-voice-effects.md +407 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/note-events.md +278 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/properties.md +230 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/script-patterns.md +494 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/time-tempo.md +209 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-ui/SKILL.md +104 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-ui/references/advanced-controls.md +194 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-ui/references/base-props.md +167 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-ui/references/basic-controls.md +230 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-ui/references/bindings.md +183 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-ui/references/composite-components.md +258 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-ui/references/containers.md +149 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-ui/references/editors.md +191 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-ui/references/event-handlers.md +150 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-ui/references/getting-started.md +143 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-ui/references/gorilla-engine-api.md +147 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-ui/references/instrument-api.md +250 -0
- package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-ui/references/visualization.md +209 -0
- package/generator-gorilla-engine-plugin/app/templates/.prettierignore +13 -0
- package/generator-gorilla-engine-plugin/app/templates/.vscode/settings.json +14 -0
- package/generator-gorilla-engine-plugin/app/templates/.vscode_input/launch.json +89 -0
- package/generator-gorilla-engine-plugin/app/templates/README.md +36 -0
- package/generator-gorilla-engine-plugin/app/templates/assets/fonts/OFL.txt +93 -0
- package/generator-gorilla-engine-plugin/app/templates/assets/fonts/Roboto-Bold.otf +0 -0
- package/generator-gorilla-engine-plugin/app/templates/assets/fonts/Roboto-Medium.otf +0 -0
- package/generator-gorilla-engine-plugin/app/templates/assets/fonts/Roboto-Regular.otf +0 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/Presets/Factory/Category 1/Init.preset +1 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/Presets/Factory/Category 1/Three Quarters.preset +1 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/Horizontal Slider.png +0 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/Horizontal Slider@2x.png +0 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/Rotary Bipolar.png +0 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/Rotary-Bipolar@2x.png +0 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/Rotary.png +0 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/Rotary@2x.png +0 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/arrow-down-default.png +0 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/arrow-down-default@2x.png +0 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/arrow-down-hover.png +0 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/arrow-down-hover@2x.png +0 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/arrow-down-pressed.png +0 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/arrow-down-pressed@2x.png +0 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/arrow-up-default.png +0 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/arrow-up-default@2x.png +0 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/arrow-up-hover.png +0 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/arrow-up-hover@2x.png +0 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/arrow-up-pressed.png +0 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/arrow-up-pressed@2x.png +0 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/toggle-default.png +0 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/toggle-default@2x.png +0 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/toggle-pressed.png +0 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/toggle-pressed@2x.png +0 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/instruments/Basic Synth Example_part1.blob +0 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/instruments/Basic Synth Example_part2.blob +1 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/instrument/Basic Synth Example.inst +157 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/instrument/Basic Synth Example.txt +184 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/src/app/Root.tsx +35 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/src/app/components/ErrorBoundary.tsx +138 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/src/app/components/UserInterface.tsx +338 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/src/app/pluginConfig.ts +4 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/src/dialogsCustomStyle.ts +98 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/src/index.tsx +217 -0
- package/generator-gorilla-engine-plugin/app/templates/basic-synth/src/presetBrowserCustomStyle.ts +124 -0
- package/generator-gorilla-engine-plugin/app/templates/build.ugep +173 -0
- package/generator-gorilla-engine-plugin/app/templates/effect/assets/Presets/Factory/Category 1/01 - All The Way Down.preset +1 -0
- package/generator-gorilla-engine-plugin/app/templates/effect/assets/Presets/Factory/Category 1/02 - About Half.preset +1 -0
- package/generator-gorilla-engine-plugin/app/templates/effect/assets/Presets/Factory/Category 1/03 - Three Quarters.preset +1 -0
- package/generator-gorilla-engine-plugin/app/templates/effect/assets/Presets/Factory/Category 1/04 - All The Way Up.preset +1 -0
- package/generator-gorilla-engine-plugin/app/templates/effect/assets/images/Rotary.png +0 -0
- package/generator-gorilla-engine-plugin/app/templates/effect/assets/images/Rotary@2x.png +0 -0
- package/generator-gorilla-engine-plugin/app/templates/effect/assets/instruments/Reverb Example_part1.blob +0 -0
- package/generator-gorilla-engine-plugin/app/templates/effect/assets/instruments/Reverb Example_part2.blob +1 -0
- package/generator-gorilla-engine-plugin/app/templates/effect/instrument/Reverb Example.inst +73 -0
- package/generator-gorilla-engine-plugin/app/templates/effect/instrument/Reverb Example.txt +21 -0
- package/generator-gorilla-engine-plugin/app/templates/effect/src/app/Root.tsx +35 -0
- package/generator-gorilla-engine-plugin/app/templates/effect/src/app/components/ErrorBoundary.tsx +114 -0
- package/generator-gorilla-engine-plugin/app/templates/effect/src/app/components/UserInterface.tsx +85 -0
- package/generator-gorilla-engine-plugin/app/templates/effect/src/app/pluginConfig.ts +4 -0
- package/generator-gorilla-engine-plugin/app/templates/effect/src/dialogsCustomStyle.ts +101 -0
- package/generator-gorilla-engine-plugin/app/templates/effect/src/index.tsx +214 -0
- package/generator-gorilla-engine-plugin/app/templates/effect/src/presetBrowserCustomStyle.ts +124 -0
- package/generator-gorilla-engine-plugin/app/templates/gitignore +9 -0
- package/generator-gorilla-engine-plugin/app/templates/licence.txt +0 -0
- package/generator-gorilla-engine-plugin/app/templates/package.json +38 -0
- package/generator-gorilla-engine-plugin/app/templates/prettierrc +9 -0
- package/generator-gorilla-engine-plugin/app/templates/tsconfig.json +20 -0
- package/generator-gorilla-engine-plugin/package.json +17 -0
- package/index.js +72 -0
- package/package.json +42 -0
|
@@ -0,0 +1,407 @@
|
|
|
1
|
+
# Gorilla Editor — Module Reference: Voice Effects
|
|
2
|
+
|
|
3
|
+
Covers all per-voice effect modules and oscillators.
|
|
4
|
+
|
|
5
|
+
> **Cross-references:** `ModRouting` definition → see [module-reference-modulation.md](./module-reference-modulation.md)
|
|
6
|
+
|
|
7
|
+
> ⚠ **`ModRoutings` does not occupy a param index.** Each parameter table below includes a `ModRoutings` row linking to the modulation reference. That row is a sub-module array — it does **not** count toward param indices. Count only scalar rows: Bypass = param 1, next scalar row = param 2, and so on.
|
|
8
|
+
|
|
9
|
+
## Contents
|
|
10
|
+
1. [Voice Effect: BP6 Filter](#Voice-Effect-BP6-Filter)
|
|
11
|
+
2. [Voice Effect: Comb Filter](#Voice-Effect-Comb-Filter)
|
|
12
|
+
3. [Voice Effect: Damping Filter](#Voice-Effect-Damping-Filter)
|
|
13
|
+
4. [Voice Effect: Downmix](#Voice-Effect-Downmix)
|
|
14
|
+
5. [Voice Effect: Envelope Follower](#Voice-Effect-Envelope-Follower)
|
|
15
|
+
6. [Voice Effect: EQ Band](#Voice-Effect-EQ-Band)
|
|
16
|
+
7. [Voice Effect: Frequency Shifter](#Voice-Effect-Frequency-Shifter)
|
|
17
|
+
8. [Voice Effect: Gain](#Voice-Effect-Gain)
|
|
18
|
+
9. [Voice Effect: HP6 Filter](#Voice-Effect-HP6-Filter)
|
|
19
|
+
10. [Voice Effect: HP12 Filter](#Voice-Effect-HP12-Filter)
|
|
20
|
+
11. [Voice Effect: Ladder Filter](#Voice-Effect-Ladder-Filter)
|
|
21
|
+
12. [Voice Effect: Limiter](#Voice-Effect-Limiter)
|
|
22
|
+
13. [Voice Effect: Lo-Fi](#Voice-Effect-Lo-Fi)
|
|
23
|
+
14. [Voice Effect: LP6 Filter](#Voice-Effect-LP6-Filter)
|
|
24
|
+
15. [Voice Effect: LP12 Filter](#Voice-Effect-LP12-Filter)
|
|
25
|
+
16. [Voice Effect: LP24 Filter](#Voice-Effect-LP24-Filter)
|
|
26
|
+
17. [Voice Effect: Stereo Matrix](#Voice-Effect-Stereo-Matrix)
|
|
27
|
+
18. [Voice Effect: Multi-Mode Filter](#Voice-Effect-Multi-Mode-Filter)
|
|
28
|
+
19. [Voice Effect: Send](#Voice-Effect-Send)
|
|
29
|
+
20. [Voice Effect: Shaper](#Voice-Effect-Shaper)
|
|
30
|
+
21. [Voice Effect: Shelf EQ](#Voice-Effect-Shelf-EQ)
|
|
31
|
+
22. [Voice Effect: State-Variable Filter](#Voice-Effect-State-Variable-Filter)
|
|
32
|
+
23. [Voice Effect: Timestretch](#Voice-Effect-Timestretch)
|
|
33
|
+
24. [Voice Effect: Analog Oscillator](#Voice-Effect-Analog-Oscillator)
|
|
34
|
+
25. [Voice Effect: FM Oscillator](#Voice-Effect-FM-Oscillator)
|
|
35
|
+
26. [Voice Effect: Sample Oscillator](#Voice-Effect-Sample-Oscillator)
|
|
36
|
+
27. [Voice Effect: Sine Oscillator](#Voice-Effect-Sine-Oscillator)
|
|
37
|
+
28. [Voice Effect: Super Oscillator](#Voice-Effect-Super-Oscillator)
|
|
38
|
+
29. [Voice Effect: Wavetable Oscillator](#Voice-Effect-Wavetable-Oscillator)
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Voice Effect: BP6 Filter
|
|
43
|
+
2-pole (6 dB/oct roll-off) bandpass filter, applied individually to each voice.
|
|
44
|
+
| Parameter | Description |
|
|
45
|
+
| --------- | ----------- |
|
|
46
|
+
| Bypass | Disable the module. |
|
|
47
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
48
|
+
| Cutoff | Center frequency. |
|
|
49
|
+
| Resonance | Strength of resonant peak at center frequency. |
|
|
50
|
+
|
|
51
|
+
## Voice Effect: Comb Filter
|
|
52
|
+
Delay line with feedback and damping, applied individually to each voice. Note this module requires additional memory per voice, so currently only the first comb filter or timestretch in each group will be active.
|
|
53
|
+
| Parameter | Description |
|
|
54
|
+
| --------- | ----------- |
|
|
55
|
+
| Bypass | Disable the module. |
|
|
56
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
57
|
+
| Tune | Delay time, displayed as resonant frequency in Hz. |
|
|
58
|
+
| Keytrack | Tuning should track playback pitch. |
|
|
59
|
+
| Feedback | Feedback from delay output to input. At high settings the delay becomes a tuned resonator. |
|
|
60
|
+
| Damping | High cut applied to feedback to make it less harsh. |
|
|
61
|
+
| Stiffness | Detunes resonant frequencies away from a harmonic series, similar to stiffness in a vibrating string or rod. |
|
|
62
|
+
| Mix | Level of the delay output. Can also be phase inverted for phaser-like canceling. |
|
|
63
|
+
| Mix Mode | Set to Post, the Mix parameter adds the delayed signal to the output. Set to Pre, the Mix parameter fades the delay input between the input signal and the feedback signal. This can be useful for switching with the Mix parameter from the input signal to a frozen 100% feedback signal. |
|
|
64
|
+
|
|
65
|
+
## Voice Effect: Damping Filter
|
|
66
|
+
Acoustic damping simulation, applied individually to each voice. More natural sounding than a filter sweep.
|
|
67
|
+
| Parameter | Description |
|
|
68
|
+
| --------- | ----------- |
|
|
69
|
+
| Bypass | Disable the module. |
|
|
70
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
71
|
+
| Cutoff | Cutoff frequency. Can usually be left at a fixed value, or modulated slightly by Key. |
|
|
72
|
+
| Damping | 0 to 24 dB/oct damping above cutoff frequency. Usually modulated by an increasing envelope to simulate damping of strings (for example) as the sound decays. |
|
|
73
|
+
|
|
74
|
+
## Voice Effect: Downmix
|
|
75
|
+
Downmix multi-channel sample to stereo.
|
|
76
|
+
| Parameter | Description |
|
|
77
|
+
| --------- | ----------- |
|
|
78
|
+
| Bypass | Disable the module. |
|
|
79
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
80
|
+
| Smoothing | Smoothing of gain parameter changes. |
|
|
81
|
+
| Smooth Start | Smooth from silence at start of the note. |
|
|
82
|
+
| Ch1 L | Linear gain factor from sample channel 1 to left output. |
|
|
83
|
+
| Ch1 R | Linear gain factor from sample channel 1 to right output. |
|
|
84
|
+
| Ch2 L | Linear gain factor from sample channel 2 to left output. |
|
|
85
|
+
| Ch2 R | Linear gain factor from sample channel 2 to right output. |
|
|
86
|
+
| Ch3 L | Linear gain factor from sample channel 3 to left output. |
|
|
87
|
+
| Ch3 R | Linear gain factor from sample channel 3 to right output. |
|
|
88
|
+
| Ch4 L | Linear gain factor from sample channel 4 to left output. |
|
|
89
|
+
| Ch4 R | Linear gain factor from sample channel 4 to right output. |
|
|
90
|
+
| Ch5 L | Linear gain factor from sample channel 5 to left output. |
|
|
91
|
+
| Ch5 R | Linear gain factor from sample channel 5 to right output. |
|
|
92
|
+
| Ch6 L | Linear gain factor from sample channel 6 to left output. |
|
|
93
|
+
| Ch6 R | Linear gain factor from sample channel 6 to right output. |
|
|
94
|
+
| Ch7 L | Linear gain factor from sample channel 7 to left output. |
|
|
95
|
+
| Ch7 R | Linear gain factor from sample channel 7 to right output. |
|
|
96
|
+
| Ch8 L | Linear gain factor from sample channel 8 to left output. |
|
|
97
|
+
| Ch8 R | Linear gain factor from sample channel 8 to right output. |
|
|
98
|
+
| To Bus | Choose an effect bus to downmix to, instead of downmixing in place. |
|
|
99
|
+
|
|
100
|
+
## Voice Effect: Envelope Follower
|
|
101
|
+
Outputs a control signal that follows the audio level (and/or a mod source signal) individually for each voice.
|
|
102
|
+
| Parameter | Description |
|
|
103
|
+
| --------- | ----------- |
|
|
104
|
+
| Bypass | Disable the module. |
|
|
105
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
106
|
+
| Attack | How fast the envelope follower should react to the audio signal. |
|
|
107
|
+
| Release | How fast the envelope follower signal should drop to zero after the input signal has decreased. |
|
|
108
|
+
| Mode | Detect peak or RMS (average) level, or ignore the audio level and only use the level modulation signal routed to Dest. |
|
|
109
|
+
| Range | How to convert the level to a mod source value: Linear, or a range in dB. |
|
|
110
|
+
| Dest | Destination the value is written to (usable as a mod source and accessible in the instrument script). |
|
|
111
|
+
| Output CC | Write the value to the selected MIDI CC, which can be used as a mod source. Note the instrument script does not receive these CC changes because they are happening continuously. |
|
|
112
|
+
|
|
113
|
+
## Voice Effect: EQ Band
|
|
114
|
+
Single parametric equalizer band, applied individually to each voice.
|
|
115
|
+
| Parameter | Description |
|
|
116
|
+
| --------- | ----------- |
|
|
117
|
+
| Bypass | Disable the module. |
|
|
118
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
119
|
+
| Freq | Center frequency of the EQ band. |
|
|
120
|
+
| Width | Slope of the EQ left and right from the center frequency. |
|
|
121
|
+
| Gain | Attenuation/Boost. |
|
|
122
|
+
|
|
123
|
+
## Voice Effect: Frequency Shifter
|
|
124
|
+
Bode frequency shift (inharmonic shift in Hertz, not pitch) applied individually to each voice.
|
|
125
|
+
| Parameter | Description |
|
|
126
|
+
| --------- | ----------- |
|
|
127
|
+
| Bypass | Disable the module. |
|
|
128
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
129
|
+
| Mode | Shift frequencies up, down, or left and right channels in opposite directions. |
|
|
130
|
+
| Range | Frequency shift in Hertz. Low values result in barber's pole phasing when Mix is set to 50%. |
|
|
131
|
+
| Keytrack | Scale the range to give a consistent sound relative to the note being played. |
|
|
132
|
+
| Depth | Linear scaling of shift amount, can also be inverted. Useful as a mod destination. |
|
|
133
|
+
| Feedback | Add feedback to add overtones or increase depth of phasing. |
|
|
134
|
+
| Mix | Dry/wet mix. |
|
|
135
|
+
|
|
136
|
+
## Voice Effect: Gain
|
|
137
|
+
Volume control, applied individually to each voice. Can be useful between other per-voice inserts.
|
|
138
|
+
| Parameter | Description |
|
|
139
|
+
| --------- | ----------- |
|
|
140
|
+
| Bypass | Disable the module. |
|
|
141
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
142
|
+
| Level | Adjust the audio level. |
|
|
143
|
+
| Invert Phase | Flip the phase of the audio. |
|
|
144
|
+
|
|
145
|
+
## Voice Effect: HP6 Filter
|
|
146
|
+
1-pole (6 dB/oct) highpass filter, applied individually to each voice.
|
|
147
|
+
| Parameter | Description |
|
|
148
|
+
| --------- | ----------- |
|
|
149
|
+
| Bypass | Disable the module. |
|
|
150
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
151
|
+
| Cutoff | Cutoff frequency. |
|
|
152
|
+
|
|
153
|
+
## Voice Effect: HP12 Filter
|
|
154
|
+
2-pole (12 dB/oct) highpass filter, applied individually to each voice.
|
|
155
|
+
| Parameter | Description |
|
|
156
|
+
| --------- | ----------- |
|
|
157
|
+
| Bypass | Disable the module. |
|
|
158
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
159
|
+
| Cutoff | Cutoff frequency. |
|
|
160
|
+
| Resonance | Strength of resonant peak at cutoff frequency. |
|
|
161
|
+
|
|
162
|
+
## Voice Effect: Ladder Filter
|
|
163
|
+
4-pole (24 dB/oct) filter, applied individually to each voice. Simulates a vintage analog filter.
|
|
164
|
+
| Parameter | Description |
|
|
165
|
+
| --------- | ----------- |
|
|
166
|
+
| Bypass | Disable the module. |
|
|
167
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
168
|
+
| Cutoff | Cutoff frequency. |
|
|
169
|
+
| Resonance | Strength of resonant peak at cutoff frequency. Peak is damped when the input signal is loud. |
|
|
170
|
+
| Reso Low Cut | Reduce resonance at low frequencies, to control the lowest frequency the filter will self-oscillate. |
|
|
171
|
+
| Mode | 12 dB highpass, 6 dB bandpass, or 6 to 24 dB lowpass. |
|
|
172
|
+
|
|
173
|
+
## Voice Effect: Limiter
|
|
174
|
+
Safety limiter, applied individually to each voice. Stops the voice audio getting too loud.
|
|
175
|
+
| Parameter | Description |
|
|
176
|
+
| --------- | ----------- |
|
|
177
|
+
| Bypass | Disable the module. |
|
|
178
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
179
|
+
| Attack | Controls how quickly the audio level should be limited. |
|
|
180
|
+
| Release | Controls how slowly the limiting is reduced after the audio level has decreased. |
|
|
181
|
+
|
|
182
|
+
## Voice Effect: Lo-Fi
|
|
183
|
+
Sample rate reduction, applied individually to each voice.
|
|
184
|
+
| Parameter | Description |
|
|
185
|
+
| --------- | ----------- |
|
|
186
|
+
| Bypass | Disable the module. |
|
|
187
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
188
|
+
| Sample Rate | Downsampling rate. |
|
|
189
|
+
| Jitter | Random modulation of downsampling rate. |
|
|
190
|
+
| Keytrack | Sample rate follows keyboard and other pitch modulation. |
|
|
191
|
+
| Bit Depth | Bit reduction. |
|
|
192
|
+
| Bit Bias | Offset to adjust the quietest audio that jumps from one bit level to the next. |
|
|
193
|
+
| Slew Rate | Limit the change from one sample to the next. Simulates ADPCM/companding converters. |
|
|
194
|
+
|
|
195
|
+
## Voice Effect: LP6 Filter
|
|
196
|
+
1 pole (6 dB/oct) lowpass filter, applied individually to each voice. Lowest CPU load of all filters.
|
|
197
|
+
| Parameter | Description |
|
|
198
|
+
| --------- | ----------- |
|
|
199
|
+
| Bypass | Disable the module. |
|
|
200
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
201
|
+
| Cutoff | Cutoff frequency. |
|
|
202
|
+
|
|
203
|
+
## Voice Effect: LP12 Filter
|
|
204
|
+
2 pole (12 dB/oct) lowpass filter, applied individually to each voice.
|
|
205
|
+
| Parameter | Description |
|
|
206
|
+
| --------- | ----------- |
|
|
207
|
+
| Bypass | Disable the module. |
|
|
208
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
209
|
+
| Cutoff | Cutoff frequency. |
|
|
210
|
+
| Resonance | Strength of resonant peak at cutoff frequency. |
|
|
211
|
+
|
|
212
|
+
## Voice Effect: LP24 Filter
|
|
213
|
+
4 pole (24 dB/oct) lowpass filter, applied individually to each voice.
|
|
214
|
+
| Parameter | Description |
|
|
215
|
+
| --------- | ----------- |
|
|
216
|
+
| Bypass | Disable the module. |
|
|
217
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
218
|
+
| Cutoff | Cutoff frequency. |
|
|
219
|
+
| Resonance | Strength of resonant peak at cutoff frequency. |
|
|
220
|
+
|
|
221
|
+
## Voice Effect: Stereo Matrix
|
|
222
|
+
Stereo channel routing matrix, applied individually to each voice.
|
|
223
|
+
| Parameter | Description |
|
|
224
|
+
| --------- | ----------- |
|
|
225
|
+
| Bypass | Disable the module. |
|
|
226
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
227
|
+
| Mode | Set how the channels will be combined. Possible values are: <br />`Mix`: Fade each output channel between the left and right input channels.<br />`Pan`: Set pan position of each input channel across the output channels.<br />`M-S`: Adjust the level of the left (M) and right (S) input channels, then M-S decode them.<br />`L+R`: Downmix the sum of the left and right channels to mono.<br />`L-R`: Downmix the difference of the left and right channels to mono. |
|
|
228
|
+
| Left | Adjust left channel according to Mode. |
|
|
229
|
+
| Right | Adjust right channel according to Mode. |
|
|
230
|
+
|
|
231
|
+
## Voice Effect: Multi-Mode Filter
|
|
232
|
+
General purpose filter with up to 4 poles (24 dB/oct), applied individually to each voice.
|
|
233
|
+
| Parameter | Description |
|
|
234
|
+
| --------- | ----------- |
|
|
235
|
+
| Bypass | Disable the module. |
|
|
236
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
237
|
+
| Cutoff | Cutoff frequency. |
|
|
238
|
+
| Resonance | Strength of resonant peak at cutoff frequency. |
|
|
239
|
+
| Mode | 12 dB highpass, 6 dB bandpass, or 6 to 24 dB lowpass. |
|
|
240
|
+
| Peak Limit | Limit the level of the resonant peak and make the filter sound overdriven. When off, self-oscillation is also disabled to save CPU. |
|
|
241
|
+
|
|
242
|
+
## Voice Effect: Send
|
|
243
|
+
Send to an output or Effect Bus, applied individually to each voice.
|
|
244
|
+
| Parameter | Description |
|
|
245
|
+
| --------- | ----------- |
|
|
246
|
+
| Bypass | Disable the module. |
|
|
247
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
248
|
+
| Output | Select destination output or Effect Bus. |
|
|
249
|
+
| Send Level | Volume to send to the destination. |
|
|
250
|
+
| Scaling | Optionally scale send level by voice volume (similar to a post-fader send in a mixer). |
|
|
251
|
+
| Output Mod | The amount the Output parameter can be offset by modulation. Allows the output bus to be set by note velocity, for example. The offset is calculated when the note starts and won't change while the note is playing. |
|
|
252
|
+
|
|
253
|
+
## Voice Effect: Shaper
|
|
254
|
+
Waveshaping with customizable curve, applied individually to each voice.
|
|
255
|
+
| Parameter | Description |
|
|
256
|
+
| --------- | ----------- |
|
|
257
|
+
| Bypass | Disable the module. |
|
|
258
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
259
|
+
| Drive | Amount of Waveshaping - technically the drive of the input signal against the curve. |
|
|
260
|
+
| Curve | Drawable transfer curve (x-axis = input level, y-axis = output level). |
|
|
261
|
+
| Oversample | Switch on to improve audio quality, especially for high pitched sounds and high drive. |
|
|
262
|
+
|
|
263
|
+
## Voice Effect: Shelf EQ
|
|
264
|
+
Gentle high or low shelving EQ, applied individually to each voice.
|
|
265
|
+
| Parameter | Description |
|
|
266
|
+
| --------- | ----------- |
|
|
267
|
+
| Bypass | Disable the module. |
|
|
268
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
269
|
+
| Freq | Frequency of the shelf. |
|
|
270
|
+
| Low Gain | Attenuation/Boost below the specified frequency. |
|
|
271
|
+
| High Gain | Attenuation/Boost above the specified frequency. |
|
|
272
|
+
|
|
273
|
+
## Voice Effect: State-Variable Filter
|
|
274
|
+
2-pole (12 dB/oct) multi-mode filter, applied individually to each voice. Simulates a vintage analog filter.
|
|
275
|
+
| Parameter | Description |
|
|
276
|
+
| --------- | ----------- |
|
|
277
|
+
| Bypass | Disable the module. |
|
|
278
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
279
|
+
| Cutoff | Cutoff frequency. |
|
|
280
|
+
| Resonance | Strength of resonant peak at cutoff frequency. Peak is damped when the input signal is loud. |
|
|
281
|
+
| Low/High | Fade between lowpass and highpass response. |
|
|
282
|
+
| Notch/Peak | Set the Low/High parameter to pass through a notch or bandpass response at its midpoint. |
|
|
283
|
+
|
|
284
|
+
## Voice Effect: Timestretch
|
|
285
|
+
Timestretching, applied individually to each voice. Note this module requires additional memory per voice, so currently only the first comb filter or timestretch in each group will be active.
|
|
286
|
+
| Parameter | Description |
|
|
287
|
+
| --------- | ----------- |
|
|
288
|
+
| Bypass | Disable the module. |
|
|
289
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
290
|
+
| Speed | Playback speed through the zone's sample. |
|
|
291
|
+
| Keytrack | Keep the speed constant when played at different pitches across the keyboard. |
|
|
292
|
+
| Tempo Track | Adjust the speed to follow tempo changes. |
|
|
293
|
+
| Smoothing | Low values preserve the texture of the original sound, but may sound rough. High values increase the clarity of transients. |
|
|
294
|
+
| Formant Shift | Adjust formants to make the sound source seem bigger or smaller. To minimize CPU load leave Formant Shift at 0% and Formant Track at 100%. |
|
|
295
|
+
| Formant Track | How much the formants shift to follow the pitch. At zero, formant frequencies are fixed. |
|
|
296
|
+
| End Decay | Optionally freeze the spectrum at the end of the sample and decay to silence at the specified rate. |
|
|
297
|
+
| End Damping | High frequency damping to apply during the End Decay. |
|
|
298
|
+
|
|
299
|
+
## Voice Effect: Analog Oscillator
|
|
300
|
+
Multi-waveform oscillator plus sub, added individually to each voice.
|
|
301
|
+
| Parameter | Description |
|
|
302
|
+
| --------- | ----------- |
|
|
303
|
+
| Bypass | Disable the module. |
|
|
304
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
305
|
+
| Tune | The pitch of the oscillator. |
|
|
306
|
+
| Saw | Level of the sawtooth waveform. |
|
|
307
|
+
| Pulse | Level of the square/pulse waveform. |
|
|
308
|
+
| Pulse Width | Width (duty cycle) of the pulse wave. Square when set to 50%. |
|
|
309
|
+
| Min Width | Minimum allowed width for the pulse wave, to avoid the sound getting too thin. |
|
|
310
|
+
| Triangle | Level of the triangle waveform. |
|
|
311
|
+
| Sub | Level of the square sub-oscillator (1 octave down). |
|
|
312
|
+
| Noise | Level of white noise. |
|
|
313
|
+
| DC Blocking | Highpass filter to avoid a DC offset, especially when modulating pulse width. Adjust to taste. |
|
|
314
|
+
| Phase Mode | Start phase of oscillator waveform for each note: reset to zero, free-running, or random. |
|
|
315
|
+
|
|
316
|
+
> ⚠ **Scripting note — `Tune` (param 2) is an absolute frequency parameter, not a semitone offset.** Calling `set_module_param` on it with a value of 0 collapses the oscillator to ~2 Hz regardless of Keytrack state. To apply a pitch offset on a key-tracked group, use **Group Tune (param 5, signed, 100k/semitone)** instead — see the Tune Parameter Taxonomy in [module-control.md](./module-control.md).
|
|
317
|
+
|
|
318
|
+
## Voice Effect: FM Oscillator
|
|
319
|
+
4-operator FM synthesizer with customizable algorithm and waveforms. Like the original, aliasing is possible so check the consistency of high notes at all sample rates.
|
|
320
|
+
| Parameter | Description |
|
|
321
|
+
| --------- | ----------- |
|
|
322
|
+
| Bypass | Disable the module. |
|
|
323
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
324
|
+
| Tune | The pitch of the oscillator. |
|
|
325
|
+
| HF Damping | Progressively reduce operator 2-4 levels above this breakpoint key. |
|
|
326
|
+
| Wavetable | Select a wavetable module as a source for the four Wave parameters. |
|
|
327
|
+
| Op1 | Switch operator 1 on and off. |
|
|
328
|
+
| Op1 Wave | Select waveform (from sine to triangle when no wavetable is selected). |
|
|
329
|
+
| Op1 Level | Operator output level (always routed to output). |
|
|
330
|
+
| Op2 | Switch operator 2 on and off. |
|
|
331
|
+
| Op2 Ratio | Frequency ratio of operator 2 relative to operator 1. |
|
|
332
|
+
| Op2 Wave | Select waveform (from sine to triangle when no wavetable is selected). |
|
|
333
|
+
| Op2 Level | Operator output level. |
|
|
334
|
+
| Op2 Dest | Operator 2 routing (add to the output, or modulate operator 1). |
|
|
335
|
+
| Op3 | Switch operator 3 on and off. |
|
|
336
|
+
| Op3 Ratio | Frequency ratio of operator 3 relative to operator 1. |
|
|
337
|
+
| Op3 Wave | Select waveform (from sine to triangle when no wavetable is selected). |
|
|
338
|
+
| Op3 Level | Operator output level. |
|
|
339
|
+
| Op3 Dest | Operator 3 routing (add to the output, or modulate operator 1 or 2). |
|
|
340
|
+
| Op4 | Switch operator 4 on and off. |
|
|
341
|
+
| Op4 Ratio | Frequency ratio of operator 4 relative to operator 1. |
|
|
342
|
+
| Op4 Wave | Select waveform (from sine to triangle when no wavetable is selected). |
|
|
343
|
+
| Op4 Feedback | Operator feedback amount, for a richer or noisier waveform. |
|
|
344
|
+
| Op4 Level | Operator output level. |
|
|
345
|
+
| Op4 Dest | Operator 4 routing (add to the output, or modulate operator 1, 2 or 3). |
|
|
346
|
+
|
|
347
|
+
## Voice Effect: Sample Oscillator
|
|
348
|
+
Sample playback with optional granular mode, added individually to each voice. Ensure the Start Mod Range of zones to be played is set to the whole length of the sample!
|
|
349
|
+
| Parameter | Description |
|
|
350
|
+
| --------- | ----------- |
|
|
351
|
+
| Bypass | Disable the module. |
|
|
352
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
353
|
+
| Mapping | Select which mapping in the instrument to play. |
|
|
354
|
+
| Key Shift | Offset added to the key played before selecting a sample zone in the mapping. |
|
|
355
|
+
| Tune | Adjust playback pitch, in addition to any zone tuning. |
|
|
356
|
+
| Keytrack | Pitch follows keyboard and other pitch modulation. |
|
|
357
|
+
| Sample Pos | Playback start position in the sample. |
|
|
358
|
+
| Mix | Playback volume of the sample. |
|
|
359
|
+
| Grain Mode | Enable granular playback. |
|
|
360
|
+
| Grain Size | The length of each grain. To make this track the keyboard, add a mod routing from Key with an inverted depth of exactly 7.52575%. |
|
|
361
|
+
| Sample Speed | The speed the grains move through the sample. |
|
|
362
|
+
| Tempo Track | Adjust Sample Speed to track the tempo (relative to the zone Original Tempo setting if any). |
|
|
363
|
+
| Random Pitch | Add random tuning to each grain. |
|
|
364
|
+
| Random Pos | Add random sample position to each grain. |
|
|
365
|
+
| De-Glitch | Use the sample pitch (calculated from zone root note and tuning) to align grain positions to cycles in the waveform. |
|
|
366
|
+
| Equal Power Fade | Increase to smooth grain transitions if audio is noisy/uncorrelated. |
|
|
367
|
+
|
|
368
|
+
## Voice Effect: Sine Oscillator
|
|
369
|
+
Sine wave oscillator, added individually to each voice.
|
|
370
|
+
| Parameter | Description |
|
|
371
|
+
| --------- | ----------- |
|
|
372
|
+
| Bypass | Disable the module. |
|
|
373
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
374
|
+
| Tune | The pitch of the generated sine wave. |
|
|
375
|
+
| Keytrack | Pitch follows keyboard and other pitch modulation. |
|
|
376
|
+
| Mix | The volume of the sine wave, or modulation depth if RingMod is active. |
|
|
377
|
+
| Ring Mod | Modulate (multiply) the audio signal by the sine wave, or in Hard mode by the polarity of the sine wave. |
|
|
378
|
+
|
|
379
|
+
> ⚠ **Scripting note — `Tune` (param 2) is an absolute frequency parameter, not a semitone offset.** Calling `set_module_param` on it with a value of 0 collapses the oscillator to ~2 Hz regardless of Keytrack state. To apply a pitch offset on a key-tracked group, use **Group Tune (param 5, signed, 100k/semitone)** instead — see the Tune Parameter Taxonomy in [module-control.md](./module-control.md).
|
|
380
|
+
|
|
381
|
+
## Voice Effect: Super Oscillator
|
|
382
|
+
Multi-saw oscillator plus sub, added individually to each voice.
|
|
383
|
+
| Parameter | Description |
|
|
384
|
+
| --------- | ----------- |
|
|
385
|
+
| Bypass | Disable the module. |
|
|
386
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
387
|
+
| Oscillators | Number of oscillators (1 to 7). |
|
|
388
|
+
| Tune | The center pitch of the generated waveforms. |
|
|
389
|
+
| Detune | Amount of detuning between the oscillators. |
|
|
390
|
+
| Mix | Volume of the sawtooth oscillators. |
|
|
391
|
+
| Sub | Volume of the square sub-oscillators (1 octave down). |
|
|
392
|
+
|
|
393
|
+
> ⚠ **Scripting note — `Tune` (param 3) is an absolute frequency parameter, not a semitone offset.** Calling `set_module_param` on it with a value of 0 collapses the oscillator to ~2 Hz regardless of Keytrack state. To apply a pitch offset on a key-tracked group, use **Group Tune (param 5, signed, 100k/semitone)** instead — see the Tune Parameter Taxonomy in [module-control.md](./module-control.md).
|
|
394
|
+
|
|
395
|
+
## Voice Effect: Wavetable Oscillator
|
|
396
|
+
Arbitrary waveform oscillator, added individually to each voice. Requires one or more Wavetable modules in the instrument.
|
|
397
|
+
| Parameter | Description |
|
|
398
|
+
| --------- | ----------- |
|
|
399
|
+
| Bypass | Disable the module. |
|
|
400
|
+
| ModRoutings | See [module-reference-modulation.md](./module-reference-modulation.md) |
|
|
401
|
+
| Tune | The pitch of the generated waveform. |
|
|
402
|
+
| Wavetable | Select which wavetable to play (from the Wavetable modules in the instrument). |
|
|
403
|
+
| Wave | Select a position in the current wavetable from start to end. The position can be modulated. |
|
|
404
|
+
| Index | Displays the number of the waveform in the wavetable currently being played. |
|
|
405
|
+
| Smooth | Interpolate between the wavetable indexes, crossfading the waves instead switching from one to the next. |
|
|
406
|
+
| Random Phase | Add a random amount to the start phase of the waveform - useful when layering multiple voices. |
|
|
407
|
+
| Mix | Adjust the level of the wavetable playback. |
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
# Note Events Reference
|
|
2
|
+
|
|
3
|
+
## Built-In Event Variables
|
|
4
|
+
|
|
5
|
+
Available in `on note`, `on release`, and related callbacks:
|
|
6
|
+
|
|
7
|
+
| Variable | Description |
|
|
8
|
+
|----------|-------------|
|
|
9
|
+
| `EVENT_ID` | Unique ID for the current note event |
|
|
10
|
+
| `EVENT_KEY` | MIDI note number (0–127) |
|
|
11
|
+
| `EVENT_VEL` | Velocity (1–127) |
|
|
12
|
+
| `EVENT_CHAN` | MIDI channel |
|
|
13
|
+
| `EVENT_HELD` | 1 if key still held, 0 if released |
|
|
14
|
+
| `EVENT_RELEASE_VEL` | Release velocity (in `on release`, default 64) |
|
|
15
|
+
| `CALLBACK_ID` | Unique ID for current callback instance (used with `end_delay()`) |
|
|
16
|
+
| `CC[]` | Array of current MIDI CC values (0–127) |
|
|
17
|
+
| `KEY_DOWN[0-127]` | 1 if MIDI note held, 0 if not |
|
|
18
|
+
| `KEY_DOWN_OCT[0-11]` | 1 if any note of that pitch class is held |
|
|
19
|
+
|
|
20
|
+
## Creating and Releasing Notes
|
|
21
|
+
|
|
22
|
+
### new_note(key, vel, start, length)
|
|
23
|
+
|
|
24
|
+
Trigger a new note programmatically.
|
|
25
|
+
|
|
26
|
+
- `key`: MIDI note number (0–127)
|
|
27
|
+
- `vel`: Velocity (1–127)
|
|
28
|
+
- `start`: Sample start offset in microseconds (0 = normal start)
|
|
29
|
+
- `length`: Duration — `0` = until `release_note()`, `-1` = until parent note released, `-2` = one-shot (play to end)
|
|
30
|
+
- Returns: event ID
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
' Trigger a note that follows the parent
|
|
34
|
+
var child = new_note(EVENT_KEY + 12, EVENT_VEL, 0, -1)
|
|
35
|
+
|
|
36
|
+
' Trigger a one-shot note
|
|
37
|
+
new_note(60, 100, 0, -2)
|
|
38
|
+
|
|
39
|
+
' Trigger with sample start offset
|
|
40
|
+
new_note(EVENT_KEY, EVENT_VEL, 500000, 0) ' start 500ms into sample
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### release_note(event)
|
|
44
|
+
|
|
45
|
+
End a note (as if key released). Can use `ALL_EVENTS` to release all.
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
release_note(myEvent)
|
|
49
|
+
release_note(ALL_EVENTS)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### ignore_event(EVENT_ID)
|
|
53
|
+
|
|
54
|
+
- In `on note`: Don't forward event to later scripts, don't trigger voices
|
|
55
|
+
- In `on release`: Ignore release so note continues playing
|
|
56
|
+
|
|
57
|
+
Must be `EVENT_ID` (current event only).
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
on note
|
|
61
|
+
ignore_event(EVENT_ID) ' suppress — we'll create our own notes
|
|
62
|
+
new_note(EVENT_KEY, EVENT_VEL, 0, 0)
|
|
63
|
+
end on
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### voices_playing(event)
|
|
67
|
+
|
|
68
|
+
Returns 1 if event has voices still sounding, 0 if silent.
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
if voices_playing(myEvent)
|
|
72
|
+
release_note(myEvent)
|
|
73
|
+
end if
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Modifying Note Parameters
|
|
77
|
+
|
|
78
|
+
### set_key(event, key)
|
|
79
|
+
|
|
80
|
+
Change which key the event plays. **Must be set before voices start** (i.e., before the first `delay()` or end of `on note`).
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
set_key(EVENT_ID, EVENT_KEY + 12) ' transpose up one octave
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### set_vel(event, vel)
|
|
87
|
+
|
|
88
|
+
Change velocity. **Must be set before voices start.**
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
set_vel(EVENT_ID, 127) ' force max velocity
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### set_tune(event, tune, relative)
|
|
95
|
+
|
|
96
|
+
Change pitch of playing voices.
|
|
97
|
+
|
|
98
|
+
- `tune`: 1,000 per cent, 100,000 per semitone
|
|
99
|
+
- `relative`: 0 = absolute, 1 = add to current
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
set_tune(EVENT_ID, 100000, 1) ' pitch up 1 semitone
|
|
103
|
+
set_tune(EVENT_ID, -50000, 1) ' pitch down half a semitone
|
|
104
|
+
set_tune(ALL_EVENTS, 0, 0) ' reset all to original pitch
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### set_vol(event, vol, relative)
|
|
108
|
+
|
|
109
|
+
Change volume in 1/1000ths dB.
|
|
110
|
+
|
|
111
|
+
- `relative`: 0 = absolute, 1 = add to current
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
set_vol(EVENT_ID, -3000, 1) ' reduce by 3 dB
|
|
115
|
+
set_vol(EVENT_ID, 6000, 0) ' set to +6 dB
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### set_pan(event, pan, relative)
|
|
119
|
+
|
|
120
|
+
Change pan. Range: -1000 (left) to 1000 (right).
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
set_pan(EVENT_ID, -500, 0) ' pan half-left
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### fade_in(event, microseconds)
|
|
127
|
+
|
|
128
|
+
Fade in voices over specified duration.
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
fade_in(myEvent, 20000) ' 20ms fade in
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### fade_out(event, microseconds, stop)
|
|
135
|
+
|
|
136
|
+
Fade out voices. `stop`: 0 = continue silent, 1 = stop voices after fade.
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
fade_out(myEvent, 50000, 1) ' 50ms fade out then stop
|
|
140
|
+
fade_out(ALL_EVENTS, 10000, 0) ' fade all, keep alive
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### fade_out_after(event, delay_usec, fade_usec)
|
|
144
|
+
|
|
145
|
+
Fade out after sample position advances by delay_usec. Useful for sliced playback.
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
fade_out_after(sliceEvent, sliceLength, 5000) ' fade after slice ends
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Event Parameters
|
|
152
|
+
|
|
153
|
+
Per-event values that can be used as mod sources or control playback:
|
|
154
|
+
|
|
155
|
+
All event parameters default to `0`. Set playback parameters such as `EVENT_PARAM_ALT_MAPPING`, `EVENT_PARAM_REVERSE`, and `EVENT_PARAM_START_POS` before voices start.
|
|
156
|
+
|
|
157
|
+
### set_event_param(event, param, value) / get_event_param(event, param)
|
|
158
|
+
|
|
159
|
+
| Parameter | Description | When to Set |
|
|
160
|
+
|-----------|-------------|-------------|
|
|
161
|
+
| `EVENT_PARAM_0` to `EVENT_PARAM_7` | Custom values, usable as mod sources | Anytime |
|
|
162
|
+
| `EVENT_PARAM_ALT_MAPPING` | Which alternate mapping to use | Before voices start |
|
|
163
|
+
| `EVENT_PARAM_DELAY` | Delay before voices start (μs) | Before voices start |
|
|
164
|
+
| `EVENT_PARAM_REVERSE` | Set to 1 for reverse playback | Before voices start |
|
|
165
|
+
| `EVENT_PARAM_START_POS` | Sample start offset (μs) | Before voices start |
|
|
166
|
+
| `EVENT_PARAM_KEY` | Read the key (read-only) | Anytime |
|
|
167
|
+
| `EVENT_PARAM_VEL` | Read the velocity (read-only) | Anytime |
|
|
168
|
+
| `EVENT_PARAM_TUNE` | Read current tune (read-only) | Anytime |
|
|
169
|
+
| `EVENT_PARAM_VOL` | Read current volume (read-only) | Anytime |
|
|
170
|
+
| `EVENT_PARAM_PAN` | Read current pan (read-only) | Anytime |
|
|
171
|
+
| `EVENT_PARAM_NOTE_LENGTH` | Time since event started (μs, read-only) | Anytime |
|
|
172
|
+
| `EVENT_PARAM_PLAY_POS` | Sample playback position (μs, read-only) | Anytime |
|
|
173
|
+
| `EVENT_PARAM_SOURCE` | -1=external, 0=script 1, 1=script 2... (read-only) | Anytime |
|
|
174
|
+
|
|
175
|
+
**Using EVENT_PARAM as mod source for glide/repitch:**
|
|
176
|
+
|
|
177
|
+
```
|
|
178
|
+
' Mod routing: Event Param 0 → Tune (set up in Gorilla Editor)
|
|
179
|
+
' Then in script:
|
|
180
|
+
set_event_param(monoEvent, EVENT_PARAM_0, 83333 * (prevKey - newKey))
|
|
181
|
+
delay(1) ' let new event start
|
|
182
|
+
set_event_param(monoEvent, EVENT_PARAM_0, 0) ' glide target
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
(83,333 ≈ 100,000/1.2 — the scaling for Event Param to semitones depends on mod routing depth)
|
|
186
|
+
|
|
187
|
+
## Group Selection
|
|
188
|
+
|
|
189
|
+
Control which groups play for a note event. **Must be set before voices start.**
|
|
190
|
+
|
|
191
|
+
```
|
|
192
|
+
group_off(EVENT_ID, ALL_GROUPS) ' disable all groups
|
|
193
|
+
group_on(EVENT_ID, 0) ' enable group 0 only
|
|
194
|
+
group_on(EVENT_ID, 2) ' also enable group 2
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
| Function | Description |
|
|
198
|
+
|----------|-------------|
|
|
199
|
+
| `group_off(event, group)` | Disable group. `ALL_GROUPS` for all. |
|
|
200
|
+
| `group_on(event, group)` | Re-enable group after `group_off`. |
|
|
201
|
+
|
|
202
|
+
Groups are indexed from 0. `NUM_GROUPS` gives the total count.
|
|
203
|
+
|
|
204
|
+
## Event Tagging
|
|
205
|
+
|
|
206
|
+
Tag events for bulk operations:
|
|
207
|
+
|
|
208
|
+
```
|
|
209
|
+
tag_event(myEvent, TAG_1)
|
|
210
|
+
tag_event(myEvent, TAG_1 + TAG_2) ' multiple tags
|
|
211
|
+
untag_event(myEvent, TAG_1)
|
|
212
|
+
|
|
213
|
+
' Apply to all tagged events
|
|
214
|
+
set_tune(tagged_events(TAG_1), 100000, 1)
|
|
215
|
+
release_note(tagged_events(TAG_2))
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Available: `TAG_1` through `TAG_16`.
|
|
219
|
+
|
|
220
|
+
## Event ID Helpers
|
|
221
|
+
|
|
222
|
+
```
|
|
223
|
+
get_event_ids(array) ' Fill array with IDs of playing events, returns count
|
|
224
|
+
get_event_tags(event) ' Returns combined tag value
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
## MIDI Controller Functions
|
|
228
|
+
|
|
229
|
+
```
|
|
230
|
+
on controller
|
|
231
|
+
if EVENT_CC = 1 ' mod wheel
|
|
232
|
+
' handle mod wheel
|
|
233
|
+
end if
|
|
234
|
+
if EVENT_CC = CC_PITCHBEND
|
|
235
|
+
' handle pitch bend (-8192 to 8191)
|
|
236
|
+
end if
|
|
237
|
+
if EVENT_CC = CC_AFTERTOUCH
|
|
238
|
+
' handle channel aftertouch
|
|
239
|
+
end if
|
|
240
|
+
end on
|
|
241
|
+
|
|
242
|
+
ignore_controller() ' Don't update CC for mod routings
|
|
243
|
+
set_controller(cc, value) ' Set a CC value (0–127)
|
|
244
|
+
set_controller(CC_PITCHBEND, val) ' Set pitch bend (-8192 to 8191)
|
|
245
|
+
set_controller_hd(ch, cc, val, max) ' High-resolution CC
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
### set_controller — CC Bridge Pattern
|
|
249
|
+
|
|
250
|
+
`set_controller(cc, value)` sets a MIDI CC globally. Every mod routing in the instrument with `Source: "MIDI CC"` and a matching CC number responds immediately. This is the standard way to bridge a script property to the mod matrix when a routing is already set up in Gorilla Editor — the script just broadcasts the value rather than targeting a specific module param.
|
|
251
|
+
|
|
252
|
+
Common uses:
|
|
253
|
+
- **Crossfade between layers**: CC drives volume mod routings per group (see Crossfade pattern)
|
|
254
|
+
- **Custom Env segment timing**: CC routed to `Dest: "Time 1"` inside a `ModSourceCustom` makes envelope speed scriptable (see Glide pattern)
|
|
255
|
+
- **Any CC-controlled mod routing**: lighter than `set_module_param` when the routing is static
|
|
256
|
+
|
|
257
|
+
```
|
|
258
|
+
' Script property drives CC 5, which a Custom Env routing maps to glide speed:
|
|
259
|
+
on Glide_Time ' prop_linear Glide_Time(0, 127, 1)
|
|
260
|
+
set_controller(5, Glide_Time)
|
|
261
|
+
end on
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
## MIDI Output
|
|
265
|
+
|
|
266
|
+
```
|
|
267
|
+
send_midi_out(MIDI_COMMAND_NOTE_ON + channel, key, velocity)
|
|
268
|
+
send_midi_out(MIDI_COMMAND_CC + channel, cc, value)
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
## Polyphonic Aftertouch
|
|
272
|
+
|
|
273
|
+
```
|
|
274
|
+
on poly_at
|
|
275
|
+
' POLY_AT_KEY = which key
|
|
276
|
+
' POLY_AT[key] = pressure value
|
|
277
|
+
end on
|
|
278
|
+
```
|