[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [fluid-dev] [API] get total number of synthesized audio frames
From: |
Tom M. |
Subject: |
Re: [fluid-dev] [API] get total number of synthesized audio frames |
Date: |
Thu, 27 Oct 2016 16:32:13 +0200 |
Hi Jean-Jacques,
thanks for your answer.
Well, meanwhile I'm using fluidsnyth's sequencer, since I have to
fiddle around with some MIDI CCs. So I decided to use libsmf to read
out midi files event by event and provide them to fluid_seq. And
libsmf also does the time calculation.
But thanks anyway.
Regards
Tom
2016-10-27 15:36 GMT+02:00 CERESA Jean-Jacques ENAC/ENAC
<address@hidden>:
> Hi Tom
>
> "..Thus is there any
> (simple) way to predict the total number of audioframes that will be
> generated when rendering a single midi file? Or how to get the total
> time this midi file will play?"
>
> Taking account the fact that a MIDI file may contains "tempo changes
> events",
> the only way to known by advance the total time this file will play is to
> write
> a procedure that look inside the file and compute this time. The principle
> to do that
> is not too complicated, if you intend to do that and don't know how to do ,
> i think i can
> give the way.
>
> regards
>
> jjc
>
> Le 03/10/16, "Tom M." <address@hidden> a écrit :
>
> Hi,
>
> I'm trying to write a wrapper to make fluidsynth useable with my own
> audio player. Instead of retrieving small buffers with decoded PCM, my
> player holds the whole decoded song in memory. Thus is there any
> (simple) way to predict the total number of audioframes that will be
> generated when rendering a single midi file? Or how to get the total
> time this midi file will play?
>
> Given the following example code:
>
> int main(int argc, char** argv)
> {
> fluid_settings_t* settings;
> fluid_synth_t* synth;
> fluid_player_t* player;
>
> settings = new_fluid_settings();
> fluid_settings_setstr(settings, "player.timing-source", "sample");
> fluid_settings_setint(settings, "synth.parallel-render", 0);
>
> synth = new_fluid_synth(settings);
> player = new_fluid_player(synth);
>
> fluid_synth_sfload(synth, "someSF.sf2", 0);
> fluid_player_add(player, "someMidi.mid");
>
> /* play the midi files, if any */
> fluid_player_play(player);
>
> // TODO:
>
> // somehow get the total number of audio frames, that will be
> generated by fluid_synth_process() to render whole song
>
> // then, synthesize the audio through a single call to
> fluid_synth_process()
>
> /* wait for playback termination */
> fluid_player_join(player);
> /* cleanup */
> delete_fluid_player(player);
> delete_fluid_synth(synth);
> delete_fluid_settings(settings);
> return 0;
> }
>
>
> Tom
>
> _______________________________________________
> fluid-dev mailing list
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/fluid-dev
>
>
> _______________________________________________
> fluid-dev mailing list
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/fluid-dev
>
- [fluid-dev] [API] get total number of synthesized audio frames, Tom M., 2016/10/03
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Re: [fluid-dev] [API] get total number of synthesized audio frames, CERESA Jean-Jacques ENAC/ENAC, 2016/10/27
- Re: [fluid-dev] [API] get total number of synthesized audio frames,
Tom M. <=