diff --git a/bin/keyboardcomposer b/bin/keyboardcomposer --- a/bin/keyboardcomposer +++ b/bin/keyboardcomposer @@ -54,11 +54,11 @@ class SubmasterTk(Frame): self.slider_var = DoubleVar() self.slider_var.set(current_level) self.scale = SubScale(self, variable=self.slider_var, width=20) - namelabel = Label(self, text=name, font="Arial 9", bg='black', - fg='white') + namelabel = Label(self, text=name, font="Arial 7", bg='black', + fg='white', pady=0) namelabel.pack(side=TOP) - levellabel = Label(self, textvariable=self.slider_var, font="Arial 11", - bg='black', fg='white') + levellabel = Label(self, textvariable=self.slider_var, font="Arial 7", + bg='black', fg='white', pady=0) levellabel.pack(side=TOP) self.scale.pack(side=BOTTOM, expand=1, fill=BOTH) bindkeys(self, "", self.launch_subcomposer) diff --git a/light9/Fadable.py b/light9/Fadable.py --- a/light9/Fadable.py +++ b/light9/Fadable.py @@ -62,13 +62,24 @@ class Fadable: self.bind('', lambda evt: self.decrease(length=1)) self.last_level = None # used for muting + + def set_var_rounded(self, value): + """use this instead of just self.fade_var.set(value) so we can + control the precision""" + # this was just to make the display not look so weird, but it + # could actually affect the speed of really slow fades. If + # that's a problem, do a real trace_write hook for the + # variable's display instead of using Label(textvariable=var) + # and format it there. + self.fade_var.set(round(value, 7)) + def fade(self, value, length=0.5, step_time=10): """Fade to value in length seconds with steps every step_time milliseconds""" if length == 0: # 0 seconds fades happen right away and prevents # and prevents us from entering the fade loop, # which would cause a divide by zero - self.fade_var.set(value) + self.set_var_rounded(value) self.fading = 0 # we stop all fades else: # the general case self.fade_start_time = time.time() @@ -90,7 +101,7 @@ class Fadable: complete = min(1.0, complete) diff = self.fade_end_level - self.fade_start_level newlevel = (complete * diff) + self.fade_start_level - self.fade_var.set(newlevel) + self.set_var_rounded(newlevel) if complete < 1: self.after(self.fade_step_time, self.do_fade) else: @@ -121,7 +132,7 @@ class Fadable: if self.use_fades: self.fade(newlevel, length=length) else: - self.fade_var.set(newlevel) + self.set_var_rounded(newlevel) def toggle_mute(self): """Toggles whether the volume is being muted.""" if self.last_level is None: @@ -136,7 +147,7 @@ class Fadable: newlevel = self.last_level self.last_level = None - self.fade_var.set(newlevel) + self.set_var_rounded(newlevel) if __name__ == "__main__": class SubScale(Scale, Fadable): diff --git a/show/dance2008/readme b/show/dance2008/readme --- a/show/dance2008/readme +++ b/show/dance2008/readme @@ -140,7 +140,7 @@ OK curvecalc should always start up zoo unnamed subterm is serious. i think only the last one created gets saved, or something - KC smaller font on labels should allow bigger sliders +OK KC smaller font on labels should allow bigger sliders curvecalc_all_subterms needs redo