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 5: | Riga 5: | ||
Mostriamo un semplice esempio pratico: | Mostriamo un semplice esempio pratico: | ||
− | + | 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" | |
− | + | pl = New MediaPipeline | |
− | + | src = New MediaControl(pl, "alsamidisrc") | |
− | + | <FONT Color=#B22222>src["ports"]</font> = 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() | |
<FONT Color=gray>' ''Consente di tenere funzionante il programma. Basterà premere "Invio" per terminare.''</font> | <FONT Color=gray>' ''Consente di tenere funzionante il programma. Basterà premere "Invio" per terminare.''</font> | ||
− | + | Input s | |
− | + | pl.Stop | |
− | + | pl.Close | |
− | + | Print "Termine programma !" | |
− | + | End | |
− | |||
Versione delle 19:09, 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. Basterà premere "Invio" per terminare. Input s pl.Stop pl.Close Print "Termine programma !" End