Differenze tra le versioni di "Estrarre in formato testuale i dati di un file Midi con le funzioni esterne del API di Libsmf"
Da Gambas-it.org - Wikipedia.
(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: ...') |
|||
Riga 12: | Riga 12: | ||
Private Extern smf_load(file_name As String) As Pointer | Private Extern smf_load(file_name As String) As Pointer | ||
− | <FONT Color=gray>' ''smf_event_t * | + | <FONT Color=gray>' ''smf_event_t * smf_get_next_event (smf_t *smf)'' |
' ''Next event, in time order, or NULL, if there are none left.''</font> | ' ''Next event, in time order, or NULL, if there are none left.''</font> | ||
Private Extern smf_get_next_event(smf_t As Pointer) As Pointer | Private Extern smf_get_next_event(smf_t As Pointer) As Pointer |
Versione delle 08:28, 15 dic 2014
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