示例#1
0
        public void UpdateDistortion()
        {
            BassEngine engine = BassEngine.Instance;

            if (DistortionITM.switchx)
            {
                if (DistortionITM.fxState == false)
                {
                    Bass.BASS_FXSetParameters(_fxDistortionHandle, _distortionfx);
                }
                if (DistortionITM.fxState == false)
                {
                    _fxDistortionHandle = Bass.BASS_ChannelSetFX(engine.ActiveStreamHandle,
                                                                 BASSFXType.BASS_FX_DX8_DISTORTION, 0);
                }
                _distortionfx.Preset_Default();

                switch (DistortionITM.SelUTx)
                {
                case "Default Preset":
                    _distortionfx.Preset_Default();
                    break;
                }
            }
            else
            {
                Bass.BASS_ChannelRemoveFX(engine.ActiveStreamHandle, _fxDistortionHandle);
            }
        }
示例#2
0
        /// <summary>
        /// 初始化播放器
        /// </summary>
        private void InitBassEngine()
        {
            //歌曲播放完毕
            //SpectrumAnalyzer.RegisterSoundPlayer(BassEngine.Instance);
            BassEngine.ExplicitInitialize(null);
            BassEngine.Instance.TrackEnded += delegate
            {
                if (musicWindow != null)
                {
                    musicWindow.CloseThis();
                    musicWindow = null;
                }
            };
            //音乐加载成功
            BassEngine.Instance.OpenSucceeded += delegate
            {
                Debug.WriteLine(" 音乐加载成功");
                BassEngine.Instance.Volume = 1;
                BassEngine.Instance.Play();
            };
            //打开音乐失败
            BassEngine.Instance.OpenFailed += delegate
            {
                if (musicWindow != null)
                {
                    musicWindow.CloseThis();
                    musicWindow = null;
                }
            };

            //绑定音量设置
        }
示例#3
0
        public void UpdateGargle()
        {
            BassEngine engine = BassEngine.Instance;

            if (GargleITM.switchx)
            {
                if (GargleITM.fxState == false)
                {
                    Bass.BASS_FXSetParameters(_fxGargleHandle, _garglefx);
                }
                if (GargleITM.fxState == false)
                {
                    _fxGargleHandle = Bass.BASS_ChannelSetFX(engine.ActiveStreamHandle, BASSFXType.BASS_FX_DX8_GARGLE, 0);
                }

                switch (GargleITM.SelUTx)
                {
                case "Default Preset":
                    _garglefx.Preset_Default();
                    break;
                }
            }
            else
            {
                Bass.BASS_ChannelRemoveFX(engine.ActiveStreamHandle, _fxGargleHandle);
            }
        }
示例#4
0
        public void UpdatePhaser()
        {
            BassEngine engine = BassEngine.Instance;

            if (PhaserITM.switchx)
            {
                if (PhaserITM.fxState == false)
                {
                    Bass.BASS_FXSetParameters(_fxPhaserHandle, _phaserfx);
                }
                if (PhaserITM.fxState == false)
                {
                    _fxPhaserHandle = Bass.BASS_ChannelSetFX(engine.ActiveStreamHandle, BASSFXType.BASS_FX_BFX_PHASER, 0);
                }
                _phaserfx.Preset_PhaseShift();
                switch (PhaserITM.SelUTx)
                {
                case "Default Preset":
                    break;
                }
            }
            else
            {
                Bass.BASS_ChannelRemoveFX(engine.ActiveStreamHandle, _fxPhaserHandle);
            }
        }
示例#5
0
        public void UpdateFlanger()
        {
            BassEngine engine = BassEngine.Instance;

            if (FlangerITM.switchx)
            {
                if (FlangerITM.fxState == false)
                {
                    Bass.BASS_FXSetParameters(_fxFlangerHandle, _flangerfx);
                }
                if (FlangerITM.fxState == false)
                {
                    _fxFlangerHandle = Bass.BASS_ChannelSetFX(engine.ActiveStreamHandle, BASSFXType.BASS_FX_DX8_FLANGER,
                                                              0);
                }
                switch (FlangerITM.SelUTx)
                {
                case "Default Preset":
                    _flangerfx.Preset_Default();
                    break;

                case "Preset: A":
                    _flangerfx.Preset_A();
                    break;

                case "Preset: B":
                    _flangerfx.Preset_B();
                    break;
                }
            }
            else
            {
                Bass.BASS_ChannelRemoveFX(engine.ActiveStreamHandle, _fxFlangerHandle);
            }
        }
