[Top][All Lists]

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

Re: [fluid-dev] MIDI mode

From: josh
Subject: Re: [fluid-dev] MIDI mode
Date: Thu, 08 Oct 2009 11:37:51 -0700
User-agent: Internet Messaging Program (IMP) H3 (4.1.6)

Hello David,

Quoting David Henningsson <address@hidden>:

So I went ahead and added GM On/Off and GS Reset SYSEX handling.

You told me to let you know when I think things should have been done
differently; so here it goes. I think implementing a synth.midi-mode
setting at this time is bad since it gives the impression of a decent
level of GM/GS compatibility, and we won't get that far during this month.
I suggested a compromise (for solving the note-off-percuss) in an email a
few days ago, did you take that into consideration?

// David

Yes I did take your suggestions into consideration. I probably should have responded before just going ahead with implementing things, kind of a bad habit of mine, which probably comes from many years of working solo on projects.

I'll quote your suggestions below:

1) We skip synth.midi-mode=gm/gs/xg for now, since it seems to require
additional thought and can delay the release of 1.1.0.

2) We add synth.note-off-percuss=ignore/process which defaults to ignore
(and "process" will behave as today). This will ignore all note off's on
channel 10 (#9) for now, so people will have to live with long guiros
unless they change the setting. This seems quick and easy to implement.

The objection I have to adding a synth.note-off-percuss setting, is that it doesn't really address the issue directly. I think we are mainly addressing GM/GS/XG MIDI modes for playback of MIDI files. By adding that setting we would either need to continue supporting it and add synchronization with a midi-mode setting, when it is added, or simply remove it in future versions. I think it would be better to simply add the midi-mode parameter now, knowing that it isn't fully GM/GS/XG compliant, but that it is moving in that direction. Users have already been using FluidSynth in GM/GS mode, expecting it to work accordingly. Anything we do to make it more GM/GS compliant, the better. This change will mean that many more GM/GS MIDI files work as expected, though there will still be some that don't behave correctly due to other areas of non-compliance.

In weighing out the 2 options, I think adding synth.midi-mode now, makes the most sense as far as keeping backwards compatibility.

If you still feel strongly that this isn't the right way to go, please do convince me otherwise! :)

3) After 1.1.0, we could consider implementing more of gm/gs/xg,
including switching between them, and reconsider things as delaying
note-offs (at least as a setting), and specials for the long guiro.

In the interest of making more MIDI files "just work", I think having SYSEX auto-selection is pretty important. I doubt users will manually set the MIDI mode for the particular file they are playing (they probably don't even know or care what standard it is using). They simply just want it to work. For this reason, I think leaving it as a manual setting only, wont really provide much benefit.

I think the other problem is related to hooking up a MIDI drum pad, which has very short duration notes. The user could either switch on GM/GS mode manually or perhaps do some MIDI router tricks to extend the note duration (not sure if this is possible currently, but seems like a good thing to have). I feel this is a separate issue related to a MIDI input device, since you might want to use it on a non-percussion channel also.

Hope that helps clarify my own thoughts on resolving these issues. A decision needs to be made as to what we do for 1.1.0. This initial code change seems simple enough and should be easy to extend in a backwards compatible manner. If you still feel very strongly that this isn't the right direction, we can simply remove it and hold off till the next version.


reply via email to

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