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. Basterà premere "Invio" per terminare.
  Input s
  pl.Stop
  pl.Close
  Print "Termine programma !"
  
End



Riferimenti