示例#6
0
        public void UpdateI3Dl2Reverb()
        {
            BassEngine engine = BassEngine.Instance;

            if (I3DL2ReverbITM.switchx)
            {
                if (I3DL2ReverbITM.fxState == false)
                {
                    Bass.BASS_FXSetParameters(_fxI3Dl2ReverbHandle, _i3Dl2Reverbfx);
                }
                if (I3DL2ReverbITM.fxState == false)
                {
                    _fxI3Dl2ReverbHandle = Bass.BASS_ChannelSetFX(engine.ActiveStreamHandle,
                                                                  BASSFXType.BASS_FX_DX8_I3DL2REVERB, 0);
                }
                switch (I3DL2ReverbITM.SelUTx)
                {
                case "Default Preset":
                    _i3Dl2Reverbfx.Preset_Default();
                    break;
                }
            }
            else
            {
                Bass.BASS_ChannelRemoveFX(engine.ActiveStreamHandle, _fxI3Dl2ReverbHandle);
            }
        }
示例#7
0
        public void UpdateEcho()
        {
            BassEngine engine = BassEngine.Instance;

            if (EchoITM.switchx)
            {
                if (EchoITM.fxState == false)
                {
                    Bass.BASS_FXSetParameters(_fxEchoHandle, _echofx);
                }
                if (EchoITM.fxState == false)
                {
                    _fxEchoHandle = Bass.BASS_ChannelSetFX(engine.ActiveStreamHandle, BASSFXType.BASS_FX_DX8_ECHO, 0);
                }
                switch (EchoITM.SelUTx)
                {
                case "Default Preset":
                    _echofx.Preset_Default();
                    break;

                case "Preset: Short":
                    _echofx.Preset_Long();
                    break;

                case "Preset: Long":
                    _echofx.Preset_Small();
                    break;
                }
            }
            else
            {
                Bass.BASS_ChannelRemoveFX(engine.ActiveStreamHandle, _fxEchoHandle);
            }
        }
示例#8
0
        public void UpdateChorus()
        {
            BassEngine engine = BassEngine.Instance;

            if (chorusITM.switchx)
            {
                if (chorusITM.fxState == false)
                {
                    Bass.BASS_FXSetParameters(_fxChorusHandle, _chorusfx);
                }
                if (chorusITM.fxState == false)
                {
                    _fxChorusHandle = Bass.BASS_ChannelSetFX(engine.ActiveStreamHandle, BASSFXType.BASS_FX_DX8_CHORUS, 0);
                }

                switch (chorusITM.SelUTx)
                {
                case "Default Preset":
                    _chorusfx.Preset_Default();
                    break;

                case "Preset: A":
                    _chorusfx.Preset_A();
                    break;

                case "Preset: B":
                    _chorusfx.Preset_B();
                    break;
                }
            }
            else
            {
                Bass.BASS_ChannelRemoveFX(engine.ActiveStreamHandle, _fxChorusHandle);
            }
        }
示例#9
0
        public void UpdateApf()
        {
            BassEngine engine = BassEngine.Instance;

            if (APFITM.switchx)
            {
                if (APFITM.fxState == false)
                {
                    Bass.BASS_FXSetParameters(_fxApfHandle, _apFfx);
                }
                if (APFITM.fxState == false)
                {
                    _fxApfHandle = Bass.BASS_ChannelSetFX(engine.ActiveStreamHandle, BASSFXType.BASS_FX_BFX_APF, 0);
                }
                _apFfx.Preset_RobotVoice();

                switch (APFITM.SelUTx)
                {
                case "Default Preset":
                    _apFfx.Preset_RobotVoice();
                    break;
                }
            }
            else
            {
                Bass.BASS_ChannelRemoveFX(engine.ActiveStreamHandle, _fxApfHandle);
            }
        }
