AlphaTab.Audio.Generator.MidiFileGenerator.GenerateFadeIn C# (CSharp) Метод

GenerateFadeIn() приватный Метод

private GenerateFadeIn ( Note note, int noteStart, int noteDuration, int noteKey, DynamicValue dynamicValue ) : void
note AlphaTab.Model.Note
noteStart int
noteDuration int
noteKey int
dynamicValue DynamicValue
Результат void
        private void GenerateFadeIn(Note note, int noteStart, int noteDuration, int noteKey, DynamicValue dynamicValue)
        {
            var track = note.Beat.Voice.Bar.Staff.Track;
            var endVolume = ToChannelShort(track.PlaybackInfo.Volume);
            var volumeFactor = (float)endVolume / noteDuration;

            var tickStep = 120;
            int steps = (noteDuration / tickStep);

            var endTick = noteStart + noteDuration;
            for (int i = steps - 1; i >= 0; i--)
            {
                var tick = endTick - (i * tickStep);
                var volume = (tick - noteStart) * volumeFactor;
                if (i == steps - 1)
                {
                    _handler.AddControlChange(track.Index, noteStart, (byte)track.PlaybackInfo.PrimaryChannel, (byte)MidiController.VolumeCoarse, (byte)volume);
                    _handler.AddControlChange(track.Index, noteStart, (byte)track.PlaybackInfo.SecondaryChannel, (byte)MidiController.VolumeCoarse, (byte)volume);
                }
                _handler.AddControlChange(track.Index, tick, (byte)track.PlaybackInfo.PrimaryChannel, (byte)MidiController.VolumeCoarse, (byte)volume);
                _handler.AddControlChange(track.Index, tick, (byte)track.PlaybackInfo.SecondaryChannel, (byte)MidiController.VolumeCoarse, (byte)volume);
            }
        }