Differenze tra le versioni di "Eseguire un file MIDI mediante il componente gb.openal"
(Creata pagina con 'Con la revisione 5753 di Gambas-3 è stato aggiunto il componente: ''gb.openal'' che utilizza le risorse dell'[http://it.wikipedia.org/wiki/Application_programming_interface A...') |
|||
Riga 5: | Riga 5: | ||
SetStreamPatchset | SetStreamPatchset | ||
appartenente alla Classe ''Alure''. |[[#Note|1]]| | appartenente alla Classe ''Alure''. |[[#Note|1]]| | ||
− | <BR>Questa funzione specifica il patchset da utilizzare per i flussi MIDI. | + | <BR>Questa funzione specifica il ''patchset'' da utilizzare per i flussi MIDI. Tale ''patchset'' è sostanzialmente un file contenente il banco di suoni (''soundfont bank'') con estensione .sf2 . Pertanto sarà sufficiente in quel parametro indicare il percorso del file ''soundfont'' .sf2 che si intende utilizzare. |
Versione delle 05:27, 31 lug 2013
Con la revisione 5753 di Gambas-3 è stato aggiunto il componente: gb.openal che utilizza le risorse dell'API di Openal.
Oltre ai file audio, con il componente gb.openal è possibile eseguire anche i file Midi, utilizzando in particolare la funzione
SetStreamPatchset
appartenente alla Classe Alure. |1|
Questa funzione specifica il patchset da utilizzare per i flussi MIDI. Tale patchset è sostanzialmente un file contenente il banco di suoni (soundfont bank) con estensione .sf2 . Pertanto sarà sufficiente in quel parametro indicare il percorso del file soundfont .sf2 che si intende utilizzare.
Mostriamo di seguito un semplice codice per eseguire un file Midi:
Public Sub Button1_Click() Dim percorsoFile As String = "/percorso/del/file.mid" Dim src, lungh, ast, isdone As Integer Dim ast As AlureStream ' Inizializza la libreria "Alure": Alure.InitDevice(Null, Null) src = Al.GenSources(1)[0] lungh = Stat(percorsoFile).Size ast = Alure.CreateStreamFromFile(percorsoFile, lungh, 0) Alure.SetStreamPatchset(ast, "/percorso/del/soundfont/file.sf2") ' Esegue il flusso di dati Midi. ' Il terzo parametro della funzione rappresenta il numero dei buffer utilizzati da accodare alla fonte di "OpenAL". ' Ogni buffer verrà riempito con la lunghezza del "chunk" specificato quando il flusso è stato creato. ' Tale valore nell'esecuzione di un file Midi deve essere di almeno 2. Alure.PlaySourceStream(src, ast, 3, 0) While isdone = 0 Alure.Update() Wend End
Note
[1] La Classe Alure del componente gb.openal consente di gestire le funzioni di ALURE. ALURE, libreria di supporto di Openal.