import { sendMidiMessage } from "./midi.js"; import { Conductor } from "./conductor.js"; import { DataStream } from "./socket.js"; import { Renderer } from "./render.js"; document.addEventListener("DOMContentLoaded", async () => { sendMidiMessage(); const conductor = new Conductor(); await conductor.init(); const dataStream = new DataStream(); const instruments = await conductor.instruments; const renderer = new Renderer(); dataStream.addEventListener("strike", () => { //** select instrument */ 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); console.log(selectedInstrument.midiChannelName, randomSampleNumber + 1); }); dataStream.init(); conductor.showMainContent(); });