dont try to send midi if no midi output exists
This commit is contained in:
parent
169da90607
commit
19abd758c7
|
|
@ -1,4 +1,8 @@
|
||||||
export async function sendMidiMessage(midiChannelName, sampleNumber, midiAccess) {
|
export async function sendMidiMessage(
|
||||||
|
midiChannelName,
|
||||||
|
sampleNumber,
|
||||||
|
midiAccess
|
||||||
|
) {
|
||||||
try {
|
try {
|
||||||
console.log(midiChannelName, sampleNumber);
|
console.log(midiChannelName, sampleNumber);
|
||||||
const availableMidiOutputs = midiAccess.outputs.values();
|
const availableMidiOutputs = midiAccess.outputs.values();
|
||||||
|
|
@ -16,6 +20,7 @@ export async function sendMidiMessage(midiChannelName, sampleNumber, midiAccess)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!midiOut) return;
|
||||||
// MIDI Note On (Play Note)
|
// MIDI Note On (Play Note)
|
||||||
midiOut.send([0x90, 35 + sampleNumber, 127]);
|
midiOut.send([0x90, 35 + sampleNumber, 127]);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@ import { DataStream } from "./socket.js";
|
||||||
import { Renderer } from "./render.js";
|
import { Renderer } from "./render.js";
|
||||||
|
|
||||||
document.addEventListener("DOMContentLoaded", async () => {
|
document.addEventListener("DOMContentLoaded", async () => {
|
||||||
|
|
||||||
const midiAccess = await navigator.requestMIDIAccess();
|
const midiAccess = await navigator.requestMIDIAccess();
|
||||||
const conductor = new Conductor();
|
const conductor = new Conductor();
|
||||||
await conductor.init();
|
await conductor.init();
|
||||||
|
|
@ -13,14 +12,12 @@ document.addEventListener("DOMContentLoaded", async () => {
|
||||||
let strikes = 0;
|
let strikes = 0;
|
||||||
const strikeEvery = 2;
|
const strikeEvery = 2;
|
||||||
|
|
||||||
|
|
||||||
const renderer = new Renderer();
|
const renderer = new Renderer();
|
||||||
|
|
||||||
dataStream.addEventListener("strike", () => {
|
dataStream.addEventListener("strike", () => {
|
||||||
console.log(strikes);
|
console.log(strikes);
|
||||||
//** select instrument */
|
//** select instrument */
|
||||||
if (strikes === strikeEvery){
|
if (strikes === strikeEvery) {
|
||||||
|
|
||||||
const keys = Object.keys(instruments);
|
const keys = Object.keys(instruments);
|
||||||
const randomIndex = Math.floor(Math.random() * keys.length);
|
const randomIndex = Math.floor(Math.random() * keys.length);
|
||||||
const selectedInstrument = instruments[keys[randomIndex]];
|
const selectedInstrument = instruments[keys[randomIndex]];
|
||||||
|
|
@ -30,7 +27,12 @@ document.addEventListener("DOMContentLoaded", async () => {
|
||||||
const randomSampleNumber = Math.floor(Math.random() * numSamples);
|
const randomSampleNumber = Math.floor(Math.random() * numSamples);
|
||||||
|
|
||||||
renderer.placeIcon(selectedInstrument);
|
renderer.placeIcon(selectedInstrument);
|
||||||
sendMidiMessage(selectedInstrument.midiChannelName, randomSampleNumber + 1, midiAccess);
|
if (midiAccess)
|
||||||
|
sendMidiMessage(
|
||||||
|
selectedInstrument.midiChannelName,
|
||||||
|
randomSampleNumber + 1,
|
||||||
|
midiAccess
|
||||||
|
);
|
||||||
strikes = 0;
|
strikes = 0;
|
||||||
}
|
}
|
||||||
strikes++;
|
strikes++;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue