void MapLength( double pulseDuration )
{
int newLength = ( int )( pulseDuration * _lengthToPulseRatio * GATInfo.OutputSampleRate );
if( ( _fadeOut + _fadeIn > newLength ) )
{
int delta = ( _length - newLength ) / 2 + 1;
if( _fadeIn - delta < 0 )
{
_fadeIn = 8;
}
else _fadeIn -= delta;
if( _fadeOut - delta < 0 )
{
_fadeOut = 8;
}
else _fadeOut -= delta;
_length = newLength;
Envelope.SetParams( _length, _fadeIn, _fadeOut );
#if UNITY_EDITOR
if( onLengthWasMapped != null )
onLengthWasMapped( true );
#endif
}
else
{
_length = newLength;
Envelope.Length = newLength;
#if UNITY_EDITOR
if( onLengthWasMapped != null )
onLengthWasMapped( false );
#endif
}
}