Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/SynthLab
diff options
context:
space:
mode:
authorOli <olivier.belanger@umontreal.ca>2007-08-03 08:16:32 (GMT)
committer Oli <olivier.belanger@umontreal.ca>2007-08-03 08:16:32 (GMT)
commitfa2fd6315c549b1d5f34fc9e00ae36b24be11c54 (patch)
treed97be94db0266169273a93de28420f7b02a2c0db /SynthLab
parent61d50a496dfc5f508db1f152dc0b8277e12d2586 (diff)
move tooltips, display string of highLightGate, color and speaker bug
Diffstat (limited to 'SynthLab')
-rwxr-xr-xSynthLab/SynthLabConstants.py198
-rw-r--r--SynthLab/SynthLabWindow.py117
2 files changed, 244 insertions, 71 deletions
diff --git a/SynthLab/SynthLabConstants.py b/SynthLab/SynthLabConstants.py
index 2bbd716..ef09661 100755
--- a/SynthLab/SynthLabConstants.py
+++ b/SynthLab/SynthLabConstants.py
@@ -1,3 +1,5 @@
+from gettext import gettext as _
+
class SynthLabConstants:
PIC_SIZE = 80
@@ -35,12 +37,9 @@ class SynthLabConstants:
m.append( ( x, y ) )
OBJ_Y_LOC = 710
-# INIT_LOCATIONS = [ [330,OBJ_Y_LOC], [405,OBJ_Y_LOC], [480,OBJ_Y_LOC], [555, OBJ_Y_LOC], [15,OBJ_Y_LOC], [90,OBJ_Y_LOC],
-# [170,OBJ_Y_LOC], [250, OBJ_Y_LOC], [635,OBJ_Y_LOC], [710,OBJ_Y_LOC], [785,OBJ_Y_LOC], [860, OBJ_Y_LOC],
-# [600, 625]]
- INIT_LOCATIONS = [ [450,OBJ_Y_LOC], [450,OBJ_Y_LOC], [450,OBJ_Y_LOC],
+ INIT_LOCATIONS = [ [450,OBJ_Y_LOC], [450,OBJ_Y_LOC], [450,OBJ_Y_LOC],
[450, OBJ_Y_LOC], [225,OBJ_Y_LOC], [225,OBJ_Y_LOC],
- [225,OBJ_Y_LOC], [225, OBJ_Y_LOC], [675,OBJ_Y_LOC],
+ [225,OBJ_Y_LOC], [225, OBJ_Y_LOC], [675,OBJ_Y_LOC],
[675,OBJ_Y_LOC], [675,OBJ_Y_LOC], [675, OBJ_Y_LOC],
[450, 625]]
@@ -73,18 +72,193 @@ class SynthLabConstants:
'chorus': [.5, 1., 5., .5, 0, 3, 0, 10, 0, 30, 0, 1, FLOAT, FLOAT, FLOAT]}
CONTROL_TYPES = ['lfo', 'rand', 'adsr', 'trackpadX', 'trackpadY']
- CONTROL_TYPES_SEL = ['lfosel', 'randsel', 'adsrsel', 'trackpadXsel', 'trackpadYsel']
- CONTROL_TYPES_PLUS = ['lfo+', 'rand+', 'adsr+', 'trackpadX+', 'trackpadY+']
+ CONTROL_TYPES_SEL = [type + 'sel' for type in CONTROL_TYPES]
+ CONTROL_TYPES_PLUS = [type + '+' for type in CONTROL_TYPES]
SOURCE_TYPES = ['fm', 'buzz', 'vco', 'pluck', 'noise', 'sample', 'voice', 'grain', 'addSynth']
- SOURCE_TYPES_SEL = ['fmsel', 'buzzsel', 'vcosel', 'plucksel', 'noisesel', 'samplesel', 'voicesel', 'grainsel', 'addSynthsel']
- SOURCE_TYPES_PLUS = ['fm+', 'buzz+', 'vco+', 'pluck+', 'noise+', 'sample+', 'voice+', 'grain+', 'addSynth+']
+ SOURCE_TYPES_SEL = [type + 'sel' for type in SOURCE_TYPES]
+ SOURCE_TYPES_PLUS = [type + '+' for type in SOURCE_TYPES]
FX_TYPES = ['wguide', 'distort','filter', 'ring', 'reverb', 'harmon', 'eq4band', 'chorus']
- FX_TYPES_SEL = ['wguidesel', 'distortsel','filtersel', 'ringsel', 'reverbsel', 'harmonsel', 'eq4bandsel', 'chorussel']
- FX_TYPES_PLUS = ['wguide+', 'distort+','filter+', 'ring+', 'reverb+', 'harmon+', 'eq4band+', 'chorus+']
+ FX_TYPES_SEL = [type + 'sel' for type in FX_TYPES]
+ FX_TYPES_PLUS = [type + '+' for type in FX_TYPES]
OUTPUT_TYPE = ['adsr']
OUTPUT_TYPE_SEL = ['adsrsel']
CHOOSE_TYPE = [CONTROL_TYPES, SOURCE_TYPES, FX_TYPES, OUTPUT_TYPE]
CHOOSE_TYPE2 = [CONTROL_TYPES_SEL, SOURCE_TYPES_SEL, FX_TYPES_SEL, OUTPUT_TYPE_SEL]
CHOOSE_TYPE_PLUS = [CONTROL_TYPES_PLUS, SOURCE_TYPES_PLUS, FX_TYPES_PLUS]
- PRESET = ['docu1', 'docu2', 'docu3', 'docu4', 'docu5', 'docu6', 'docu7', 'docu8', 'docu9', 'docu10']
+# SynthLab Tooltips
+ SOURCE = _('Source')
+ EFFECT = _('Effect')
+ CONTROL = _('Control')
+ SOUNDOUT = _('Sound Output')
+
+ #Controls
+ LFO = _('LFO')
+ AMP = _('Amplitude')
+ FREQ = _('Frequency')
+ WAVEFORM = _('Waveform')
+ LFO_WAVEFORMS = [_('Sine'), _('Triangle'), _('Bi-Square'), _('Uni-Square'), _('Sawtooth'), _('Sawtooth-down')]
+ OFFSET = _('Offset')
+
+ RANDOM = _('Random')
+ MIN = _('Minimum')
+ MAX = _('Maximum')
+ FREQ = FREQ
+ SEED = _('Seed')
+
+ ADSR = _('Envelope')
+ ATTACK = _('Attack')
+ DECAY = _('Decay')
+ SUSTAIN = _('Sustain')
+ RELEASE = _('Release')
+
+ TRACKPADX = _('Trackpad X')
+ MIN = MIN
+ MAX = MAX
+ SCALING = _('Scaling')
+ SCALING_TYPES = [_('Lin'), _('Log')]
+ POLL = _('Poll time')
+
+ TRACKPADY = _('Trackpad Y')
+ MIN = MIN
+ MAX = MAX
+ SCALING = SCALING
+ SCALING_TYPES = SCALING_TYPES
+ POLL = POLL
+
+ #Source
+ FM = _('FM')
+ CAR = _('Carrier Frequency')
+ MOD = _('Modulator Frequency')
+ INDEX = _('Index')
+ GAIN = _('Gain')
+
+ BUZZ = _('Buzz')
+ FREQ = FREQ
+ NHARM = _('Number of harmonics')
+ FSLOPE = _('Filter Slope')
+ GAIN = GAIN
+
+ VCO = _('VCO')
+ FREQ = FREQ
+ WAVEFORM = WAVEFORM
+ VCO_WAVEFORMS = [_('Sawtooth'), _('Square'), _('Triangle')]
+ FSLOPE = FSLOPE
+ GAIN = GAIN
+
+ PLUCK = _('Pluck')
+ FREQ = FREQ
+ LFILTER = _('Lowpass Filter')
+ VIBRATO = _('Vibrato')
+ GAIN = GAIN
+
+ NOISE = _('Noise')
+ NOISETYPE = _('Type')
+ NOISE_TYPES = [_('White'), _('Pink'), _('Gauss')]
+ FREQ = FREQ
+ BANDWITH = _('Bandwith')
+ GAIN = GAIN
+
+ SAMPLE = _('Sound Sample')
+ FREQ = FREQ
+ SAMPLEN = _('Sample Number')
+ SAMPLE_NAMES = _('Sample name')
+ LFILTER = LFILTER
+ GAIN = GAIN
+
+ VOICE = _('Voice')
+ FREQ = FREQ
+ VOWEL = _('Vowel')
+ VOWEL_TYPES = ['i', 'e', 'ee', 'a', 'u', 'o1', 'o2', 'oa', 'oe']
+ VIBRATO = VIBRATO
+ GAIN = GAIN
+
+ GRAIN = _('Grain')
+ FREQ = FREQ
+ SAMPLEN = SAMPLEN
+ INDEX = _('Index')
+ GAIN = GAIN
+
+ ADDSYNTH = _('Additive Synthesis')
+ FREQ = FREQ
+ SPREAD = _('Spread')
+ WAVE = _('Waveform')
+ GAIN = GAIN
+
+ #Effects
+ DELAY = _('Delay')
+ FREQ = FREQ
+ LFILTER = LFILTER
+ FEEDBACK = _('Feedback')
+ GAIN = GAIN
+
+ DIST = _('Distortion')
+ FREQ = FREQ
+ RESON = _('Resonance')
+ DISTL = _('Distotion Level')
+ GAIN = GAIN
+
+ FILTER = _('Filter')
+ FREQ = FREQ
+ FSLOPE = FSLOPE
+ FTYPE = _('Type')
+ FILTER_TYPES = [_('Lowpass'), _('Highpass'), _('Bandpass')]
+ GAIN = GAIN
+
+ RINGMOD = _('Ring Modulator')
+ FREQ = FREQ
+ MIX = _('Mix')
+ WAVEFORM = WAVEFORM
+ LFO_WAVEFORMS = LFO_WAVEFORMS
+ GAIN = GAIN
+
+ REVERB = _('Reverb')
+ REVERBD = _('Length')
+ REVERBF = _('Lowpass Filter')
+ REVERBL = _('Reverb Level')
+ GAIN = GAIN
+
+ HARMON = _('Harmonizer')
+ FREQ = FREQ
+ DRYDELAY = _('Dry delay')
+ MIX = MIX
+ GAIN = GAIN
+
+ EQ4BAND = _('Equalizer 4 bands')
+ FREQ1 = _('Band one gain')
+ FREQ2 = _('Band two gain')
+ FREQ3 = _('Band three gain')
+ FREQ4 = _('Band four gain')
+
+ CHORUS = _('Chorus')
+ LFODEPTH = _('LFO Depth')
+ LFOFREQ = _('LFO Frequency')
+ DELAY = _('Delay')
+ FEEDBACK = FEEDBACK
+
+ SYNTHTYPES = [[LFO, RANDOM, ADSR, TRACKPADX, TRACKPADY],
+ [FM, BUZZ, VCO, PLUCK, NOISE, SAMPLE, VOICE, GRAIN, ADDSYNTH],
+ [DELAY, DIST, FILTER, RINGMOD, REVERB, HARMON, EQ4BAND, CHORUS], [ADSR]]
+
+ SYNTHPARA = { _('lfo'): [AMP, FREQ, WAVEFORM, OFFSET],
+ _('rand'): [MIN, MAX, FREQ, SEED],
+ _('adsr'): [ATTACK, DECAY, SUSTAIN, RELEASE],
+ _('trackpadX'): [MIN, MAX, SCALING, POLL],
+ _('trackpadY'): [MIN, MAX, SCALING, POLL],
+ _('fm'): [CAR, MOD, INDEX, GAIN],
+ _('buzz'): [FREQ, NHARM, FSLOPE, GAIN],
+ _('vco'): [FREQ, WAVEFORM, FSLOPE, GAIN],
+ _('pluck'): [FREQ, LFILTER, VIBRATO, GAIN],
+ _('noise'): [NOISETYPE, FREQ, BANDWITH, GAIN],
+ _('sample'): [FREQ, SAMPLEN, LFILTER, GAIN],
+ _('voice'): [FREQ, VOWEL, VIBRATO, GAIN],
+ _('grain'): [FREQ, SAMPLEN, INDEX, GAIN],
+ _('addSynth'): [FREQ, SPREAD, WAVE, GAIN],
+ _('wguide'): [FREQ, LFILTER, FEEDBACK, GAIN],
+ _('distort'): [FREQ, RESON, DISTL, GAIN],
+ _('filter'): [FREQ, FSLOPE, FTYPE, GAIN],
+ _('ring'): [FREQ, MIX, WAVEFORM, GAIN],
+ _('reverb'): [REVERBD, REVERBF, REVERBL, GAIN],
+ _('harmon'): [FREQ, DRYDELAY, MIX, GAIN],
+ _('eq4band'): [FREQ1, FREQ2, FREQ3, FREQ4],
+ _('chorus'): [LFODEPTH, LFOFREQ, DELAY, FEEDBACK]}
diff --git a/SynthLab/SynthLabWindow.py b/SynthLab/SynthLabWindow.py
index 53c35c0..eaf8fd6 100644
--- a/SynthLab/SynthLabWindow.py
+++ b/SynthLab/SynthLabWindow.py
@@ -22,7 +22,6 @@ from SynthLab.SynthLabToolbars import mainToolbar
from SynthLab.SynthLabToolbars import presetToolbar
from Util.Trackpad import Trackpad
from SubActivity import SubActivity
-Tooltips = Config.Tooltips
as_window = False
@@ -51,7 +50,6 @@ class SynthLabWindow(SubActivity):
self.recordWait = 0
self.recCount = 0
self.duration = 2
- self.new = True
self.viewType = ''
self.viewParam = ''
self.curSlider = 1
@@ -85,7 +83,6 @@ class SynthLabWindow(SubActivity):
self.lineWidthMUL4SQ = self.lineWidthMUL4*self.lineWidthMUL4
self.clockStart = 0
self.sample_names = [name for i in range( len( Config.INSTRUMENTS ) ) for name in Config.INSTRUMENTS.keys() if Config.INSTRUMENTS[ name ].instrumentId == i ]
- self.tooltips = gtk.Tooltips()
if as_window:
self.add_events(gtk.gdk.KEY_PRESS_MASK|gtk.gdk.KEY_RELEASE_MASK)
@@ -131,7 +128,7 @@ class SynthLabWindow(SubActivity):
comboMenu = ToolComboBox(self.objComboBox)
menuBox.pack_start(comboMenu)
self.infoBox.pack_start(menuBox, False, False, 5)
-
+
slidersBox = gtk.HBox()
#fake values
@@ -297,7 +294,6 @@ class SynthLabWindow(SubActivity):
def select(self, i):
if i == self.instanceID:
return
- self.new = False
if self.instanceID > 0:
self.invalidate_rect( self.bounds[self.instanceID][0], self.bounds[self.instanceID][1]-2, SynthLabConstants.PIC_SIZE, SynthLabConstants.PIC_SIZE_HIGHLIGHT )
self.instanceID = i
@@ -314,10 +310,10 @@ class SynthLabWindow(SubActivity):
else:
self.choosenType = 0
self.objComboBox.set_active(self.choosenType)
- if self.choosenType == oldChoosen:
- self.changeObject(self.objComboBox)
- else:
- self.updateViewer()
+ #if self.choosenType != oldChoosen:
+ self.changeObject(self.objComboBox)
+ #else:
+ self.updateViewer()
#Not sure about this
self.slider1.grab_focus()
self.sendTables(self.slider1, 1)
@@ -325,64 +321,59 @@ class SynthLabWindow(SubActivity):
def changeObject(self, widget):
self.choosenType = widget.props.value
self.resize()
- self.synthObjectsParameters.setType(self.instanceID, self.choosenType)
- self.writeTables( self.synthObjectsParameters.types,
- self.synthObjectsParameters.controlsParameters,
- self.synthObjectsParameters.sourcesParameters,
+ if self.instanceID != 12:
+ self.synthObjectsParameters.setType(self.instanceID, self.choosenType)
+ self.writeTables( self.synthObjectsParameters.types,
+ self.synthObjectsParameters.controlsParameters,
+ self.synthObjectsParameters.sourcesParameters,
self.synthObjectsParameters.fxsParameters )
self.updateViewer()
def updateViewer(self):
- self.viewType = Tooltips.SYNTHTYPES[self.objectType][self.choosenType]
+ self.viewType = SynthLabConstants.SYNTHTYPES[self.objectType][self.choosenType]
selectedType = SynthLabConstants.CHOOSE_TYPE[self.objectType][self.choosenType]
- self.viewParam = Tooltips.SYNTHPARA[selectedType][self.curSlider-1] + ': ' + self.recallSliderValue(self.curSlider)
+ self.viewParam = SynthLabConstants.SYNTHPARA[selectedType][self.curSlider-1] + ': ' + self.recallSliderValue(self.curSlider)
self.infoText = self.viewType + '\n\n' + self.viewParam
self.textBuf.set_text(self.infoText)
def recallSliderValue( self, num ):
if num == 1:
- if Tooltips.SYNTHTYPES[self.objectType][self.choosenType] == Tooltips.NOISE:
- return Tooltips.NOISE_TYPES[int(self.slider1Val)]
+ if SynthLabConstants.SYNTHTYPES[self.objectType][self.choosenType] == SynthLabConstants.NOISE:
+ return SynthLabConstants.NOISE_TYPES[int(self.slider1Val)]
else:
return '%.2f' % self.slider1Val
if num == 2:
- if Tooltips.SYNTHTYPES[self.objectType][self.choosenType] == Tooltips.VCO:
- return Tooltips.VCO_WAVEFORMS[int(self.slider2Val)]
- elif Tooltips.SYNTHTYPES[self.objectType][self.choosenType] == Tooltips.SAMPLE or Tooltips.SYNTHTYPES[self.objectType][self.choosenType] == Tooltips.GRAIN:
+ if SynthLabConstants.SYNTHTYPES[self.objectType][self.choosenType] == SynthLabConstants.VCO:
+ return SynthLabConstants.VCO_WAVEFORMS[int(self.slider2Val)]
+ elif SynthLabConstants.SYNTHTYPES[self.objectType][self.choosenType] == SynthLabConstants.SAMPLE or SynthLabConstants.SYNTHTYPES[self.objectType][self.choosenType] == SynthLabConstants.GRAIN:
return self.sample_names[int(self.slider2Val)]
- elif Tooltips.SYNTHTYPES[self.objectType][self.choosenType] == Tooltips.VOICE:
- return Tooltips.VOWEL_TYPES[int(self.slider2Val)]
+ elif SynthLabConstants.SYNTHTYPES[self.objectType][self.choosenType] == SynthLabConstants.VOICE:
+ return SynthLabConstants.VOWEL_TYPES[int(self.slider2Val)]
else:
return '%.2f' % self.slider2Val
if num == 3:
- if Tooltips.SYNTHTYPES[self.objectType][self.choosenType] == Tooltips.LFO:
- return Tooltips.LFO_WAVEFORMS[int(self.slider3Val)]
- elif Tooltips.SYNTHTYPES[self.objectType][self.choosenType] == Tooltips.TRACKPADX:
- return Tooltips.SCALING_TYPES[int(self.slider3Val)]
- elif Tooltips.SYNTHTYPES[self.objectType][self.choosenType] == Tooltips.TRACKPADY:
- return Tooltips.SCALING_TYPES[int(self.slider3Val)]
- elif Tooltips.SYNTHTYPES[self.objectType][self.choosenType] == Tooltips.FILTER:
- return Tooltips.FILTER_TYPES[int(self.slider3Val)]
- elif Tooltips.SYNTHTYPES[self.objectType][self.choosenType] == Tooltips.RINGMOD:
- return Tooltips.LFO_WAVEFORMS[int(self.slider3Val)]
+ if SynthLabConstants.SYNTHTYPES[self.objectType][self.choosenType] == SynthLabConstants.LFO:
+ return SynthLabConstants.LFO_WAVEFORMS[int(self.slider3Val)]
+ elif SynthLabConstants.SYNTHTYPES[self.objectType][self.choosenType] == SynthLabConstants.TRACKPADX:
+ return SynthLabConstants.SCALING_TYPES[int(self.slider3Val)]
+ elif SynthLabConstants.SYNTHTYPES[self.objectType][self.choosenType] == SynthLabConstants.TRACKPADY:
+ return SynthLabConstants.SCALING_TYPES[int(self.slider3Val)]
+ elif SynthLabConstants.SYNTHTYPES[self.objectType][self.choosenType] == SynthLabConstants.FILTER:
+ return SynthLabConstants.FILTER_TYPES[int(self.slider3Val)]
+ elif SynthLabConstants.SYNTHTYPES[self.objectType][self.choosenType] == SynthLabConstants.RINGMOD:
+ return SynthLabConstants.LFO_WAVEFORMS[int(self.slider3Val)]
else:
return '%.2f' % self.slider3Val
if num == 4: return '%.2f' % self.slider4Val
def resize( self ):
selectedType = SynthLabConstants.CHOOSE_TYPE[self.objectType][self.choosenType]
- if self.new:
- slider1Init = SynthLabConstants.TYPES[selectedType][0]
- slider2Init = SynthLabConstants.TYPES[selectedType][1]
- slider3Init = SynthLabConstants.TYPES[selectedType][2]
- slider4Init = SynthLabConstants.TYPES[selectedType][3]
- else:
- parametersTable = self.synthObjectsParameters.choiceParamsSet[self.objectType]
- tablePos = (self.instanceID % 4)*4
- slider1Init = parametersTable[tablePos]
- slider2Init = parametersTable[tablePos+1]
- slider3Init = parametersTable[tablePos+2]
- slider4Init = parametersTable[tablePos+3]
+ parametersTable = self.synthObjectsParameters.choiceParamsSet[self.objectType]
+ tablePos = (self.instanceID % 4)*4
+ slider1Init = parametersTable[tablePos]
+ slider2Init = parametersTable[tablePos+1]
+ slider3Init = parametersTable[tablePos+2]
+ slider4Init = parametersTable[tablePos+3]
slider1Min = SynthLabConstants.TYPES[selectedType][4]
slider1Max = SynthLabConstants.TYPES[selectedType][5]
@@ -409,8 +400,6 @@ class SynthLabWindow(SubActivity):
self.slider2.set_digits(slider2Snap)
self.slider3.set_digits(slider3Snap)
- self.new = True
-
def sendTables( self, widget, data ):
self.curSlider = data
self.slider1Val = self.p1Adjust.value
@@ -429,7 +418,7 @@ class SynthLabWindow(SubActivity):
elif self.objectType == 2:
for i in range(4):
self.synthObjectsParameters.setFxParameter((self.instanceID % 4)*4+i, sliderListValue[i])
- else:
+ elif self.objectType == 3:
for i in range(4):
self.synthObjectsParameters.setOutputParameter(i, sliderListValue[i])
self.updateViewer()
@@ -438,7 +427,7 @@ class SynthLabWindow(SubActivity):
if self.instanceID != 12:
self.writeTables( self.synthObjectsParameters.types, self.synthObjectsParameters.controlsParameters,
self.synthObjectsParameters.sourcesParameters, self.synthObjectsParameters.fxsParameters )
-
+
def handleSliderEnter(self, widget, data, slider):
widget.grab_focus()
self.sendTables(widget, slider)
@@ -539,7 +528,7 @@ class SynthLabWindow(SubActivity):
self.highlightWire( None )
self.highlightGate( None )
-
+
if self.action == "drag-object":
self.doneAction()
elif self.action == "draw-wire":
@@ -558,7 +547,7 @@ class SynthLabWindow(SubActivity):
self.highlightWire( None )
self.highlightGate( None )
-
+
if event.button == 1:
for i in range(self.objectCount-1,-1,-1):
if self.bounds[i][0] < event.x < self.bounds[i][2] and self.bounds[i][1] < event.y < self.bounds[i][3]:
@@ -584,7 +573,7 @@ class SynthLabWindow(SubActivity):
i = self.wireUnderLoc( event.x, event.y )
if i >= 0: self.deleteWire( i )
-
+
def handleMotion( self, widget, event ):
if event.is_hint:
@@ -714,6 +703,7 @@ class SynthLabWindow(SubActivity):
# pass in obj = None to clear
def highlightGate( self, obj, gate = None, reject = False ):
+ print obj, gate
if obj == None:
self.parameterUpdate('')
if self.overGateObj != obj or self.overGate != gate or self.overGateReject != reject:
@@ -728,15 +718,24 @@ class SynthLabWindow(SubActivity):
y = self.locations[self.overGateObj][1] + self.overGate[3][1] - self.overGateSizeDIV2
self.overGateLoc = ( x, y )
self.invalidate_rect( self.overGateLoc[0], self.overGateLoc[1], self.overGateSize, self.overGateSize )
- if obj != 12:
- choosen = SynthLabConstants.CHOOSE_TYPE[obj/4][self.typesTable[obj]]
- _str = Tooltips.SYNTHTYPES[obj/4][self.typesTable[obj]] + ': ' + Tooltips.SYNTHPARA[choosen][gate[1]]
- if gate[0] == 1:
+ if True: #obj != 12:
+ if gate[0] == 0:
+ _str = SynthLabConstants.SYNTHTYPES[obj/4][self.typesTable[obj]] + ': output'
+ elif gate[0] == 1:
+ choosen = SynthLabConstants.CHOOSE_TYPE[obj/4][self.typesTable[obj]]
+ _str = SynthLabConstants.SYNTHTYPES[obj/4][self.typesTable[obj]] + ': ' + SynthLabConstants.SYNTHPARA[choosen][gate[1]]
if self.overGateObj == self.instanceID:
gateNum = self.overGate[1]+1
exec 'self.slider%s.grab_focus()' % str(gateNum)
- exec 'self.sendTables(self.slider%s, %d)' % (str(gateNum), gateNum)
- self.parameterUpdate( _str )
+ exec 'self.sendTables(self.slider%s, %d)' % (str(gateNum), gateNum)
+ elif gate[0] == 2:
+ _str = SynthLabConstants.SYNTHTYPES[obj/4][self.typesTable[obj]] + ': sound output'
+ elif gate[0] == 3:
+ if obj != 12:
+ _str = SynthLabConstants.SYNTHTYPES[obj/4][self.typesTable[obj]] + ': sound input'
+ else:
+ _str = 'Send sound to the speakers'
+ self.parameterUpdate( _str )
def startDragObject( self, i ):
self.dragObject = i
@@ -765,7 +764,7 @@ class SynthLabWindow(SubActivity):
for i in self.inputMap[self.dragObject]:
self.invalidate_rect( self.cBounds[i][0], self.cBounds[i][1], self.cBounds[i][2], self.cBounds[i][3], False )
- if y > self.separatorY: self.potentialDisconnect = True
+ if y > (self.separatorY-5): self.potentialDisconnect = True
else: self.potentialDisconnect = False
self.locations[self.dragObject][0] = int( x )
@@ -938,7 +937,7 @@ class SynthLabWindow(SubActivity):
type = i >> 2
self.gc.set_clip_origin( self.bounds[i][0]-SynthLabConstants.PIC_SIZE*type, self.bounds[i][1] )
buf.draw_drawable( self.gc, self.pixmap[i], 0, 0, self.bounds[i][0], self.bounds[i][1], SynthLabConstants.PIC_SIZE, SynthLabConstants.PIC_SIZE )
-
+
if self.dragObject != self.instanceID:
i = self.instanceID
type = i >> 2