@algo-wasm/algo-wasm 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/LICENSE +661 -0
  3. package/NOTICE +15 -0
  4. package/README.md +36 -0
  5. package/dist/AlgoWasmError.d.ts +8 -0
  6. package/dist/AlgoWasmError.d.ts.map +1 -0
  7. package/dist/AlgoWasmError.js +9 -0
  8. package/dist/AlgoWasmError.js.map +1 -0
  9. package/dist/AlgoWasmPlayer.d.ts +48 -0
  10. package/dist/AlgoWasmPlayer.d.ts.map +1 -0
  11. package/dist/AlgoWasmPlayer.js +375 -0
  12. package/dist/AlgoWasmPlayer.js.map +1 -0
  13. package/dist/algo_wasm.wasm +0 -0
  14. package/dist/events.d.ts +9 -0
  15. package/dist/events.d.ts.map +1 -0
  16. package/dist/events.js +25 -0
  17. package/dist/events.js.map +1 -0
  18. package/dist/index.d.ts +7 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +6 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/integrations/phaser.d.ts +11 -0
  23. package/dist/integrations/phaser.d.ts.map +1 -0
  24. package/dist/integrations/phaser.js +16 -0
  25. package/dist/integrations/phaser.js.map +1 -0
  26. package/dist/integrations/react.d.ts +8 -0
  27. package/dist/integrations/react.d.ts.map +1 -0
  28. package/dist/integrations/react.js +28 -0
  29. package/dist/integrations/react.js.map +1 -0
  30. package/dist/integrations/svelte.d.ts +7 -0
  31. package/dist/integrations/svelte.d.ts.map +1 -0
  32. package/dist/integrations/svelte.js +17 -0
  33. package/dist/integrations/svelte.js.map +1 -0
  34. package/dist/integrations/vue.d.ts +8 -0
  35. package/dist/integrations/vue.d.ts.map +1 -0
  36. package/dist/integrations/vue.js +16 -0
  37. package/dist/integrations/vue.js.map +1 -0
  38. package/dist/loadWasm.d.ts +47 -0
  39. package/dist/loadWasm.d.ts.map +1 -0
  40. package/dist/loadWasm.js +229 -0
  41. package/dist/loadWasm.js.map +1 -0
  42. package/dist/profile-schema.json +464 -0
  43. package/dist/profile.d.ts +15 -0
  44. package/dist/profile.d.ts.map +1 -0
  45. package/dist/profile.js +525 -0
  46. package/dist/profile.js.map +1 -0
  47. package/dist/types.d.ts +189 -0
  48. package/dist/types.d.ts.map +1 -0
  49. package/dist/types.js +2 -0
  50. package/dist/types.js.map +1 -0
  51. package/dist/worklet/algo-worklet.d.ts +83 -0
  52. package/dist/worklet/algo-worklet.d.ts.map +1 -0
  53. package/dist/worklet/algo-worklet.js +471 -0
  54. package/dist/worklet/algo-worklet.js.map +1 -0
  55. package/package.json +56 -0
