Table Envelope Velocity Attack Modulation Bug



  • I've discovered a bug with the table envelope when using a velocity attack modulator, it only seems to happen with a low attack time (upto about 25ms). It's probably best to just try the example I'm posting to see the results. Basically if you play a velocity above 64 you get silence.

    <?xml version="1.0" encoding="UTF-8"?>
    
    <Processor Type="SynthChain" ID="Master Chain" Bypassed="0" Gain="1" Balance="0"
               VoiceLimit="64" KillFadeTime="20" IconColour="0" packageName=""
               views="32.rk1bzA..........................PFQfDKe...." currentView="-1">
      <EditorStates BodyShown="0" Visible="1" Solo="0" Folded="0" InterfaceShown="0"/>
      <ChildProcessors>
        <Processor Type="MidiProcessorChain" ID="Midi Processor" Bypassed="0">
          <EditorStates BodyShown="1" Visible="0" Solo="0" Folded="1"/>
          <ChildProcessors/>
        </Processor>
        <Processor Type="ModulatorChain" ID="GainModulation" Bypassed="0" Intensity="1">
          <EditorStates BodyShown="1" Visible="0" Solo="0" Folded="1"/>
          <ChildProcessors/>
        </Processor>
        <Processor Type="ModulatorChain" ID="PitchModulation" Bypassed="1" Intensity="0">
          <EditorStates BodyShown="1" Visible="0" Solo="0" Folded="1"/>
          <ChildProcessors/>
        </Processor>
        <Processor Type="EffectChain" ID="FX" Bypassed="0">
          <EditorStates BodyShown="1" Visible="0" Solo="0" Folded="1"/>
          <ChildProcessors/>
        </Processor>
        <Processor Type="SineSynth" ID="Sine Wave Generator" Bypassed="0" Gain="0.25"
                   Balance="0" VoiceLimit="128" KillFadeTime="20" IconColour="0"
                   OctaveTranspose="0" SemiTones="0" UseFreqRatio="0" CoarseFreqRatio="1"
                   FineFreqRatio="0" SaturationAmount="0">
          <EditorStates BodyShown="1" Visible="1" Solo="0" GainModulationShown="1"/>
          <ChildProcessors>
            <Processor Type="MidiProcessorChain" ID="Midi Processor" Bypassed="0">
              <EditorStates BodyShown="1" Visible="0" Solo="0" Folded="1"/>
              <ChildProcessors/>
            </Processor>
            <Processor Type="ModulatorChain" ID="GainModulation" Bypassed="0" Intensity="1">
              <EditorStates BodyShown="1" Visible="1" Solo="0" Folded="0"/>
              <ChildProcessors>
                <Processor Type="TableEnvelope" ID="Table Envelope" Bypassed="0" Intensity="1"
                           Attack="1" Release="530.09998" AttackTableData="24...............vO...f+....9C...yO"
                           ReleaseTableData="24..........9C...vO...f+.........3O">
                  <EditorStates BodyShown="1" Visible="1" Solo="0"/>
                  <ChildProcessors>
                    <Processor Type="ModulatorChain" ID="AttackTime Modulation" Bypassed="0"
                               Intensity="1">
                      <EditorStates BodyShown="1" Visible="1" Solo="0" Folded="0"/>
                      <ChildProcessors>
                        <Processor Type="Velocity" ID="Velocity Modulator" Bypassed="0" Intensity="1"
                                   UseTable="1" Inverted="0" DecibelMode="0" VelocityTableData="36......LyLy8C...vOPHY.+.........vO...f+.........vO">
                          <EditorStates BodyShown="1" Visible="1" Solo="0"/>
                          <ChildProcessors/>
                        </Processor>
                      </ChildProcessors>
                    </Processor>
                    <Processor Type="ModulatorChain" ID="ReleaseTime Modulation" Bypassed="0"
                               Intensity="1">
                      <EditorStates BodyShown="1" Visible="0" Solo="0" Folded="1"/>
                      <ChildProcessors/>
                    </Processor>
                  </ChildProcessors>
                </Processor>
              </ChildProcessors>
            </Processor>
            <Processor Type="ModulatorChain" ID="PitchModulation" Bypassed="0" Intensity="0">
              <EditorStates BodyShown="1" Visible="0" Solo="0" Folded="1"/>
              <ChildProcessors/>
            </Processor>
            <Processor Type="EffectChain" ID="FX" Bypassed="0">
              <EditorStates BodyShown="1" Visible="0" Solo="0" Folded="1"/>
              <ChildProcessors/>
            </Processor>
          </ChildProcessors>
          <RoutingMatrix NumSourceChannels="2" Channel0="0" Send0="-1" Channel1="1" Send1="-1"/>
        </Processor>
      </ChildProcessors>
      <RoutingMatrix NumSourceChannels="2" Channel0="0" Send0="-1" Channel1="1" Send1="-1"/>
      <macro_controls>
        <macro name="Macro 1" value="0" midi_cc="-1"/>
        <macro name="Macro 2" value="0" midi_cc="-1"/>
        <macro name="Macro 3" value="0" midi_cc="-1"/>
        <macro name="Macro 4" value="0" midi_cc="-1"/>
        <macro name="Macro 5" value="0" midi_cc="-1"/>
        <macro name="Macro 6" value="0" midi_cc="-1"/>
        <macro name="Macro 7" value="0" midi_cc="-1"/>
        <macro name="Macro 8" value="0" midi_cc="-1"/>
      </macro_controls>
      <MidiAutomation/>
    </Processor>
    


  • Ah yes, when the attack time is too short, it just takes the initial value as interpolated value. This is the reason why 1.0ms is the lowest possible value, but I forgot that you can get lower by multiplying it with a zero modulation value 🙂

    I'll fix this.



  • Bump Bump 😄



  • Yeah sorry I'll try to fix it ASAP.





  • Thank you 🙂


 

4
Online

400
Users

1.3k
Topics

9.3k
Posts