Exemple #1
0
 def __init__(self, master, param, editor,
              range_ = 1000,
              degree = 2,
              clip = None):
     super(ReciprocalSlider, self).__init__(param, editor, master)
     r = (1.0/range_,range_)
     self.degree = degree
     self.inv_degree = 1.0/degree
     self.range_ = r
     if clip:
         self._clip = clip
     else:
         self._clip = self.range_
     self.var_aspect = tk.StringVar()
     self.var_sign = tk.IntVar()
     self.var_invert = tk.IntVar()
     self.var_aspect.set(self._clip[0])
     self.var_sign.set(0)
     self.var_invert.set(0)
     s = factory.scale(master, from_ = 1, to=0, resolution = 0.005,
                       command= self.callback,
                       var = self.var_aspect)
     cb_sign = factory.checkbutton(master, "-", self.var_sign,
                                   command = self.callback)
     cb_invert = factory.checkbutton(master, "1/n", self.var_invert,
                                     command = self.callback)
     self._widgets["slider"] = s
     self._widgets["checkbutton-sign"] = cb_sign
     self._widgets["checkbutton-invert"] = cb_invert
     self._editor = editor
     self._param = param
     s.bind("<Enter>", self.enter_callback)
Exemple #2
0
 def _layout_common_widgets(self):
     lab_head = factory.label(self.canvas,"Porgram Mutation")
     lab_head.grid(row=0, column=0, columnspan=4, pady=16, padx=16)
     lab_help = factory.label(self.canvas,"P = Probability of change, R = Maximum change.")
     lab_help.grid(row=0,column=4,columnspan=4, sticky='w', padx=16)
     
     frame = factory.frame(self.canvas)
     frame.grid(row=1,column=0,rowspan=15, columnspan=4,pady=16)
     b_mutate = factory.button(frame,"Mutate",command=self.mutate)
     lab_slot = factory.label(frame,"Slot")
     sb_slot = factory.int_spinbox(frame,self._var_fill_start,from_=0,to=127)
     sb_slot.config(width=4)
     sb_slot.config(command=self._link_slots)
     b_reset = factory.button(frame,"Reset",command=self.reset)
     b_zero = factory.button(frame,"Zero",command=self.zero)
     b_max = factory.button(frame,"Max",command=self.max_change)
     b_mutate.grid(row=1,column=0, columnspan=3,sticky="ew", padx=4, pady=6)
     lab_slot.grid(row=2,column=0,sticky="w", padx=4)
     sb_slot.grid(row=2,column=2,sticky="e", padx=4, pady=6)
     #  Fill controls
     lab_fill = factory.label(frame,"Fill to:")
     sb_end = factory.int_spinbox(frame,self._var_fill_end,from_=0,to=127)
     sb_end.config(width=4)
     cb_progressive = factory.checkbutton(frame,"+", var=self._var_progressive_fill)
     lab_fill.grid(row=5,column=0,sticky="e",padx=4,pady=6)
     cb_progressive.grid(row=6,column=0,sticky="w")
     sb_end.grid(row=6,column=2,sticky='e')
     pad1 = factory.padding_label(frame)
     pad1.grid(row=7,column=0,pady=64)
     b_reset.grid(row=8,column=0,columnspan=3,sticky="ew", padx=4)
     b_zero.grid(row=9,column=0,columnspan=3,sticky="ew",padx=4,pady=4)
     b_max.grid(row=10,column=0,columnspan=3,sticky="ew",padx=4)
     pad2 = factory.padding_label(frame)
Exemple #3
0
 def __init__(self, master, param, editor,
              text="", values=(0,1), ttip=""):
     self._var = tk.BooleanVar()
     self._cb = factory.checkbutton(master, text, self._var,
                                    command=self.callback, ttip=ttip)
     self._values = values
     super(ControlCheckbutton, self).__init__(param, editor, self._cb)
