fluid-dev
[Top][All Lists]
Advanced

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

[fluid-dev] SF2.01 section 8.1.3 # 37


From: *simple*
Subject: [fluid-dev] SF2.01 section 8.1.3 # 37
Date: Thu, 4 Apr 2013 16:34:07 +0800

Hi,
 
In fluid 1.1.6, fluid_voice.c, line 1010,
 
 
  case GEN_VOLENVDECAY:               /* SF2.01 section 8.1.3 # 36 */
  case GEN_VOLENVSUSTAIN:             /* SF2.01 section 8.1.3 # 37 */
  case GEN_KEYTOVOLENVDECAY:          /* SF2.01 section 8.1.3 # 40 */
    y = 1.0f - 0.001f * _GEN(voice, GEN_VOLENVSUSTAIN);
    fluid_clip(y, 0.0f, 1.0f);
    count = calculate_hold_decay_buffers(voice, GEN_VOLENVDECAY, GEN_KEYTOVOLENVDECAY, 1); /* 1 for decay */
    fluid_voice_update_volenv(voice, FLUID_VOICE_ENVDECAY,
                            count, 1.0f, count ? -1.0f / count : 0.0f, y, 2.0f);
    break;
From the souce code, the sustain level is directly read out from GEN as a float cofficient. But according to the SF2.01 spec section 8.1.3, the value stored in GEN#37 is in unit of centibels.
 
Could anyone please check if this is a bug here, or my mis-understanding? Thanks
 
 
Stan Zhang (China, sorry for my poor english)

reply via email to

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