@opendaw/studio-adapters 0.1.4 → 0.1.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.
@@ -1 +1 @@
1
- {"version":3,"file":"BoxAdapters.d.ts","sourceRoot":"","sources":["../src/BoxAdapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,UAAU,EACV,KAAK,EAEL,MAAM,EAIN,UAAU,EAEb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,GAAG,EAAS,MAAM,kBAAkB,CAAA;AAuH5C,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AA6BvC,qBAAa,WAAY,YAAW,UAAU;;gBAO9B,OAAO,EAAE,kBAAkB;IAkBvC,SAAS,IAAI,IAAI;IAMjB,UAAU,CAAC,GAAG,SAAS,GAAG,EAAE,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;IAkBnG,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;CA6E3C"}
1
+ {"version":3,"file":"BoxAdapters.d.ts","sourceRoot":"","sources":["../src/BoxAdapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,UAAU,EACV,KAAK,EAEL,MAAM,EAIN,UAAU,EAEb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,GAAG,EAAS,MAAM,kBAAkB,CAAA;AAyH5C,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AA6BvC,qBAAa,WAAY,YAAW,UAAU;;gBAO9B,OAAO,EAAE,kBAAkB;IAkBvC,SAAS,IAAI,IAAI;IAMjB,UAAU,CAAC,GAAG,SAAS,GAAG,EAAE,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;IAkBnG,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;CA8E3C"}
@@ -47,6 +47,7 @@ import { ArpeggioDeviceBoxAdapter } from "./devices/midi-effects/ArpeggioDeviceB
47
47
  import { PitchDeviceBoxAdapter } from "./devices/midi-effects/PitchDeviceBoxAdapter";
48
48
  import { SpielwerkDeviceBoxAdapter } from "./devices/midi-effects/SpielwerkDeviceBoxAdapter";
49
49
  import { ApparatDeviceBoxAdapter } from "./devices/instruments/ApparatDeviceBoxAdapter";
50
+ import { NeonDeviceBoxAdapter } from "./devices/instruments/NeonDeviceBoxAdapter";
50
51
  import { NanoDeviceBoxAdapter } from "./devices/instruments/NanoDeviceBoxAdapter";
51
52
  import { PlayfieldDeviceBoxAdapter } from "./devices/instruments/PlayfieldDeviceBoxAdapter";
52
53
  import { StereoToolDeviceBoxAdapter } from "./devices/audio-effects/StereoToolDeviceBoxAdapter";
@@ -165,6 +166,7 @@ _BoxAdapters_context = new WeakMap(), _BoxAdapters_adapters = new WeakMap(), _Bo
165
166
  visitModuleDelayBox: (box) => new ModuleDelayAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
166
167
  visitModuleGainBox: (box) => new ModuleGainAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
167
168
  visitModuleMultiplierBox: (box) => new ModuleMultiplierAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
169
+ visitNeonDeviceBox: (box) => new NeonDeviceBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
168
170
  visitNanoDeviceBox: (box) => new NanoDeviceBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
169
171
  visitNeuralAmpDeviceBox: (box) => new NeuralAmpDeviceBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
170
172
  visitNeuralAmpModelBox: (box) => new NeuralAmpModelBoxAdapter(__classPrivateFieldGet(this, _BoxAdapters_context, "f"), box),
@@ -29,6 +29,7 @@ export declare namespace DeviceManualUrls {
29
29
  const Nano = "manuals/devices/instruments/nano";
30
30
  const Playfield = "manuals/devices/instruments/playfield";
31
31
  const Vaporisateur = "manuals/devices/instruments/vaporisateur";
32
+ const Neon = "manuals/devices/instruments/neon";
32
33
  const MIDIOutput = "manuals/devices/instruments/midi-output";
33
34
  const Soundfont = "manuals/devices/instruments/soundfont";
34
35
  const FrequencySplit = "manuals/devices/audio/frequency-split";
@@ -1 +1 @@
1
- {"version":3,"file":"DeviceManualUrls.d.ts","sourceRoot":"","sources":["../src/DeviceManualUrls.ts"],"names":[],"mappings":"AAAA,yBAAiB,gBAAgB,CAAC;IAEvB,MAAM,QAAQ,sBAAsB,CAAA;IAGpC,MAAM,QAAQ,kCAAkC,CAAA;IAChD,MAAM,KAAK,+BAA+B,CAAA;IAC1C,MAAM,SAAS,mCAAmC,CAAA;IAClD,MAAM,QAAQ,kCAAkC,CAAA;IAChD,MAAM,SAAS,mCAAmC,CAAA;IAGlD,MAAM,QAAQ,mCAAmC,CAAA;IACjD,MAAM,UAAU,sCAAsC,CAAA;IACtD,MAAM,KAAK,gCAAgC,CAAA;IAC3C,MAAM,cAAc,0CAA0C,CAAA;IAC9D,MAAM,SAAS,oCAAoC,CAAA;IACnD,MAAM,UAAU,qCAAqC,CAAA;IACrD,MAAM,IAAI,+BAA+B,CAAA;IACzC,MAAM,MAAM,uCAAuC,CAAA;IACnD,MAAM,OAAO,kCAAkC,CAAA;IAC/C,MAAM,IAAI,+BAA+B,CAAA;IACzC,MAAM,KAAK,gCAAgC,CAAA;IAC3C,MAAM,MAAM,iCAAiC,CAAA;IAC7C,MAAM,OAAO,kCAAkC,CAAA;IAC/C,MAAM,SAAS,qCAAqC,CAAA;IACpD,MAAM,OAAO,kCAAkC,CAAA;IAC/C,MAAM,UAAU,qCAAqC,CAAA;IACrD,MAAM,SAAS,oCAAoC,CAAA;IACnD,MAAM,oBAAoB,2CAA2C,CAAA;IACrE,MAAM,eAAe,2CAA2C,CAAA;IAGhE,MAAM,OAAO,wCAAwC,CAAA;IACrD,MAAM,IAAI,qCAAqC,CAAA;IAC/C,MAAM,IAAI,qCAAqC,CAAA;IAC/C,MAAM,SAAS,0CAA0C,CAAA;IACzD,MAAM,YAAY,6CAA6C,CAAA;IAC/D,MAAM,UAAU,4CAA4C,CAAA;IAC5D,MAAM,SAAS,0CAA0C,CAAA;IACzD,MAAM,cAAc,0CAA0C,CAAA;CACxE"}
1
+ {"version":3,"file":"DeviceManualUrls.d.ts","sourceRoot":"","sources":["../src/DeviceManualUrls.ts"],"names":[],"mappings":"AAAA,yBAAiB,gBAAgB,CAAC;IAEvB,MAAM,QAAQ,sBAAsB,CAAA;IAGpC,MAAM,QAAQ,kCAAkC,CAAA;IAChD,MAAM,KAAK,+BAA+B,CAAA;IAC1C,MAAM,SAAS,mCAAmC,CAAA;IAClD,MAAM,QAAQ,kCAAkC,CAAA;IAChD,MAAM,SAAS,mCAAmC,CAAA;IAGlD,MAAM,QAAQ,mCAAmC,CAAA;IACjD,MAAM,UAAU,sCAAsC,CAAA;IACtD,MAAM,KAAK,gCAAgC,CAAA;IAC3C,MAAM,cAAc,0CAA0C,CAAA;IAC9D,MAAM,SAAS,oCAAoC,CAAA;IACnD,MAAM,UAAU,qCAAqC,CAAA;IACrD,MAAM,IAAI,+BAA+B,CAAA;IACzC,MAAM,MAAM,uCAAuC,CAAA;IACnD,MAAM,OAAO,kCAAkC,CAAA;IAC/C,MAAM,IAAI,+BAA+B,CAAA;IACzC,MAAM,KAAK,gCAAgC,CAAA;IAC3C,MAAM,MAAM,iCAAiC,CAAA;IAC7C,MAAM,OAAO,kCAAkC,CAAA;IAC/C,MAAM,SAAS,qCAAqC,CAAA;IACpD,MAAM,OAAO,kCAAkC,CAAA;IAC/C,MAAM,UAAU,qCAAqC,CAAA;IACrD,MAAM,SAAS,oCAAoC,CAAA;IACnD,MAAM,oBAAoB,2CAA2C,CAAA;IACrE,MAAM,eAAe,2CAA2C,CAAA;IAGhE,MAAM,OAAO,wCAAwC,CAAA;IACrD,MAAM,IAAI,qCAAqC,CAAA;IAC/C,MAAM,IAAI,qCAAqC,CAAA;IAC/C,MAAM,SAAS,0CAA0C,CAAA;IACzD,MAAM,YAAY,6CAA6C,CAAA;IAC/D,MAAM,IAAI,qCAAqC,CAAA;IAC/C,MAAM,UAAU,4CAA4C,CAAA;IAC5D,MAAM,SAAS,0CAA0C,CAAA;IACzD,MAAM,cAAc,0CAA0C,CAAA;CACxE"}
@@ -34,6 +34,7 @@ export var DeviceManualUrls;
34
34
  DeviceManualUrls.Nano = "manuals/devices/instruments/nano";
35
35
  DeviceManualUrls.Playfield = "manuals/devices/instruments/playfield";
36
36
  DeviceManualUrls.Vaporisateur = "manuals/devices/instruments/vaporisateur";
37
+ DeviceManualUrls.Neon = "manuals/devices/instruments/neon";
37
38
  DeviceManualUrls.MIDIOutput = "manuals/devices/instruments/midi-output";
38
39
  DeviceManualUrls.Soundfont = "manuals/devices/instruments/soundfont";
39
40
  DeviceManualUrls.FrequencySplit = "manuals/devices/audio/frequency-split";
@@ -40,6 +40,7 @@ export declare class AudioUnitBoxAdapter implements DeviceHost, BoxAdapter {
40
40
  get isBus(): boolean;
41
41
  get isInstrument(): boolean;
42
42
  get isOutput(): boolean;
43
+ get automationCollapsed(): BooleanField;
43
44
  get midiEffectsField(): Option<Field<Pointers.MIDIEffectHost>>;
44
45
  get inputField(): Field<Pointers.InstrumentHost | Pointers.AudioOutput>;
45
46
  get audioEffectsField(): Option<Field<Pointers.AudioEffectHost>>;
@@ -1 +1 @@
1
- {"version":3,"file":"AudioUnitBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/audio-unit/AudioUnitBoxAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AudioUnitBoxAdapter.d.ts","sourceRoot":"","sources":["../../src/audio-unit/AudioUnitBoxAdapter.ts"],"names":[],"mappings":"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"}
@@ -69,6 +69,7 @@ export class AudioUnitBoxAdapter {
69
69
  get isOutput() {
70
70
  return __classPrivateFieldGet(this, _AudioUnitBoxAdapter_box, "f").output.targetVertex.mapOr(output => output.box.address.equals(__classPrivateFieldGet(this, _AudioUnitBoxAdapter_context, "f").rootBoxAdapter.address), false);
71
71
  }
72
+ get automationCollapsed() { return __classPrivateFieldGet(this, _AudioUnitBoxAdapter_box, "f").userInterface.automationCollapsed; }
72
73
  get midiEffectsField() { return Option.wrap(__classPrivateFieldGet(this, _AudioUnitBoxAdapter_box, "f").midiEffects); }
73
74
  get inputField() { return __classPrivateFieldGet(this, _AudioUnitBoxAdapter_box, "f").input; }
74
75
  get audioEffectsField() { return Option.wrap(__classPrivateFieldGet(this, _AudioUnitBoxAdapter_box, "f").audioEffects); }
@@ -0,0 +1,34 @@
1
+ import { int } from "@opendaw/lib-std";
2
+ export type CzEnvelope = {
3
+ rates: ReadonlyArray<int>;
4
+ levels: ReadonlyArray<int>;
5
+ sustain: int;
6
+ end: int;
7
+ };
8
+ export type CzLine = {
9
+ wave1: int;
10
+ wave2: int;
11
+ dcwKeyFollow: int;
12
+ dcaKeyFollow: int;
13
+ pitchEnv: CzEnvelope;
14
+ dcwEnv: CzEnvelope;
15
+ dcaEnv: CzEnvelope;
16
+ };
17
+ export type CzTone = {
18
+ lineSelect: int;
19
+ modulation: int;
20
+ octave: int;
21
+ detuneNote: int;
22
+ detuneFine: int;
23
+ vibratoWave: int;
24
+ vibratoDelay: int;
25
+ vibratoRate: int;
26
+ vibratoDepth: int;
27
+ lines: [CzLine, CzLine];
28
+ };
29
+ export declare namespace CzSysex {
30
+ const isToneDump: (bytes: Uint8Array) => boolean;
31
+ const decode: (bytes: Uint8Array) => CzTone;
32
+ const encode: (tone: CzTone, channel?: int, program?: int) => Uint8Array;
33
+ }
34
+ //# sourceMappingURL=CzSysex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CzSysex.d.ts","sourceRoot":"","sources":["../../../../src/devices/instruments/Neon/CzSysex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,kBAAkB,CAAA;AAMpC,MAAM,MAAM,UAAU,GAAG;IACrB,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;IACzB,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;IAC1B,OAAO,EAAE,GAAG,CAAA;IACZ,GAAG,EAAE,GAAG,CAAA;CACX,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACjB,KAAK,EAAE,GAAG,CAAA;IACV,KAAK,EAAE,GAAG,CAAA;IACV,YAAY,EAAE,GAAG,CAAA;IACjB,YAAY,EAAE,GAAG,CAAA;IACjB,QAAQ,EAAE,UAAU,CAAA;IACpB,MAAM,EAAE,UAAU,CAAA;IAClB,MAAM,EAAE,UAAU,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACjB,UAAU,EAAE,GAAG,CAAA;IACf,UAAU,EAAE,GAAG,CAAA;IACf,MAAM,EAAE,GAAG,CAAA;IACX,UAAU,EAAE,GAAG,CAAA;IACf,UAAU,EAAE,GAAG,CAAA;IACf,WAAW,EAAE,GAAG,CAAA;IAChB,YAAY,EAAE,GAAG,CAAA;IACjB,WAAW,EAAE,GAAG,CAAA;IAChB,YAAY,EAAE,GAAG,CAAA;IACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC1B,CAAA;AAsKD,yBAAiB,OAAO,CAAC;IACd,MAAM,UAAU,GAAI,OAAO,UAAU,KAAG,OAG9C,CAAA;IAEM,MAAM,MAAM,GAAI,OAAO,UAAU,KAAG,MA4B1C,CAAA;IAEM,MAAM,MAAM,GAAI,MAAM,MAAM,EAAE,UAAS,GAAO,EAAE,UAAS,GAAU,KAAG,UA0B5E,CAAA;CACJ"}
@@ -0,0 +1,228 @@
1
+ const TONE_BYTES = 128;
2
+ const WAVE_BITS = [0b000, 0b001, 0b010, 0b100, 0b101, 0b110, 0b110, 0b110];
3
+ const WINDOW_OF_WAVE = [0, 0, 0, 0, 0, 1, 2, 3];
4
+ const VIBRATO_WAVE_BYTES = [0x08, 0x04, 0x20, 0x02];
5
+ const panelWave = (bits, window) => {
6
+ if (bits === 0b110) {
7
+ return 4 + Math.min(Math.max(window, 1), 3);
8
+ }
9
+ const index = WAVE_BITS.indexOf(bits);
10
+ return index >= 0 ? index : 0;
11
+ };
12
+ const decodeRateLinear = (byte, divisor) => {
13
+ const masked = byte & 0x7F;
14
+ if (masked === 0) {
15
+ return 0;
16
+ }
17
+ if (masked >= divisor) {
18
+ return 99;
19
+ }
20
+ return Math.min(99, Math.floor(99 * masked / divisor) + 1);
21
+ };
22
+ const decodeDcwRate = (byte) => {
23
+ const masked = byte & 0x7F;
24
+ if (masked <= 8) {
25
+ return 0;
26
+ }
27
+ if (masked >= 0x77) {
28
+ return 99;
29
+ }
30
+ return Math.min(99, Math.floor(99 * (masked - 8) / 119) + 1);
31
+ };
32
+ const decodeLevel = (byte) => {
33
+ const masked = byte & 0x7F;
34
+ if (masked === 0) {
35
+ return 0;
36
+ }
37
+ if (masked >= 0x7F) {
38
+ return 99;
39
+ }
40
+ return Math.min(99, Math.floor(99 * masked / 127) + 1);
41
+ };
42
+ const decodePitchLevel = (byte) => {
43
+ const masked = byte & 0x7F;
44
+ return masked <= 0x3F ? masked : Math.min(99, masked - 4);
45
+ };
46
+ const encodeRateLinear = (rate, divisor) => rate <= 0 ? 0 : rate >= 99 ? divisor : Math.floor(divisor * rate / 99);
47
+ const encodeDcwRate = (rate) => rate <= 0 ? 8 : rate >= 99 ? 0x77 : Math.floor(119 * rate / 99) + 8;
48
+ const encodeLevel = (level) => level <= 0 ? 0 : level >= 99 ? 0x7F : Math.floor(127 * level / 99);
49
+ const encodePitchLevel = (level) => level <= 0x3F ? level : level + 4;
50
+ const decodeEnvelope = (data, endOffset, stepsOffset, rate, level) => {
51
+ const rates = [];
52
+ const levels = [];
53
+ const end = (data[endOffset] & 0x07) + 1;
54
+ const sustainSteps = [];
55
+ for (let step = 0; step < 8; step++) {
56
+ const rateByte = data[stepsOffset + step * 2];
57
+ const levelByte = data[stepsOffset + step * 2 + 1];
58
+ rates.push(rate(rateByte));
59
+ levels.push(level(levelByte));
60
+ if ((levelByte & 0x80) !== 0) {
61
+ sustainSteps.push(step + 1);
62
+ }
63
+ }
64
+ return { rates, levels, sustain: sustainSteps.at(0) ?? 0, end };
65
+ };
66
+ const encodeEnvelope = (out, endOffset, stepsOffset, envelope, rate, level) => {
67
+ out[endOffset] = Math.min(Math.max(envelope.end, 1), 8) - 1;
68
+ let previous = 0;
69
+ for (let step = 0; step < 8; step++) {
70
+ const target = envelope.levels[step] ?? 0;
71
+ let rateByte = rate(envelope.rates[step] ?? 0);
72
+ if (target < previous) {
73
+ rateByte |= 0x80;
74
+ }
75
+ let levelByte = level(target);
76
+ if (envelope.sustain === step + 1) {
77
+ levelByte |= 0x80;
78
+ }
79
+ out[stepsOffset + step * 2] = rateByte;
80
+ out[stepsOffset + step * 2 + 1] = levelByte;
81
+ previous = target;
82
+ }
83
+ };
84
+ const decodeLine = (data, waveOffset, blockOffset, withModulation) => {
85
+ const first = data[waveOffset];
86
+ const second = data[waveOffset + 1];
87
+ const wave1Bits = (first >> 5) & 0x07;
88
+ const wave2Bits = (first >> 2) & 0x07;
89
+ const wave2On = ((first >> 1) & 0x01) !== 0;
90
+ const window = second & 0x07;
91
+ const modulationBits = (second >> 3) & 0x07;
92
+ const modulation = !withModulation ? 0 : modulationBits === 0b100 ? 1 : modulationBits === 0b011 ? 2 : 0;
93
+ const dcaKeyFollow = Math.min(data[blockOffset] & 0x0F, 9);
94
+ const dcwKeyFollow = Math.min(data[blockOffset + 2] & 0x0F, 9);
95
+ const dcaEnv = decodeEnvelope(data, blockOffset + 4, blockOffset + 5, byte => decodeRateLinear(byte, 119), decodeLevel);
96
+ const dcwEnv = decodeEnvelope(data, blockOffset + 21, blockOffset + 22, decodeDcwRate, decodeLevel);
97
+ const pitchEnv = decodeEnvelope(data, blockOffset + 38, blockOffset + 39, byte => decodeRateLinear(byte, 127), decodePitchLevel);
98
+ return {
99
+ line: {
100
+ wave1: panelWave(wave1Bits, window),
101
+ wave2: wave2On ? panelWave(wave2Bits, window) + 1 : 0,
102
+ dcwKeyFollow, dcaKeyFollow, pitchEnv, dcwEnv, dcaEnv
103
+ },
104
+ modulation
105
+ };
106
+ };
107
+ const encodeLine = (out, waveOffset, blockOffset, line, modulation) => {
108
+ const wave2 = line.wave2 > 0 ? line.wave2 - 1 : 0;
109
+ const window1 = WINDOW_OF_WAVE[line.wave1];
110
+ const window = window1 !== 0 ? window1 : line.wave2 > 0 ? WINDOW_OF_WAVE[wave2] : 0;
111
+ const modulationBits = modulation === 1 ? 0b100 : modulation === 2 ? 0b011 : 0;
112
+ out[waveOffset] = (WAVE_BITS[line.wave1] << 5) | (WAVE_BITS[wave2] << 2) | (line.wave2 > 0 ? 0b10 : 0);
113
+ out[waveOffset + 1] = (modulationBits << 3) | window;
114
+ out[blockOffset] = line.dcaKeyFollow;
115
+ out[blockOffset + 1] = DCA_KEY_FOLLOW_SECOND[line.dcaKeyFollow] ?? 0;
116
+ out[blockOffset + 2] = line.dcwKeyFollow;
117
+ out[blockOffset + 3] = DCW_KEY_FOLLOW_SECOND[line.dcwKeyFollow] ?? 0;
118
+ encodeEnvelope(out, blockOffset + 4, blockOffset + 5, line.dcaEnv, value => encodeRateLinear(value, 119), encodeLevel);
119
+ encodeEnvelope(out, blockOffset + 21, blockOffset + 22, line.dcwEnv, encodeDcwRate, encodeLevel);
120
+ encodeEnvelope(out, blockOffset + 38, blockOffset + 39, line.pitchEnv, value => encodeRateLinear(value, 127), encodePitchLevel);
121
+ };
122
+ const DCA_KEY_FOLLOW_SECOND = [0x00, 0x08, 0x11, 0x1A, 0x24, 0x2F, 0x3A, 0x45, 0x52, 0x5F];
123
+ const DCW_KEY_FOLLOW_SECOND = [0x00, 0x1F, 0x2C, 0x39, 0x46, 0x53, 0x60, 0x6E, 0x92, 0xFF];
124
+ // The vibrato triples' 2nd+3rd bytes for the table ranges (the 1st byte is always the panel value).
125
+ // Below the table range: delay v<32 -> (0, v); rate v<25 -> 16-bit (v+1)*0x20; depth v<32 -> (0, v+1).
126
+ const VIBRATO_DELAY_TAIL = [
127
+ 0x0021, 0x0023, 0x0025, 0x0027, 0x0029, 0x002B, 0x002D, 0x002F, 0x0031, 0x0033, 0x0035, 0x0037,
128
+ 0x0039, 0x003B, 0x003D, 0x003F, 0x0043, 0x0047, 0x004B, 0x004F, 0x0053, 0x0057, 0x005B, 0x005F,
129
+ 0x0063, 0x0067, 0x006B, 0x006F, 0x0073, 0x0077, 0x007B, 0x007F, 0x0087, 0x008F, 0x0097, 0x009F,
130
+ 0x00A7, 0x00AF, 0x00B7, 0x00BF, 0x00C7, 0x00CF, 0x00D7, 0x00DF, 0x00E7, 0x00EF, 0x00F7, 0x00FF,
131
+ 0x010F, 0x011F, 0x012F, 0x013F, 0x014F, 0x015F, 0x016F, 0x017F, 0x018F, 0x019F, 0x01AF, 0x01BF,
132
+ 0x01CF, 0x01DF, 0x01EF, 0x01FF, 0x021F, 0x023F, 0x025F, 0x027F
133
+ ];
134
+ const VIBRATO_RATE_TAIL = [
135
+ 0x0340, 0x0360, 0x0380, 0x03A0, 0x03C0, 0x03E0, 0x0400, 0x0460, 0x04A0, 0x04E0, 0x0520, 0x0560,
136
+ 0x05A0, 0x05E0, 0x0620, 0x0660, 0x06A0, 0x06E0, 0x0720, 0x0760, 0x07A0, 0x07E0, 0x0820, 0x08E0,
137
+ 0x0960, 0x09E0, 0x0A60, 0x0AE0, 0x0B60, 0x0BE0, 0x0C60, 0x0CE0, 0x0D60, 0x0DE0, 0x0E60, 0x0EE0,
138
+ 0x0F60, 0x0FE0, 0x1060, 0x11E0, 0x12E0, 0x13E0, 0x14E0, 0x15E0, 0x16E0, 0x17E0, 0x18E0, 0x19E0,
139
+ 0x1AE0, 0x1BE0, 0x1CE0, 0x1DE0, 0x1EE0, 0x1FE0, 0x20E0, 0x23E0, 0x25E0, 0x27E0, 0x29E0, 0x2BE0,
140
+ 0x2DE0, 0x2FE0, 0x31E0, 0x33E0, 0x35E0, 0x37E0, 0x39E0, 0x3BE0, 0x3DE0, 0x3FE0, 0x41E0, 0x47E0,
141
+ 0x4BE0, 0x4FE0, 0x53E0
142
+ ];
143
+ const VIBRATO_DEPTH_TAIL = [
144
+ 0x0023, 0x0025, 0x0027, 0x0029, 0x002B, 0x002D, 0x002F, 0x0031, 0x0033, 0x0035, 0x0037, 0x0039,
145
+ 0x003B, 0x003D, 0x003F, 0x0041, 0x0047, 0x004B, 0x004F, 0x0053, 0x0057, 0x005B, 0x005F, 0x0063,
146
+ 0x0067, 0x006B, 0x006F, 0x0073, 0x0077, 0x007B, 0x007F, 0x0083, 0x008F, 0x0097, 0x009F, 0x00A7,
147
+ 0x00AF, 0x00B7, 0x00BF, 0x00C7, 0x00CF, 0x00D7, 0x00DF, 0x00E7, 0x00EF, 0x00F7, 0x00FF, 0x0107,
148
+ 0x011F, 0x012F, 0x013F, 0x014F, 0x015F, 0x016F, 0x017F, 0x018F, 0x019F, 0x01AF, 0x01BF, 0x01CF,
149
+ 0x01DF, 0x01EF, 0x01FF, 0x020F, 0x023F, 0x025F, 0x027F, 0x0300
150
+ ];
151
+ const vibratoTriple = (value, kind) => {
152
+ if (kind === "rate") {
153
+ const wide = value < 25 ? (value + 1) * 0x20 : VIBRATO_RATE_TAIL[value - 25];
154
+ return [value, (wide >> 8) & 0xFF, wide & 0xFF];
155
+ }
156
+ if (value < 32) {
157
+ return [value, 0, kind === "delay" ? value : value + 1];
158
+ }
159
+ const wide = (kind === "delay" ? VIBRATO_DELAY_TAIL : VIBRATO_DEPTH_TAIL)[value - 32];
160
+ return [value, (wide >> 8) & 0xFF, wide & 0xFF];
161
+ };
162
+ export var CzSysex;
163
+ (function (CzSysex) {
164
+ CzSysex.isToneDump = (bytes) => {
165
+ if (bytes.length < TONE_BYTES * 2 + 2) {
166
+ return false;
167
+ }
168
+ return bytes[0] === 0xF0 && bytes[1] === 0x44 && bytes[bytes.length - 1] === 0xF7;
169
+ };
170
+ CzSysex.decode = (bytes) => {
171
+ if (!CzSysex.isToneDump(bytes)) {
172
+ throw new Error("Not a Casio CZ tone dump");
173
+ }
174
+ const nibbleStart = bytes.length - 1 - TONE_BYTES * 2;
175
+ const data = new Uint8Array(TONE_BYTES);
176
+ for (let index = 0; index < TONE_BYTES; index++) {
177
+ const low = bytes[nibbleStart + index * 2] & 0x0F;
178
+ const high = bytes[nibbleStart + index * 2 + 1] & 0x0F;
179
+ data[index] = (high << 4) | low;
180
+ }
181
+ const lineSelect = data[0] & 0x03;
182
+ const octaveBits = (data[0] >> 2) & 0x03;
183
+ const octave = octaveBits === 1 ? 1 : octaveBits === 2 ? -1 : 0;
184
+ const sign = (data[1] & 0x01) !== 0 ? -1 : 1;
185
+ const fine = ((data[2] >> 4) & 0x0F) * 15 + (data[2] & 0x0F);
186
+ const octaveNote = data[3] & 0x3F;
187
+ const detuneNote = sign * Math.min(octaveNote, 47);
188
+ const detuneFine = sign * Math.min(fine, 60);
189
+ const vibratoWave = Math.max(VIBRATO_WAVE_BYTES.indexOf(data[4]), 0);
190
+ const vibratoDelay = Math.min(data[5], 99);
191
+ const vibratoRate = Math.min(data[8], 99);
192
+ const vibratoDepth = Math.min(data[11], 99);
193
+ const first = decodeLine(data, 14, 16, true);
194
+ const second = decodeLine(data, 71, 73, false);
195
+ return {
196
+ lineSelect, modulation: first.modulation, octave, detuneNote, detuneFine,
197
+ vibratoWave, vibratoDelay, vibratoRate, vibratoDepth,
198
+ lines: [first.line, second.line]
199
+ };
200
+ };
201
+ CzSysex.encode = (tone, channel = 0, program = 0x60) => {
202
+ const data = new Uint8Array(TONE_BYTES);
203
+ const octaveBits = tone.octave > 0 ? 1 : tone.octave < 0 ? 2 : 0;
204
+ data[0] = (octaveBits << 2) | (tone.lineSelect & 0x03);
205
+ data[1] = tone.detuneNote < 0 || tone.detuneFine < 0 ? 0x01 : 0x00;
206
+ // FINE ranges: 0..15 -> 00..0F (16 entries), then 15-wide ranges 11..1F, 21..2F, 31..3F.
207
+ const fine = Math.min(Math.abs(tone.detuneFine), 60);
208
+ data[2] = fine <= 15 ? fine : ((Math.floor((fine - 16) / 15) + 1) << 4) | ((fine - 16) % 15 + 1);
209
+ data[3] = Math.min(Math.abs(tone.detuneNote), 47);
210
+ data[4] = VIBRATO_WAVE_BYTES[tone.vibratoWave] ?? 0x08;
211
+ const [delay1, delay2, delay3] = vibratoTriple(tone.vibratoDelay, "delay");
212
+ data.set([delay1, delay2, delay3], 5);
213
+ const [rate1, rate2, rate3] = vibratoTriple(tone.vibratoRate, "rate");
214
+ data.set([rate1, rate2, rate3], 8);
215
+ const [depth1, depth2, depth3] = vibratoTriple(tone.vibratoDepth, "depth");
216
+ data.set([depth1, depth2, depth3], 11);
217
+ encodeLine(data, 14, 16, tone.lines[0], tone.modulation);
218
+ encodeLine(data, 71, 73, tone.lines[1], 0);
219
+ const bytes = new Uint8Array(7 + TONE_BYTES * 2 + 1);
220
+ bytes.set([0xF0, 0x44, 0x00, 0x00, 0x70 | (channel & 0x0F), 0x20, program], 0);
221
+ for (let index = 0; index < TONE_BYTES; index++) {
222
+ bytes[7 + index * 2] = data[index] & 0x0F;
223
+ bytes[7 + index * 2 + 1] = (data[index] >> 4) & 0x0F;
224
+ }
225
+ bytes[bytes.length - 1] = 0xF7;
226
+ return bytes;
227
+ };
228
+ })(CzSysex || (CzSysex = {}));
@@ -0,0 +1,6 @@
1
+ import { NeonDeviceBox } from "@opendaw/studio-boxes";
2
+ import { CzTone } from "./CzSysex";
3
+ export declare namespace NeonPreset {
4
+ const apply: (box: NeonDeviceBox, tone: CzTone) => void;
5
+ }
6
+ //# sourceMappingURL=NeonPreset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NeonPreset.d.ts","sourceRoot":"","sources":["../../../../src/devices/instruments/Neon/NeonPreset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAe,MAAM,uBAAuB,CAAA;AAEjE,OAAO,EAAa,MAAM,EAAC,MAAM,WAAW,CAAA;AAI5C,yBAAiB,UAAU,CAAC;IAiBjB,MAAM,KAAK,GAAI,KAAK,aAAa,EAAE,MAAM,MAAM,KAAG,IAsBxD,CAAA;CACJ"}
@@ -0,0 +1,42 @@
1
+ // Writes a decoded CZ tone into a NeonDeviceBox (raw hardware values, lossless). Call inside
2
+ // `editing.modify` so a preset load is one undoable transaction.
3
+ export var NeonPreset;
4
+ (function (NeonPreset) {
5
+ const rateFields = (envelope) => [
6
+ envelope.rate1, envelope.rate2, envelope.rate3, envelope.rate4,
7
+ envelope.rate5, envelope.rate6, envelope.rate7, envelope.rate8
8
+ ];
9
+ const levelFields = (envelope) => [
10
+ envelope.level1, envelope.level2, envelope.level3, envelope.level4,
11
+ envelope.level5, envelope.level6, envelope.level7, envelope.level8
12
+ ];
13
+ const applyEnvelope = (envelope, source) => {
14
+ rateFields(envelope).forEach((field, index) => field.setValue(source.rates[index] ?? 0));
15
+ levelFields(envelope).forEach((field, index) => field.setValue(source.levels[index] ?? 0));
16
+ envelope.sustain.setValue(source.sustain);
17
+ envelope.end.setValue(source.end);
18
+ };
19
+ NeonPreset.apply = (box, tone) => {
20
+ box.lineSelect.setValue(tone.lineSelect);
21
+ box.modulation.setValue(tone.modulation);
22
+ box.octave.setValue(tone.octave);
23
+ // The .syx note+fine pair folds into one cents value (60 fine steps per semitone).
24
+ const cents = tone.detuneNote * 100.0 + tone.detuneFine * (100.0 / 60.0);
25
+ box.detune.setValue(Math.max(-4800.0, Math.min(4800.0, cents)));
26
+ box.vibrato.wave.setValue(tone.vibratoWave);
27
+ box.vibrato.delay.setValue(tone.vibratoDelay);
28
+ box.vibrato.rate.setValue(tone.vibratoRate);
29
+ box.vibrato.depth.setValue(tone.vibratoDepth);
30
+ tone.lines.forEach((line, lineIndex) => {
31
+ const fields = box.lines.fields()[lineIndex];
32
+ fields.wave1.setValue(line.wave1);
33
+ fields.wave2.setValue(line.wave2);
34
+ fields.dcwKeyFollow.setValue(line.dcwKeyFollow);
35
+ fields.dcaKeyFollow.setValue(line.dcaKeyFollow);
36
+ const envelopes = box.envelopes.fields();
37
+ applyEnvelope(envelopes[lineIndex * 3], line.pitchEnv);
38
+ applyEnvelope(envelopes[lineIndex * 3 + 1], line.dcwEnv);
39
+ applyEnvelope(envelopes[lineIndex * 3 + 2], line.dcaEnv);
40
+ });
41
+ };
42
+ })(NeonPreset || (NeonPreset = {}));
@@ -0,0 +1,58 @@
1
+ import { UUID } from "@opendaw/lib-std";
2
+ import { NeonDeviceBox, NeonEnvelope } from "@opendaw/studio-boxes";
3
+ import { Address, BooleanField, StringField } from "@opendaw/lib-box";
4
+ import { DeviceHost, InstrumentDeviceBoxAdapter } from "../../DeviceAdapter";
5
+ import { LabeledAudioOutput } from "../../LabeledAudioOutputsOwner";
6
+ import { BoxAdaptersContext } from "../../BoxAdaptersContext";
7
+ import { TrackType } from "../../timeline/TrackType";
8
+ import { AudioUnitBoxAdapter } from "../../audio-unit/AudioUnitBoxAdapter";
9
+ export declare namespace Neon {
10
+ const Waves: string[];
11
+ const LineSelect: string[];
12
+ const Modulation: string[];
13
+ const VibratoWaves: string[];
14
+ const envelopeIndex: (line: 0 | 1, kind: "pitch" | "dcw" | "dca") => number;
15
+ }
16
+ export declare class NeonDeviceBoxAdapter implements InstrumentDeviceBoxAdapter {
17
+ #private;
18
+ readonly type = "instrument";
19
+ readonly accepts = "midi";
20
+ readonly manualUrl = "manuals/devices/instruments/neon";
21
+ readonly namedParameter: {
22
+ readonly lineSelect: import("../..").AutomatableParameterFieldAdapter<number>;
23
+ readonly modulation: import("../..").AutomatableParameterFieldAdapter<number>;
24
+ readonly octave: import("../..").AutomatableParameterFieldAdapter<number>;
25
+ readonly detune: import("../..").AutomatableParameterFieldAdapter<number>;
26
+ readonly tune: import("../..").AutomatableParameterFieldAdapter<number>;
27
+ readonly glideTime: import("../..").AutomatableParameterFieldAdapter<number>;
28
+ readonly voicingMode: import("../..").AutomatableParameterFieldAdapter<number>;
29
+ readonly vibrato: {
30
+ readonly wave: import("../..").AutomatableParameterFieldAdapter<number>;
31
+ readonly delay: import("../..").AutomatableParameterFieldAdapter<number>;
32
+ readonly rate: import("../..").AutomatableParameterFieldAdapter<number>;
33
+ readonly depth: import("../..").AutomatableParameterFieldAdapter<number>;
34
+ };
35
+ readonly lines: {
36
+ wave1: import("../..").AutomatableParameterFieldAdapter<number>;
37
+ wave2: import("../..").AutomatableParameterFieldAdapter<number>;
38
+ dcwKeyFollow: import("../..").AutomatableParameterFieldAdapter<number>;
39
+ dcaKeyFollow: import("../..").AutomatableParameterFieldAdapter<number>;
40
+ }[];
41
+ };
42
+ constructor(context: BoxAdaptersContext, box: NeonDeviceBox);
43
+ get box(): NeonDeviceBox;
44
+ get uuid(): UUID.Bytes;
45
+ get address(): Address;
46
+ get labelField(): StringField;
47
+ get iconField(): StringField;
48
+ get defaultTrackType(): TrackType;
49
+ get enabledField(): BooleanField;
50
+ get minimizedField(): BooleanField;
51
+ get acceptsMidiEvents(): boolean;
52
+ envelope(line: 0 | 1, kind: "pitch" | "dcw" | "dca"): NeonEnvelope;
53
+ deviceHost(): DeviceHost;
54
+ audioUnitBoxAdapter(): AudioUnitBoxAdapter;
55
+ labeledAudioOutputs(): Iterable<LabeledAudioOutput>;
56
+ terminate(): void;
57
+ }
58
+ //# sourceMappingURL=NeonDeviceBoxAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NeonDeviceBoxAdapter.d.ts","sourceRoot":"","sources":["../../../src/devices/instruments/NeonDeviceBoxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,IAAI,EAAe,MAAM,kBAAkB,CAAA;AAC1E,OAAO,EAAC,aAAa,EAAE,YAAY,EAAC,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAC,OAAO,EAAE,YAAY,EAAgB,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAEjF,OAAO,EAAC,UAAU,EAAW,0BAA0B,EAAC,MAAM,qBAAqB,CAAA;AACnF,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAA;AAG3D,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAA;AAExE,yBAAiB,IAAI,CAAC;IACX,MAAM,KAAK,UAAwG,CAAA;IACnH,MAAM,UAAU,UAA6B,CAAA;IAC7C,MAAM,UAAU,UAA2B,CAAA;IAC3C,MAAM,YAAY,UAA+C,CAAA;IAEjE,MAAM,aAAa,GAAI,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,OAAO,GAAG,KAAK,GAAG,KAAK,KAAG,MACb,CAAA;CACjE;AAED,qBAAa,oBAAqB,YAAW,0BAA0B;;IACnE,QAAQ,CAAC,IAAI,gBAAe;IAC5B,QAAQ,CAAC,OAAO,UAAS;IACzB,QAAQ,CAAC,SAAS,sCAAwB;IAM1C,QAAQ,CAAC,cAAc;;;;;;;;;;;;;;;;;;;;MAAA;gBAEX,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,aAAa;IAO3D,IAAI,GAAG,IAAI,aAAa,CAAmB;IAC3C,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAgC;IACtD,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,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,YAAY;IAIlE,UAAU,IAAI,UAAU;IAKxB,mBAAmB,IAAI,mBAAmB;IAEzC,mBAAmB,IAAI,QAAQ,CAAC,kBAAkB,CAAC;IAIpD,SAAS,IAAI,IAAI;CAmEpB"}
@@ -0,0 +1,90 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _NeonDeviceBoxAdapter_instances, _NeonDeviceBoxAdapter_context, _NeonDeviceBoxAdapter_box, _NeonDeviceBoxAdapter_parametric, _NeonDeviceBoxAdapter_wrapParameters;
13
+ import { Option, StringMapping, ValueMapping } from "@opendaw/lib-std";
14
+ import { VoicingMode } from "@opendaw/studio-enums";
15
+ import { Devices } from "../../DeviceAdapter";
16
+ import { DeviceManualUrls } from "../../DeviceManualUrls";
17
+ import { ParameterAdapterSet } from "../../ParameterAdapterSet";
18
+ import { TrackType } from "../../timeline/TrackType";
19
+ export var Neon;
20
+ (function (Neon) {
21
+ Neon.Waves = ["Saw", "Square", "Pulse", "Double Sine", "Saw-Pulse", "Res. Saw", "Res. Triangle", "Res. Trapezoid"];
22
+ Neon.LineSelect = ["1", "2", "1+1'", "1+2'"];
23
+ Neon.Modulation = ["Off", "Ring", "Noise"];
24
+ Neon.VibratoWaves = ["Triangle", "Saw Up", "Saw Down", "Square"];
25
+ // The `envelopes` array order: line1 pitch, line1 DCW, line1 DCA, line2 pitch, line2 DCW, line2 DCA.
26
+ Neon.envelopeIndex = (line, kind) => line * 3 + (kind === "pitch" ? 0 : kind === "dcw" ? 1 : 2);
27
+ })(Neon || (Neon = {}));
28
+ export class NeonDeviceBoxAdapter {
29
+ constructor(context, box) {
30
+ _NeonDeviceBoxAdapter_instances.add(this);
31
+ this.type = "instrument";
32
+ this.accepts = "midi";
33
+ this.manualUrl = DeviceManualUrls.Neon;
34
+ _NeonDeviceBoxAdapter_context.set(this, void 0);
35
+ _NeonDeviceBoxAdapter_box.set(this, void 0);
36
+ _NeonDeviceBoxAdapter_parametric.set(this, void 0);
37
+ __classPrivateFieldSet(this, _NeonDeviceBoxAdapter_context, context, "f");
38
+ __classPrivateFieldSet(this, _NeonDeviceBoxAdapter_box, box, "f");
39
+ __classPrivateFieldSet(this, _NeonDeviceBoxAdapter_parametric, new ParameterAdapterSet(__classPrivateFieldGet(this, _NeonDeviceBoxAdapter_context, "f")), "f");
40
+ this.namedParameter = __classPrivateFieldGet(this, _NeonDeviceBoxAdapter_instances, "m", _NeonDeviceBoxAdapter_wrapParameters).call(this, box);
41
+ }
42
+ get box() { return __classPrivateFieldGet(this, _NeonDeviceBoxAdapter_box, "f"); }
43
+ get uuid() { return __classPrivateFieldGet(this, _NeonDeviceBoxAdapter_box, "f").address.uuid; }
44
+ get address() { return __classPrivateFieldGet(this, _NeonDeviceBoxAdapter_box, "f").address; }
45
+ get labelField() { return __classPrivateFieldGet(this, _NeonDeviceBoxAdapter_box, "f").label; }
46
+ get iconField() { return __classPrivateFieldGet(this, _NeonDeviceBoxAdapter_box, "f").icon; }
47
+ get defaultTrackType() { return TrackType.Notes; }
48
+ get enabledField() { return __classPrivateFieldGet(this, _NeonDeviceBoxAdapter_box, "f").enabled; }
49
+ get minimizedField() { return __classPrivateFieldGet(this, _NeonDeviceBoxAdapter_box, "f").minimized; }
50
+ get acceptsMidiEvents() { return true; }
51
+ envelope(line, kind) {
52
+ return __classPrivateFieldGet(this, _NeonDeviceBoxAdapter_box, "f").envelopes.fields()[Neon.envelopeIndex(line, kind)];
53
+ }
54
+ deviceHost() {
55
+ return __classPrivateFieldGet(this, _NeonDeviceBoxAdapter_context, "f").boxAdapters
56
+ .adapterFor(__classPrivateFieldGet(this, _NeonDeviceBoxAdapter_box, "f").host.targetVertex.unwrap("no device-host").box, Devices.isHost);
57
+ }
58
+ audioUnitBoxAdapter() { return this.deviceHost().audioUnitBoxAdapter(); }
59
+ *labeledAudioOutputs() {
60
+ yield { address: this.address, label: this.labelField.getValue(), children: () => Option.None };
61
+ }
62
+ terminate() {
63
+ __classPrivateFieldGet(this, _NeonDeviceBoxAdapter_parametric, "f").terminate();
64
+ }
65
+ }
66
+ _NeonDeviceBoxAdapter_context = new WeakMap(), _NeonDeviceBoxAdapter_box = new WeakMap(), _NeonDeviceBoxAdapter_parametric = new WeakMap(), _NeonDeviceBoxAdapter_instances = new WeakSet(), _NeonDeviceBoxAdapter_wrapParameters = function _NeonDeviceBoxAdapter_wrapParameters(box) {
67
+ const VoiceModes = [VoicingMode.Monophonic, VoicingMode.Polyphonic];
68
+ const czValue = (field, name) => __classPrivateFieldGet(this, _NeonDeviceBoxAdapter_parametric, "f").createParameter(field, ValueMapping.linear(0, 99), StringMapping.numeric({ unit: "", fractionDigits: 0 }), name);
69
+ return {
70
+ lineSelect: __classPrivateFieldGet(this, _NeonDeviceBoxAdapter_parametric, "f").createParameter(box.lineSelect, ValueMapping.linearInteger(0, 3), StringMapping.indices("", Neon.LineSelect), "Line"),
71
+ modulation: __classPrivateFieldGet(this, _NeonDeviceBoxAdapter_parametric, "f").createParameter(box.modulation, ValueMapping.linearInteger(0, 2), StringMapping.indices("", Neon.Modulation), "Mod"),
72
+ octave: __classPrivateFieldGet(this, _NeonDeviceBoxAdapter_parametric, "f").createParameter(box.octave, ValueMapping.linearInteger(-3, 3), StringMapping.numeric({ unit: "oct" }), "Octave", 0.5),
73
+ detune: __classPrivateFieldGet(this, _NeonDeviceBoxAdapter_parametric, "f").createParameter(box.detune, ValueMapping.linear(-4800, 4800), StringMapping.numeric({ unit: "ct", fractionDigits: 0 }), "Detune", 0.5),
74
+ tune: __classPrivateFieldGet(this, _NeonDeviceBoxAdapter_parametric, "f").createParameter(box.tune, ValueMapping.linear(-1200, 1200), StringMapping.numeric({ unit: "ct", fractionDigits: 0 }), "Tune", 0.5),
75
+ glideTime: __classPrivateFieldGet(this, _NeonDeviceBoxAdapter_parametric, "f").createParameter(box.glideTime, ValueMapping.unipolar(), StringMapping.percent({ fractionDigits: 1 }), "Glide time", 0.0),
76
+ voicingMode: __classPrivateFieldGet(this, _NeonDeviceBoxAdapter_parametric, "f").createParameter(box.voicingMode, ValueMapping.values(VoiceModes), StringMapping.values("", VoiceModes, ["mono", "poly"]), "Play Mode", 0.5),
77
+ vibrato: {
78
+ wave: __classPrivateFieldGet(this, _NeonDeviceBoxAdapter_parametric, "f").createParameter(box.vibrato.wave, ValueMapping.linearInteger(0, 3), StringMapping.indices("", Neon.VibratoWaves), "Vib. Wave"),
79
+ delay: czValue(box.vibrato.delay, "Vib. Delay"),
80
+ rate: czValue(box.vibrato.rate, "Vib. Rate"),
81
+ depth: czValue(box.vibrato.depth, "Vib. Depth")
82
+ },
83
+ lines: box.lines.fields().map(line => ({
84
+ wave1: __classPrivateFieldGet(this, _NeonDeviceBoxAdapter_parametric, "f").createParameter(line.wave1, ValueMapping.linearInteger(0, 7), StringMapping.indices("", Neon.Waves), "Wave 1"),
85
+ wave2: __classPrivateFieldGet(this, _NeonDeviceBoxAdapter_parametric, "f").createParameter(line.wave2, ValueMapping.linearInteger(0, 8), StringMapping.indices("", ["Off", ...Neon.Waves]), "Wave 2"),
86
+ dcwKeyFollow: __classPrivateFieldGet(this, _NeonDeviceBoxAdapter_parametric, "f").createParameter(line.dcwKeyFollow, ValueMapping.linear(0, 9), StringMapping.numeric({ unit: "", fractionDigits: 1 }), "DCW Key Follow"),
87
+ dcaKeyFollow: __classPrivateFieldGet(this, _NeonDeviceBoxAdapter_parametric, "f").createParameter(line.dcaKeyFollow, ValueMapping.linear(0, 9), StringMapping.numeric({ unit: "", fractionDigits: 1 }), "DCA Key Follow")
88
+ }))
89
+ };
90
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"AudioBusFactory.d.ts","sourceRoot":"","sources":["../../src/factories/AudioBusFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAC,WAAW,EAAW,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAS,KAAK,EAAe,MAAM,kBAAkB,CAAA;AAG5D,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAA;AAE1D,yBAAiB,eAAe,CAAC;IACtB,MAAM,MAAM,GAAI,UAAU,eAAe,EACzB,MAAM,MAAM,EACZ,MAAM,UAAU,EAChB,MAAM,aAAa,EACnB,OAAO,KAAK,KAAG,WAoBrC,CAAA;CACJ"}
1
+ {"version":3,"file":"AudioBusFactory.d.ts","sourceRoot":"","sources":["../../src/factories/AudioBusFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAC,WAAW,EAAC,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAS,KAAK,EAAe,MAAM,kBAAkB,CAAA;AAE5D,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAA;AAE1D,yBAAiB,eAAe,CAAC;IACtB,MAAM,MAAM,GAAI,UAAU,eAAe,EACzB,MAAM,MAAM,EACZ,MAAM,UAAU,EAChB,MAAM,aAAa,EACnB,OAAO,KAAK,KAAG,WAcrC,CAAA;CACJ"}
@@ -1,8 +1,7 @@
1
1
  import { IconSymbol } from "@opendaw/studio-enums";
2
- import { AudioBusBox, TrackBox } from "@opendaw/studio-boxes";
2
+ import { AudioBusBox } from "@opendaw/studio-boxes";
3
3
  import { assert, Option, UUID } from "@opendaw/lib-std";
4
4
  import { AudioUnitFactory } from "./AudioUnitFactory";
5
- import { TrackType } from "../timeline/TrackType";
6
5
  export var AudioBusFactory;
7
6
  (function (AudioBusFactory) {
8
7
  AudioBusFactory.create = (skeleton, name, icon, type, color) => {
@@ -17,12 +16,6 @@ export var AudioBusFactory;
17
16
  box.color.setValue(color.toString());
18
17
  });
19
18
  const audioUnitBox = AudioUnitFactory.create(skeleton, type, Option.None);
20
- TrackBox.create(boxGraph, UUID.generate(), box => {
21
- box.tracks.refer(audioUnitBox.tracks);
22
- box.target.refer(audioUnitBox);
23
- box.index.setValue(0);
24
- box.type.setValue(TrackType.Undefined);
25
- });
26
19
  audioBusBox.output.refer(audioUnitBox.input);
27
20
  return audioBusBox;
28
21
  };
@@ -1,3 +1,3 @@
1
- import { ApparatDeviceBox, MIDIOutputDeviceBox, NanoDeviceBox, PlayfieldDeviceBox, SoundfontDeviceBox, TapeDeviceBox, VaporisateurDeviceBox } from "@opendaw/studio-boxes";
2
- export type InstrumentBox = ApparatDeviceBox | TapeDeviceBox | VaporisateurDeviceBox | NanoDeviceBox | PlayfieldDeviceBox | SoundfontDeviceBox | MIDIOutputDeviceBox;
1
+ import { ApparatDeviceBox, NeonDeviceBox, MIDIOutputDeviceBox, NanoDeviceBox, PlayfieldDeviceBox, SoundfontDeviceBox, TapeDeviceBox, VaporisateurDeviceBox } from "@opendaw/studio-boxes";
2
+ export type InstrumentBox = ApparatDeviceBox | TapeDeviceBox | VaporisateurDeviceBox | NeonDeviceBox | NanoDeviceBox | PlayfieldDeviceBox | SoundfontDeviceBox | MIDIOutputDeviceBox;
3
3
  //# sourceMappingURL=InstrumentBox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InstrumentBox.d.ts","sourceRoot":"","sources":["../../src/factories/InstrumentBox.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACxB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,MAAM,aAAa,GACnB,gBAAgB,GAChB,aAAa,GACb,qBAAqB,GACrB,aAAa,GACb,kBAAkB,GAClB,kBAAkB,GAClB,mBAAmB,CAAA"}
1
+ {"version":3,"file":"InstrumentBox.d.ts","sourceRoot":"","sources":["../../src/factories/InstrumentBox.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACxB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,MAAM,aAAa,GACnB,gBAAgB,GAChB,aAAa,GACb,qBAAqB,GACrB,aAAa,GACb,aAAa,GACb,kBAAkB,GAClB,kBAAkB,GAClB,mBAAmB,CAAA"}
@@ -1,4 +1,4 @@
1
- import { ApparatDeviceBox, AudioFileBox, MIDIOutputDeviceBox, NanoDeviceBox, PlayfieldDeviceBox, SoundfontDeviceBox, TapeDeviceBox, VaporisateurDeviceBox } from "@opendaw/studio-boxes";
1
+ import { ApparatDeviceBox, AudioFileBox, NeonDeviceBox, MIDIOutputDeviceBox, NanoDeviceBox, PlayfieldDeviceBox, SoundfontDeviceBox, TapeDeviceBox, VaporisateurDeviceBox } from "@opendaw/studio-boxes";
2
2
  import { byte, UUID } from "@opendaw/lib-std";
3
3
  import { InstrumentFactory } from "./InstrumentFactory";
4
4
  export declare namespace InstrumentFactories {
@@ -12,6 +12,7 @@ export declare namespace InstrumentFactories {
12
12
  exclude: boolean;
13
13
  }>;
14
14
  const Playfield: InstrumentFactory<PlayfieldAttachment, PlayfieldDeviceBox>;
15
+ const Neon: InstrumentFactory<void, NeonDeviceBox>;
15
16
  const Vaporisateur: InstrumentFactory<void, VaporisateurDeviceBox>;
16
17
  const MIDIOutput: InstrumentFactory<void, MIDIOutputDeviceBox>;
17
18
  const Soundfont: InstrumentFactory<{
@@ -21,6 +22,7 @@ export declare namespace InstrumentFactories {
21
22
  const Apparat: InstrumentFactory<void, ApparatDeviceBox>;
22
23
  const Named: {
23
24
  Apparat: InstrumentFactory<void, ApparatDeviceBox>;
25
+ Neon: InstrumentFactory<void, NeonDeviceBox>;
24
26
  MIDIOutput: InstrumentFactory<void, MIDIOutputDeviceBox>;
25
27
  Nano: InstrumentFactory<AudioFileBox, NanoDeviceBox>;
26
28
  Playfield: InstrumentFactory<PlayfieldAttachment, PlayfieldDeviceBox>;
@@ -1 +1 @@
1
- {"version":3,"file":"InstrumentFactories.d.ts","sourceRoot":"","sources":["../../src/factories/InstrumentFactories.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,YAAY,EAEZ,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAElB,kBAAkB,EAElB,aAAa,EACb,qBAAqB,EACxB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAC,IAAI,EAAa,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAKtD,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAA;AAGrD,yBAAiB,mBAAmB,CAAC;IAC1B,MAAM,IAAI,EAAE,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAoBvD,CAAA;IAEM,MAAM,IAAI,EAAE,iBAAiB,CAAC,YAAY,EAAE,aAAa,CAiB/D,CAAA;IAED,KAAY,mBAAmB,GAAG,aAAa,CAAC;QAC5C,IAAI,EAAE,IAAI,CAAA;QACV,IAAI,EAAE,IAAI,CAAC,KAAK,CAAA;QAChB,IAAI,EAAE,MAAM,CAAA;QACZ,iBAAiB,EAAE,MAAM,CAAA;QACzB,OAAO,EAAE,OAAO,CAAA;KACnB,CAAC,CAAA;IAEK,MAAM,SAAS,EAAE,iBAAiB,CAAC,mBAAmB,EAAE,kBAAkB,CA8BhF,CAAA;IAEM,MAAM,YAAY,EAAE,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,CA8BvE,CAAA;IAEM,MAAM,UAAU,EAAE,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,CAiBnE,CAAA;IAEM,MAAM,SAAS,EAAE,iBAAiB,CAAC;QAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,kBAAkB,CAehG,CAAA;IAEM,MAAM,OAAO,EAAE,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,CAe7D,CAAA;IAEM,MAAM,KAAK;;;;;;kBAlCgC,IAAI,CAAC,MAAM;kBAAQ,MAAM;;;;KAkCe,CAAA;IAC1F,KAAY,IAAI,GAAG,MAAM,OAAO,KAAK,CAAA;CAYxC"}
1
+ {"version":3,"file":"InstrumentFactories.d.ts","sourceRoot":"","sources":["../../src/factories/InstrumentFactories.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,YAAY,EAEZ,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAElB,kBAAkB,EAElB,aAAa,EACb,qBAAqB,EACxB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAC,IAAI,EAAa,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAKtD,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAA;AAGrD,yBAAiB,mBAAmB,CAAC;IAC1B,MAAM,IAAI,EAAE,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAoBvD,CAAA;IAEM,MAAM,IAAI,EAAE,iBAAiB,CAAC,YAAY,EAAE,aAAa,CAiB/D,CAAA;IAED,KAAY,mBAAmB,GAAG,aAAa,CAAC;QAC5C,IAAI,EAAE,IAAI,CAAA;QACV,IAAI,EAAE,IAAI,CAAC,KAAK,CAAA;QAChB,IAAI,EAAE,MAAM,CAAA;QACZ,iBAAiB,EAAE,MAAM,CAAA;QACzB,OAAO,EAAE,OAAO,CAAA;KACnB,CAAC,CAAA;IAEK,MAAM,SAAS,EAAE,iBAAiB,CAAC,mBAAmB,EAAE,kBAAkB,CA8BhF,CAAA;IAEM,MAAM,IAAI,EAAE,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAiCvD,CAAA;IAEM,MAAM,YAAY,EAAE,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,CA8BvE,CAAA;IAEM,MAAM,UAAU,EAAE,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,CAiBnE,CAAA;IAEM,MAAM,SAAS,EAAE,iBAAiB,CAAC;QAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,kBAAkB,CAehG,CAAA;IAEM,MAAM,OAAO,EAAE,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,CAe7D,CAAA;IAEM,MAAM,KAAK;;;;;;;kBAlCgC,IAAI,CAAC,MAAM;kBAAQ,MAAM;;;;KAkCqB,CAAA;IAChG,KAAY,IAAI,GAAG,MAAM,OAAO,KAAK,CAAA;CAYxC"}
@@ -1,4 +1,4 @@
1
- import { ApparatDeviceBox, AudioFileBox, MIDIOutputDeviceBox, NanoDeviceBox, PlayfieldDeviceBox, PlayfieldSampleBox, SoundfontDeviceBox, SoundfontFileBox, TapeDeviceBox, VaporisateurDeviceBox } from "@opendaw/studio-boxes";
1
+ import { ApparatDeviceBox, AudioFileBox, NeonDeviceBox, MIDIOutputDeviceBox, NanoDeviceBox, PlayfieldDeviceBox, PlayfieldSampleBox, SoundfontDeviceBox, SoundfontFileBox, TapeDeviceBox, VaporisateurDeviceBox } from "@opendaw/studio-boxes";
2
2
  import { isDefined, UUID } from "@opendaw/lib-std";
3
3
  import { ClassicWaveform } from "@opendaw/lib-dsp";
4
4
  import { IconSymbol, VoicingMode } from "@opendaw/studio-enums";
@@ -66,6 +66,35 @@ export var InstrumentFactories;
66
66
  return deviceBox;
67
67
  }
68
68
  };
69
+ InstrumentFactories.Neon = {
70
+ defaultName: "Neon",
71
+ defaultIcon: IconSymbol.Neon,
72
+ briefDescription: "CZ-style Synth",
73
+ description: "CZ-style phase distortion synthesizer",
74
+ manualPage: DeviceManualUrls.Neon,
75
+ trackType: TrackType.Notes,
76
+ create: (boxGraph, host, name, icon, _attachment) => NeonDeviceBox.create(boxGraph, UUID.generate(), box => {
77
+ box.label.setValue(name);
78
+ box.icon.setValue(IconSymbol.toName(icon));
79
+ // The init tone: line 1 saw, DCW fully open, organ-style DCA (full until note-off, short
80
+ // release stage). Envelope array order: line1 pitch/DCW/DCA, line2 pitch/DCW/DCA.
81
+ for (const line of [0, 1]) {
82
+ const dcw = box.envelopes.fields()[line * 3 + 1];
83
+ dcw.rate1.setInitValue(99);
84
+ dcw.level1.setInitValue(99);
85
+ dcw.sustain.setInitValue(1);
86
+ dcw.end.setInitValue(2);
87
+ dcw.rate2.setInitValue(99);
88
+ const dca = box.envelopes.fields()[line * 3 + 2];
89
+ dca.rate1.setInitValue(99);
90
+ dca.level1.setInitValue(99);
91
+ dca.sustain.setInitValue(1);
92
+ dca.end.setInitValue(2);
93
+ dca.rate2.setInitValue(70);
94
+ }
95
+ box.host.refer(host);
96
+ })
97
+ };
69
98
  InstrumentFactories.Vaporisateur = {
70
99
  defaultName: "Vaporisateur",
71
100
  defaultIcon: IconSymbol.Piano,
@@ -131,7 +160,7 @@ export var InstrumentFactories;
131
160
  box.host.refer(host);
132
161
  })
133
162
  };
134
- InstrumentFactories.Named = { Apparat: InstrumentFactories.Apparat, MIDIOutput: InstrumentFactories.MIDIOutput, Nano: InstrumentFactories.Nano, Playfield: InstrumentFactories.Playfield, Soundfont: InstrumentFactories.Soundfont, Tape: InstrumentFactories.Tape, Vaporisateur: InstrumentFactories.Vaporisateur };
163
+ InstrumentFactories.Named = { Apparat: InstrumentFactories.Apparat, Neon: InstrumentFactories.Neon, MIDIOutput: InstrumentFactories.MIDIOutput, Nano: InstrumentFactories.Nano, Playfield: InstrumentFactories.Playfield, Soundfont: InstrumentFactories.Soundfont, Tape: InstrumentFactories.Tape, Vaporisateur: InstrumentFactories.Vaporisateur };
135
164
  const useAudioFile = (boxGraph, fileUUID, name, duration) => boxGraph.findBox(fileUUID)
136
165
  .unwrapOrElse(() => AudioFileBox.create(boxGraph, fileUUID, box => {
137
166
  box.fileName.setValue(name);
package/dist/index.d.ts CHANGED
@@ -77,6 +77,9 @@ export * from "./devices/audio-effects/WerkstattDeviceBoxAdapter";
77
77
  export * from "./devices/instruments/ApparatDeviceBoxAdapter";
78
78
  export * from "./devices/instruments/MIDIOutputDeviceBoxAdapter";
79
79
  export * from "./devices/instruments/NanoDeviceBoxAdapter";
80
+ export * from "./devices/instruments/Neon/CzSysex";
81
+ export * from "./devices/instruments/Neon/NeonPreset";
82
+ export * from "./devices/instruments/NeonDeviceBoxAdapter";
80
83
  export * from "./devices/instruments/Playfield/Gate";
81
84
  export * from "./devices/instruments/Playfield/PlayfieldSampleBoxAdapter";
82
85
  export * from "./devices/instruments/PlayfieldDeviceBoxAdapter";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -79,6 +79,9 @@ export * from "./devices/audio-effects/WerkstattDeviceBoxAdapter";
79
79
  export * from "./devices/instruments/ApparatDeviceBoxAdapter";
80
80
  export * from "./devices/instruments/MIDIOutputDeviceBoxAdapter";
81
81
  export * from "./devices/instruments/NanoDeviceBoxAdapter";
82
+ export * from "./devices/instruments/Neon/CzSysex";
83
+ export * from "./devices/instruments/Neon/NeonPreset";
84
+ export * from "./devices/instruments/NeonDeviceBoxAdapter";
82
85
  export * from "./devices/instruments/Playfield/Gate";
83
86
  export * from "./devices/instruments/Playfield/PlayfieldSampleBoxAdapter";
84
87
  export * from "./devices/instruments/PlayfieldDeviceBoxAdapter";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opendaw/studio-adapters",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
4
4
  "license": "LGPL-3.0-or-later",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -31,13 +31,13 @@
31
31
  "@opendaw/lib-midi": "^0.0.70",
32
32
  "@opendaw/lib-runtime": "^0.0.83",
33
33
  "@opendaw/lib-std": "^0.0.82",
34
- "@opendaw/studio-boxes": "^0.0.102",
35
- "@opendaw/studio-enums": "^0.0.83",
34
+ "@opendaw/studio-boxes": "^0.0.104",
35
+ "@opendaw/studio-enums": "^0.0.84",
36
36
  "soundfont2": "^0.5.0"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@opendaw/eslint-config": "^0.0.28",
40
40
  "@opendaw/typescript-config": "^0.0.32"
41
41
  },
42
- "gitHead": "0d71243b5284958062f4f80f52ad7e8f61567186"
42
+ "gitHead": "c1a5287078f6fdc5e3574cbb53da0544474ea0cd"
43
43
  }