Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoramartin <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)
commitc312ded2c29fdcc3435d93834f5044175cbe6884 (patch)
tree1fe74ed201198f8c9ab3d029ad4dfdfae2662004
parentdab25db611bb999942c5717f93f1e8f644b476af (diff)
parentd7b1c70cab1cb086328838d3bd502445243a0d48 (diff)
Merge branch 'master' of git+ssh://amartin@dev.laptop.org/git/projects/tamtam
-rw-r--r--Config.py12
-rwxr-xr-xGeneration/GenerationParametersWindow.py8
-rw-r--r--Resources/SynthFiles/synthFile1bin12288 -> 12288 bytes
-rw-r--r--Resources/SynthFiles/synthFile10bin12288 -> 12288 bytes
-rw-r--r--Resources/SynthFiles/synthFile2bin12288 -> 12288 bytes
-rw-r--r--Resources/SynthFiles/synthFile3bin12288 -> 12288 bytes
-rw-r--r--Resources/SynthFiles/synthFile4bin12288 -> 12288 bytes
-rw-r--r--Resources/SynthFiles/synthFile5bin12288 -> 12288 bytes
-rw-r--r--Resources/SynthFiles/synthFile6bin12288 -> 12288 bytes
-rw-r--r--Resources/SynthFiles/synthFile7bin12288 -> 12288 bytes
-rw-r--r--Resources/SynthFiles/synthFile8bin12288 -> 12288 bytes
-rw-r--r--Resources/SynthFiles/synthFile9bin12288 -> 12288 bytes
-rw-r--r--Resources/crop.csd16
-rw-r--r--Resources/univorc.csd108
-rwxr-xr-xSynthLab/SynthLabConstants.py2
-rw-r--r--SynthLab/SynthLabToolbars.py2
-rw-r--r--SynthLab/SynthLabWindow.py216
-rwxr-xr-xTamTam.py54
-rw-r--r--Util/CSoundClient.py42
-rw-r--r--icons/reset.svg14
-rw-r--r--miniTamTam/miniTamTamMain.py10
-rw-r--r--miniTamTam/miniToolbars.py2
22 files changed, 246 insertions, 240 deletions
diff --git a/Config.py b/Config.py
index b71598b..f2a1b86 100644
--- a/Config.py
+++ b/Config.py
@@ -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
index 36eb18f..d453da9 100644
--- a/Resources/SynthFiles/synthFile1
+++ b/Resources/SynthFiles/synthFile1
Binary files differ
diff --git a/Resources/SynthFiles/synthFile10 b/Resources/SynthFiles/synthFile10
index 44f1342..b95f1c9 100644
--- a/Resources/SynthFiles/synthFile10
+++ b/Resources/SynthFiles/synthFile10
Binary files differ
diff --git a/Resources/SynthFiles/synthFile2 b/Resources/SynthFiles/synthFile2
index 3effb94..74e1e8d 100644
--- a/Resources/SynthFiles/synthFile2
+++ b/Resources/SynthFiles/synthFile2
Binary files differ
diff --git a/Resources/SynthFiles/synthFile3 b/Resources/SynthFiles/synthFile3
index 38e33e5..43712f5 100644
--- a/Resources/SynthFiles/synthFile3
+++ b/Resources/SynthFiles/synthFile3
Binary files differ
diff --git a/Resources/SynthFiles/synthFile4 b/Resources/SynthFiles/synthFile4
index 1647224..187a832 100644
--- a/Resources/SynthFiles/synthFile4
+++ b/Resources/SynthFiles/synthFile4
Binary files differ
diff --git a/Resources/SynthFiles/synthFile5 b/Resources/SynthFiles/synthFile5
index 695e318..e1676f1 100644
--- a/Resources/SynthFiles/synthFile5
+++ b/Resources/SynthFiles/synthFile5
Binary files differ
diff --git a/Resources/SynthFiles/synthFile6 b/Resources/SynthFiles/synthFile6
index ca28ab9..c5e82bb 100644
--- a/Resources/SynthFiles/synthFile6
+++ b/Resources/SynthFiles/synthFile6
Binary files differ
diff --git a/Resources/SynthFiles/synthFile7 b/Resources/SynthFiles/synthFile7
index d1f2df6..a7d4c72 100644
--- a/Resources/SynthFiles/synthFile7
+++ b/Resources/SynthFiles/synthFile7
Binary files differ
diff --git a/Resources/SynthFiles/synthFile8 b/Resources/SynthFiles/synthFile8
index 2f76cec..68a0ae4 100644
--- a/Resources/SynthFiles/synthFile8
+++ b/Resources/SynthFiles/synthFile8
Binary files differ
diff --git a/Resources/SynthFiles/synthFile9 b/Resources/SynthFiles/synthFile9
index 5e60772..1004fd9 100644
--- a/Resources/SynthFiles/synthFile9
+++ b/Resources/SynthFiles/synthFile9
Binary files differ
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']
diff --git a/TamTam.py b/TamTam.py
index 7d7a67f..4984b42 100755
--- a/TamTam.py
+++ b/TamTam.py
@@ -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 )