Estrarre in formato testuale i dati di un file Midi con le funzioni esterne del API di Libsmf

Da Gambas-it.org - Wikipedia.
Versione del 15 dic 2014 alle 08:27 di Vuott (Discussione | contributi) (Creata pagina con 'La libreria '''Libsmf''' consente di gestire i file Midi. Per poter fruire nei programmi Gambas le sue risorse, è necessario installare e richiamare la libreria condivisa: ...')

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

La libreria Libsmf consente di gestire i file Midi.


Per poter fruire nei programmi Gambas le sue risorse, è necessario installare e richiamare la libreria condivisa: "libsmf:0.0.0"


Mostriamo di seguito un semplice esempio per ottenere in formato testuale gli eventi Midi presenti in uno standard Mdi file:

Library "libsmf:0.0.0"

' smf_t* smf_load (const char * file_name)
' Loads SMF file.
Private Extern smf_load(file_name As String) As Pointer

' smf_event_t *   smf_get_next_event (smf_t *smf)
' Next event, in time order, or NULL, if there are none left.
Private Extern smf_get_next_event(smf_t As Pointer) As Pointer

' char * smf_event_decode (const smf_event_t *event)
' Textual representation of the event given, or NULL, if event is unknown.
Private Extern smf_event_decode(smf_event As Pointer) As String


Public Sub Main()

 Dim smf, evento As Pointer
 Dim durata As Float
 
  smf = smf_load("/percorso/del/file.mid")
   
  evento = smf_get_next_event(smf)
   
  While IsNull(evento) = False
     
    Print smf_event_decode(evento)
   
    evento = smf_get_next_event(smf)
  
  Wend

End



Riferimenti