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; }
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(); }
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); }