def __init__(self, frameParent, **kwargs): super(DrumB, self).__init__(frameParent, PluginType.SOUNDGENERATOR, wx.Bitmap('Plugins\Oscillator\Graphics\icon.png'), name=kwargs.get('pluginName', 'DrumB')) self.instrumentsPanel = None self.knob1 = KC.KnobCtrl(self, -1, size=(100, 100)) self.isSound = kwargs.get('isSound', False) self.knob1.SetTags(range(0, 101, 5)) self.knob1.SetAngularRange(-45, 225) self.knob1.SetValue(kwargs.get('knob1Value', 0)) self.oscSound = OscSound() self.oscSound.update_noise_parameter(self.knob1.GetValue()) self.knobtracker1 = wx.StaticText( self, -1, "Value = " + str(self.knob1.GetValue())) self.knob1BeforeSave = self.knob1.GetValue() leftknobsizer_staticbox = wx.StaticBox(self, -1, "Drum colour B parameter") panelsizer = wx.BoxSizer(wx.VERTICAL) menusizer = wx.BoxSizer(wx.HORIZONTAL) bottomsizer = wx.BoxSizer(wx.HORIZONTAL) leftknobsizer = wx.StaticBoxSizer(leftknobsizer_staticbox, wx.VERTICAL) self.base_menu = self.base_top_window_menu_sizer_getter( frameParent, PluginType.SOUNDGENERATOR, DrumB.icon, **kwargs) self.colourRed = kwargs.get('colourRed', random.randint(0, 255)) self.colourGreen = kwargs.get('colourGreen', random.randint(0, 255)) self.colourBlue = kwargs.get('colourBlue', random.randint(0, 255)) self.colourAlpha = kwargs.get('colourAlpha', 255) menusizer.Add(self.base_menu, 1, wx.ALL | wx.EXPAND, 5) panelsizer.Add(menusizer, 0, wx.EXPAND | wx.ALL) leftknobsizer.Add(self.knob1, 1, wx.ALL | wx.EXPAND, 5) leftknobsizer.Add(self.knobtracker1, 0, wx.ALL, 5) bottomsizer.Add(leftknobsizer, 1, wx.ALL | wx.EXPAND, 5) panelsizer.Add(bottomsizer, 1, wx.EXPAND | wx.ALL, 20) self.SetSizer(panelsizer) panelsizer.Layout() self.sound = None self.Bind(KC.EVT_KC_ANGLE_CHANGED, self.on_angle_changed1, self.knob1) self.Bind(wx.EVT_COLOURPICKER_CHANGED, self.on_color_changed, self.instrumentColorPicker)
def __init__(self, parent, label='', label_size=(100, -1), label_style='normal', knob_size=(100, 100), spin_ctr_size=(60, -1), tags=True, tags_start=0, tags_end=360, tags_step=10, values_start=0, values_end=360, values_step=1, value=0): CtrlBase.__init__(self, parent=parent, label_style=label_style) self.knob_ctr = kc.KnobCtrl(self, -1, size=knob_size) if tags: self.knob_ctr.SetTags(range(tags_start, tags_end, tags_step)) self.knob_ctr.SetAngularRange(values_start, values_end) self.knob_ctr.SetValue(value) self.knob_ctr.SetBoundingColour(wx.BLACK) self.knob_ctr.SetFirstGradientColour(self.GetBackgroundColour()) self.knob_ctr.SetSecondGradientColour(self.GetBackgroundColour()) self.value_ctr = SpinCtrl(self, label=label, label_size=label_size, label_style=label_style, ctrl_size=spin_ctr_size, ctrl_value=str(value), ctrl_max=values_end, ctrl_min=values_start, ctrl_step=values_step) ctrl_box = wx.FlexGridSizer(2, 1, 0, 10) ctrl_box.Add(self.knob_ctr) ctrl_box.Add(self.value_ctr) self.SetSizer(ctrl_box) self.Bind(kc.EVT_KC_ANGLE_CHANGING, self.onKC_Angle_Change, self.knob_ctr) self.Bind(fs.EVT_FLOATSPIN, self.onFS_Value_Change, self.value_ctr.ctr)
def test_lib_agw_knobctrlMethods(self): knobctrl = KC.KnobCtrl(self.frame, size=(100, 100)) knobctrl.SetTags(range(0, 151, 10)) knobctrl.SetAngularRange(-45, 225) knobctrl.SetValue(45) # Some methods tests... self.assertEqual(knobctrl.GetAngularRange(), (-45, 225)) self.assertEqual(knobctrl.GetTags(), range(0, 151, 10)) # Should not be possible... knobctrl.SetValue(-10) self.assertEqual(knobctrl.GetValue(), 45) self.assertEqual(knobctrl.GetMinValue(), 0) self.assertEqual(knobctrl.GetMaxValue(), 150)
def __init__(self, frameParent, **kwargs): window_title = self.window_title() super(SineOscillator, self).__init__(frameParent, PluginType.SOUNDGENERATOR, wx.Bitmap('Plugins\Oscillator\Graphics\icon.png'), name=kwargs.get('pluginName', window_title), **kwargs) self.oscSound = None self.instrumentsPanel = None self.knob1 = KC.KnobCtrl(self, -1, size=(100, 100)) self.knob2 = KC.KnobCtrl(self, -1, size=(100, 100)) self.knob3 = KC.KnobCtrl(self, -1, size=(100, 100)) # noise self.knob1.SetTags(range(0, 101, 5)) self.knob1.SetAngularRange(-45, 225) self.knob1.SetValue(kwargs.get('knob1Value', 0)) # fading self.knob2.SetTags(range(0, 101, 5)) self.knob2.SetAngularRange(-45, 225) self.knob2.SetValue(kwargs.get('knob2Value', 0)) # damping self.knob3.SetTags(range(0, 101, 5)) self.knob3.SetAngularRange(-45, 225) self.knob3.SetValue(kwargs.get('knob3Value', 50)) self.knobtracker1 = wx.StaticText( self, -1, "Value = " + str(self.knob1.GetValue())) self.knobtracker2 = wx.StaticText( self, -1, "Value = " + str(self.knob2.GetValue())) self.knobtracker3 = wx.StaticText( self, -1, "Value = " + str(self.knob3.GetValue() - 50)) self.knob1BeforeSave = self.knob1.GetValue() self.knob2BeforeSave = self.knob2.GetValue() self.knob3BeforeSave = self.knob3.GetValue() leftknobsizer_staticbox = wx.StaticBox(self, -1, "Noise") middleknobsizer_staticbox = wx.StaticBox(self, -1, "Fading") tightknobsizer_staticbox = wx.StaticBox(self, -1, "Damping") self.base_menu = self.base_top_window_menu_sizer_getter( frameParent, PluginType.SOUNDGENERATOR, SineOscillator.icon, **kwargs) panelsizer = wx.BoxSizer(wx.VERTICAL) menusizer = wx.BoxSizer(wx.HORIZONTAL) bottomsizer = wx.BoxSizer(wx.HORIZONTAL) leftknobsizer = wx.StaticBoxSizer(leftknobsizer_staticbox, wx.VERTICAL) middleknobsizer = wx.StaticBoxSizer(middleknobsizer_staticbox, wx.VERTICAL) rightknobsizer = wx.StaticBoxSizer(tightknobsizer_staticbox, wx.VERTICAL) menusizer.Add(self.base_menu, 1, wx.ALL | wx.EXPAND, 5) panelsizer.Add(menusizer, 0, wx.EXPAND | wx.ALL) leftknobsizer.Add(self.knob1, 1, wx.ALL | wx.EXPAND, 5) leftknobsizer.Add(self.knobtracker1, 0, wx.ALL, 5) bottomsizer.Add(leftknobsizer, 1, wx.ALL | wx.EXPAND, 5) middleknobsizer.Add(self.knob2, 1, wx.ALL | wx.EXPAND, 5) middleknobsizer.Add(self.knobtracker2, 0, wx.ALL, 5) bottomsizer.Add(middleknobsizer, 1, wx.ALL | wx.EXPAND, 5) rightknobsizer.Add(self.knob3, 1, wx.ALL | wx.EXPAND, 5) rightknobsizer.Add(self.knobtracker3, 0, wx.ALL, 5) bottomsizer.Add(rightknobsizer, 1, wx.ALL | wx.EXPAND, 5) panelsizer.Add(bottomsizer, 1, wx.EXPAND | wx.ALL, 20) self.SetSizer(panelsizer) panelsizer.Layout() self.sound = None self.Bind(KC.EVT_KC_ANGLE_CHANGED, self.on_angle_changed1, self.knob1) self.Bind(KC.EVT_KC_ANGLE_CHANGED, self.on_angle_changed2, self.knob2) self.Bind(KC.EVT_KC_ANGLE_CHANGED, self.on_angle_changed3, self.knob3) if self.isSound: self.win.Bind(wx.EVT_CLOSE, self.on_exit_app) self.Bind(wx.EVT_WINDOW_DESTROY, self.on_close) self.Bind(wx.EVT_BUTTON, self.on_modify) else: self.Bind(wx.EVT_BUTTON, self.on_save)
def test_lib_agw_knobctrlCtor(self): knobctrl = KC.KnobCtrl(self.frame, size=(100, 100))