Song Fade In

For one song I have to fade in two levels at the intro to a song. I have been doing this with a expression pedal, but the results we not as goos as it should be. The original track has a very slow fade over many seconds over a playing soundscape. This is also a point where the singer is talking to the audience so a simple timer to fade in was problematic as he may have not finished speaking and when the playing starts the level of the channels has already been lifted and the first keys will sound. The solution would be to delay the start of the timer until the first key, that way the soundscape can play, the singer can talk away and only when ready to start playing would the fade in start. So here is a scriptlet I use to provide my fade in. It doesn’t use any timers as the arpeggio being played is constant, so each note played increments the level and provides a consistent performance.

The scriptlet provides three parameters, The number of notes to fade from 0% to 100%, the current output level and a reset input. For me, when using this scriptlet the resest is set to one when the soundscape playback is started, setting the output level to 0% and setting the increment amount. From this point every note played adds an increment amount to the output level, this is clipped at 100%. The faders are controlled by a group of widgets one linked to the output level of the scriptlet, the other two scaled to control the level of the mixer faders of the organ and synth.

Enjoy!

// Declare parameters
var FadeOver : Subrange Parameter 1..127 = 100
var Reset : Continuous Parameter = 0.0
var Level : Continuous Parameter = 0.0

// Output level increment amount
var Increment : double = 0

// Calculate the increment value
Initialization
   Increment = 1/IntToFloat(FadeOver)
End


//Called when a NoteOn message is received
On NoteOnEvent(m : NoteMessage) 
    if Level < 1.0 then
        Level = Level + Increment
        if Level > 1.0 then Level = 1.0 end     
    end
    SendNow(m)
End

// Called when a parameter value has changed
On ParameterValueChanged matching FadeOver
    Increment = 1/IntToFloat(FadeOver)
    Level = 0.0
End


// Called when a parameter value has changed
On ParameterValueChanged matching Reset
    if Reset <> 0.0 then
        Increment = 1/IntToFloat(FadeOver)
        Level = 0.0
        Reset = 0.0
    end
End

5 Likes