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 } }