@@ -0,0 +1,189 @@
1
+ export type AlgoWasmErrorCode = 'browser_feature_missing' | 'audio_context_locked' | 'wasm_load_failed' | 'worklet_load_failed' | 'profile_invalid' | 'engine_failed' | 'render_failed' | 'destroyed';
2
+ export type AlgoWasmEventName = 'ready' | 'started' | 'paused' | 'resumed' | 'stopped' | 'section-change' | 'bar' | 'beat' | 'error' | 'warning' | 'metrics';
3
+ export type AlgoWasmTrackId = 'kick' | 'snare' | 'closed_hat' | 'open_hat' | 'percussion' | 'bass' | 'chords' | 'pad' | 'lead' | 'arp' | 'fx';
4
+ export type AlgoWasmMood = 'dark' | 'bright' | 'tense' | 'calm';
5
+ export type AlgoWasmWaveShape = 'sine' | 'triangle' | 'saw' | 'square' | 'pulse' | 'noise';
6
+ export interface AlgoWasmTempoRules {
7
+ minBpm: number;
8
+ maxBpm: number;
9
+ defaultBpm: number;
10
+ }
11
+ export interface AlgoWasmScaleRule {
12
+ name: string;
13
+ weight: number;
14
+ }
15
+ export interface AlgoWasmChordRules {
16
+ cadenceWeight: number;
17
+ movementWeight: number;
18
+ suspendedChance: number;
19
+ brightBorrowChance: number;
20
+ }
21
+ export interface AlgoWasmRhythmRules {
22
+ kickDensity: number;
23
+ hatDensity: number;
24
+ percussionDensity: number;
25
+ fillChance: number;
26
+ }
27
+ export interface AlgoWasmBassRules {
28
+ density: number;
29
+ slideChance: number;
30
+ accentChance: number;
31
+ octaveJumpChance: number;
32
+ }
33
+ export interface AlgoWasmMelodyRules {
34
+ density: number;
35
+ mutationChance: number;
36
+ callResponseChance: number;
37
+ maxRangeSemitones: number;
38
+ }
39
+ export interface AlgoWasmArrangementRules {
40
+ minSectionBars: number;
41
+ maxSectionBars: number;
42
+ futureBars: number;
43
+ resetChance: number;
44
+ }
45
+ export interface AlgoWasmAutomationRules {
46
+ filterMotion: number;
47
+ sendMotion: number;
48
+ panMotion: number;
49
+ }
50
+ export interface AlgoWasmPatch {
51
+ track: AlgoWasmTrackId;
52
+ wave: AlgoWasmWaveShape;
53
+ gain: number;
54
+ pan: number;
55
+ attackMs: number;
56
+ decayMs: number;
57
+ sustain: number;
58
+ releaseMs: number;
59
+ filterCutoff: number;
60
+ resonance: number;
61
+ delaySend: number;
62
+ reverbSend: number;
63
+ }
64
+ export interface AlgoWasmMixerTrackProfile {
65
+ track: AlgoWasmTrackId;
66
+ gain: number;
67
+ pan: number;
68
+ }
69
+ export interface AlgoWasmMixerProfile {
70
+ masterGain: number;
71
+ limiterDrive: number;
72
+ delayFeedback: number;
73
+ reverbMix: number;
74
+ tracks: AlgoWasmMixerTrackProfile[];
75
+ }
76
+ export interface AlgoWasmSafetyLimits {
77
+ minSampleRate: number;
78
+ maxSampleRate: number;
79
+ minBpm: number;
80
+ maxBpm: number;
81
+ maxTracks: number;
82
+ maxVoices: number;
83
+ maxBarsQueued: number;
84
+ maxEventsPerBlock: number;
85
+ }
86
+ export interface AlgoWasmProfile {
87
+ id: string;
88
+ displayName: string;
89
+ version: string;
90
+ tempo: AlgoWasmTempoRules;
91
+ scales: AlgoWasmScaleRule[];
92
+ chordRules: AlgoWasmChordRules;
93
+ rhythmRules: AlgoWasmRhythmRules;
94
+ bassRules: AlgoWasmBassRules;
95
+ melodyRules: AlgoWasmMelodyRules;
96
+ arrangementRules: AlgoWasmArrangementRules;
97
+ automationRules: AlgoWasmAutomationRules;
98
+ patches: AlgoWasmPatch[];
99
+ mixer: AlgoWasmMixerProfile;
100
+ limits: AlgoWasmSafetyLimits;
101
+ }
102
+ export interface AlgoWasmTrackSnapshot {
103
+ id: AlgoWasmTrackId;
104
+ muted: boolean;
105
+ solo: boolean;
106
+ level: number;
107
+ }
108
+ export interface AlgoWasmSnapshot {
109
+ seed: string;
110
+ sampleRate: number;
111
+ bpm: number;
112
+ currentBar: number;
113
+ currentBeat: number;
114
+ currentSection: string;
115
+ energy: number;
116
+ intensity: number;
117
+ isPlaying: boolean;
118
+ tracks: AlgoWasmTrackSnapshot[];
119
+ }
120
+ export interface AlgoWasmMetrics {
121
+ renderedFrames: number;
122
+ activeVoices: number;
123
+ droppedVoices: number;
124
+ recentEvents: number;
125
+ }
126
+ export type AlgoWasmGeneratedEvent = {
127
+ type: 'note-on';
128
+ sample: number;
129
+ track: AlgoWasmTrackId;
130
+ note: number;
131
+ velocity: number;
132
+ } | {
133
+ type: 'note-off';
134
+ sample: number;
135
+ track: AlgoWasmTrackId;
136
+ note: number;
137
+ } | {
138
+ type: 'control';
139
+ sample: number;
140
+ track: AlgoWasmTrackId;
141
+ name: string;
142
+ value: number;
143
+ } | {
144
+ type: 'section-change';
145
+ sample: number;
146
+ section: string;
147
+ bar: number;
148
+ } | {
149
+ type: 'bar';
150
+ sample: number;
151
+ bar: number;
152
+ } | {
153
+ type: 'beat';
154
+ sample: number;
155
+ bar: number;
156
+ beat: number;
157
+ };
158
+ export type AlgoWasmEventPayloads = {
159
+ ready: AlgoWasmSnapshot;
160
+ started: AlgoWasmSnapshot;
161
+ paused: AlgoWasmSnapshot;
162
+ resumed: AlgoWasmSnapshot;
163
+ stopped: AlgoWasmSnapshot;
164
+ 'section-change': AlgoWasmGeneratedEvent;
165
+ bar: AlgoWasmGeneratedEvent;
166
+ beat: AlgoWasmGeneratedEvent;
167
+ error: Error;
168
+ warning: string;
169
+ metrics: AlgoWasmMetrics;
170
+ };
171
+ export type AlgoWasmEventHandler<Name extends AlgoWasmEventName> = (payload: AlgoWasmEventPayloads[Name]) => void;
172
+ export interface AlgoWasmPlayerOptions {
173
+ wasmUrl: string | URL;
174
+ workletUrl: string | URL;
175
+ profile?: AlgoWasmProfile;
176
+ seed?: bigint | number | string;
177
+ volume?: number;
178
+ audioContext?: AudioContext;
179
+ }
180
+ export interface AlgoWasmOfflineRenderOptions {
181
+ seconds: number;
182
+ sampleRate?: number;
183
+ seed?: bigint | number | string;
184
+ profile?: AlgoWasmProfile;
185
+ }
186
+ export interface AlgoWasmMidiExportOptions {
187
+ downloadName?: string;
188
+ }
189
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,83 @@
1
+ declare const sampleRate: number;
2
+ declare class AudioWorkletProcessor {
3
+ readonly port: MessagePort;
4
+ process(inputs: Float32Array[][], outputs: Float32Array[][], parameters: Record<string, Float32Array>): boolean;
5
+ }
6
+ declare function registerProcessor(name: string, processorCtor: typeof AudioWorkletProcessor): void;
7
+ type WasmFn = (...args: number[]) => number;
8
+ type WorkletCommand = {
9
+ type: string;
10
+ id?: number;
11
+ wasmUrl?: string;
12
+ wasmBytes?: ArrayBuffer;
13
+ profile?: unknown;
14
+ seed?: string;
15
+ sampleRate?: number;
16
+ volume?: number;
17
+ value?: number;
18
+ trackId?: string;
19
+ muted?: boolean;
20
+ solo?: boolean;
21
+ mood?: string;
22
+ minBpm?: number;
23
+ maxBpm?: number;
24
+ };
25
+ type WorkletExports = Record<string, WebAssembly.ExportValue>;
26
+ declare class WorkletWasmBinding {
27
+ private readonly exports;
28
+ private enginePtr;
29
+ private renderPtr;
30
+ private renderLength;
31
+ private renderView?;
32
+ constructor(instance: WebAssembly.Instance);
33
+ create(profile: unknown, seed: string, requestedSampleRate: number, volume: number): void;
34
+ start(): void;
35
+ pause(): void;
36
+ resume(): void;
37
+ stop(): void;
38
+ setSeed(seed: string): void;
39
+ setProfile(profile: unknown): void;
40
+ setVolume(value: number): void;
41
+ setEnergy(value: number): void;
42
+ setIntensity(value: number): void;
43
+ setMood(mood: string): void;
44
+ setTempoRange(minBpm: number, maxBpm: number): void;
45
+ setMuted(trackId: string, muted: boolean): void;
46
+ setSolo(trackId: string, solo: boolean): void;
47
+ renderTo(output: Float32Array): void;
48
+ snapshot(): unknown;
49
+ events(): unknown[];
50
+ exportMidi(): Uint8Array;
51
+ destroy(): void;
52
+ private get memory();
53
+ private ensureRenderBuffer;
54
+ private writeString;
55
+ private readJson;
56
+ private callCode;
57
+ private assertCode;
58
+ private call;
59
+ private lastError;
60
+ }
61
+ declare class AlgoWasmProcessor extends AudioWorkletProcessor {
62
+ private binding?;
63
+ private playing;
64
+ private scratch;
65
+ private eventCountdown;
66
+ private commandQueue;
67
+ constructor();
68
+ process(_inputs: Float32Array[][], outputs: Float32Array[][], _parameters: Record<string, Float32Array>): boolean;
69
+ private handleCommand;
70
+ private configure;
71
+ private applyCommand;
72
+ private requireBinding;
73
+ private reply;
74
+ }
75
+ declare function instantiateWorkletWasm(url: string | undefined, wasmBytes: ArrayBuffer | undefined): Promise<WebAssembly.Instance>;
76
+ declare function splitSeed(seed: string): {
77
+ high: number;
78
+ low: number;
79
+ };
80
+ declare function clampUnit(value: number): number;
81
+ declare function encodeUtf8(value: string): Uint8Array;
82
+ declare function decodeUtf8(bytes: Uint8Array): string;
83
+ //# sourceMappingURL=algo-worklet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"algo-worklet.d.ts","sourceRoot":"","sources":["../../src/worklet/algo-worklet.ts"],"names":[],"mappings":"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"}