Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Uno step sequencer Lezione 18
Programmazione MIDI (Prof. Luca A. Ludovico)
2
Obiettivo Realizzare un semplice step sequencer utilizzando la Web MIDI API Programmazione MIDI (Prof. Luca A. Ludovico) 18. Uno step sequencer
3
Passaggio 1 Disegnare in modo procedurale lo schema via JavaScript
utilizzando dei <div> parametrizzando la dimensione orizzontale e verticale attraverso costanti Possibilità migliorativa: rendere modificabili in tempo reale attraverso interfaccia grafica le dimensioni (in tal caso, non andranno usate costanti ma variabili) Programmazione MIDI (Prof. Luca A. Ludovico) 18. Uno step sequencer
4
Passaggio 2 Gestire il clic sui singoli div per abilitarli/disabilitarli cambiandone il colore di sfondo (nell’esempio si usano rispettivamente DarkMagenta e Orange) mantenendo allineata una struttura dati (si suggerisce un array bidimensionale) Programmazione MIDI (Prof. Luca A. Ludovico) 18. Uno step sequencer
5
Passaggio 3 Gestire dal punto di vista grafico l’avanzamento passo passo, nelle due direzioni Il punto di esecuzione corrente deve essere evidenziato colorando la colonna corrispettiva, mantenendo la differenziazione tra celle evidenziate e non evidenziate Si suggerisce di tenere traccia dello step corrente attraverso un’opportuna variabile Programmazione MIDI (Prof. Luca A. Ludovico) 18. Uno step sequencer
6
Passaggio 4 Facendo uso della Web MIDI API, far suonare le celle evidenziate nella colonna corrente nell’esecuzione passo passo Gestire la scelta dell’outport, l’invio dei messaggi di NoteOn e NoteOff, e il Program Change per caricare un timbro (nell’esempio, il Music Box = 10) Scegliere un’associazione tra gli indici di riga e i pitch MIDI (nell’esempio, si è scelta per comodità una scala esatonale discendente con pitch massimo, corrispondente alla riga di indice 0, pari a 72) Programmazione MIDI (Prof. Luca A. Ludovico) 18. Uno step sequencer
7
Passaggio 5 Gestire l’avanzamento automatico temporizzato (stile Play / Pause) attraverso le primitive: var myTimer = setInterval(function(){ … }, timeinterval); clearInterval(myTimer); Suggerimento: appoggiarsi alla funzione precedentemente scritta per far suonare la colonna corrente Programmazione MIDI (Prof. Luca A. Ludovico) 18. Uno step sequencer
8
Possibili migliorie Parametrizzazione delle dimensioni dello schema
Miglioramento dell’interfaccia grafica tramite pulsanti, icone, ecc. Possibilità di scelta tra diversi timbri, di associazione tra diverse scale, di variazione del metronomo, ecc. Possibilità di congiungere due note adiacenti (in senso orizzontale) prolungando l’emissione dei suoni. Es.: cella tri-stato (spenta, accesa, accesa e legata con quella accesa precedente, ammesso che esista) Programmazione MIDI (Prof. Luca A. Ludovico) 18. Uno step sequencer
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.