@blibliki/engine 0.1.18 → 0.1.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build/Engine.d.ts +81 -0
- package/dist/build/core/IO/AudioNode.d.ts +35 -0
- package/dist/build/core/IO/Collection.d.ts +13 -0
- package/dist/build/core/IO/ForwardNode.d.ts +38 -0
- package/dist/build/core/IO/MidiNode.d.ts +30 -0
- package/dist/build/core/IO/Node.d.ts +36 -0
- package/dist/build/core/IO/index.d.ts +12 -0
- package/dist/build/core/Module/MonoModule.d.ts +67 -0
- package/dist/build/core/Module/PolyModule.d.ts +57 -0
- package/dist/build/core/Module/index.d.ts +6 -0
- package/dist/build/core/Note/frequencyTable.d.ts +4 -0
- package/dist/build/core/Note/index.d.ts +28 -0
- package/dist/build/core/midi/MidiDevice.d.ts +25 -0
- package/dist/build/core/midi/MidiDeviceManager.d.ts +13 -0
- package/dist/build/core/midi/MidiEvent.d.ts +21 -0
- package/dist/build/core/midi/index.d.ts +5 -0
- package/dist/build/index.d.ts +9 -0
- package/dist/build/modules/BitCrusher.d.ts +16 -0
- package/dist/build/modules/Delay.d.ts +19 -0
- package/dist/build/modules/Distortion.d.ts +16 -0
- package/dist/build/modules/Effect.d.ts +19 -0
- package/dist/build/modules/Envelope/AmpEnvelope.d.ts +18 -0
- package/dist/build/modules/Envelope/Base.d.ts +66 -0
- package/dist/build/modules/Envelope/FreqEnvelope.d.ts +25 -0
- package/dist/build/modules/Envelope/index.d.ts +3 -0
- package/dist/build/modules/Filter.d.ts +37 -0
- package/dist/build/modules/Master.d.ts +11 -0
- package/dist/build/modules/MidiSelector.d.ts +21 -0
- package/dist/build/modules/Oscillator.d.ts +51 -0
- package/dist/build/modules/Reverb.d.ts +19 -0
- package/dist/build/modules/Sequencer.d.ts +42 -0
- package/dist/build/modules/VirtualMidi.d.ts +32 -0
- package/dist/build/modules/VoiceScheduler.d.ts +43 -0
- package/dist/build/modules/Volume.d.ts +26 -0
- package/dist/build/modules/index.d.ts +16 -0
- package/dist/build/routes.d.ts +18 -0
- package/dist/build/types.d.ts +5 -0
- package/dist/build/utils.d.ts +1 -0
- package/dist/main.cjs.js +2 -2
- package/dist/main.cjs.js.map +1 -0
- package/dist/main.esm.js +33 -0
- package/dist/main.esm.js.map +1 -0
- package/package.json +14 -9
- package/src/modules/Envelope/Base.ts +3 -0
- package/src/modules/MidiSelector.ts +3 -3
- package/src/modules/VirtualMidi.ts +4 -2
- package/.eslintrc.js +0 -14
- package/.parcerc +0 -6
- package/jest.config.js +0 -19
- package/rollup.config.mjs +0 -21
- package/test/MockingModules.ts +0 -27
- package/test/Module/Oscillator.test.ts +0 -9
- package/test/core/IO.test.ts +0 -172
- package/tsconfig.json +0 -22
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { FrequencyEnvelope } from "tone";
|
|
2
|
+
import Filter from "../Filter";
|
|
3
|
+
import Base, { EnvelopeInterface, PolyBase } from "./Base";
|
|
4
|
+
export declare class MonoFreqEnvelope extends Base<FrequencyEnvelope> {
|
|
5
|
+
private _frequency;
|
|
6
|
+
private _amount;
|
|
7
|
+
filter: Filter;
|
|
8
|
+
constructor(params: {
|
|
9
|
+
id?: string;
|
|
10
|
+
name: string;
|
|
11
|
+
props: EnvelopeInterface;
|
|
12
|
+
});
|
|
13
|
+
get frequency(): number;
|
|
14
|
+
set frequency(value: number);
|
|
15
|
+
get amount(): number;
|
|
16
|
+
set amount(value: number);
|
|
17
|
+
}
|
|
18
|
+
export default class FreqEnvelope extends PolyBase<MonoFreqEnvelope> {
|
|
19
|
+
static moduleName: string;
|
|
20
|
+
constructor(params: {
|
|
21
|
+
id?: string;
|
|
22
|
+
name: string;
|
|
23
|
+
props: Partial<EnvelopeInterface>;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Filter as InternalFilter, FilterRollOff } from "tone";
|
|
2
|
+
import Module, { PolyModule } from "../core/Module";
|
|
3
|
+
interface FilterInterface {
|
|
4
|
+
cutoff: number;
|
|
5
|
+
filterType: BiquadFilterType;
|
|
6
|
+
resonance: number;
|
|
7
|
+
slope: FilterRollOff;
|
|
8
|
+
envelopeAmount: number;
|
|
9
|
+
}
|
|
10
|
+
type FilterProps = Partial<FilterInterface>;
|
|
11
|
+
declare class MonoFilter extends Module<InternalFilter, FilterInterface> {
|
|
12
|
+
constructor(params: {
|
|
13
|
+
id?: string;
|
|
14
|
+
name: string;
|
|
15
|
+
props: FilterProps;
|
|
16
|
+
});
|
|
17
|
+
get cutoff(): number;
|
|
18
|
+
set cutoff(value: number);
|
|
19
|
+
get filterType(): BiquadFilterType;
|
|
20
|
+
set filterType(value: BiquadFilterType);
|
|
21
|
+
get slope(): FilterRollOff;
|
|
22
|
+
set slope(value: FilterRollOff);
|
|
23
|
+
get frequency(): import("tone").Signal<"frequency">;
|
|
24
|
+
get resonance(): number;
|
|
25
|
+
set resonance(value: number);
|
|
26
|
+
get envelopeAmount(): number;
|
|
27
|
+
set envelopeAmount(value: number);
|
|
28
|
+
}
|
|
29
|
+
export default class Filter extends PolyModule<MonoFilter, FilterInterface> {
|
|
30
|
+
static moduleName: string;
|
|
31
|
+
constructor(params: {
|
|
32
|
+
id?: string;
|
|
33
|
+
name: string;
|
|
34
|
+
props: Partial<FilterInterface>;
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Destination } from "tone";
|
|
2
|
+
import Module from "../core/Module";
|
|
3
|
+
export interface MasterInterface {
|
|
4
|
+
}
|
|
5
|
+
export default class Master extends Module<typeof Destination, MasterInterface> {
|
|
6
|
+
static moduleName: string;
|
|
7
|
+
constructor({ id }: {
|
|
8
|
+
id?: string;
|
|
9
|
+
});
|
|
10
|
+
dispose(): void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import Module, { DummnyInternalModule } from "../core/Module";
|
|
2
|
+
import { MidiOutput } from "../core/IO";
|
|
3
|
+
export interface MidiSelectorInterface {
|
|
4
|
+
selectedId: string | null;
|
|
5
|
+
}
|
|
6
|
+
export default class MidiSelector extends Module<DummnyInternalModule, MidiSelectorInterface> {
|
|
7
|
+
static moduleName: string;
|
|
8
|
+
midiOutput: MidiOutput;
|
|
9
|
+
constructor(params: {
|
|
10
|
+
id?: string;
|
|
11
|
+
name: string;
|
|
12
|
+
props: Partial<MidiSelectorInterface>;
|
|
13
|
+
});
|
|
14
|
+
get selectedId(): string | null;
|
|
15
|
+
set selectedId(value: string | null);
|
|
16
|
+
dispose(): void;
|
|
17
|
+
private registerOutputs;
|
|
18
|
+
private addEventListener;
|
|
19
|
+
private forwardMidiEvent;
|
|
20
|
+
private removeEventListener;
|
|
21
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Oscillator as Osc } from "tone";
|
|
2
|
+
import Note from "../core/Note";
|
|
3
|
+
import Module, { PolyModule, Startable } from "../core/Module";
|
|
4
|
+
export interface OscillatorInterface {
|
|
5
|
+
noteName: string;
|
|
6
|
+
fine: number;
|
|
7
|
+
coarse: number;
|
|
8
|
+
wave: string;
|
|
9
|
+
volume: number;
|
|
10
|
+
range: number;
|
|
11
|
+
}
|
|
12
|
+
declare class MonoOscillator extends Module<Osc, OscillatorInterface> implements Startable {
|
|
13
|
+
private _note;
|
|
14
|
+
constructor(params: {
|
|
15
|
+
id?: string;
|
|
16
|
+
name: string;
|
|
17
|
+
props: Partial<OscillatorInterface>;
|
|
18
|
+
});
|
|
19
|
+
get note(): Note;
|
|
20
|
+
setNoteAt(value: Note | string, time: number): void;
|
|
21
|
+
set note(value: Note | string);
|
|
22
|
+
get noteName(): string;
|
|
23
|
+
set noteName(value: string);
|
|
24
|
+
get fine(): number;
|
|
25
|
+
set fine(value: number);
|
|
26
|
+
get coarse(): number;
|
|
27
|
+
set coarse(value: number);
|
|
28
|
+
get wave(): string;
|
|
29
|
+
set wave(value: string);
|
|
30
|
+
get volume(): number;
|
|
31
|
+
set volume(value: number);
|
|
32
|
+
get range(): number;
|
|
33
|
+
set range(value: number);
|
|
34
|
+
start(time: number): void;
|
|
35
|
+
stop(time?: number): void;
|
|
36
|
+
triggerAttack: (note: Note, triggeredAt: number) => void;
|
|
37
|
+
triggerRelease: () => void;
|
|
38
|
+
private updateFrequency;
|
|
39
|
+
private getNote;
|
|
40
|
+
}
|
|
41
|
+
export default class Oscillator extends PolyModule<MonoOscillator, OscillatorInterface> {
|
|
42
|
+
static moduleName: string;
|
|
43
|
+
constructor(params: {
|
|
44
|
+
id?: string;
|
|
45
|
+
name: string;
|
|
46
|
+
props: Partial<OscillatorInterface>;
|
|
47
|
+
});
|
|
48
|
+
start(time: number): void;
|
|
49
|
+
stop(time?: number): void;
|
|
50
|
+
}
|
|
51
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Reverb as InternalReverb } from "tone";
|
|
2
|
+
import Effect, { EffectInterface } from "./Effect";
|
|
3
|
+
interface ReverbInterface extends EffectInterface {
|
|
4
|
+
decay: number;
|
|
5
|
+
preDelay: number;
|
|
6
|
+
}
|
|
7
|
+
export default class Reverb extends Effect<InternalReverb, ReverbInterface> {
|
|
8
|
+
static moduleName: string;
|
|
9
|
+
constructor(params: {
|
|
10
|
+
id?: string;
|
|
11
|
+
name: string;
|
|
12
|
+
props: Partial<ReverbInterface>;
|
|
13
|
+
});
|
|
14
|
+
get decay(): number;
|
|
15
|
+
set decay(value: number);
|
|
16
|
+
get preDelay(): number;
|
|
17
|
+
set preDelay(value: number);
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import Module, { DummnyInternalModule } from "../core/Module";
|
|
2
|
+
import { INote } from "../core/Note";
|
|
3
|
+
import { MidiOutput } from "../core/IO";
|
|
4
|
+
export interface ISequence {
|
|
5
|
+
active: boolean;
|
|
6
|
+
time: string;
|
|
7
|
+
notes: INote[];
|
|
8
|
+
}
|
|
9
|
+
interface ISequencer {
|
|
10
|
+
sequences: ISequence[][];
|
|
11
|
+
steps: number;
|
|
12
|
+
bars: number;
|
|
13
|
+
}
|
|
14
|
+
export default class Sequencer extends Module<DummnyInternalModule, ISequencer> {
|
|
15
|
+
static moduleName: string;
|
|
16
|
+
midiOutput: MidiOutput;
|
|
17
|
+
private part;
|
|
18
|
+
constructor(params: {
|
|
19
|
+
id?: string;
|
|
20
|
+
name: string;
|
|
21
|
+
props: Partial<ISequencer>;
|
|
22
|
+
});
|
|
23
|
+
get props(): ISequencer;
|
|
24
|
+
set props(value: ISequencer);
|
|
25
|
+
get steps(): number;
|
|
26
|
+
set steps(value: number);
|
|
27
|
+
get bars(): number;
|
|
28
|
+
set bars(value: number);
|
|
29
|
+
get sequences(): ISequence[][];
|
|
30
|
+
set sequences(value: ISequence[][]);
|
|
31
|
+
start(time: number): void;
|
|
32
|
+
stop(): void;
|
|
33
|
+
private registerOutputs;
|
|
34
|
+
private initializePart;
|
|
35
|
+
private adjust;
|
|
36
|
+
private adjustNumberOfBars;
|
|
37
|
+
private adjustNumberOfSteps;
|
|
38
|
+
private updateBarParts;
|
|
39
|
+
private get loopEnd();
|
|
40
|
+
private onPartEvent;
|
|
41
|
+
}
|
|
42
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { MidiEvent } from "../core/midi";
|
|
2
|
+
import Note from "../core/Note";
|
|
3
|
+
import Module, { DummnyInternalModule } from "../core/Module";
|
|
4
|
+
import { MidiOutput } from "../core/IO";
|
|
5
|
+
export interface VirtualMidiInterface {
|
|
6
|
+
activeNotes: string[];
|
|
7
|
+
}
|
|
8
|
+
export default class VirtualMidi extends Module<DummnyInternalModule, VirtualMidiInterface> {
|
|
9
|
+
static moduleName: string;
|
|
10
|
+
midiOutput: MidiOutput;
|
|
11
|
+
constructor(params: {
|
|
12
|
+
id?: string;
|
|
13
|
+
name: string;
|
|
14
|
+
props: VirtualMidiInterface;
|
|
15
|
+
});
|
|
16
|
+
get activeNotes(): string[];
|
|
17
|
+
set activeNotes(value: string[]);
|
|
18
|
+
sendMidi(midiEvent: MidiEvent): void;
|
|
19
|
+
triggerAttack: (note: Note, triggerAttack: number) => void;
|
|
20
|
+
triggerRelease: (note: Note, triggerAttack: number) => void;
|
|
21
|
+
serialize(): {
|
|
22
|
+
activeNotes: string[];
|
|
23
|
+
id: string;
|
|
24
|
+
name: string;
|
|
25
|
+
type: string;
|
|
26
|
+
props: VirtualMidiInterface;
|
|
27
|
+
inputs: import("../core/IO").IIOSerialize[];
|
|
28
|
+
outputs: import("../core/IO").IIOSerialize[];
|
|
29
|
+
};
|
|
30
|
+
private registerInputs;
|
|
31
|
+
private registerOutputs;
|
|
32
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { MidiEvent } from "../core/midi";
|
|
2
|
+
import Module, { PolyModule, DummnyInternalModule } from "../core/Module";
|
|
3
|
+
import { MidiOutput } from "../core/IO";
|
|
4
|
+
export interface VoiceSchedulerInterface {
|
|
5
|
+
polyNumber: number;
|
|
6
|
+
}
|
|
7
|
+
export default class VoiceScheduler extends PolyModule<Voice, VoiceSchedulerInterface> {
|
|
8
|
+
static moduleName: string;
|
|
9
|
+
midiOutput: MidiOutput;
|
|
10
|
+
constructor(params: {
|
|
11
|
+
id?: string;
|
|
12
|
+
name: string;
|
|
13
|
+
props: VoiceSchedulerInterface;
|
|
14
|
+
});
|
|
15
|
+
set polyNumber(value: number);
|
|
16
|
+
get polyNumber(): number;
|
|
17
|
+
onMidiEvent: (midiEvent: MidiEvent) => void;
|
|
18
|
+
serialize(): {
|
|
19
|
+
props: {
|
|
20
|
+
polyNumber: number;
|
|
21
|
+
};
|
|
22
|
+
id: string;
|
|
23
|
+
type: string;
|
|
24
|
+
inputs: import("../core/IO").IIOSerialize[];
|
|
25
|
+
outputs: import("../core/IO").IIOSerialize[];
|
|
26
|
+
name: string;
|
|
27
|
+
};
|
|
28
|
+
private findFreeVoice;
|
|
29
|
+
private registerInputs;
|
|
30
|
+
private registerOutputs;
|
|
31
|
+
}
|
|
32
|
+
declare class Voice extends Module<DummnyInternalModule, VoiceSchedulerInterface> {
|
|
33
|
+
midiEvent: MidiEvent | null;
|
|
34
|
+
activeNote: string | null;
|
|
35
|
+
triggeredAt: number;
|
|
36
|
+
constructor(params: {
|
|
37
|
+
id?: string;
|
|
38
|
+
name: string;
|
|
39
|
+
props: VoiceSchedulerInterface;
|
|
40
|
+
});
|
|
41
|
+
midiTriggered: (midiEvent: MidiEvent) => void;
|
|
42
|
+
}
|
|
43
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Volume as Vol } from "tone";
|
|
2
|
+
import Module, { PolyModule } from "../core/Module";
|
|
3
|
+
import Note from "../core/Note";
|
|
4
|
+
export interface VolumeInterface {
|
|
5
|
+
volume: number;
|
|
6
|
+
}
|
|
7
|
+
declare class MonoVolume extends Module<Vol, VolumeInterface> {
|
|
8
|
+
constructor(params: {
|
|
9
|
+
id?: string;
|
|
10
|
+
name: string;
|
|
11
|
+
props: Partial<VolumeInterface>;
|
|
12
|
+
});
|
|
13
|
+
get volume(): number;
|
|
14
|
+
set volume(value: number);
|
|
15
|
+
triggerAttack: (note: Note, triggeredAt: number) => void;
|
|
16
|
+
triggerRelease: () => void;
|
|
17
|
+
}
|
|
18
|
+
export default class Volume extends PolyModule<MonoVolume, VolumeInterface> {
|
|
19
|
+
static moduleName: string;
|
|
20
|
+
constructor(params: {
|
|
21
|
+
id?: string;
|
|
22
|
+
name: string;
|
|
23
|
+
props: Partial<VolumeInterface>;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AudioModule } from "../core/Module";
|
|
2
|
+
export { default as Master } from "./Master";
|
|
3
|
+
export { default as Filter } from "./Filter";
|
|
4
|
+
export { default as Oscillator } from "./Oscillator";
|
|
5
|
+
export { default as VirtualMidi } from "./VirtualMidi";
|
|
6
|
+
export { default as VoiceScheduler } from "./VoiceScheduler";
|
|
7
|
+
export { default as Sequencer } from "./Sequencer";
|
|
8
|
+
export type { ISequence } from "./Sequencer";
|
|
9
|
+
export { Envelope, AmpEnvelope, FreqEnvelope, EnvelopeStages, } from "./Envelope";
|
|
10
|
+
export interface ICreateModule {
|
|
11
|
+
id?: string;
|
|
12
|
+
name: string;
|
|
13
|
+
type: string;
|
|
14
|
+
props: any;
|
|
15
|
+
}
|
|
16
|
+
export declare function createModule(params: ICreateModule): AudioModule;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Optional } from "./types";
|
|
2
|
+
export interface RouteProps {
|
|
3
|
+
sourceId: string;
|
|
4
|
+
sourceIOId: string;
|
|
5
|
+
destinationId: string;
|
|
6
|
+
destinationIOId: string;
|
|
7
|
+
}
|
|
8
|
+
export interface RouteInterface extends RouteProps {
|
|
9
|
+
id: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function createRoute(props: Optional<RouteInterface, "id">): {
|
|
12
|
+
id: string;
|
|
13
|
+
sourceId: string;
|
|
14
|
+
sourceIOId: string;
|
|
15
|
+
destinationId: string;
|
|
16
|
+
destinationIOId: string;
|
|
17
|
+
};
|
|
18
|
+
export declare function applyRoutes(routes: RouteInterface[]): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function deterministicId(originalId: string, additionalString: string): string;
|