Exemple #1
0
 public override void ApplyToSoundFile(AudioClip sf)
 {
     this.sf = sf;
     ID      = Bass.BASS_ChannelSetFX(sf.AudioStream.StreamHandle, BASSFXType.BASS_FX_BFX_LPF, 1);
     handler = new AudioClip.AudioChannelChangedHandler(sf_SoundChannelChanged);
     sf.AudioStreamChanged += handler;
     Update();
 }
Exemple #2
0
        public void SetCurrentSound(AudioClip file, long pos = 0)
        {
            bool playMarks = false;
            bool reversed  = false;

            if (currentsound != null)
            {
                playMarks = currentsound.IsPlayingBetweenMarks;
                reversed  = currentsound.IsReversed;
                currentsound.AudioStreamChanged -= handler;
            }
            currentsound = file;
            handler      = new AudioClip.AudioChannelChangedHandler(currentsound_SoundChannelChanged);
            currentsound.AudioStreamChanged += handler;
            pitchControlsSpam.SetAudioChannel(currentsound.AudioStream);
            volumeSpam_Scroll(null, null);
            buttonPlayPause_Click(null, null);



            if (MarkA > currentsound.AudioStream.Length)
            {
                MarkA = currentsound.AudioStream.Length;
            }
            currentsound.MarkA = MarkA;
            if (MarkB > currentsound.AudioStream.Length)
            {
                MarkB = currentsound.AudioStream.Length;
            }
            currentsound.MarkB = MarkB;
            float percA = currentsound.MarkA / (float)currentsound.AudioStream.Length;

            timeline.A = (int)(percA * timeline.Maximum);
            float percB = currentsound.MarkB / (float)currentsound.AudioStream.Length;

            timeline.B = (int)(percB * timeline.Maximum);

            if (MarkA == MarkB)
            {
                MarkA      = 0;
                timeline.A = 0;
                MarkB      = currentsound.AudioStream.Length;
                timeline.B = timeline.Maximum;
            }
            if (playMarks)
            {
                currentsound.PlayBetweenMarks();
            }
            if (reversed)
            {
                currentsound.Reverse();
            }
            currentsound.AudioStream.Position = pos;
            currentsound.Loop = chkLoop.Checked;
            timeline.Refresh();
            effects.ReApply();
        }