示例#10
0
        public void UpdateAutoWah()
        {
            BassEngine engine = BassEngine.Instance;

            if (AutoWahITM.switchx)
            {
                if (AutoWahITM.fxState == false)
                {
                    Bass.BASS_FXSetParameters(_fxAutoWahHandle, _autoWahfx);
                }
                if (AutoWahITM.fxState == false)
                {
                    _fxAutoWahHandle = Bass.BASS_ChannelSetFX(engine.ActiveStreamHandle, BASSFXType.BASS_FX_BFX_AUTOWAH,
                                                              0);
                }
                _autoWahfx.Preset_SlowAutoWah();
                switch (AutoWahITM.SelUTx)
                {
                case "Default Preset":
                    _autoWahfx.Preset_HiFastAutoWah();
                    break;
                }
            }
            else
            {
                Bass.BASS_ChannelRemoveFX(engine.ActiveStreamHandle, _fxAutoWahHandle);
            }
        }
示例#11
0
        public void UpdateCompressor()
        {
            BassEngine engine = BassEngine.Instance;

            if (CompressorITM.switchx)
            {
                if (CompressorITM.fxState == false)
                {
                    Bass.BASS_FXSetParameters(_fxCompressorHandle, _compressorfx);
                }
                if (CompressorITM.fxState == false)
                {
                    _fxCompressorHandle = Bass.BASS_ChannelSetFX(engine.ActiveStreamHandle,
                                                                 BASSFXType.BASS_FX_DX8_COMPRESSOR, 0);
                }


                switch (FlangerITM.SelUTx)
                {
                case "Default Preset":
                    _compressorfx.Preset_Default();
                    break;

                case "Preset: Soft":
                    _compressorfx.Preset_Soft();
                    break;

                case "Preset: Soft 2":
                    _compressorfx.Preset_Soft2();
                    break;

                case "Preset: Medium":
                    _compressorfx.Preset_Medium();
                    break;

                case "Preset: Hard":
                    _compressorfx.Preset_Hard();
                    break;

                case "Preset: Hard 2":
                    _compressorfx.Preset_Hard2();
                    break;

                case "Preset: Hard Commercial":
                    _compressorfx.Preset_HardCommercial();
                    break;
                }
            }
            else
            {
                Bass.BASS_ChannelRemoveFX(engine.ActiveStreamHandle, _fxCompressorHandle);
            }
        }
示例#12
0
 public static void Initialize()
 {
     EQS                          = new EqualizerSet();
     bassEng                      = BassEngine.Instance;
     playControl                  = AppPropertys.mainWindow.playControl1;
     sl                           = new SongList();
     bassEng.TrackEnded          += bassPlayer_TrackEnded;
     DT.Interval                  = TimeSpan.FromMilliseconds(100);
     DT.Tick                     += new EventHandler(DT_Tick);
     LrcController.ButtonChanged += new LrcController.ButtonChangedHandle(LrcController_ButtonChanged);
     bassEng.OpenSucceeded       += new EventHandler(StartPlay);
     bassEng.Volume               = AppPropertys.appSetting.Volume;
 }
示例#13
0
        /// <summary>
        /// 初始化播放器
        /// </summary>
        private void InitPlayer()
        {
            bassPlayer        = BassEngine.Instance;
            bassPlayer.Volume = 15 / 100.0;

            bassPlayer.TrackEnded += BassPlayer_TrackEnded;
            bassPlayer.OpenFailed += BassPlayer_OpenFailed;

            timer.Interval = new TimeSpan(1000000);
            timer.Tick    += Timer_Tick;

            this.IsPlayingInner = this.IsAutoPlay;
            this.LoadMusicFile(this.SoundSource);
        }
示例#14
0
 /// <summary>
 /// 初始化BASS
 /// </summary>
 private void InitBass()
 {
     try
     {
         BassEngine.ExplicitInitialize(null);
         BassEngine.Instance.SetDownloadRateRestriction(false);
         BassEngine.Instance.OpenSucceeded += Instance_OpenSucceeded;
     }
     catch (BassInitializationFailureException ex)
     {
         MessageBox.Show(ex.Message, string.Empty, MessageBoxButton.OK, MessageBoxImage.Error);
         App.Current.Shutdown(0);
     }
 }
