From 041eec7c35b40f423c4692721ac5dd89ead3d776 Mon Sep 17 00:00:00 2001 From: Jonas Hubbard <108261176+Jhub7682@users.noreply.github.com> Date: Sat, 26 Jul 2025 10:14:28 +0900 Subject: [PATCH 1/9] Create test --- static/images/jhub7682/test | 1 + 1 file changed, 1 insertion(+) create mode 100644 static/images/jhub7682/test diff --git a/static/images/jhub7682/test b/static/images/jhub7682/test new file mode 100644 index 000000000..9daeafb98 --- /dev/null +++ b/static/images/jhub7682/test @@ -0,0 +1 @@ +test From f5397cf2c2cb79f4ac2150b2688d47b035bade4a Mon Sep 17 00:00:00 2001 From: Jonas Hubbard <108261176+Jhub7682@users.noreply.github.com> Date: Sat, 26 Jul 2025 10:14:53 +0900 Subject: [PATCH 2/9] Add files via upload --- .../images/jhub7682/MIDI_devices_extention.png | Bin 0 -> 104398 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 static/images/jhub7682/MIDI_devices_extention.png diff --git a/static/images/jhub7682/MIDI_devices_extention.png b/static/images/jhub7682/MIDI_devices_extention.png new file mode 100644 index 0000000000000000000000000000000000000000..053f699f36675ba9eba633eb3451b7e60fc2eebf GIT binary patch literal 104398 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 i!*27pz1BQl8-agHPQ5>8F}ha(0000 Date: Sat, 26 Jul 2025 10:15:29 +0900 Subject: [PATCH 3/9] Delete static/images/jhub7682/test --- static/images/jhub7682/test | 1 - 1 file changed, 1 deletion(-) delete mode 100644 static/images/jhub7682/test diff --git a/static/images/jhub7682/test b/static/images/jhub7682/test deleted file mode 100644 index 9daeafb98..000000000 --- a/static/images/jhub7682/test +++ /dev/null @@ -1 +0,0 @@ -test From 2ae3dd8a0dc5db22c30f16aaa10c165598c48b0b Mon Sep 17 00:00:00 2001 From: Jonas Hubbard <108261176+Jhub7682@users.noreply.github.com> Date: Sat, 26 Jul 2025 10:18:47 +0900 Subject: [PATCH 4/9] Create MIDIdevices.js --- static/extensions/jhub7682/MIDIdevices.js | 182 ++++++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100644 static/extensions/jhub7682/MIDIdevices.js diff --git a/static/extensions/jhub7682/MIDIdevices.js b/static/extensions/jhub7682/MIDIdevices.js new file mode 100644 index 000000000..f63f07132 --- /dev/null +++ b/static/extensions/jhub7682/MIDIdevices.js @@ -0,0 +1,182 @@ +// Name: Midi Devices +// ID: mididevicesjhub7682 +// Description: An extention that exposes MIDI devices +// By: Jhub7682 +// License: MIT AND LGPL-3.0 + +// Version V.1 + +let lastNote = 0; +let lastVelocity = 0; +let pressedNotes = new Set(); +let pitchBendValue = 0; +let controlValues = new Map(); +let programNumber = 0; +let aftertouchValue = 0; +let polyAftertouchValues = new Map(); +let midiDeviceName = "None"; + +navigator.requestMIDIAccess() + .then((midiAccess) => { + for (let input of midiAccess.inputs.values()) { + midiDeviceName = input.name; + + input.onmidimessage = (msg) => { + const [status, data1, data2] = msg.data; + const command = status & 0xF0; + + switch (command) { + case 0x90: // Note On + if (data2 > 0) { + lastNote = data1; + lastVelocity = data2; + pressedNotes.add(data1); + } else { + pressedNotes.delete(data1); // Note Off via velocity 0 + } + break; + + case 0x80: // Note Off + pressedNotes.delete(data1); + break; + + case 0xB0: // Control Change + controlValues.set(data1, data2); + break; + + case 0xC0: // Program Change + programNumber = data1; + break; + + case 0xD0: // Channel Pressure (Aftertouch) + aftertouchValue = data1; + break; + + case 0xE0: // Pitch Bend + pitchBendValue = ((data2 << 7) | data1) - 8192; + break; + + case 0xA0: // Polyphonic Aftertouch + polyAftertouchValues.set(data1, data2); + break; + } + }; + } + + Scratch.extensions.register({ + getInfo() { + return { + id: "MDjhub7682", + name: "Midi Devices", + color1: "#ff6363ff", + blocks: [ + { + opcode: "midiNoteOn", + blockType: "reporter", + text: "last MIDI note" + }, + { + opcode: "midiVelocity", + blockType: "reporter", + text: "last velocity" + }, + { + opcode: "anyNotePressed", + blockType: "reporter", + text: "MIDI note pressed?" + }, + { + opcode: "getCCValue", + blockType: "reporter", + text: "CC [CCNUM] value", + arguments: { + CCNUM: { + type: "number", + defaultValue: 1 + } + } + }, + { + opcode: "getPitchBend", + blockType: "reporter", + text: "pitch bend value" + }, + { + opcode: "getProgramNumber", + blockType: "reporter", + text: "program number" + }, + { + opcode: "getAftertouch", + blockType: "reporter", + text: "aftertouch value" + }, + { + opcode: "getPolyAftertouch", + blockType: "reporter", + text: "poly aftertouch for note [NOTE]", + arguments: { + NOTE: { + type: "number", + defaultValue: 60 + } + } + }, + { + opcode: "getDeviceName", + blockType: "reporter", + text: "MIDI device name" + }, + { + opcode: "midiOctave", + blockType: "reporter", + text: "last MIDI octave" + } + ] + }; + }, + + midiNoteOn() { + return lastNote; + }, + + midiVelocity() { + return lastVelocity; + }, + + anyNotePressed() { + return pressedNotes.size > 0; + }, + + getCCValue(args) { + return controlValues.get(Number(args.CCNUM)) || 0; + }, + + getPitchBend() { + return pitchBendValue; + }, + + getProgramNumber() { + return programNumber; + }, + + getAftertouch() { + return aftertouchValue; + }, + + getPolyAftertouch(args) { + return polyAftertouchValues.get(Number(args.NOTE)) || 0; + }, + + getDeviceName() { + return midiDeviceName; + }, + + midiOctave() { + return Math.floor(lastNote / 12) - 1; + } + }); + }) + .catch((err) => { + console.error("MIDI access error:", err); + }); From 84a6106d4f458c7f7acbe38df3dc480b08914603 Mon Sep 17 00:00:00 2001 From: Jonas Hubbard <108261176+Jhub7682@users.noreply.github.com> Date: Sat, 26 Jul 2025 10:28:06 +0900 Subject: [PATCH 5/9] Update extensions.js --- src/lib/extensions.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/lib/extensions.js b/src/lib/extensions.js index 51c2f2aa6..597d6a0db 100644 --- a/src/lib/extensions.js +++ b/src/lib/extensions.js @@ -453,6 +453,14 @@ export default [ creatorAlias: "gaimerI17", note: "Extension thumbnail made by Dillon." }, + { + name: "MIDI Devices", + description: "Extention for exposing MIDI devices.", + code: "jhub7682/MIDIdevices.js", + banner: "jhub7682/MIDI_devices_extention.png", + creator: "Jhub7682", + isGitHub: true, + }, /* these extensions are completely dead as of now { name: "Online Captcha", From f2843cc178a0211570decef063f0ddd5c1cdfb8d Mon Sep 17 00:00:00 2001 From: Jonas Hubbard <108261176+Jhub7682@users.noreply.github.com> Date: Sat, 26 Jul 2025 13:19:57 +0900 Subject: [PATCH 6/9] Update extensions.js Fixed description -_- --- src/lib/extensions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/extensions.js b/src/lib/extensions.js index 597d6a0db..ba066246d 100644 --- a/src/lib/extensions.js +++ b/src/lib/extensions.js @@ -455,7 +455,7 @@ export default [ }, { name: "MIDI Devices", - description: "Extention for exposing MIDI devices.", + description: "Extension for exposing MIDI devices.", code: "jhub7682/MIDIdevices.js", banner: "jhub7682/MIDI_devices_extention.png", creator: "Jhub7682", From 07ec3790869dd5321dd7e31e547742f23de32316 Mon Sep 17 00:00:00 2001 From: Jonas Hubbard <108261176+Jhub7682@users.noreply.github.com> Date: Sat, 26 Jul 2025 15:41:05 +0900 Subject: [PATCH 7/9] Update MIDIdevices.js --- static/extensions/jhub7682/MIDIdevices.js | 351 +++++++++++----------- 1 file changed, 180 insertions(+), 171 deletions(-) diff --git a/static/extensions/jhub7682/MIDIdevices.js b/static/extensions/jhub7682/MIDIdevices.js index f63f07132..21e4bfd2a 100644 --- a/static/extensions/jhub7682/MIDIdevices.js +++ b/static/extensions/jhub7682/MIDIdevices.js @@ -1,182 +1,191 @@ // Name: Midi Devices -// ID: mididevicesjhub7682 -// Description: An extention that exposes MIDI devices +// ID: jhub7682MidiDevices +// Description: An extension that exposes MIDI devices // By: Jhub7682 // License: MIT AND LGPL-3.0 +// Version: V.1 + +class MidiDevicesExtension { + constructor() { + this.lastNote = 0; + this.lastVelocity = 0; + this.pressedNotes = new Set(); + this.pitchBendValue = 0; + this.controlValues = new Map(); + this.programNumber = 0; + this.aftertouchValue = 0; + this.polyAftertouchValues = new Map(); + this.midiDeviceName = "None"; + + + this.initializeMIDI(); + } + + initializeMIDI() { + navigator.requestMIDIAccess() + .then((midiAccess) => { + for (let input of midiAccess.inputs.values()) { + this.midiDeviceName = input.name; + + input.onmidimessage = (msg) => { + const [status, data1, data2] = msg.data; + const command = status & 0xF0; + + switch (command) { + case 0x90: + if (data2 > 0) { + this.lastNote = data1; + this.lastVelocity = data2; + this.pressedNotes.add(data1); + } else { + this.pressedNotes.delete(data1); + } + break; -// Version V.1 - -let lastNote = 0; -let lastVelocity = 0; -let pressedNotes = new Set(); -let pitchBendValue = 0; -let controlValues = new Map(); -let programNumber = 0; -let aftertouchValue = 0; -let polyAftertouchValues = new Map(); -let midiDeviceName = "None"; - -navigator.requestMIDIAccess() - .then((midiAccess) => { - for (let input of midiAccess.inputs.values()) { - midiDeviceName = input.name; - - input.onmidimessage = (msg) => { - const [status, data1, data2] = msg.data; - const command = status & 0xF0; - - switch (command) { - case 0x90: // Note On - if (data2 > 0) { - lastNote = data1; - lastVelocity = data2; - pressedNotes.add(data1); - } else { - pressedNotes.delete(data1); // Note Off via velocity 0 - } - break; - - case 0x80: // Note Off - pressedNotes.delete(data1); - break; + case 0x80: + this.pressedNotes.delete(data1); + break; - case 0xB0: // Control Change - controlValues.set(data1, data2); - break; + case 0xB0: + this.controlValues.set(data1, data2); + break; - case 0xC0: // Program Change - programNumber = data1; - break; + case 0xC0: + this.programNumber = data1; + break; - case 0xD0: // Channel Pressure (Aftertouch) - aftertouchValue = data1; - break; + case 0xD0: + this.aftertouchValue = data1; + break; - case 0xE0: // Pitch Bend - pitchBendValue = ((data2 << 7) | data1) - 8192; - break; + case 0xE0: + this.pitchBendValue = ((data2 << 7) | data1) - 8192; + break; - case 0xA0: // Polyphonic Aftertouch - polyAftertouchValues.set(data1, data2); - break; + case 0xA0: + this.polyAftertouchValues.set(data1, data2); + break; + } + }; } - }; - } - - Scratch.extensions.register({ - getInfo() { - return { - id: "MDjhub7682", - name: "Midi Devices", - color1: "#ff6363ff", - blocks: [ - { - opcode: "midiNoteOn", - blockType: "reporter", - text: "last MIDI note" - }, - { - opcode: "midiVelocity", - blockType: "reporter", - text: "last velocity" - }, - { - opcode: "anyNotePressed", - blockType: "reporter", - text: "MIDI note pressed?" - }, - { - opcode: "getCCValue", - blockType: "reporter", - text: "CC [CCNUM] value", - arguments: { - CCNUM: { - type: "number", - defaultValue: 1 - } - } - }, - { - opcode: "getPitchBend", - blockType: "reporter", - text: "pitch bend value" - }, - { - opcode: "getProgramNumber", - blockType: "reporter", - text: "program number" - }, - { - opcode: "getAftertouch", - blockType: "reporter", - text: "aftertouch value" - }, - { - opcode: "getPolyAftertouch", - blockType: "reporter", - text: "poly aftertouch for note [NOTE]", - arguments: { - NOTE: { - type: "number", - defaultValue: 60 - } - } - }, - { - opcode: "getDeviceName", - blockType: "reporter", - text: "MIDI device name" - }, - { - opcode: "midiOctave", - blockType: "reporter", - text: "last MIDI octave" + }) + .catch((err) => { + console.error("MIDI access error:", err); + }); + } + + getInfo() { + return { + id: "jhub7682MidiDevices", + name: "Midi Devices", + color1: "#ff2c2cff", + blocks: [ + { + opcode: "midiNoteOn", + blockType: "reporter", + text: "last MIDI note" + }, + { + opcode: "midiVelocity", + blockType: "reporter", + text: "last velocity" + }, + { + opcode: "anyNotePressed", + blockType: "reporter", + text: "MIDI note pressed?" + }, + { + opcode: "getCCValue", + blockType: "reporter", + text: "CC [CCNUM] value", + arguments: { + CCNUM: { + type: "number", + defaultValue: 1 + } + } + }, + { + opcode: "getPitchBend", + blockType: "reporter", + text: "pitch bend value" + }, + { + opcode: "getProgramNumber", + blockType: "reporter", + text: "program number" + }, + { + opcode: "getAftertouch", + blockType: "reporter", + text: "aftertouch value" + }, + { + opcode: "getPolyAftertouch", + blockType: "reporter", + text: "poly aftertouch for note [NOTE]", + arguments: { + NOTE: { + type: "number", + defaultValue: 60 } - ] - }; - }, - - midiNoteOn() { - return lastNote; - }, - - midiVelocity() { - return lastVelocity; - }, - - anyNotePressed() { - return pressedNotes.size > 0; - }, - - getCCValue(args) { - return controlValues.get(Number(args.CCNUM)) || 0; - }, - - getPitchBend() { - return pitchBendValue; - }, - - getProgramNumber() { - return programNumber; - }, - - getAftertouch() { - return aftertouchValue; - }, - - getPolyAftertouch(args) { - return polyAftertouchValues.get(Number(args.NOTE)) || 0; - }, - - getDeviceName() { - return midiDeviceName; - }, - - midiOctave() { - return Math.floor(lastNote / 12) - 1; - } - }); - }) - .catch((err) => { - console.error("MIDI access error:", err); - }); + } + }, + { + opcode: "getDeviceName", + blockType: "reporter", + text: "MIDI device name" + }, + { + opcode: "midiOctave", + blockType: "reporter", + text: "last MIDI octave" + } + ] + }; + } + + midiNoteOn() { + return this.lastNote; + } + + midiVelocity() { + return this.lastVelocity; + } + + anyNotePressed() { + return this.pressedNotes.size > 0; + } + + getCCValue(args) { + return this.controlValues.get(Number(args.CCNUM)) || 0; + } + + getPitchBend() { + return this.pitchBendValue; + } + + getProgramNumber() { + return this.programNumber; + } + + getAftertouch() { + return this.aftertouchValue; + } + + getPolyAftertouch(args) { + return this.polyAftertouchValues.get(Number(args.NOTE)) || 0; + } + + getDeviceName() { + return this.midiDeviceName; + } + + midiOctave() { + return Math.floor(this.lastNote / 12) - 1; + } +} + + +Scratch.extensions.register(new MidiDevicesExtension()); From 8e2c423898ce783e0963df4c6b65fd255646d7f0 Mon Sep 17 00:00:00 2001 From: Jonas Hubbard <108261176+Jhub7682@users.noreply.github.com> Date: Sun, 27 Jul 2025 15:35:19 +0900 Subject: [PATCH 8/9] Holding multiple notes at once to an array --- static/extensions/jhub7682/MIDIdevices.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/static/extensions/jhub7682/MIDIdevices.js b/static/extensions/jhub7682/MIDIdevices.js index 21e4bfd2a..b2cf9b47f 100644 --- a/static/extensions/jhub7682/MIDIdevices.js +++ b/static/extensions/jhub7682/MIDIdevices.js @@ -17,7 +17,6 @@ class MidiDevicesExtension { this.polyAftertouchValues = new Map(); this.midiDeviceName = "None"; - this.initializeMIDI(); } @@ -141,6 +140,11 @@ class MidiDevicesExtension { opcode: "midiOctave", blockType: "reporter", text: "last MIDI octave" + }, + { + opcode: "getPressedNotes", + blockType: "reporter", + text: "pressed notes array" } ] }; @@ -185,7 +189,10 @@ class MidiDevicesExtension { midiOctave() { return Math.floor(this.lastNote / 12) - 1; } -} + getPressedNotes() { + return Array.from(this.pressedNotes).sort((a, b) => a - b); + } +} Scratch.extensions.register(new MidiDevicesExtension()); From 4041090554ae214122dc21b329cedb5e7391528d Mon Sep 17 00:00:00 2001 From: Jonas Hubbard <108261176+Jhub7682@users.noreply.github.com> Date: Sun, 27 Jul 2025 15:39:15 +0900 Subject: [PATCH 9/9] Tracking vel in an array too --- static/extensions/jhub7682/MIDIdevices.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/static/extensions/jhub7682/MIDIdevices.js b/static/extensions/jhub7682/MIDIdevices.js index b2cf9b47f..fd9644373 100644 --- a/static/extensions/jhub7682/MIDIdevices.js +++ b/static/extensions/jhub7682/MIDIdevices.js @@ -3,13 +3,14 @@ // Description: An extension that exposes MIDI devices // By: Jhub7682 // License: MIT AND LGPL-3.0 -// Version: V.1 +// Version: V.2 class MidiDevicesExtension { constructor() { this.lastNote = 0; this.lastVelocity = 0; this.pressedNotes = new Set(); + this.noteVelocities = new Map(); this.pitchBendValue = 0; this.controlValues = new Map(); this.programNumber = 0; @@ -36,13 +37,16 @@ class MidiDevicesExtension { this.lastNote = data1; this.lastVelocity = data2; this.pressedNotes.add(data1); + this.noteVelocities.set(data1, data2); } else { this.pressedNotes.delete(data1); + this.noteVelocities.delete(data1); } break; case 0x80: this.pressedNotes.delete(data1); + this.noteVelocities.delete(data1); break; case 0xB0: @@ -145,6 +149,11 @@ class MidiDevicesExtension { opcode: "getPressedNotes", blockType: "reporter", text: "pressed notes array" + }, + { + opcode: "getPressedVelocities", + blockType: "reporter", + text: "pressed velocities array" } ] }; @@ -193,6 +202,11 @@ class MidiDevicesExtension { getPressedNotes() { return Array.from(this.pressedNotes).sort((a, b) => a - b); } + + getPressedVelocities() { + + return this.getPressedNotes().map(note => this.noteVelocities.get(note) || 0); + } } Scratch.extensions.register(new MidiDevicesExtension());