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 {
|
||||
console.log(midiChannelName, sampleNumber);
|
||||
const availableMidiOutputs = midiAccess.outputs.values();
|
||||
|
|
@ -16,6 +20,7 @@ export async function sendMidiMessage(midiChannelName, sampleNumber, midiAccess)
|
|||
}
|
||||
}
|
||||
|
||||
if (!midiOut) return;
|
||||
// MIDI Note On (Play Note)
|
||||
midiOut.send([0x90, 35 + sampleNumber, 127]);
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ import { DataStream } from "./socket.js";
|
|||
import { Renderer } from "./render.js";
|
||||
|
||||
document.addEventListener("DOMContentLoaded", async () => {
|
||||
|
||||
const midiAccess = await navigator.requestMIDIAccess();
|
||||
const conductor = new Conductor();
|
||||
await conductor.init();
|
||||
|
|
@ -13,24 +12,27 @@ document.addEventListener("DOMContentLoaded", async () => {
|
|||
let strikes = 0;
|
||||
const strikeEvery = 2;
|
||||
|
||||
|
||||
const renderer = new Renderer();
|
||||
|
||||
dataStream.addEventListener("strike", () => {
|
||||
console.log(strikes);
|
||||
//** select instrument */
|
||||
if (strikes === strikeEvery){
|
||||
|
||||
if (strikes === strikeEvery) {
|
||||
const keys = Object.keys(instruments);
|
||||
const randomIndex = Math.floor(Math.random() * keys.length);
|
||||
const selectedInstrument = instruments[keys[randomIndex]];
|
||||
|
||||
|
||||
//** select sample */
|
||||
const numSamples = selectedInstrument.numSamples;
|
||||
const randomSampleNumber = Math.floor(Math.random() * numSamples);
|
||||
|
||||
|
||||
renderer.placeIcon(selectedInstrument);
|
||||
sendMidiMessage(selectedInstrument.midiChannelName, randomSampleNumber + 1, midiAccess);
|
||||
if (midiAccess)
|
||||
sendMidiMessage(
|
||||
selectedInstrument.midiChannelName,
|
||||
randomSampleNumber + 1,
|
||||
midiAccess
|
||||
);
|
||||
strikes = 0;
|
||||
}
|
||||
strikes++;
|
||||
|
|
|
|||
Loading…
Reference in New Issue