add midi channel to note function

This commit is contained in:
2023-07-30 23:44:49 +02:00
parent 1d5126fe90
commit 78267f9c9e
2 changed files with 8 additions and 9 deletions

View File

@ -57,22 +57,23 @@ export class MidiConnection{
console.log(`${index + 1}. ${output.name}`); console.log(`${index + 1}. ${output.name}`);
}); });
} }
public sendMidiNote(noteNumber: number, velocity: number, durationMs: number): void {
public sendMidiNote(noteNumber: number, channel: number, velocity: number, durationMs: number): void {
const output = this.midiOutputs[this.currentOutputIndex]; const output = this.midiOutputs[this.currentOutputIndex];
if (output) { if (output) {
const noteOnMessage = [0x90, noteNumber, velocity]; const noteOnMessage = [0x90 + channel, noteNumber, velocity];
const noteOffMessage = [0x80, noteNumber, 0]; const noteOffMessage = [0x80 + channel, noteNumber, 0];
// Send Note On // Send Note On
output.send(noteOnMessage); output.send(noteOnMessage);
// Schedule Note Off // Schedule Note Off
const timeoutId = setTimeout(() => { const timeoutId = setTimeout(() => {
output.send(noteOffMessage); output.send(noteOffMessage);
delete this.scheduledNotes[noteNumber]; delete this.scheduledNotes[noteNumber];
}, durationMs); }, durationMs);
this.scheduledNotes[noteNumber] = timeoutId; this.scheduledNotes[noteNumber] = timeoutId;
} else { } else {
console.error('MIDI output not available.'); console.error('MIDI output not available.');

View File

@ -249,9 +249,7 @@ export class Editor {
(keycode, index) => { (keycode, index) => {
if (event.keyCode === keycode) { if (event.keyCode === keycode) {
event.preventDefault(); event.preventDefault();
// Check if Ctrl is pressed as well
if (event.ctrlKey) { if (event.ctrlKey) {
// We trigger a script if ctrl is pressed
this.api.script(keycode - 111) this.api.script(keycode - 111)
} else { } else {
this.changeToLocalBuffer(index); this.changeToLocalBuffer(index);