@opendaw/studio-adapters 0.0.6
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/README.md +1 -0
- package/dist/AudioData.d.ts +7 -0
- package/dist/AudioData.d.ts.map +1 -0
- package/dist/AudioData.js +1 -0
- package/dist/AudioFileBoxAdapter.d.ts +22 -0
- package/dist/AudioFileBoxAdapter.d.ts.map +1 -0
- package/dist/AudioFileBoxAdapter.js +19 -0
- package/dist/AudioLoader.d.ts +26 -0
- package/dist/AudioLoader.d.ts.map +1 -0
- package/dist/AudioLoader.js +1 -0
- package/dist/AudioMetaData.d.ts +8 -0
- package/dist/AudioMetaData.d.ts.map +1 -0
- package/dist/AudioMetaData.js +1 -0
- package/dist/AudioSample.d.ts +5 -0
- package/dist/AudioSample.d.ts.map +1 -0
- package/dist/AudioSample.js +1 -0
- package/dist/AutomatableParameterFieldAdapter.d.ts +35 -0
- package/dist/AutomatableParameterFieldAdapter.d.ts.map +1 -0
- package/dist/AutomatableParameterFieldAdapter.js +161 -0
- package/dist/BoxAdapter.d.ts +7 -0
- package/dist/BoxAdapter.d.ts.map +1 -0
- package/dist/BoxAdapter.js +1 -0
- package/dist/BoxAdapterCollection.d.ts +19 -0
- package/dist/BoxAdapterCollection.d.ts.map +1 -0
- package/dist/BoxAdapterCollection.js +35 -0
- package/dist/BoxAdapters.d.ts +11 -0
- package/dist/BoxAdapters.d.ts.map +1 -0
- package/dist/BoxAdapters.js +129 -0
- package/dist/BoxAdaptersContext.d.ts +24 -0
- package/dist/BoxAdaptersContext.d.ts.map +1 -0
- package/dist/BoxAdaptersContext.js +1 -0
- package/dist/ClipNotifications.d.ts +14 -0
- package/dist/ClipNotifications.d.ts.map +1 -0
- package/dist/ClipNotifications.js +1 -0
- package/dist/ClipSequencing.d.ts +12 -0
- package/dist/ClipSequencing.d.ts.map +1 -0
- package/dist/ClipSequencing.js +1 -0
- package/dist/EngineProcessorOptions.d.ts +18 -0
- package/dist/EngineProcessorOptions.d.ts.map +1 -0
- package/dist/EngineProcessorOptions.js +26 -0
- package/dist/EngineStateSchema.d.ts +7 -0
- package/dist/EngineStateSchema.d.ts.map +1 -0
- package/dist/EngineStateSchema.js +5 -0
- package/dist/FieldAdapter.d.ts +26 -0
- package/dist/FieldAdapter.d.ts.map +1 -0
- package/dist/FieldAdapter.js +59 -0
- package/dist/IconSymbol.d.ts +119 -0
- package/dist/IconSymbol.d.ts.map +1 -0
- package/dist/IconSymbol.js +119 -0
- package/dist/IndexComparator.d.ts +3 -0
- package/dist/IndexComparator.d.ts.map +1 -0
- package/dist/IndexComparator.js +11 -0
- package/dist/ManadatoryBoxes.d.ts +9 -0
- package/dist/ManadatoryBoxes.d.ts.map +1 -0
- package/dist/ManadatoryBoxes.js +1 -0
- package/dist/NoteBroadcaster.d.ts +14 -0
- package/dist/NoteBroadcaster.d.ts.map +1 -0
- package/dist/NoteBroadcaster.js +23 -0
- package/dist/NoteSender.d.ts +9 -0
- package/dist/NoteSender.d.ts.map +1 -0
- package/dist/NoteSender.js +15 -0
- package/dist/NoteStreamReceiver.d.ts +12 -0
- package/dist/NoteStreamReceiver.d.ts.map +1 -0
- package/dist/NoteStreamReceiver.js +23 -0
- package/dist/ParameterAdapterSet.d.ts +14 -0
- package/dist/ParameterAdapterSet.d.ts.map +1 -0
- package/dist/ParameterAdapterSet.js +27 -0
- package/dist/ParameterFieldAdapters.d.ts +11 -0
- package/dist/ParameterFieldAdapters.d.ts.map +1 -0
- package/dist/ParameterFieldAdapters.js +13 -0
- package/dist/PeakMeterProcessorOptions.d.ts +8 -0
- package/dist/PeakMeterProcessorOptions.d.ts.map +1 -0
- package/dist/PeakMeterProcessorOptions.js +1 -0
- package/dist/PianoModeAdapter.d.ts +15 -0
- package/dist/PianoModeAdapter.d.ts.map +1 -0
- package/dist/PianoModeAdapter.js +28 -0
- package/dist/ProjectDecoder.d.ts +13 -0
- package/dist/ProjectDecoder.d.ts.map +1 -0
- package/dist/ProjectDecoder.js +27 -0
- package/dist/RecordingProcessorOptions.d.ts +4 -0
- package/dist/RecordingProcessorOptions.d.ts.map +1 -0
- package/dist/RecordingProcessorOptions.js +1 -0
- package/dist/RingBuffer.d.ts +19 -0
- package/dist/RingBuffer.d.ts.map +1 -0
- package/dist/RingBuffer.js +92 -0
- package/dist/RootBoxAdapter.d.ts +30 -0
- package/dist/RootBoxAdapter.d.ts.map +1 -0
- package/dist/RootBoxAdapter.js +43 -0
- package/dist/SortedBoxAdapterCollection.d.ts +29 -0
- package/dist/SortedBoxAdapterCollection.d.ts.map +1 -0
- package/dist/SortedBoxAdapterCollection.js +100 -0
- package/dist/UnionAdapterTypes.d.ts +15 -0
- package/dist/UnionAdapterTypes.d.ts.map +1 -0
- package/dist/UnionAdapterTypes.js +5 -0
- package/dist/UpdateClockRate.d.ts +2 -0
- package/dist/UpdateClockRate.d.ts.map +1 -0
- package/dist/UpdateClockRate.js +2 -0
- package/dist/audio-unit/AudioBusBoxAdapter.d.ts +28 -0
- package/dist/audio-unit/AudioBusBoxAdapter.d.ts.map +1 -0
- package/dist/audio-unit/AudioBusBoxAdapter.js +33 -0
- package/dist/audio-unit/AudioUnitBoxAdapter.d.ts +55 -0
- package/dist/audio-unit/AudioUnitBoxAdapter.d.ts.map +1 -0
- package/dist/audio-unit/AudioUnitBoxAdapter.js +97 -0
- package/dist/audio-unit/AudioUnitInput.d.ts +21 -0
- package/dist/audio-unit/AudioUnitInput.d.ts.map +1 -0
- package/dist/audio-unit/AudioUnitInput.js +74 -0
- package/dist/audio-unit/AudioUnitInputAdapter.d.ts +4 -0
- package/dist/audio-unit/AudioUnitInputAdapter.d.ts.map +1 -0
- package/dist/audio-unit/AudioUnitInputAdapter.js +1 -0
- package/dist/audio-unit/AudioUnitOutput.d.ts +14 -0
- package/dist/audio-unit/AudioUnitOutput.d.ts.map +1 -0
- package/dist/audio-unit/AudioUnitOutput.js +42 -0
- package/dist/audio-unit/AudioUnitTracks.d.ts +21 -0
- package/dist/audio-unit/AudioUnitTracks.d.ts.map +1 -0
- package/dist/audio-unit/AudioUnitTracks.js +62 -0
- package/dist/audio-unit/AuxSendBoxAdapter.d.ts +23 -0
- package/dist/audio-unit/AuxSendBoxAdapter.d.ts.map +1 -0
- package/dist/audio-unit/AuxSendBoxAdapter.js +58 -0
- package/dist/devices/audio-effects/DelayDeviceBoxAdapter.d.ts +35 -0
- package/dist/devices/audio-effects/DelayDeviceBoxAdapter.d.ts.map +1 -0
- package/dist/devices/audio-effects/DelayDeviceBoxAdapter.js +50 -0
- package/dist/devices/audio-effects/ModularDeviceBoxAdapter.d.ts +31 -0
- package/dist/devices/audio-effects/ModularDeviceBoxAdapter.d.ts.map +1 -0
- package/dist/devices/audio-effects/ModularDeviceBoxAdapter.js +38 -0
- package/dist/devices/audio-effects/RevampDeviceBoxAdapter.d.ts +52 -0
- package/dist/devices/audio-effects/RevampDeviceBoxAdapter.d.ts.map +1 -0
- package/dist/devices/audio-effects/RevampDeviceBoxAdapter.js +66 -0
- package/dist/devices/audio-effects/ReverbDeviceBoxAdapter.d.ts +35 -0
- package/dist/devices/audio-effects/ReverbDeviceBoxAdapter.d.ts.map +1 -0
- package/dist/devices/audio-effects/ReverbDeviceBoxAdapter.js +44 -0
- package/dist/devices/audio-effects/StereoToolDeviceBoxAdapter.d.ts +33 -0
- package/dist/devices/audio-effects/StereoToolDeviceBoxAdapter.d.ts.map +1 -0
- package/dist/devices/audio-effects/StereoToolDeviceBoxAdapter.js +41 -0
- package/dist/devices/instruments/NanoDeviceBoxAdapter.d.ts +32 -0
- package/dist/devices/instruments/NanoDeviceBoxAdapter.d.ts.map +1 -0
- package/dist/devices/instruments/NanoDeviceBoxAdapter.js +40 -0
- package/dist/devices/instruments/Playfield/Gate.d.ts +6 -0
- package/dist/devices/instruments/Playfield/Gate.d.ts.map +1 -0
- package/dist/devices/instruments/Playfield/Gate.js +6 -0
- package/dist/devices/instruments/Playfield/PlayfieldSampleBoxAdapter.d.ts +63 -0
- package/dist/devices/instruments/Playfield/PlayfieldSampleBoxAdapter.d.ts.map +1 -0
- package/dist/devices/instruments/Playfield/PlayfieldSampleBoxAdapter.js +128 -0
- package/dist/devices/instruments/PlayfieldDeviceBoxAdapter.d.ts +35 -0
- package/dist/devices/instruments/PlayfieldDeviceBoxAdapter.d.ts.map +1 -0
- package/dist/devices/instruments/PlayfieldDeviceBoxAdapter.js +40 -0
- package/dist/devices/instruments/TapeDeviceBoxAdapter.d.ts +34 -0
- package/dist/devices/instruments/TapeDeviceBoxAdapter.d.ts.map +1 -0
- package/dist/devices/instruments/TapeDeviceBoxAdapter.js +42 -0
- package/dist/devices/instruments/VaporisateurDeviceBoxAdapter.d.ts +39 -0
- package/dist/devices/instruments/VaporisateurDeviceBoxAdapter.d.ts.map +1 -0
- package/dist/devices/instruments/VaporisateurDeviceBoxAdapter.js +47 -0
- package/dist/devices/midi-effects/ArpeggioDeviceBoxAdapter.d.ts +37 -0
- package/dist/devices/midi-effects/ArpeggioDeviceBoxAdapter.d.ts.map +1 -0
- package/dist/devices/midi-effects/ArpeggioDeviceBoxAdapter.js +51 -0
- package/dist/devices/midi-effects/PitchDeviceBoxAdapter.d.ts +32 -0
- package/dist/devices/midi-effects/PitchDeviceBoxAdapter.d.ts.map +1 -0
- package/dist/devices/midi-effects/PitchDeviceBoxAdapter.js +39 -0
- package/dist/devices/midi-effects/ZeitgeistDeviceBoxAdapter.d.ts +28 -0
- package/dist/devices/midi-effects/ZeitgeistDeviceBoxAdapter.d.ts.map +1 -0
- package/dist/devices/midi-effects/ZeitgeistDeviceBoxAdapter.js +35 -0
- package/dist/devices.d.ts +68 -0
- package/dist/devices.d.ts.map +1 -0
- package/dist/devices.js +55 -0
- package/dist/editing/UserEditing.d.ts +15 -0
- package/dist/editing/UserEditing.d.ts.map +1 -0
- package/dist/editing/UserEditing.js +39 -0
- package/dist/editing/UserEditingManager.d.ts +14 -0
- package/dist/editing/UserEditingManager.d.ts.map +1 -0
- package/dist/editing/UserEditingManager.js +23 -0
- package/dist/grooves/GrooveBoxAdapter.d.ts +10 -0
- package/dist/grooves/GrooveBoxAdapter.d.ts.map +1 -0
- package/dist/grooves/GrooveBoxAdapter.js +4 -0
- package/dist/grooves/GrooveShuffleBoxAdapter.d.ts +27 -0
- package/dist/grooves/GrooveShuffleBoxAdapter.d.ts.map +1 -0
- package/dist/grooves/GrooveShuffleBoxAdapter.js +43 -0
- package/dist/index.d.ts +98 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +99 -0
- package/dist/modular/abstract.d.ts +30 -0
- package/dist/modular/abstract.d.ts.map +1 -0
- package/dist/modular/abstract.js +39 -0
- package/dist/modular/connection.d.ts +15 -0
- package/dist/modular/connection.d.ts.map +1 -0
- package/dist/modular/connection.js +12 -0
- package/dist/modular/connector.d.ts +21 -0
- package/dist/modular/connector.d.ts.map +1 -0
- package/dist/modular/connector.js +42 -0
- package/dist/modular/modular.d.ts +30 -0
- package/dist/modular/modular.d.ts.map +1 -0
- package/dist/modular/modular.js +68 -0
- package/dist/modular/module.d.ts +21 -0
- package/dist/modular/module.d.ts.map +1 -0
- package/dist/modular/module.js +23 -0
- package/dist/modular/modules/audio-input.d.ts +14 -0
- package/dist/modular/modules/audio-input.d.ts.map +1 -0
- package/dist/modular/modules/audio-input.js +17 -0
- package/dist/modular/modules/audio-output.d.ts +14 -0
- package/dist/modular/modules/audio-output.d.ts.map +1 -0
- package/dist/modular/modules/audio-output.js +17 -0
- package/dist/modular/modules/delay.d.ts +17 -0
- package/dist/modular/modules/delay.d.ts.map +1 -0
- package/dist/modular/modules/delay.js +23 -0
- package/dist/modular/modules/gain.d.ts +17 -0
- package/dist/modular/modules/gain.d.ts.map +1 -0
- package/dist/modular/modules/gain.js +23 -0
- package/dist/modular/modules/multiplier.d.ts +13 -0
- package/dist/modular/modules/multiplier.d.ts.map +1 -0
- package/dist/modular/modules/multiplier.js +19 -0
- package/dist/modular/user-interface.d.ts +21 -0
- package/dist/modular/user-interface.d.ts.map +1 -0
- package/dist/modular/user-interface.js +23 -0
- package/dist/protocols.d.ts +25 -0
- package/dist/protocols.d.ts.map +1 -0
- package/dist/protocols.js +1 -0
- package/dist/selection/FilteredSelection.d.ts +20 -0
- package/dist/selection/FilteredSelection.d.ts.map +1 -0
- package/dist/selection/FilteredSelection.js +58 -0
- package/dist/selection/SelectableVertex.d.ts +4 -0
- package/dist/selection/SelectableVertex.d.ts.map +1 -0
- package/dist/selection/SelectableVertex.js +1 -0
- package/dist/selection/SelectionEntry.d.ts +7 -0
- package/dist/selection/SelectionEntry.d.ts.map +1 -0
- package/dist/selection/SelectionEntry.js +1 -0
- package/dist/selection/VertexSelection.d.ts +29 -0
- package/dist/selection/VertexSelection.d.ts.map +1 -0
- package/dist/selection/VertexSelection.js +120 -0
- package/dist/selection/isVertexOfBox.d.ts +5 -0
- package/dist/selection/isVertexOfBox.d.ts.map +1 -0
- package/dist/selection/isVertexOfBox.js +1 -0
- package/dist/timeline/ClipBoxAdapter.d.ts +38 -0
- package/dist/timeline/ClipBoxAdapter.d.ts.map +1 -0
- package/dist/timeline/ClipBoxAdapter.js +11 -0
- package/dist/timeline/MarkerBoxAdapter.d.ts +24 -0
- package/dist/timeline/MarkerBoxAdapter.d.ts.map +1 -0
- package/dist/timeline/MarkerBoxAdapter.js +41 -0
- package/dist/timeline/MarkerTrackAdapter.d.ts +19 -0
- package/dist/timeline/MarkerTrackAdapter.d.ts.map +1 -0
- package/dist/timeline/MarkerTrackAdapter.js +45 -0
- package/dist/timeline/RegionBoxAdapter.d.ts +48 -0
- package/dist/timeline/RegionBoxAdapter.d.ts.map +1 -0
- package/dist/timeline/RegionBoxAdapter.js +12 -0
- package/dist/timeline/RegionEditing.d.ts +7 -0
- package/dist/timeline/RegionEditing.d.ts.map +1 -0
- package/dist/timeline/RegionEditing.js +40 -0
- package/dist/timeline/TimelineBoxAdapter.d.ts +16 -0
- package/dist/timeline/TimelineBoxAdapter.d.ts.map +1 -0
- package/dist/timeline/TimelineBoxAdapter.js +14 -0
- package/dist/timeline/TrackBoxAdapter.d.ts +32 -0
- package/dist/timeline/TrackBoxAdapter.d.ts.map +1 -0
- package/dist/timeline/TrackBoxAdapter.js +167 -0
- package/dist/timeline/TrackClips.d.ts +16 -0
- package/dist/timeline/TrackClips.d.ts.map +1 -0
- package/dist/timeline/TrackClips.js +26 -0
- package/dist/timeline/TrackRegions.d.ts +17 -0
- package/dist/timeline/TrackRegions.d.ts.map +1 -0
- package/dist/timeline/TrackRegions.js +41 -0
- package/dist/timeline/TrackType.d.ts +12 -0
- package/dist/timeline/TrackType.d.ts.map +1 -0
- package/dist/timeline/TrackType.js +37 -0
- package/dist/timeline/clip/AudioClipBoxAdapter.d.ts +39 -0
- package/dist/timeline/clip/AudioClipBoxAdapter.d.ts.map +1 -0
- package/dist/timeline/clip/AudioClipBoxAdapter.js +87 -0
- package/dist/timeline/clip/NoteClipBoxAdapter.d.ts +39 -0
- package/dist/timeline/clip/NoteClipBoxAdapter.d.ts.map +1 -0
- package/dist/timeline/clip/NoteClipBoxAdapter.js +92 -0
- package/dist/timeline/clip/ValueClipBoxAdapter.d.ts +40 -0
- package/dist/timeline/clip/ValueClipBoxAdapter.d.ts.map +1 -0
- package/dist/timeline/clip/ValueClipBoxAdapter.js +98 -0
- package/dist/timeline/collection/NoteEventCollectionBoxAdapter.d.ts +40 -0
- package/dist/timeline/collection/NoteEventCollectionBoxAdapter.d.ts.map +1 -0
- package/dist/timeline/collection/NoteEventCollectionBoxAdapter.js +136 -0
- package/dist/timeline/collection/ValueEventCollectionBoxAdapter.d.ts +33 -0
- package/dist/timeline/collection/ValueEventCollectionBoxAdapter.d.ts.map +1 -0
- package/dist/timeline/collection/ValueEventCollectionBoxAdapter.js +139 -0
- package/dist/timeline/event/InterpolationFieldAdapter.d.ts +8 -0
- package/dist/timeline/event/InterpolationFieldAdapter.d.ts.map +1 -0
- package/dist/timeline/event/InterpolationFieldAdapter.js +47 -0
- package/dist/timeline/event/NoteEventBoxAdapter.d.ts +45 -0
- package/dist/timeline/event/NoteEventBoxAdapter.d.ts.map +1 -0
- package/dist/timeline/event/NoteEventBoxAdapter.js +106 -0
- package/dist/timeline/event/ValueEventBoxAdapter.d.ts +39 -0
- package/dist/timeline/event/ValueEventBoxAdapter.d.ts.map +1 -0
- package/dist/timeline/event/ValueEventBoxAdapter.js +113 -0
- package/dist/timeline/region/AudioRegionBoxAdapter.d.ts +53 -0
- package/dist/timeline/region/AudioRegionBoxAdapter.d.ts.map +1 -0
- package/dist/timeline/region/AudioRegionBoxAdapter.js +143 -0
- package/dist/timeline/region/NoteRegionBoxAdapter.d.ts +53 -0
- package/dist/timeline/region/NoteRegionBoxAdapter.d.ts.map +1 -0
- package/dist/timeline/region/NoteRegionBoxAdapter.js +186 -0
- package/dist/timeline/region/ValueRegionBoxAdapter.d.ts +59 -0
- package/dist/timeline/region/ValueRegionBoxAdapter.d.ts.map +1 -0
- package/dist/timeline/region/ValueRegionBoxAdapter.js +193 -0
- package/dist/unions.d.ts +11 -0
- package/dist/unions.d.ts.map +1 -0
- package/dist/unions.js +17 -0
- package/package.json +38 -0
@@ -0,0 +1,52 @@
|
|
1
|
+
import { RevampDeviceBox } from "@opendaw/studio-boxes";
|
2
|
+
import { int, UUID } from "@opendaw/lib-std";
|
3
|
+
import { Address, BooleanField, FieldKeys, Int32Field, PointerField, StringField } from "@opendaw/lib-box";
|
4
|
+
import { Pointers } from "@opendaw/studio-enums";
|
5
|
+
import { AudioEffectDeviceBoxAdapter, DeviceHost } from "../../devices";
|
6
|
+
import { BoxAdaptersContext } from "../../BoxAdaptersContext";
|
7
|
+
import { AudioUnitBoxAdapter } from "../../audio-unit/AudioUnitBoxAdapter";
|
8
|
+
import { AutomatableParameterFieldAdapter } from "../../AutomatableParameterFieldAdapter";
|
9
|
+
export declare class RevampDeviceBoxAdapter implements AudioEffectDeviceBoxAdapter {
|
10
|
+
#private;
|
11
|
+
readonly type = "audio-effect";
|
12
|
+
readonly accepts = "audio";
|
13
|
+
readonly namedParameter: {
|
14
|
+
readonly highPass: PassParameters;
|
15
|
+
readonly lowShelf: ShelfParameters;
|
16
|
+
readonly lowBell: BellParameters;
|
17
|
+
readonly midBell: BellParameters;
|
18
|
+
readonly highBell: BellParameters;
|
19
|
+
readonly highShelf: ShelfParameters;
|
20
|
+
readonly lowPass: PassParameters;
|
21
|
+
};
|
22
|
+
constructor(context: BoxAdaptersContext, box: RevampDeviceBox);
|
23
|
+
get box(): RevampDeviceBox;
|
24
|
+
get uuid(): UUID.Format;
|
25
|
+
get address(): Address;
|
26
|
+
get indexField(): Int32Field;
|
27
|
+
get labelField(): StringField;
|
28
|
+
get enabledField(): BooleanField;
|
29
|
+
get minimizedField(): BooleanField;
|
30
|
+
get host(): PointerField<Pointers.AudioEffectHost>;
|
31
|
+
get spectrum(): Address;
|
32
|
+
deviceHost(): DeviceHost;
|
33
|
+
audioUnitBoxAdapter(): AudioUnitBoxAdapter;
|
34
|
+
parameterAt(fieldIndices: FieldKeys): AutomatableParameterFieldAdapter;
|
35
|
+
terminate(): void;
|
36
|
+
}
|
37
|
+
export type Parameters = {
|
38
|
+
enabled: AutomatableParameterFieldAdapter<boolean>;
|
39
|
+
frequency: AutomatableParameterFieldAdapter<number>;
|
40
|
+
};
|
41
|
+
export type PassParameters = Parameters & {
|
42
|
+
order: AutomatableParameterFieldAdapter<int>;
|
43
|
+
q: AutomatableParameterFieldAdapter<number>;
|
44
|
+
};
|
45
|
+
export type ShelfParameters = Parameters & {
|
46
|
+
gain: AutomatableParameterFieldAdapter<number>;
|
47
|
+
};
|
48
|
+
export type BellParameters = Parameters & {
|
49
|
+
q: AutomatableParameterFieldAdapter<number>;
|
50
|
+
gain: AutomatableParameterFieldAdapter<number>;
|
51
|
+
};
|
52
|
+
//# sourceMappingURL=RevampDeviceBoxAdapter.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"RevampDeviceBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/devices/audio-effects/RevampDeviceBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,eAAe,EAA0B,MAAM,uBAAuB,CAAA;AAC1F,OAAO,EAAC,GAAG,EAAiB,IAAI,EAAe,MAAM,kBAAkB,CAAA;AACvE,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AACxG,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,2BAA2B,EAAE,UAAU,EAAU,MAAM,eAAe,CAAA;AAC9E,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAA;AAE3D,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAA;AACxE,OAAO,EAAC,gCAAgC,EAAC,MAAM,wCAAwC,CAAA;AAEvF,qBAAa,sBAAuB,YAAW,2BAA2B;;IACtE,QAAQ,CAAC,IAAI,kBAAiB;IAC9B,QAAQ,CAAC,OAAO,WAAU;IAK1B,QAAQ,CAAC,cAAc;;;;;;;;MAAA;gBAEX,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,eAAe;IAO7D,IAAI,GAAG,IAAI,eAAe,CAAmB;IAC7C,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAgC;IACvD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,UAAU,IAAI,UAAU,CAAyB;IACrD,IAAI,UAAU,IAAI,WAAW,CAAyB;IACtD,IAAI,YAAY,IAAI,YAAY,CAA2B;IAC3D,IAAI,cAAc,IAAI,YAAY,CAA6B;IAC/D,IAAI,IAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAwB;IAC1E,IAAI,QAAQ,IAAI,OAAO,CAAyC;IAEhE,UAAU,IAAI,UAAU;IAKxB,mBAAmB,IAAI,mBAAmB;IAE1C,WAAW,CAAC,YAAY,EAAE,SAAS,GAAG,gCAAgC;IAEtE,SAAS,IAAI,IAAI;CAapB;AAED,MAAM,MAAM,UAAU,GAAG;IACrB,OAAO,EAAE,gCAAgC,CAAC,OAAO,CAAC,CAAA;IAClD,SAAS,EAAE,gCAAgC,CAAC,MAAM,CAAC,CAAA;CACtD,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG;IACtC,KAAK,EAAE,gCAAgC,CAAC,GAAG,CAAC,CAAA;IAC5C,CAAC,EAAE,gCAAgC,CAAC,MAAM,CAAC,CAAA;CAC9C,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG;IACvC,IAAI,EAAE,gCAAgC,CAAC,MAAM,CAAC,CAAA;CACjD,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG;IACtC,CAAC,EAAE,gCAAgC,CAAC,MAAM,CAAC,CAAA;IAC3C,IAAI,EAAE,gCAAgC,CAAC,MAAM,CAAC,CAAA;CACjD,CAAA"}
|
@@ -0,0 +1,66 @@
|
|
1
|
+
import { StringMapping, ValueMapping } from "@opendaw/lib-std";
|
2
|
+
import { Devices } from "../../devices";
|
3
|
+
import { ParameterAdapterSet } from "../../ParameterAdapterSet";
|
4
|
+
export class RevampDeviceBoxAdapter {
|
5
|
+
type = "audio-effect";
|
6
|
+
accepts = "audio";
|
7
|
+
#context;
|
8
|
+
#box;
|
9
|
+
#parametric;
|
10
|
+
namedParameter; // let typescript infer the type
|
11
|
+
constructor(context, box) {
|
12
|
+
this.#context = context;
|
13
|
+
this.#box = box;
|
14
|
+
this.#parametric = new ParameterAdapterSet(this.#context);
|
15
|
+
this.namedParameter = this.#wrapParameters(box);
|
16
|
+
}
|
17
|
+
get box() { return this.#box; }
|
18
|
+
get uuid() { return this.#box.address.uuid; }
|
19
|
+
get address() { return this.#box.address; }
|
20
|
+
get indexField() { return this.#box.index; }
|
21
|
+
get labelField() { return this.#box.label; }
|
22
|
+
get enabledField() { return this.#box.enabled; }
|
23
|
+
get minimizedField() { return this.#box.minimized; }
|
24
|
+
get host() { return this.#box.host; }
|
25
|
+
get spectrum() { return this.#box.address.append(0xFFF); }
|
26
|
+
deviceHost() {
|
27
|
+
return this.#context.boxAdapters
|
28
|
+
.adapterFor(this.#box.host.targetVertex.unwrap("no device-host").box, Devices.isHost);
|
29
|
+
}
|
30
|
+
audioUnitBoxAdapter() { return this.deviceHost().audioUnitBoxAdapter(); }
|
31
|
+
parameterAt(fieldIndices) { return this.#parametric.parameterAt(fieldIndices); }
|
32
|
+
terminate() { this.#parametric.terminate(); }
|
33
|
+
#wrapParameters(box) {
|
34
|
+
return {
|
35
|
+
highPass: createPass(this.#parametric, box.highPass, "High-Pass"),
|
36
|
+
lowShelf: createShelf(this.#parametric, box.lowShelf, "Low-Shelf"),
|
37
|
+
lowBell: createBell(this.#parametric, box.lowBell, "Low-Bell"),
|
38
|
+
midBell: createBell(this.#parametric, box.midBell, "Mid-Bell"),
|
39
|
+
highBell: createBell(this.#parametric, box.highBell, "High-Bell"),
|
40
|
+
highShelf: createShelf(this.#parametric, box.highShelf, "High-Shelf"),
|
41
|
+
lowPass: createPass(this.#parametric, box.lowPass, "Low-Pass")
|
42
|
+
};
|
43
|
+
}
|
44
|
+
}
|
45
|
+
const FrequencyMapping = ValueMapping.exponential(20.0, 20_000.0);
|
46
|
+
const GainMapping = ValueMapping.linear(-24.0, 24.0);
|
47
|
+
const QMapping = ValueMapping.exponential(0.01, 10.0);
|
48
|
+
const createPass = (parametric, pass, name) => {
|
49
|
+
return ({
|
50
|
+
enabled: parametric.createParameter(pass.enabled, ValueMapping.bool, StringMapping.bool, "enabled"),
|
51
|
+
frequency: parametric.createParameter(pass.frequency, FrequencyMapping, StringMapping.numeric({ unit: "Hz", fractionDigits: 0 }), `${name} Freq`),
|
52
|
+
order: parametric.createParameter(pass.order, ValueMapping.linearInteger(1, 4), StringMapping.indices("db", ["12", "24", "36", "48"]), `${name} Order`),
|
53
|
+
q: parametric.createParameter(pass.q, QMapping, StringMapping.numeric({ unit: "", fractionDigits: 3 }), `${name} Q`)
|
54
|
+
});
|
55
|
+
};
|
56
|
+
const createShelf = (parametric, shelf, name) => ({
|
57
|
+
enabled: parametric.createParameter(shelf.enabled, ValueMapping.bool, StringMapping.bool, "enabled"),
|
58
|
+
frequency: parametric.createParameter(shelf.frequency, FrequencyMapping, StringMapping.numeric({ unit: "Hz", fractionDigits: 0 }), `${name} Freq`),
|
59
|
+
gain: parametric.createParameter(shelf.gain, GainMapping, StringMapping.numeric({ unit: "db", fractionDigits: 1, bipolar: true }), `${name} Gain`, 0.5)
|
60
|
+
});
|
61
|
+
const createBell = (parametric, bell, name) => ({
|
62
|
+
enabled: parametric.createParameter(bell.enabled, ValueMapping.bool, StringMapping.bool, "enabled"),
|
63
|
+
frequency: parametric.createParameter(bell.frequency, FrequencyMapping, StringMapping.numeric({ unit: "Hz", fractionDigits: 0 }), `${name} Freq`),
|
64
|
+
gain: parametric.createParameter(bell.gain, GainMapping, StringMapping.numeric({ unit: "db", fractionDigits: 1, bipolar: true }), `${name} Gain`, 0.5),
|
65
|
+
q: parametric.createParameter(bell.q, QMapping, StringMapping.numeric({ unit: "", fractionDigits: 3 }), `${name} Q`)
|
66
|
+
});
|
@@ -0,0 +1,35 @@
|
|
1
|
+
import { ReverbDeviceBox } from "@opendaw/studio-boxes";
|
2
|
+
import { UUID } from "@opendaw/lib-std";
|
3
|
+
import { Address, BooleanField, FieldKeys, Int32Field, PointerField, StringField } from "@opendaw/lib-box";
|
4
|
+
import { Pointers } from "@opendaw/studio-enums";
|
5
|
+
import { AudioEffectDeviceBoxAdapter, DeviceHost } from "../../devices";
|
6
|
+
import { BoxAdaptersContext } from "../../BoxAdaptersContext";
|
7
|
+
import { AudioUnitBoxAdapter } from "../../audio-unit/AudioUnitBoxAdapter";
|
8
|
+
import { AutomatableParameterFieldAdapter } from "../../AutomatableParameterFieldAdapter";
|
9
|
+
export declare class ReverbDeviceBoxAdapter implements AudioEffectDeviceBoxAdapter {
|
10
|
+
#private;
|
11
|
+
readonly type = "audio-effect";
|
12
|
+
readonly accepts = "audio";
|
13
|
+
readonly namedParameter: {
|
14
|
+
readonly decay: AutomatableParameterFieldAdapter<number>;
|
15
|
+
readonly preDelay: AutomatableParameterFieldAdapter<number>;
|
16
|
+
readonly damp: AutomatableParameterFieldAdapter<number>;
|
17
|
+
readonly filter: AutomatableParameterFieldAdapter<number>;
|
18
|
+
readonly dry: AutomatableParameterFieldAdapter<number>;
|
19
|
+
readonly wet: AutomatableParameterFieldAdapter<number>;
|
20
|
+
};
|
21
|
+
constructor(context: BoxAdaptersContext, box: ReverbDeviceBox);
|
22
|
+
get box(): ReverbDeviceBox;
|
23
|
+
get uuid(): UUID.Format;
|
24
|
+
get address(): Address;
|
25
|
+
get indexField(): Int32Field;
|
26
|
+
get labelField(): StringField;
|
27
|
+
get enabledField(): BooleanField;
|
28
|
+
get minimizedField(): BooleanField;
|
29
|
+
get host(): PointerField<Pointers.AudioEffectHost>;
|
30
|
+
deviceHost(): DeviceHost;
|
31
|
+
audioUnitBoxAdapter(): AudioUnitBoxAdapter;
|
32
|
+
parameterAt(fieldIndices: FieldKeys): AutomatableParameterFieldAdapter;
|
33
|
+
terminate(): void;
|
34
|
+
}
|
35
|
+
//# sourceMappingURL=ReverbDeviceBoxAdapter.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ReverbDeviceBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/devices/audio-effects/ReverbDeviceBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAgB,IAAI,EAAe,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AACxG,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,2BAA2B,EAAE,UAAU,EAAU,MAAM,eAAe,CAAA;AAC9E,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAA;AAE3D,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAA;AACxE,OAAO,EAAC,gCAAgC,EAAC,MAAM,wCAAwC,CAAA;AAEvF,qBAAa,sBAAuB,YAAW,2BAA2B;;IACtE,QAAQ,CAAC,IAAI,kBAAiB;IAC9B,QAAQ,CAAC,OAAO,WAAU;IAK1B,QAAQ,CAAC,cAAc;;;;;;;MAAA;gBAEX,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,eAAe;IAO7D,IAAI,GAAG,IAAI,eAAe,CAAmB;IAC7C,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAgC;IACvD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,UAAU,IAAI,UAAU,CAAyB;IACrD,IAAI,UAAU,IAAI,WAAW,CAAyB;IACtD,IAAI,YAAY,IAAI,YAAY,CAA2B;IAC3D,IAAI,cAAc,IAAI,YAAY,CAA6B;IAC/D,IAAI,IAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAwB;IAE1E,UAAU,IAAI,UAAU;IAKxB,mBAAmB,IAAI,mBAAmB;IAE1C,WAAW,CAAC,YAAY,EAAE,SAAS,GAAG,gCAAgC;IAEtE,SAAS,IAAI,IAAI;CAsCpB"}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
import { StringMapping, ValueMapping } from "@opendaw/lib-std";
|
2
|
+
import { Devices } from "../../devices";
|
3
|
+
import { ParameterAdapterSet } from "../../ParameterAdapterSet";
|
4
|
+
export class ReverbDeviceBoxAdapter {
|
5
|
+
type = "audio-effect";
|
6
|
+
accepts = "audio";
|
7
|
+
#context;
|
8
|
+
#box;
|
9
|
+
#parametric;
|
10
|
+
namedParameter; // let typescript infer the type
|
11
|
+
constructor(context, box) {
|
12
|
+
this.#context = context;
|
13
|
+
this.#box = box;
|
14
|
+
this.#parametric = new ParameterAdapterSet(this.#context);
|
15
|
+
this.namedParameter = this.#wrapParameters(box);
|
16
|
+
}
|
17
|
+
get box() { return this.#box; }
|
18
|
+
get uuid() { return this.#box.address.uuid; }
|
19
|
+
get address() { return this.#box.address; }
|
20
|
+
get indexField() { return this.#box.index; }
|
21
|
+
get labelField() { return this.#box.label; }
|
22
|
+
get enabledField() { return this.#box.enabled; }
|
23
|
+
get minimizedField() { return this.#box.minimized; }
|
24
|
+
get host() { return this.#box.host; }
|
25
|
+
deviceHost() {
|
26
|
+
return this.#context.boxAdapters
|
27
|
+
.adapterFor(this.#box.host.targetVertex.unwrap("no device-host").box, Devices.isHost);
|
28
|
+
}
|
29
|
+
audioUnitBoxAdapter() { return this.deviceHost().audioUnitBoxAdapter(); }
|
30
|
+
parameterAt(fieldIndices) { return this.#parametric.parameterAt(fieldIndices); }
|
31
|
+
terminate() { this.#parametric.terminate(); }
|
32
|
+
#wrapParameters(box) {
|
33
|
+
return {
|
34
|
+
decay: this.#parametric.createParameter(box.decay, ValueMapping.unipolar(), StringMapping.numeric({ unit: "%", fractionDigits: 0 }), "Room-Size"),
|
35
|
+
preDelay: this.#parametric.createParameter(box.preDelay, ValueMapping.exponential(0.001, 0.500), StringMapping.numeric({
|
36
|
+
unit: "s", fractionDigits: 1, unitPrefix: true
|
37
|
+
}), "Pre-Delay"),
|
38
|
+
damp: this.#parametric.createParameter(box.damp, ValueMapping.unipolar(), StringMapping.numeric({ unit: "%", fractionDigits: 0 }), "damping"),
|
39
|
+
filter: this.#parametric.createParameter(box.filter, ValueMapping.bipolar(), StringMapping.numeric({ unit: "%", fractionDigits: 0 }), "filter"),
|
40
|
+
dry: this.#parametric.createParameter(box.dry, ValueMapping.DefaultDecibel, StringMapping.numeric({ unit: "db", fractionDigits: 1 }), "dry"),
|
41
|
+
wet: this.#parametric.createParameter(box.wet, ValueMapping.DefaultDecibel, StringMapping.numeric({ unit: "db", fractionDigits: 1 }), "wet")
|
42
|
+
};
|
43
|
+
}
|
44
|
+
}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
import { UUID } from "@opendaw/lib-std";
|
2
|
+
import { Address, BooleanField, Int32Field, PointerField, StringField } from "@opendaw/lib-box";
|
3
|
+
import { StereoToolDeviceBox } from "@opendaw/studio-boxes";
|
4
|
+
import { Pointers } from "@opendaw/studio-enums";
|
5
|
+
import { AudioEffectDeviceBoxAdapter, DeviceHost } from "../../devices";
|
6
|
+
import { BoxAdaptersContext } from "../../BoxAdaptersContext";
|
7
|
+
import { AudioUnitBoxAdapter } from "../../audio-unit/AudioUnitBoxAdapter";
|
8
|
+
export declare class StereoToolDeviceBoxAdapter implements AudioEffectDeviceBoxAdapter {
|
9
|
+
#private;
|
10
|
+
readonly type = "audio-effect";
|
11
|
+
readonly accepts = "audio";
|
12
|
+
readonly namedParameter: {
|
13
|
+
readonly volume: import("../..").AutomatableParameterFieldAdapter<number>;
|
14
|
+
readonly panning: import("../..").AutomatableParameterFieldAdapter<number>;
|
15
|
+
readonly stereo: import("../..").AutomatableParameterFieldAdapter<number>;
|
16
|
+
readonly invertL: import("../..").AutomatableParameterFieldAdapter<boolean>;
|
17
|
+
readonly invertR: import("../..").AutomatableParameterFieldAdapter<boolean>;
|
18
|
+
readonly swap: import("../..").AutomatableParameterFieldAdapter<boolean>;
|
19
|
+
};
|
20
|
+
constructor(context: BoxAdaptersContext, box: StereoToolDeviceBox);
|
21
|
+
get box(): StereoToolDeviceBox;
|
22
|
+
get uuid(): UUID.Format;
|
23
|
+
get address(): Address;
|
24
|
+
get indexField(): Int32Field;
|
25
|
+
get labelField(): StringField;
|
26
|
+
get enabledField(): BooleanField;
|
27
|
+
get minimizedField(): BooleanField;
|
28
|
+
get host(): PointerField<Pointers.AudioEffectHost>;
|
29
|
+
deviceHost(): DeviceHost;
|
30
|
+
audioUnitBoxAdapter(): AudioUnitBoxAdapter;
|
31
|
+
terminate(): void;
|
32
|
+
}
|
33
|
+
//# sourceMappingURL=StereoToolDeviceBoxAdapter.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"StereoToolDeviceBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/devices/audio-effects/StereoToolDeviceBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,IAAI,EAAe,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAC7F,OAAO,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,2BAA2B,EAAE,UAAU,EAAU,MAAM,eAAe,CAAA;AAC9E,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAA;AAE3D,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAA;AAExE,qBAAa,0BAA2B,YAAW,2BAA2B;;IAC1E,QAAQ,CAAC,IAAI,kBAAiB;IAC9B,QAAQ,CAAC,OAAO,WAAU;IAM1B,QAAQ,CAAC,cAAc;;;;;;;MAAA;gBAEX,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,mBAAmB;IAOjE,IAAI,GAAG,IAAI,mBAAmB,CAAmB;IACjD,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAgC;IACvD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,UAAU,IAAI,UAAU,CAAyB;IACrD,IAAI,UAAU,IAAI,WAAW,CAAyB;IACtD,IAAI,YAAY,IAAI,YAAY,CAA2B;IAC3D,IAAI,cAAc,IAAI,YAAY,CAA6B;IAC/D,IAAI,IAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAwB;IAE1E,UAAU,IAAI,UAAU;IAKxB,mBAAmB,IAAI,mBAAmB;IAE1C,SAAS,IAAI,IAAI;CAmBpB"}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import { StringMapping, ValueMapping } from "@opendaw/lib-std";
|
2
|
+
import { Devices } from "../../devices";
|
3
|
+
import { ParameterAdapterSet } from "../../ParameterAdapterSet";
|
4
|
+
export class StereoToolDeviceBoxAdapter {
|
5
|
+
type = "audio-effect";
|
6
|
+
accepts = "audio";
|
7
|
+
#context;
|
8
|
+
#box;
|
9
|
+
#parametric;
|
10
|
+
namedParameter; // let typescript infer the type
|
11
|
+
constructor(context, box) {
|
12
|
+
this.#context = context;
|
13
|
+
this.#box = box;
|
14
|
+
this.#parametric = new ParameterAdapterSet(this.#context);
|
15
|
+
this.namedParameter = this.#wrapParameters(box);
|
16
|
+
}
|
17
|
+
get box() { return this.#box; }
|
18
|
+
get uuid() { return this.#box.address.uuid; }
|
19
|
+
get address() { return this.#box.address; }
|
20
|
+
get indexField() { return this.#box.index; }
|
21
|
+
get labelField() { return this.#box.label; }
|
22
|
+
get enabledField() { return this.#box.enabled; }
|
23
|
+
get minimizedField() { return this.#box.minimized; }
|
24
|
+
get host() { return this.#box.host; }
|
25
|
+
deviceHost() {
|
26
|
+
return this.#context.boxAdapters
|
27
|
+
.adapterFor(this.#box.host.targetVertex.unwrap("no device-host").box, Devices.isHost);
|
28
|
+
}
|
29
|
+
audioUnitBoxAdapter() { return this.deviceHost().audioUnitBoxAdapter(); }
|
30
|
+
terminate() { this.#parametric.terminate(); }
|
31
|
+
#wrapParameters(box) {
|
32
|
+
return {
|
33
|
+
volume: this.#parametric.createParameter(box.volume, ValueMapping.decibel(-72.0, 0.0, 12.0), StringMapping.numeric({ unit: "db", fractionDigits: 1 }), "Volume"),
|
34
|
+
panning: this.#parametric.createParameter(box.panning, ValueMapping.bipolar(), StringMapping.panning, "Panning", 0.5),
|
35
|
+
stereo: this.#parametric.createParameter(box.stereo, ValueMapping.bipolar(), StringMapping.numeric({ unit: "%", fractionDigits: 0 }), "stereo", 0.5),
|
36
|
+
invertL: this.#parametric.createParameter(box.invertL, ValueMapping.bool, StringMapping.bool, "Invert Left"),
|
37
|
+
invertR: this.#parametric.createParameter(box.invertR, ValueMapping.bool, StringMapping.bool, "Invert Right"),
|
38
|
+
swap: this.#parametric.createParameter(box.swap, ValueMapping.bool, StringMapping.bool, "Swap")
|
39
|
+
};
|
40
|
+
}
|
41
|
+
}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import { NanoDeviceBox } from "@opendaw/studio-boxes";
|
2
|
+
import { UUID } from "@opendaw/lib-std";
|
3
|
+
import { Address, BooleanField, FieldKeys, StringField } from "@opendaw/lib-box";
|
4
|
+
import { DeviceHost, InstrumentDeviceBoxAdapter } from "../../devices";
|
5
|
+
import { BoxAdaptersContext } from "../../BoxAdaptersContext";
|
6
|
+
import { TrackType } from "../../timeline/TrackType";
|
7
|
+
import { AudioUnitBoxAdapter } from "../../audio-unit/AudioUnitBoxAdapter";
|
8
|
+
import { AutomatableParameterFieldAdapter } from "../../AutomatableParameterFieldAdapter";
|
9
|
+
export declare class NanoDeviceBoxAdapter implements InstrumentDeviceBoxAdapter {
|
10
|
+
#private;
|
11
|
+
readonly type = "instrument";
|
12
|
+
readonly accepts = "midi";
|
13
|
+
readonly namedParameter: {
|
14
|
+
readonly volume: AutomatableParameterFieldAdapter<number>;
|
15
|
+
readonly release: AutomatableParameterFieldAdapter<number>;
|
16
|
+
};
|
17
|
+
constructor(context: BoxAdaptersContext, box: NanoDeviceBox);
|
18
|
+
get box(): NanoDeviceBox;
|
19
|
+
get uuid(): UUID.Format;
|
20
|
+
get address(): Address;
|
21
|
+
get labelField(): StringField;
|
22
|
+
get iconField(): StringField;
|
23
|
+
get defaultTrackType(): TrackType;
|
24
|
+
get enabledField(): BooleanField;
|
25
|
+
get minimizedField(): BooleanField;
|
26
|
+
get acceptsMidiEvents(): boolean;
|
27
|
+
deviceHost(): DeviceHost;
|
28
|
+
audioUnitBoxAdapter(): AudioUnitBoxAdapter;
|
29
|
+
parameterAt(fieldIndices: FieldKeys): AutomatableParameterFieldAdapter;
|
30
|
+
terminate(): void;
|
31
|
+
}
|
32
|
+
//# sourceMappingURL=NanoDeviceBoxAdapter.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"NanoDeviceBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/devices/instruments/NanoDeviceBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAgB,IAAI,EAAe,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAC9E,OAAO,EAAC,UAAU,EAAW,0BAA0B,EAAC,MAAM,eAAe,CAAA;AAC7E,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAA;AAE3D,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAA;AACxE,OAAO,EAAC,gCAAgC,EAAC,MAAM,wCAAwC,CAAA;AAEvF,qBAAa,oBAAqB,YAAW,0BAA0B;;IACnE,QAAQ,CAAC,IAAI,gBAAe;IAC5B,QAAQ,CAAC,OAAO,UAAS;IAMzB,QAAQ,CAAC,cAAc;;;MAAA;gBAEX,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,aAAa;IAO3D,IAAI,GAAG,IAAI,aAAa,CAAmB;IAC3C,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAgC;IACvD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,UAAU,IAAI,WAAW,CAAyB;IACtD,IAAI,SAAS,IAAI,WAAW,CAAwB;IACpD,IAAI,gBAAgB,IAAI,SAAS,CAAyB;IAC1D,IAAI,YAAY,IAAI,YAAY,CAA2B;IAC3D,IAAI,cAAc,IAAI,YAAY,CAA6B;IAC/D,IAAI,iBAAiB,IAAI,OAAO,CAAc;IAE9C,UAAU,IAAI,UAAU;IAKxB,mBAAmB,IAAI,mBAAmB;IAE1C,WAAW,CAAC,YAAY,EAAE,SAAS,GAAG,gCAAgC;IAEtE,SAAS,IAAI,IAAI;CAcpB"}
|
@@ -0,0 +1,40 @@
|
|
1
|
+
import { StringMapping, ValueMapping } from "@opendaw/lib-std";
|
2
|
+
import { Devices } from "../../devices";
|
3
|
+
import { ParameterAdapterSet } from "../../ParameterAdapterSet";
|
4
|
+
import { TrackType } from "../../timeline/TrackType";
|
5
|
+
export class NanoDeviceBoxAdapter {
|
6
|
+
type = "instrument";
|
7
|
+
accepts = "midi";
|
8
|
+
#context;
|
9
|
+
#box;
|
10
|
+
#parametric;
|
11
|
+
namedParameter; // let typescript infer the type
|
12
|
+
constructor(context, box) {
|
13
|
+
this.#context = context;
|
14
|
+
this.#box = box;
|
15
|
+
this.#parametric = new ParameterAdapterSet(this.#context);
|
16
|
+
this.namedParameter = this.#wrapParameters(box);
|
17
|
+
}
|
18
|
+
get box() { return this.#box; }
|
19
|
+
get uuid() { return this.#box.address.uuid; }
|
20
|
+
get address() { return this.#box.address; }
|
21
|
+
get labelField() { return this.#box.label; }
|
22
|
+
get iconField() { return this.#box.icon; }
|
23
|
+
get defaultTrackType() { return TrackType.Notes; }
|
24
|
+
get enabledField() { return this.#box.enabled; }
|
25
|
+
get minimizedField() { return this.#box.minimized; }
|
26
|
+
get acceptsMidiEvents() { return true; }
|
27
|
+
deviceHost() {
|
28
|
+
return this.#context.boxAdapters
|
29
|
+
.adapterFor(this.#box.host.targetVertex.unwrap("no device-host").box, Devices.isHost);
|
30
|
+
}
|
31
|
+
audioUnitBoxAdapter() { return this.deviceHost().audioUnitBoxAdapter(); }
|
32
|
+
parameterAt(fieldIndices) { return this.#parametric.parameterAt(fieldIndices); }
|
33
|
+
terminate() { this.#parametric.terminate(); }
|
34
|
+
#wrapParameters(box) {
|
35
|
+
return {
|
36
|
+
volume: this.#parametric.createParameter(box.volume, ValueMapping.DefaultDecibel, StringMapping.numeric({ unit: "db", fractionDigits: 1 }), "volume"),
|
37
|
+
release: this.#parametric.createParameter(box.release, ValueMapping.exponential(0.001, 8.0), StringMapping.numeric({ unit: "s", fractionDigits: 3 }), "release")
|
38
|
+
};
|
39
|
+
}
|
40
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Gate.d.ts","sourceRoot":"","sources":["../../../../src/devices/instruments/Playfield/Gate.ts"],"names":[],"mappings":"AAAA,oBAAY,IAAI;IACZ,GAAG,IAAA;IAAE,EAAE,IAAA;IAAE,IAAI,IAAA;CAChB"}
|
@@ -0,0 +1,63 @@
|
|
1
|
+
import { Pointers } from "@opendaw/studio-enums";
|
2
|
+
import { PlayfieldSampleBox } from "@opendaw/studio-boxes";
|
3
|
+
import { int, Option, UUID } from "@opendaw/lib-std";
|
4
|
+
import { Address, BooleanField, Field, Int32Field, StringField } from "@opendaw/lib-box";
|
5
|
+
import { AudioEffectDeviceBoxAdapter, DeviceAccepts, DeviceHost, InstrumentDeviceBoxAdapter, MidiEffectDeviceAdapter } from "../../../devices";
|
6
|
+
import { IndexedBoxAdapter, SortedBoxAdapterCollection } from "../../../SortedBoxAdapterCollection";
|
7
|
+
import { BoxAdaptersContext } from "../../../BoxAdaptersContext";
|
8
|
+
import { AudioFileBoxAdapter } from "../../../AudioFileBoxAdapter";
|
9
|
+
import { Gate } from "./Gate";
|
10
|
+
import { TrackType } from "../../../timeline/TrackType";
|
11
|
+
import { AudioUnitInputAdapter } from "../../../audio-unit/AudioUnitInputAdapter";
|
12
|
+
import { AudioUnitBoxAdapter } from "../../../audio-unit/AudioUnitBoxAdapter";
|
13
|
+
import { PlayfieldDeviceBoxAdapter } from "../PlayfieldDeviceBoxAdapter";
|
14
|
+
export declare class PlayfieldSampleBoxAdapter implements DeviceHost, InstrumentDeviceBoxAdapter, IndexedBoxAdapter {
|
15
|
+
#private;
|
16
|
+
readonly class = "device-host";
|
17
|
+
readonly accepts: DeviceAccepts;
|
18
|
+
readonly type = "instrument";
|
19
|
+
readonly namedParameter: {
|
20
|
+
readonly gate: import("../../..").AutomatableParameterFieldAdapter<number>;
|
21
|
+
readonly mute: import("../../..").AutomatableParameterFieldAdapter<boolean>;
|
22
|
+
readonly solo: import("../../..").AutomatableParameterFieldAdapter<boolean>;
|
23
|
+
readonly polyphone: import("../../..").AutomatableParameterFieldAdapter<boolean>;
|
24
|
+
readonly exclude: import("../../..").AutomatableParameterFieldAdapter<boolean>;
|
25
|
+
readonly pitch: import("../../..").AutomatableParameterFieldAdapter<number>;
|
26
|
+
readonly sampleStart: import("../../..").AutomatableParameterFieldAdapter<number>;
|
27
|
+
readonly sampleEnd: import("../../..").AutomatableParameterFieldAdapter<number>;
|
28
|
+
readonly attack: import("../../..").AutomatableParameterFieldAdapter<number>;
|
29
|
+
readonly release: import("../../..").AutomatableParameterFieldAdapter<number>;
|
30
|
+
};
|
31
|
+
constructor(context: BoxAdaptersContext, box: PlayfieldSampleBox);
|
32
|
+
get box(): PlayfieldSampleBox;
|
33
|
+
get uuid(): UUID.Format;
|
34
|
+
get address(): Address;
|
35
|
+
get peakAddress(): Address;
|
36
|
+
get indexField(): Int32Field;
|
37
|
+
get gate(): Gate;
|
38
|
+
get exclude(): boolean;
|
39
|
+
get label(): string;
|
40
|
+
get iconField(): StringField;
|
41
|
+
get defaultTrackType(): TrackType;
|
42
|
+
get acceptsMidiEvents(): boolean;
|
43
|
+
get midiEffectsField(): Field<Pointers.MidiEffectHost>;
|
44
|
+
get inputField(): Field<Pointers.InstrumentHost | Pointers.AudioOutput>;
|
45
|
+
get audioEffectsField(): Field<Pointers.AudioEffectHost>;
|
46
|
+
get tracksField(): Field<Pointers.TrackCollection>;
|
47
|
+
get isAudioUnit(): boolean;
|
48
|
+
file(): Option<AudioFileBoxAdapter>;
|
49
|
+
fileUUID(): UUID.Format;
|
50
|
+
resetParameters(): void;
|
51
|
+
copyToIndex(index: int): void;
|
52
|
+
get midiEffects(): SortedBoxAdapterCollection<MidiEffectDeviceAdapter, Pointers.MidiEffectHost>;
|
53
|
+
get inputAdapter(): Option<AudioUnitInputAdapter>;
|
54
|
+
get audioEffects(): SortedBoxAdapterCollection<AudioEffectDeviceBoxAdapter, Pointers.AudioEffectHost>;
|
55
|
+
get labelField(): StringField;
|
56
|
+
get enabledField(): BooleanField;
|
57
|
+
get minimizedField(): BooleanField;
|
58
|
+
device(): PlayfieldDeviceBoxAdapter;
|
59
|
+
deviceHost(): DeviceHost;
|
60
|
+
audioUnitBoxAdapter(): AudioUnitBoxAdapter;
|
61
|
+
terminate(): void;
|
62
|
+
}
|
63
|
+
//# sourceMappingURL=PlayfieldSampleBoxAdapter.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"PlayfieldSampleBoxAdapter.d.ts","sourceRoot":"","sources":["../../../../src/devices/instruments/Playfield/PlayfieldSampleBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,GAAG,EAAE,MAAM,EAA6B,IAAI,EAAe,MAAM,kBAAkB,CAAA;AAC3F,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AACtF,OAAO,EACH,2BAA2B,EAC3B,aAAa,EACb,UAAU,EACV,0BAA0B,EAC1B,uBAAuB,EAC1B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,iBAAiB,EAAE,0BAA0B,EAAC,MAAM,qCAAqC,CAAA;AACjG,OAAO,EAAC,kBAAkB,EAAC,MAAM,6BAA6B,CAAA;AAE9D,OAAO,EAAC,mBAAmB,EAAC,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAC,SAAS,EAAC,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAC,qBAAqB,EAAC,MAAM,2CAA2C,CAAA;AAC/E,OAAO,EAAC,mBAAmB,EAAC,MAAM,yCAAyC,CAAA;AAC3E,OAAO,EAAC,yBAAyB,EAAC,MAAM,8BAA8B,CAAA;AAEtE,qBAAa,yBAA0B,YAAW,UAAU,EAAE,0BAA0B,EAAE,iBAAiB;;IACvG,QAAQ,CAAC,KAAK,iBAAgB;IAC9B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAQ;IACvC,QAAQ,CAAC,IAAI,gBAAe;IAW5B,QAAQ,CAAC,cAAc;;;;;;;;;;;MAAA;gBAIX,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,kBAAkB;IAkBhE,IAAI,GAAG,IAAI,kBAAkB,CAAmB;IAChD,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAgC;IACvD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,WAAW,IAAI,OAAO,CAAwC;IAClE,IAAI,UAAU,IAAI,UAAU,CAAyB;IAErD,IAAI,IAAI,IAAI,IAAI,CAAmC;IACnD,IAAI,OAAO,IAAI,OAAO,CAAsC;IAC5D,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,SAAS,IAAI,WAAW,CAAwB;IACpD,IAAI,gBAAgB,IAAI,SAAS,CAAyB;IAC1D,IAAI,iBAAiB,IAAI,OAAO,CAAc;IAC9C,IAAI,gBAAgB,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAA+B;IACrF,IAAI,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,GAAG,QAAQ,CAAC,WAAW,CAAC,CAA8C;IACrH,IAAI,iBAAiB,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAgC;IACxF,IAAI,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAA+C;IACjG,IAAI,WAAW,IAAI,OAAO,CAAe;IAEzC,IAAI,IAAI,MAAM,CAAC,mBAAmB,CAAC;IACnC,QAAQ,IAAI,IAAI,CAAC,MAAM;IAEvB,eAAe,IAAI,IAAI;IAavB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAkB7B,IAAI,WAAW,IAAI,0BAA0B,CAAC,uBAAuB,EAAE,QAAQ,CAAC,cAAc,CAAC,CAE9F;IACD,IAAI,YAAY,IAAI,MAAM,CAAC,qBAAqB,CAAC,CAEhD;IACD,IAAI,YAAY,IAAI,0BAA0B,CAAC,2BAA2B,EAAE,QAAQ,CAAC,eAAe,CAAC,CAEpG;IAED,IAAI,UAAU,IAAI,WAAW,CAAyB;IACtD,IAAI,YAAY,IAAI,YAAY,CAA2B;IAC3D,IAAI,cAAc,IAAI,YAAY,CAA6B;IAE/D,MAAM,IAAI,yBAAyB;IAKnC,UAAU,IAAI,UAAU;IACxB,mBAAmB,IAAI,mBAAmB;IAE1C,SAAS,IAAI,IAAI;CA4BpB"}
|
@@ -0,0 +1,128 @@
|
|
1
|
+
import { Pointers } from "@opendaw/studio-enums";
|
2
|
+
import { PlayfieldSampleBox } from "@opendaw/studio-boxes";
|
3
|
+
import { Option, StringMapping, Terminator, UUID, ValueMapping } from "@opendaw/lib-std";
|
4
|
+
import { Devices } from "../../../devices";
|
5
|
+
import { SortedBoxAdapterCollection } from "../../../SortedBoxAdapterCollection";
|
6
|
+
import { ParameterAdapterSet } from "../../../ParameterAdapterSet";
|
7
|
+
import { AudioFileBoxAdapter } from "../../../AudioFileBoxAdapter";
|
8
|
+
import { TrackType } from "../../../timeline/TrackType";
|
9
|
+
import { PlayfieldDeviceBoxAdapter } from "../PlayfieldDeviceBoxAdapter";
|
10
|
+
export class PlayfieldSampleBoxAdapter {
|
11
|
+
class = "device-host";
|
12
|
+
accepts = false;
|
13
|
+
type = "instrument";
|
14
|
+
#terminator = new Terminator();
|
15
|
+
#context;
|
16
|
+
#box;
|
17
|
+
#midiEffects;
|
18
|
+
#audioEffects;
|
19
|
+
#parametric;
|
20
|
+
namedParameter; // let typescript infer the type
|
21
|
+
#file = Option.None;
|
22
|
+
constructor(context, box) {
|
23
|
+
this.#context = context;
|
24
|
+
this.#box = box;
|
25
|
+
this.#midiEffects = this.#terminator.own(SortedBoxAdapterCollection.create(this.#box.midiEffects, box => this.#context.boxAdapters.adapterFor(box, Devices.isMidiEffect), Pointers.MidiEffectHost));
|
26
|
+
this.#audioEffects = this.#terminator.own(SortedBoxAdapterCollection.create(this.#box.audioEffects, box => this.#context.boxAdapters.adapterFor(box, Devices.isAudioEffect), Pointers.AudioEffectHost));
|
27
|
+
this.#parametric = this.#terminator.own(new ParameterAdapterSet(this.#context));
|
28
|
+
this.namedParameter = this.#wrapParameters(box);
|
29
|
+
this.#terminator.own(this.#box.file.catchupAndSubscribe(pointer => {
|
30
|
+
this.#file = pointer.targetVertex.map(({ box }) => this.#context.boxAdapters.adapterFor(box, AudioFileBoxAdapter));
|
31
|
+
this.#file.unwrapOrNull()?.getOrCreateAudioLoader(); // triggers preloading file if available
|
32
|
+
}));
|
33
|
+
}
|
34
|
+
get box() { return this.#box; }
|
35
|
+
get uuid() { return this.#box.address.uuid; }
|
36
|
+
get address() { return this.#box.address; }
|
37
|
+
get peakAddress() { return this.#box.address.append(1001); }
|
38
|
+
get indexField() { return this.#box.index; }
|
39
|
+
get gate() { return this.#box.gate.getValue(); }
|
40
|
+
get exclude() { return this.#box.exclude.getValue(); }
|
41
|
+
get label() {
|
42
|
+
return `${this.device().labelField.getValue()} > ${this.#file.mapOr(file => file.box.fileName.getValue(), "No file")}`;
|
43
|
+
}
|
44
|
+
get iconField() { return this.#box.icon; }
|
45
|
+
get defaultTrackType() { return TrackType.Notes; }
|
46
|
+
get acceptsMidiEvents() { return true; }
|
47
|
+
get midiEffectsField() { return this.#box.midiEffects; }
|
48
|
+
get inputField() { return this.audioUnitBoxAdapter().box.input; }
|
49
|
+
get audioEffectsField() { return this.#box.audioEffects; }
|
50
|
+
get tracksField() { return this.audioUnitBoxAdapter().box.tracks; }
|
51
|
+
get isAudioUnit() { return false; }
|
52
|
+
file() { return this.#file; }
|
53
|
+
fileUUID() { return this.#box.file.targetAddress.unwrap().uuid; }
|
54
|
+
resetParameters() {
|
55
|
+
this.#box.mute.reset();
|
56
|
+
this.#box.solo.reset();
|
57
|
+
this.#box.exclude.reset();
|
58
|
+
this.#box.polyphone.reset();
|
59
|
+
this.#box.pitch.reset();
|
60
|
+
this.#box.attack.reset();
|
61
|
+
this.#box.release.reset();
|
62
|
+
this.#box.sampleStart.reset();
|
63
|
+
this.#box.sampleEnd.reset();
|
64
|
+
this.#box.gate.reset();
|
65
|
+
}
|
66
|
+
copyToIndex(index) {
|
67
|
+
PlayfieldSampleBox.create(this.#box.graph, UUID.generate(), box => {
|
68
|
+
box.file.refer(this.#box.file.targetVertex.unwrap());
|
69
|
+
box.device.refer(this.#box.device.targetVertex.unwrap());
|
70
|
+
box.index.setValue(index);
|
71
|
+
box.mute.setValue(this.#box.mute.getValue());
|
72
|
+
box.solo.setValue(this.#box.solo.getValue());
|
73
|
+
box.sampleStart.setValue(this.#box.sampleStart.getValue());
|
74
|
+
box.sampleEnd.setValue(this.#box.sampleEnd.getValue());
|
75
|
+
box.attack.setValue(this.#box.attack.getValue());
|
76
|
+
box.release.setValue(this.#box.release.getValue());
|
77
|
+
box.pitch.setValue(this.#box.pitch.getValue());
|
78
|
+
box.exclude.setValue(this.#box.exclude.getValue());
|
79
|
+
box.gate.setValue(this.#box.gate.getValue());
|
80
|
+
// TODO Copy effects?
|
81
|
+
});
|
82
|
+
}
|
83
|
+
get midiEffects() {
|
84
|
+
return this.#midiEffects;
|
85
|
+
}
|
86
|
+
get inputAdapter() {
|
87
|
+
return Option.wrap(this);
|
88
|
+
}
|
89
|
+
get audioEffects() {
|
90
|
+
return this.#audioEffects;
|
91
|
+
}
|
92
|
+
get labelField() { return this.#box.label; }
|
93
|
+
get enabledField() { return this.#box.enabled; }
|
94
|
+
get minimizedField() { return this.#box.minimized; }
|
95
|
+
device() {
|
96
|
+
return this.#context.boxAdapters
|
97
|
+
.adapterFor(this.#box.device.targetVertex.unwrap().box, PlayfieldDeviceBoxAdapter);
|
98
|
+
}
|
99
|
+
deviceHost() { return this.device().deviceHost(); }
|
100
|
+
audioUnitBoxAdapter() { return this.deviceHost().audioUnitBoxAdapter(); }
|
101
|
+
terminate() { this.#terminator.terminate(); }
|
102
|
+
#wrapParameters(box) {
|
103
|
+
return {
|
104
|
+
gate: this.#parametric.createParameter(box.gate, ValueMapping.linearInteger(0, 2), StringMapping.indices("", ["Off", "On", "Loop"]), "Gate"),
|
105
|
+
mute: this.#parametric.createParameter(box.mute, ValueMapping.bool, StringMapping.bool, "Mute"),
|
106
|
+
solo: this.#parametric.createParameter(box.solo, ValueMapping.bool, StringMapping.bool, "Solo"),
|
107
|
+
polyphone: this.#parametric.createParameter(box.polyphone, ValueMapping.bool, StringMapping.bool, "Polyphone"),
|
108
|
+
exclude: this.#parametric.createParameter(box.exclude, ValueMapping.bool, StringMapping.bool, "Exclude"),
|
109
|
+
pitch: this.#parametric.createParameter(box.pitch, ValueMapping.linear(-1200, 1200), StringMapping.numeric({
|
110
|
+
unit: "cents",
|
111
|
+
bipolar: true,
|
112
|
+
fractionDigits: 0
|
113
|
+
}), "Pitch", 0.0),
|
114
|
+
sampleStart: this.#parametric.createParameter(box.sampleStart, ValueMapping.unipolar(), StringMapping.percent(), "Start", 0.0),
|
115
|
+
sampleEnd: this.#parametric.createParameter(box.sampleEnd, ValueMapping.unipolar(), StringMapping.percent(), "End", 1.0),
|
116
|
+
attack: this.#parametric.createParameter(box.attack, ValueMapping.exponential(0.001, 5.0), StringMapping.numeric({
|
117
|
+
unit: "s",
|
118
|
+
unitPrefix: true,
|
119
|
+
fractionDigits: 1
|
120
|
+
}), "Attack"),
|
121
|
+
release: this.#parametric.createParameter(box.release, ValueMapping.exponential(0.001, 5.0), StringMapping.numeric({
|
122
|
+
unit: "s",
|
123
|
+
unitPrefix: true,
|
124
|
+
fractionDigits: 1
|
125
|
+
}), "Release")
|
126
|
+
};
|
127
|
+
}
|
128
|
+
}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
import { PlayfieldDeviceBox } from "@opendaw/studio-boxes";
|
2
|
+
import { Address, BooleanField, FieldKeys, StringField } from "@opendaw/lib-box";
|
3
|
+
import { Pointers } from "@opendaw/studio-enums";
|
4
|
+
import { UUID } from "@opendaw/lib-std";
|
5
|
+
import { DeviceHost, InstrumentDeviceBoxAdapter } from "../../devices";
|
6
|
+
import { BoxAdaptersContext } from "../../BoxAdaptersContext";
|
7
|
+
import { SortedBoxAdapterCollection } from "../../SortedBoxAdapterCollection";
|
8
|
+
import { PlayfieldSampleBoxAdapter } from "./Playfield/PlayfieldSampleBoxAdapter";
|
9
|
+
import { TrackType } from "../../timeline/TrackType";
|
10
|
+
import { AudioUnitBoxAdapter } from "../../audio-unit/AudioUnitBoxAdapter";
|
11
|
+
import { AutomatableParameterFieldAdapter } from "../../AutomatableParameterFieldAdapter";
|
12
|
+
export declare class PlayfieldDeviceBoxAdapter implements InstrumentDeviceBoxAdapter {
|
13
|
+
#private;
|
14
|
+
readonly type = "instrument";
|
15
|
+
readonly accepts = "midi";
|
16
|
+
constructor(context: BoxAdaptersContext, box: PlayfieldDeviceBox);
|
17
|
+
reset(): void;
|
18
|
+
get box(): PlayfieldDeviceBox;
|
19
|
+
get uuid(): UUID.Format;
|
20
|
+
get address(): Address;
|
21
|
+
get notesAddress(): Address;
|
22
|
+
get labelField(): StringField;
|
23
|
+
get iconField(): StringField;
|
24
|
+
get defaultTrackType(): TrackType;
|
25
|
+
get enabledField(): BooleanField;
|
26
|
+
get minimizedField(): BooleanField;
|
27
|
+
get acceptsMidiEvents(): boolean;
|
28
|
+
get samples(): SortedBoxAdapterCollection<PlayfieldSampleBoxAdapter, Pointers.Sample>;
|
29
|
+
get context(): BoxAdaptersContext;
|
30
|
+
deviceHost(): DeviceHost;
|
31
|
+
audioUnitBoxAdapter(): AudioUnitBoxAdapter;
|
32
|
+
parameterAt(fieldIndices: FieldKeys): AutomatableParameterFieldAdapter;
|
33
|
+
terminate(): void;
|
34
|
+
}
|
35
|
+
//# sourceMappingURL=PlayfieldDeviceBoxAdapter.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"PlayfieldDeviceBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/devices/instruments/PlayfieldDeviceBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAC9E,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAC,UAAU,EAAW,0BAA0B,EAAC,MAAM,eAAe,CAAA;AAC7E,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAC,0BAA0B,EAAC,MAAM,kCAAkC,CAAA;AAC3E,OAAO,EAAC,yBAAyB,EAAC,MAAM,uCAAuC,CAAA;AAE/E,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAA;AACxE,OAAO,EAAC,gCAAgC,EAAC,MAAM,wCAAwC,CAAA;AAEvF,qBAAa,yBAA0B,YAAW,0BAA0B;;IACxE,QAAQ,CAAC,IAAI,gBAAe;IAC5B,QAAQ,CAAC,OAAO,UAAS;gBAQb,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,kBAAkB;IAShE,KAAK,IAAI,IAAI;IAEb,IAAI,GAAG,IAAI,kBAAkB,CAAmB;IAChD,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAgC;IACvD,IAAI,OAAO,IAAI,OAAO,CAA2B;IACjD,IAAI,YAAY,IAAI,OAAO,CAAwC;IACnE,IAAI,UAAU,IAAI,WAAW,CAAyB;IACtD,IAAI,SAAS,IAAI,WAAW,CAAwB;IACpD,IAAI,gBAAgB,IAAI,SAAS,CAAyB;IAC1D,IAAI,YAAY,IAAI,YAAY,CAA2B;IAC3D,IAAI,cAAc,IAAI,YAAY,CAA6B;IAC/D,IAAI,iBAAiB,IAAI,OAAO,CAAc;IAC9C,IAAI,OAAO,IAAI,0BAA0B,CAAC,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAuB;IAC5G,IAAI,OAAO,IAAI,kBAAkB,CAAuB;IAExD,UAAU,IAAI,UAAU;IAKxB,mBAAmB,IAAI,mBAAmB;IAE1C,WAAW,CAAC,YAAY,EAAE,SAAS,GAAG,gCAAgC;IAEtE,SAAS,IAAI,IAAI;CACpB"}
|