Exemple #1
0
        public void RedistributeBins(SoundResponseSettings settings)
        {
            if (_handles.Count == 0)
            {
                return;
            }

            double spread = 400 / _handles.Count;

            settings.Bins        = new List <int>();
            settings.Levels      = new List <int>();
            settings.LevelRanges = new List <int>();

            var ctr = 0;

            foreach (var handle in _handles)
            {
                handle.Bin        = 10 + (int)(ctr * spread);
                handle.Level      = (byte)(50 - 50 * Math.Pow(1.008, 512 - handle.Bin) / Math.Pow(1.008, 512) + 50);
                handle.LevelRange = 55;
                settings.Bins.Add(handle.Bin);
                settings.Levels.Add(handle.Level);
                settings.LevelRanges.Add(handle.LevelRange);
                ctr++;
            }
            return;
        }
Exemple #2
0
        public SoundResponseUI(SoundResponseSettings settings, List <string> labels, Random R)
        {
            InitializeComponent();
            _settings  = settings;
            _suspendUi = true;
            SetupLabels(lbLabels, labels, _settings);
            spectrumAnalyser1.AddHandle();
            SetupUI();
            _suspendUi = false;
            Load      += SoundResponseUI_Load;
            spectrumAnalyser1.SelectionChanged += SpectrumAnalyser1_SelectionChanged;
            r = R;

            panelWaveforms.VerticalScroll.Visible = true;

            pThemes.Controls.Clear();
            var type  = typeof(IColourTheme);
            var types = AppDomain.CurrentDomain.GetAssemblies()
                        .SelectMany(s => s.GetTypes())
                        .Where(p => type.IsAssignableFrom(p) && !p.IsInterface && !p.ToString().EndsWith("Base"));

            int yCtr = 0;

            foreach (var t in types.OrderBy(x => x.Name))
            {
                var newButtonName = Regex.Replace(t.Name.Replace("ColourTheme", ""), "([a-z])([A-Z])", "$1 $2");
                var newButton     = new Button {
                    Text = newButtonName, Location = new Point(0, yCtr), Size = new Size(pThemes.Size.Width - 20, 23), Tag = t
                };
                newButton.Click += ColourThemeClick;
                pThemes.Controls.Add(newButton);
                yCtr += newButton.Size.Height + 5;
            }

            hueSelector1.Free           = _settings.Free;
            brightnessSelector1.Free    = _settings.Free;
            hueSelector1.PerBulb        = _settings.PerBulb;
            brightnessSelector1.PerBulb = _settings.PerBulb;
            UpdateHueSelectorHandleCount();
            UpdateHuesFromHueSelectorAndBrightnessesFromBrightnessSelector();
        }
Exemple #3
0
        public void SoundResponse(MaxLifxBulbController bulbController, Random random)
        {
            r = random;

            if (Settings == null)
            {
                Settings = new SoundResponseSettings();
                SettingsCast.Hues.Add(0);
                SettingsCast.HueRanges.Add(0);
                SettingsCast.Saturations.Add(0);
                SettingsCast.SaturationRanges.Add(0);
                SettingsCast.Brightnesses.Add(.9f);
                SettingsCast.BrightnessRanges.Add(.1f);
                SettingsCast.Levels.Add(50);
                SettingsCast.LevelRanges.Add(25);
                SettingsCast.Bins.Add(10);
            }

            var de     = new MMDeviceEnumerator();
            var device = de.GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia);

            DoMainLoop(bulbController, device);
        }