Exemple #4
0
 def __init__(self, master, param, editor):
     """
     Create new OscFrequencyControl object.
     Widgets are not automatically added to the Tk master.   Call the 
     layout method to place widgets using a default layout.  
     
     ARGS:
       param  - String, SC synth parameter.
       editor - An instance of TkSubEditor
       master - Tk container.
     """
     print("DEPRECIATION WARNING: OscFrequencyControl")
     super(OscFrequencyControl, self).__init__(param, editor, master)
     octaves = [(3, "+3"),(2, "+2"),(1, "+1"),(0, " 0"),
                (-1,"-1"),(-2,"-2"),(-3,"-3")]
     self.var_octave = tk.StringVar()  # Octave number -3 ... +3
     self.var_transpose = tk.IntVar()  # Transpose steps, 0 ... 11
     self.var_detune = tk.IntVar()     # Detune in cents 0 ... 99
     self.var_zero = tk.IntVar()       # 0 -> osc != 0,  1 -> osc freq = 0
     self.var_octave.set(0)
     self.var_transpose.set(0)
     self.var_detune.set(0)
     self.var_zero.set(0)
     self._radio_buttons = []
     for value, text in octaves:
         rb = factory.radio(master, text, self.var_octave, value,
                            command = self.callback,
                            ttip = "%s octave" % param)
         widget_key = "radio-octave-%d" % value
         self._widgets[widget_key] = rb
         self._radio_buttons.append(rb)
         rb.bind("<Enter>", self.enter_callback)
     s_step = factory.scale(master, from_=11, to=0,
                            var = self.var_transpose,
                            command = self.callback,
                            ttip = "%s transpose (steps)" % param)
     s_detune = factory.scale(master, from_=99, to=0,
                              var = self.var_detune,
                              command=self.callback,
                              ttip = "%s detune (cents)" % param)
     cb_zero = factory.checkbutton(master, "Off")
     cb_zero.config(command=self.callback,var = self.var_zero)
     ## Labels
     lab_transpose = factory.label(master, "00")
     lab_detune = factory.label(master, "000")
     lab_value = factory.label(master, "1.0000")
     self._widgets["scale-transpose"] = s_step
     self._widgets["scale-detune"] = s_detune
     self._widgets["checkbutton-zero"] = cb_zero
     self._widgets["label-transpose"] = lab_transpose
     self._widgets["label-detune"] = lab_detune
     self._widgets["label-value"] = lab_value
     self._editor = editor
     self._param = param
     s_step.bind("<Enter>", self.enter_callback)
     s_detune.bind("<Enter>", self.enter_callback)
Exemple #5
0
 def __init__(self,
              master,
              param,
              editor,
              range_=1000,
              degree=2,
              clip=None,
              ttip=""):
     """
     Construct new ExpSlider object.
     ARGS:
       master - The parent Tk container.
       param  - String, synth parameter.
       editor - An instance of TkSubEditor
       range_ - Float or Int, the maximum value magnitude.  The minimum
                magnitude is always 0.
       degree - Positive Int of Float, The exponential degree.
       ttip   - String, tool tip text.
     """
     super(ExpSlider, self).__init__(param, editor, master)
     self.degree = degree
     self.inv_degree = 1.0 / degree
     if clip:
         self._clip = clip
     else:
         self._clip = (0, range_)
     self.var_aspect = tk.StringVar()
     self.var_sign = tk.IntVar()
     self.var_aspect.set(0.0)
     self.var_sign.set(0)
     self.range_ = [0, range_]
     ttip = ttip or "%s" % param
     s = factory.scale(master,
                       from_=1.0,
                       to=0.0,
                       resolution=0.005,
                       command=self.callback,
                       var=self.var_aspect,
                       ttip=ttip)
     cb = factory.checkbutton(master,
                              "Inv",
                              self.var_sign,
                              command=self.callback)
     self._widgets["slider"] = s
     self._widgets["checkbutton-sign"] = cb
     self._editor = editor
     self._param = param
     s.bind("<Enter>", self.enter_callback)
