Eseguire un file MIDI mediante il componente gb.openal

Da Gambas-it.org - Wikipedia.
Versione del 31 lug 2013 alle 05:25 di Vuott (Discussione | contributi) (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...')

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

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.


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.