@mcptoolshop/pianoai 1.1.0 → 1.3.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.
Potentially problematic release.
This version of @mcptoolshop/pianoai might be problematic. Click here for more details.
- package/dist/audio-engine.d.ts +9 -0
- package/dist/audio-engine.d.ts.map +1 -0
- package/dist/audio-engine.js +422 -0
- package/dist/audio-engine.js.map +1 -0
- package/dist/cli.js +36 -52
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/mcp-server.js +113 -1
- package/dist/mcp-server.js.map +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/vmpk.d.ts +4 -2
- package/dist/vmpk.d.ts.map +1 -1
- package/dist/vmpk.js +71 -20
- package/dist/vmpk.js.map +1 -1
- package/package.json +6 -6
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { VmpkConnector } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Create the built-in piano engine.
|
|
4
|
+
*
|
|
5
|
+
* Implements VmpkConnector so it's a drop-in replacement anywhere
|
|
6
|
+
* the codebase uses a connector (sessions, CLI, MCP server).
|
|
7
|
+
*/
|
|
8
|
+
export declare function createAudioEngine(): VmpkConnector;
|
|
9
|
+
//# sourceMappingURL=audio-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio-engine.d.ts","sourceRoot":"","sources":["../src/audio-engine.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,YAAY,CAAC;AAqItE;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,aAAa,CAgUjD"}
|
|
@@ -0,0 +1,422 @@
|
|
|
1
|
+
// ─── pianoai: Built-in Piano Engine ──────────────────────────────────────────
|
|
2
|
+
//
|
|
3
|
+
// Quality multi-harmonic piano synthesis using node-web-audio-api.
|
|
4
|
+
// No external software required — npm install gives you everything.
|
|
5
|
+
//
|
|
6
|
+
// Piano model features:
|
|
7
|
+
// - 12 sine partials per voice with inharmonic frequency stretching
|
|
8
|
+
// - Per-partial amplitude envelopes (higher harmonics decay faster)
|
|
9
|
+
// - Velocity-dependent timbre (harder = brighter, more harmonics)
|
|
10
|
+
// - Hammer noise transient (bandpass-filtered noise burst on attack)
|
|
11
|
+
// - Duplex stringing simulation (subtle random detuning per partial)
|
|
12
|
+
// - Stereo imaging (low notes left, high notes right)
|
|
13
|
+
// - DynamicsCompressor for polyphony safety
|
|
14
|
+
// - 48-voice polyphony with LRU voice stealing
|
|
15
|
+
//
|
|
16
|
+
// Usage:
|
|
17
|
+
// const piano = createAudioEngine();
|
|
18
|
+
// await piano.connect();
|
|
19
|
+
// piano.noteOn(60, 100); // middle C, forte
|
|
20
|
+
// piano.noteOff(60);
|
|
21
|
+
// await piano.disconnect();
|
|
22
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
23
|
+
// ─── Lazy Import ────────────────────────────────────────────────────────────
|
|
24
|
+
// Don't load the native binary until the engine is actually used.
|
|
25
|
+
let _AudioContext = null;
|
|
26
|
+
async function loadAudioContext() {
|
|
27
|
+
if (!_AudioContext) {
|
|
28
|
+
const mod = await import("node-web-audio-api");
|
|
29
|
+
_AudioContext = mod.AudioContext;
|
|
30
|
+
}
|
|
31
|
+
return _AudioContext;
|
|
32
|
+
}
|
|
33
|
+
// ─── Piano Physics ──────────────────────────────────────────────────────────
|
|
34
|
+
/** Max partials per voice (bass notes get all, treble gets fewer). */
|
|
35
|
+
const MAX_PARTIALS = 12;
|
|
36
|
+
/** Maximum simultaneous voices before stealing. */
|
|
37
|
+
const MAX_POLYPHONY = 48;
|
|
38
|
+
/** MIDI note → frequency (A4 = 440 Hz). */
|
|
39
|
+
function midiToFreq(note) {
|
|
40
|
+
return 440 * Math.pow(2, (note - 69) / 12);
|
|
41
|
+
}
|
|
42
|
+
/** MIDI note → octave (0–8). */
|
|
43
|
+
function midiToOctave(note) {
|
|
44
|
+
return Math.max(0, Math.min(8, Math.floor(note / 12) - 1));
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Stereo pan: low notes left, high notes right.
|
|
48
|
+
* Mimics sitting at a piano — bass on the left, treble on the right.
|
|
49
|
+
*/
|
|
50
|
+
function noteToPan(note) {
|
|
51
|
+
return Math.max(-0.7, Math.min(0.7, ((note - 21) / 87) * 1.4 - 0.7));
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Inharmonicity coefficient by octave.
|
|
55
|
+
*
|
|
56
|
+
* Piano strings are stiff, not ideal — partials are stretched above
|
|
57
|
+
* pure harmonics. This gives pianos their characteristic shimmer.
|
|
58
|
+
*
|
|
59
|
+
* f_n = n × f₀ × √(1 + B × n²)
|
|
60
|
+
*/
|
|
61
|
+
const B_COEFF = [
|
|
62
|
+
0.00012, // octave 0 (A0 area) — highest inharmonicity
|
|
63
|
+
0.00008, // octave 1
|
|
64
|
+
0.00004, // octave 2
|
|
65
|
+
0.00002, // octave 3
|
|
66
|
+
0.00001, // octave 4 (middle C)
|
|
67
|
+
0.000006, // octave 5
|
|
68
|
+
0.000004, // octave 6
|
|
69
|
+
0.000003, // octave 7
|
|
70
|
+
0.000002, // octave 8
|
|
71
|
+
];
|
|
72
|
+
/** Compute stretched partial frequency with inharmonicity. */
|
|
73
|
+
function partialFreq(fundamental, n, B) {
|
|
74
|
+
return n * fundamental * Math.sqrt(1 + B * n * n);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* How many partials to use for this note.
|
|
78
|
+
* Bass notes have richer harmonic content; treble is simpler.
|
|
79
|
+
*/
|
|
80
|
+
function partialsForNote(midiNote) {
|
|
81
|
+
if (midiNote > 90)
|
|
82
|
+
return 5; // High treble
|
|
83
|
+
if (midiNote > 72)
|
|
84
|
+
return 8; // Upper register
|
|
85
|
+
if (midiNote > 54)
|
|
86
|
+
return 10; // Middle register
|
|
87
|
+
return MAX_PARTIALS; // Bass — full harmonic series
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Amplitude for the nth partial (1-based).
|
|
91
|
+
*
|
|
92
|
+
* Base amplitude follows ~1/n^0.7 with exponential rolloff.
|
|
93
|
+
* Velocity controls brightness: soft = warm, hard = bright.
|
|
94
|
+
*/
|
|
95
|
+
function partialAmplitude(n, velocity01) {
|
|
96
|
+
const base = Math.pow(n, -0.7) * Math.exp(-0.08 * n);
|
|
97
|
+
// Velocity-dependent brightness: high partials only appear at higher velocity
|
|
98
|
+
if (n <= 3)
|
|
99
|
+
return base;
|
|
100
|
+
const brightnessGate = Math.pow(velocity01, 0.3 + (n - 3) * 0.12);
|
|
101
|
+
return base * brightnessGate;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Decay time constant (seconds) for the nth partial at a given MIDI note.
|
|
105
|
+
*
|
|
106
|
+
* Higher partials decay much faster than the fundamental.
|
|
107
|
+
* Lower notes ring longer than higher notes.
|
|
108
|
+
*/
|
|
109
|
+
function partialDecayTime(n, midiNote) {
|
|
110
|
+
// Base decay for fundamental: 3s (treble) to 15s (bass)
|
|
111
|
+
const registerFactor = 1.0 - (midiNote - 21) / 87;
|
|
112
|
+
const baseFundamental = 3 + registerFactor * 12;
|
|
113
|
+
// Higher partials: decay ∝ 1/n^0.8
|
|
114
|
+
return baseFundamental * Math.pow(n, -0.8);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Attack time based on velocity.
|
|
118
|
+
* Harder strikes = shorter hammer pulse = sharper attack.
|
|
119
|
+
*/
|
|
120
|
+
function attackTime(velocity01) {
|
|
121
|
+
return 0.002 + (1 - velocity01) * 0.008; // 2ms (ff) to 10ms (pp)
|
|
122
|
+
}
|
|
123
|
+
// ─── Engine ─────────────────────────────────────────────────────────────────
|
|
124
|
+
/**
|
|
125
|
+
* Create the built-in piano engine.
|
|
126
|
+
*
|
|
127
|
+
* Implements VmpkConnector so it's a drop-in replacement anywhere
|
|
128
|
+
* the codebase uses a connector (sessions, CLI, MCP server).
|
|
129
|
+
*/
|
|
130
|
+
export function createAudioEngine() {
|
|
131
|
+
let ctx = null;
|
|
132
|
+
let currentStatus = "disconnected";
|
|
133
|
+
let compressor = null;
|
|
134
|
+
let master = null;
|
|
135
|
+
const activeVoices = new Map();
|
|
136
|
+
const voiceOrder = []; // LRU tracking for voice stealing
|
|
137
|
+
// ── Noise buffer (shared across all voices) ──
|
|
138
|
+
let hammerNoiseBuffer = null;
|
|
139
|
+
function ensureConnected() {
|
|
140
|
+
if (!ctx || currentStatus !== "connected") {
|
|
141
|
+
throw new Error("Piano engine not connected");
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/** Create a reusable noise buffer for hammer transients. */
|
|
145
|
+
function createHammerNoiseBuffer() {
|
|
146
|
+
const durationMs = 40;
|
|
147
|
+
const length = Math.ceil((durationMs / 1000) * ctx.sampleRate);
|
|
148
|
+
hammerNoiseBuffer = ctx.createBuffer(1, length, ctx.sampleRate);
|
|
149
|
+
const data = new Float32Array(length);
|
|
150
|
+
for (let i = 0; i < length; i++) {
|
|
151
|
+
data[i] = Math.random() * 2 - 1;
|
|
152
|
+
}
|
|
153
|
+
hammerNoiseBuffer.copyToChannel(data, 0);
|
|
154
|
+
}
|
|
155
|
+
/** Synthesize a single piano voice. */
|
|
156
|
+
function createVoice(note, velocity) {
|
|
157
|
+
const velocity01 = Math.max(0.01, Math.min(1.0, velocity / 127));
|
|
158
|
+
const freq = midiToFreq(note);
|
|
159
|
+
const octave = midiToOctave(note);
|
|
160
|
+
const B = B_COEFF[octave] ?? 0.000003;
|
|
161
|
+
const now = ctx.currentTime;
|
|
162
|
+
const attack = attackTime(velocity01);
|
|
163
|
+
const numPartials = partialsForNote(note);
|
|
164
|
+
// ── Master gain: constant volume (per-partial gains shape the envelope) ──
|
|
165
|
+
const voiceMaster = ctx.createGain();
|
|
166
|
+
voiceMaster.gain.value = velocity01 * 0.25;
|
|
167
|
+
// ── Stereo panner ──
|
|
168
|
+
const panner = ctx.createStereoPanner();
|
|
169
|
+
panner.pan.value = noteToPan(note);
|
|
170
|
+
voiceMaster.connect(panner);
|
|
171
|
+
panner.connect(compressor);
|
|
172
|
+
// ── Sine partials with per-partial envelopes ──
|
|
173
|
+
const oscillators = [];
|
|
174
|
+
const partialGains = [];
|
|
175
|
+
for (let n = 1; n <= numPartials; n++) {
|
|
176
|
+
const pFreq = partialFreq(freq, n, B);
|
|
177
|
+
if (pFreq > 18000)
|
|
178
|
+
break; // Near hearing limit
|
|
179
|
+
const osc = ctx.createOscillator();
|
|
180
|
+
osc.type = "sine";
|
|
181
|
+
osc.frequency.value = pFreq;
|
|
182
|
+
// Duplex stringing: subtle random detuning for warmth
|
|
183
|
+
osc.detune.value = (Math.random() - 0.5) * 3; // ±1.5 cents
|
|
184
|
+
const gain = ctx.createGain();
|
|
185
|
+
const amp = partialAmplitude(n, velocity01);
|
|
186
|
+
const decay = partialDecayTime(n, note);
|
|
187
|
+
// Envelope: silence → attack → exponential decay
|
|
188
|
+
gain.gain.setValueAtTime(0, now);
|
|
189
|
+
gain.gain.linearRampToValueAtTime(amp, now + attack);
|
|
190
|
+
// Exponential decay toward near-zero
|
|
191
|
+
gain.gain.setTargetAtTime(0.0001, now + attack, decay);
|
|
192
|
+
osc.connect(gain);
|
|
193
|
+
gain.connect(voiceMaster);
|
|
194
|
+
osc.start(now);
|
|
195
|
+
oscillators.push(osc);
|
|
196
|
+
partialGains.push(gain);
|
|
197
|
+
}
|
|
198
|
+
// ── Hammer noise transient ──
|
|
199
|
+
let noiseSource = null;
|
|
200
|
+
if (hammerNoiseBuffer) {
|
|
201
|
+
noiseSource = ctx.createBufferSource();
|
|
202
|
+
noiseSource.buffer = hammerNoiseBuffer;
|
|
203
|
+
// Bandpass near note frequency — gives the attack a tonal character
|
|
204
|
+
const noiseFilter = ctx.createBiquadFilter();
|
|
205
|
+
noiseFilter.type = "bandpass";
|
|
206
|
+
noiseFilter.frequency.value = Math.min(freq * 2.5, 10000);
|
|
207
|
+
noiseFilter.Q.value = 0.5 + velocity01 * 2.5;
|
|
208
|
+
// Quick envelope: burst then silence
|
|
209
|
+
const noiseGain = ctx.createGain();
|
|
210
|
+
const noiseAmp = velocity01 * 0.2;
|
|
211
|
+
noiseGain.gain.setValueAtTime(noiseAmp, now);
|
|
212
|
+
noiseGain.gain.exponentialRampToValueAtTime(0.001, now + 0.025);
|
|
213
|
+
noiseSource.connect(noiseFilter);
|
|
214
|
+
noiseFilter.connect(noiseGain);
|
|
215
|
+
noiseGain.connect(voiceMaster);
|
|
216
|
+
noiseSource.start(now);
|
|
217
|
+
}
|
|
218
|
+
return {
|
|
219
|
+
note,
|
|
220
|
+
oscillators,
|
|
221
|
+
partialGains,
|
|
222
|
+
masterGain: voiceMaster,
|
|
223
|
+
panner,
|
|
224
|
+
noiseSource,
|
|
225
|
+
startTime: now,
|
|
226
|
+
released: false,
|
|
227
|
+
cleanupTimer: null,
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
/** Release a voice (damper engages — fast fade out). */
|
|
231
|
+
function releaseVoice(voice) {
|
|
232
|
+
if (voice.released)
|
|
233
|
+
return;
|
|
234
|
+
voice.released = true;
|
|
235
|
+
const now = ctx.currentTime;
|
|
236
|
+
const releaseTime = 0.12; // 120ms damper release
|
|
237
|
+
// Cancel ongoing scheduled values and fade to silence
|
|
238
|
+
for (const g of voice.partialGains) {
|
|
239
|
+
g.gain.cancelScheduledValues(now);
|
|
240
|
+
g.gain.setValueAtTime(g.gain.value, now);
|
|
241
|
+
g.gain.linearRampToValueAtTime(0, now + releaseTime);
|
|
242
|
+
}
|
|
243
|
+
// Schedule full cleanup after release completes
|
|
244
|
+
voice.cleanupTimer = setTimeout(() => killVoice(voice), (releaseTime + 0.05) * 1000);
|
|
245
|
+
}
|
|
246
|
+
/** Immediately destroy a voice and free resources. */
|
|
247
|
+
function killVoice(voice) {
|
|
248
|
+
if (voice.cleanupTimer) {
|
|
249
|
+
clearTimeout(voice.cleanupTimer);
|
|
250
|
+
voice.cleanupTimer = null;
|
|
251
|
+
}
|
|
252
|
+
for (const osc of voice.oscillators) {
|
|
253
|
+
try {
|
|
254
|
+
osc.stop();
|
|
255
|
+
osc.disconnect();
|
|
256
|
+
}
|
|
257
|
+
catch {
|
|
258
|
+
/* already stopped */
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
for (const g of voice.partialGains) {
|
|
262
|
+
try {
|
|
263
|
+
g.disconnect();
|
|
264
|
+
}
|
|
265
|
+
catch {
|
|
266
|
+
/* ok */
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
if (voice.noiseSource) {
|
|
270
|
+
try {
|
|
271
|
+
voice.noiseSource.stop();
|
|
272
|
+
voice.noiseSource.disconnect();
|
|
273
|
+
}
|
|
274
|
+
catch {
|
|
275
|
+
/* ok */
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
try {
|
|
279
|
+
voice.masterGain.disconnect();
|
|
280
|
+
}
|
|
281
|
+
catch {
|
|
282
|
+
/* ok */
|
|
283
|
+
}
|
|
284
|
+
try {
|
|
285
|
+
voice.panner.disconnect();
|
|
286
|
+
}
|
|
287
|
+
catch {
|
|
288
|
+
/* ok */
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
/** Steal the oldest voice when at max polyphony. */
|
|
292
|
+
function stealOldest() {
|
|
293
|
+
if (voiceOrder.length === 0)
|
|
294
|
+
return;
|
|
295
|
+
const oldestNote = voiceOrder.shift();
|
|
296
|
+
const voice = activeVoices.get(oldestNote);
|
|
297
|
+
if (voice) {
|
|
298
|
+
killVoice(voice);
|
|
299
|
+
activeVoices.delete(oldestNote);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
/** Remove a note from the LRU order. */
|
|
303
|
+
function removeFromOrder(note) {
|
|
304
|
+
const idx = voiceOrder.indexOf(note);
|
|
305
|
+
if (idx >= 0)
|
|
306
|
+
voiceOrder.splice(idx, 1);
|
|
307
|
+
}
|
|
308
|
+
// ── VmpkConnector Implementation ──
|
|
309
|
+
return {
|
|
310
|
+
async connect() {
|
|
311
|
+
if (currentStatus === "connected")
|
|
312
|
+
return;
|
|
313
|
+
currentStatus = "connecting";
|
|
314
|
+
try {
|
|
315
|
+
const AC = await loadAudioContext();
|
|
316
|
+
ctx = new AC({ latencyHint: "playback" });
|
|
317
|
+
// Master chain: compressor → gain → speakers
|
|
318
|
+
compressor = ctx.createDynamicsCompressor();
|
|
319
|
+
compressor.threshold.value = -15;
|
|
320
|
+
compressor.knee.value = 12;
|
|
321
|
+
compressor.ratio.value = 6;
|
|
322
|
+
compressor.attack.value = 0.003;
|
|
323
|
+
compressor.release.value = 0.2;
|
|
324
|
+
master = ctx.createGain();
|
|
325
|
+
master.gain.value = 0.85;
|
|
326
|
+
compressor.connect(master);
|
|
327
|
+
master.connect(ctx.destination);
|
|
328
|
+
// Pre-generate shared noise buffer
|
|
329
|
+
createHammerNoiseBuffer();
|
|
330
|
+
currentStatus = "connected";
|
|
331
|
+
console.error("Piano engine connected (built-in audio)");
|
|
332
|
+
}
|
|
333
|
+
catch (err) {
|
|
334
|
+
currentStatus = "error";
|
|
335
|
+
throw new Error(`Failed to start piano engine: ${err instanceof Error ? err.message : String(err)}`);
|
|
336
|
+
}
|
|
337
|
+
},
|
|
338
|
+
async disconnect() {
|
|
339
|
+
// Kill all active voices
|
|
340
|
+
for (const [, voice] of activeVoices) {
|
|
341
|
+
try {
|
|
342
|
+
killVoice(voice);
|
|
343
|
+
}
|
|
344
|
+
catch {
|
|
345
|
+
/* ok */
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
activeVoices.clear();
|
|
349
|
+
voiceOrder.length = 0;
|
|
350
|
+
if (ctx) {
|
|
351
|
+
try {
|
|
352
|
+
await ctx.close();
|
|
353
|
+
}
|
|
354
|
+
catch {
|
|
355
|
+
/* ok */
|
|
356
|
+
}
|
|
357
|
+
ctx = null;
|
|
358
|
+
compressor = null;
|
|
359
|
+
master = null;
|
|
360
|
+
hammerNoiseBuffer = null;
|
|
361
|
+
}
|
|
362
|
+
currentStatus = "disconnected";
|
|
363
|
+
},
|
|
364
|
+
status() {
|
|
365
|
+
return currentStatus;
|
|
366
|
+
},
|
|
367
|
+
listPorts() {
|
|
368
|
+
return ["Built-in Piano"];
|
|
369
|
+
},
|
|
370
|
+
noteOn(note, velocity, channel) {
|
|
371
|
+
ensureConnected();
|
|
372
|
+
// Kill existing voice on same note (retrigger)
|
|
373
|
+
const existing = activeVoices.get(note);
|
|
374
|
+
if (existing) {
|
|
375
|
+
killVoice(existing);
|
|
376
|
+
activeVoices.delete(note);
|
|
377
|
+
removeFromOrder(note);
|
|
378
|
+
}
|
|
379
|
+
// Voice stealing if at capacity
|
|
380
|
+
while (activeVoices.size >= MAX_POLYPHONY) {
|
|
381
|
+
stealOldest();
|
|
382
|
+
}
|
|
383
|
+
const voice = createVoice(note, velocity);
|
|
384
|
+
activeVoices.set(note, voice);
|
|
385
|
+
voiceOrder.push(note);
|
|
386
|
+
},
|
|
387
|
+
noteOff(note, channel) {
|
|
388
|
+
if (!ctx || currentStatus !== "connected")
|
|
389
|
+
return;
|
|
390
|
+
const voice = activeVoices.get(note);
|
|
391
|
+
if (voice) {
|
|
392
|
+
releaseVoice(voice);
|
|
393
|
+
activeVoices.delete(note);
|
|
394
|
+
removeFromOrder(note);
|
|
395
|
+
}
|
|
396
|
+
},
|
|
397
|
+
allNotesOff(channel) {
|
|
398
|
+
if (!ctx)
|
|
399
|
+
return;
|
|
400
|
+
for (const [, voice] of activeVoices) {
|
|
401
|
+
killVoice(voice);
|
|
402
|
+
}
|
|
403
|
+
activeVoices.clear();
|
|
404
|
+
voiceOrder.length = 0;
|
|
405
|
+
},
|
|
406
|
+
async playNote(midiNote) {
|
|
407
|
+
if (midiNote.note < 0) {
|
|
408
|
+
// Rest — just wait
|
|
409
|
+
await sleep(midiNote.durationMs);
|
|
410
|
+
return;
|
|
411
|
+
}
|
|
412
|
+
this.noteOn(midiNote.note, midiNote.velocity, midiNote.channel);
|
|
413
|
+
await sleep(midiNote.durationMs);
|
|
414
|
+
this.noteOff(midiNote.note, midiNote.channel);
|
|
415
|
+
},
|
|
416
|
+
};
|
|
417
|
+
}
|
|
418
|
+
// ─── Helpers ────────────────────────────────────────────────────────────────
|
|
419
|
+
function sleep(ms) {
|
|
420
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
421
|
+
}
|
|
422
|
+
//# sourceMappingURL=audio-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio-engine.js","sourceRoot":"","sources":["../src/audio-engine.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
// ─── pianoai: CLI Entry Point ─────────────────────────────────────
|
|
3
3
|
//
|
|
4
4
|
// Usage:
|
|
5
|
-
// pianoai #
|
|
5
|
+
// pianoai # Show help
|
|
6
6
|
// pianoai list # List all songs
|
|
7
7
|
// pianoai list --genre jazz # List songs by genre
|
|
8
|
-
// pianoai play <song-id> # Play a
|
|
8
|
+
// pianoai play <song-id> # Play a song (built-in piano engine)
|
|
9
|
+
// pianoai play <song-id> --midi # Play via MIDI output
|
|
9
10
|
// pianoai sing <song-id> # Sing along — narrate notes during playback
|
|
10
|
-
// pianoai info <song-id> # Show song details
|
|
11
|
+
// pianoai info <song-id> # Show song details
|
|
11
12
|
// pianoai stats # Registry stats
|
|
12
13
|
// pianoai ports # List available MIDI ports
|
|
13
|
-
//
|
|
14
|
-
// Requires: loopMIDI running + VMPK listening on the loopMIDI port.
|
|
15
14
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
16
15
|
import { getAllSongs, getSong, getSongsByGenre, getStats, GENRES, } from "@mcptoolshop/ai-music-sheets";
|
|
16
|
+
import { createAudioEngine } from "./audio-engine.js";
|
|
17
17
|
import { createVmpkConnector } from "./vmpk.js";
|
|
18
18
|
import { createSession } from "./session.js";
|
|
19
19
|
import { createConsoleTeachingHook, createSingAlongHook, createLiveFeedbackHook, composeTeachingHooks, } from "./teaching.js";
|
|
@@ -114,7 +114,7 @@ function cmdInfo(args) {
|
|
|
114
114
|
async function cmdPlay(args) {
|
|
115
115
|
const songId = args[0];
|
|
116
116
|
if (!songId) {
|
|
117
|
-
console.error("Usage: pianoai play <song-id> [--tempo N] [--speed N] [--mode MODE]");
|
|
117
|
+
console.error("Usage: pianoai play <song-id> [--tempo N] [--speed N] [--mode MODE] [--midi]");
|
|
118
118
|
process.exit(1);
|
|
119
119
|
}
|
|
120
120
|
const song = getSong(songId);
|
|
@@ -123,6 +123,7 @@ async function cmdPlay(args) {
|
|
|
123
123
|
process.exit(1);
|
|
124
124
|
}
|
|
125
125
|
// Parse flags
|
|
126
|
+
const useMidi = hasFlag(args, "--midi");
|
|
126
127
|
const portName = getFlag(args, "--port") ?? undefined;
|
|
127
128
|
const tempoStr = getFlag(args, "--tempo");
|
|
128
129
|
const speedStr = getFlag(args, "--speed");
|
|
@@ -145,8 +146,11 @@ async function cmdPlay(args) {
|
|
|
145
146
|
console.error(`Invalid tempo: "${tempoStr}". Must be between 10 and 400 BPM.`);
|
|
146
147
|
process.exit(1);
|
|
147
148
|
}
|
|
148
|
-
|
|
149
|
-
const connector =
|
|
149
|
+
// Create connector: built-in piano engine or MIDI output
|
|
150
|
+
const connector = useMidi
|
|
151
|
+
? createVmpkConnector(portName ? { portName } : undefined)
|
|
152
|
+
: createAudioEngine();
|
|
153
|
+
console.log(useMidi ? `\nConnecting to MIDI...` : `\nStarting piano...`);
|
|
150
154
|
try {
|
|
151
155
|
await connector.connect();
|
|
152
156
|
console.log(`Connected!`);
|
|
@@ -181,20 +185,7 @@ async function cmdPlay(args) {
|
|
|
181
185
|
}
|
|
182
186
|
catch (err) {
|
|
183
187
|
const msg = err instanceof Error ? err.message : String(err);
|
|
184
|
-
|
|
185
|
-
if (msg.includes("Failed to connect to MIDI") || msg.includes("MIDI port not connected")) {
|
|
186
|
-
console.error(`\n❌ MIDI Connection Failed`);
|
|
187
|
-
console.error(`\nTo play through VMPK, you need:`);
|
|
188
|
-
console.error(` 1. loopMIDI running with a virtual port (e.g. "loopMIDI Port")`);
|
|
189
|
-
console.error(` → Download: https://www.tobias-erichsen.de/software/loopmidi.html`);
|
|
190
|
-
console.error(` 2. VMPK listening on that port`);
|
|
191
|
-
console.error(` → Download: https://vmpk.sourceforge.io/`);
|
|
192
|
-
console.error(` → VMPK → Edit → MIDI Connections → Input: "loopMIDI Port"`);
|
|
193
|
-
console.error(`\nDetailed error: ${msg}`);
|
|
194
|
-
}
|
|
195
|
-
else {
|
|
196
|
-
console.error(`\nError: ${msg}`);
|
|
197
|
-
}
|
|
188
|
+
console.error(`\nError: ${msg}`);
|
|
198
189
|
process.exit(1);
|
|
199
190
|
}
|
|
200
191
|
finally {
|
|
@@ -204,7 +195,7 @@ async function cmdPlay(args) {
|
|
|
204
195
|
async function cmdSing(args) {
|
|
205
196
|
const songId = args[0];
|
|
206
197
|
if (!songId) {
|
|
207
|
-
console.error("Usage: pianoai sing <song-id> [--mode note-names|solfege|contour|syllables] [--hand right|left|both] [--speed N] [--tempo N] [--with-piano] [--sync concurrent|before]");
|
|
198
|
+
console.error("Usage: pianoai sing <song-id> [--mode note-names|solfege|contour|syllables] [--hand right|left|both] [--speed N] [--tempo N] [--with-piano] [--sync concurrent|before] [--midi]");
|
|
208
199
|
process.exit(1);
|
|
209
200
|
}
|
|
210
201
|
const song = getSong(songId);
|
|
@@ -213,6 +204,7 @@ async function cmdSing(args) {
|
|
|
213
204
|
process.exit(1);
|
|
214
205
|
}
|
|
215
206
|
// Parse flags
|
|
207
|
+
const useMidi = hasFlag(args, "--midi");
|
|
216
208
|
const portName = getFlag(args, "--port") ?? undefined;
|
|
217
209
|
const tempoStr = getFlag(args, "--tempo");
|
|
218
210
|
const speedStr = getFlag(args, "--speed");
|
|
@@ -250,8 +242,11 @@ async function cmdSing(args) {
|
|
|
250
242
|
console.error(`Invalid tempo: "${tempoStr}". Must be between 10 and 400 BPM.`);
|
|
251
243
|
process.exit(1);
|
|
252
244
|
}
|
|
253
|
-
|
|
254
|
-
const connector =
|
|
245
|
+
// Create connector: built-in piano engine or MIDI output
|
|
246
|
+
const connector = useMidi
|
|
247
|
+
? createVmpkConnector(portName ? { portName } : undefined)
|
|
248
|
+
: createAudioEngine();
|
|
249
|
+
console.log(useMidi ? `\nConnecting to MIDI...` : `\nStarting piano...`);
|
|
255
250
|
try {
|
|
256
251
|
await connector.connect();
|
|
257
252
|
console.log(`Connected!`);
|
|
@@ -312,19 +307,7 @@ async function cmdSing(args) {
|
|
|
312
307
|
}
|
|
313
308
|
catch (err) {
|
|
314
309
|
const msg = err instanceof Error ? err.message : String(err);
|
|
315
|
-
|
|
316
|
-
console.error(`\n❌ MIDI Connection Failed`);
|
|
317
|
-
console.error(`\nTo play through VMPK, you need:`);
|
|
318
|
-
console.error(` 1. loopMIDI running with a virtual port (e.g. "loopMIDI Port")`);
|
|
319
|
-
console.error(` → Download: https://www.tobias-erichsen.de/software/loopmidi.html`);
|
|
320
|
-
console.error(` 2. VMPK listening on that port`);
|
|
321
|
-
console.error(` → Download: https://vmpk.sourceforge.io/`);
|
|
322
|
-
console.error(` → VMPK → Edit → MIDI Connections → Input: "loopMIDI Port"`);
|
|
323
|
-
console.error(`\nDetailed error: ${msg}`);
|
|
324
|
-
}
|
|
325
|
-
else {
|
|
326
|
-
console.error(`\nError: ${msg}`);
|
|
327
|
-
}
|
|
310
|
+
console.error(`\nError: ${msg}`);
|
|
328
311
|
process.exit(1);
|
|
329
312
|
}
|
|
330
313
|
finally {
|
|
@@ -357,43 +340,44 @@ function cmdPorts() {
|
|
|
357
340
|
}
|
|
358
341
|
function cmdHelp() {
|
|
359
342
|
console.log(`
|
|
360
|
-
pianoai —
|
|
343
|
+
pianoai — Play piano through your speakers
|
|
361
344
|
|
|
362
345
|
Commands:
|
|
363
346
|
list [--genre <genre>] List available songs
|
|
364
|
-
info <song-id> Show song details
|
|
365
|
-
play <song-id> [options] Play a song
|
|
347
|
+
info <song-id> Show song details
|
|
348
|
+
play <song-id> [options] Play a song
|
|
366
349
|
sing <song-id> [options] Sing along — narrate notes during playback
|
|
367
350
|
stats Registry statistics
|
|
368
351
|
ports List MIDI output ports
|
|
369
352
|
help Show this help
|
|
370
353
|
|
|
371
354
|
Play options:
|
|
372
|
-
--port <name> MIDI port name (default: auto-detect loopMIDI)
|
|
373
355
|
--tempo <bpm> Override tempo (10-400 BPM)
|
|
374
356
|
--speed <mult> Speed multiplier (0.5 = half, 1.0 = normal, 2.0 = double)
|
|
375
357
|
--mode <mode> Playback mode: full, measure, hands, loop
|
|
358
|
+
--midi Output via MIDI instead of built-in piano
|
|
359
|
+
--port <name> MIDI port name (with --midi)
|
|
376
360
|
|
|
377
361
|
Sing options:
|
|
378
|
-
--port <name> MIDI port name (default: auto-detect loopMIDI)
|
|
379
362
|
--tempo <bpm> Override tempo (10-400 BPM)
|
|
380
363
|
--speed <mult> Speed multiplier (0.5 = half, 1.0 = normal, 2.0 = double)
|
|
381
364
|
--mode <mode> Sing-along mode: note-names, solfege, contour, syllables
|
|
382
365
|
--hand <hand> Which hand: right, left, both
|
|
383
366
|
--with-piano Play piano accompaniment while singing
|
|
384
367
|
--sync <mode> Voice+piano sync: concurrent (default), before
|
|
368
|
+
--midi Output via MIDI instead of built-in piano
|
|
369
|
+
--port <name> MIDI port name (with --midi)
|
|
385
370
|
|
|
386
371
|
Examples:
|
|
387
|
-
pianoai
|
|
388
|
-
pianoai
|
|
389
|
-
pianoai play
|
|
390
|
-
pianoai play
|
|
391
|
-
pianoai play let-it-be --
|
|
392
|
-
pianoai
|
|
393
|
-
pianoai sing
|
|
394
|
-
pianoai sing fur-elise --mode solfege --hand both # solfege, both hands
|
|
372
|
+
pianoai play let-it-be # play through speakers
|
|
373
|
+
pianoai play moonlight-sonata-mvt1 --tempo 48 # slow tempo
|
|
374
|
+
pianoai play let-it-be --speed 0.5 # half speed
|
|
375
|
+
pianoai play dream-on --speed 0.75 --mode hands # hands separate
|
|
376
|
+
pianoai play let-it-be --midi # play via MIDI output
|
|
377
|
+
pianoai sing let-it-be --mode note-names # narrate note names
|
|
378
|
+
pianoai sing fur-elise --mode solfege --hand both # solfege, both hands
|
|
395
379
|
pianoai sing let-it-be --with-piano # sing + piano together
|
|
396
|
-
pianoai
|
|
380
|
+
pianoai list --genre jazz # browse jazz songs
|
|
397
381
|
`);
|
|
398
382
|
}
|
|
399
383
|
// ─── CLI Router ─────────────────────────────────────────────────────────────
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { getAllSongs, getSong, getSongsByGenre, getSongsByDifficulty, searchSongs, getStats, GENRES, DIFFICULTIES, } from "@mcptoolshop/ai-music-sheets";
|
|
2
2
|
export type { SongEntry, Measure, MusicalLanguage, Genre, Difficulty, } from "@mcptoolshop/ai-music-sheets";
|
|
3
3
|
export { createSession, SessionController } from "./session.js";
|
|
4
|
+
export { createAudioEngine } from "./audio-engine.js";
|
|
4
5
|
export { createVmpkConnector, createMockVmpkConnector } from "./vmpk.js";
|
|
5
6
|
export { parseNoteToMidi, parseDuration, durationToMs, parseNoteToken, parseHandString, parseMeasure, safeParseNoteToken, safeParseHandString, safeParseMeasure, midiToNoteName, noteToSingable, handToSingableText, measureToSingableText, } from "./note-parser.js";
|
|
6
7
|
export type { SingAlongMode, SingAlongTextOptions } from "./note-parser.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,WAAW,EACX,OAAO,EACP,eAAe,EACf,oBAAoB,EACpB,WAAW,EACX,QAAQ,EACR,MAAM,EACN,YAAY,GACb,MAAM,8BAA8B,CAAC;AAEtC,YAAY,EACV,SAAS,EACT,OAAO,EACP,eAAe,EACf,KAAK,EACL,UAAU,GACX,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGhE,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAGzE,OAAO,EACL,eAAe,EACf,aAAa,EACb,YAAY,EACZ,cAAc,EACd,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAG5E,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC1B,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAGvB,YAAY,EACV,OAAO,EACP,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EACR,IAAI,EACJ,eAAe,EACf,UAAU,EACV,UAAU,EACV,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,cAAc,EACd,SAAS,EACT,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,WAAW,EACX,OAAO,EACP,eAAe,EACf,oBAAoB,EACpB,WAAW,EACX,QAAQ,EACR,MAAM,EACN,YAAY,GACb,MAAM,8BAA8B,CAAC;AAEtC,YAAY,EACV,SAAS,EACT,OAAO,EACP,eAAe,EACf,KAAK,EACL,UAAU,GACX,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAGzE,OAAO,EACL,eAAe,EACf,aAAa,EACb,YAAY,EACZ,cAAc,EACd,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAG5E,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC1B,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAGvB,YAAY,EACV,OAAO,EACP,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EACR,IAAI,EACJ,eAAe,EACf,UAAU,EACV,UAAU,EACV,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,cAAc,EACd,SAAS,EACT,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
// ─── pianoai ────────────────────────────────────────────────────────────────
|
|
2
2
|
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
3
|
+
// Piano player — plays songs through speakers or MIDI.
|
|
4
|
+
// Built-in piano engine included. No external software required.
|
|
5
5
|
//
|
|
6
6
|
// Usage:
|
|
7
|
-
// import { createSession,
|
|
7
|
+
// import { createSession, createAudioEngine } from "@mcptoolshop/pianoai";
|
|
8
8
|
// import { getSong } from "@mcptoolshop/ai-music-sheets";
|
|
9
9
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
10
10
|
// Re-export ai-music-sheets for convenience
|
|
11
11
|
export { getAllSongs, getSong, getSongsByGenre, getSongsByDifficulty, searchSongs, getStats, GENRES, DIFFICULTIES, } from "@mcptoolshop/ai-music-sheets";
|
|
12
12
|
// Export session engine
|
|
13
13
|
export { createSession, SessionController } from "./session.js";
|
|
14
|
-
// Export
|
|
14
|
+
// Export piano engine (built-in audio — plays through speakers)
|
|
15
|
+
export { createAudioEngine } from "./audio-engine.js";
|
|
16
|
+
// Export MIDI connector (optional — for routing to external MIDI software)
|
|
15
17
|
export { createVmpkConnector, createMockVmpkConnector } from "./vmpk.js";
|
|
16
18
|
// Export note parser
|
|
17
19
|
export { parseNoteToMidi, parseDuration, durationToMs, parseNoteToken, parseHandString, parseMeasure, safeParseNoteToken, safeParseHandString, safeParseMeasure, midiToNoteName, noteToSingable, handToSingableText, measureToSingableText, } from "./note-parser.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,EAAE;AACF,uDAAuD;AACvD,iEAAiE;AACjE,EAAE;AACF,SAAS;AACT,6EAA6E;AAC7E,4DAA4D;AAC5D,gFAAgF;AAEhF,4CAA4C;AAC5C,OAAO,EACL,WAAW,EACX,OAAO,EACP,eAAe,EACf,oBAAoB,EACpB,WAAW,EACX,QAAQ,EACR,MAAM,EACN,YAAY,GACb,MAAM,8BAA8B,CAAC;AAUtC,wBAAwB;AACxB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEhE,gEAAgE;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,2EAA2E;AAC3E,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEzE,qBAAqB;AACrB,OAAO,EACL,eAAe,EACf,aAAa,EACb,YAAY,EACZ,cAAc,EACd,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAI1B,yBAAyB;AACzB,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC1B,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAoCvB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/mcp-server.js
CHANGED
|
@@ -17,12 +17,17 @@
|
|
|
17
17
|
// list_measures — overview of measures with teaching notes
|
|
18
18
|
// practice_setup — suggest speed, mode, and voice settings for a song
|
|
19
19
|
// sing_along — get singable text (note names/solfege/contour/syllables) for measures
|
|
20
|
+
// play_song — play a song through VMPK via MIDI
|
|
21
|
+
// stop_playback — stop the currently playing song
|
|
20
22
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
21
23
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
22
24
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
23
25
|
import { z } from "zod";
|
|
24
26
|
import { getSong, searchSongs, getStats, GENRES, DIFFICULTIES, } from "@mcptoolshop/ai-music-sheets";
|
|
25
27
|
import { safeParseMeasure, measureToSingableText } from "./note-parser.js";
|
|
28
|
+
import { createAudioEngine } from "./audio-engine.js";
|
|
29
|
+
import { createSession } from "./session.js";
|
|
30
|
+
import { createConsoleTeachingHook } from "./teaching.js";
|
|
26
31
|
// ─── Helpers ────────────────────────────────────────────────────────────────
|
|
27
32
|
/** Suggest practice speed based on song difficulty. */
|
|
28
33
|
function suggestSpeed(difficulty) {
|
|
@@ -49,7 +54,7 @@ function suggestMode(difficulty) {
|
|
|
49
54
|
// ─── Server ─────────────────────────────────────────────────────────────────
|
|
50
55
|
const server = new McpServer({
|
|
51
56
|
name: "pianoai",
|
|
52
|
-
version: "1.
|
|
57
|
+
version: "1.2.0",
|
|
53
58
|
});
|
|
54
59
|
// ─── Tool: list_songs ───────────────────────────────────────────────────────
|
|
55
60
|
server.tool("list_songs", "Browse and search the piano song library. Filter by genre, difficulty, or search query.", {
|
|
@@ -362,6 +367,113 @@ server.tool("sing_along", "Get singable text (note names, solfege, contour, or s
|
|
|
362
367
|
}
|
|
363
368
|
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
364
369
|
});
|
|
370
|
+
// ─── Active Session State ─────────────────────────────────────────────────
|
|
371
|
+
let activeSession = null;
|
|
372
|
+
// ─── Tool: play_song ──────────────────────────────────────────────────────
|
|
373
|
+
server.tool("play_song", "Play a song through the built-in piano engine. Returns immediately with session info while playback runs in the background.", {
|
|
374
|
+
id: z.string().describe("Song ID (e.g. 'autumn-leaves', 'let-it-be')"),
|
|
375
|
+
speed: z.number().min(0.1).max(4).optional().describe("Speed multiplier (0.5 = half speed, 1.0 = normal, 2.0 = double). Default: 1.0"),
|
|
376
|
+
tempo: z.number().int().min(10).max(400).optional().describe("Override tempo in BPM (10-400). Default: song's tempo"),
|
|
377
|
+
mode: z.enum(["full", "measure", "hands", "loop"]).optional().describe("Playback mode: full (default), measure (one at a time), hands (separate then together), loop"),
|
|
378
|
+
startMeasure: z.number().int().min(1).optional().describe("Start measure for loop mode (1-based)"),
|
|
379
|
+
endMeasure: z.number().int().min(1).optional().describe("End measure for loop mode (1-based)"),
|
|
380
|
+
}, async ({ id, speed, tempo, mode, startMeasure, endMeasure }) => {
|
|
381
|
+
const song = getSong(id);
|
|
382
|
+
if (!song) {
|
|
383
|
+
return {
|
|
384
|
+
content: [{ type: "text", text: `Song not found: "${id}". Use list_songs to see available songs.` }],
|
|
385
|
+
isError: true,
|
|
386
|
+
};
|
|
387
|
+
}
|
|
388
|
+
// Stop any active session first
|
|
389
|
+
if (activeSession && activeSession.state === "playing") {
|
|
390
|
+
activeSession.stop();
|
|
391
|
+
}
|
|
392
|
+
// Connect piano engine
|
|
393
|
+
const connector = createAudioEngine();
|
|
394
|
+
try {
|
|
395
|
+
await connector.connect();
|
|
396
|
+
}
|
|
397
|
+
catch (err) {
|
|
398
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
399
|
+
return {
|
|
400
|
+
content: [{
|
|
401
|
+
type: "text",
|
|
402
|
+
text: `Piano engine failed to start: ${msg}`,
|
|
403
|
+
}],
|
|
404
|
+
isError: true,
|
|
405
|
+
};
|
|
406
|
+
}
|
|
407
|
+
// Build loop range if specified
|
|
408
|
+
const loopRange = startMeasure && endMeasure ? [startMeasure, endMeasure] : undefined;
|
|
409
|
+
// Create session
|
|
410
|
+
const playbackMode = (mode ?? "full");
|
|
411
|
+
const teachingHook = createConsoleTeachingHook();
|
|
412
|
+
const session = createSession(song, connector, {
|
|
413
|
+
mode: playbackMode,
|
|
414
|
+
speed,
|
|
415
|
+
tempo,
|
|
416
|
+
loopRange,
|
|
417
|
+
teachingHook,
|
|
418
|
+
});
|
|
419
|
+
activeSession = session;
|
|
420
|
+
// Start playback in background — don't await (MCP call returns immediately)
|
|
421
|
+
const playPromise = session.play();
|
|
422
|
+
playPromise
|
|
423
|
+
.then(() => {
|
|
424
|
+
console.error(`Finished playing: ${song.title} (${session.session.measuresPlayed} measures)`);
|
|
425
|
+
})
|
|
426
|
+
.catch((err) => {
|
|
427
|
+
console.error(`Playback error: ${err instanceof Error ? err.message : String(err)}`);
|
|
428
|
+
})
|
|
429
|
+
.finally(() => {
|
|
430
|
+
connector.disconnect().catch(() => { });
|
|
431
|
+
if (activeSession === session) {
|
|
432
|
+
activeSession = null;
|
|
433
|
+
}
|
|
434
|
+
});
|
|
435
|
+
// Build response
|
|
436
|
+
const effectiveSpeed = speed ?? 1.0;
|
|
437
|
+
const baseTempo = tempo ?? song.tempo;
|
|
438
|
+
const effectiveTempo = Math.round(baseTempo * effectiveSpeed);
|
|
439
|
+
const speedLabel = effectiveSpeed !== 1.0 ? ` × ${effectiveSpeed}x` : "";
|
|
440
|
+
const warnings = session.parseWarnings;
|
|
441
|
+
const lines = [
|
|
442
|
+
`Now playing: **${song.title}** by ${song.composer ?? "Traditional"}`,
|
|
443
|
+
``,
|
|
444
|
+
`- **Mode:** ${playbackMode}`,
|
|
445
|
+
`- **Tempo:** ${baseTempo} BPM${speedLabel} → ${effectiveTempo} BPM effective`,
|
|
446
|
+
`- **Key:** ${song.key} | **Time:** ${song.timeSignature}`,
|
|
447
|
+
`- **Measures:** ${song.measures.length}`,
|
|
448
|
+
];
|
|
449
|
+
if (loopRange) {
|
|
450
|
+
lines.push(`- **Loop range:** measures ${loopRange[0]}–${loopRange[1]}`);
|
|
451
|
+
}
|
|
452
|
+
if (warnings.length > 0) {
|
|
453
|
+
lines.push(``, `⚠ ${warnings.length} note(s) had parse warnings and will be skipped.`);
|
|
454
|
+
}
|
|
455
|
+
lines.push(``, `Use \`stop_playback\` to stop. Playback runs in the background.`);
|
|
456
|
+
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
457
|
+
});
|
|
458
|
+
// ─── Tool: stop_playback ──────────────────────────────────────────────────
|
|
459
|
+
server.tool("stop_playback", "Stop the currently playing song and disconnect MIDI.", {}, async () => {
|
|
460
|
+
if (!activeSession) {
|
|
461
|
+
return {
|
|
462
|
+
content: [{ type: "text", text: "No song is currently playing." }],
|
|
463
|
+
};
|
|
464
|
+
}
|
|
465
|
+
const songTitle = activeSession.session.song.title;
|
|
466
|
+
const measuresPlayed = activeSession.session.measuresPlayed;
|
|
467
|
+
const state = activeSession.state;
|
|
468
|
+
activeSession.stop();
|
|
469
|
+
activeSession = null;
|
|
470
|
+
return {
|
|
471
|
+
content: [{
|
|
472
|
+
type: "text",
|
|
473
|
+
text: `Stopped: ${songTitle} (was ${state}, ${measuresPlayed} measures played)`,
|
|
474
|
+
}],
|
|
475
|
+
};
|
|
476
|
+
});
|
|
365
477
|
// ─── Start ──────────────────────────────────────────────────────────────────
|
|
366
478
|
async function main() {
|
|
367
479
|
const transport = new StdioServerTransport();
|
package/dist/mcp-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -108,9 +108,9 @@ export interface SessionOptions {
|
|
|
108
108
|
*/
|
|
109
109
|
progressInterval?: number;
|
|
110
110
|
}
|
|
111
|
-
/**
|
|
111
|
+
/** MIDI connection configuration. */
|
|
112
112
|
export interface VmpkConfig {
|
|
113
|
-
/** MIDI output port name or
|
|
113
|
+
/** MIDI output port name, regex pattern, or "auto" to auto-detect. Default: "auto" */
|
|
114
114
|
portName: string | RegExp;
|
|
115
115
|
/** MIDI channel (0-15). Default: 0. */
|
|
116
116
|
channel: number;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/vmpk.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type { VmpkConnector, VmpkConfig } from "./types.js";
|
|
2
2
|
/**
|
|
3
|
-
* Create a
|
|
3
|
+
* Create a MIDI connector.
|
|
4
|
+
*
|
|
5
|
+
* With no config (or portName: "auto"), auto-detects the best available
|
|
6
|
+
* MIDI output — no external software required on Windows.
|
|
4
7
|
*
|
|
5
|
-
* This is the real implementation that talks to hardware via JZZ.
|
|
6
8
|
* For testing, inject a mock VmpkConnector via the Session constructor.
|
|
7
9
|
*/
|
|
8
10
|
export declare function createVmpkConnector(config?: Partial<VmpkConfig>): VmpkConnector;
|
package/dist/vmpk.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vmpk.d.ts","sourceRoot":"","sources":["../src/vmpk.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vmpk.d.ts","sourceRoot":"","sources":["../src/vmpk.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAwB,MAAM,YAAY,CAAC;AAqBlF;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM,GAC/B,aAAa,CA4If;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,aAAa,GAAG;IACzD,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrF,CAoDA"}
|
package/dist/vmpk.js
CHANGED
|
@@ -1,26 +1,42 @@
|
|
|
1
|
-
// ─── pianoai:
|
|
1
|
+
// ─── pianoai: MIDI Connector ─────────────────────────────────────────────────
|
|
2
2
|
//
|
|
3
|
-
// Connects to
|
|
4
|
-
//
|
|
3
|
+
// Connects to any available MIDI output using the JZZ library.
|
|
4
|
+
// Auto-detects the best port: prefers loopMIDI/VMPK if present,
|
|
5
|
+
// falls back to the system's built-in MIDI synth (e.g. Microsoft GS
|
|
6
|
+
// Wavetable Synth on Windows). No external software required.
|
|
5
7
|
//
|
|
6
8
|
// Usage:
|
|
7
|
-
// const
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
11
|
-
//
|
|
9
|
+
// const midi = createVmpkConnector(); // auto-detect best port
|
|
10
|
+
// const midi = createVmpkConnector({ portName: /loop/i }); // force specific port
|
|
11
|
+
// await midi.connect();
|
|
12
|
+
// midi.noteOn(60, 100); // middle C
|
|
13
|
+
// midi.noteOff(60);
|
|
14
|
+
// await midi.disconnect();
|
|
12
15
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
13
16
|
import JZZ from "jzz";
|
|
14
|
-
/** Default configuration. */
|
|
17
|
+
/** Default configuration — auto-detect best available MIDI output. */
|
|
15
18
|
const DEFAULT_CONFIG = {
|
|
16
|
-
portName:
|
|
19
|
+
portName: "auto",
|
|
17
20
|
channel: 0,
|
|
18
21
|
velocity: 80,
|
|
19
22
|
};
|
|
20
23
|
/**
|
|
21
|
-
*
|
|
24
|
+
* Preferred port patterns, tried in order.
|
|
25
|
+
* loopMIDI/VMPK first (for users with a full setup), then system synths.
|
|
26
|
+
*/
|
|
27
|
+
const PORT_PREFERENCES = [
|
|
28
|
+
/loop/i, // loopMIDI Port
|
|
29
|
+
/vmpk/i, // VMPK direct
|
|
30
|
+
/wavetable/i, // Microsoft GS Wavetable Synth
|
|
31
|
+
/synth/i, // Any other software synth
|
|
32
|
+
/midi/i, // Any port with "MIDI" in the name
|
|
33
|
+
];
|
|
34
|
+
/**
|
|
35
|
+
* Create a MIDI connector.
|
|
36
|
+
*
|
|
37
|
+
* With no config (or portName: "auto"), auto-detects the best available
|
|
38
|
+
* MIDI output — no external software required on Windows.
|
|
22
39
|
*
|
|
23
|
-
* This is the real implementation that talks to hardware via JZZ.
|
|
24
40
|
* For testing, inject a mock VmpkConnector via the Session constructor.
|
|
25
41
|
*/
|
|
26
42
|
export function createVmpkConnector(config = {}) {
|
|
@@ -28,6 +44,7 @@ export function createVmpkConnector(config = {}) {
|
|
|
28
44
|
let engine = null;
|
|
29
45
|
let port = null;
|
|
30
46
|
let currentStatus = "disconnected";
|
|
47
|
+
let connectedPortName = "";
|
|
31
48
|
return {
|
|
32
49
|
async connect() {
|
|
33
50
|
if (currentStatus === "connected")
|
|
@@ -35,18 +52,52 @@ export function createVmpkConnector(config = {}) {
|
|
|
35
52
|
currentStatus = "connecting";
|
|
36
53
|
try {
|
|
37
54
|
engine = await JZZ();
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
55
|
+
const ports = listPortsInternal(engine);
|
|
56
|
+
if (cfg.portName === "auto") {
|
|
57
|
+
// Auto-detect: try preferred patterns in order
|
|
58
|
+
port = null;
|
|
59
|
+
for (const pattern of PORT_PREFERENCES) {
|
|
60
|
+
const match = ports.find((p) => pattern.test(p));
|
|
61
|
+
if (match) {
|
|
62
|
+
try {
|
|
63
|
+
port = engine.openMidiOut(match);
|
|
64
|
+
connectedPortName = match;
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
// This port didn't work, try next pattern
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// Last resort: try the first available port
|
|
74
|
+
if (!port && ports.length > 0) {
|
|
75
|
+
port = engine.openMidiOut(ports[0]);
|
|
76
|
+
connectedPortName = ports[0];
|
|
77
|
+
}
|
|
78
|
+
if (!port) {
|
|
79
|
+
throw new Error("No MIDI output ports available");
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
// Specific port requested
|
|
84
|
+
port = engine.openMidiOut(cfg.portName);
|
|
85
|
+
connectedPortName =
|
|
86
|
+
cfg.portName instanceof RegExp
|
|
87
|
+
? (ports.find((p) => cfg.portName.test(p)) ?? cfg.portName.toString())
|
|
88
|
+
: String(cfg.portName);
|
|
89
|
+
}
|
|
41
90
|
currentStatus = "connected";
|
|
91
|
+
console.error(`MIDI connected: ${connectedPortName}`);
|
|
42
92
|
}
|
|
43
93
|
catch (err) {
|
|
44
94
|
currentStatus = "error";
|
|
45
|
-
const portDesc = cfg.portName
|
|
46
|
-
?
|
|
47
|
-
:
|
|
48
|
-
|
|
49
|
-
|
|
95
|
+
const portDesc = cfg.portName === "auto"
|
|
96
|
+
? "(auto-detect)"
|
|
97
|
+
: cfg.portName instanceof RegExp
|
|
98
|
+
? cfg.portName.toString()
|
|
99
|
+
: `"${cfg.portName}"`;
|
|
100
|
+
throw new Error(`Failed to connect to MIDI output ${portDesc}. ` +
|
|
50
101
|
`Available ports: ${listPortsInternal(engine).join(", ") || "(none)"}. ` +
|
|
51
102
|
`Error: ${err instanceof Error ? err.message : String(err)}`);
|
|
52
103
|
}
|
package/dist/vmpk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vmpk.js","sourceRoot":"","sources":["../src/vmpk.ts"],"names":[],"mappings":"AAAA,+
|
|
1
|
+
{"version":3,"file":"vmpk.js","sourceRoot":"","sources":["../src/vmpk.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcptoolshop/pianoai",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.3.0",
|
|
4
|
+
"description": "Piano player with built-in audio engine — plays through speakers, no external software required. MCP server + CLI.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -36,14 +36,13 @@
|
|
|
36
36
|
},
|
|
37
37
|
"keywords": [
|
|
38
38
|
"piano",
|
|
39
|
+
"audio",
|
|
39
40
|
"midi",
|
|
40
41
|
"mcp",
|
|
41
|
-
"vmpk",
|
|
42
|
-
"teaching",
|
|
43
42
|
"ai",
|
|
44
43
|
"music",
|
|
45
44
|
"voice",
|
|
46
|
-
"
|
|
45
|
+
"web-audio"
|
|
47
46
|
],
|
|
48
47
|
"author": "mcp-tool-shop",
|
|
49
48
|
"publishConfig": {
|
|
@@ -55,9 +54,10 @@
|
|
|
55
54
|
"url": "https://github.com/mcp-tool-shop-org/pianoai.git"
|
|
56
55
|
},
|
|
57
56
|
"dependencies": {
|
|
58
|
-
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
59
57
|
"@mcptoolshop/ai-music-sheets": "^1.0.0",
|
|
58
|
+
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
60
59
|
"jzz": "^1.8.0",
|
|
60
|
+
"node-web-audio-api": "^1.0.8",
|
|
61
61
|
"zod": "^4.3.6"
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|