|
From: | Jim Henry |
Subject: | Re: [fluid-dev] Making MIDI player read from a buffer |
Date: | Mon, 18 Oct 2010 20:38:00 -0700 |
User-agent: | Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.9) Gecko/20100915 Lightning/1.0b2 Thunderbird/3.1.4 |
Pedro,It sounds like you are suggesting a feature that the Miditzer virtual organ uses. A number of years ago Sebastian Frippiat suggested extending FluidSynth so that the MIDI Player would pass the MIDI events to the caller rather than playing them. At the time there was no interest in his proposal. I think this was in part because he wanted just to use FluidSynth as a MIDI file reader and it was felt that was not within the scope of FluidSynth's purpose. He did post patches for doing this. We picked up those patches for the Miditzer and they are in the version of FluidSynth used with the Miditzer.
As Pedro suggests, the Miditzer takes MIDI input, including the input from the FluidSynth MIDI file reader, and vigorously manipulates the MIDI data before sending it to FluidSynth to be realized in order to create the organ performance paradigm which just doesn't fit within the standard MIDI specification. (By that I mean there is no way to fully encode the performance of an organ according to the MIDI specification.)
If there is now interest in extending the FluidSynth MIDI file player to send the MIDI messages to the caller for processing rather than playing them, I certainly support such an effort.
Jim Henry On 10/18/2010 3:02 PM, Pedro Lopez-Cabanillas wrote:
Talking about my personal interests, MIDI applications often need to parseMIDI files to manipulate MIDI events (sometimes interactively) before sending the events to the MIDI sequencer engine. For instance, to change the instrument maps of melodic and percussion instruments (MIDI mappers), or to manipulate controller events (i.e. MIDI volume), muting MIDI channels, transposing MIDI notes on melodic channels, synchronous display of SMF embedded song lyrics, and so on. All these functions belong not only to MIDI editors, but also to players like KMid (http://kmid2.sourceforge.net). This program has backends using the OS native sequencer services for Linux, Windows and MacOSX, and I would like to implement a pure FluidSynth backend. To do that, FluidSynth needs some new features for manipulating the playlists, but more important: a new mechanism in the MIDI player to route selected events to the client application, that may change them before playing. Opinions are welcome. Regards, Pedro
[Prev in Thread] | Current Thread | [Next in Thread] |