diff options
author | Oli <olpc@localhost.localdomain> | 2007-02-17 23:21:09 (GMT) |
---|---|---|
committer | Oli <olpc@localhost.localdomain> | 2007-02-17 23:21:09 (GMT) |
commit | 0ed64a99c5d2b139f50ac0eb1eff515d2519c343 (patch) | |
tree | 1d07df08c5d2d6389dd9dd1021a5cd77e36b1e34 | |
parent | 1d4a7de608cba27fa533fa20e2f75fe48cbc5f8f (diff) |
new controls in synthLab
-rw-r--r-- | Player/KeyboardStandAlone.py | 5 | ||||
-rw-r--r-- | Player/RythmPlayer.py | 18 | ||||
-rw-r--r-- | Player/StandalonePlayer.py | 2 | ||||
-rw-r--r-- | Resources/tooltips_en.py | 16 | ||||
-rw-r--r-- | Resources/univorc.csd | 6 | ||||
-rwxr-xr-x | SynthLab/SynthLabConstants.py | 8 | ||||
-rw-r--r-- | SynthLab/SynthLabParametersWindow.py | 9 | ||||
-rw-r--r-- | SynthLab/SynthLabWindow.py | 5 |
8 files changed, 49 insertions, 20 deletions
diff --git a/Player/KeyboardStandAlone.py b/Player/KeyboardStandAlone.py index c3d53cf..0931e19 100644 --- a/Player/KeyboardStandAlone.py +++ b/Player/KeyboardStandAlone.py @@ -6,6 +6,7 @@ import Config #TODO: this is a suprising dependency... what's up?? from Generation.GenerationConstants import GenerationConstants from Util.CSoundNote import CSoundNote +from Util.Clooper.SClient import sc_loop_getTick KEY_MAP_PIANO = Config.KEY_MAP_PIANO @@ -14,7 +15,7 @@ class KeyboardStandAlone: self.csnd = client self.recording = recordingFunction self.adjustDuration = adjustDurationFunction - self.getCurrentTick = getCurrentTick +# self.getCurrentTick = getCurrentTick self.getPlayState = getPlayState self.key_dict = dict() self.onset_dict = dict() @@ -78,7 +79,7 @@ class KeyboardStandAlone: reverbSend = self.reverb) self.key_dict[key].playNow(0.3) if self.getPlayState(): - recOnset = self.getCurrentTick() / 3 + recOnset = sc_loop_getTick() / 3 self.onset_dict[key] = recOnset self.recording( CSoundNote( onset = recOnset, diff --git a/Player/RythmPlayer.py b/Player/RythmPlayer.py index 0de57e1..1142cd8 100644 --- a/Player/RythmPlayer.py +++ b/Player/RythmPlayer.py @@ -5,6 +5,7 @@ import gobject import time import Config from Util.CSoundNote import CSoundNote +from Util.Clooper.SClient import sc_loop_getTick class RythmPlayer: def __init__( self, client, recordButtonState ): @@ -24,7 +25,7 @@ class RythmPlayer: self.playState = 0 def getCurrentTick( self ): - return self.csnd.loopGetTick() + return sc_loop_getTick() def setTempo( self, tempo ): self.tempo = tempo @@ -40,6 +41,7 @@ class RythmPlayer: self.upBeats = [i+2 for i in self.beats] self.realTick = [i for i in range(self.beat*4)] self.startLooking = 1 + self.startPlayback() def getPlayState( self ): return self.playState @@ -67,18 +69,20 @@ class RythmPlayer: for note in self.sequencer: if note.pitch == pitch and note.onset == onset: if offset > note.onset: - note.duration = ( offset - note.onset ) * 3 + 5 + note.duration = ( offset - note.onset ) * 3 + 3 else: - note.duration = ( (offset+(self.beat*4)) - note.onset ) * 3 + 5 + note.duration = ( (offset+(self.beat*4)) - note.onset ) * 3 + 3 + theNote = (note.onset, note) + #sc_loop_addScoreEvent15( theNote ) self.pitchs.remove( pitch ) def handleClock( self ): if self.tick != self.getCurrentTick() / 3: self.tick = self.getCurrentTick() / 3 - if self.sequencer and self.sequencerPlayback: - for note in self.sequencer: - if self.realTick[note.onset-1] == self.tick: - self.csnd.sendText(note.getText(self.tickDuration,0)) #play +# if self.sequencer and self.sequencerPlayback: +# for note in self.sequencer: +# if self.realTick[note.onset] == self.tick: +# self.csnd.sendText(note.getText(self.tickDuration,0)) #play if self.startLooking: self.sequencerPlayback = 0 diff --git a/Player/StandalonePlayer.py b/Player/StandalonePlayer.py index e4a8b67..7c22c47 100644 --- a/Player/StandalonePlayer.py +++ b/Player/StandalonePlayer.py @@ -18,7 +18,7 @@ from Player.KeyboardStandAlone import KeyboardStandAlone from Player.RythmPlayer import RythmPlayer from Player.RythmGenerator import * from SynthLab.SynthLabWindow import SynthLabWindow -from Player.Trackpad import Trackpad +from Util.Trackpad import Trackpad Tooltips = Config.Tooltips diff --git a/Resources/tooltips_en.py b/Resources/tooltips_en.py index 748d2dd..2ad98ce 100644 --- a/Resources/tooltips_en.py +++ b/Resources/tooltips_en.py @@ -46,6 +46,18 @@ class Tooltips: DECAY = 'Decay' SUSTAIN = 'Sustain' RELEASE = 'Release' + + TRACKPADX = 'Trackpad X' + MIN = MIN + MAX = MAX + NOTUSED = 'Not used' + NOTUSED = NOTUSED + + TRACKPADY = 'Trackpad Y' + MIN = MIN + MAX = MAX + NOTUSED = 'Not used' + NOTUSED = NOTUSED #Source FM = 'FM' @@ -139,10 +151,12 @@ class Tooltips: MIX = MIX GAIN = GAIN - SYNTHTYPES = [[LFO, RANDOM, ADSR], [FM, BUZZ, VCO, PLUCK, NOISE, SAMPLE, VOICE, GRAIN], [DELAY, DIST, FILTER, RINGMOD, REVERB, HARMON], [ADSR]] + SYNTHTYPES = [[LFO, RANDOM, ADSR, TRACKPADX, TRACKPADY], [FM, BUZZ, VCO, PLUCK, NOISE, SAMPLE, VOICE, GRAIN], [DELAY, DIST, FILTER, RINGMOD, REVERB, HARMON], [ADSR]] SYNTHPARA = { 'lfo': [AMP, FREQ, WAVEFORM, OFFSET], 'rand': [MIN, MAX, FREQ, SEED], 'adsr': [ATTACK, DECAY, SUSTAIN, RELEASE], + 'trackpadX': [MIN, MAX, NOTUSED, NOTUSED], + 'trackpadY': [MIN, MAX, NOTUSED, NOTUSED], 'fm': [CAR, MOD, INDEX, GAIN], 'buzz': [FREQ, NHARM, FSLOPE, GAIN], 'vco': [FREQ, WAVEFORM, FSLOPE, GAIN], diff --git a/Resources/univorc.csd b/Resources/univorc.csd index b2ee4a7..8f5932c 100644 --- a/Resources/univorc.csd +++ b/Resources/univorc.csd @@ -12,6 +12,8 @@ gainrev init 0 gaoutL init 0 gaoutR init 0 gasynth init 0 +gkTrackpadX init 0 +gkTrackpadY init 0 /***************************** matrix for TamTam's SynthLab @@ -210,6 +212,10 @@ elseif iControlType == 2 then kControl randi irange, iPar3, iPar4-.001, 0, irange+iPar1 elseif iControlType == 3 then kControl adsr iPar1*idur+.0001, iPar2*idur, iPar3, iPar4*idur +elseif iControlType == 4 then + kControl = ((gkTrackpadX+1)*.5)*(iPar2-iPar1)+iPar1 +elseif iControlType == 5 then + kControl = ((gkTrackpadY+1)*.5)*(iPar2-iPar1)+iPar1 endif xout kControl diff --git a/SynthLab/SynthLabConstants.py b/SynthLab/SynthLabConstants.py index 0f8d23c..dfecb89 100755 --- a/SynthLab/SynthLabConstants.py +++ b/SynthLab/SynthLabConstants.py @@ -42,6 +42,8 @@ class SynthLabConstants: TYPES = { 'lfo': [.5, 1, 0, 0, 0, 1, 0, 20, 0, 5, 0, 1, FLOAT, FLOAT, INTEGER], 'rand': [.5, 1.5, 2, 0, 0, 2, 0, 2, 0, 20, 0, 1, FLOAT, FLOAT, FLOAT], 'adsr': [.02, .05, .8, .1, 0, 1, 0, 1, 0, 1, 0, 1, FLOAT, FLOAT, FLOAT], + 'trackpadX': [0, 1, 0, 0, -1, 1, 0, 2, 0, 1, 0, 1, FLOAT, FLOAT, FLOAT], + 'trackpadY': [0, 1, 0, 0, -1, 1, 0, 2, 0, 1, 0, 1, FLOAT, FLOAT, FLOAT], 'fm': [1, .5, 5, 1, 0, 2, 0, 2, 0, 10, 0, 2, FLOAT, FLOAT, FLOAT], 'buzz': [1, 30, .85, 1, 0, 2, 0, 40, 0, 1, 0, 2, FLOAT, INTEGER, FLOAT], 'vco': [1, 1, .2, 1, 0, 2, 0, 2, 0, .5, 0, 2, FLOAT, INTEGER, FLOAT], @@ -57,9 +59,9 @@ class SynthLabConstants: 'reverb': [1.5, 3000, .5, 1, 0, 4, 100, 7000, 0, 1, 0, 2, FLOAT, FLOAT, FLOAT], 'harmon': [1.25, .04, .5, 1, 0, 2, 0, 1, 0, 1, 0, 2, FLOAT, FLOAT, FLOAT]} - CONTROL_TYPES = ['lfo', 'rand', 'adsr'] - CONTROL_TYPES_SEL = ['lfosel', 'randsel', 'adsrsel'] - CONTROL_TYPES_PLUS = ['lfo+', 'rand+', 'adsr+'] + CONTROL_TYPES = ['lfo', 'rand', 'adsr', 'trackpadX', 'trackpadY'] + CONTROL_TYPES_SEL = ['lfosel', 'randsel', 'adsrsel', 'trackpadXsel', 'trackpadYsel'] + CONTROL_TYPES_PLUS = ['lfo+', 'rand+', 'adsr+', 'trackpadX+', 'trackpadY+'] SOURCE_TYPES = ['fm', 'buzz', 'vco', 'pluck', 'noise', 'sample', 'voice', 'grain'] SOURCE_TYPES_SEL = ['fmsel', 'buzzsel', 'vcosel', 'plucksel', 'noisesel', 'samplesel', 'voicesel', 'grainsel'] SOURCE_TYPES_PLUS = ['fm+', 'buzz+', 'vco+', 'pluck+', 'noise+', 'sample+', 'voice+', 'grain+'] diff --git a/SynthLab/SynthLabParametersWindow.py b/SynthLab/SynthLabParametersWindow.py index bfdb351..79fd371 100644 --- a/SynthLab/SynthLabParametersWindow.py +++ b/SynthLab/SynthLabParametersWindow.py @@ -6,11 +6,12 @@ import Config from Util.ThemeWidgets import * from SynthLab.SynthLabConstants import SynthLabConstants from SynthLab.Parameter import Parameter +from Util.Trackpad import Trackpad Tooltips = Config.Tooltips class SynthLabParametersWindow( gtk.Window ): - def __init__( self, instanceID, synthObjectsParameters, writeTables, playNoteFunction ): + def __init__( self, instanceID, synthObjectsParameters, writeTables, playNoteFunction, client ): gtk.Window.__init__( self, gtk.WINDOW_TOPLEVEL ) self.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG) self.set_title("SynthLab Parameters") @@ -32,6 +33,8 @@ class SynthLabParametersWindow( gtk.Window ): self.synthObjectsParameters = synthObjectsParameters self.writeTables = writeTables self.playNoteFunction = playNoteFunction + self.csnd = client + self.trackpad = Trackpad( self, self.csnd ) self.playingPitch = [] self.parameterOpen = 0 self.clockStart = 0 @@ -55,7 +58,7 @@ class SynthLabParametersWindow( gtk.Window ): self.initRadioButton( types, types2, typesLabelList, self.typeCallback, self.typeBox, self.choosenType ) self.mainBox.pack_start(self.typeBox) - typeText = Tooltips.SYNTHTYPES[self.objectType][self.choosenType] + typeText = Tooltips.SYNTHTYPES[self.objectType][self.choosenType] self.text = gtk.Label(typeText) self.mainBox.pack_start(self.text) @@ -138,7 +141,6 @@ class SynthLabParametersWindow( gtk.Window ): def onKeyPress(self,widget,event): key = event.hardware_keycode - print 'from slider window: %ld' % key if key not in Config.KEY_MAP: return midiPitch = Config.KEY_MAP[key] @@ -156,7 +158,6 @@ class SynthLabParametersWindow( gtk.Window ): def resize( self ): selectedType = SynthLabConstants.CHOOSE_TYPE[self.objectType][self.choosenType] - slider1Init = SynthLabConstants.TYPES[selectedType][0] slider2Init = SynthLabConstants.TYPES[selectedType][1] slider3Init = SynthLabConstants.TYPES[selectedType][2] diff --git a/SynthLab/SynthLabWindow.py b/SynthLab/SynthLabWindow.py index 4686915..979aba7 100644 --- a/SynthLab/SynthLabWindow.py +++ b/SynthLab/SynthLabWindow.py @@ -16,7 +16,7 @@ from SynthLab.SynthLabParametersWindow import SynthLabParametersWindow from SynthLab.SynthObjectsParameters import SynthObjectsParameters from SynthLab.SynthLabConstants import SynthLabConstants from SynthLab.Parameter import Parameter - +from Util.Trackpad import Trackpad Tooltips = Config.Tooltips class SynthLabWindow( gtk.Window ): @@ -27,6 +27,7 @@ class SynthLabWindow( gtk.Window ): self.set_border_width(Config.MAIN_WINDOW_PADDING) self.set_keep_above(False) self.csnd = client + self.trackpad = Trackpad( self, self.csnd ) self.table = table self.closeCallback = closeCallback self.set_decorated(False) @@ -343,7 +344,7 @@ class SynthLabWindow( gtk.Window ): if self.bounds[i][0] < event.x < self.bounds[i][2] and self.bounds[i][1] < event.y < self.bounds[i][3]: if self.instanceOpen: self.synthLabParametersWindow.destroy() - self.synthLabParametersWindow = SynthLabParametersWindow( i, self.synthObjectsParameters, self.writeTables, self.playNote ) + self.synthLabParametersWindow = SynthLabParametersWindow( i, self.synthObjectsParameters, self.writeTables, self.playNote, self.csnd ) self.instanceOpen = 1 def handleMotion( self, widget, event ): |