j...@resonance.org skrev: >> As I said in a comment to http://fluidsynth.resonance.org/trac/ticket/1 >> , the problem is that we never get through the attack phase. So I still >> think delaying the note-off could be a good workaround. But Christian >> could perhaps suggest a good default value for the delay? > > I don't really like that solution, since it isn't really the defined > behavior for GM/GS and the delay would be awkward to get right with > different SoundFont files.
To meet those concerns, the delay could be configurable. A practical delay for all hardware synths is the MIDI protocol, where you have at least 1 ms between note-on and note-off, which actually is enough for most of the sounds. On the other hand, not responding to note-off at all seems more GM standard. >>>> Perhaps something like this would be adequate: >>>> midi.mode = raw, gm, no-off-percuss >>>> raw: Don't do any special percussion channel handling >>>> gm: Ignore note-offs for all but fast Whistle and Guiro on percussion >>>> channel >>>> no-off-percuss: Ignore all note-offs on percussion channel >> >> Assuming midi.mode (or better, synth.midi-mode) will be used to change >> between gm, gs, xg etc, it does not make sense to add no-off-percuss to >> that series since it might control more things (e g ignore bank >> selection in GM mode). >> >> Better to use a separate setting for this problem then, something like >> synth.note-off-percuss=delay/ignore/process. And for now, hardcode >> percussion channel to 10 (as already done in a few places). > > Yeah, true. I started off having it just be a value for something like > note-off-percuss, but changed it when I started to consider a MIDI mode > parameter as a good idea, which is the reason why it was a little > convoluted. Lets just add a synth.midi-mode parameter with the options: > plain, gm, gs and xg and SYSEX message handling for entering and exiting > those modes. We should perhaps have a way for the user to override the > mode though and not allow SYSEX changes. Here's a suggestion, somewhat of a compromise. 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. 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. // David _______________________________________________ fluid-dev mailing list fluid-dev@nongnu.org http://lists.nongnu.org/mailman/listinfo/fluid-dev