@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,98 @@
1
+ import {
2
+ DialogHorizontalAlign,
3
+ DialogVerticalAlign,
4
+ DialogsStyleState,
5
+ } from '@gorilla-engine-sdk/ge-dialogs-lib/dist/DialogsStyleState'
6
+
7
+ export const dialogsCustomStyle: DialogsStyleState = {
8
+ pluginWidth: 920,
9
+ pluginHeight: 640,
10
+
11
+ modal: {
12
+ horizontalAlign: DialogHorizontalAlign.CENTER,
13
+ horizontalOffset: 0,
14
+ verticalAlign: DialogVerticalAlign.CENTER,
15
+ verticalOffset: 0,
16
+
17
+ blockingBackgroundColor: '33000000',
18
+
19
+ modalWidth: 400,
20
+ modalHeight: 220,
21
+ headerHeight: 50,
22
+ horizontalContentMargin: 16,
23
+
24
+ modal: {
25
+ cornerRadius: 4,
26
+ border: {
27
+ width: 1,
28
+ color: '3F4354',
29
+ },
30
+ backgroundColor: '2F333F',
31
+ },
32
+
33
+ title: {
34
+ fontSize: 20,
35
+ textColor: 'ffffff',
36
+ textAlign: 'center',
37
+ },
38
+
39
+ dividerLine: {
40
+ height: 1,
41
+ backgroundColor: '3F4354',
42
+ },
43
+
44
+ message: {
45
+ fontSize: 14,
46
+ textColor: 'ffffff',
47
+ textAlign: 'top left',
48
+ multiLine: true,
49
+ },
50
+
51
+ cancelButton: {
52
+ backgroundColor: '21242E',
53
+ textColor: 'E1E6F5',
54
+ font: 'fonts/Roboto-Medium.otf',
55
+ cornerRadius: 4,
56
+ },
57
+ approveButton: {
58
+ backgroundColor: '5177E0',
59
+ textColor: 'E1E6F5',
60
+ font: 'fonts/Roboto-Medium.otf',
61
+ cornerRadius: 4,
62
+ },
63
+
64
+ closeButton: {
65
+ width: 20,
66
+ height: 20,
67
+ backgroundColor: '333333',
68
+ cornerRadius: 10,
69
+ text: 'X',
70
+ },
71
+ closeButtonPosition: {
72
+ position: 'right',
73
+ space: 15,
74
+ },
75
+ },
76
+
77
+ notification: {
78
+ horizontalAlign: DialogHorizontalAlign.RIGHT,
79
+ horizontalOffset: -30,
80
+ verticalAlign: DialogVerticalAlign.BOTTOM,
81
+ verticalOffset: -30,
82
+ container: {
83
+ width: 300,
84
+ height: 40,
85
+ cornerRadius: 5,
86
+ backgroundColor: '333333',
87
+ },
88
+ label: {},
89
+ },
90
+
91
+ toolTip: {
92
+ container: { backgroundColor: '000000', cornerRadius: 5, height: 35 },
93
+ label: {
94
+ fontSize: 13,
95
+ textAlign: 'center',
96
+ },
97
+ },
98
+ }
@@ -0,0 +1,217 @@
1
+ import path = require('path');
2
+ import os = require('os');
3
+
4
+ import * as React from 'react';
5
+ import * as GEReact from '@gorilla-engine-sdk/gorilla-engine-react';
6
+ import { Root } from './app/Root';
7
+ import { ErrorBoundary } from './app/components/ErrorBoundary';
8
+ import {
9
+ SessionAndPresetsConfig,
10
+ SessionAndPresetsDispatchTypes,
11
+ SessionAndPresetsState,
12
+ SessionAndPresetsStateProvider,
13
+ SessionAndPresetsWrapper,
14
+ defaultSessionAndPresetsConfig,
15
+ defaultSessionAndPresetsState,
16
+ useSessionAndPresetsStateDispatch,
17
+ } from '@gorilla-engine-sdk/ge-session-presets-lib';
18
+ import {
19
+ Dialogs,
20
+ DialogsStylesState,
21
+ dialogsDefaultStyle,
22
+ } from '@gorilla-engine-sdk/ge-dialogs-lib';
23
+ import {
24
+ PresetBrowser,
25
+ PresetBrowserConfig,
26
+ PresetBrowserStyle,
27
+ defaultPresetBrowserConfig,
28
+ defaultPresetBrowserStyle,
29
+ } from '@gorilla-engine-sdk/ge-preset-browser';
30
+
31
+ import { DefaultModalProps, DefaultModal, useModal } from '@gorilla-engine-sdk/ge-dialogs-lib';
32
+
33
+ import { BlobManager, loadBlob } from '@gorilla-engine-sdk/ge-blob-manager';
34
+ import { presetBrowserCustomStyle, presetBrowserSaveModalStyle } from './presetBrowserCustomStyle';
35
+ import { dialogsCustomStyle } from './dialogsCustomStyle';
36
+
37
+ const PLUGIN_WIDTH: number = 920;
38
+ const PLUGIN_HEIGHT: number = 590;
39
+
40
+ const MANUFACTURER: string = GorillaEngine.getManufacturerName();
41
+ const PLUGINNAME = GorillaEngine.getPluginName();
42
+
43
+ /**
44
+ * Factory Preset location
45
+ */
46
+ const FACTORY_PRESET_LOCATION: string = path.resolve(
47
+ GorillaEngine.getResourcePath(),
48
+ 'presets',
49
+ 'Factory',
50
+ );
51
+
52
+ const USER_CONTENT_PATH: string = path.resolve(os.homedir(), 'Documents', MANUFACTURER, PLUGINNAME);
53
+ const USER_PRESET_LOCATION: string = path.resolve(USER_CONTENT_PATH, 'Presets');
54
+
55
+ const dialogsStyle: DialogsStylesState = {
56
+ ...dialogsCustomStyle,
57
+ pluginWidth: PLUGIN_WIDTH,
58
+ pluginHeight: PLUGIN_HEIGHT,
59
+ };
60
+
61
+ /**
62
+ *
63
+ * Session Save/Restore & Presets config & content-state
64
+ *
65
+ */
66
+ const sessionAndPresetsConfiguration: SessionAndPresetsConfig = {
67
+ ...defaultSessionAndPresetsConfig,
68
+
69
+ presetFileSuffix: '.preset',
70
+ // Location of factory presets
71
+ factoryPresetPath: FACTORY_PRESET_LOCATION,
72
+ // Location of user presets
73
+ userPresetPath: USER_PRESET_LOCATION,
74
+
75
+ // Factory library display name
76
+ factoryPresetType: 'Factory',
77
+ // User library display name
78
+ userPresetType: 'User',
79
+
80
+ handleErrors: true,
81
+ };
82
+
83
+ const initialSessionAndPresetsState: SessionAndPresetsState = {
84
+ ...defaultSessionAndPresetsState,
85
+ instrument: undefined,
86
+ initialPresetPath: path.join(FACTORY_PRESET_LOCATION, 'Category 1', 'Init.preset'),
87
+ };
88
+
89
+ /**
90
+ * Preset Browser Config
91
+ */
92
+ const presetBrowserConfig: PresetBrowserConfig = {
93
+ ...defaultPresetBrowserConfig,
94
+ enforceCategories: true,
95
+ };
96
+
97
+ function Main() {
98
+ const sessionAndPresetStateDispath = useSessionAndPresetsStateDispatch();
99
+
100
+ const [instrument, setInstrument] = React.useState<GorillaEngine.Runtime.Instrument | undefined>(
101
+ undefined,
102
+ );
103
+ const [instrumentLoaded, setInstrumentLoaded] = React.useState(false);
104
+ const [instrumentName, setInstrumentName] = React.useState('');
105
+ let showRelocateTrigger = false;
106
+ // Logic has a different flow since it does not allow a popup if the UI is not visible
107
+ if (GorillaEngine.getHostDescription() == 'Apple Logic') {
108
+ showRelocateTrigger = true;
109
+ }
110
+
111
+ // setup Modal
112
+ const defaultModalProps = {
113
+ width: 400,
114
+ height: 200,
115
+
116
+ title: 'An Error Occured!',
117
+ message: 'Error message',
118
+
119
+ cancelTrigger: showRelocateTrigger,
120
+ cancelTriggerLabel: 'Locate',
121
+ onCancelTrigger: onLocate,
122
+ approveTrigger: false,
123
+ closeTrigger: false,
124
+ };
125
+ const [modalProps, setModalProps] = React.useState<DefaultModalProps>({
126
+ ...defaultModalProps,
127
+ });
128
+
129
+ const modalPropsRef = React.useRef(modalProps);
130
+ modalPropsRef.current = modalProps;
131
+
132
+ const [showModal, hideModal] = useModal(
133
+ () => <DefaultModal {...modalPropsRef.current} />,
134
+ [true, false],
135
+ );
136
+
137
+ async function onLocate() {
138
+ hideModal();
139
+ loadBlob({
140
+ pluginName: GorillaEngine.getPluginName(),
141
+ blobName: PLUGINNAME,
142
+ defaultBlobPath: path.join(GorillaEngine.getResourcePath(), 'assets', 'instruments'),
143
+ manufacturerName: GorillaEngine.getManufacturerName(),
144
+ onErrorLoadingInstrument: onErrorLoadingInstrument,
145
+ onInstrumentLoaded: onInstrumentLoaded,
146
+ });
147
+ }
148
+
149
+ // Callback when the BlobManager finds the blob and loads the instrument successfully
150
+ const onInstrumentLoaded = (instrument: GorillaEngine.Instrument, instrumentName: string) => {
151
+ const runtimeInstrument = instrument as GorillaEngine.Runtime.Instrument;
152
+ setInstrument(runtimeInstrument);
153
+ setInstrumentName(instrumentName);
154
+ setInstrumentLoaded(true);
155
+
156
+ // Enable MIDI processing
157
+ GorillaEngine.getPluginMM(true);
158
+
159
+ // Enable audio processing
160
+ GorillaEngine.getPluginAE(true);
161
+
162
+ sessionAndPresetStateDispath({
163
+ type: SessionAndPresetsDispatchTypes.setInstrument,
164
+ payload: {
165
+ instrument: instrument,
166
+ },
167
+ });
168
+ };
169
+
170
+ // Callback when the BlobManager cannot locate the blob
171
+ const onErrorLoadingInstrument = (errorMessage: string) => {
172
+ setModalProps({
173
+ ...defaultModalProps,
174
+ title: 'Error Loading Blob',
175
+ message: errorMessage,
176
+ });
177
+ showModal();
178
+ };
179
+
180
+ return (
181
+ <>
182
+ <BlobManager
183
+ pluginName={GorillaEngine.getPluginName()}
184
+ blobName={PLUGINNAME}
185
+ defaultBlobPath={path.join(GorillaEngine.getResourcePath(), 'assets', 'instruments')}
186
+ manufacturerName={GorillaEngine.getManufacturerName()}
187
+ onErrorLoadingInstrument={onErrorLoadingInstrument}
188
+ onInstrumentLoaded={onInstrumentLoaded}
189
+ />
190
+ {instrumentLoaded && <Root instrument={instrument} instrumentName={instrumentName} />}
191
+ </>
192
+ );
193
+ }
194
+
195
+ GEReact.createUI(
196
+ <React.StrictMode>
197
+ <ErrorBoundary>
198
+ <SessionAndPresetsStateProvider
199
+ config={sessionAndPresetsConfiguration}
200
+ state={initialSessionAndPresetsState}
201
+ >
202
+ <Dialogs styleState={dialogsStyle}>
203
+ <SessionAndPresetsWrapper>
204
+ <Main />
205
+ <PresetBrowser
206
+ config={presetBrowserConfig}
207
+ browserStyle={presetBrowserCustomStyle}
208
+ saveModalStyle={presetBrowserSaveModalStyle}
209
+ />
210
+ </SessionAndPresetsWrapper>
211
+ </Dialogs>
212
+ </SessionAndPresetsStateProvider>
213
+ </ErrorBoundary>
214
+ </React.StrictMode>,
215
+ PLUGIN_WIDTH,
216
+ PLUGIN_HEIGHT,
217
+ );
@@ -0,0 +1,124 @@
1
+ import { PresetBrowserSaveModalStyle, PresetBrowserStyle } from '@gorilla-engine-sdk/ge-preset-browser'
2
+
3
+ export const presetBrowserSaveModalStyle: PresetBrowserSaveModalStyle = {
4
+ fileNameLabel: {
5
+ textColor: 'E1E6F5',
6
+ font: 'fonts/Roboto-Medium.otf',
7
+ fontSize: 14,
8
+ },
9
+ fileNameInput: {
10
+ backgroundColor: '1d2029',
11
+ textColor: 'E1E6F5',
12
+ font: 'fonts/Roboto-Regular.otf',
13
+ fontSize: 14,
14
+ caretColor: 'E1E6F5',
15
+ },
16
+ categoryLabel: {
17
+ textColor: 'E1E6F5',
18
+ font: 'fonts/Roboto-Medium.otf',
19
+ fontSize: 14,
20
+ },
21
+ categoryComboBox: {
22
+ backgroundColor: '1d2029',
23
+ textColor: 'E1E6F5',
24
+ font: 'fonts/Roboto-Medium.otf',
25
+ fontSize: 14,
26
+ popup: {
27
+ backgroundColor: '1d2029',
28
+ itemTextColor: 'E1E6F5',
29
+ itemSelectedTextColor: 'E1E6F5',
30
+ itemHighlightedTextColor: 'E1E6F5',
31
+ itemSelectedBackgroundColor: '282c34',
32
+ itemHighlightedBackgroundColor: '5177E0',
33
+ },
34
+ },
35
+ }
36
+
37
+ export const presetBrowserCustomStyle: PresetBrowserStyle = {
38
+ container: {
39
+ x: 57,
40
+ y: 25,
41
+ width: 300,
42
+ height: 100,
43
+ backgroundColor: '2F323D',
44
+ interceptsMouseClicks: false,
45
+ },
46
+ comboBox: {
47
+ x: 0,
48
+ y: 0,
49
+ width: 200,
50
+ height: 30,
51
+ backgroundColor: '1d2029',
52
+ font: "fonts/Roboto-Medium.otf",
53
+ textColor: 'E1E6F5',
54
+ padding: 7,
55
+ levelSeperator: '|',
56
+ fontSize: 18,
57
+ textAlign: "center",
58
+ popup: {
59
+ backgroundColor: "1d2029",
60
+ itemTextColor: "E1E6F5",
61
+ itemSelectedTextColor: "E1E6F5",
62
+ itemHighlightedTextColor: "E1E6F5",
63
+ itemSelectedBackgroundColor: "282c34",
64
+ itemHighlightedBackgroundColor: "5177E0",
65
+ separatorHeight: 0,
66
+ separatorPadding: 0,
67
+ padding: { left: 16, top: 0, right: 0, bottom: 0 },
68
+ },
69
+ images: {
70
+ arrowIcon: "images/transparent.png",
71
+ popupCheckmarkHighlightedImage: "images/transparent.png",
72
+ }
73
+ },
74
+ prevButton: {
75
+ x: 205,
76
+ y: 0,
77
+ width: 30,
78
+ height: 30,
79
+ backgroundColor: '21242E',
80
+ textColor: 'E1E6F5',
81
+ font: "fonts/Roboto-Medium.otf",
82
+ text: '<',
83
+ },
84
+ nextButton: {
85
+ x: 235,
86
+ y: 0,
87
+ width: 30,
88
+ height: 30,
89
+ backgroundColor: '21242E',
90
+ textColor: 'E1E6F5',
91
+ font: "fonts/Roboto-Medium.otf",
92
+ text: '>',
93
+ },
94
+ deleteButton: {
95
+ x: 0,
96
+ y: 35,
97
+ width: 85,
98
+ height: 25,
99
+ backgroundColor: '21242E',
100
+ textColor: 'E1E6F5',
101
+ font: "fonts/Roboto-Medium.otf",
102
+ text: 'Delete',
103
+ },
104
+ saveButton: {
105
+ x: 90,
106
+ y: 35,
107
+ width: 85,
108
+ height: 25,
109
+ backgroundColor: '21242E',
110
+ textColor: 'E1E6F5',
111
+ font: "fonts/Roboto-Medium.otf",
112
+ text: 'Save',
113
+ },
114
+ saveAsButton: {
115
+ x: 180,
116
+ y: 35,
117
+ width: 85,
118
+ height: 25,
119
+ backgroundColor: '21242E',
120
+ textColor: 'E1E6F5',
121
+ font: "fonts/Roboto-Medium.otf",
122
+ text: 'Save As',
123
+ },
124
+ }
@@ -0,0 +1,173 @@
1
+ {
2
+ "version": "v3.3.0-beta8",
3
+ "ymlFiles": [],
4
+ "scriptFiles": [
5
+ {
6
+ "name": "<%= plugin_name %>.js",
7
+ "path": "esbuild/<%= plugin_name %>.js",
8
+ "entryPoint": "yes"
9
+ }
10
+ ],
11
+ "sharedFiles": [],
12
+ "blobFiles": [],
13
+ "assetFiles": [
14
+ {
15
+ "name": "fonts",
16
+ "path": "assets/fonts"
17
+ },
18
+ {
19
+ "name": "images",
20
+ "path": "assets/images"
21
+ },
22
+ {
23
+ "name": "instruments",
24
+ "path": "assets/instruments"
25
+ }
26
+ ],
27
+ "iconFiles": [],
28
+ "nodeModules": [],
29
+ "nativePlugins": [],
30
+ "presets": [
31
+ {
32
+ "name": "factory",
33
+ "path": "assets/Presets/Factory"
34
+ }
35
+ ],
36
+ "nks": {
37
+ "xmlDefinition": [],
38
+ "presets": [],
39
+ "instrumentPlist": [],
40
+ "databaseFiles": [],
41
+ "images": []
42
+ },
43
+ "scriptEntryPoint": {
44
+ "name": "<%= plugin_name %>.js",
45
+ "path": "esbuild/<%= plugin_name %>.js",
46
+ "entryPoint": "yes"
47
+ },
48
+ "ymlEntryPoint": null,
49
+ "blobEntryPoint": null,
50
+ "projectFileDir": "",
51
+ "projectFileName": "<%= plugin_name %>.ugep",
52
+ "projectName": "<%= plugin_name %>",
53
+ "installerScripts": {
54
+ "pre": {
55
+ "mac": "",
56
+ "windows": ""
57
+ },
58
+ "post": {
59
+ "mac": "",
60
+ "windows": "@echo off\r\nsetlocal\r\nset \"DESTINATION_DIR=%ProgramData%\\<%= manufacturer_name %>\\<%= plugin_name %>\\scripts\"\r\nset \"DESTINATION=%DESTINATION_DIR%\\credman.ps1\"\r\nif not exist \"%DESTINATION_DIR%\" mkdir \"%DESTINATION_DIR%\"\r\nif errorlevel 1 exit /b 1\r\n>\"%DESTINATION%\" echo if ^(-not ^([System.Management.Automation.PSTypeName]'CredMan.CredentialManager'^).Type^) ^{\r\n>>\"%DESTINATION%\" echo Add-Type -TypeDefinition @'\r\n>>\"%DESTINATION%\" echo using System;\r\n>>\"%DESTINATION%\" echo using System.Runtime.InteropServices;\r\n>>\"%DESTINATION%\" echo.\r\n>>\"%DESTINATION%\" echo namespace CredMan ^{\r\n>>\"%DESTINATION%\" echo public static class CredentialManager ^{\r\n>>\"%DESTINATION%\" echo [StructLayout^(LayoutKind.Sequential, CharSet = CharSet.Unicode^)]\r\n>>\"%DESTINATION%\" echo public struct CREDENTIAL ^{\r\n>>\"%DESTINATION%\" echo public uint Flags;\r\n>>\"%DESTINATION%\" echo public uint Type;\r\n>>\"%DESTINATION%\" echo public string TargetName;\r\n>>\"%DESTINATION%\" echo public string Comment;\r\n>>\"%DESTINATION%\" echo public System.Runtime.InteropServices.ComTypes.FILETIME LastWritten;\r\n>>\"%DESTINATION%\" echo public uint CredentialBlobSize;\r\n>>\"%DESTINATION%\" echo public IntPtr CredentialBlob;\r\n>>\"%DESTINATION%\" echo public uint Persist;\r\n>>\"%DESTINATION%\" echo public uint AttributeCount;\r\n>>\"%DESTINATION%\" echo public IntPtr Attributes;\r\n>>\"%DESTINATION%\" echo public string TargetAlias;\r\n>>\"%DESTINATION%\" echo public string UserName;\r\n>>\"%DESTINATION%\" echo ^}\r\n>>\"%DESTINATION%\" echo.\r\n>>\"%DESTINATION%\" echo [DllImport^(\"Advapi32.dll\", EntryPoint = \"CredReadW\", CharSet = CharSet.Unicode, SetLastError = true^)]\r\n>>\"%DESTINATION%\" echo public static extern bool CredRead^(string target, uint type, uint flags, out IntPtr credentialPtr^);\r\n>>\"%DESTINATION%\" echo.\r\n>>\"%DESTINATION%\" echo [DllImport^(\"Advapi32.dll\", EntryPoint = \"CredWriteW\", CharSet = CharSet.Unicode, SetLastError = true^)]\r\n>>\"%DESTINATION%\" echo public static extern bool CredWrite^(ref CREDENTIAL credential, uint flags^);\r\n>>\"%DESTINATION%\" echo.\r\n>>\"%DESTINATION%\" echo [DllImport^(\"Advapi32.dll\", EntryPoint = \"CredDeleteW\", CharSet = CharSet.Unicode, SetLastError = true^)]\r\n>>\"%DESTINATION%\" echo public static extern bool CredDelete^(string target, uint type, uint flags^);\r\n>>\"%DESTINATION%\" echo.\r\n>>\"%DESTINATION%\" echo [DllImport^(\"Advapi32.dll\", SetLastError = true^)]\r\n>>\"%DESTINATION%\" echo public static extern void CredFree^(IntPtr buffer^);\r\n>>\"%DESTINATION%\" echo ^}\r\n>>\"%DESTINATION%\" echo ^}\r\n>>\"%DESTINATION%\" echo '@\r\n>>\"%DESTINATION%\" echo ^}\r\nif errorlevel 1 exit /b 1\r\nif not exist \"%DESTINATION%\" exit /b 1\r\necho Installed Product Hub credential bootstrap: \"%DESTINATION%\"\r\nexit /b 0"
61
+ }
62
+ },
63
+ "license": {
64
+ "contents": "",
65
+ "path": "licence.txt",
66
+ "mime": "",
67
+ "isFile": true
68
+ },
69
+ "signing": {
70
+ "enabled": false,
71
+ "identity": "",
72
+ "pathToKeychain": "",
73
+ "keychainPassword": "",
74
+ "applicationIdentity": "",
75
+ "certificatePath": "",
76
+ "certificatePassword": "",
77
+ "timestampServer": "http://timestamp.digicert.com"
78
+ },
79
+ "notarization": {
80
+ "enabled": false,
81
+ "username": "",
82
+ "password": "",
83
+ "teamID": ""
84
+ },
85
+ "enabledNodeNativeModules": [
86
+ "writesmf",
87
+ "hwfp"
88
+ ],
89
+ "pluginConfig": {
90
+ "buildAAX": true,
91
+ "buildVST": true,
92
+ "buildVST3": true,
93
+ "buildAU": true,
94
+ "buildStandalone": true,
95
+ "isEffect": <%= is_effect %>,
96
+ "supportsMPE": false,
97
+ "hasMidiInput": <%= !is_effect %>,
98
+ "hasMidiOutput": false,
99
+ "canRelocateBlob": false,
100
+ "macInstallerDiskImage": false,
101
+ "createVendorSubdirOnWindows": true,
102
+ "iaaName": "<%= manufacturer_name %>: <%= plugin_name %>",
103
+ "aaxIdentifier": "com.<%= manufacturer_name_lower_nospaces %>.<%= plugin_name_lower_nospaces %>",
104
+ "cfBundleIdentifier": "com.<%= manufacturer_name_lower_nospaces %>.<%= plugin_name_lower_nospaces %>",
105
+ "auExportPrefixQuoted": "GEShellAU",
106
+ "auExportPrefix": "GEShellAU",
107
+ "versionString": "0.0.1",
108
+ "version": "0.0.1",
109
+ "versionCode": "0x000001",
110
+ "manufacturerCode": "<%= manufacturer_code_hex %>",
111
+ "pluginCode": "<%= plugin_code_hex %>",
112
+ "manufacturerEmail": "support@<%= manufacturer_name_lower_nospaces %>.com",
113
+ "manufacturerWebsite": "www.<%= manufacturer_name_lower_nospaces %>.com",
114
+ "manufacturer": "<%= manufacturer_name %>",
115
+ "desc": "Powered by Gorilla Engine",
116
+ "name": "<%= plugin_name %>",
117
+ "auFourCharPluginCode": "<%= plugin_code %>",
118
+ "auFourCharManufacturerCode": "<%= manufacturer_code %>",
119
+ "appUUID": "<%= app_uuid %>",
120
+ "installerNameTemplate": "{manufacturer} - {name} ({version})",
121
+ "hasSidechain": false,
122
+ "numStereoOuts": 1,
123
+ "numQuadOuts": 0,
124
+ "num51Outs": 0,
125
+ "numAutomatableParams": 100,
126
+ "installerOutputDir": "installer",
127
+ "pageTable": "",
128
+ "midiEnabledOnStartup": true,
129
+ "codemeter": false,
130
+ "codemeterProductCode": 0,
131
+ "codemeterProtectionCode": 0,
132
+ "codemeterTrial": false,
133
+ "codemeterTrialCode": 0,
134
+ "codemeterTrialDays": 30,
135
+ "codemeterExpansionsEncryptionSeed": "00000000000000000000000000000000",
136
+ "audioEnabledOnStartup": true,
137
+ "contentEncryptionEnabled": true,
138
+ "contentEncryptionKey": "<%= content_encryption_key %>",
139
+ "eula": "Your license agreement goes here. Either as text or as a rich text file.",
140
+ "experimentalDebuggerSupport": true
141
+ },
142
+ "paceConfig": {
143
+ "wraptoolPathMacOs": "/Applications/PACEAntiPiracy/Eden/Fusion/Current/bin/wraptool",
144
+ "wraptoolPathWindows": "C:\\Program Files (x86)\\PACEAntiPiracy\\Eden\\Fusion\\Versions\\5\\wraptool.exe",
145
+ "iLokToolPathMacOs": "/usr/local/bin/iloktool",
146
+ "iLokToolPathWindows": "C:\\Program Files (x86)\\iLok License Manager\\iloktool.exe",
147
+ "wraptoolLicenseInCloud": true,
148
+ "command": "sign",
149
+ "iLokAccountNameMacOs": "",
150
+ "iLokAccountNameWindows": "",
151
+ "iLokAccountPasswordMacOs": "",
152
+ "iLokAccountPasswordWindows": "",
153
+ "wrapConfigUuid": "",
154
+ "keyFilePath": "",
155
+ "keyFilePassword": "",
156
+ "signID": "",
157
+ "pathToKeychain": "",
158
+ "keychainPassword": "",
159
+ "loginKeychainPassword": "",
160
+ "enabled": true,
161
+ "iLokAccountName": "",
162
+ "iLokAccountPassword": ""
163
+ },
164
+ "producthubConfig": {
165
+ "uploadEnabled": false,
166
+ "downloaderEnabled": false,
167
+ "productId": ""
168
+ },
169
+ "createZipPackage": false,
170
+ "includeBinariesInZip": false,
171
+ "session": null,
172
+ "engineSourceDir": "submodules/ge-shell"
173
+ }
@@ -0,0 +1 @@
1
+ {"general":{"pluginVersion":"3.2.7","buildNumber":"manual","manufacturer":"Gorilla Engine","pluginName":"React FX Reverb","date":"2026-05-05T10:48:21.570Z"},"dsp_settings":[{"key":"reverb_predelay","controlType":"default","normValue":0,"value":0,"valueText":"0.00 ms","maxValue":1,"minValue":0,"resolution":0},{"key":"reverb_time","controlType":"default","normValue":0,"value":0,"valueText":"0.10 s","maxValue":1,"minValue":0,"resolution":0},{"key":"reverb_dry_wet","controlType":"default","normValue":0,"value":0,"valueText":"0 %","maxValue":100,"minValue":0,"resolution":0}]}
@@ -0,0 +1 @@
1
+ {"general":{"pluginVersion":"3.2.7","buildNumber":"manual","manufacturer":"Gorilla Engine","pluginName":"React FX Reverb","date":"2026-05-05T10:48:47.452Z"},"dsp_settings":[{"key":"reverb_predelay","controlType":"default","normValue":0.4985937476158142,"value":0.4985937476158142,"valueText":"49.72 ms","maxValue":1,"minValue":0,"resolution":0},{"key":"reverb_time","controlType":"default","normValue":0.5041718482971191,"value":0.5041718482971191,"valueText":"2.52 s","maxValue":1,"minValue":0,"resolution":0},{"key":"reverb_dry_wet","controlType":"default","normValue":0.4978281259536743,"value":49.78281259536743,"valueText":"50 %","maxValue":100,"minValue":0,"resolution":0}]}
@@ -0,0 +1 @@
1
+ {"general":{"pluginVersion":"3.2.7","buildNumber":"manual","manufacturer":"Gorilla Engine","pluginName":"React FX Reverb","date":"2026-05-05T10:49:08.687Z"},"dsp_settings":[{"key":"reverb_predelay","controlType":"default","normValue":0.8357187509536743,"value":0.8357187509536743,"valueText":"139.7 ms","maxValue":1,"minValue":0,"resolution":0},{"key":"reverb_time","controlType":"default","normValue":0.8329999446868896,"value":0.8329999446868896,"valueText":"20.62 s","maxValue":1,"minValue":0,"resolution":0},{"key":"reverb_dry_wet","controlType":"default","normValue":0.826953113079071,"value":82.6953113079071,"valueText":"83 %","maxValue":100,"minValue":0,"resolution":0}]}
@@ -0,0 +1 @@
1
+ {"general":{"pluginVersion":"3.2.7","buildNumber":"manual","manufacturer":"Gorilla Engine","pluginName":"React FX Reverb","date":"2026-05-05T10:49:27.327Z"},"dsp_settings":[{"key":"reverb_predelay","controlType":"default","normValue":1,"value":1,"valueText":"200.0 ms","maxValue":1,"minValue":0,"resolution":0},{"key":"reverb_time","controlType":"default","normValue":1,"value":1,"valueText":"60.00 s","maxValue":1,"minValue":0,"resolution":0},{"key":"reverb_dry_wet","controlType":"default","normValue":1,"value":100,"valueText":"100 %","maxValue":100,"minValue":0,"resolution":0}]}