Beispiel #1
0
    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)
Beispiel #4
0
    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))