MIDI-toestellen verbinden.
Inleiding
De MidiController class maakt het mogelijk om MIDI-signalen van aangesloten apparaten te ontvangen en deze te verwerken via een synthesizer met behulp van de Tone.js library. Hieronder vind je een handleiding om deze class te gebruiken in je project.
Benodigde scripts
Voordat je de MidiController class kunt gebruiken, moet je ervoor zorgen dat de volgende twee scripts correct aan je HTML-document zijn gekoppeld:
- Tone.js:Dit script is nodig voor de ingebouwde synthesizerfunctionaliteit. Het biedt de functies om noten af te spelen en te stoppen.
-
crowl.midi.js:Dit is het aangepaste script dat de
MidiControllerclass bevat. Zorg ervoor dat je de juiste bestandslocatie gebruikt.
Voeg de volgende code toe aan de of vlak voor de afsluitende tag van je HTML-bestand:
Voorbeeld van het gebruik van de MidiController Class
Hieronder een voorbeeld van hoe je de MidiController class kunt gebruiken om MIDI-apparaten aan te sluiten en inkomende noten af te spelen:
const midiController = new MidiController('outputElement');
midiController.init();
Functies in de MidiController Class
- constructor(outputElementId):Initialiseert de class en koppelt een element om output weer te geven.
- init():Start de audio context en vraagt toegang tot de MIDI-apparaten van de gebruiker.
- setupMidiInputs():Haalt alle verbonden MIDI-apparaten op en luistert naar inkomende MIDI-signalen.
- handleMidiMessage(message):Verwerkt inkomende MIDI-berichten. Herkent en speelt 'Note On' en 'Note Off'-berichten.
- getNoteName(noteNumber):Converteert het MIDI-nummer naar de bijbehorende noot en oktavennaam (bijv. C4, D#5).
- playNote(note, velocity):Speelt een noot af via de ingebouwde synthesizer.
- stopNote():Stopt de noot die momenteel speelt.
Conclusie
De MidiController class maakt het eenvoudig om MIDI-apparaten te koppelen en muziek af te spelen via een ingebouwde synthesizer met Tone.js. Vergeet niet om de benodigde scripts te koppelen om de class succesvol te gebruiken in je project.
Bekijk de demo: https://www.leerschool.be/test/midi