[linux-audio-user] FluidSynth problem WAS:Recommendatio wanted

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: [linux-audio-user] FluidSynth problem WAS:Recommendatio wanted
From: Joerg Anders (j.anders_AT_informatik.tu-chemnitz.de)
Date: Wed Nov 26 2003 - 13:33:03 EET


On Wed, 26 Nov 2003, Robert Jonsson wrote:

> Unfortunately the mailinglist(and project) is pretty much in hybernation at
> the moment so I understand perfectly that your propositions have not been
> implemented.
> If you have a good idea of what the problem is, it would be great if you tried
> and poked around in the Fluidsynth code yourself (probably not what you
> wanted to hear ;)

I changed something in

   fluidsynth-1.0.3/src/fluid_voice.c

   $ diff -au fluidsynth-1.0.3/src/fluid_voice.c fluidsynth-1.0.3/src/fluid_voice.c.new
   --- fluidsynth-1.0.3/src/fluid_voice.c 2003-08-19 21:45:45.000000000 +0200
   +++ fluidsynth-1.0.3/src/fluid_voice.c.new 2003-11-26 12:30:25.000000000 +0100
   @@ -1359,6 +1359,7 @@
      case GEN_VOLENVHOLD: /* SF2.01 section 8.1.3 # 35 */
      case GEN_KEYTOVOLENVHOLD: /* SF2.01 section 8.1.3 # 39 */
        count = calculate_hold_decay_buffers(voice, GEN_VOLENVHOLD, GEN_KEYTOVOLENVHOLD, 0); /* 0 means: hold */
   + if (count < 98) count = 19464;
        voice->volenv_data[FLUID_VOICE_ENVHOLD].count = count;
        voice->volenv_data[FLUID_VOICE_ENVHOLD].coeff = 1.0f;
        voice->volenv_data[FLUID_VOICE_ENVHOLD].incr = 0.0f;
   @@ -1370,6 +1371,7 @@
      case GEN_VOLENVSUSTAIN: /* SF2.01 section 8.1.3 # 37 */
      case GEN_KEYTOVOLENVDECAY: /* SF2.01 section 8.1.3 # 40 */
        count = calculate_hold_decay_buffers(voice, GEN_VOLENVDECAY, GEN_KEYTOVOLENVDECAY, 1); /* 1 for decay */
   + if (count < 2000) count = 19464;
        voice->volenv_data[FLUID_VOICE_ENVDECAY].count = count;
        voice->volenv_data[FLUID_VOICE_ENVDECAY].coeff = 1.0f;
        voice->volenv_data[FLUID_VOICE_ENVDECAY].incr = count ? -1.0f / count : 0.0f;

This helped for string envelope. But this cannot be the
solution! This is barbarianism!

My opinion is: The fluidsynth misinterprets some very
rare statements in SF2 format. But I don't know anything
about SF2 :-((

-- 
J.Anders, Chemnitz, GERMANY (ja_AT_informatik.tu-chemnitz.de)


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Wed Nov 26 2003 - 13:31:47 EET