La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Lettura di input MIDI da Web MIDI API

Presentazioni simili


Presentazione sul tema: "Lettura di input MIDI da Web MIDI API"— Transcript della presentazione:

1 Lettura di input MIDI da Web MIDI API
Lezione 19 Lettura di input MIDI da Web MIDI API Programmazione MIDI (Prof. Luca A. Ludovico)

2 Obiettivo Leggere e gestire attraverso Web MIDI API gli ingressi che giungono alla browser app da una catena MIDI più o meno complessa posta a monte. Anche in questo caso, la catena MIDI può essere fisica o virtuale: dal punto di vista della Web MIDI API, non fa differenza. Programmazione MIDI (Prof. Luca A. Ludovico) 19. Lettura di input MIDI da Web MIDI API

3 Elenco dei dispositivi in ingresso
Avendo dichiarato una variabile chiamata midi cui viene assegnato un valore nel seguente modo var midi; function onMIDISuccess(midiAccess) { midi = midiAccess; // … } lo snippet di codice è: midi.inputs.forEach(function (key, input) { // do something elenco_porte_MIDI.html Programmazione MIDI (Prof. Luca A. Ludovico) 19. Lettura di input MIDI da Web MIDI API

4 L’event handler onmidimessage
Volendo intercettare tutti i messaggi MIDI su tutti gli input, si associa a ogni input rilevato l’event handler: function onMIDISuccess(midiAccess) { for (var input of midiAccess.inputs.values()) input.onmidimessage = getMIDIMessage; } function getMIDIMessage(midiMessage) { console.log(midiMessage); MIDI_monitor_console.html Programmazione MIDI (Prof. Luca A. Ludovico) 19. Lettura di input MIDI da Web MIDI API

5 L’interfaccia MIDIMessageEvent
I messaggi MIDI vengono scambiati con i dispositivi in ingresso e in uscita attraverso oggetti MIDIMessageEvent. Nell’esempio precedente, l’argomento midiMessage in ingresso a getMIDIMessage() è un oggetto MIDIMessageEvent. Questi oggetti sono molto ricchi di informazioni riguardanti i messaggi MIDI scambiati. Per verificarlo, è sufficiente aprire ciascuna struttura dati mostrata nella console dall’esercizio precedente. L’aspetto più interessante per noi è l’array di byte contenuto in data. Programmazione MIDI (Prof. Luca A. Ludovico) 19. Lettura di input MIDI da Web MIDI API

6 Esempio: un MIDI monitor più «espressivo»
Obiettivo: mostrare all’interno di una pagina web tutti gli eventi MIDI intercettati provenienti dai dispositivi di ingresso. Nel caso di messaggi noti, si vuole mostrare l’informazione del byte di stato e dei byte di dati in maniera più leggibile. Vengono gestiti i messaggi di NoteOn, NoteOff, Program Change e Pitch Bend Change. MIDI_monitor_webpage.html Programmazione MIDI (Prof. Luca A. Ludovico) 19. Lettura di input MIDI da Web MIDI API

7 Esercizio Si aggiunga all’esempio precedente la gestione dei restanti messaggi di canale Si gestiscano in maniera grossolana i messaggi diversi da quelli di canale, indicando la famiglia di appartenenza e, conseguentemente, non mostrando l’informazione di canale. Programmazione MIDI (Prof. Luca A. Ludovico) 19. Lettura di input MIDI da Web MIDI API


Scaricare ppt "Lettura di input MIDI da Web MIDI API"

Presentazioni simili


Annunci Google