Differenze tra le versioni di "Eseguire un file MIDI mediante il componente gb.sdl.sound"

Da Gambas-it.org - Wikipedia.
 
(2 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
Va premesso che attualmente il componente ''gb.sdl.sound'' è stato sostituito dal componente ''[[Eseguire_un_file_MIDI_mediante_il_componente_gb.sdl2.audio|gb.sdl2.audio]]''.
+
#REDIRECT [[Eseguire_un_file_MIDI_mediante_il_componente_gb.sdl2.audio]]
 
 
Esso è, per ora, ancora utilizzabile scegliendo nell'IDE di Gambas, all'atto della creazione di un nuovo progetto, il ''tipo'' di progetto ''Applicazione SDL''.
 
 
 
 
 
----
 
 
 
 
 
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>''".
 
 
 
 
 
==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 <FONT color=#B22222>Music</font>
 
    .Load("''/percorso/del/file.mid''")
 
    .Play()
 
  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))
 
<FONT color=gray>' ''Un brevissima attesa consente di agire sugli eventuali oggetti posti sul Form:''</font>
 
    Wait 0.001
 
  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 <FONT color=#B22222>Music</font>
 
    .Load("''/percorso/del/file.mid''")
 
    .Play()
 
  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'''
 

Versione attuale delle 07:38, 12 giu 2020