[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [fluid-dev] Some questions about Midi playback

From: Sebastien Frippiat
Subject: Re: [fluid-dev] Some questions about Midi playback
Date: Fri, 23 Jun 2006 11:24:52 +0200
User-agent: Mozilla Thunderbird 1.0.7-1.4.1 (X11/20050929)

Hi again.

- Is it possible to modify tempo such as the Midi file is playing twice faster than as specified in the Midi file (I tried fluid_player_set_midi_tempo <http://www.nongnu.org/fluid/api/midi_8h.html#a33> but it didn't worked well for this purpose) ? I managed to do it by modifying the source code : it is quite easy to multiply/divide the tempo when receiving tempo events. I hard-coded the multiplier to do the test. I would gladly write a clean way to do it (by adding something like fluid_player_set_midi_tempo_multiplier by example) if it would interest someone. However I would like to know if there is clean way to do it without modify the source code of FluidSynth. - Same question for the velocity (easy to change it when receiving NoteOn and NoteOff events).

As I need to progress on this, I went on my way to modify fluidsynth source code. You'll find attached a little patch to apply my modifications. Just cd to the fluidsynth-1.0.7 directory, copy the patch file and run the following :
patch -u -i fluidsynth-tempo-velocity.patch -p 1

Then you can ./configure and make the library.

Besides, is it possible, when reading a Midi file, not to send the data to the synthetizer but instead forward the Midi messages to a Midi device ? I guess it would require me to have something like a callback when reading the file but I didn't find it. Again, I think it would be pretty easy to add it to the library. I searched the doc and the source code for informations about the router but it seems it is only used for Midi input (am I wrong ?). It would be useful to add something like routers when playing Midi file (and therefore consider Midi file and Midi file player as Midi input).

Ok, as I worked a bit within the source code and I played a bit with it, I have some more remarks about what I'm trying to do. I know that fluidsynth is about playing Midi files / data through a software synthetizer. However, I'm more interested in using the Midi card to do that and to be able to use other Midi renderering devices. I'm not a music expert but I think that modifying the fluid_midi_send_event (in fluid_midi.c) function could work.

Any ideas, remarks ? (please...)

Thank you,
Sebastien Frippiat

reply via email to

[Prev in Thread] Current Thread [Next in Thread]