From 07aca218cb55dd6b35ef9311bdfc8c6c16ccf86d Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sun, 20 Mar 2022 01:24:07 +0100 Subject: [PATCH] can now reference midi output by index --- repl/src/midi.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/repl/src/midi.ts b/repl/src/midi.ts index e00352e8..798b5c11 100644 --- a/repl/src/midi.ts +++ b/repl/src/midi.ts @@ -24,7 +24,7 @@ export default function enableWebMidi() { } const outputByName = (name: string) => WebMidi.getOutputByName(name); -Pattern.prototype.midi = function (output: string, channel = 1) { +Pattern.prototype.midi = function (output: string | number, channel = 1) { if (output?.constructor?.name === 'Pattern') { throw new Error( `.midi does not accept Pattern input. Make sure to pass device name with single quotes. Example: .midi('${ @@ -45,7 +45,14 @@ Pattern.prototype.midi = function (output: string, channel = 1) { if (!WebMidi.outputs.length) { throw new Error(`🔌 No MIDI devices found. Connect a device or enable IAC Driver.`); } - const device = output ? outputByName(output) : WebMidi.outputs[0]; + let device; + if (typeof output === 'number') { + device = WebMidi.outputs[output]; + } else if (typeof output === 'string') { + device = outputByName(output); + } else { + device = WebMidi.outputs[0]; + } if (!device) { throw new Error( `🔌 MIDI device '${output ? output : ''}' not found. Use one of ${WebMidi.outputs