Exemple #6
0
    def __init__(self, master, param, editor,
                 text="", values=(0,1), ttip=""):
        
        """
        Constructs ControlCheckbutton

        master - Tk container
        param - string, synth parameter
        editor - TkSubEditor
        text - label text
        values - tuple (a,b), defaults (0,1)
        ttip -tool tip text, DEPRECIATED
        """
        self._var = tk.BooleanVar()
        self._cb = factory.checkbutton(master, text, self._var,
                                       command=self.callback, ttip=ttip)
        self._values = values
        super(ControlCheckbutton, self).__init__(param, editor, self._cb)
Exemple #7
0
 def __init__(self, master, param, editor,
              range_ = 1000,
              degree = 2,
              clip=None,
              ttip=""):
     """
     Construct new ExpSlider object.
     ARGS:
       master - The parent Tk container.
       param  - String, synth parameter.
       editor - An instance of TkSubEditor
       range_ - Float or Int, the maximum value magnitude.  The minimum
                magnitude is always 0.
       degree - Positive Int of Float, The exponential degree.
       ttip   - String, tool tip text.
     """
     super(ExpSlider, self).__init__(param, editor, master)
     self.degree = degree
     self.inv_degree = 1.0/degree
     if clip:
         self._clip = clip
     else:
         self._clip = (0, range_)
     self.var_aspect = tk.StringVar()
     self.var_sign = tk.IntVar()
     self.var_aspect.set(0.0)
     self.var_sign.set(0)
     self.range_ = [0,range_]
     ttip = ttip or "%s" % param
     s = factory.scale(master,
                       from_ = 1.0, to=0.0, resolution = 0.005,
                       command = self.callback,
                       var=self.var_aspect,
                       ttip=ttip)
     cb = factory.checkbutton(master, "Inv", self.var_sign,
                              command = self.callback)
     self._widgets["slider"] = s
     self._widgets["checkbutton-sign"] = cb
     self._editor = editor
     self._param = param
     s.bind("<Enter>", self.enter_callback)
Exemple #8
0
 def _init_south_toolbar(self):
     frame = factory.label_frame(self, "Program")
     b_store = factory.button(frame, "Store", command=self._store_program,
                              ttip = "Store current program")
     b_random = factory.button(frame, "RND", command=self._random_program,
                               ttip = "Generate random program (if defined)")
     b_init = factory.button(frame, "Init", command=self._init_program,
                             ttip = "Initialize program")
     b_copy = factory.button(frame, "Copy", command=self._copy_program,
                             ttip="Copy current prgoram to clipbaord")
     b_paste = factory.button(frame, "Paste", command=self._paste_program,
                              ttip="Paste clipboard to current program")
     cb_lock = factory.checkbutton(frame,"Lock",self._var_lock_current,
                                  command = self.lock_current_program)
     b_store.grid(row=0, column=0, sticky="ew")
     b_random.grid(row=0, column=1, sticky="ew")
     b_init.grid(row=0, column=2, sticky="ew")
     b_copy.grid(row=1, column=0, sticky="ew")
     b_paste.grid(row=1, column=1, sticky="ew")
     cb_lock.grid(row=1, column=2, sticky="ew")
     return frame
