@signalsandsorcery/plugin-sdk 2.36.2 → 2.40.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +328 -52
- package/dist/index.d.ts +328 -52
- package/dist/index.js +1431 -759
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1318 -659
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -120,6 +120,38 @@ interface PanelBusState {
|
|
|
120
120
|
/** User FX chain, top-to-bottom (master section excluded). */
|
|
121
121
|
fx: PanelBusFxEntry[];
|
|
122
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* One plugin a track freeze depends on (missing-deps reporting on the
|
|
125
|
+
* drawer's Freeze tab). @since SDK 2.46.0
|
|
126
|
+
*/
|
|
127
|
+
interface FreezeDep {
|
|
128
|
+
/** Stable scan identity when known; null on legacy external-FX entries. */
|
|
129
|
+
identifier: string | null;
|
|
130
|
+
name: string;
|
|
131
|
+
kind: 'instrument' | 'fx';
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* A track's freeze state — the drawer Freeze tab's model. Frozen = the
|
|
135
|
+
* track plays a FADER-NEUTRAL stem while its sound chain is disabled;
|
|
136
|
+
* volume/pan/mute/solo stay live, and mixing never marks a freeze stale.
|
|
137
|
+
* @since SDK 2.46.0
|
|
138
|
+
*/
|
|
139
|
+
interface TrackFreezeState {
|
|
140
|
+
frozen: boolean;
|
|
141
|
+
/** Only meaningful when frozen: sound inputs changed since the stem rendered. */
|
|
142
|
+
stale: boolean;
|
|
143
|
+
/** Which inputs changed ('midi' | 'preset' | 'instrument' | 'external-fx' | 'role'). */
|
|
144
|
+
staleReasons: string[];
|
|
145
|
+
/** PROVEN-missing plugins (blocks unfreeze; never populated on rumor). */
|
|
146
|
+
missingDeps: FreezeDep[];
|
|
147
|
+
/** Every plugin the active freeze recorded (empty when live). */
|
|
148
|
+
deps: FreezeDep[];
|
|
149
|
+
freezeId?: string;
|
|
150
|
+
frozenAt?: string;
|
|
151
|
+
wavPath?: string;
|
|
152
|
+
/** A fresh inactive freeze exists — re-freezing is instant. */
|
|
153
|
+
latentFreshFreeze: boolean;
|
|
154
|
+
}
|
|
123
155
|
/**
|
|
124
156
|
* One third-party (VST3/AU) FX insert on a TRACK's plugin chain, as shown to
|
|
125
157
|
* the panel UI. The track's instrument, the built-in FX-toggle plugins
|
|
@@ -750,6 +782,20 @@ interface PluginHost {
|
|
|
750
782
|
* @since SDK 2.41.0
|
|
751
783
|
*/
|
|
752
784
|
copyTrackFxFrom?(destTrackId: string, sourceTrackDbId: string): Promise<TrackFxCopyResult>;
|
|
785
|
+
/** The track's freeze state (frozen / stale + reasons / missing plugins). */
|
|
786
|
+
getTrackFreezeState?(trackId: string): Promise<TrackFreezeState>;
|
|
787
|
+
/**
|
|
788
|
+
* Freeze the track (renders take seconds — resolve = frozen). Idempotent
|
|
789
|
+
* while fresh; re-freezing a stale track re-renders. Refused for
|
|
790
|
+
* sample/audio tracks and transition scenes (message explains why).
|
|
791
|
+
*/
|
|
792
|
+
freezeTrack?(trackId: string): Promise<TrackFreezeState>;
|
|
793
|
+
/**
|
|
794
|
+
* Unfreeze: stem out, plugin chain (incl. per-FX bypass flags) restored;
|
|
795
|
+
* the stem is kept for instant re-freeze. Refuses while the track's
|
|
796
|
+
* plugins are provably missing — the message names them and the remedy.
|
|
797
|
+
*/
|
|
798
|
+
unfreezeTrack?(trackId: string): Promise<TrackFreezeState>;
|
|
753
799
|
/** Subscribe to transport state changes. Returns unsubscribe function. */
|
|
754
800
|
onTransportEvent(listener: TransportEventListener): UnsubscribeFn;
|
|
755
801
|
/** Subscribe to deck boundary events. Returns unsubscribe function. */
|
|
@@ -2531,6 +2577,29 @@ interface FxPresetDataEntry {
|
|
|
2531
2577
|
/** Persisted FX data format (stored as JSON in database) */
|
|
2532
2578
|
type FxPresetData = Partial<Record<FxCategory, FxPresetDataEntry>>;
|
|
2533
2579
|
|
|
2580
|
+
/**
|
|
2581
|
+
* useTrackFreeze — one track's freeze state + actions (@since SDK 2.47.0).
|
|
2582
|
+
*
|
|
2583
|
+
* Owned by TrackRow (always mounted) so the ❄ row badge and the drawer's
|
|
2584
|
+
* Freeze tab share ONE state — the drawer unmounts when closed, so state
|
|
2585
|
+
* lifted here survives open/close. Capability-gated: pass any host; when it
|
|
2586
|
+
* lacks `getTrackFreezeState` the hook is inert (`enabled: false`, no
|
|
2587
|
+
* fetches) and nothing renders.
|
|
2588
|
+
*/
|
|
2589
|
+
|
|
2590
|
+
interface UseTrackFreezeResult {
|
|
2591
|
+
/** Host supports the freeze surface (feature detection). */
|
|
2592
|
+
enabled: boolean;
|
|
2593
|
+
/** null until the first read resolves (or when reads fail / hook disabled). */
|
|
2594
|
+
state: TrackFreezeState | null;
|
|
2595
|
+
busy: 'freeze' | 'unfreeze' | null;
|
|
2596
|
+
error: string | null;
|
|
2597
|
+
refresh: () => Promise<void>;
|
|
2598
|
+
freeze: () => Promise<void>;
|
|
2599
|
+
unfreeze: () => Promise<void>;
|
|
2600
|
+
}
|
|
2601
|
+
declare function useTrackFreeze(host: PluginHost | undefined, trackId: string): UseTrackFreezeResult;
|
|
2602
|
+
|
|
2534
2603
|
/**
|
|
2535
2604
|
* TrackDrawer — the unified per-track drawer body.
|
|
2536
2605
|
*
|
|
@@ -2552,7 +2621,7 @@ type FxPresetData = Partial<Record<FxCategory, FxPresetDataEntry>>;
|
|
|
2552
2621
|
*/
|
|
2553
2622
|
|
|
2554
2623
|
/** The contextual tabs a track drawer can show, in display order. */
|
|
2555
|
-
type DrawerTab = 'fx' | 'pick' | 'history' | 'import' | 'edit';
|
|
2624
|
+
type DrawerTab = 'fx' | 'pick' | 'history' | 'import' | 'edit' | 'freeze';
|
|
2556
2625
|
interface TrackDrawerProps {
|
|
2557
2626
|
/** Which tab is active (controlled by the host TrackRow). */
|
|
2558
2627
|
activeTab: DrawerTab;
|
|
@@ -2573,6 +2642,12 @@ interface TrackDrawerProps {
|
|
|
2573
2642
|
* FX tab.
|
|
2574
2643
|
*/
|
|
2575
2644
|
externalFxHost?: PluginHost;
|
|
2645
|
+
/**
|
|
2646
|
+
* Lifted freeze state (@since SDK 2.47.0) — TrackRow owns useTrackFreeze
|
|
2647
|
+
* so its ❄ badge and this drawer share one state. When omitted, the drawer
|
|
2648
|
+
* runs its own hook off `externalFxHost` (direct-use backward compat).
|
|
2649
|
+
*/
|
|
2650
|
+
freeze?: UseTrackFreezeResult;
|
|
2576
2651
|
/** Available instrument plugins from engine scan. */
|
|
2577
2652
|
instruments?: InstrumentDescriptor[];
|
|
2578
2653
|
/** Currently loaded instrument plugin ID (null = default Surge XT). */
|
|
@@ -2601,6 +2676,12 @@ interface TrackDrawerProps {
|
|
|
2601
2676
|
onImportSound?: () => void;
|
|
2602
2677
|
/** Button label, e.g. "Import Sample" (drums/instruments) or "Import Preset" (synths). */
|
|
2603
2678
|
importSoundLabel?: string;
|
|
2679
|
+
/**
|
|
2680
|
+
* Linked-group hint (@since SDK 2.48.0): shown in the drawer header on
|
|
2681
|
+
* every tab, e.g. "🔗 Sound changes apply to all 4 parts". Undefined
|
|
2682
|
+
* renders nothing (all single-track panels).
|
|
2683
|
+
*/
|
|
2684
|
+
linkedSoundHint?: string;
|
|
2604
2685
|
/** Current MIDI notes for the piano-roll editor. */
|
|
2605
2686
|
editNotes?: readonly PluginMidiNote[];
|
|
2606
2687
|
/** Persist edited notes; PRESENCE of this callback enables the Edit tab. */
|
|
@@ -2614,7 +2695,7 @@ interface TrackDrawerProps {
|
|
|
2614
2695
|
/** Optional single-note preview when the user adds a note. */
|
|
2615
2696
|
onAuditionNote?: (pitch: number, velocity: number, durationMs: number) => void;
|
|
2616
2697
|
}
|
|
2617
|
-
declare function TrackDrawer({ activeTab, onTabChange, trackId, fxState, onFxToggle, onFxPresetChange, onFxDryWetChange, fxDisabled, externalFxHost, instruments, currentPluginId, isLoading, onSelect, onRefresh, editorStage, onShowEditor, onBackToInstruments, selectedInstrumentName, soundHistory, soundHistoryCursor, onRestoreSound, onToggleFavorite, onImportSound, importSoundLabel, editNotes, onNotesChange, editBars, editBpm, editSnap, onAuditionNote, }: TrackDrawerProps): React$1.ReactElement;
|
|
2698
|
+
declare function TrackDrawer({ activeTab, onTabChange, trackId, fxState, onFxToggle, onFxPresetChange, onFxDryWetChange, fxDisabled, externalFxHost, freeze, instruments, currentPluginId, isLoading, onSelect, onRefresh, editorStage, onShowEditor, onBackToInstruments, selectedInstrumentName, soundHistory, soundHistoryCursor, onRestoreSound, onToggleFavorite, onImportSound, importSoundLabel, linkedSoundHint, editNotes, onNotesChange, editBars, editBpm, editSnap, onAuditionNote, }: TrackDrawerProps): React$1.ReactElement;
|
|
2618
2699
|
|
|
2619
2700
|
/**
|
|
2620
2701
|
* useTrackLevels — drives the cosmetic per-track strip meters.
|
|
@@ -2874,6 +2955,12 @@ interface SDKTrackRowProps {
|
|
|
2874
2955
|
onImportSound?: () => void;
|
|
2875
2956
|
/** Sound-import button label ("Import Sample" / "Import Preset"). */
|
|
2876
2957
|
importSoundLabel?: string;
|
|
2958
|
+
/**
|
|
2959
|
+
* Linked-group hint (@since SDK 2.48.0): when set, the drawer shows this
|
|
2960
|
+
* info line on every tab and the Shuffle button gains a small 🔗 marker +
|
|
2961
|
+
* a title suffix. Undefined (all single-track panels) renders nothing.
|
|
2962
|
+
*/
|
|
2963
|
+
linkedSoundHint?: string;
|
|
2877
2964
|
/** Current MIDI notes for the piano-roll editor (the 'edit' tab). */
|
|
2878
2965
|
editNotes?: readonly PluginMidiNote[];
|
|
2879
2966
|
/** Persist edited notes; PRESENCE of this callback enables the Edit tab. */
|
|
@@ -2893,7 +2980,7 @@ interface SDKTrackRowProps {
|
|
|
2893
2980
|
* a thin peak meter welds to the bottom of the row. Omit to hide it. */
|
|
2894
2981
|
levels?: TrackLevelsHandle;
|
|
2895
2982
|
}
|
|
2896
|
-
declare function TrackRow({ track, prompt, runtimeState, soloedOut, fxDetailState, drawerOpen, drawerTab, onTabChange, isGenerating, isAuthenticated, error, hasMidi, generationProgress, estimatedGenerationMs, onPromptChange, onGenerate, onShuffle, onCopy, onDelete, contentSlot, onMuteToggle, onSoloToggle, onVolumeChange, onPanChange, onFxToggle, onFxPresetChange, onFxDryWetChange, externalFxHost, onToggleFxDrawer, onProgressChange, accentColor, instrumentName, instrumentMissing, onToggleDrawer, availableInstruments, currentInstrumentPluginId, onInstrumentSelect, instrumentsLoading, onRefreshInstruments, editorStage, onShowEditor, onBackToInstruments, soundHistory, soundHistoryCursor, onRestoreSound, onToggleFavorite, onImportSound, importSoundLabel, editNotes, onNotesChange, editBars, editBpm, editSnap, onAuditionNote, drag, levels, }: SDKTrackRowProps): React$1.ReactElement;
|
|
2983
|
+
declare function TrackRow({ track, prompt, runtimeState, soloedOut, fxDetailState, drawerOpen, drawerTab, onTabChange, isGenerating, isAuthenticated, error, hasMidi, generationProgress, estimatedGenerationMs, onPromptChange, onGenerate, onShuffle, onCopy, onDelete, contentSlot, onMuteToggle, onSoloToggle, onVolumeChange, onPanChange, onFxToggle, onFxPresetChange, onFxDryWetChange, externalFxHost, onToggleFxDrawer, onProgressChange, accentColor, instrumentName, instrumentMissing, onToggleDrawer, availableInstruments, currentInstrumentPluginId, onInstrumentSelect, instrumentsLoading, onRefreshInstruments, editorStage, onShowEditor, onBackToInstruments, soundHistory, soundHistoryCursor, onRestoreSound, onToggleFavorite, onImportSound, importSoundLabel, linkedSoundHint, editNotes, onNotesChange, editBars, editBpm, editSnap, onAuditionNote, drag, levels, }: SDKTrackRowProps): React$1.ReactElement;
|
|
2897
2984
|
|
|
2898
2985
|
/**
|
|
2899
2986
|
* Crossfade-pair metadata — family-agnostic types + parsing shared by every
|
|
@@ -3763,6 +3850,29 @@ interface ConfirmDialogProps {
|
|
|
3763
3850
|
}
|
|
3764
3851
|
declare function ConfirmDialog({ open, title, message, confirmLabel, cancelLabel, destructive, onConfirm, onCancel, testIdPrefix, }: ConfirmDialogProps): React$1.ReactElement | null;
|
|
3765
3852
|
|
|
3853
|
+
/**
|
|
3854
|
+
* GroupCollapseChevron — the shared collapse/expand toggle for voice-group
|
|
3855
|
+
* header bars (ensemble / arp / bass / pad). One component so all four
|
|
3856
|
+
* headers look identical and plugins don't need their own lucide dep; the
|
|
3857
|
+
* state itself is owned by the shell's CollapsibleGroup wrapper and arrives
|
|
3858
|
+
* via GroupRenderContext (`ctx.collapsed` / `ctx.onToggleCollapse`).
|
|
3859
|
+
*
|
|
3860
|
+
* Renders nothing when `onToggle` is absent (pre-2.48 hosts / bare render
|
|
3861
|
+
* contexts), so plugins can mount it unconditionally.
|
|
3862
|
+
*
|
|
3863
|
+
* @since SDK 2.48.0
|
|
3864
|
+
*/
|
|
3865
|
+
|
|
3866
|
+
interface GroupCollapseChevronProps {
|
|
3867
|
+
/** Whether the group's member rows are hidden. */
|
|
3868
|
+
collapsed?: boolean;
|
|
3869
|
+
/** Toggle handler (GroupRenderContext.onToggleCollapse). Absent ⇒ renders nothing. */
|
|
3870
|
+
onToggle?: () => void;
|
|
3871
|
+
/** Noun for the tooltip, e.g. "ensemble" → "Collapse ensemble". Default "group". */
|
|
3872
|
+
what?: string;
|
|
3873
|
+
}
|
|
3874
|
+
declare function GroupCollapseChevron({ collapsed, onToggle, what, }: GroupCollapseChevronProps): React$1.ReactElement | null;
|
|
3875
|
+
|
|
3766
3876
|
/**
|
|
3767
3877
|
* Modal — the SDK's one modal-stacking primitive (portal + z-tier + backdrop).
|
|
3768
3878
|
*
|
|
@@ -4088,6 +4198,28 @@ interface UseTrackExternalFxResult {
|
|
|
4088
4198
|
}
|
|
4089
4199
|
declare function useTrackExternalFx(host: PluginHost, trackId: string): UseTrackExternalFxResult;
|
|
4090
4200
|
|
|
4201
|
+
/**
|
|
4202
|
+
* TrackFreezeSection — the drawer's Freeze tab body (@since SDK 2.46.0).
|
|
4203
|
+
*
|
|
4204
|
+
* Presentational: TrackDrawer owns the freeze state (it also needs it to
|
|
4205
|
+
* lock the sound-editing tabs while frozen) and passes it down with the two
|
|
4206
|
+
* actions. Freezing renders the track's sound chain to a FADER-NEUTRAL stem
|
|
4207
|
+
* on the same track and disables the plugins — volume, pan, mute and solo
|
|
4208
|
+
* stay fully live, so freezing never changes the mix. Unfreezing restores
|
|
4209
|
+
* the chain (including per-FX bypass flags) and keeps the stem for instant
|
|
4210
|
+
* re-freeze.
|
|
4211
|
+
*/
|
|
4212
|
+
|
|
4213
|
+
interface TrackFreezeSectionProps {
|
|
4214
|
+
/** null = state not loaded yet (host fetch in flight or failed). */
|
|
4215
|
+
state: TrackFreezeState | null;
|
|
4216
|
+
busy: 'freeze' | 'unfreeze' | null;
|
|
4217
|
+
error: string | null;
|
|
4218
|
+
onFreeze: () => void;
|
|
4219
|
+
onUnfreeze: () => void;
|
|
4220
|
+
}
|
|
4221
|
+
declare function TrackFreezeSection({ state, busy, error, onFreeze, onUnfreeze, }: TrackFreezeSectionProps): React$1.ReactElement;
|
|
4222
|
+
|
|
4091
4223
|
/**
|
|
4092
4224
|
* PanSlider Component
|
|
4093
4225
|
*
|
|
@@ -4835,6 +4967,30 @@ interface PanelSoundAdapter {
|
|
|
4835
4967
|
importNoun: string;
|
|
4836
4968
|
/** History label for the lazily-seeded pre-shuffle sound, e.g. 'Previous preset'. */
|
|
4837
4969
|
previousSoundLabel: string;
|
|
4970
|
+
/**
|
|
4971
|
+
* Linked-sound groups (@since SDK 2.48.0): the sibling tracks a sound
|
|
4972
|
+
* change on `track` should also apply to, or null/[] when the track is not
|
|
4973
|
+
* in a linked group (or the group's link toggle is OFF). Return ALL linked
|
|
4974
|
+
* members — the core filters: the source track is always dropped, and
|
|
4975
|
+
* preset-level broadcasts (shuffle / history-restore / sound-import) skip
|
|
4976
|
+
* siblings whose instrument differs from the source's (a Surge blob must
|
|
4977
|
+
* not land on Kontakt). Pick-tab instrument swaps broadcast to every
|
|
4978
|
+
* sibling unfiltered — that is what converges a mixed group.
|
|
4979
|
+
*/
|
|
4980
|
+
broadcastTargets?(track: GeneratorTrackState, services: GenerationServices): Promise<Array<{
|
|
4981
|
+
engineId: string;
|
|
4982
|
+
dbId: string;
|
|
4983
|
+
label?: string;
|
|
4984
|
+
}> | null>;
|
|
4985
|
+
/**
|
|
4986
|
+
* Persist a descriptor as the track's DURABLE sound identity WITHOUT
|
|
4987
|
+
* re-applying it (the descriptor-space half of copySnapshot). The linked
|
|
4988
|
+
* broadcast calls it per target — and on the source after restore/import,
|
|
4989
|
+
* which apply live-only — so getTrackSound / transitions / agent tools
|
|
4990
|
+
* read the truth. Best-effort; families without a durable store omit it.
|
|
4991
|
+
* @since SDK 2.48.0
|
|
4992
|
+
*/
|
|
4993
|
+
persistDescriptor?(trackId: string, descriptor: unknown, label: string): Promise<void>;
|
|
4838
4994
|
}
|
|
4839
4995
|
/** The 🎲: pick + apply one new sound, honoring the exclusion cycle. */
|
|
4840
4996
|
interface PanelShuffleAdapter {
|
|
@@ -4874,6 +5030,12 @@ interface GenerationServices {
|
|
|
4874
5030
|
createFamilyTrack(nameSuffix?: string): Promise<PluginTrackHandle>;
|
|
4875
5031
|
/** Resolved groups for a registered group extension. */
|
|
4876
5032
|
resolvedGroups<M>(metaKey: string): ResolvedTrackGroup<M, GeneratorTrackState>[];
|
|
5033
|
+
/**
|
|
5034
|
+
* The family sound adapter. Always present when built by the core's
|
|
5035
|
+
* makeServices; optional only for pre-2.48 hand-built test services.
|
|
5036
|
+
* @since SDK 2.48.0
|
|
5037
|
+
*/
|
|
5038
|
+
sound?: PanelSoundAdapter;
|
|
4877
5039
|
}
|
|
4878
5040
|
/**
|
|
4879
5041
|
* One prompt-driven generation turn. The core owns the wrapper: prompt/auth
|
|
@@ -4927,6 +5089,15 @@ interface GroupRenderContext {
|
|
|
4927
5089
|
engineId: string;
|
|
4928
5090
|
dbId: string;
|
|
4929
5091
|
}>, cleanupKeySuffixes: string[]): Promise<void>;
|
|
5092
|
+
/**
|
|
5093
|
+
* Whether this group is visually collapsed (@since SDK 2.48.0). The shell
|
|
5094
|
+
* owns the state and persists it per group in scene-data
|
|
5095
|
+
* (`track:<groupId>:groupUi`); renderGroup wraps its member rows in
|
|
5096
|
+
* `{!ctx.collapsed && …}` and renders a GroupCollapseChevron in its header.
|
|
5097
|
+
*/
|
|
5098
|
+
collapsed?: boolean;
|
|
5099
|
+
/** Toggle this group's collapsed state (persisted). @since SDK 2.48.0 */
|
|
5100
|
+
onToggleCollapse?: () => void;
|
|
4930
5101
|
}
|
|
4931
5102
|
/**
|
|
4932
5103
|
* A family-registered multi-track group row (the crossfade seam,
|
|
@@ -5206,6 +5377,12 @@ interface GeneratorPanelCore {
|
|
|
5206
5377
|
handlers: CoreTrackHandlers;
|
|
5207
5378
|
handleGenerate(trackId: string): Promise<void>;
|
|
5208
5379
|
handleShuffle(trackId: string): Promise<void>;
|
|
5380
|
+
/**
|
|
5381
|
+
* History-tab restore + linked-group broadcast (@since SDK 2.48.0) — the
|
|
5382
|
+
* shell wires this as every row's onRestoreSound. Identical to
|
|
5383
|
+
* soundHistory.restoreTo for panels without broadcastTargets.
|
|
5384
|
+
*/
|
|
5385
|
+
handleRestoreSound(trackId: string, index: number): Promise<void>;
|
|
5209
5386
|
handleAddTrack(): Promise<void>;
|
|
5210
5387
|
handleDeleteTrack(trackId: string): Promise<void>;
|
|
5211
5388
|
handleExportMidi(): Promise<void>;
|
|
@@ -5283,22 +5460,127 @@ interface SurgeSoundAdapterOverrides {
|
|
|
5283
5460
|
declare function createSurgeSoundAdapter(host: PluginHost, overrides?: SurgeSoundAdapterOverrides): PanelSoundAdapter;
|
|
5284
5461
|
|
|
5285
5462
|
/**
|
|
5286
|
-
* ensemble-core:
|
|
5287
|
-
*
|
|
5288
|
-
*
|
|
5289
|
-
*
|
|
5463
|
+
* ensemble-core: style packs. A style = which SOFT rules are violations +
|
|
5464
|
+
* a prompt paragraph steering the joint composition. Hard rules (register,
|
|
5465
|
+
* per-voice monophony, density caps, root-only anchors) apply to every
|
|
5466
|
+
* style — see enforce-voice.ts. Explicitly NOT just baroque: parallels are
|
|
5467
|
+
* a defect in `counterpoint`, the whole point of `interlock`, and the very
|
|
5468
|
+
* mechanism of the horn-section styles (`stabs` / `riffs` / `unison`),
|
|
5469
|
+
* which additionally INVERT the coordination rule — togetherness is
|
|
5470
|
+
* required, not forbidden (`maxOnsetIndependence`).
|
|
5290
5471
|
*
|
|
5291
|
-
*
|
|
5292
|
-
*
|
|
5293
|
-
*
|
|
5472
|
+
* Which styles are offered under which parent instrumentation lives in
|
|
5473
|
+
* instrumentation.ts (STYLES_FOR_INSTRUMENTATION).
|
|
5474
|
+
*
|
|
5475
|
+
* @since SDK 2.42.0 (horn-section styles @since 2.39.0 — see instrumentation.ts)
|
|
5476
|
+
*/
|
|
5477
|
+
type EnsembleStyle = 'counterpoint' | 'chorale' | 'interlock' | 'stabs' | 'riffs' | 'unison';
|
|
5478
|
+
/**
|
|
5479
|
+
* The WOVEN (strings/winds) trio. Kept under the historical name because
|
|
5480
|
+
* pre-instrumentation stored configs and consumers validate against it;
|
|
5481
|
+
* per-mode lists live in instrumentation.ts.
|
|
5482
|
+
*/
|
|
5483
|
+
declare const ENSEMBLE_STYLES: readonly EnsembleStyle[];
|
|
5484
|
+
interface EnsembleStyleRules {
|
|
5485
|
+
/** Consecutive perfect 5ths/octaves between adjacent voices are violations. */
|
|
5486
|
+
forbidParallelPerfects: boolean;
|
|
5487
|
+
/** A nominally-upper voice sounding below its neighbor is a violation. */
|
|
5488
|
+
forbidVoiceCrossing: boolean;
|
|
5489
|
+
/**
|
|
5490
|
+
* Minimum fraction of an upper voice's onsets that must NOT coincide with
|
|
5491
|
+
* its lower neighbor (0 = homorhythm fine, 1 = fully independent).
|
|
5492
|
+
*/
|
|
5493
|
+
minOnsetIndependence: number;
|
|
5494
|
+
/**
|
|
5495
|
+
* Section styles only: the CEILING on that same fraction — a pair whose
|
|
5496
|
+
* upper voice attacks apart from its lower neighbor more than this is a
|
|
5497
|
+
* violation (the section must hit together). Absent = no ceiling.
|
|
5498
|
+
*/
|
|
5499
|
+
maxOnsetIndependence?: number;
|
|
5500
|
+
/**
|
|
5501
|
+
* Mechanical per-note duration ceiling in beats, enforced by
|
|
5502
|
+
* enforceVoice (stab styles — a punch must not become a pad). Absent =
|
|
5503
|
+
* no cap.
|
|
5504
|
+
*/
|
|
5505
|
+
maxNoteDurationBeats?: number;
|
|
5506
|
+
/** Prompt paragraph injected into the system prompt for this style. */
|
|
5507
|
+
promptParagraph: string;
|
|
5508
|
+
}
|
|
5509
|
+
/**
|
|
5510
|
+
* Section-style togetherness ceilings + the stab length, exported in the
|
|
5511
|
+
* bass-plugin tradition — tune by ear, not by refactor. Independence is the
|
|
5512
|
+
* fraction of an upper voice's onsets its lower neighbor does NOT share:
|
|
5513
|
+
* 0.25 tolerates a stray pickup note per phrase, 0.15 demands lockstep.
|
|
5514
|
+
*/
|
|
5515
|
+
declare const STAB_MAX_ONSET_INDEPENDENCE = 0.25;
|
|
5516
|
+
declare const RIFF_MAX_ONSET_INDEPENDENCE = 0.3;
|
|
5517
|
+
declare const UNISON_MAX_ONSET_INDEPENDENCE = 0.15;
|
|
5518
|
+
/** A stab longer than a quarter note is a pad — mechanically trimmed. */
|
|
5519
|
+
declare const STAB_MAX_NOTE_DURATION_BEATS = 1;
|
|
5520
|
+
declare const STYLE_RULES: Record<EnsembleStyle, EnsembleStyleRules>;
|
|
5521
|
+
|
|
5522
|
+
/**
|
|
5523
|
+
* ensemble-core: the INSTRUMENTATION axis — which family of ensemble the
|
|
5524
|
+
* voices model. The parent selection gates the style list (a funk horn
|
|
5525
|
+
* section has no 'chorale'; a string ensemble has no 'stabs') and picks the
|
|
5526
|
+
* voice-spec table (registers, roles, rhythm palettes — see voice-spec.ts).
|
|
5527
|
+
*
|
|
5528
|
+
* Sound coupling stays category-level ONLY: specs stamp the generally
|
|
5529
|
+
* correct role ('strings' / 'brass' / 'winds') and registers use REAL
|
|
5530
|
+
* instrument ranges — users routinely swap the placeholder Surge XT patch
|
|
5531
|
+
* for a sampled library (Kontakt, Omnisphere), so the written MIDI must sit
|
|
5532
|
+
* where real sections play, not where any particular synth patch flatters.
|
|
5533
|
+
*
|
|
5534
|
+
* @since SDK 2.39.0
|
|
5535
|
+
*/
|
|
5536
|
+
|
|
5537
|
+
type EnsembleInstrumentation = 'strings' | 'horns' | 'winds';
|
|
5538
|
+
declare const ENSEMBLE_INSTRUMENTATIONS: readonly EnsembleInstrumentation[];
|
|
5539
|
+
/**
|
|
5540
|
+
* Styles selectable under each parent instrumentation. Strings and winds
|
|
5541
|
+
* share the WOVEN trio (independent/held-line writing); horns get the
|
|
5542
|
+
* SECTION trio (rhythmic-unison funk writing) — the two families obey
|
|
5543
|
+
* opposite coordination rules (see ensemble-prompt.ts).
|
|
5544
|
+
*/
|
|
5545
|
+
declare const STYLES_FOR_INSTRUMENTATION: Record<EnsembleInstrumentation, readonly EnsembleStyle[]>;
|
|
5546
|
+
declare const DEFAULT_STYLE_FOR_INSTRUMENTATION: Record<EnsembleInstrumentation, EnsembleStyle>;
|
|
5547
|
+
/** Clamp an arbitrary stored/hinted value into the closed instrumentation domain. */
|
|
5548
|
+
declare function normalizeInstrumentation(raw: unknown): EnsembleInstrumentation;
|
|
5549
|
+
/**
|
|
5550
|
+
* Clamp a stored/hinted style into the instrumentation's own list — a group
|
|
5551
|
+
* switched from Strings to Horns with 'counterpoint' still stored lands on
|
|
5552
|
+
* the horn default instead of a style the mode can't honor.
|
|
5553
|
+
*/
|
|
5554
|
+
declare function styleForInstrumentation(instrumentation: EnsembleInstrumentation, rawStyle: string | undefined | null): EnsembleStyle;
|
|
5555
|
+
|
|
5556
|
+
/**
|
|
5557
|
+
* ensemble-core: voice specifications — the register + complexity hierarchy
|
|
5558
|
+
* as DATA, one table set per INSTRUMENTATION (see instrumentation.ts). The
|
|
5559
|
+
* first live per-voice register map in the platform (the only prior
|
|
5560
|
+
* per-role [low,high] table, MusicTheory.getSuggestedRegister, was dead
|
|
5561
|
+
* code).
|
|
5562
|
+
*
|
|
5563
|
+
* The WOVEN families (strings, winds) encode the original product intent:
|
|
5564
|
+
* the TOP voice is the highest-pitched and most complex line; complexity
|
|
5565
|
+
* decreases with register; the bottom voice is a sparse anchor. The
|
|
5566
|
+
* SECTION family (horns) deliberately breaks that pyramid: every player
|
|
5567
|
+
* shares the lead's rhythm, so caps are EQUAL and generous — density
|
|
5568
|
+
* thinning is a runaway guard there, never a shaping tool (unequal caps
|
|
5569
|
+
* would punch holes in unison hits).
|
|
5570
|
+
*
|
|
5571
|
+
* Horn/wind registers are REAL instrument ranges in concert pitch
|
|
5572
|
+
* (comfortable working tessitura, not extremes) — the Surge XT patch is a
|
|
5573
|
+
* placeholder and users re-target sampled libraries, so the MIDI must sit
|
|
5574
|
+
* where actual sections play.
|
|
5294
5575
|
*
|
|
5295
5576
|
* All thresholds are exported constants in the bass-plugin tradition —
|
|
5296
5577
|
* tune by ear, not by refactor. Roles are plain strings validated by the
|
|
5297
5578
|
* host at stamp time (`host.getValidRoles()`); the SDK deliberately ships
|
|
5298
5579
|
* no role list.
|
|
5299
5580
|
*
|
|
5300
|
-
* @since SDK 2.42.0
|
|
5581
|
+
* @since SDK 2.42.0 (horns/winds tables @since 2.39.0)
|
|
5301
5582
|
*/
|
|
5583
|
+
|
|
5302
5584
|
interface EnsembleVoiceSpec {
|
|
5303
5585
|
/** 0 = top voice; increases downward. */
|
|
5304
5586
|
voiceIndex: number;
|
|
@@ -5324,16 +5606,19 @@ interface EnsembleVoiceSpec {
|
|
|
5324
5606
|
*/
|
|
5325
5607
|
monoPreference: 'high' | 'low';
|
|
5326
5608
|
}
|
|
5609
|
+
/** Equal per-voice cap for horn tables — a runaway guard, not a shaper. */
|
|
5610
|
+
declare const HORN_MAX_NOTES_PER_BAR = 12;
|
|
5327
5611
|
/** Supported ensemble sizes. */
|
|
5328
5612
|
declare const ENSEMBLE_MIN_VOICES = 2;
|
|
5329
5613
|
declare const ENSEMBLE_MAX_VOICES = 6;
|
|
5330
5614
|
/**
|
|
5331
|
-
* Default voice specs for an N-voice ensemble
|
|
5332
|
-
*
|
|
5333
|
-
*
|
|
5334
|
-
*
|
|
5615
|
+
* Default voice specs for an N-voice ensemble of the given instrumentation,
|
|
5616
|
+
* top voice first. Clamps N to the supported range; instrumentation
|
|
5617
|
+
* defaults to 'strings' (the pre-instrumentation behavior, unchanged).
|
|
5618
|
+
* Returned objects are fresh copies — callers may override fields (e.g.
|
|
5619
|
+
* style packs narrowing registers) without touching the tables.
|
|
5335
5620
|
*/
|
|
5336
|
-
declare function defaultVoiceSpecs(voiceCount: number): EnsembleVoiceSpec[];
|
|
5621
|
+
declare function defaultVoiceSpecs(voiceCount: number, instrumentation?: EnsembleInstrumentation): EnsembleVoiceSpec[];
|
|
5337
5622
|
|
|
5338
5623
|
/**
|
|
5339
5624
|
* ensemble-core: HARD per-voice enforcement — the mechanical layer between
|
|
@@ -5379,6 +5664,12 @@ interface EnforceVoiceOptions {
|
|
|
5379
5664
|
scalePcs?: ReadonlySet<number>;
|
|
5380
5665
|
/** Chord-tone pitch classes for a bar — exemptions for the scale snap. */
|
|
5381
5666
|
chordPcsAtBar?: (bar: number) => ReadonlySet<number> | null;
|
|
5667
|
+
/**
|
|
5668
|
+
* Style-level per-note duration ceiling in beats (stab styles — see
|
|
5669
|
+
* STYLE_RULES[*].maxNoteDurationBeats). A punch must not become a pad;
|
|
5670
|
+
* longer notes are trimmed, never dropped.
|
|
5671
|
+
*/
|
|
5672
|
+
maxNoteDurationBeats?: number;
|
|
5382
5673
|
}
|
|
5383
5674
|
interface EnforceVoiceResult {
|
|
5384
5675
|
notes: EnsembleNote[];
|
|
@@ -5444,34 +5735,10 @@ declare function describeViolations(analysis: EnsembleAnalysis, rules: {
|
|
|
5444
5735
|
forbidParallelPerfects: boolean;
|
|
5445
5736
|
forbidVoiceCrossing: boolean;
|
|
5446
5737
|
minOnsetIndependence: number;
|
|
5738
|
+
/** Section styles: independence ABOVE this is the violation (see styles.ts). */
|
|
5739
|
+
maxOnsetIndependence?: number;
|
|
5447
5740
|
}): string[];
|
|
5448
5741
|
|
|
5449
|
-
/**
|
|
5450
|
-
* ensemble-core: style packs. A style = which SOFT rules are violations +
|
|
5451
|
-
* a prompt paragraph steering the joint composition. Hard rules (register,
|
|
5452
|
-
* per-voice monophony, density caps, root-only anchors) apply to every
|
|
5453
|
-
* style — see enforce-voice.ts. Explicitly NOT just baroque: parallels are
|
|
5454
|
-
* a defect in `counterpoint` and the whole point of `interlock`.
|
|
5455
|
-
*
|
|
5456
|
-
* @since SDK 2.42.0
|
|
5457
|
-
*/
|
|
5458
|
-
type EnsembleStyle = 'counterpoint' | 'chorale' | 'interlock';
|
|
5459
|
-
declare const ENSEMBLE_STYLES: readonly EnsembleStyle[];
|
|
5460
|
-
interface EnsembleStyleRules {
|
|
5461
|
-
/** Consecutive perfect 5ths/octaves between adjacent voices are violations. */
|
|
5462
|
-
forbidParallelPerfects: boolean;
|
|
5463
|
-
/** A nominally-upper voice sounding below its neighbor is a violation. */
|
|
5464
|
-
forbidVoiceCrossing: boolean;
|
|
5465
|
-
/**
|
|
5466
|
-
* Minimum fraction of an upper voice's onsets that must NOT coincide with
|
|
5467
|
-
* its lower neighbor (0 = homorhythm fine, 1 = fully independent).
|
|
5468
|
-
*/
|
|
5469
|
-
minOnsetIndependence: number;
|
|
5470
|
-
/** Prompt paragraph injected into the system prompt for this style. */
|
|
5471
|
-
promptParagraph: string;
|
|
5472
|
-
}
|
|
5473
|
-
declare const STYLE_RULES: Record<EnsembleStyle, EnsembleStyleRules>;
|
|
5474
|
-
|
|
5475
5742
|
/**
|
|
5476
5743
|
* ensemble-core: the `submit_ensemble` function-calling contract — how the
|
|
5477
5744
|
* ONE joint LLM call returns all voices as structured JSON. Built for
|
|
@@ -5507,21 +5774,30 @@ declare function parseEnsembleArgs(args: unknown, voiceCount: number): ParsedEns
|
|
|
5507
5774
|
|
|
5508
5775
|
/**
|
|
5509
5776
|
* ensemble-core: the joint-composition system prompt. ONE call composes ALL
|
|
5510
|
-
* voices together — the coordination
|
|
5511
|
-
*
|
|
5512
|
-
*
|
|
5513
|
-
*
|
|
5514
|
-
* stated per voice, sound selection nowhere in sight (that stays
|
|
5777
|
+
* voices together — the coordination has to be planned across voices, which
|
|
5778
|
+
* is exactly what per-track generation can never do. Mirrors the bass
|
|
5779
|
+
* plugin's prompt discipline: numbered load-bearing rules, register/density
|
|
5780
|
+
* contracts stated per voice, sound selection nowhere in sight (that stays
|
|
5515
5781
|
* mechanical, host-side).
|
|
5516
5782
|
*
|
|
5783
|
+
* The numbered rules are INSTRUMENTATION-dependent — the two families obey
|
|
5784
|
+
* opposite coordination physics:
|
|
5785
|
+
*
|
|
5786
|
+
* WOVEN (strings, winds): independent lines that converse — imitation,
|
|
5787
|
+
* contrary motion, staggered entrances, avoid attacking together.
|
|
5788
|
+
*
|
|
5789
|
+
* SECTION (horns): one instrument with many bells — every voice attacks
|
|
5790
|
+
* WITH the lead, voiced under it, short and syncopated, biased hard
|
|
5791
|
+
* toward dance/funk (James Brown stabs, rhythmic punches).
|
|
5792
|
+
*
|
|
5517
5793
|
* The musical context (key/BPM/chords/contract) arrives via the host's
|
|
5518
|
-
* generateWithLLM(Tools) auto-prefix — this prompt states the
|
|
5794
|
+
* generateWithLLM(Tools) auto-prefix — this prompt states the ensemble
|
|
5519
5795
|
* rules and the per-voice contracts only.
|
|
5520
5796
|
*
|
|
5521
|
-
* @since SDK 2.42.0
|
|
5797
|
+
* @since SDK 2.42.0 (section rules @since 2.39.0)
|
|
5522
5798
|
*/
|
|
5523
5799
|
|
|
5524
|
-
declare function buildEnsembleSystemPrompt(specs: readonly EnsembleVoiceSpec[], style: EnsembleStyle): string;
|
|
5800
|
+
declare function buildEnsembleSystemPrompt(specs: readonly EnsembleVoiceSpec[], style: EnsembleStyle, instrumentation?: EnsembleInstrumentation): string;
|
|
5525
5801
|
/**
|
|
5526
5802
|
* Build the retry user-message suffix from soft-rule violations — one
|
|
5527
5803
|
* guided second attempt, quota-conscious (callers should not loop).
|
|
@@ -5581,7 +5857,7 @@ declare function useAnySolo(host: Pick<PluginHost, 'isAnySoloActive' | 'onTrackS
|
|
|
5581
5857
|
* Registry checks semver.gte(PLUGIN_SDK_VERSION, manifest.minHostVersion)
|
|
5582
5858
|
* during activation and marks incompatible plugins accordingly.
|
|
5583
5859
|
*/
|
|
5584
|
-
declare const PLUGIN_SDK_VERSION = "2.
|
|
5860
|
+
declare const PLUGIN_SDK_VERSION = "2.46.0";
|
|
5585
5861
|
|
|
5586
5862
|
/**
|
|
5587
5863
|
* FX Preset Definitions
|
|
@@ -5740,4 +6016,4 @@ interface PickTopKOptions {
|
|
|
5740
6016
|
*/
|
|
5741
6017
|
declare function pickTopKWeighted<T>(scored: ReadonlyArray<ScoredCandidate<T>>, options?: PickTopKOptions): T | null;
|
|
5742
6018
|
|
|
5743
|
-
export { AUDIO_EFFECTS, AUDIO_EFFECT_LABEL, type AdjacentPairAnalysis, type AudioEffect, type AudioInputDevice, type BulkAddPlaceholderTrack, type ComposeProgressEvent, type ComposeProgressListener, type ComposeSceneOptions, type ComposeSceneResult, ConfirmDialog, type ConfirmDialogProps, type CoreTrackHandlers, type CreateTrackOptions, type CrossfadeInpaintInput, type CrossfadeLayer, type CrossfadeMeta, CrossfadeModal, type CrossfadeModalProps, type CrossfadePairMeta, type CrossfadeSelection, type CrossfadeSlot, CrossfadeTrackRow, type CrossfadeTrackRowProps, type CrossfadeVolumeCurves, DB_MAX, DB_MIN, DEFAULT_FX_CATEGORY_DETAIL, DEFAULT_FX_DRY_WET, DRAG_DEAD_ZONE, type DeckBoundaryEvent, type DeckBoundaryListener, type DesignerRowSlots, DownloadPackButton, type DownloadPackButtonProps, type DownloadPackButtonVariant, type DrawerTab, type DrumKit, EMPTY_FX_DETAIL_STATE, EMPTY_FX_STATE, ENSEMBLE_MAX_VOICES, ENSEMBLE_MIN_VOICES, ENSEMBLE_STYLES, EQUAL_POWER_GAIN, type EnforceVoiceOptions, type EnforceVoiceResult, type EnsembleAnalysis, type EnsembleNote, type EnsembleStyle, type EnsembleStyleRules, type EnsembleVoiceSpec, type ExportMidiBundleOptions, type ExportMidiBundleResult, type ExportedPluginData, FX_CATEGORIES, FX_CHAIN_ORDER, FX_DISPLAY_LABELS, FX_ENGINE_PLUGIN_NAMES, FX_PRESET_CONFIGS, type FadeDirection, type FadeEntry, type FadeGesture, type FadeLayer, type FadeMeta, FadeModal, type FadeModalProps, type FadeSelection, FadeTrackRow, type FadeTrackRowProps, type FxCategory, type FxCategoryDetailState, type FxPreset, type FxPresetConfig, type FxPresetData, type FxPresetDataEntry, FxToggleBar, type FxToggleBarProps, GUTTER_W, type GenerationServices, type GeneratorPanelAdapter, type GeneratorPanelCore, GeneratorPanelShell, type GeneratorPanelShellProps, type GeneratorPanelSlots, type GeneratorPlugin, type GeneratorTrackState, type GeneratorType, type GroupFadeEntry, type GroupFadeEntryOf, type GroupFadeMemberLayer, GroupFadeTrackRow, type GroupFadeTrackRowProps, type GroupParseSpec, type GroupRenderContext, type ImportCandidateScene, type ImportCandidateTrack, ImportTrackModal, type ImportTrackModalProps, type InstrumentDescriptor, TrackDrawer as InstrumentDrawer, type TrackDrawerProps as InstrumentDrawerProps, type InstrumentSampler, type InstrumentZone, type LLMCandidate, type LLMContent, type LLMFunctionDeclaration, type LLMGenerationConfig, type LLMGenerationRequest, type LLMGenerationResult, type LLMNoteResponse, type LLMPart, type LLMSystemInstruction, type LLMTool, type LLMToolUseRequest, type LLMToolUseResponse, type LLMUsageMetadata, LevelMeter, type LevelMeterProps, type ListAudioFilesOptions, type ListImportableTracksOptions, MIN_NOTE_DURATION_BEATS, type MidiClipData, type MidiWriteResult, type MixInterpolation, Modal, type ModalProps, type MotionKind, type MusicalContext, OffsetScrubber, type OffsetScrubberProps, PLUGIN_SDK_VERSION, PX_PER_BEAT, PanSlider, type PanelBusFxEntry, type PanelBusLevels, type PanelBusState, type PanelFeatureFlags, type PanelGenerationStrategy, type PanelGroupExtension, type PanelIdentity, PanelMasterStrip, type PanelMasterStripProps, type PanelShuffleAdapter, type PanelSoundAdapter, type PanelTransitionGroupAdapter, type ParsedEnsemble, type PeakAnalysis, PianoRollEditor, type PianoRollEditorProps, type PickTopKOptions, type PluginAppTool, type PluginAppToolInputSchema, type PluginAppToolResult, type PluginAudioTextureRequest, type PluginAudioTextureResult, type PluginCapabilities, type PluginChordSegment, type PluginChordTiming, type PluginConcurrentTrackInfo, type PluginCuePoints, type PluginDownloadOptions, PluginError, type PluginErrorCode, type PluginFileDialogOptions, type PluginFxCategoryDetailState, type PluginGenerationContext, type PluginGenerationContextOptions, type PluginHost, type PluginHttpRequestOptions, type PluginHttpResponse, type PluginManifest, type PluginMidiNote, type PluginPresetData, type PluginPresetInfo, type PluginRegistration, type PluginSampleFilter, type PluginSampleImportResult, type PluginSampleInfo, type PluginSampleTrackInfo, type PluginSceneContext, type PluginSceneInfo, type PluginSettingsSchema, type PluginSettingsStore, type PluginSkill, type PluginSkillInputSchema, type PluginStatus, type PluginStemSplitResult, type PluginStemTrackInfo, type PluginSynthInfo, type PluginTrackFxDetailState, type PluginTrackHandle, type PluginTrackInfo, type PluginTrackLevel, type PluginTrackRuntimeState, type PluginTransportState, type PluginTrimWindow, type PluginUIProps, type PostProcessOptions, RESIZE_HANDLE_PX, ROW_HEIGHT, type ReadMidiClip, type ReadMidiResult, type RecordingChunkFinalizedEvent, type RecordingTargetInfo, type ResolveGroupsOptions, type ResolvedCrossfadePair, type ResolvedFade, type ResolvedGroupFade, type ResolvedGroupsResult, type ResolvedTrackGroup, type SDKTrackRowProps, SLIDER_UNITY, STYLE_RULES, SUBMIT_ENSEMBLE_TOOL_NAME, SamplePackCTACard, type SamplePackCTACardProps, type SamplePackCTACardStatus, type SamplePackCardInfo, type SavePluginPresetOptions, type SceneChangeListener, type SceneFamilyTrack, type SceneTrackSummary, type ScoredCandidate, ScrollingWaveform, type ScrollingWaveformProps, type SettingDefinition, type ShufflePresetOptions, type ShufflePresetResult, SorceryProgressBar, type SoundHistoryEntry, type StemType, type SurgeSoundAdapterOverrides, type SurgeXtStatus, type SynthesizeCuePointsOptions, TEXTURAL_ROLES, TRANSITION_DESIGNER_DRAFT_KEY, type TrackCreatedContext, TrackDrawer, type TrackDrawerProps, type TrackExternalFxEntry, TrackExternalFxSection, type TrackExternalFxSectionProps, type TrackFxDetailState, type TrackFxState, type TrackGroupMember, type TrackGroupMeta, type TrackLevelsHandle, TrackMeterStrip, type TrackMeterStripProps, type TrackMeterView, TrackRow, type TrackRowDragProps, type TrackSoundHistory, type TrackSoundSnapshot, type TrackStateChangeListener, TransitionDesigner, type TransitionDesignerDraft, type TransitionDesignerProps, type TransitionOps, type TransitionRowType, type TransportEvent, type TransportEventListener, type UnsubscribeFn, type UseGeneratorPanelCoreOptions, type UsePanelBusResult, type UseSoundHistoryOptions, type UseSoundHistoryResult, type UseTrackExternalFxResult, type UseTrackReorderOptions, type UseTrackReorderResult, type UseTransitionOpsInputs, type VerbatimFadeMember, type VolumeAutomationPoint, VolumeSlider, type WaveformPeaks, WaveformView, type WaveformViewProps, analyzeEnsemble, analyzeWavPeak, asAudioEffect, asCrossfadeMeta, asFadeMeta, asTransitionDesignerDraft, buildCrossfadeInpaintPrompt, buildCrossfadeVolumeCurves, buildEnsembleSystemPrompt, buildFadeVolumeCurve, buildRowSlots, buildSubmitEnsembleParameters, buildViolationRetrySuffix, calculateTimeBasedTarget, cellToPx, centerScrollTop, computePeaks, createSurgeSoundAdapter, dbIdsFromKeys, dbToSlider, defaultFadeGesture, defaultVoiceSpecs, describeViolations, drawWaveform, effectivePxPerBeat, enforceVoice, foldPitchToRegister, formatConcurrentTracks, hashString, moveItem, nearestPitchWithPc, newTrackState, normalizeSlots, padPair, padSlots, parseCrossfadePairs, parseEnsembleArgs, parseFades, parseLLMNoteResponse, parseTrackGroups, pickTopKWeighted, pitchToName, pluginFxToToggleFx, promptEnterToGenerate, pxToCell, reconcileSlots, resizeNoteDuration, resolveTrackGroups, rowKey, rowType, scorePromptMatch, sliderToDb, slotsEqual, soundIdentity, splitFadeEntries, synthesizeCuePoints, tokenizePrompt, trackDataKey, transposeNotes, useAnySolo, useGeneratorPanelCore, usePanelBus, useSceneState, useSoundHistory, useTrackExternalFx, useTrackLevel, useTrackLevels, useTrackMeter, useTrackReorder, useTransitionOps, useTransportPlaying };
|
|
6019
|
+
export { AUDIO_EFFECTS, AUDIO_EFFECT_LABEL, type AdjacentPairAnalysis, type AudioEffect, type AudioInputDevice, type BulkAddPlaceholderTrack, type ComposeProgressEvent, type ComposeProgressListener, type ComposeSceneOptions, type ComposeSceneResult, ConfirmDialog, type ConfirmDialogProps, type CoreTrackHandlers, type CreateTrackOptions, type CrossfadeInpaintInput, type CrossfadeLayer, type CrossfadeMeta, CrossfadeModal, type CrossfadeModalProps, type CrossfadePairMeta, type CrossfadeSelection, type CrossfadeSlot, CrossfadeTrackRow, type CrossfadeTrackRowProps, type CrossfadeVolumeCurves, DB_MAX, DB_MIN, DEFAULT_FX_CATEGORY_DETAIL, DEFAULT_FX_DRY_WET, DEFAULT_STYLE_FOR_INSTRUMENTATION, DRAG_DEAD_ZONE, type DeckBoundaryEvent, type DeckBoundaryListener, type DesignerRowSlots, DownloadPackButton, type DownloadPackButtonProps, type DownloadPackButtonVariant, type DrawerTab, type DrumKit, EMPTY_FX_DETAIL_STATE, EMPTY_FX_STATE, ENSEMBLE_INSTRUMENTATIONS, ENSEMBLE_MAX_VOICES, ENSEMBLE_MIN_VOICES, ENSEMBLE_STYLES, EQUAL_POWER_GAIN, type EnforceVoiceOptions, type EnforceVoiceResult, type EnsembleAnalysis, type EnsembleInstrumentation, type EnsembleNote, type EnsembleStyle, type EnsembleStyleRules, type EnsembleVoiceSpec, type ExportMidiBundleOptions, type ExportMidiBundleResult, type ExportedPluginData, FX_CATEGORIES, FX_CHAIN_ORDER, FX_DISPLAY_LABELS, FX_ENGINE_PLUGIN_NAMES, FX_PRESET_CONFIGS, type FadeDirection, type FadeEntry, type FadeGesture, type FadeLayer, type FadeMeta, FadeModal, type FadeModalProps, type FadeSelection, FadeTrackRow, type FadeTrackRowProps, type FreezeDep, type FxCategory, type FxCategoryDetailState, type FxPreset, type FxPresetConfig, type FxPresetData, type FxPresetDataEntry, FxToggleBar, type FxToggleBarProps, GUTTER_W, type GenerationServices, type GeneratorPanelAdapter, type GeneratorPanelCore, GeneratorPanelShell, type GeneratorPanelShellProps, type GeneratorPanelSlots, type GeneratorPlugin, type GeneratorTrackState, type GeneratorType, GroupCollapseChevron, type GroupCollapseChevronProps, type GroupFadeEntry, type GroupFadeEntryOf, type GroupFadeMemberLayer, GroupFadeTrackRow, type GroupFadeTrackRowProps, type GroupParseSpec, type GroupRenderContext, HORN_MAX_NOTES_PER_BAR, type ImportCandidateScene, type ImportCandidateTrack, ImportTrackModal, type ImportTrackModalProps, type InstrumentDescriptor, TrackDrawer as InstrumentDrawer, type TrackDrawerProps as InstrumentDrawerProps, type InstrumentSampler, type InstrumentZone, type LLMCandidate, type LLMContent, type LLMFunctionDeclaration, type LLMGenerationConfig, type LLMGenerationRequest, type LLMGenerationResult, type LLMNoteResponse, type LLMPart, type LLMSystemInstruction, type LLMTool, type LLMToolUseRequest, type LLMToolUseResponse, type LLMUsageMetadata, LevelMeter, type LevelMeterProps, type ListAudioFilesOptions, type ListImportableTracksOptions, MIN_NOTE_DURATION_BEATS, type MidiClipData, type MidiWriteResult, type MixInterpolation, Modal, type ModalProps, type MotionKind, type MusicalContext, OffsetScrubber, type OffsetScrubberProps, PLUGIN_SDK_VERSION, PX_PER_BEAT, PanSlider, type PanelBusFxEntry, type PanelBusLevels, type PanelBusState, type PanelFeatureFlags, type PanelGenerationStrategy, type PanelGroupExtension, type PanelIdentity, PanelMasterStrip, type PanelMasterStripProps, type PanelShuffleAdapter, type PanelSoundAdapter, type PanelTransitionGroupAdapter, type ParsedEnsemble, type PeakAnalysis, PianoRollEditor, type PianoRollEditorProps, type PickTopKOptions, type PluginAppTool, type PluginAppToolInputSchema, type PluginAppToolResult, type PluginAudioTextureRequest, type PluginAudioTextureResult, type PluginCapabilities, type PluginChordSegment, type PluginChordTiming, type PluginConcurrentTrackInfo, type PluginCuePoints, type PluginDownloadOptions, PluginError, type PluginErrorCode, type PluginFileDialogOptions, type PluginFxCategoryDetailState, type PluginGenerationContext, type PluginGenerationContextOptions, type PluginHost, type PluginHttpRequestOptions, type PluginHttpResponse, type PluginManifest, type PluginMidiNote, type PluginPresetData, type PluginPresetInfo, type PluginRegistration, type PluginSampleFilter, type PluginSampleImportResult, type PluginSampleInfo, type PluginSampleTrackInfo, type PluginSceneContext, type PluginSceneInfo, type PluginSettingsSchema, type PluginSettingsStore, type PluginSkill, type PluginSkillInputSchema, type PluginStatus, type PluginStemSplitResult, type PluginStemTrackInfo, type PluginSynthInfo, type PluginTrackFxDetailState, type PluginTrackHandle, type PluginTrackInfo, type PluginTrackLevel, type PluginTrackRuntimeState, type PluginTransportState, type PluginTrimWindow, type PluginUIProps, type PostProcessOptions, RESIZE_HANDLE_PX, RIFF_MAX_ONSET_INDEPENDENCE, ROW_HEIGHT, type ReadMidiClip, type ReadMidiResult, type RecordingChunkFinalizedEvent, type RecordingTargetInfo, type ResolveGroupsOptions, type ResolvedCrossfadePair, type ResolvedFade, type ResolvedGroupFade, type ResolvedGroupsResult, type ResolvedTrackGroup, type SDKTrackRowProps, SLIDER_UNITY, STAB_MAX_NOTE_DURATION_BEATS, STAB_MAX_ONSET_INDEPENDENCE, STYLES_FOR_INSTRUMENTATION, STYLE_RULES, SUBMIT_ENSEMBLE_TOOL_NAME, SamplePackCTACard, type SamplePackCTACardProps, type SamplePackCTACardStatus, type SamplePackCardInfo, type SavePluginPresetOptions, type SceneChangeListener, type SceneFamilyTrack, type SceneTrackSummary, type ScoredCandidate, ScrollingWaveform, type ScrollingWaveformProps, type SettingDefinition, type ShufflePresetOptions, type ShufflePresetResult, SorceryProgressBar, type SoundHistoryEntry, type StemType, type SurgeSoundAdapterOverrides, type SurgeXtStatus, type SynthesizeCuePointsOptions, TEXTURAL_ROLES, TRANSITION_DESIGNER_DRAFT_KEY, type TrackCreatedContext, TrackDrawer, type TrackDrawerProps, type TrackExternalFxEntry, TrackExternalFxSection, type TrackExternalFxSectionProps, TrackFreezeSection, type TrackFreezeSectionProps, type TrackFreezeState, type TrackFxDetailState, type TrackFxState, type TrackGroupMember, type TrackGroupMeta, type TrackLevelsHandle, TrackMeterStrip, type TrackMeterStripProps, type TrackMeterView, TrackRow, type TrackRowDragProps, type TrackSoundHistory, type TrackSoundSnapshot, type TrackStateChangeListener, TransitionDesigner, type TransitionDesignerDraft, type TransitionDesignerProps, type TransitionOps, type TransitionRowType, type TransportEvent, type TransportEventListener, UNISON_MAX_ONSET_INDEPENDENCE, type UnsubscribeFn, type UseGeneratorPanelCoreOptions, type UsePanelBusResult, type UseSoundHistoryOptions, type UseSoundHistoryResult, type UseTrackExternalFxResult, type UseTrackFreezeResult, type UseTrackReorderOptions, type UseTrackReorderResult, type UseTransitionOpsInputs, type VerbatimFadeMember, type VolumeAutomationPoint, VolumeSlider, type WaveformPeaks, WaveformView, type WaveformViewProps, analyzeEnsemble, analyzeWavPeak, asAudioEffect, asCrossfadeMeta, asFadeMeta, asTransitionDesignerDraft, buildCrossfadeInpaintPrompt, buildCrossfadeVolumeCurves, buildEnsembleSystemPrompt, buildFadeVolumeCurve, buildRowSlots, buildSubmitEnsembleParameters, buildViolationRetrySuffix, calculateTimeBasedTarget, cellToPx, centerScrollTop, computePeaks, createSurgeSoundAdapter, dbIdsFromKeys, dbToSlider, defaultFadeGesture, defaultVoiceSpecs, describeViolations, drawWaveform, effectivePxPerBeat, enforceVoice, foldPitchToRegister, formatConcurrentTracks, hashString, moveItem, nearestPitchWithPc, newTrackState, normalizeInstrumentation, normalizeSlots, padPair, padSlots, parseCrossfadePairs, parseEnsembleArgs, parseFades, parseLLMNoteResponse, parseTrackGroups, pickTopKWeighted, pitchToName, pluginFxToToggleFx, promptEnterToGenerate, pxToCell, reconcileSlots, resizeNoteDuration, resolveTrackGroups, rowKey, rowType, scorePromptMatch, sliderToDb, slotsEqual, soundIdentity, splitFadeEntries, styleForInstrumentation, synthesizeCuePoints, tokenizePrompt, trackDataKey, transposeNotes, useAnySolo, useGeneratorPanelCore, usePanelBus, useSceneState, useSoundHistory, useTrackExternalFx, useTrackFreeze, useTrackLevel, useTrackLevels, useTrackMeter, useTrackReorder, useTransitionOps, useTransportPlaying };
|