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

Da Gambas-it.org - Wikipedia.
 
(Una versione intermedia di uno stesso utente non è mostrata)
Riga 5: Riga 5:
  
 
Mostriamo un semplice esempio pratico:
 
Mostriamo un semplice esempio pratico:
  '''Public''' Sub Main()
+
  Public Sub Main()
 
    
 
    
 
   Dim pl As MediaPipeline
 
   Dim pl As MediaPipeline
Riga 12: Riga 12:
 
    
 
    
 
  <FONT Color=gray>' ''Imposta il numero identificativo, come Client ALSA, e della porta del dispositivo Midi esterno (ad esempio 24:0) :''</font>
 
  <FONT Color=gray>' ''Imposta il numero identificativo, come Client ALSA, e della porta del dispositivo Midi esterno (ad esempio 24:0) :''</font>
  porta = "24:0"
+
  porta = "24:0"
 
    
 
    
  pl = New MediaPipeline
+
  pl = New MediaPipeline
 
    
 
    
  src = New MediaControl(pl, "alsamidisrc")
+
  src = New MediaControl(pl, "alsamidisrc")
  <FONT Color=#B22222>src["ports"]</font> = porta  
+
  <FONT Color=#B22222>src["ports"]</font> = porta  
  flu = New MediaControl(pl, "fluiddec")
+
  flu = New MediaControl(pl, "fluiddec")
  flu["synth-gain"] = 0.5
+
  flu["synth-gain"] = 0.5
  con = New MediaControl(pl, "audioconvert")
+
  con = New MediaControl(pl, "audioconvert")
  snk = New MediaControl(pl, "autoaudiosink")
+
  snk = New MediaControl(pl, "autoaudiosink")
 
    
 
    
  src.LinkTo(flu)
+
  src.LinkTo(flu)
  flu.LinkTo(con)
+
  flu.LinkTo(con)
  con.LinkTo(snk)
+
  con.LinkTo(snk)
 
    
 
    
  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.''
  Input s
+
' ''Per terminare il programma, si dovrà inserire in Console/Terminale un carattere e premere "Invio".''</font>
  pl.Stop
+
  Input s
  pl.Close
+
  pl.Stop
  Print "Termine programma !"
+
  pl.Close
 +
  Print "Termine programma !"
 
    
 
    
  '''End'''
+
  End
 
 
  
  

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