Differenze tra le versioni di "Intercettare dati Midi grezzi da un dispositivo Midi esterno mediante il Componente gb.media"

Da Gambas-it.org - Wikipedia.
 
Riga 29: Riga 29:
 
   pl.play()
 
   pl.play()
 
    
 
    
  <FONT Color=gray>' ''Consente di tenere funzionante il programma. Basterà premere "Invio" per terminare.''</font>
+
  <FONT Color=gray>' ''Consente di tenere funzionante il programma.''
 +
' ''Per terminare il programma, si dovrà inserire in Console/Terminale un carattere e premere "Invio".''</font>
 
   Input s
 
   Input s
 
   pl.Stop
 
   pl.Stop

Versione attuale delle 19:34, 17 gen 2024

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