Exemple #9
0
 def _init_south_toolbar(self):
     frame = factory.label_frame(self, "Program")
     b_store = factory.button(frame, "Store", command=self._store_program,
                              ttip = "Store current program")
     b_random = factory.button(frame, "RND", command=self._random_program,
                               ttip = "Generate random program (if defined)")
     b_init = factory.button(frame, "Init", command=self._init_program,
                             ttip = "Initialize program")
     b_copy = factory.button(frame, "Copy", command=self._copy_program,
                             ttip="Copy current prgoram to clipbaord")
     b_paste = factory.button(frame, "Paste", command=self._paste_program,
                              ttip="Paste clipboard to current program")
     cb_lock = factory.checkbutton(frame,"Lock",self._var_lock_current,
                                  command = self.lock_current_program)
     b_store.grid(row=0, column=0, sticky="ew")
     b_random.grid(row=0, column=1, sticky="ew")
     b_init.grid(row=0, column=2, sticky="ew")
     b_copy.grid(row=1, column=0, sticky="ew")
     b_paste.grid(row=1, column=1, sticky="ew")
     cb_lock.grid(row=1, column=2, sticky="ew")
     return frame
Exemple #10
0
 def _init_list_frame(self):
     frame = factory.frame(self)
     lbx = factory.listbox(frame)
     sbar = factory.scrollbar(frame, orientation="vertical")
     # lbx.pack(side="left", expand=True, fill="both")
     # sbar.pack(after=lbx, side="right", expand=True, fill="y")
     lbx.config(yscrollcommand=sbar.set)
     lbx.bind("<<ListboxSelect>>", self._select_slot)
     lbx.bind("<Up>", self._decrement_selection)
     lbx.bind("<Down>", self._increment_selection)
     sbar.config(command = lbx.yview)
     self.listbox = lbx
     self.cbExtend = factory.checkbutton(frame,"Extend",self._var_extend_enable,
                                         command = self._cbextended_callback)
     self.sbExtend = factory.int_spinbox(frame,self._var_extend_count,
                                         from_=0,to=self.synth.voice_count,
                                         command = self._sbextended_callback)
     self.sbExtend.config(width=2)
     lbx.grid(row=0,column=0,rowspan=3,columnspan=2,sticky="ewns")
     sbar.grid(row=0,column=2,rowspan=3,columnspan=1,sticky="ns")
     if self.synth.keymode in constants.SUPPORTS_EXTENDED_PROGRAMS:
         self.cbExtend.grid(row=3,column=0,stick="w",pady=4,padx=4)
         self.sbExtend.grid(row=3,column=1,sticky='w')
     return frame
Exemple #11
0
    def __init__(self, master, synth, src, app):
        Toplevel.__init__(self, master)
        self.src = src
        self.synth = synth
        self.app = app
        self.var_all = StringVar()
        self.var_all.set(0)
        frame = factory.frame(self, modal=True)
        frame.pack(expand=True, fill="both")
        lab_title = factory.label(frame, "Remove MIDI Source Map", modal=True)
        lab_title.grid(row=0, column=0, columnspan=3, padx=4, pady=8)
        if src == "cc":
            lab_src = factory.label(frame, "Controller", modal=True)
            self.combo_source = factory.controller_combobox(frame, app)
            lab_src.grid(row=1, column=0, padx=4, sticky='w')
            self.combo_source.grid(row=1, column=1, columnspan=2, sticky="ew")
        else:
            lab_src = factory.label(frame, "Source: %s" % src, modal=True)
            self.combo_source = factory.combobox(None, [src])
            lab_src.grid(row=1, column=0, columnspan=3, padx=4, sticky='w')
        lab_param = factory.label(frame, "Param", modal=True)
        self.cb_all = factory.checkbutton(frame, "All", var = self.var_all, modal=True)
        params = sorted(synth.bank().template.keys())
        self.combo_params = factory.combobox(frame, params, 
                                             "Synth Parameters")
        lab_param.grid(row=2, column=0, padx=4, pady=4, sticky='w')
        self.cb_all.grid(row=2, column=1, padx=4)
        self.combo_params.grid(row=2, column=2)

        def disable_param_callback():
            val = int(self.var_all.get())
            if val == 0:
                self.combo_params.config(state="normal")
            else:
                self.combo_params.config(state="disabled")
        
        def accept_callback():
            shelper = self.app.ls_parser.synthhelper
            if self.src == "cc":
                src = self.combo_source.get()[1:4]
            else:
                src = self.src
            src = src.lower()
            if int(self.var_all.get()) == 0:
                param = self.combo_params.get()
            else:
                param = "ALL"
            shelper.remove_parameter_map(src, param, self.synth.sid)
            msg = "Removed MIDI source map"
            self.status(msg)
            self.destroy()
            self.synth.synth_editor.sync()

        def cancel_callback():
            msg = "Delete source map canceld"
            self.status(msg)
            self.destroy()

        toolbar = factory.frame(frame, modal=True)
        b_accept = factory.accept_button(toolbar, command=accept_callback)
        b_cancel = factory.cancel_button(toolbar, command=cancel_callback)
        toolbar.grid(row=3, column=0, columnspan=3, padx=4, pady=8, sticky="ew")
        b_accept.grid(row=0, column=0, sticky="ew")
        b_cancel.grid(row=0, column=1, sticky="ew")
        self.cb_all.config(command=disable_param_callback)
        try:                    # ISSUE BUG 0004
            self.grab_set()
        except TclError as err:
            print("-" * 60)
            print("BUG 0004 trapped. TkDeleteSourceMapDialog.__init__")
            print(err.message)
            print("Unable to open dialog as modal")
            
        self.mainloop()
