public WispPlugManager(IntPtr windowHandle)
        {
            StreamHandle              = -1;
            wispPlugProvider          = new WispPlugProvider(this);
            PluginMenus               = new ObservableCollection <MenuItem>();
            CurrentBPM                = new BPMCounter(20, 44100);
            CurrentBPM.BPMHistorySize = 50;

            //bpm calculaion initialization
            // setting the BPM range (60-180 is a range most analog DJ Mixers do have)
            BPM_Avaliable = false;

            bpmTimer          = new Timer(20);
            bpmTimer.Elapsed += async(sender, e) => await Task.Run(() => Bpm_tick(sender, e));

            Bass.BASS_Init(-1, 44100, BASSInit.BASS_DEVICE_DEFAULT, windowHandle);

            foreach (WispPlug temp in wispPlugProvider.PlugList)
            {
                temp.Init();
            }
        }