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:28 di Vuott (Discussione | contributi)
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