Exemple #12
0
 def __init__(self, master, param, editor):
     """
     Create new OscFrequencyControl object.
     Widgets are not automatically added to the Tk master.   Call the 
     layout method to place widgets using a default layout.  
     
     ARGS:
       param  - String, SC synth parameter.
       editor - An instance of TkSubEditor
       master - Tk container.
     """
     print("DEPRECIATION WARNING: OscFrequencyControl")
     super(OscFrequencyControl, self).__init__(param, editor, master)
     octaves = [(3, "+3"), (2, "+2"), (1, "+1"), (0, " 0"), (-1, "-1"),
                (-2, "-2"), (-3, "-3")]
     self.var_octave = tk.StringVar()  # Octave number -3 ... +3
     self.var_transpose = tk.IntVar()  # Transpose steps, 0 ... 11
     self.var_detune = tk.IntVar()  # Detune in cents 0 ... 99
     self.var_zero = tk.IntVar()  # 0 -> osc != 0,  1 -> osc freq = 0
     self.var_octave.set(0)
     self.var_transpose.set(0)
     self.var_detune.set(0)
     self.var_zero.set(0)
     self._radio_buttons = []
     for value, text in octaves:
         rb = factory.radio(master,
                            text,
                            self.var_octave,
                            value,
                            command=self.callback,
                            ttip="%s octave" % param)
         widget_key = "radio-octave-%d" % value
         self._widgets[widget_key] = rb
         self._radio_buttons.append(rb)
         rb.bind("<Enter>", self.enter_callback)
     s_step = factory.scale(master,
                            from_=11,
                            to=0,
                            var=self.var_transpose,
                            command=self.callback,
                            ttip="%s transpose (steps)" % param)
     s_detune = factory.scale(master,
                              from_=99,
                              to=0,
                              var=self.var_detune,
                              command=self.callback,
                              ttip="%s detune (cents)" % param)
     cb_zero = factory.checkbutton(master, "Off")
     cb_zero.config(command=self.callback, var=self.var_zero)
     ## Labels
     lab_transpose = factory.label(master, "00")
     lab_detune = factory.label(master, "000")
     lab_value = factory.label(master, "1.0000")
     self._widgets["scale-transpose"] = s_step
     self._widgets["scale-detune"] = s_detune
     self._widgets["checkbutton-zero"] = cb_zero
     self._widgets["label-transpose"] = lab_transpose
     self._widgets["label-detune"] = lab_detune
     self._widgets["label-value"] = lab_value
     self._editor = editor
     self._param = param
     s_step.bind("<Enter>", self.enter_callback)
     s_detune.bind("<Enter>", self.enter_callback)