Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
self.startSlider = ControlSlider(self, 0, snd_dur, 0, outFunction=self.handleStart)
vbox.Add(self.startSlider, 0, wx.ALL, 5)
stline = wx.StaticText(self, -1, 'Ending point in seconds:')
vbox.Add(stline, 1, wx.ALIGN_CENTER_HORIZONTAL|wx.TOP, 10)
self.endSlider = ControlSlider(self, 0, snd_dur, snd_dur, outFunction=self.handleEnd)
vbox.Add(self.endSlider, 0, wx.ALL, 5)
stline = wx.StaticText(self, -1, 'Insertion point in seconds:')
vbox.Add(stline, 1, wx.ALIGN_CENTER_HORIZONTAL|wx.TOP, 10)
self.insertSlider = ControlSlider(self, 0, actual_dur, 0)
vbox.Add(self.insertSlider, 0, wx.ALL, 5)
stline = wx.StaticText(self, -1, 'Crossfade time in seconds:')
vbox.Add(stline, 1, wx.ALIGN_CENTER_HORIZONTAL|wx.TOP, 10)
self.crossfadeSlider = ControlSlider(self, 0.001, snd_dur*0.5, 0, outFunction=self.handleCross)
vbox.Add(self.crossfadeSlider, 0, wx.ALL, 5)
sizer = self.CreateButtonSizer(wx.CANCEL|wx.OK)
vbox.Add(sizer, 0, wx.ALL, 10)
self.SetSizerAndFit(vbox)
self.box.AddSpacer(2)
self.slider2 = ControlSlider(self.panel, sl2values[1], sl2values[2], sl2values[3], log=sl2values[4], size=(250,16), outFunction=self.handleSlider2)
self.box.Add(self.slider2, 0, wx.LEFT|wx.RIGHT, 10)
text = wx.StaticText(self.panel, -1, "Amplitude")
text.SetFont(font)
self.box.Add(text, 0, wx.LEFT|wx.RIGHT|wx.TOP, 10)
self.box.AddSpacer(2)
self.slider3 = ControlSlider(self.panel, 0, 2, 1, size=(250,16), outFunction=self.handleMul)
self.box.Add(self.slider3, 0, wx.LEFT|wx.RIGHT, 10)
text = wx.StaticText(self.panel, -1, "Pan")
text.SetFont(font)
self.box.Add(text, 0, wx.LEFT|wx.RIGHT|wx.TOP, 10)
self.box.AddSpacer(2)
self.slider4 = ControlSlider(self.panel, 0, 1, 0.5, size=(250,16), outFunction=self.handlePan)
self.box.Add(self.slider4, 0, wx.LEFT|wx.RIGHT|wx.BOTTOM, 10)
self.panel.SetSizerAndFit(self.box)
if PLATFORM == "win32":
X, Y = self.GetSize()[0], self.GetSize()[1] + 50
elif PLATFORM.startswith("linux"):
X, Y = self.GetSize()[0], self.GetSize()[1] + 40
else:
X, Y = self.GetSize()[0], self.GetSize()[1] + 20
self.SetMinSize((X, Y))
self.SetMaxSize((X, Y))
wx.CallAfter(self.SetSize, (X, Y))
box.Add(wx.StaticLine(self.panel, size=(240, 1)), 0, wx.ALL, 5)
box.Add(wx.StaticText(self.panel, id=-1, label="Pitch Mapping"), 0, wx.LEFT|wx.TOP|wx.RIGHT, 5)
self.xTranspo = wx.CheckBox(self.panel, label="Transposition")
self.xTranspo.SetValue(True)
self.xTranspo.Bind(wx.EVT_CHECKBOX, self.handleTranspo)
box.Add(self.xTranspo, 0, wx.ALL, 5)
self.xPosition = wx.CheckBox(self.panel, label="X Axis Position")
self.xPosition.Bind(wx.EVT_CHECKBOX, self.handlePosition)
box.Add(self.xPosition, 0, wx.ALL, 5)
box.Add(wx.StaticText(self.panel, id=-1, label="X Pos Octave Spread"), 0, wx.LEFT|wx.TOP|wx.RIGHT, 5)
self.octaveSpread = ControlSlider(self.panel, 1, 4, 2, size=(250, 16), outFunction=self.handleSpread)
self.enableOctaveSpread(self.xPosition.GetValue())
box.Add(self.octaveSpread, 0, wx.ALL|wx.EXPAND, 3)
box.Add(wx.StaticLine(self.panel, size=(240, 1)), 0, wx.ALL, 5)
self.panel.SetSizerAndFit(box)
size = self.GetBestSize()
size = (size[0], size[1]+30)
self.SetMinSize(size)
self.SetMaxSize(size)
self.SetPosition((self.parent.GetPosition()[0] + self.parent.GetSize()[0], self.parent.GetPosition()[1]))
self.Show(False)
wx.CallAfter(self.SetSize, size)
box.Add(qBox, 0, wx.LEFT | wx.RIGHT, 5)
box.AddSpacer(5)
oscpText = wx.StaticText(self, -1, "Oscil period", size=(195,15))
box.Add(oscpText, 0, wx.LEFT, 5)
periodBox = wx.BoxSizer(wx.HORIZONTAL)
self.sl_period = ControlSlider(self, 0, 5, 2, size=(195, 16), outFunction=self.parent.GetParent().handlePeriod)
periodBox.Add(self.sl_period)
self.sl_period.Disable()
box.Add(periodBox, 0, wx.LEFT | wx.RIGHT, 5)
box.AddSpacer(5)
oscsclText = wx.StaticText(self, -1, "Oscil scaling", size=(195,15))
box.Add(oscsclText, 0, wx.LEFT, 5)
scalingBox = wx.BoxSizer(wx.HORIZONTAL)
self.sl_scaling = ControlSlider(self, 0, 4, 1, size=(195, 16), outFunction=self.parent.GetParent().handleScaling)
scalingBox.Add(self.sl_scaling)
self.sl_scaling.Disable()
box.Add(scalingBox, 0, wx.LEFT | wx.RIGHT, 5)
box.AddSpacer(5)
for obj in [lpcutText, lpqText, oscpText, oscsclText]:
obj.SetFont(font)
self.SetAutoLayout(True)
self.SetSizer(box)
import wx.lib.newevent
from ._wxwidgets import ControlSlider, VuMeter, Grapher, DataMultiSlider, HRangeSlider
from ._wxwidgets import SpectrumPanel, ScopePanel, SndViewTablePanel, Keyboard
if "phoenix" not in wx.version():
wx.QueueEvent = wx.PostEvent
# Custom events
PyoGuiControlSliderEvent, EVT_PYO_GUI_CONTROL_SLIDER = wx.lib.newevent.NewEvent()
PyoGuiGrapherEvent, EVT_PYO_GUI_GRAPHER = wx.lib.newevent.NewEvent()
PyoGuiMultiSliderEvent, EVT_PYO_GUI_MULTI_SLIDER = wx.lib.newevent.NewEvent()
PyoGuiSndViewMousePositionEvent, EVT_PYO_GUI_SNDVIEW_MOUSE_POSITION = wx.lib.newevent.NewEvent()
PyoGuiSndViewSelectionEvent, EVT_PYO_GUI_SNDVIEW_SELECTION = wx.lib.newevent.NewEvent()
PyoGuiKeyboardEvent, EVT_PYO_GUI_KEYBOARD = wx.lib.newevent.NewEvent()
class PyoGuiControlSlider(ControlSlider):
"""
Floating-point control slider.
:Parent: wx.Panel
:Events:
EVT_PYO_GUI_CONTROL_SLIDER
Sent after any change of the slider position. The current
value of the slider can be retrieve with the `value`
attribute of the generated event. The object itself can be
retrieve with the `object` attribute of the event and the
object's id with the `id` attrbute.
:Args:
SoundGrain is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with SoundGrain. If not, see .
"""
import wx
from pyo import rescale
from pyo.lib._wxwidgets import ControlSlider
from .constants import BACKGROUND_COLOUR, PLATFORM
class SGControlSlider(ControlSlider):
def __init__(self, parent, minvalue, maxvalue, init=None, pos=(0,0), size=(200,16), log=False,
outFunction=None, integer=False, powoftwo=False, backColour=None, orient=wx.HORIZONTAL,
ctrllabel=""):
ControlSlider.__init__(self, parent, minvalue, maxvalue, init, pos, size, log,
outFunction, integer, powoftwo, backColour, orient, ctrllabel)
self.sg_audio = self.GetParent().GetParent().GetParent().GetParent().sg_audio
self.output_callback = outFunction
self.midilearn = False
self.normal_colour = self.backgroundColour
self.Bind(wx.EVT_RIGHT_DOWN, self.MouseRightDown)
def MouseRightDown(self, evt):
if self.midilearn:
self.midilearn = False
self.setBackgroundColour(self.normal_colour)
self.sg_audio.ctlscan(None)
self.Bind(wx.EVT_MENU, self.handleClose, id=200)
self.panel = wx.Panel(self, -1)
self.panel.SetBackgroundColour(BACKGROUND_COLOUR)
self.box = wx.BoxSizer(wx.VERTICAL)
sl1values = FX_BALL_SLIDER_1_INIT[fxball.getFx()]
sl2values = FX_BALL_SLIDER_2_INIT[fxball.getFx()]
text = wx.StaticText(self.panel, -1, sl1values[0])
font, psize = text.GetFont(), text.GetFont().GetPointSize()
font.SetPointSize(psize-1)
text.SetFont(font)
self.box.Add(text, 0, wx.LEFT|wx.RIGHT|wx.TOP, 10)
self.box.AddSpacer(2)
self.slider1 = ControlSlider(self.panel, sl1values[1], sl1values[2], sl1values[3], log=sl1values[4], size=(250,16), outFunction=self.handleSlider1)
self.box.Add(self.slider1, 0, wx.LEFT|wx.RIGHT, 10)
text = wx.StaticText(self.panel, -1, sl2values[0])
text.SetFont(font)
self.box.Add(text, 0, wx.LEFT|wx.RIGHT|wx.TOP, 10)
self.box.AddSpacer(2)
self.slider2 = ControlSlider(self.panel, sl2values[1], sl2values[2], sl2values[3], log=sl2values[4], size=(250,16), outFunction=self.handleSlider2)
self.box.Add(self.slider2, 0, wx.LEFT|wx.RIGHT, 10)
text = wx.StaticText(self.panel, -1, "Amplitude")
text.SetFont(font)
self.box.Add(text, 0, wx.LEFT|wx.RIGHT|wx.TOP, 10)
self.box.AddSpacer(2)
self.slider3 = ControlSlider(self.panel, 0, 2, 1, size=(250,16), outFunction=self.handleMul)
self.box.Add(self.slider3, 0, wx.LEFT|wx.RIGHT, 10)
timespeedBox.Add(self.sl_timespeed)
box.Add(timespeedBox, 0, wx.LEFT | wx.RIGHT, 5)
box.AddSpacer(5)
ptstepText = wx.StaticText(self, -1, "Point step", size=(195,15))
box.Add(ptstepText, 0, wx.LEFT, 5)
stepBox = wx.BoxSizer(wx.HORIZONTAL)
self.sl_step = ControlSlider(self, 1, 100, 1, size=(195, 16), integer=True, outFunction=self.parent.GetParent().handleStep)
stepBox.Add(self.sl_step)
box.Add(stepBox, 0, wx.LEFT | wx.RIGHT, 5)
box.AddSpacer(5)
ampText = wx.StaticText(self, -1, "Amplitude (dB)", size=(195,15))
box.Add(ampText, 0, wx.LEFT, 5)
ampBox = wx.BoxSizer(wx.HORIZONTAL)
self.sl_amp = ControlSlider(self, -60, 18, 0, size=(195, 16), integer=False, outFunction=self.parent.GetParent().handleTrajAmp)
ampBox.Add(self.sl_amp)
box.Add(ampBox, 0, wx.LEFT | wx.RIGHT, 5)
for obj in [seltrajText, self.tog_traj, spdText, ptstepText, ampText]:
obj.SetFont(font)
self.SetAutoLayout(True)
self.SetSizer(box)
cutoffBox.Add(self.sl_cutoff)
box.Add(cutoffBox, 0, wx.LEFT | wx.RIGHT, 5)
box.AddSpacer(5)
lpqText = wx.StaticText(self, -1, "Lowpass Q", size=(195,15))
box.Add(lpqText, 0, wx.LEFT, 5)
qBox = wx.BoxSizer(wx.HORIZONTAL)
self.sl_q = ControlSlider(self, 0.5, 1000, 0.5, size=(195, 16), outFunction=self.parent.GetParent().handleQ)
qBox.Add(self.sl_q)
box.Add(qBox, 0, wx.LEFT | wx.RIGHT, 5)
box.AddSpacer(5)
oscpText = wx.StaticText(self, -1, "Oscil period", size=(195,15))
box.Add(oscpText, 0, wx.LEFT, 5)
periodBox = wx.BoxSizer(wx.HORIZONTAL)
self.sl_period = ControlSlider(self, 0, 5, 2, size=(195, 16), outFunction=self.parent.GetParent().handlePeriod)
periodBox.Add(self.sl_period)
self.sl_period.Disable()
box.Add(periodBox, 0, wx.LEFT | wx.RIGHT, 5)
box.AddSpacer(5)
oscsclText = wx.StaticText(self, -1, "Oscil scaling", size=(195,15))
box.Add(oscsclText, 0, wx.LEFT, 5)
scalingBox = wx.BoxSizer(wx.HORIZONTAL)
self.sl_scaling = ControlSlider(self, 0, 4, 1, size=(195, 16), outFunction=self.parent.GetParent().handleScaling)
scalingBox.Add(self.sl_scaling)
self.sl_scaling.Disable()
box.Add(scalingBox, 0, wx.LEFT | wx.RIGHT, 5)
box.AddSpacer(5)
for obj in [lpcutText, lpqText, oscpText, oscsclText]:
obj.SetFont(font)
def MouseDown(self, evt):
if vars.vars["MIDILEARN"]:
if vars.vars["LEARNINGSLIDER"] == None:
vars.vars["LEARNINGSLIDER"] = self
self.Disable()
elif vars.vars["LEARNINGSLIDER"] == self:
vars.vars["LEARNINGSLIDER"].setMidiCtl(None)
vars.vars["LEARNINGSLIDER"] = None
self.Enable()
evt.StopPropagation()
else:
ControlSlider.MouseDown(self, evt)