[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [fluid-dev] fluidsynth plugin for the Music Player Daemon
From: |
Pedro Lopez-Cabanillas |
Subject: |
Re: [fluid-dev] fluidsynth plugin for the Music Player Daemon |
Date: |
Sun, 22 Feb 2009 11:25:17 +0100 |
User-agent: |
KMail/1.9.6 (enterprise 20070904.708012) |
Hi,
Although some of your complains are valid, I would like to add some comments.
Max Kellermann wrote:
> - there is no way to tell whether the "player" has finished playing a
> MIDI file - the "status" attribute is not exposed. Even the
> "fluidsynth" program does not exit when the song is finished,
> because it doesn't know either.
This is not true. The command line program doesn't exit because it has a
shell, that remains waiting for commands when the player has finished. If you
don't need a shell and want the CLI program to exit when the song has
finished, simply do:
$ fluidsynth -i font.sf2 tune.mid
The "-i" switch is documented:
-i, --no-shell
Don't read commands from the shell [default = yes]
For programs using the library, there is a function fluid_player_join() that
works like pthread_join() waiting until the player terminates.
> - the "player" insists on playing in real-time, all my attempts to
> fill MPD's internal audio buffer as fast as possible failed, there
> was only silence in the buffer after the fluid_synth_write_s16()
> call. The same might be true when MPD is paused - I suspect
> fluidsynth will continue playback, but havn't tried yet (wasted more
> than enough time with figuring out the API). I don't want
> fluidsynth to make any assumptions on the wall clock - I want to
> read PCM samples out of it whenever I feel like doing so, as fast as
> the CPU can handle it. Just like all the other decoder libraries.
This is a planned feature, see ticket #15 (add support for faster than
realtime MIDI file rendering.) http://fluidsynth.resonance.org/trac/ticket/15
The current implementation using wall clock timing may be useful for other
scenarios, and should also be enhanced.
Regards,
Pedro