示例#15
0
        public void BassInit()
        {
            if (Global.EngineOnline)
            {
                //eq.intializeEQ();
                foreach (FxItem i in Stack.Children)
                {
                    i.Direct2Def();
                }
                BassFx.BASS_FX_GetVersion();

                BassEngine engine = BassEngine.Instance;
                engine.PropertyChanged += PropertyChanged;
            }
        }
示例#16
0
        private void BassEngine_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            BassEngine engine = BassEngine.Instance;

            switch (e.PropertyName)
            {
            case "ChannelPosition":
                clockDisplay.Time = TimeSpan.FromSeconds(engine.ChannelPosition);
                break;

            default:
                // Do Nothing
                break;
            }
        }
示例#17
0
        public MainWindow()
        {
            InitializeComponent();

            BassEngine bassEngine = BassEngine.Instance;

            bassEngine.PropertyChanged += BassEngine_PropertyChanged;
            UIHelper.Bind(bassEngine, "CanStop", StopButton, Button.IsEnabledProperty);
            UIHelper.Bind(bassEngine, "CanPlay", PlayButton, Button.IsEnabledProperty);
            UIHelper.Bind(bassEngine, "CanPause", PauseButton, Button.IsEnabledProperty);
            UIHelper.Bind(bassEngine, "SelectionBegin", repeatStartTimeEdit, TimeEditor.ValueProperty, BindingMode.TwoWay);
            UIHelper.Bind(bassEngine, "SelectionEnd", repeatStopTimeEdit, TimeEditor.ValueProperty, BindingMode.TwoWay);

            spectrumAnalyzer.RegisterSoundPlayer(bassEngine);
            waveformTimeline.RegisterSoundPlayer(bassEngine);

            LoadExpressionDarkTheme();
        }
示例#18
0
        public void KillallFxStates()
        {
            BassEngine engine = BassEngine.Instance;

            chorusITM.fxState = false;
            Bass.BASS_ChannelRemoveFX(engine.ActiveStreamHandle, _fxChorusHandle);

            ReverbITM.fxState = false;
            Bass.BASS_ChannelRemoveFX(engine.ActiveStreamHandle, _fxReverbHandle);

            EchoITM.fxState = false;
            Bass.BASS_ChannelRemoveFX(engine.ActiveStreamHandle, _fxEchoHandle);

            I3DL2ReverbITM.fxState = false;
            Bass.BASS_ChannelRemoveFX(engine.ActiveStreamHandle, _fxI3Dl2ReverbHandle);

            GargleITM.fxState = false;
            Bass.BASS_ChannelRemoveFX(engine.ActiveStreamHandle, _fxGargleHandle);

            FlangerITM.fxState = false;
            Bass.BASS_ChannelRemoveFX(engine.ActiveStreamHandle, _fxFlangerHandle);

            CompressorITM.fxState = false;
            Bass.BASS_ChannelRemoveFX(engine.ActiveStreamHandle, _fxCompressorHandle);

            DistortionITM.fxState = false;
            Bass.BASS_ChannelRemoveFX(engine.ActiveStreamHandle, _fxDistortionHandle);

            AutoWahITM.fxState = false;
            Bass.BASS_ChannelRemoveFX(engine.ActiveStreamHandle, _fxAutoWahHandle);

            APFITM.fxState = false;
            Bass.BASS_ChannelRemoveFX(engine.ActiveStreamHandle, _fxApfHandle);

            PhaserITM.fxState = false;
            Bass.BASS_ChannelRemoveFX(engine.ActiveStreamHandle, _fxPhaserHandle);
        }
示例#19
0
 public void BassEngineCleanUp()
 {
     player = null;
 }
示例#20
0
 public async Task BassEngineSetup()
 {
     player = BassEngine.Instance;
     await player.OpenFile(@"C:\You Raise Me Up.mp3");
 }