public void SetParameter(ModuleBinding module, ParameterBinding param, object value) { var binding = new Binding(); binding.Module = module; binding.Parameter = param; SetParameter(binding, value); }
public void SetParameter(Binding binding, object value) { switch(binding.Module) { case ModuleBinding.Filter1: SetParamFilter(binding, value); return; case ModuleBinding.Filter2: SetParamFilter(binding, value); return; case ModuleBinding.Osc1: SetParamOsc(binding, value); return; case ModuleBinding.Osc2: SetParamOsc(binding, value); return; case ModuleBinding.Osc3: SetParamOsc(binding, value); return; case ModuleBinding.AmpEnv: SetParamEnv(binding, value); return; case ModuleBinding.ModEnv1: SetParamEnv(binding, value); return; case ModuleBinding.ModEnv2: SetParamEnv(binding, value); return; case ModuleBinding.ModEnv3: SetParamEnv(binding, value); return; case ModuleBinding.ModEnv4: SetParamEnv(binding, value); return; } }
static Binding() { var map = new Binding(); map.Module = ModuleBinding.None; map.Parameter = ParameterBinding.None; None = map; }
public static void SetBinding(this System.Windows.Controls.Control control, ModuleBinding module, ParameterBinding parameter) { var map = new Binding(); map.Module = module; map.Parameter = parameter; ParameterBindings[control] = map; }
public static void BindParam(this System.Windows.Controls.Control control, Binding map) { ParameterBindings[control] = map; }
public static void UpdateParameter(Binding binding, object value) { if(GlobalController != null) GlobalController.SetParameter(binding, value); }
private void SetParamOsc(Binding binding, object value) { if (binding.Parameter == ParameterBinding.Wave) { //SetWave((double)value); return; } IOscillator module = null; foreach (var voice in Manager.Voices) { if (binding.Module == ModuleBinding.Osc1) module = voice.Osc1; else if (binding.Module == ModuleBinding.Osc2) module = voice.Osc2; else return; switch (binding.Parameter) { case ParameterBinding.Octave: module.Octave = (double)value; return; case ParameterBinding.Semi: module.Semi = (double)value; return; case ParameterBinding.Cent: module.Cent = (double)value; return; case ParameterBinding.WavePosition: (module as WavetableOsc).CurrentWaveIndex = (double)value; return; } } }
private void SetParamFilter(Binding binding, object value) { NetSynth.Modules.LadderFilter module = null; foreach(var voice in Manager.Voices) { if (binding.Module == ModuleBinding.Filter1) module = voice.Filter1; else if (binding.Module == ModuleBinding.Filter2) module = voice.Filter2; else return; switch(binding.Parameter) { case (ParameterBinding.Cutoff): module.Cutoff = (double)value; return; case (ParameterBinding.Resonance): module.Resonance = (double)value; return; case (ParameterBinding.X): module.VX = (double)value; return; case (ParameterBinding.A): module.VA = (double)value; return; case (ParameterBinding.B): module.VB = (double)value; return; case (ParameterBinding.C): module.VC = (double)value; return; case (ParameterBinding.D): module.VD = (double)value; return; } } }
private void SetParamEnv(Binding binding, object value) { AudioLib.Modules.Ahdsr module = null; foreach (var voice in Manager.Voices) { if (binding.Module == ModuleBinding.AmpEnv) module = voice.AmpEnv; else if (binding.Module == ModuleBinding.ModEnv1) module = voice.ModEnv1; else if (binding.Module == ModuleBinding.ModEnv2) module = voice.ModEnv2; else if (binding.Module == ModuleBinding.ModEnv3) module = voice.ModEnv3; else if (binding.Module == ModuleBinding.ModEnv4) module = voice.ModEnv4; else return; switch (binding.Parameter) { case (ParameterBinding.Attack): module.Attack = (double)value; return; case (ParameterBinding.Hold): module.Hold = (double)value; return; case (ParameterBinding.Decay): module.Decay = (double)value; return; case (ParameterBinding.Sustain): module.Sustain = (double)value; return; case (ParameterBinding.Release): module.Release = (double)value; return; } } }