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

Da Gambas-it.org - Wikipedia.

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
  
  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