[Top][All Lists]

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

Re: [fluid-dev] Short note durations on percussion channel

From: S. Christian Collins
Subject: Re: [fluid-dev] Short note durations on percussion channel
Date: Thu, 08 Oct 2009 23:45:14 -0500
User-agent: Thunderbird (X11/20090817)


Just to clarify, note durations wouldn't be extended if they were already long enough--we'd simply be setting a minimum possible note duration (8-10 ms) to allow the note to get through the attack phase.  As far as I can tell from my testing in the past, this appears to be similar to the technique that Creative uses in their SoundFont playback engine, because I can't find any evidence that they are ever ignoring note-offs.

I believe my idea solves the drums-not-sounding problem without creating any new ones.  It completely solves the headache of "which notes do we still need note-offs for", it eliminates the risk of possible "stuck" notes.  It can be used for GM/GS/XG, whatever.  I would even say that you could use this technique by default regardless of whether GM/GS mode is enabled or not, because there are *no* adverse effects.  Only benefits.

The only case in which this wouldn't work is if the SoundFont designer foolishly created percussion sounds with no release phase (very uncommon AFAIK), in which case FluidSynth should not have to accommodate for bad preset design.


address@hidden wrote:
Quoting "S. Christian Collins" <address@hidden>:

I think your resolution is reasonable, and it seems it will only really
affect GM/GS MIDI files, and not other usage, so that's good.

The reason I brought up the GS sound effects bank (patch 56 on the
percussion channel, if memory serves me correctly) is that many of the
sounds are looped, and would respond badly to having no note-off event,
essentially leaving them looping indefinitely throughout the song.
Also, there are a few other exceptions in the GS percussive presets
that could cause problems, such as the different order of percussion
sounds in some of the patches.  Examples include the Orchestral bank
(patch 48), which includes a sustained applause sound effect as one of
its notes, and the brushed kit, which has brush swirls that should
respond to length.

This is why I proposed simply setting a minimum note length value for
the percussion channel in GM/GS mode.  If you set the minimum note
length to 10ms, for example, that would cause all percussion
instruments to sound properly--short sounds will play their duration
because of the long release values SoundFont creators use on such
sounds, and long sounds won't hold out indefinitely due to a lack of
note-off.  I can't think of any downsides to this solution.


Hello Chris,

Your concerns bring up the question as to what the standard is in regards to percussion for GS, which I admit I was overlooking.  GS is an extension to GM, but the statement about ignoring percussion note-offs was in a GM standard document.  This means that there are likely additional rules for the extended sounds/patches in the GS instrument map.  I'm not sure if there is a specific definition, in regards to GS and percussion instrument note-offs, but if someone knows of a document describing this, that would be helpful.  I found mention on the net that there are SYSEX messages for turning on/off the handling of note-off messages, though I haven't found a direct reference to the particular SYSEX message yet, except perhaps one that designates which channels are Percussion channels, documented in the manual for the SC-8850 here:

I suppose I don't really like the idea of extending the note length by a specific amount, simply because there isn't anything that says we should do it that way.  Checking to see if it works properly would require testing many MIDI files, etc.  The amount of the note extension would affect the result as well.  Perhaps we should limit the note-off ignore logic to just the Standard drum kit and other kits which are based on it.  An additional thing we could add, is to always handle note-offs for looped instruments.

I'd like to try and resolve the missing percussion notes issue and at the same time not introduce any other problems.  We can start perfecting the GM/GS handling in future versions.


reply via email to

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