Intercettare dati Midi grezzi da un dispositivo Midi esterno mediante il Componente gb.media

Da Gambas-it.org - Wikipedia.

E' possibile intercettare i dati Midi grezzi inviati da un dispositivo Midi esterno (ad esempio una tastiera Midi) usando le risorse delle Classi "MediaPipeline" e "MediaControl" del Componente gb.media.

Sarà necessario assegnare alla proprietà "ports" dell'elemento "fluiddec" il numero identificativo, quale Client ALSA, e il numero della porta del dispotivo Midi esterno che invia i dati Midi grezzi.


Mostriamo un semplice esempio pratico:

Public Sub Main()
 
 Dim pl As MediaPipeline
 Dim src, flu, con, snk As MediaControl 
 Dim porta, s As String
 
' Imposta il numero identificativo, come Client ALSA, e della porta del dispositivo Midi esterno (ad esempio 24:0) :
 porta = "24:0"
  
 pl = New MediaPipeline
  
 src = New MediaControl(pl, "alsamidisrc")
 src["ports"] = porta 
 flu = New MediaControl(pl, "fluiddec")
 flu["synth-gain"] = 0.5
 con = New MediaControl(pl, "audioconvert")
 snk = New MediaControl(pl, "autoaudiosink")
  
 src.LinkTo(flu)
 flu.LinkTo(con)
 con.LinkTo(snk)
  
 pl.play()
  
' Consente di tenere funzionante il programma.
' Per terminare il programma, si dovrà inserire in Console/Terminale un carattere e premere "Invio".
 Input s
 pl.Stop
 pl.Close
 Print "Termine programma !"
  
End


Riferimenti