@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.
Files changed (101) hide show
  1. package/LICENSE.md +64 -0
  2. package/README.md +103 -0
  3. package/generator-gorilla-engine-plugin/app/index.js +338 -0
  4. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/SKILL.md +295 -0
  5. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/effects-filters.md +186 -0
  6. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/indexing.md +129 -0
  7. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/instrument-files.md +547 -0
  8. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/key-rules.md +81 -0
  9. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/modulation.md +210 -0
  10. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/module-control.md +217 -0
  11. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/module-reference-bus-effects.md +663 -0
  12. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/module-reference-core.md +145 -0
  13. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/module-reference-misc.md +59 -0
  14. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/module-reference-modulation.md +85 -0
  15. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/module-reference-voice-effects.md +407 -0
  16. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/note-events.md +278 -0
  17. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/properties.md +230 -0
  18. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/script-patterns.md +494 -0
  19. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-dsp/references/time-tempo.md +209 -0
  20. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-ui/SKILL.md +104 -0
  21. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-ui/references/advanced-controls.md +194 -0
  22. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-ui/references/base-props.md +167 -0
  23. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-ui/references/basic-controls.md +230 -0
  24. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-ui/references/bindings.md +183 -0
  25. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-ui/references/composite-components.md +258 -0
  26. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-ui/references/containers.md +149 -0
  27. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-ui/references/editors.md +191 -0
  28. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-ui/references/event-handlers.md +150 -0
  29. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-ui/references/getting-started.md +143 -0
  30. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-ui/references/gorilla-engine-api.md +147 -0
  31. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-ui/references/instrument-api.md +250 -0
  32. package/generator-gorilla-engine-plugin/app/templates/.agents/skills/gorilla-engine-ui/references/visualization.md +209 -0
  33. package/generator-gorilla-engine-plugin/app/templates/.prettierignore +13 -0
  34. package/generator-gorilla-engine-plugin/app/templates/.vscode/settings.json +14 -0
  35. package/generator-gorilla-engine-plugin/app/templates/.vscode_input/launch.json +89 -0
  36. package/generator-gorilla-engine-plugin/app/templates/README.md +36 -0
  37. package/generator-gorilla-engine-plugin/app/templates/assets/fonts/OFL.txt +93 -0
  38. package/generator-gorilla-engine-plugin/app/templates/assets/fonts/Roboto-Bold.otf +0 -0
  39. package/generator-gorilla-engine-plugin/app/templates/assets/fonts/Roboto-Medium.otf +0 -0
  40. package/generator-gorilla-engine-plugin/app/templates/assets/fonts/Roboto-Regular.otf +0 -0
  41. package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/Presets/Factory/Category 1/Init.preset +1 -0
  42. package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/Presets/Factory/Category 1/Three Quarters.preset +1 -0
  43. package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/Horizontal Slider.png +0 -0
  44. package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/Horizontal Slider@2x.png +0 -0
  45. package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/Rotary Bipolar.png +0 -0
  46. package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/Rotary-Bipolar@2x.png +0 -0
  47. package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/Rotary.png +0 -0
  48. package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/Rotary@2x.png +0 -0
  49. package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/arrow-down-default.png +0 -0
  50. package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/arrow-down-default@2x.png +0 -0
  51. package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/arrow-down-hover.png +0 -0
  52. package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/arrow-down-hover@2x.png +0 -0
  53. package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/arrow-down-pressed.png +0 -0
  54. package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/arrow-down-pressed@2x.png +0 -0
  55. package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/arrow-up-default.png +0 -0
  56. package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/arrow-up-default@2x.png +0 -0
  57. package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/arrow-up-hover.png +0 -0
  58. package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/arrow-up-hover@2x.png +0 -0
  59. package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/arrow-up-pressed.png +0 -0
  60. package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/arrow-up-pressed@2x.png +0 -0
  61. package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/toggle-default.png +0 -0
  62. package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/toggle-default@2x.png +0 -0
  63. package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/toggle-pressed.png +0 -0
  64. package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/images/toggle-pressed@2x.png +0 -0
  65. package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/instruments/Basic Synth Example_part1.blob +0 -0
  66. package/generator-gorilla-engine-plugin/app/templates/basic-synth/assets/instruments/Basic Synth Example_part2.blob +1 -0
  67. package/generator-gorilla-engine-plugin/app/templates/basic-synth/instrument/Basic Synth Example.inst +157 -0
  68. package/generator-gorilla-engine-plugin/app/templates/basic-synth/instrument/Basic Synth Example.txt +184 -0
  69. package/generator-gorilla-engine-plugin/app/templates/basic-synth/src/app/Root.tsx +35 -0
  70. package/generator-gorilla-engine-plugin/app/templates/basic-synth/src/app/components/ErrorBoundary.tsx +138 -0
  71. package/generator-gorilla-engine-plugin/app/templates/basic-synth/src/app/components/UserInterface.tsx +338 -0
  72. package/generator-gorilla-engine-plugin/app/templates/basic-synth/src/app/pluginConfig.ts +4 -0
  73. package/generator-gorilla-engine-plugin/app/templates/basic-synth/src/dialogsCustomStyle.ts +98 -0
  74. package/generator-gorilla-engine-plugin/app/templates/basic-synth/src/index.tsx +217 -0
  75. package/generator-gorilla-engine-plugin/app/templates/basic-synth/src/presetBrowserCustomStyle.ts +124 -0
  76. package/generator-gorilla-engine-plugin/app/templates/build.ugep +173 -0
  77. package/generator-gorilla-engine-plugin/app/templates/effect/assets/Presets/Factory/Category 1/01 - All The Way Down.preset +1 -0
  78. package/generator-gorilla-engine-plugin/app/templates/effect/assets/Presets/Factory/Category 1/02 - About Half.preset +1 -0
  79. package/generator-gorilla-engine-plugin/app/templates/effect/assets/Presets/Factory/Category 1/03 - Three Quarters.preset +1 -0
  80. package/generator-gorilla-engine-plugin/app/templates/effect/assets/Presets/Factory/Category 1/04 - All The Way Up.preset +1 -0
  81. package/generator-gorilla-engine-plugin/app/templates/effect/assets/images/Rotary.png +0 -0
  82. package/generator-gorilla-engine-plugin/app/templates/effect/assets/images/Rotary@2x.png +0 -0
  83. package/generator-gorilla-engine-plugin/app/templates/effect/assets/instruments/Reverb Example_part1.blob +0 -0
  84. package/generator-gorilla-engine-plugin/app/templates/effect/assets/instruments/Reverb Example_part2.blob +1 -0
  85. package/generator-gorilla-engine-plugin/app/templates/effect/instrument/Reverb Example.inst +73 -0
  86. package/generator-gorilla-engine-plugin/app/templates/effect/instrument/Reverb Example.txt +21 -0
  87. package/generator-gorilla-engine-plugin/app/templates/effect/src/app/Root.tsx +35 -0
  88. package/generator-gorilla-engine-plugin/app/templates/effect/src/app/components/ErrorBoundary.tsx +114 -0
  89. package/generator-gorilla-engine-plugin/app/templates/effect/src/app/components/UserInterface.tsx +85 -0
  90. package/generator-gorilla-engine-plugin/app/templates/effect/src/app/pluginConfig.ts +4 -0
  91. package/generator-gorilla-engine-plugin/app/templates/effect/src/dialogsCustomStyle.ts +101 -0
  92. package/generator-gorilla-engine-plugin/app/templates/effect/src/index.tsx +214 -0
  93. package/generator-gorilla-engine-plugin/app/templates/effect/src/presetBrowserCustomStyle.ts +124 -0
  94. package/generator-gorilla-engine-plugin/app/templates/gitignore +9 -0
  95. package/generator-gorilla-engine-plugin/app/templates/licence.txt +0 -0
  96. package/generator-gorilla-engine-plugin/app/templates/package.json +38 -0
  97. package/generator-gorilla-engine-plugin/app/templates/prettierrc +9 -0
  98. package/generator-gorilla-engine-plugin/app/templates/tsconfig.json +20 -0
  99. package/generator-gorilla-engine-plugin/package.json +17 -0
  100. package/index.js +72 -0
  101. package/package.json +42 -0
