diff options
author | amartin <olpc@xo-05-28-21.localdomain> | 2007-07-21 06:06:53 (GMT) |
---|---|---|
committer | amartin <olpc@xo-05-28-21.localdomain> | 2007-07-21 06:06:53 (GMT) |
commit | c312ded2c29fdcc3435d93834f5044175cbe6884 (patch) | |
tree | 1fe74ed201198f8c9ab3d029ad4dfdfae2662004 | |
parent | dab25db611bb999942c5717f93f1e8f644b476af (diff) | |
parent | d7b1c70cab1cb086328838d3bd502445243a0d48 (diff) |
Merge branch 'master' of git+ssh://amartin@dev.laptop.org/git/projects/tamtam
22 files changed, 246 insertions, 240 deletions
@@ -33,10 +33,12 @@ if SugarMode == True: PREF_DIR = env.get_profile_path() + '/tamtam' TUNE_DIR=env.get_profile_path() + '/tamtam/tunes' SYNTH_DIR=env.get_profile_path() + '/tamtam/synthlab' + SNDS_DIR=env.get_profile_path() + '/tamtam/snds' else: PREF_DIR = SOUNDS_DIR + '/temp' TUNE_DIR= os.getenv('HOME') + '/.tamtam/tunes' SYNTH_DIR= os.getenv('HOME') + '/.tamtam/synthlab' + SNDS_DIR= os.getenv('HOME') + '/.tamtam/snds' #PLUGIN @@ -99,10 +101,10 @@ def _addInstrument( name, csoundInstrumentId, instrumentRegister, soundClass, ca INSTRUMENTS[name] = Instrument( name, _nextInstrumentId[0], csoundInstrumentId, instrumentRegister, soundClass, category, loopStart, loopEnd, crossDur, kit ) _nextInstrumentId[0] += 1 -_addInstrument( "mic1", INST_TIED, MID, 'melo', 'mic', .01, .99, .01 ) -_addInstrument( "mic2", INST_TIED, MID, 'melo', 'mic', .01, .99, .01 ) -_addInstrument( "mic3", INST_TIED, MID, 'melo', 'mic', .01, .99, .01 ) -_addInstrument( "mic4", INST_TIED, MID, 'melo', 'mic', .01, .99, .01 ) +_addInstrument( "mic1", INST_TIED, MID, 'melo', 'mic', .01, 1.99, .01 ) +_addInstrument( "mic2", INST_TIED, MID, 'melo', 'mic', .01, 1.99, .01 ) +_addInstrument( "mic3", INST_TIED, MID, 'melo', 'mic', .01, 1.99, .01 ) +_addInstrument( "mic4", INST_TIED, MID, 'melo', 'mic', .01, 1.99, .01 ) _addInstrument( "lab1", INST_SIMP, MID, 'melo', 'lab', 0, 0, 0 ) _addInstrument( "lab2", INST_SIMP, MID, 'melo', 'lab', 0, 0, 0 ) _addInstrument( "lab3", INST_SIMP, MID, 'melo', 'lab', 0, 0, 0 ) @@ -344,7 +346,7 @@ PLAY_NOTE_COMMAND_MINUS_DELAY = \ "perf.InputMessage('i 5777 0.0 0.001 %d.%d %s %f %f %f %f %f %d %f %f %d %f')\n" PLAY_NOTE_OFF_COMMAND = \ "perf.InputMessage('i %s.%s .2 0.01 1. 0. 0. 0.5 %d 0 0 0 0')\n" \ - % ('%d', '%d', INSTRUMENT_TABLE_OFFSET ) + % ('%d', '%d', INSTRUMENT_TABLE_OFFSET ) MIC_RECORDING_COMMAND = \ "perf.InputMessage('i5201 0 5 %d')\n" UNLOAD_TABLES_COMMAND = \ diff --git a/Generation/GenerationParametersWindow.py b/Generation/GenerationParametersWindow.py index 5c88661..ea886a3 100755 --- a/Generation/GenerationParametersWindow.py +++ b/Generation/GenerationParametersWindow.py @@ -227,11 +227,11 @@ class GenerationParametersWindow( gtk.VBox ): self.GUI["saveButton"] = ImageButton(Config.TAM_TAM_ROOT + '/Resources/Images/save.png', backgroundFill=Config.INST_BCK_COLOR ) self.GUI["saveButton"].connect("clicked", self.handleSave, None) - transButtonBox.pack_start(self.GUI["saveButton"], False, False, 2) + #transButtonBox.pack_start(self.GUI["saveButton"], False, False, 2) self.GUI["loadButton"] = ImageButton(Config.TAM_TAM_ROOT + '/Resources/Images/load.png', backgroundFill=Config.INST_BCK_COLOR ) self.GUI["loadButton"].connect("clicked", self.handleLoad, None) - transButtonBox.pack_start(self.GUI["loadButton"], False, False, 2) + #transButtonBox.pack_start(self.GUI["loadButton"], False, False, 2) # create cancel/check button self.GUI["checkButton"] = ImageButton(Config.IMAGE_ROOT + 'check.png', backgroundFill=Config.INST_BCK_COLOR ) @@ -245,8 +245,8 @@ class GenerationParametersWindow( gtk.VBox ): selButton = ImageToggleButton(Config.IMAGE_ROOT + 'playAll.png', Config.IMAGE_ROOT + 'playSel.png', backgroundFill=Config.INST_BCK_COLOR ) transButtonBox.pack_end(self.GUI["checkButton"], False, False, 10) transButtonBox.pack_end(self.GUI["cancelButton"], False, False) - transButtonBox.pack_end(selButton, False, False) - transButtonBox.pack_end(playButton, False, False) + #transButtonBox.pack_end(selButton, False, False) + #transButtonBox.pack_end(playButton, False, False) transportBox.pack_start(transButtonBox) self.pack_start(transportBox) diff --git a/Resources/SynthFiles/synthFile1 b/Resources/SynthFiles/synthFile1 Binary files differindex 36eb18f..d453da9 100644 --- a/Resources/SynthFiles/synthFile1 +++ b/Resources/SynthFiles/synthFile1 diff --git a/Resources/SynthFiles/synthFile10 b/Resources/SynthFiles/synthFile10 Binary files differindex 44f1342..b95f1c9 100644 --- a/Resources/SynthFiles/synthFile10 +++ b/Resources/SynthFiles/synthFile10 diff --git a/Resources/SynthFiles/synthFile2 b/Resources/SynthFiles/synthFile2 Binary files differindex 3effb94..74e1e8d 100644 --- a/Resources/SynthFiles/synthFile2 +++ b/Resources/SynthFiles/synthFile2 diff --git a/Resources/SynthFiles/synthFile3 b/Resources/SynthFiles/synthFile3 Binary files differindex 38e33e5..43712f5 100644 --- a/Resources/SynthFiles/synthFile3 +++ b/Resources/SynthFiles/synthFile3 diff --git a/Resources/SynthFiles/synthFile4 b/Resources/SynthFiles/synthFile4 Binary files differindex 1647224..187a832 100644 --- a/Resources/SynthFiles/synthFile4 +++ b/Resources/SynthFiles/synthFile4 diff --git a/Resources/SynthFiles/synthFile5 b/Resources/SynthFiles/synthFile5 Binary files differindex 695e318..e1676f1 100644 --- a/Resources/SynthFiles/synthFile5 +++ b/Resources/SynthFiles/synthFile5 diff --git a/Resources/SynthFiles/synthFile6 b/Resources/SynthFiles/synthFile6 Binary files differindex ca28ab9..c5e82bb 100644 --- a/Resources/SynthFiles/synthFile6 +++ b/Resources/SynthFiles/synthFile6 diff --git a/Resources/SynthFiles/synthFile7 b/Resources/SynthFiles/synthFile7 Binary files differindex d1f2df6..a7d4c72 100644 --- a/Resources/SynthFiles/synthFile7 +++ b/Resources/SynthFiles/synthFile7 diff --git a/Resources/SynthFiles/synthFile8 b/Resources/SynthFiles/synthFile8 Binary files differindex 2f76cec..68a0ae4 100644 --- a/Resources/SynthFiles/synthFile8 +++ b/Resources/SynthFiles/synthFile8 diff --git a/Resources/SynthFiles/synthFile9 b/Resources/SynthFiles/synthFile9 Binary files differindex 5e60772..1004fd9 100644 --- a/Resources/SynthFiles/synthFile9 +++ b/Resources/SynthFiles/synthFile9 diff --git a/Resources/crop.csd b/Resources/crop.csd index 6eed798..03b10a5 100644 --- a/Resources/crop.csd +++ b/Resources/crop.csd @@ -1,6 +1,6 @@ <CsoundSynthesizer> -<CsOptions> +<CsOptions> -W -d -n </CsOptions> @@ -13,9 +13,9 @@ nchnls=1 /**************************************************************** Playing temp file ****************************************************************/ -instr 1 +instr 1 -asig diskin "/home/olpc/.sugar/default/tamtam/tempMic.wav", 1 +asig diskin "/home/olpc/.sugar/default/tamtam/snds/tempMic.wav", 1 gasig dcblock asig endin @@ -30,8 +30,8 @@ krms rms ain if ktimer > 40 then ktrig trigger krms, 1500, 0 if ktrig == 1 then - event "i", 3, 0, 1 - event "i", 4, 1, 0.01 + event "i", 3, 0, 2 + event "i", 4, 2, 0.01 turnoff endif endif @@ -45,9 +45,9 @@ kenv adsr 0.01, 0.05, .9, 0.01 adel delay gasig, .005 -ihandle fiopen "/home/olpc/.sugar/default/tamtam/micTemp", 2 +ihandle fiopen "/home/olpc/.sugar/default/tamtam/snds/micTemp", 2 -fout "/home/olpc/.sugar/default/tamtam/micTemp", 2, adel*kenv +fout "/home/olpc/.sugar/default/tamtam/snds/micTemp", 2, adel*kenv ;out adel*kenv adel = 0 @@ -57,7 +57,7 @@ endin Audio input recording ( closing file ) ****************************************************************/ instr 4 -ficlose "/home/olpc/.sugar/default/tamtam/micTemp" +ficlose "/home/olpc/.sugar/default/tamtam/snds/micTemp" endin diff --git a/Resources/univorc.csd b/Resources/univorc.csd index c5534da..5c32f95 100644 --- a/Resources/univorc.csd +++ b/Resources/univorc.csd @@ -242,7 +242,7 @@ if iControlType == 1 then kControl = kControl+iPar4 elseif iControlType == 2 then irange = (iPar2-iPar1)*.5 - kControl randi irange, iPar3, iPar4-.001, 0, irange+iPar1 + 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 @@ -256,8 +256,8 @@ elseif iControlType == 4 then if iPar4 == 0 then kControl = kControl1 else - ktrig oscil 1, 1/iPar4, 45 - kControl samphold kControl1, ktrig, i(kControl1), 0 + ktrig oscil 1, 1/iPar4, 45 + kControl samphold kControl1, ktrig, i(kControl1), 0 endif elseif iControlType == 5 then if iPar3 == 0 then @@ -270,15 +270,15 @@ elseif iControlType == 5 then if iPar4 == 0 then kControl = kControl1 else - ktrig oscil 1, 1/iPar4, 45 - kControl samphold kControl1, ktrig, i(kControl1), 0 + ktrig oscil 1, 1/iPar4, 45 + kControl samphold kControl1, ktrig, i(kControl1), 0 endif endif xout kControl nocontrol: -endop +endop opcode source, a, ii iSourceNum, ipitch xin @@ -306,7 +306,7 @@ elseif iSourceType == 2 then aSource gbuzz 5000*kpara4, ipitch*kpara1, int(abs(kpara2))+5, 0, kpara3+0.01, 2 elseif iSourceType == 3 then iPar2 = int(iPar2) - if iPar2 == 0 then + if iPar2 == 0 then imode = 0 elseif iPar2 == 1 then imode = 10 @@ -314,7 +314,7 @@ elseif iSourceType == 3 then imode = 12 endif aSource vco2 2000*kpara4, ipitch*kpara1, imode, 0.1, 0, iPar3 -elseif iSourceType == 4 then +elseif iSourceType == 4 then if iPar3 == 0 then kvib = 0 goto novib @@ -368,9 +368,9 @@ elseif iSourceType == 7 then kbam randomi 480., 510., 2.07 kfunddev randomi -.0053, .0052, 1.05 ar gbuzz kbam, (p4*kpara1*(1+kfunddev)+kvib), int(kharm), 0, kmul, 2 - a1 resonx ar, kform1, 140, 2, 1 - a2 resonx ar, kform2, 180, 2, 1 - a3 resonx ar, kform3, 220, 2 , 1 + a1 resonx ar, kform1, 140, 2, 1 + a2 resonx ar, kform2, 180, 2, 1 + a3 resonx ar, kform3, 220, 2 , 1 aSource = ((a1*80)+(a2*55)+(a3*40))*kpara4 elseif iSourceType == 8 then iSndPitch = p4/261.626 @@ -380,7 +380,7 @@ elseif iSourceType == 8 then itabdur = nsamp(itable) ifreq = 1 / igrdur kamp = kpara4 * .2 - aindex upsamp abs(kpara3) * itabdur + aindex upsamp abs(kpara3) * itabdur atrans upsamp kpara1 * igrdur * iSndPitch as1 synthGrain aindex, atrans, ifreq, 0.82, irealTable, itabdur @@ -393,7 +393,7 @@ elseif iSourceType == 8 then elseif iSourceType == 9 then aSource homeSine p4*kpara1, kpara2*0.1, iPar3+30 aSource = aSource*kpara4 - + endif aSource dcblock aSource @@ -447,11 +447,11 @@ elseif iFxType == 5 then arev butterlp arev, kpara2 aFx = (arev*kpara3)+(as*(1-kpara3)) elseif iFxType == 6 then - fsig pvsanal as, 1024, 256, 1024, 1 + fsig pvsanal as, 1024, 256, 1024, 1 ftps1 pvscale fsig, kpara1 aFx pvsynth ftps1 adry delay as, iPar2 - aFx = ((aFx*kpara3)+(adry*(1-kpara3)))*kpara4 + aFx = ((aFx*kpara3)+(adry*(1-kpara3)))*kpara4 elseif iFxType == 7 then aeq1 butterbp as, 700, 400 aeq2 butterbp as, 1500, 600 @@ -491,9 +491,9 @@ gkTrackpadY limit -gkTrackpadY, -1, 1 koutGain chnget "masterVolume" koutGain = koutGain * 0.02 gkduck init 1 -gkduck port gkduck, .03, 1. +gkduck port gkduck, .03, 1. -ain dcblock gainrev*0.05 +ain dcblock gainrev*0.05 arev reverb ain, 2.5 arev butterlp arev, 5000 @@ -507,9 +507,9 @@ gaRecR = aOutRight outs aOutLeft, aOutRight gaoutL = 0 - gaoutR = 0 + gaoutR = 0 gainrev = 0 - + endin /**************************************************************** @@ -543,7 +543,7 @@ Handler audio input recording ****************************************************************/ instr 5201 -ktim timeinsts +ktim timeinsts gkduck = .05 itab = p4 @@ -552,7 +552,7 @@ krms rms ain ktrig trigger krms, 1500, 0 if ktrig == 1 then -event "i", 5202, 0 , 1, itab +event "i", 5202, 0 , 1, itab turnoff endif @@ -574,7 +574,7 @@ ain inch 1 adel delay ain, .01 -Sname sprintf "/home/olpc/.sugar/default/tamtam/mic%d", int(p4)-6 +Sname sprintf "/home/olpc/.sugar/default/tamtam/snds/mic%d", int(p4)-6 ihandle fiopen Sname, 2 event "i", 5212, 1 , .01, p4 @@ -586,7 +586,7 @@ endin Audio input recording ( closing file ) ****************************************************************/ instr 5212 -Sname sprintf "/home/olpc/.sugar/default/tamtam/mic%d", int(p4)-6 +Sname sprintf "/home/olpc/.sugar/default/tamtam/snds/mic%d", int(p4)-6 ficlose Sname endin @@ -595,7 +595,7 @@ SynthLab input recording ****************************************************************/ instr 5204 -Sname2 sprintf "/home/olpc/.sugar/default/tamtam/lab%d", int(p4)-85 +Sname2 sprintf "/home/olpc/.sugar/default/tamtam/snds/lab%d", int(p4)-85 fout Sname2, 2, gasynth * 0.707 clear gasynth endin @@ -646,7 +646,7 @@ is4p4 ControlMatrice 5201, 15, kc1, kc2, kc3, kc4 aSource1 source 1, ipitch*2 aSource2 source 2, ipitch*2 aSource3 source 3, ipitch*2 -aSource4 source 4, ipitch*2 +aSource4 source 4, ipitch*2 ifx1p1 ControlMatrice 5202, 0, kc1, kc2, kc3, kc4 ifx1p2 ControlMatrice 5202, 1, kc1, kc2, kc3, kc4 @@ -698,8 +698,8 @@ vincr gasynth, aout outs aout, aout -zacl 0, 8 - +zacl 0, 8 + endin /*********************** @@ -731,23 +731,23 @@ kdur chnget "ldur" idurfadein init 0.005 idurfadeout init 0.095 -iampe0 init 1 +iampe0 init 1 iampe1 init 1 iampe2 init 1 -itie tival -if itie == 1 igoto nofadein +itie tival +if itie == 1 igoto nofadein -iampe0 init 0 -iskip = 1 +iampe0 init 0 +iskip = 1 nofadein: iskip = 0 igliss = 0.005 -if p3 < 0 igoto nofadeout +if p3 < 0 igoto nofadeout -iampe2 init 0 +iampe2 init 0 nofadeout: @@ -766,7 +766,7 @@ ivibRand random 4.1, 5.7 kvibrato oscil .006, ivibRand, 1 tigoto tieskip - + a1 flooper2 1, 1+kvibrato, kstart, kend, kdur, 4999, 0, 0, 0, iskip a1 = a1*kenv @@ -776,7 +776,7 @@ gaoutR = a1*0.5+gaoutR gainrev = a1*0.1+gainrev - tieskip: + tieskip: endin /************************* @@ -797,7 +797,7 @@ gaoutR = a1*0.5+gaoutR gainrev = a1*0.1+gainrev -endin +endin /**************************************************************** Soundfile player with miniTamTam's tied notes @@ -823,17 +823,17 @@ kvol port kvol, .01, i(kvol) idurfadein init 0.005 idurfadeout init 0.095 -iampe0 init 1 +iampe0 init 1 iampe1 = p6 iampe2 init 1 -itie tival -if itie == 1 igoto nofadein +itie tival +if itie == 1 igoto nofadein idurfadein init p9 -iampe0 init 0 -iskip = 1 -kpitch init p4 +iampe0 init 0 +iskip = 1 +kpitch init p4 kamp init p6 kpan init p7 krg init p5 @@ -842,10 +842,10 @@ nofadein: iskip = 0 igliss = 0.005 -if p3 < 0 igoto nofadeout +if p3 < 0 igoto nofadeout idurfadeout init p10 -iampe2 init 0 +iampe2 init 0 nofadeout: @@ -876,7 +876,7 @@ kcutoff portk p12, igliss, p12 kls portk p13, igliss, p13 kle portk p14, igliss, p14 kcd portk p15, igliss, p15 - + a1 flooper2 1, kpitch+kvibrato, kls, kle, kcd, p8, 0, 0, 0, iskip if (p11-1) != -1 then @@ -900,7 +900,7 @@ gaoutR = a1*kpan+gaoutR gainrev = a1*krg+gainrev - tieskip: + tieskip: endin @@ -975,7 +975,7 @@ a1 loscil p6, p4, p8, 1 if (p11-1) != -1 then acomp = a1 -a1 bqrez a1, p12, 6, p11-1 +a1 bqrez a1, p12, 6, p11-1 a1 balance a1, acomp endif @@ -996,7 +996,7 @@ gaoutR = a1*p7+gaoutR gainrev = a1*p5+gainrev -endin +endin instr 5111, 5112, 5113, 5114, 5115, 5116, 5117, 5118, 5119, 5120 @@ -1010,7 +1010,7 @@ a1 loscil p6, p4, p8, 1 if (p11-1) != -1 then acomp = a1 -a1 bqrez a1, p12, 6, p11-1 +a1 bqrez a1, p12, 6, p11-1 a1 balance a1, acomp endif @@ -1031,7 +1031,7 @@ gaoutR = a1*p7+gaoutR gainrev = a1*p5+gainrev -endin +endin @@ -1044,7 +1044,7 @@ a1 flooper2 1, p4, .25, .750, .2, p8 if (p11-1) != -1 then acomp = a1 -a1 bqrez a1, p12, 6, p11-1 +a1 bqrez a1, p12, 6, p11-1 a1 balance a1, acomp endif @@ -1058,7 +1058,7 @@ gaoutR = a1*p7+gaoutR gainrev = a1*p5+gainrev -endin +endin @@ -1068,7 +1068,7 @@ f1 0 8192 10 1 f2 0 8192 11 1 1 f4 0 32 -2 250 2250 2980 420 2050 2630 590 1770 2580 - 750 1450 2590 290 750 2300 360 770 2530 520 900 2510 710 1230 2700 570 1560 2560 0 0 0 0 0 + 750 1450 2590 290 750 2300 360 770 2530 520 900 2510 710 1230 2700 570 1560 2560 0 0 0 0 0 f30 0 1024 10 1 0 .3 0 .1 f31 0 1024 10 1 .5 .3 .25 .1 f32 0 1024 10 1 0 .1 0 .3 .2 0 0 .1 diff --git a/SynthLab/SynthLabConstants.py b/SynthLab/SynthLabConstants.py index 07562b6..e0ab44b 100755 --- a/SynthLab/SynthLabConstants.py +++ b/SynthLab/SynthLabConstants.py @@ -33,7 +33,7 @@ class SynthLabConstants: elif y > HALF_SIZE-GATE_OFFSET: y = HALF_SIZE m.append( ( x, y ) ) - INIT_LOCATIONS = [ [420,750], [500,750], [580,750], [660, 750], [55,750], [135,750], [215,750], [295, 750], [785,750], [865,750], [945,750], [1025, 750], [540, 645]] + INIT_LOCATIONS = [ [480,700], [560,700], [640,700], [720, 700], [100,700], [180,700], [260,700], [340, 700], [860,700], [940,700], [1020,700], [1100, 700], [600, 595]] FLOAT = [.01, False] INTEGER = [1, 1] diff --git a/SynthLab/SynthLabToolbars.py b/SynthLab/SynthLabToolbars.py index ab4baf4..4450161 100644 --- a/SynthLab/SynthLabToolbars.py +++ b/SynthLab/SynthLabToolbars.py @@ -75,7 +75,7 @@ class mainToolbar(gtk.Toolbar): self.synthRec6Button.show() self.synthRec6Button.set_tooltip(_('Record Synth sound into slot 6')) - _insertSeparator(9) + _insertSeparator(16) self.resetButton = ToolButton('reset') self.resetButton.connect('clicked',self.synthLab.handleReset) diff --git a/SynthLab/SynthLabWindow.py b/SynthLab/SynthLabWindow.py index 2896d82..17b420f 100644 --- a/SynthLab/SynthLabWindow.py +++ b/SynthLab/SynthLabWindow.py @@ -47,13 +47,13 @@ class SynthLabWindow(SubActivity): self.bounds.append([0,0,0,0]) self.updateBounds(i) self.instanceOpen = 0 - self.recordWait = 0 + self.recordWait = 0 self.recCount = 0 self.duration = 2 - self.durString = '%.2f' % self.duration + self.durString = '%.2f' % self.duration self.playingPitch = [] self.journalCalled = True - + #Toolbars if self.activity.activity_toolbar.helpButton: self.activity.activity_toolbar.helpButton.hide() @@ -63,10 +63,10 @@ class SynthLabWindow(SubActivity): self.activity.toolbox.add_toolbar(_('Presets'), self._presetToolbar) self.activity.toolbox.set_current_toolbar(1) self._mainToolbar.show() - self._presetToolbar.show() + self._presetToolbar.show() - loopPointsTable = [] - sample_names = [name for i in range( len( Config.INSTRUMENTS ) ) for name in Config.INSTRUMENTS.keys() if Config.INSTRUMENTS[ name ].instrumentId == i ] + loopPointsTable = [] + sample_names = [name for i in range( len( Config.INSTRUMENTS ) ) for name in Config.INSTRUMENTS.keys() if Config.INSTRUMENTS[ name ].instrumentId == i ] for inst in sample_names: loopStart = Config.INSTRUMENTS[ inst ].loopStart loopEnd = Config.INSTRUMENTS[ inst ].loopEnd @@ -82,7 +82,7 @@ class SynthLabWindow(SubActivity): self.pix = 10 self.parameterOpen = 0 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.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) @@ -129,17 +129,17 @@ class SynthLabWindow(SubActivity): self.buttonBox.set_border_width(Config.PANEL_SPACING) self.commandBox.pack_start(self.buttonBox) #self.mainBox.pack_start(self.commandBox) - - self.drawingAreaWidth = 1080 - self.drawingAreaHeight = 790 - self.separatorY = 690 + + self.drawingAreaWidth = 1200 + self.drawingAreaHeight = 750 + self.separatorY = 640 self.clearMask = gtk.gdk.Rectangle(0,0,self.drawingAreaWidth,self.drawingAreaHeight) - + win = gtk.gdk.get_default_root_window() self.gc = gtk.gdk.GC( win ) - self.gc.set_line_attributes( self.lineWidth, gtk.gdk.LINE_SOLID, gtk.gdk.CAP_BUTT, gtk.gdk.JOIN_MITER ) - + self.gc.set_line_attributes( self.lineWidth, gtk.gdk.LINE_SOLID, gtk.gdk.CAP_BUTT, gtk.gdk.JOIN_MITER ) + self.dirtyRectToAdd = gtk.gdk.Rectangle() self.dirty = False @@ -157,15 +157,15 @@ class SynthLabWindow(SubActivity): self.overGateColor = colormap.alloc_color( Config.SL_OVER_GATE_COLOR, True, True ) self.overGateRejectColor = colormap.alloc_color( Config.SL_OVER_GATE_REJECT_COLOR, True, True ) self.drawingArea.modify_bg(gtk.STATE_NORMAL, self.col) - self.drawingArea.add_events( gtk.gdk.BUTTON_PRESS_MASK - | gtk.gdk.BUTTON_RELEASE_MASK + self.drawingArea.add_events( gtk.gdk.BUTTON_PRESS_MASK + | gtk.gdk.BUTTON_RELEASE_MASK | gtk.gdk.POINTER_MOTION_MASK | gtk.gdk.POINTER_MOTION_HINT_MASK ) self.drawingArea.connect( "button-press-event", self.handleButtonPress ) self.drawingArea.connect( "button-release-event", self.handleButtonRelease ) self.drawingArea.connect( "motion-notify-event", self.handleMotion ) self.drawingArea.connect("expose-event", self.draw) - self.drawingBox.pack_start(self.drawingArea, False, False, 5) + self.drawingBox.pack_start(self.drawingArea, False, False, 5) self.presets = self.initRadioButton(SynthLabConstants.PRESET, self.presetCallback, self.presetBox) self.durLabel = gtk.Image() self.durLabel.set_from_file(Config.IMAGE_ROOT + 'dur2.png') @@ -178,47 +178,51 @@ class SynthLabWindow(SubActivity): self.sliderBox.pack_start(self.durationSlider, True, True, 5) self.sliderBox.pack_start(self.durLabel, False, padding=10) - for i in [1,2,3,4,5,6]: - recordButton = ImageToggleButton(Config.IMAGE_ROOT + 'synthRecord' + str(i) + '.png', Config.IMAGE_ROOT + 'synthRecord' + str(i) + 'Down.png', Config.IMAGE_ROOT + 'synthRecord' + str(i) + 'Over.png') - recordButton.connect("clicked", self.recordSound, i) - self.buttonBox.pack_start(recordButton, False, False, 2) - self.tooltips.set_tip(recordButton, Tooltips.SL_RECORDBUTTONS[i-1]) +# for i in [1,2,3,4,5,6]: +# recordButton = ImageToggleButton(Config.IMAGE_ROOT + 'synthRecord' + str(i) + '.png', Config.IMAGE_ROOT + 'synthRecord' + str(i) + 'Down.png', Config.IMAGE_ROOT + 'synthRecord' + str(i) + 'Over.png') +# recordButton.connect("clicked", self.recordSound, i) +# self.buttonBox.pack_start(recordButton, False, False, 2) +# self.tooltips.set_tip(recordButton, Tooltips.SL_RECORDBUTTONS[i-1]) - saveButton = ImageButton(Config.IMAGE_ROOT + 'save.png') - saveButton.connect("clicked", self.handleSave, None) - self.buttonBox.pack_start(saveButton, False, False, 2) +# saveButton = ImageButton(Config.IMAGE_ROOT + 'save.png') +# saveButton.connect("clicked", self.handleSave, None) +# self.buttonBox.pack_start(saveButton, False, False, 2) - loadButton = ImageButton(Config.IMAGE_ROOT + 'load.png') - loadButton.connect("clicked", self.handleLoad, None) - self.buttonBox.pack_start(loadButton, False, False, 2) +# loadButton = ImageButton(Config.IMAGE_ROOT + 'load.png') +# loadButton.connect("clicked", self.handleLoad, None) +# self.buttonBox.pack_start(loadButton, False, False, 2) - resetButton = ImageButton(Config.IMAGE_ROOT + 'reset.png') - resetButton.connect("clicked", self.handleReset, None) - self.buttonBox.pack_start(resetButton, False, False, 2) +# resetButton = ImageButton(Config.IMAGE_ROOT + 'reset.png') +# resetButton.connect("clicked", self.handleReset, None) +# self.buttonBox.pack_start(resetButton, False, False, 2) - closeButton = ImageButton(Config.IMAGE_ROOT + 'close.png') - closeButton.connect("clicked", self.handleClose, None) - self.buttonBox.pack_start(closeButton, False, False, 2) +# closeButton = ImageButton(Config.IMAGE_ROOT + 'close.png') +# closeButton.connect("clicked", self.handleClose, None) +# self.buttonBox.pack_start(closeButton, False, False, 2) + +# self.tooltips.set_tip(saveButton, Tooltips.SAVE) +# self.tooltips.set_tip(loadButton, Tooltips.LOAD) +# self.tooltips.set_tip(resetButton, Tooltips.RESET) +# self.tooltips.set_tip(closeButton, Tooltips.CLOSE) +# self.tooltips.set_tip(self.durationSlider, Tooltips.SOUNDDUR + ': ' + self.durString) - self.tooltips.set_tip(saveButton, Tooltips.SAVE) - self.tooltips.set_tip(loadButton, Tooltips.LOAD) - self.tooltips.set_tip(resetButton, Tooltips.RESET) - self.tooltips.set_tip(closeButton, Tooltips.CLOSE) - self.add(self.mainBox) - self.tooltips.set_tip(self.durationSlider, Tooltips.SOUNDDUR + ': ' + self.durString) tempFile = 'synthTemp' if tempFile in os.listdir(Config.PREF_DIR): self.handleLoadTemp() else: self.presetCallback(self.presets,1) - + self.add(self.mainBox) self.show_all() - + def onDestroy(self): pass def onKeyPress(self,widget,event): key = event.hardware_keycode + #temporary binding + if key == 50: + self.handleSave(None, None) + if key not in Config.KEY_MAP: return midiPitch = Config.KEY_MAP[key] @@ -230,7 +234,7 @@ class SynthLabWindow(SubActivity): self.recordWait = 0 self.playingPitch.append( midiPitch ) self.playNote( midiPitch, self.table ) - self.waitRecording() + self.waitRecording() def resetRecord( self ): gobject.source_remove( self.wait ) @@ -242,7 +246,7 @@ class SynthLabWindow(SubActivity): def waitRecording(self): self.wait = gobject.timeout_add(int(self.duration*1000) , self.resetRecord ) - + def onKeyRelease( self, widget, event ): key = event.hardware_keycode if key not in Config.KEY_MAP: @@ -258,7 +262,7 @@ class SynthLabWindow(SubActivity): self.parameterUpdate(self.durString) self.tooltips.set_tip(self.durationSlider, Tooltips.SOUNDDUR + ': ' + self.durString) - def showParameter( self, widget, data=None ): + def showParameter( self, widget, data=None ): if not self.parameterOpen: self.parameter = Parameter(self.durString) self.parameterOpen = 1 @@ -278,12 +282,12 @@ class SynthLabWindow(SubActivity): return True def parameterUpdate( self, durString ): - if self.parameterOpen: + if self.parameterOpen: self.parameter.update(durString) def playNote( self, midiPitch, table ): cpsPitch = 261.626*pow(1.0594633, midiPitch-36) - self.recCount += 1 + self.recCount += 1 mess = "i5203." + str(self.recCount) + " 0 " + str(self.duration) + " " + str(cpsPitch) + " " + str(table) + " " + " " .join([str(n) for n in self.synthObjectsParameters.getOutputParameters()]) self.csnd.inputMessage( mess ) if self.recCount >= 9: self.recCount = 0 @@ -309,7 +313,7 @@ class SynthLabWindow(SubActivity): for i in range(self.objectCount): self.updateBounds( i ) self.duration = 2 - self.durAdjust.set_value(self.duration) + self.durAdjust.set_value(self.duration) self.connections = [] self.synthObjectsParameters.__init__() self.writeTables( self.synthObjectsParameters.types, self.synthObjectsParameters.controlsParameters, self.synthObjectsParameters.sourcesParameters, self.synthObjectsParameters.fxsParameters ) @@ -332,11 +336,11 @@ class SynthLabWindow(SubActivity): self.action = None def handleButtonRelease( self, widget, event ): - + self.highlightWire( None ) self.highlightGate( None ) - if self.action == "drag-object": + if self.action == "drag-object": self.doneAction() elif self.action == "draw-wire": for i in range(self.objectCount): @@ -348,7 +352,7 @@ class SynthLabWindow(SubActivity): self.connectWire( i, gate ) break # if we don't connect the wire here they can try to click it somewhere, so don't end the action - + def handleButtonPress( self, widget, event): self.clickLoc = (int(event.x),int(event.y)) @@ -376,7 +380,7 @@ class SynthLabWindow(SubActivity): # check if we clicked a wire i = self.wireUnderLoc( event.x, event.y ) if i >= 0: self.deleteWire( i ) - + elif event.button == 3: for i in range(self.objectCount): if self.bounds[i][0] < event.x < self.bounds[i][2] and self.bounds[i][1] < event.y < self.bounds[i][3]: @@ -415,12 +419,12 @@ class SynthLabWindow(SubActivity): for i in range(self.objectCount): if self.locations[i] == SynthLabConstants.INIT_LOCATIONS[i] \ and i != self.objectCount-1: continue - + if self.bounds[i][0] < event.x < self.bounds[i][2] and self.bounds[i][1] < event.y < self.bounds[i][3]: gate = self.testGates( i, event.x-self.locations[i][0], event.y-self.locations[i][1] ) - if gate: + if gate: self.highlightGate( i, gate ) - else: + else: self.highlightGate( None ) if self.parameterOpen: self.parameter.hide() @@ -438,7 +442,7 @@ class SynthLabWindow(SubActivity): else: self.highlightWire( None ) def testGates( self, i, x, y ): - oT = i >> 2 + oT = i >> 2 for gT in range(len(self.gateMap[oT])): for n in range(len(self.gateMap[oT][gT])): if self.gateMap[oT][gT][n][0] <= x <= self.gateMap[oT][gT][n][2] \ @@ -468,7 +472,7 @@ class SynthLabWindow(SubActivity): self.wirePoint[1][0] = x self.wirePoint[1][1] = y self.invalidate_rect( self.wireRect[0], self.wireRect[1], self.wireRect[2], self.wireRect[3], False ) - + def connectWire( self, obj, gate ): if gate[0] == SynthLabConstants.GT_CONTROL_OUTPUT or gate[0] == SynthLabConstants.GT_SOUND_OUTPUT: bObj, eObj = obj, self.wireObj @@ -483,7 +487,7 @@ class SynthLabWindow(SubActivity): self.doneWire() def deleteWire( self, i ): - self.invalidate_rect( self.cBounds[i][0], self.cBounds[i][1], self.cBounds[i][2], self.cBounds[i][3] ) + self.invalidate_rect( self.cBounds[i][0], self.cBounds[i][1], self.cBounds[i][2], self.cBounds[i][3] ) self.delConnection( i ) def doneWire( self ): @@ -495,7 +499,7 @@ class SynthLabWindow(SubActivity): if x < self.cBounds[i][0] or x > self.cBounds[i][4]: continue if y < self.cBounds[i][1] or y > self.cBounds[i][5]: continue if self.cPoints[i][0] == self.cPoints[i][2]: # vertical line - if abs(x-self.cPoints[i][0]) < self.lineWidthMUL4: + if abs(x-self.cPoints[i][0]) < self.lineWidthMUL4: return i else: slope = (self.cPoints[i][3]-self.cPoints[i][1])/float(self.cPoints[i][2]-self.cPoints[i][0]) @@ -514,7 +518,7 @@ class SynthLabWindow(SubActivity): if self.overWire != i: if self.overWire != None: self.invalidate_rect( self.cBounds[self.overWire][0], self.cBounds[self.overWire][1], self.cBounds[self.overWire][2], self.cBounds[self.overWire][3] ) - self.overWire = i + self.overWire = i if self.overWire != None: self.invalidate_rect( self.cBounds[self.overWire][0], self.cBounds[self.overWire][1], self.cBounds[self.overWire][2], self.cBounds[self.overWire][3] ) @@ -544,7 +548,7 @@ class SynthLabWindow(SubActivity): def startDragObject( self, i ): self.dragObject = i - self.dragInitialLoc = (self.locations[i][0],self.locations[i][1]) + self.dragInitialLoc = (self.locations[i][0],self.locations[i][1]) self.potentialDisconnect = False self.invalidate_rect( self.bounds[i][0], self.bounds[i][1], SynthLabConstants.PIC_SIZE, SynthLabConstants.PIC_SIZE ) for i in self.outputMap[self.dragObject]: @@ -557,10 +561,10 @@ class SynthLabWindow(SubActivity): delta = [ x-self.clickLoc[0], y-self.clickLoc[1] ] x = self.dragInitialLoc[0]+delta[0] if x-SynthLabConstants.HALF_SIZE < 0: x = SynthLabConstants.HALF_SIZE - elif x+SynthLabConstants.HALF_SIZE > self.drawingAreaWidth: x = self.drawingAreaWidth - SynthLabConstants.HALF_SIZE + elif x+SynthLabConstants.HALF_SIZE > self.drawingAreaWidth: x = self.drawingAreaWidth - SynthLabConstants.HALF_SIZE y = self.dragInitialLoc[1]+delta[1] if y-SynthLabConstants.HALF_SIZE < 0: y = SynthLabConstants.HALF_SIZE - elif y+SynthLabConstants.HALF_SIZE > self.drawingAreaHeight: y = self.drawingAreaHeight - SynthLabConstants.HALF_SIZE + elif y+SynthLabConstants.HALF_SIZE > self.drawingAreaHeight: y = self.drawingAreaHeight - SynthLabConstants.HALF_SIZE self.invalidate_rect(self.bounds[self.dragObject][0], self.bounds[self.dragObject][1], SynthLabConstants.PIC_SIZE, SynthLabConstants.PIC_SIZE, False ) if not self.potentialDisconnect: @@ -582,7 +586,7 @@ class SynthLabWindow(SubActivity): self.invalidate_rect( self.cBounds[i][0], self.cBounds[i][1], self.cBounds[i][2], self.cBounds[i][3], False ) 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 ) - + def doneDragObject( self ): if self.potentialDisconnect: self.invalidate_rect( self.bounds[self.dragObject][0], self.bounds[self.dragObject][1], SynthLabConstants.PIC_SIZE, SynthLabConstants.PIC_SIZE, False ) @@ -646,7 +650,7 @@ class SynthLabWindow(SubActivity): and self.connections[c][1][2] == eGate[1] : # same type and port if self.connections[c][0][0] == bObj: return False # connections already exists - + if self.findRecursive( eObj, bObj ): return False # loop @@ -689,7 +693,7 @@ class SynthLabWindow(SubActivity): if self.outputMap[o][m] > i: self.outputMap[o][m] -= 1 for m in range(len(self.inputMap[o])): if self.inputMap[o][m] > i: self.inputMap[o][m] -= 1 - + self.updateSound() self.handleSaveTemp() @@ -732,7 +736,7 @@ class SynthLabWindow(SubActivity): # draw objects self.gc.set_clip_mask( self.clipMask ) for i in range(self.objectCount): - if i == self.dragObject: + if i == self.dragObject: continue if startX > self.bounds[i][2] or stopX < self.bounds[i][0] or startY > self.bounds[i][3] or stopY < self.bounds[i][1]: continue @@ -747,7 +751,7 @@ class SynthLabWindow(SubActivity): continue if startX > self.cBounds[c][4] or stopX < self.cBounds[c][0] or startY > self.cBounds[c][5] or stopY < self.cBounds[c][1]: continue - buf.draw_line( self.gc, self.cPoints[c][0], self.cPoints[c][1], + buf.draw_line( self.gc, self.cPoints[c][0], self.cPoints[c][1], self.cPoints[c][2], self.cPoints[c][3] ) self.screenBufDirty = False @@ -766,7 +770,7 @@ class SynthLabWindow(SubActivity): # draw base widget.window.draw_drawable( self.gc, self.screenBuf, startX, startY, startX, startY, event.area.width, event.area.height ) - + if self.action == "drag-object": # draw dragObject self.gc.set_clip_mask( self.clipMask ) @@ -774,31 +778,31 @@ class SynthLabWindow(SubActivity): self.gc.set_clip_origin( self.bounds[self.dragObject][0]-SynthLabConstants.PIC_SIZE*type, self.bounds[self.dragObject][1] ) widget.window.draw_drawable( self.gc, self.pixmap[self.dragObject], 0, 0, self.bounds[self.dragObject][0], self.bounds[self.dragObject][1], SynthLabConstants.PIC_SIZE, SynthLabConstants.PIC_SIZE ) self.gc.set_clip_rectangle( self.clearMask ) - + # draw wires if not self.potentialDisconnect: for c in self.outputMap[self.dragObject]: if startX > self.cBounds[c][4] or stopX < self.cBounds[c][0] or startY > self.cBounds[c][5] or stopY < self.cBounds[c][1]: continue - widget.window.draw_line( self.gc, self.cPoints[c][0], self.cPoints[c][1], + widget.window.draw_line( self.gc, self.cPoints[c][0], self.cPoints[c][1], self.cPoints[c][2], self.cPoints[c][3] ) for c in self.inputMap[self.dragObject]: if startX > self.cBounds[c][4] or stopX < self.cBounds[c][0] or startY > self.cBounds[c][5] or stopY < self.cBounds[c][1]: continue - widget.window.draw_line( self.gc, self.cPoints[c][0], self.cPoints[c][1], + widget.window.draw_line( self.gc, self.cPoints[c][0], self.cPoints[c][1], self.cPoints[c][2], self.cPoints[c][3] ) elif self.action == "draw-wire": # draw the wire - widget.window.draw_line( self.gc, self.wirePoint[0][0], self.wirePoint[0][1], + widget.window.draw_line( self.gc, self.wirePoint[0][0], self.wirePoint[0][1], self.wirePoint[1][0], self.wirePoint[1][1] ) # draw highlights if self.overWire != None: self.gc.foreground = self.overWireColor - widget.window.draw_line( self.gc, self.cPoints[self.overWire][0], self.cPoints[self.overWire][1], + widget.window.draw_line( self.gc, self.cPoints[self.overWire][0], self.cPoints[self.overWire][1], self.cPoints[self.overWire][2], self.cPoints[self.overWire][3] ) elif self.overGate != None: - self.gc.set_line_attributes( self.overLineWidth, gtk.gdk.LINE_SOLID, gtk.gdk.CAP_BUTT, gtk.gdk.JOIN_MITER ) + self.gc.set_line_attributes( self.overLineWidth, gtk.gdk.LINE_SOLID, gtk.gdk.CAP_BUTT, gtk.gdk.JOIN_MITER ) if self.overGateReject: self.gc.foreground = self.overGateRejectColor widget.window.draw_line( self.gc, self.overGateLoc[0]+self.overLineWidth, self.overGateLoc[1]+self.overLineWidth, self.overGateLoc[0]+self.overGateSize-self.overLineWidth, self.overGateLoc[1]+self.overGateSize-self.overLineWidth ) @@ -806,8 +810,8 @@ class SynthLabWindow(SubActivity): else: self.gc.foreground = self.overGateColor widget.window.draw_arc( self.gc, False, self.overGateLoc[0]+self.overLineWidth, self.overGateLoc[1]+self.overLineWidth, self.overGateSize-self.overLineWidthMUL2, self.overGateSize-self.overLineWidthMUL2, 0, 23040 ) - self.gc.set_line_attributes( self.lineWidth, gtk.gdk.LINE_SOLID, gtk.gdk.CAP_BUTT, gtk.gdk.JOIN_MITER ) - + self.gc.set_line_attributes( self.lineWidth, gtk.gdk.LINE_SOLID, gtk.gdk.CAP_BUTT, gtk.gdk.JOIN_MITER ) + #print TP.ProfileEndAndPrint("SL::draw") return True @@ -826,7 +830,7 @@ class SynthLabWindow(SubActivity): self.screenBufDirtyRect.width = w self.screenBufDirtyRect.height = h self.screenBufDirty = True - + if self.drawingArea.window != None: self.drawingArea.window.invalidate_rect( self.dirtyRectToAdd, True ) @@ -845,7 +849,7 @@ class SynthLabWindow(SubActivity): self.typesTable = typesTable lastTable = [0]*12 for i in range(12): - if i in self.outputs: + if i in self.outputs: lastTable[i] = (typesTable[i]+1) mess = "f5203 0 16 -2 " + " " .join([str(n) for n in lastTable]) + " 0 0 0 0" self.csnd.inputMessage( mess ) @@ -874,9 +878,9 @@ class SynthLabWindow(SubActivity): if widget.get_active() == True: self.recordButton = widget self.recordWait = 1 - os.system('rm ' + Config.PREF_DIR + '/lab' + str(data)) + os.system('rm ' + Config.SNDS_DIR + '/lab' + str(data)) self.table = 85 + data - else: + else: self.recordWait = 0 def updateSound( self ): @@ -888,15 +892,15 @@ class SynthLabWindow(SubActivity): time.sleep(.01) lastTable = [0]*12 for i in range(12): - if i in self.outputs: - lastTable[i] = (self.synthObjectsParameters.types[i]+1) + if i in self.outputs: + lastTable[i] = (self.synthObjectsParameters.types[i]+1) mess = "f5203 0 16 -2 " + " " .join([str(n) for n in lastTable]) + " 0 0 0 0" self.csnd.inputMessage( mess ) time.sleep(.01) def updateTables( self ): self.writeTables( self.synthObjectsParameters.types, self.synthObjectsParameters.controlsParameters, self.synthObjectsParameters.sourcesParameters, self.synthObjectsParameters.fxsParameters ) - + def controlToSrcConnections( self ): self.contSrcConnections = [] for i in self.connections: @@ -960,7 +964,7 @@ class SynthLabWindow(SubActivity): gc = gtk.gdk.GC( win ) gc.foreground = self.bgColor self.pixmap = [] - for i in range(13): + for i in range(13): if i < 4: img = SynthLabConstants.CHOOSE_TYPE_PLUS[0][typesList[i]] elif i < 8: img = SynthLabConstants.CHOOSE_TYPE_PLUS[1][typesList[i]] elif i < 12: img = SynthLabConstants.CHOOSE_TYPE_PLUS[2][typesList[i]] @@ -973,7 +977,7 @@ class SynthLabWindow(SubActivity): pix = gtk.gdk.pixbuf_new_from_file(Config.IMAGE_ROOT+'synthlabMask.png') pixels = pix.get_pixels() stride = pix.get_rowstride() - channels = pix.get_n_channels() + channels = pix.get_n_channels() bitmap = "" byte = 0 shift = 0 @@ -1004,22 +1008,22 @@ class SynthLabWindow(SubActivity): ofilename = chooser.get_filename() if ofilename[-4:] != '.syn': ofilename += '.syn' - try: + try: print 'INFO: save SynthLab file %s' % chooser.get_filename() f = shelve.open(ofilename, 'n') self.saveState(f) f.close() - except IOError: + except IOError: print 'ERROR: failed to save SynthLab to file %s' % chooser.get_filename() chooser.destroy() - - def handleJournalSave(self, file_path): + + def handleJournalSave(self, file_path): f = shelve.open(file_path, 'n') self.saveState(f) f.close() - - def handleLoad(self, widget, data): + + def handleLoad(self, widget, data): chooser = gtk.FileChooserDialog(title='Load SynthLab Preset',action=gtk.FILE_CHOOSER_ACTION_OPEN, buttons=(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_OPEN,gtk.RESPONSE_OK)) filter = gtk.FileFilter() @@ -1031,21 +1035,21 @@ class SynthLabWindow(SubActivity): chooser.remove_shortcut_folder_uri(f) if chooser.run() == gtk.RESPONSE_OK: - try: + try: print 'INFO: load SynthLab state from file %s' % chooser.get_filename() f = shelve.open( chooser.get_filename(), 'r') self.loadState(f) f.close() - except IOError: + except IOError: print 'ERROR: failed to load SynthLab state from file %s' % chooser.get_filename() chooser.destroy() - - def handleJournalLoad(self, file_path): + + def handleJournalLoad(self, file_path): f = shelve.open( file_path, 'r') self.loadState(f) f.close() - + def handleSaveTemp( self ): file = Config.PREF_DIR + '/synthTemp' f = shelve.open(file, 'n') @@ -1080,7 +1084,7 @@ class SynthLabWindow(SubActivity): print "old format" print c i = c[0] - if i[1] == 0 and i[2] == 40: + if i[1] == 0 and i[2] == 40: if i[0] < 4: t,n = 0,0 # control output else: t,n = 2,0 # sound output else: @@ -1088,20 +1092,20 @@ class SynthLabWindow(SubActivity): t,n = i[1],i[2] c[0] = ( c[0][0], t, n ) i = c[1] - if i[1] == 0 and i[2] == -40: t,n = 3,0 - elif i[1] == 40 and i[2] == -19: t,n = 1,0 - elif i[1] == -25 and i[2] == -40: t,n = 1,0 - elif i[1] == -9 and i[2] == -40: t,n = 1,1 - elif i[1] == 8 and i[2] == -40: t,n = 1,2 - elif i[1] == 25 and i[2] == -40: t,n = 1,3 - else: + if i[1] == 0 and i[2] == -40: t,n = 3,0 + elif i[1] == 40 and i[2] == -19: t,n = 1,0 + elif i[1] == -25 and i[2] == -40: t,n = 1,0 + elif i[1] == -9 and i[2] == -40: t,n = 1,1 + elif i[1] == 8 and i[2] == -40: t,n = 1,2 + elif i[1] == 25 and i[2] == -40: t,n = 1,3 + else: print "unhandled loc" t,n = i[1],i[2] c[1] = ( c[1][0], t, n ) def loadState( self, state ): self.synthObjectsParameters.types = state['types'] - self.synthObjectsParameters.controlsParameters = state['controls'] + self.synthObjectsParameters.controlsParameters = state['controls'] self.synthObjectsParameters.sourcesParameters = state['sources'] self.synthObjectsParameters.fxsParameters = state['fxs'] self.synthObjectsParameters.outputParameters = state['envelope'] @@ -23,7 +23,7 @@ from gettext import gettext as _ import commands if __name__ != '__main__': - try: + try: from sugar.activity.activity import Activity from sugar.activity import activity FAKE_ACTIVITY = False @@ -41,17 +41,17 @@ class TamTam(Activity): # TamTam is the topmost container in the TamTam application # At all times it has one child, which may be one of # - the welcome screen - # - the mini-tamtam + # - the mini-tamtam # - the synth lab # - edit mode def __init__(self, handle, mode='welcome'): Activity.__init__(self, handle) self.ensure_dirs() - + color = gtk.gdk.color_parse(Config.WS_BCK_COLOR) self.modify_bg(gtk.STATE_NORMAL, color) - + self.set_title('TamTam') self.set_resizable(False) @@ -73,18 +73,18 @@ class TamTam(Activity): self.mode = None self.modeList = {} - + self.instrumentPanel = InstrumentPanel( force_load = False ) self.preloadList = [ self.instrumentPanel ] - - #load the sugar toolbar + + #load the sugar toolbar self.toolbox = activity.ActivityToolbox(self) self.set_toolbox(self.toolbox) - + self.activity_toolbar = self.toolbox.get_activity_toolbar() self.activity_toolbar.share.hide() self.activity_toolbar.keep.hide() - + self.toolbox.show() if self._shared_activity: # if we're joining a shared activity force mini @@ -111,11 +111,11 @@ class TamTam(Activity): pass def set_mode(self, mode, arg = None): if Config.DEBUG: print 'DEBUG: TamTam::set_mode from', self.mode, 'to', mode - + if mode == 'quit': - self.close() # Save and cleanup + self.close() # Save and cleanup self.destroy() - + if self.mode != None: self.modeList[ self.mode ].onDeactivate() if FAKE_ACTIVITY: @@ -128,7 +128,7 @@ class TamTam(Activity): if not (mode in self.modeList): self.modeList[mode] = Welcome(self, self.set_mode) self.mode = mode - if len( self.preloadList ): + if len( self.preloadList ): self.preloadTimeout = gobject.timeout_add( 300, self.onPreloadTimeout ) elif self.preloadTimeout: gobject.source_remove( self.preloadTimeout ) @@ -138,7 +138,7 @@ class TamTam(Activity): if not (mode in self.modeList): self.modeList[mode] = Jam(self, self.set_mode) self.mode = mode - + if mode == 'mini': if not (mode in self.modeList): self.metadata['title'] = 'TamTam Mini' @@ -149,7 +149,7 @@ class TamTam(Activity): self.instrumentPanel.load() # finish loading self.modeList[mode].setInstrumentPanel( self.instrumentPanel ) self.mode = mode - + if mode == 'edit': self.toolbox.hide() if not (mode in self.modeList): @@ -159,7 +159,7 @@ class TamTam(Activity): self.instrumentPanel.load() # finish loading self.modeList[mode].setInstrumentPanel( self.instrumentPanel ) self.mode = mode - + if mode == 'synth': if not (mode in self.modeList): self.metadata['title'] = 'TamTam SynthLab' @@ -184,7 +184,7 @@ class TamTam(Activity): self.modeList[ self.mode ].updateSound() self.modeList[ self.mode ].updateTables() #csnd.load_instruments() - + def onFocusOut(self, event, data=None): if Config.DEBUG > 3: print 'DEBUG: TamTam::onFocusOut in TamTam.py' csnd = new_csound_client() @@ -224,7 +224,7 @@ class TamTam(Activity): if Config.DEBUG: print 'DEBUG: TamTam::onDestroy()' os.system('rm -f ' + Config.PREF_DIR + '/synthTemp*') - for m in self.modeList: + for m in self.modeList: if self.modeList[m] != None: self.modeList[m].onDestroy() @@ -246,14 +246,15 @@ class TamTam(Activity): def ensure_dirs(self): self.ensure_dir(Config.TUNE_DIR) self.ensure_dir(Config.SYNTH_DIR) + self.ensure_dir(Config.SNDS_DIR) if not os.path.isdir(Config.PREF_DIR): os.mkdir(Config.PREF_DIR) os.system('chmod 0777 ' + Config.PREF_DIR + ' &') for snd in ['mic1','mic2','mic3','mic4','lab1','lab2','lab3','lab4', 'lab5', 'lab6']: - shutil.copyfile(Config.SOUNDS_DIR + '/' + snd , Config.PREF_DIR + '/' + snd) - os.system('chmod 0777 ' + Config.PREF_DIR + '/' + snd + ' &') - + shutil.copyfile(Config.SOUNDS_DIR + '/' + snd , Config.SNDS_DIR + '/' + snd) + os.system('chmod 0777 ' + Config.SNDS_DIR + '/' + snd + ' &') + def read_file(self,file_path): subactivity_name = self.metadata['tamtam_subactivity'] if subactivity_name == 'edit' or subactivity_name == 'synth': @@ -261,9 +262,9 @@ class TamTam(Activity): self.modeList[subactivity_name].handleJournalLoad(file_path) elif subactivity_name == 'mini': self.set_mode(subactivity_name) - else: + else: return - + def write_file(self,file_path): if self.mode == 'edit': self.metadata['tamtam_subactivity'] = self.mode @@ -277,15 +278,15 @@ class TamTam(Activity): f.close() -if __name__ == "__main__": +if __name__ == "__main__": if len(sys.argv) > 1 : mainwin = TamTam(None, sys.argv[1]) else: mainwin = TamTam(None, 'welcome') - + gtk.gdk.threads_init() gtk.main() - + sys.exit(0) @@ -313,4 +314,3 @@ if __name__ == "__main__": tamtam.show() mainwin.show() gtk.main() - diff --git a/Util/CSoundClient.py b/Util/CSoundClient.py index 242461f..c52cad1 100644 --- a/Util/CSoundClient.py +++ b/Util/CSoundClient.py @@ -31,7 +31,7 @@ class _CSoundClientPlugin: def __init__(self): sc_initialize( Config.PLUGIN_UNIVORC, Config.PLUGIN_DEBUG, Config.PLUGIN_PERIOD, Config.PLUGIN_NPERIODS, - Config.PLUGIN_VERBOSE, + Config.PLUGIN_VERBOSE, Config.PLUGIN_KSMPS, Config.PLUGIN_RATE) self.on = False #self.masterVolume = 80.0 @@ -66,23 +66,23 @@ class _CSoundClientPlugin: sc_inputMessage( Config.CSOUND_MIC_RECORD % table ) def load_mic_instrument( self, inst ): - fileName = Config.PREF_DIR + '/' + inst + fileName = Config.SNDS_DIR + '/' + inst instrumentId = Config.INSTRUMENT_TABLE_OFFSET + Config.INSTRUMENTS[inst].instrumentId sc_inputMessage(Config.CSOUND_LOAD_INSTRUMENT % (instrumentId, fileName)) def load_synth_instrument( self, inst ): - fileName = Config.PREF_DIR + '/' + inst + fileName = Config.SNDS_DIR + '/' + inst instrumentId = Config.INSTRUMENT_TABLE_OFFSET + Config.INSTRUMENTS[inst].instrumentId sc_inputMessage(Config.CSOUND_LOAD_INSTRUMENT % (instrumentId, fileName)) def load_ls_instrument( self, inst ): - fileName = Config.PREF_DIR + '/' + inst + fileName = Config.SNDS_DIR + '/' + inst sc_inputMessage(Config.CSOUND_LOAD_LS_INSTRUMENT % fileName) - + def load_instruments( self ): for instrumentSoundFile in Config.INSTRUMENTS.keys(): if instrumentSoundFile[0:3] == 'mic' or instrumentSoundFile[0:3] == 'lab': - fileName = Config.PREF_DIR + '/' + instrumentSoundFile + fileName = Config.SNDS_DIR + '/' + instrumentSoundFile else: fileName = Config.SOUNDS_DIR + "/" + instrumentSoundFile instrumentId = Config.INSTRUMENT_TABLE_OFFSET + Config.INSTRUMENTS[ instrumentSoundFile ].instrumentId @@ -90,12 +90,12 @@ class _CSoundClientPlugin: def connect( self, init = True ): def reconnect(): - if sc_start(self.periods_per_buffer) : + if sc_start(self.periods_per_buffer) : if (Config.DEBUG > 0) : print 'ERROR connecting' else: self.on = True def disconnect(): - if sc_stop() : + if sc_stop() : if (Config.DEBUG > 0) : print 'ERROR connecting' else: self.on = False @@ -220,12 +220,12 @@ class _CSoundClientPlugin: def csnote_to_array(self, csnote): return self.csnote_to_array1( - csnote.onset, + csnote.onset, csnote.pitch, csnote.amplitude, csnote.pan, - csnote.duration, - csnote.trackId, + csnote.duration, + csnote.trackId, csnote.attack, csnote.decay, csnote.reverbSend, @@ -235,16 +235,16 @@ class _CSoundClientPlugin: csnote.instrumentId, csnote.mode) - def csnote_to_array1( self, onset, - pitch, - amplitude, - pan, - duration, - trackId, - attack = 0.002, - decay = 0.098, - reverbSend = 0.1, - filterType = 0, + def csnote_to_array1( self, onset, + pitch, + amplitude, + pan, + duration, + trackId, + attack = 0.002, + decay = 0.098, + reverbSend = 0.1, + filterType = 0, filterCutoff = 1000, tied = False, instrumentId = Config.INSTRUMENTS["flute"].instrumentId, diff --git a/icons/reset.svg b/icons/reset.svg index 27e7b19..a0bac5a 100644 --- a/icons/reset.svg +++ b/icons/reset.svg @@ -3,11 +3,11 @@ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="45.395px" height="45.395px" viewBox="0 0 45.395 45.395" enable-background="new 0 0 45.395 45.395" xml:space="preserve">
-<polygon fill="none" stroke="#FFFFFF" stroke-width="3" points="33.865,41.531 11.531,41.198 7.323,9.323 38.448,9.323 "/>
-<path fill="none" stroke="#FFFFFF" stroke-width="3" d="M7.323,7.198c22.004-2.468,25.334-2.75,29.459-3.5s-9.667-3.25-13.959-2.75
- c-2.002,0.233-11.25,1.875-15.375,6.25"/>
-<path fill="none" stroke="#FFFFFF" stroke-width="3" d="M17.698,0.531l7.75-1.708c0,0-4.875-3.625-7.75,1.5"/>
-<line fill="none" stroke="#FFFFFF" stroke-width="3" x1="23.198" y1="15.698" x2="23.198" y2="33.198"/>
-<line fill="none" stroke="#FFFFFF" stroke-width="3" x1="32.198" y1="16.198" x2="30.198" y2="33.198"/>
-<line fill="none" stroke="#FFFFFF" stroke-width="3" x1="13.448" y1="16.948" x2="15.198" y2="33.198"/>
+<polygon fill="none" stroke="#FFFFFF" stroke-width="2" points="32.865,41.156 13.581,40.868 9.948,13.345 36.823,13.345 "/>
+<path fill="none" stroke="#FFFFFF" stroke-width="2" d="M9.948,11.51C28.947,9.38,31.823,9.136,35.384,8.489
+ S27.037,5.682,23.33,6.114c-1.728,0.202-9.713,1.619-13.275,5.396"/>
+<path fill="none" stroke="#FFFFFF" stroke-width="2" d="M18.906,5.754l6.692-1.475c0,0-4.209-3.13-6.692,1.295"/>
+<line fill="none" stroke="#FFFFFF" x1="23.655" y1="18.85" x2="23.655" y2="33.96"/>
+<line fill="none" stroke="#FFFFFF" x1="31.426" y1="19.281" x2="29.699" y2="33.96"/>
+<line fill="none" stroke="#FFFFFF" x1="15.236" y1="19.929" x2="16.747" y2="33.96"/>
</svg>
diff --git a/miniTamTam/miniTamTamMain.py b/miniTamTam/miniTamTamMain.py index 55f9823..7121fa4 100644 --- a/miniTamTam/miniTamTamMain.py +++ b/miniTamTam/miniTamTamMain.py @@ -373,7 +373,7 @@ class miniTamTamMain(SubActivity): #filter = gtk.FileFilter() #filter.add_pattern('*.wav') #chooser.set_filter(filter) - chooser.set_current_folder(Config.PREF_DIR) + chooser.set_current_folder(Config.SNDS_DIR) for f in chooser.list_shortcut_folder_uris(): chooser.remove_shortcut_folder_uri(f) @@ -415,12 +415,12 @@ class miniTamTamMain(SubActivity): self.instrumentPanelBox.remove( self.instrumentPanel ) def micRec(self, widget, mic): - os.system('rm ' + Config.PREF_DIR + '/' + mic) + os.system('rm ' + Config.SNDS_DIR + '/' + mic) self.csnd.inputMessage("i5600 0 4") - (s1,o1) = commands.getstatusoutput("arecord -f S16_LE -t wav -r 16000 -d 4 " + Config.PREF_DIR + "/tempMic.wav") + (s1,o1) = commands.getstatusoutput("arecord -f S16_LE -t wav -r 16000 -d 4 " + Config.SNDS_DIR + "/tempMic.wav") (s2, o2) = commands.getstatusoutput("csound " + Config.FILES_DIR + "/crop.csd") - (s3, o3) = commands.getstatusoutput("mv " + Config.PREF_DIR + "/micTemp " + Config.PREF_DIR + "/" + mic) - (s4, o4) = commands.getstatusoutput("rm " + Config.PREF_DIR + "/tempMic.wav") + (s3, o3) = commands.getstatusoutput("mv " + Config.SNDS_DIR + "/micTemp " + Config.SNDS_DIR + "/" + mic) + (s4, o4) = commands.getstatusoutput("rm " + Config.SNDS_DIR + "/tempMic.wav") self.micTimeout = gobject.timeout_add(200, self.loadMicInstrument, mic) self.instrumentPanel.set_activeInstrument(mic,True) self.setInstrument(mic) diff --git a/miniTamTam/miniToolbars.py b/miniTamTam/miniToolbars.py index f6bdb70..90088a8 100644 --- a/miniTamTam/miniToolbars.py +++ b/miniTamTam/miniToolbars.py @@ -120,7 +120,7 @@ class recordToolbar(gtk.Toolbar): self.micRec4Button.show() self.micRec4Button.set_tooltip(('Record microphone into slot 4')) - _insertSeparator(6) + _insertSeparator(12) self.keyboardRecButton = ToggleToolButton('keyrec') self.keyboardRecButton.connect('clicked', self.miniTamTam.sequencer.handleRecordButton ) |