Differenze tra le versioni di "Eseguire un file MIDI mediante il componente gb.sdl2.audio"

Da Gambas-it.org - Wikipedia.
Riga 7: Riga 7:
  
  
Mostriamo un semplice esempio in applicazione grafica, nel quale si avrà anche la possibilità di arrestare e mettere in pausa l'esecuzione del file Midi:
+
Mostriamo un semplice esempio in applicazione grafica, nel quale si avrà anche la possibilità di arrestare, mettere in pausa l'esecuzione del file Midi e modificare il volume sonoro con uno ''Slider'':
 +
'''Public''' Sub Form_Open()
 +
 +
<FONT Color=gray>' ''Volendo modificare il volume audio durante l'esecuzione, dobbiamo caricare il file banco dei suoni subito all'apertura del Form:''</font>
 +
  Music.SoundFontPath = "''/percorso/del/soundfont/bank/file.sf2''"
 +
 +
  With Slider1
 +
    .MaxValue = 128   
 +
    .Value = 100
 +
  End With
 +
 
 +
  ValueBox1.Text = CStr(Slider1.Value)
 +
 +
'''End'''
 +
 +
 
  '''Public''' Sub Button1_Click()
 
  '''Public''' Sub Button1_Click()
 
   
 
   
 
   With Music
 
   With Music
    .SoundFontPath = "''/percorso/del/soundfont/bank/file.sf2''"
 
 
     .Load("''/percorso/del/file.mid''")
 
     .Load("''/percorso/del/file.mid''")
 
     .Play
 
     .Play
Riga 38: Riga 52:
 
   
 
   
 
  '''End'''
 
  '''End'''
 +
 +
 +
'''Public''' Sub Slider1_Change()
 +
 +
  Music.Volume = Slider1.Value
 +
 
 +
  ValueBox1.Text = CStr(Slider1.Value)
 +
 +
'''End'''
 +
  
  
In quest'altro esempio vien eseguito un file Midi con un'applicazione ''a riga di comando'':
+
In quest'altro esempio viene eseguito un file Midi con un'applicazione ''a riga di comando'':
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
   
 
   
Riga 61: Riga 85:
 
===Modificare il volume===
 
===Modificare il volume===
  
La Classe Music fornisce la proprietà .Volume per modificare appunto il volume audio dell'esecuzione. L'ambito dei valori possibili va da 0 a 128.
+
La Classe Music fornisce la proprietà ''.Volume'' per modificare appunto il volume audio dell'esecuzione. L'ambito dei valori possibili va da 0 a 128.
  
 
Esempio:
 
Esempio:
 
  Music.Volume = 110
 
  Music.Volume = 110

Versione delle 16:30, 2 gen 2015

Le risorse della libreria SDL2 per la gestione dell'audio e del Midi è stata implementata in Gambas attraverso il nuovo componente gb.sdl2.audio.
Va sottolineato che il componente gb.sdl2.audio può essere attivato anche indipendentemente dal componente gb.sdl2 .

Il componente fornisce per l'esecuzione dei file Midi la Classe Music. E' possibile eseguire un file Midi per volta.

E' necessario impostare nella proprietà Music.SoundFontPath il percorso del file banco dei suoni (soundfont bank) di formato .SF2 per la riproduzione dei suoni con il Midi.


Mostriamo un semplice esempio in applicazione grafica, nel quale si avrà anche la possibilità di arrestare, mettere in pausa l'esecuzione del file Midi e modificare il volume sonoro con uno Slider:

Public Sub Form_Open()

' Volendo modificare il volume audio durante l'esecuzione, dobbiamo caricare il file banco dei suoni subito all'apertura del Form:
 Music.SoundFontPath = "/percorso/del/soundfont/bank/file.sf2"

 With Slider1
   .MaxValue = 128    
   .Value = 100
 End With
  
 ValueBox1.Text = CStr(Slider1.Value)

End


Public Sub Button1_Click()

 With Music
   .Load("/percorso/del/file.mid")
   .Play
 End With

End


Public Sub ToggleButton1_Click()

 Select Case ToggleButton1.Value
   Case True
     Music.Pause
     ToggleButton1.Text = "Riprendi"
   Case False
     Music.Play
     ToggleButton1.Text = "Pausa"
 End Select

End


Public Sub Button2_Click()

 Music.Stop

End


Public Sub Slider1_Change()

 Music.Volume = Slider1.Value
  
 ValueBox1.Text = CStr(Slider1.Value)

End


In quest'altro esempio viene eseguito un file Midi con un'applicazione a riga di comando:

Public Sub Main()

' Impostiamo il percorso del file del banco di suoni ".sf2" che vogliamo utilizzare:
 Music.SoundFontPath = "/percorso/del/soundfont/bank/file.sf2"

 Music.Load("/percorso/del/file.mid")

 Music.Play

' Per l'esecuzione del file Midi in un'applicazione "a riga di comando" il ciclo è indispensabile:
 While Music.State = Music.Playing
' Mostra anche il tempo trascorso:
   Print CStr(Date(0, 0, 0, 0, 0, 0, Music.Pos * 1000))
 Wend

End


Modificare il volume

La Classe Music fornisce la proprietà .Volume per modificare appunto il volume audio dell'esecuzione. L'ambito dei valori possibili va da 0 a 128.

Esempio:

Music.Volume = 110