Ottenere un file WAV da un file Midi con le funzioni esterne del API di FluidSynth
Da Gambas-it.org - Wikipedia.
Versione del 4 mag 2016 alle 16:25 di Vuott (Discussione | contributi)
Con le risorse della libreria Libfluidsynth è possibile ottenere un file WAV da un file Midi.
E' necessario avere istallata e richiamare in Gambas la libreria dinamica condivisa: "libfluidsynth:1.5.2"
Mostriamo di seguito un esempio a riga di comando:
Library "libfluidsynth:1.5.2" ' fluid_settings_t* new_fluid_settings(void) ' Create a new settings object. Private Extern new_fluid_settings() As Pointer ' fluid_synth_t * new_fluid_synth(fluid_settings_t * settings) ' Create new FluidSynth instance. Private Extern new_fluid_synth(settings As Pointer) As Pointer ' int fluid_is_soundfont(const char * filename) ' Check if a file is a SoundFont file. Private Extern fluid_is_soundfont(filename As String) As Integer ' int fluid_synth_sfload(fluid_synth_t * synth, const char * filename, nt reset_presets) ' Load a SoundFont file. Private Extern fluid_synth_sfload(synth As Pointer, filename As String, reset_presets As Integer) As Integer ' int fluid_settings_getnum(fluid_settings_t* settings, const char *name, double* val) ' Get the numeric value of a named setting. Private Extern fluid_settings_getnum(settings As Pointer, name As String, dval As Pointer) As Integer ' fluid_player_t* new_fluid_player(fluid_synth_t * synth) ' Create a new MIDI player. Private Extern new_fluid_player(synth As Pointer) As Pointer ' int fluid_is_midifile(const char *filename) ' Check if a file is a MIDI file. Private Extern fluid_is_midifile(filename As String) As Integer ' int fluid_player_add(fluid_player_t * player, Const char * midifile) ' Add a MIDI file to a player queue. Private Extern fluid_player_add(player As Pointer, midifile As String) As Integer ' int fluid_player_play(fluid_player_t * player) ' Activates play mode for a MIDI player if not already playing. Private Extern fluid_player_play(player As Pointer) As Integer ' int fluid_synth_write_s16(fluid_synth_t* synth, int len, void* lout, int loff, int lincr, void* rout, int roff, int rincr) ' Synthesize a block of 16 bit audio samples to audio buffers. Private Extern fluid_synth_write_s16(synth As Pointer, ilen As Integer, luot As Short[], loff As Integer, lincr As Integer, rout As Short[], forr As Integer, rincr As Integer) As Integer ' int fluid_player_get_status(fluid_player_t * player) ' Get MIDI player status. Private Extern fluid_player_get_status(player As Pointer) As Integer ' int delete_fluid_player(fluid_player_t * player) ' Delete a MIDI player instance. Private Extern delete_fluid_player(player As Pointer) As Integer ' int delete_fluid_synth(fluid_synth_t * synth) ' Delete a FluidSynth instance. Private Extern delete_fluid_synth(synth As Pointer) As Integer ' void delete_fluid_settings(fluid_settings_t * settings) ' Delete the provided settings object. Private Extern delete_fluid_settings(settings As Pointer) Public Sub Main() End
Riferimenti
Pagina in costruzione !