Differenze tra le versioni di "Eseguire un file MIDI mediante il componente gb.sdl.sound"
Riga 1: | Riga 1: | ||
− | Il componente ''gb.sdl.sound'' permette di riprodurre anche i file Midi in Gambas mediante la sua Classe ''Music''. | + | Il componente ''gb.sdl.sound'' permette di riprodurre anche i file Midi in Gambas mediante la sua Classe ''Music'', consente di ascoltare <Span style="text-decoration:underline">un solo</span> file Midi per volta. |
E' inoltre necessario aver installato il file banco di suoni di default di Timidity: "''/usr/share/sounds/sf2/<FONT color=#B22222>TimGM6mb.sf2</font>''", oppure di FluidSynth: "''/usr/share/sounds/sf2/<FONT color=#B22222>FluidR3_GM.sf2</font>''". | E' inoltre necessario aver installato il file banco di suoni di default di Timidity: "''/usr/share/sounds/sf2/<FONT color=#B22222>TimGM6mb.sf2</font>''", oppure di FluidSynth: "''/usr/share/sounds/sf2/<FONT color=#B22222>FluidR3_GM.sf2</font>''". | ||
− | ==Uso della Classe ''Music'' | + | ==Uso della Classe ''Music'' in ''ambiente grafico''== |
− | + | Mostriamo di seguito un codice essenziale per eseguire un file Midi in ambiente grafico: | |
− | |||
− | |||
'''Public''' Sub Button1_Click() | '''Public''' Sub Button1_Click() | ||
With <FONT color=#B22222>Music</font> | With <FONT color=#B22222>Music</font> | ||
− | .Load("''percorso/del/file.mid''") | + | .Load("''/percorso/del/file.mid''") |
.Play() | .Play() | ||
End With | End With | ||
+ | |||
+ | Do | ||
+ | <FONT color=gray>' ''Mostra il tempo trascorso durante l'esecuzione:''</font> | ||
+ | Print CStr(Date(0, 0, 0, 0, 0, 0, Music.Pos * 1000)) | ||
+ | Loop Until Music.State = Music.Stopped | ||
'''End''' | '''End''' | ||
+ | Il ciclo, in questo caso, è applicato con il solo intento di mostrare il tempo trascorso durante l'esecuzione del file Midi. | ||
===Indicazione del tempo trascorso di un file Midi=== | ===Indicazione del tempo trascorso di un file Midi=== | ||
La classe "''Music''" consente di verificare il tempo trascorso dall'inizio dell'escuzione di un file Midi mediante l'uso del metodo "''Pos''". | La classe "''Music''" consente di verificare il tempo trascorso dall'inizio dell'escuzione di un file Midi mediante l'uso del metodo "''Pos''". | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ==Indicazione dello Stato== | + | ===Indicazione dello Stato=== |
La proprietà ''.State'' della Classe ''Music'' ci informa lo stato della risorsa, restituendo un intero. | La proprietà ''.State'' della Classe ''Music'' ci informa lo stato della risorsa, restituendo un intero. | ||
Music.State As Integer | Music.State As Integer | ||
Riga 62: | Riga 31: | ||
− | == | + | ==Uso della Classe ''Music'' con un'applicazione ''a riga di comando''== |
− | In questo caso | + | In questo caso è assolutamente necessario dopo il metodo ''.Play()'' della Classe ''Music'' attivare un ciclo, che avrà termine solo quando lo status della Classe ''Music'' si troverà nella situazione rappresentata dalla costante ''Stopped'': |
'''Public''' Sub Main() | '''Public''' Sub Main() | ||
Versione delle 03:18, 31 dic 2014
Il componente gb.sdl.sound permette di riprodurre anche i file Midi in Gambas mediante la sua Classe Music, consente di ascoltare un solo file Midi per volta.
E' inoltre necessario aver installato il file banco di suoni di default di Timidity: "/usr/share/sounds/sf2/TimGM6mb.sf2", oppure di FluidSynth: "/usr/share/sounds/sf2/FluidR3_GM.sf2".
Indice
Uso della Classe Music in ambiente grafico
Mostriamo di seguito un codice essenziale per eseguire un file Midi in ambiente grafico:
Public Sub Button1_Click() With Music .Load("/percorso/del/file.mid") .Play() End With Do ' Mostra il tempo trascorso durante l'esecuzione: Print CStr(Date(0, 0, 0, 0, 0, 0, Music.Pos * 1000)) Loop Until Music.State = Music.Stopped End
Il ciclo, in questo caso, è applicato con il solo intento di mostrare il tempo trascorso durante l'esecuzione del file Midi.
Indicazione del tempo trascorso di un file Midi
La classe "Music" consente di verificare il tempo trascorso dall'inizio dell'escuzione di un file Midi mediante l'uso del metodo "Pos".
Indicazione dello Stato
La proprietà .State della Classe Music ci informa lo stato della risorsa, restituendo un intero.
Music.State As Integer
Se il valore ritornato è 1, allora la risorsa sta eseguendo il file Midi; se il valore ritornato è zero, allora il suo stato è "fermo".
Uso della Classe Music con un'applicazione a riga di comando
In questo caso è assolutamente necessario dopo il metodo .Play() della Classe Music attivare un ciclo, che avrà termine solo quando lo status della Classe Music si troverà nella situazione rappresentata dalla costante Stopped:
Public Sub Main() With Music .Load("percorso/del/file.mid") .Play() End With Do ' Mostra il tempo trascorso durante l'esecuzione: Print CStr(Date(0, 0, 0, 0, 0, 0, Music.Pos * 1000)) Loop Until Music.State = Music.Stopped End