private void StopRecordingSampleTrigger()
        {
            if (CurrentTrack == null || LastSampleTrigger == null || LastSampleTriggerTrack == null)
            {
                return;
            }

            var position        = AudioStreamHelper.GetPosition(LastSampleTriggerTrack);
            var positionSeconds = LastSampleTriggerTrack.SamplesToSeconds(position);
            var length          = positionSeconds - LastSampleTrigger.Start;

            if (length <= 0 || position >= LastSampleTriggerTrack.FadeOutStart)
            {
                length = LastSampleTriggerTrack.SamplesToSeconds(LastSampleTriggerTrack.FadeOutStart) -
                         LastSampleTrigger.Start;
            }

            LastSampleTrigger.Length = length;
        }
        private void StartRecordingSampleTrigger(Sample sample)
        {
            if (CurrentTrack == null)
            {
                return;
            }
            if (sample == null)
            {
                return;
            }

            LastSampleTriggerTrack = CurrentTrack;
            LastSampleTriggerNextTrackDescription = NextTrack == null ? "" : NextTrack.Description;
            LastSampleTriggerPrevTrackDescription = PreviousTrack == null ? "" : PreviousTrack.Description;

            var position = AudioStreamHelper.GetPosition(LastSampleTriggerTrack);

            LastSampleTrigger = new SampleTrigger
            {
                Start      = LastSampleTriggerTrack.SamplesToSeconds(position),
                DelayNotes = SamplerDelayNotes,
                SampleId   = sample.SampleId
            };
        }