@@ -0,0 +1,145 @@
1
+ # Gorilla Editor — Module Reference: Core Modules
2
+
3
+ Covers: Instrument, Script, Group, Zone, and trigger Conditions.
4
+
5
+ ## Contents
6
+ 1. [Instrument](#Instrument)
7
+ 2. [Script](#Script)
8
+ 3. [Group](#Group)
9
+ 4. [Zone](#Zone)
10
+ 5. [Alternate Condition](#Alternate-Condition)
11
+ 6. [Controller Condition](#Controller-Condition)
12
+ 7. [Keyswitch Condition](#Keyswitch-Condition)
13
+ 8. [Random Condition](#Random-Condition)
14
+
15
+ ---
16
+
17
+ ## Instrument
18
+ Every instrument has one Instrument module.
19
+ | Parameter | Description |
20
+ | --------- | ----------- |
21
+ | Name | Instrument name. |
22
+ | Blob Number | The blob number to use when exporting the instrument to use in a Gorilla Engine based product can be set here. Set to '-' to include a custom blob name in the Blob Path. |
23
+ | Blob Path | Folder to save the .blob file (path should be relative to the instrument location). |
24
+ | Volume | Volume for the whole instrument (leave at 0.0 dB to minimize CPU load). Often this parameter will be controlled by the instrument script to implement the master volume. |
25
+ | Tune | Tuning for the whole instrument - note this is tuning of all samples, not transposition of the MIDI input. |
26
+ | Output | Selects the main audio output - normally leave this set to 1. |
27
+ | Voices | Displays the current number of voices the instrument is playing. |
28
+ | Sustain Pedal | Sets the sustain pedal mode. Possible values are: <br />`Off`: No response to sustain pedal, so it can be handled in the instrument script.<br />`On`: Normal response to sustain pedal.<br />`Latch`: Sustain notes until the next note is played.<br />`Damper`: Sustained voices are not released while the sustain pedal is held, or the key that triggered the voice has been played again and is still held. |
29
+ | Glide | Only has an effect in Group modules where the Glide mod source is used. Possible values are: <br />`Off`: No glide.<br />`On`: Always glide.<br />`Auto`: Only glide if a key is already held. |
30
+ | Default Keyswitch | Sets which keyswitch key (if any) will be active when the instrument is loaded. |
31
+ | Pitch Bend Range | Adjust maximum depth of all modulation routings from Pitch Bend to Group Tune. |
32
+ | Active Events | Displays the number of script events currently active - useful for script debugging. Hanging events are most likely note events that were never released. |
33
+ | Script Defines | List of words separated by spaces or commas, used with script USE_CODE_IF(). |
34
+ | Overview Size | Number of overview points to generate for samples (applied when exporting). |
35
+ | Simultaneous Max | If set, limits the number of MIDI note and pedal messages in one audio buffer to reduce the maximum CPU load. Excess messages are delayed until the next audio buffer. |
36
+ | Group Solo | Displays if any groups are currently soloed. |
37
+ | Bus Solo | Displays if any effect busses are currently soloed. |
38
+ | Groups | [Group](#Group) |
39
+ | Mappings | [Mapping](#Mapping) |
40
+ | Voice Groups | [VoiceGroup](#VoiceGroup) |
41
+ | FX Busses | [EffectBus](#EffectBus) |
42
+ | Wavetables | [Wavetable](#Wavetable) |
43
+ | MIDI Files | [MidiFile](#MidiFile) |
44
+ | Data Files | [DataFile](#DataFile) |
45
+ | Scripts | [Script](#Script) |
46
+
47
+ ## Script
48
+ Contains the instrument script and displays any parameters declared in the script for editing.
49
+ | Parameter | Description |
50
+ | --------- | ----------- |
51
+ | Bypass | Bypass processing of note and controller events by this script. |
52
+ | Script Path | Location of script text file on disk. |
53
+ | Script | Text of currently active script. |
54
+ | Status | Last message printed by the script. |
55
+
56
+ ## Group
57
+ The Instrument can have any number of Group modules. A Group module organizes multiple sample zones and allows for setting trigger conditions and other settings that apply to all samples in the Group. Each Group can contain up to 16 mod sources, 64 mod routings and 8 filters.
58
+ | Parameter | Description |
59
+ | --------- | ----------- |
60
+ | Name | Name to display for this Group. |
61
+ | Active | When switched off, the Group will not respond to incoming notes. |
62
+ | Volume | Volume for all voices in the Group. |
63
+ | Pan | Pan (balance if stereo) for all voices in the Group. |
64
+ | Tune | Coarse and fine tuning for all voices in the Group. |
65
+ | Tracking | Pitch tracking of samples across the keyboard (0% = none, 100% = normal). |
66
+ | Output | Select the audio output or Effect Bus to output all Group voices to. |
67
+ | Voice Group | Select a Voice Group to control the Group polyphony. |
68
+ | Voices | Displays the current number of voices the Group is playing. |
69
+ | Quality | Sample playback interpolation mode. Each mode has a different trade-off between CPU load and sound quality. Possible values are: <br />`Eco`: Lowest quality and CPU load. Fine for background sounds, or sounds with little high frequency content.<br />`Mid`: Middle quality and CPU load. Use instead of Lagrange to increase quality if transposing up a long way.<br />`High`: Higher quality and CPU load. Use instead of Sinc 8 to save CPU if transposing up a long way.<br />`Lagrange`: Standard 4-point Lagrange interpolation. Good quality for most sounds. Low CPU load.<br />`Hermite`: 4-point Hermite interpolation. Similar to Lagrange but sounds smoother at the expense of some aliasing.<br />`Sinc 8`: 8-point Sinc interpolation. High quality, but high CPU load especially when transposing up.<br />`Vintage`: Emulates a variable rate DAC without an anti-imaging filter (so you might want to add your own lowpass filter tracking the pitch). Low CPU load. |
70
+ | Release Trigger | Group should play when a note-off is received rather than a note-on. |
71
+ | Release Timer | Used as a mod source for attenuation of release-triggered voices depending on how long the note was held. |
72
+ | Sample Start | Adjust the sample start point of all zones in the Group (subject to the zone Start Mod Range setting). |
73
+ | Loop Follows Start | Possible values are: <br />`Off`: The sample loop set in the Zone is played, unaffected.<br />`On`: The sample loop is shifted to the playback start position, which can then be modulated.<br />`Quantized`: The loop position is rounded to the nearest multiple of the loop length, so startpoint modulation steps through different sections of the sample for wavetable-style playback. For best results set the sample loop to the last wavetable in the sample and Start Mod Range to maximum.<br />`Quant+Phase`: Same as Quantized, but the sample starts playing at a random position within the loop, to avoid unwanted alignment between unison voices. |
74
+ | Mapping Shift | This allows the sample mapping to be shifted up or down the keyboard. Usually used in combination with the Tune parameter to transpose the group, compared to just tuning the group which may play samples outside their normal key range. |
75
+ | Alternate Mapping | Select an alternative set of sample zones to play, instead of this group's zones. |
76
+ | De-glitch Start | Reduce clicks when the sample startpoint is not at a zero crossing. |
77
+ | Mute | Mute the output of this group (unless Solo is on). Does not stop voices in the group from playing. |
78
+ | Solo | Solo this group and mute any non-soloed groups. Set to Ignore if soloing other groups should not mute this one. |
79
+ | Conditions | [Condition*](#Condition*) |
80
+ | ModSources | [ModSource*](#ModSource*) |
81
+ | ModRoutings | [ModRouting](#ModRouting) |
82
+ | Filters | [Filter*](#Filter*) |
83
+ | Zones | [Zone](#Zone) |
84
+
85
+ ## Zone
86
+ Each Group can contain any number of Zone modules. Each Zone loads and plays one audio file. A Zone with no audio file can still be used to trigger voices that use oscillators to generate their sound.
87
+ | Parameter | Description |
88
+ | --------- | ----------- |
89
+ | Sample | Relative path and filename of sample this zone plays. |
90
+ | Status | Displays if the sample was Loaded, Not Loaded, or Not Found. |
91
+ | Volume | Volume offset. |
92
+ | Pan | Pan position offset. |
93
+ | Tune | Tuning offset. |
94
+ | Root Key | Key that will play the sample at its original pitch. |
95
+ | Low Key | Lowest key that will trigger this zone. |
96
+ | High Key | Highest key that will trigger this zone. |
97
+ | Low Vel | Lowest velocity that will trigger this zone. |
98
+ | High Vel | Highest velocity that will trigger this zone. |
99
+ | Low Key Fade | Fade out at bottom of key range. |
100
+ | High Key Fade | Fade out at top of key range. |
101
+ | Low Vel Fade | Fade out at bottom of velocity range. |
102
+ | High Vel Fade | Fade out at top of velocity range. |
103
+ | Fade Curve | Curve of fades (0 = linear, 100 = equal power). |
104
+ | Start | Start point of sample, in frames. |
105
+ | Start Mod Range | Startpoint modulation range in frames. |
106
+ | End | End point of sample, in frames. |
107
+ | Length | Display available length in frames. |
108
+ | Reverse | Play the sample in reverse (from End until Start or Loop Start). |
109
+ | Loop | Enable looping. |
110
+ | Loop Start | Loop start point, in frames. |
111
+ | Loop End | Loop end point, in frames (this frame is not included in the loop). |
112
+ | Slice Length | Imported from Recycle files or set manually - can be read by instrument script. |
113
+ | Zone Param 1 | Per-zone value to use as a modulation source. |
114
+ | Zone Param 2 | Per-zone value to use as a modulation source. |
115
+ | Orig Tempo | Imported from Apple Loop, Acid or REX files or set manually - read by Timestretch module. |
116
+
117
+ ## Alternate Condition
118
+ Lets you define Round Robins, where each note plays a different group in turn. Note that much more detailed conditions can be set up in the instrument script.
119
+ | Parameter | Description |
120
+ | --------- | ----------- |
121
+ | Position | Position of this Group in the cycle of Groups with Alternate trigger conditions (0 = never play). |
122
+ | Next Condition | Logic for combining the result of this trigger condition with the next (if any). 'And' conditions are evaluated before 'Or', so for example: A AND B OR C AND NOT D is evaluated as (A AND B) OR (C AND NOT D). |
123
+
124
+ ## Controller Condition
125
+ Only play the group if a MIDI controller is in the specified range, e.g. only when the Sustain Pedal is down. Note that much more detailed conditions can be set up in the instrument script.
126
+ | Parameter | Description |
127
+ | --------- | ----------- |
128
+ | CC | MIDI controller number. |
129
+ | From | Lowest controller value that enables this Group. |
130
+ | To | Highest controller value that enables this Group. |
131
+ | Next Condition | Logic for combining the result of this trigger condition with the next (if any). 'And' conditions are evaluated before 'Or', so for example: A AND B OR C AND NOT D is evaluated as (A AND B) OR (C AND NOT D). |
132
+
133
+ ## Keyswitch Condition
134
+ Activate different groups depending on which keyswitch MIDI key was last pressed, e.g. for selecting articulations in Orchestral instruments. Note that much more detailed conditions can be set up in the instrument script.
135
+ | Parameter | Description |
136
+ | --------- | ----------- |
137
+ | From | Lowest keyswitch key that enables this Group. |
138
+ | To | Highest keyswitch key that enables this Group. |
139
+ | Next Condition | Logic for combining the result of this trigger condition with the next (if any). 'And' conditions are evaluated before 'Or', so for example: A AND B OR C AND NOT D is evaluated as (A AND B) OR (C AND NOT D). |
140
+
141
+ ## Random Condition
142
+ Use when you want to alternate between two or more Groups in a random order. Note that much more detailed conditions can be set up in the instrument script.
143
+ | Parameter | Description |
144
+ | --------- | ----------- |
145
+ | Next Condition | Logic for combining the result of this trigger condition with the next (if any). 'And' conditions are evaluated before 'Or', so for example: A AND B OR C AND NOT D is evaluated as (A AND B) OR (C AND NOT D). |
@@ -0,0 +1,59 @@
1
+ # Gorilla Editor — Module Reference: Miscellaneous Modules
2
+
3
+ Covers: Alternate Mapping, Voice Group, Wavetable, MIDI File, and Data File.
4
+
5
+ ## Contents
6
+ 1. [Alternate Mapping](#Alternate-Mapping)
7
+ 2. [Voice Group](#Voice-Group)
8
+ 3. [Wavetable](#Wavetable)
9
+ 4. [MIDI File](#MIDI-File)
10
+ 5. [Data File](#Data-File)
11
+
12
+ ---
13
+
14
+ ## Alternate Mapping
15
+ Collection of Zones that can be played by any Group, as an alternative to the Group's own Zones.
16
+ | Parameter | Description |
17
+ | --------- | ----------- |
18
+ | Name | Name to display for this Mapping. |
19
+ | Active | When switched off, this mapping's samples will be purged (not preloaded in memory) unless they are used in other Groups or Mappings. |
20
+ | Zones | [Zone](#Zone) |
21
+
22
+ ## Voice Group
23
+ Polyphony management settings. The available voices in a Voice Group are shared between all Groups assigned to that Voice Group. There is always at least one Voice Group called Instrument Voices which sets the overall maximum polyphony of the instrument. If a Group is not assigned to a Voice Group its polyphony is still managed by the Instrument Voices settings.
24
+ | Parameter | Description |
25
+ | --------- | ----------- |
26
+ | Max Voices | Maximum number of voices for all Groups assigned to this voice Group. |
27
+ | Per-Key Voices | Maximum number of voices on the same note (leave set to '-' if not needed). |
28
+ | Voices | Displays the current number of voices played in this Voice Group. |
29
+ | Voice Stealing | Priority mode for stealing voices when Max Voices is exceeded. |
30
+ | Prefer Released | Prefer to steal voices that were already released. |
31
+ | Exclusive Group | When a voice is triggered, all voices in other Groups with the same Exclusive Group setting in their voice Group will be cut off. |
32
+ | Fade Time | Fade-out length for voices that get stolen. |
33
+
34
+ ## Wavetable
35
+ Set of waveforms that can be played by the Wavetable oscillator. The size and number of waveforms in the wavetable can be varied, and they be overwritten by dropping a WAV file. When using the 'windowed' option the spectrum is measured at equally spaced points along the WAV file, otherwise the WAV file is assumed to contain a series of single cycle waveforms to import. The import uses the current size and number of waveforms - it can help to try adjusting these to get the best import, or adjusting the wavetable size (number of harmonics) after import.
36
+ | Parameter | Description |
37
+ | --------- | ----------- |
38
+ | Name | Name to display for this module. |
39
+ | Waves | Waveform/spectrum editor. |
40
+
41
+ ## MIDI File
42
+ MIDI sequence, created by dragging a .mid file into the instrument. Can be accessed by the instrument script.
43
+ | Parameter | Description |
44
+ | --------- | ----------- |
45
+ | Name | Name to display for this module. |
46
+ | File Path | Displayed the location of the MIDI file on your computer |
47
+ | Reload | Re-loads the MIDI file into the module (for example, if the file has been edited) |
48
+ | Tracks | Displays the number of tracks in the sequence. |
49
+
50
+ ## Data File
51
+ Array of data, created by dragging a .csv or .nka file into the instrument. Can be accessed by the instrument script. The file should only contain integer values separated by commas and line breaks.
52
+ | Parameter | Description |
53
+ | --------- | ----------- |
54
+ | Name | Name to display for this module. |
55
+ | Save Changes | Determines if and how modified data is saved. OFF means data is not saved. SESSION means modified data is saved with the session. PATCH means modified data is saved with the patch. |
56
+ | Range | Sets the available range for step values. Options include +/- 128 steps, +/- 20,000 steps, or +/- 1,000,000 steps. |
57
+ | Steps | Sets the maximum number of steps in the data file. |
58
+ | Data | Data is visually displayed and can be edited by click-dragging. |
59
+ | Step Value | The currently selected step (highlighted) with precision by click-dragging its numerical value or by double-clicking the value and entering it directly. |
@@ -0,0 +1,85 @@
1
+ # Gorilla Editor — Module Reference: Modulation Modules
2
+
3
+ Covers: ADSR Env, Custom Env, LFO, Step Seq, and Mod Routing.
4
+
5
+ > **Cross-references:** `ModRouting` is defined in this file and referenced throughout voice effects and bus effects files.
6
+
7
+ ## Contents
8
+ 1. [ADSR Env](#ADSR-Env)
9
+ 2. [Custom Env](#Custom-Env)
10
+ 3. [LFO](#LFO)
11
+ 4. [Step Seq](#Step-Seq)
12
+ 5. [Mod Routing](#Mod-Routing)
13
+
14
+ ---
15
+
16
+ ## ADSR Env
17
+ Standard synthesizer envelope, to use as a mod source.
18
+ | Parameter | Description |
19
+ | --------- | ----------- |
20
+ | Name | Name to display for this mod source. |
21
+ | ModRoutings | See [Mod Routing](#Mod-Routing) |
22
+ | Attack | Attack time. |
23
+ | Attack Curve | -100% (slow to reach final value) to +100% (fast to reach final value). |
24
+ | Hold | Hold time at maximum level. |
25
+ | Decay | Decay time. |
26
+ | Decay Curve | -100% (slow to reach final value) to +100% (fast to reach final value). Typically 75 - 90% for exponential curves. |
27
+ | Sustain | Sustain Level. |
28
+ | Release | Release time. |
29
+ | Release Curve | Typically +90% for exponential fade out, or 0% for linear. |
30
+ | Hold End Level | Level at the end of the Hold stage. |
31
+ | Times x10 | Multiplies all time parameters by 10. |
32
+ | Tempo Sync | Sync envelope times to host tempo. |
33
+
34
+ ## Custom Env
35
+ Customizable multi-point curve, to use as a mod source.
36
+ | Parameter | Description |
37
+ | --------- | ----------- |
38
+ | Name | Name to display for this mod source. |
39
+ | ModRoutings | See [Mod Routing](#Mod-Routing) |
40
+ | Sync | Measure envelope stage lengths in seconds or quarternote beats. |
41
+ | Curve | Edit the envelope points. |
42
+ | Randomize Levels | Randomize the level of each envelope point on each trigger. |
43
+
44
+ > **Scripting tip — Controllable segment timing:** A `Custom Env`'s internal `ModRoutings` can use `Dest: "Time 1"`, `"Time 2"`, etc. to modulate individual segment durations from an external mod source (e.g. `MIDI CC`). Set the routing up in Gorilla Editor, then use `set_controller(cc, value)` in the script to control the timing at runtime. This is the standard way to make custom envelope speed scriptable. See the *Glide via ModSourceCustom + set_controller* pattern in [script-patterns.md](./script-patterns.md).
45
+
46
+ ## LFO
47
+ Low Frequency Oscillator, to use as a mod source.
48
+ | Parameter | Description |
49
+ | --------- | ----------- |
50
+ | Name | Name to display for this mod source. |
51
+ | ModRoutings | See [Mod Routing](#Mod-Routing) |
52
+ | Wave | Sine, Triangle, Square, Saw, Random (random steps), Drift (smooth random), Saw Up, Saw Exp (exponential decay). |
53
+ | Rate | Duration of 1 cycle of the LFO waveform. |
54
+ | Sync | Set Rate units to Hz (cycles per second) or beats (quarternotes per cycle). |
55
+ | Retrigger | When Off, all voices will be modulated together in sync. When On, the LFO for each voice starts from the beginning when the note is triggered. |
56
+ | Start Phase | This shifts the starting point in the LFO waveform. It is most useful when Retrigger is off and Sync is set to beats: then it adjusts the alignment of the LFO waveform relative to beats on the song timeline. |
57
+ | Unipolar | When On, the LFO output varies between 0.0 and 1.0, rather than -1.0 and 1.0. |
58
+
59
+ ## Step Seq
60
+ Step sequence generator, to use as a mod source.
61
+ | Parameter | Description |
62
+ | --------- | ----------- |
63
+ | Name | Name to display for this mod source. |
64
+ | ModRoutings | See [Mod Routing](#Mod-Routing) |
65
+ | Rate | Length of each step in beats. |
66
+ | Steps | Number of steps to repeat (1 to 32). |
67
+ | Sequence | Level for each step. |
68
+ | Retrigger | When Off, all voices will be modulated together in sync. When On, the sequence for each voice starts from the beginning when the note is triggered. |
69
+
70
+ ## Mod Routing
71
+ Modulation routing, to modulate a parameter of the module containing the routing by one of the available mod source signals. Each Group can contain up to 64 mod routings.
72
+ | Parameter | Description |
73
+ | --------- | ----------- |
74
+ | Active | Switch the modulation routing on and off (an inactive routing still uses a little CPU, so delete any that are no longer needed). |
75
+ | Source | Modulation Source. External (MIDI) and Group (e.g. envelope and LFO) sources are available here. Possible values are: <br />`Constant`: Constant maximum value<br />`Random`: Random bipolar value between -1 and +1<br />`Random +`: Random unipolar value between 0 and 1.<br />`Pitch Bend`: Incoming MIDI pitch bend.<br />`Aftertouch`: Incoming MIDI channel pressure.<br />`MIDI CC`: The current value of the specified MIDI controller.<br />`Use MIDI Channel`: Use the pitch bend, aftertouch or CC value from the note's MIDI channel. When off, uses the last value received on any channel.<br />`Key`: Keyboard position relative to C3. Value increases by 1.0 per octave. For convenience, Key includes all other pitch modulation such as Pitch Bend when used to modulate a voice effect.<br />`Velocity`: Incoming MIDI velocity.<br />`Release Timer`: Set on note release based on Group Release Timer setting. value is 1 if note is released immediately, 0.5 if released after half the Timer time, and so on).<br />`Glide`: Distance relative to previous key, if Instrument Glide setting is active.<br />`Event Param 0`: Value set by script or an envelope follower.<br />`Event Param 1`: Value set by script or an envelope follower.<br />`Event Param 2`: Value set by script or an envelope follower.<br />`Event Param 3`: Value set by script or an envelope follower.<br />`Release Vel`: Release velocity (bipolar, zero until note released).<br />`Vel In Zone`: Velocity relative to zone velocity range (from -1 to 0).<br />`Zone Param 1`: Value read from the Zone being played.<br />`Zone Param 2`: Value read from the Zone being played. |
76
+ | CC | Selects the MIDI controller to monitor when Source is set to MIDI CC. |
77
+ | Invert | Reduce the destination parameter instead of increasing it. |
78
+ | Depth | Amount of modulation. (100% pitch modulation = 1 octave). |
79
+ | Smooth | Smoothing of parameter changes - useful for MIDI controllers. At the maximum setting the initial value is held forever. |
80
+ | Dest | Destination parameter to be modulated (depends on the module the routing is inserted in). |
81
+ | Curve Active | Determines if a custom curve is applied to the source value. |
82
+ | Curve | Edit the curve points. |
83
+ | Use MIDI Channel | For MIDI source, use the last value on the channel that triggered this voice, rather than the last value on any channel. |
84
+ | Freeze In Release | Hold the source value so it doesn't change after the key is released. |
85
+ | Custom Dest | Additional destination parameter for advanced routing. |