Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/TamTamEdit.activity
diff options
context:
space:
mode:
authorNat <natcl@hotmail.com>2007-09-17 16:50:00 (GMT)
committer Nat <natcl@hotmail.com>2007-09-17 16:50:00 (GMT)
commit2e559ace9d45bb83af07567443321cb3a41de42b (patch)
tree809e22e4c8317c4de374e487f58c24752b9c1fdc /TamTamEdit.activity
parent608fdb2e7f7a62e08b7e29a6ba28ff6326638be9 (diff)
TamTam Edit split
Diffstat (limited to 'TamTamEdit.activity')
-rw-r--r--TamTamEdit.activity/Edit/EditToolbars.py22
-rw-r--r--TamTamEdit.activity/Edit/HitInterface.py4
-rw-r--r--TamTamEdit.activity/Edit/MainWindow.py38
-rw-r--r--TamTamEdit.activity/Edit/NoteInterface.py6
-rw-r--r--TamTamEdit.activity/Edit/Properties.py10
-rw-r--r--TamTamEdit.activity/Edit/TrackInterface.py10
-rw-r--r--TamTamEdit.activity/Edit/TuneInterface.py6
-rw-r--r--TamTamEdit.activity/MANIFEST542
-rw-r--r--TamTamEdit.activity/TamTam.py1229
-rw-r--r--TamTamEdit.activity/TamTamEdit.py144
-rw-r--r--TamTamEdit.activity/activity/activity.info2
-rw-r--r--TamTamEdit.activity/po/TamTamEdit.pot632
-rw-r--r--TamTamEdit.activity/setup.py11
13 files changed, 1377 insertions, 1279 deletions
diff --git a/TamTamEdit.activity/Edit/EditToolbars.py b/TamTamEdit.activity/Edit/EditToolbars.py
index 38e2e27..7854b7d 100644
--- a/TamTamEdit.activity/Edit/EditToolbars.py
+++ b/TamTamEdit.activity/Edit/EditToolbars.py
@@ -2,27 +2,27 @@
import gtk
-import Config
+import common.Config as Config
from sugar.graphics.toolbutton import ToolButton
from sugar.graphics.toggletoolbutton import ToggleToolButton
from sugar.graphics.radiotoolbutton import RadioToolButton
from sugar.graphics.palette import Palette
from sugar.graphics.icon import Icon
-from Util.ThemeWidgets import *
+from common.Util.ThemeWidgets import *
from gettext import gettext as _
#Generation palette
import gobject
-from Generation.Generator import GenerationParameters
+from common.Generation.Generator import GenerationParameters
#Generation palette and Properties palette
-from Generation.GenerationConstants import GenerationConstants
-from Generation.GenerationRythm import GenerationRythm
-from Generation.GenerationPitch import GenerationPitch
+from common.Generation.GenerationConstants import GenerationConstants
+from common.Generation.GenerationRythm import GenerationRythm
+from common.Generation.GenerationPitch import GenerationPitch
#Properties palette
-from Util.NoteDB import PARAMETER
-from Generation.Drunk import *
-import Generation.Utils as Utils
+from common.Util.NoteDB import PARAMETER
+from common.Generation.Drunk import *
+import common.Generation.Utils as Utils
from types import *
from math import sqrt
from random import *
@@ -986,7 +986,7 @@ class propertiesPalette(Palette):
self.filterTypeLabel = gtk.Label(_('Filter Type: '))
self.filterTypeComboBox = BigComboBox()
for filtertype in self.filterTypes:
- self.filterTypeComboBox.append_item(self.filterTypes.index(filtertype), filtertype, Config.TAM_TAM_ROOT + '/icons/test.svg', (30,30))
+ self.filterTypeComboBox.append_item(self.filterTypes.index(filtertype), filtertype)
self.filterTypeComboBox.connect('changed', self.handleFilterTypes)
self.filterTypeBox.pack_start(self.filterTypeLabel, False, False, padding = 5)
self.filterTypeBox.pack_end(self.filterTypeComboBox, False, False, padding = 55)
@@ -1014,7 +1014,7 @@ class propertiesPalette(Palette):
self.generationTypeLabel = gtk.Label(_('Type: '))
self.generationTypeComboBox = BigComboBox()
for genetype in self.geneTypes:
- self.generationTypeComboBox.append_item(self.geneTypes.index(genetype), genetype, Config.TAM_TAM_ROOT + '/icons/test.svg', (30,30))
+ self.generationTypeComboBox.append_item(self.geneTypes.index(genetype), genetype)
self.generationTypeComboBox.connect('changed', self.handleGeneTypes)
self.generationTypeComboBox.set_active(0)
self.generationTypeBox.pack_start(self.generationTypeLabel, False, False, padding = 5)
diff --git a/TamTamEdit.activity/Edit/HitInterface.py b/TamTamEdit.activity/Edit/HitInterface.py
index 6e77908..049c2b0 100644
--- a/TamTamEdit.activity/Edit/HitInterface.py
+++ b/TamTamEdit.activity/Edit/HitInterface.py
@@ -2,9 +2,9 @@ import pygtk
pygtk.require( '2.0' )
import gtk
-from Util.NoteDB import PARAMETER
+from common.Util.NoteDB import PARAMETER
from Edit.NoteInterface import NoteInterface
-import Config
+import common.Config as Config
class HitInterface( NoteInterface ):
diff --git a/TamTamEdit.activity/Edit/MainWindow.py b/TamTamEdit.activity/Edit/MainWindow.py
index 58f82f1..edcb587 100644
--- a/TamTamEdit.activity/Edit/MainWindow.py
+++ b/TamTamEdit.activity/Edit/MainWindow.py
@@ -4,15 +4,15 @@ import gtk
import gobject
-from Util.ThemeWidgets import *
-from Util.Profiler import TP
-from Util import NoteDB
-from Util.NoteDB import PARAMETER
-from Util import ControlStream
-from Util.CSoundClient import new_csound_client
-from Util.InstrumentPanel import InstrumentPanel
-from Util.InstrumentPanel import DrumPanel
-from Util.CSoundNote import CSoundNote
+from common.Util.ThemeWidgets import *
+from common.Util.Profiler import TP
+from common.Util import NoteDB
+from common.Util.NoteDB import PARAMETER
+from common.Util import ControlStream
+from common.Util.CSoundClient import new_csound_client
+from common.Util.InstrumentPanel import InstrumentPanel
+from common.Util.InstrumentPanel import DrumPanel
+from common.Util.CSoundNote import CSoundNote
from EditToolbars import mainToolbar
from EditToolbars import generateToolbar
from gettext import gettext as _
@@ -28,16 +28,15 @@ class CONTEXT:
TRACK = 1
NOTE = 2
-import Config
-from SubActivity import SubActivity
+import common.Config as Config
+#from SubActivity import SubActivity
-from Generation.GenerationConstants import GenerationConstants
-from Generation.GenerationParametersWindow import GenerationParametersWindow
+from common.Generation.GenerationConstants import GenerationConstants
from Edit.Properties import Properties
from Edit.TrackInterface import TrackInterface, TrackInterfaceParasite
from Edit.TuneInterface import TuneInterface, TuneInterfaceParasite
-from Generation.Generator import generator1, GenerationParameters
+from common.Generation.Generator import generator1, GenerationParameters
Tooltips = Config.Tooltips()
KEY_MAP_PIANO = Config.KEY_MAP_PIANO
@@ -45,9 +44,10 @@ KEY_MAP_PIANO = Config.KEY_MAP_PIANO
#-----------------------------------
# The main TamTam window
#-----------------------------------
-class MainWindow( SubActivity ):
+class MainWindow( gtk.EventBox ):
- def __init__( self, activity, set_mode ):
+ def __init__( self, activity ):
+ gtk.EventBox.__init__(self)
self.csnd = new_csound_client()
self.tooltips = gtk.Tooltips()
self.activity = activity
@@ -354,7 +354,7 @@ class MainWindow( SubActivity ):
#===================================================
# begin initialization
- SubActivity.__init__( self, set_mode )
+ #SubActivity.__init__( self, set_mode )
# keyboard variables
self.kb_record = False
@@ -514,7 +514,7 @@ class MainWindow( SubActivity ):
return [density, rytReg, step, pitReg, dur, silence, pattern, scale]
def onActivate( self, arg ):
- SubActivity.onActivate( self,arg )
+ #SubActivity.onActivate( self,arg )
# whatever needs to be done on initialization
self.csnd.loopPause()
self.csnd.loopClear()
@@ -523,7 +523,7 @@ class MainWindow( SubActivity ):
def onDeactivate( self ):
- SubActivity.onDeactivate( self )
+ #SubActivity.onDeactivate( self )
# clean up things like popups etc
self.releaseInstrumentPanel()
self.csnd.loopPause()
diff --git a/TamTamEdit.activity/Edit/NoteInterface.py b/TamTamEdit.activity/Edit/NoteInterface.py
index a5035dd..9dc4247 100644
--- a/TamTamEdit.activity/Edit/NoteInterface.py
+++ b/TamTamEdit.activity/Edit/NoteInterface.py
@@ -2,10 +2,10 @@ import pygtk
pygtk.require( '2.0' )
import gtk
-import Config
+import common.Config as Config
-from Util.NoteDB import PARAMETER
-from Util.CSoundClient import new_csound_client
+from common.Util.NoteDB import PARAMETER
+from common.Util.CSoundClient import new_csound_client
class NoteInterface:
diff --git a/TamTamEdit.activity/Edit/Properties.py b/TamTamEdit.activity/Edit/Properties.py
index b0caae0..e72b22c 100644
--- a/TamTamEdit.activity/Edit/Properties.py
+++ b/TamTamEdit.activity/Edit/Properties.py
@@ -4,11 +4,11 @@ import gtk
from types import *
from math import sqrt
from random import *
-from Generation.Drunk import *
-from Generation.GenerationConstants import GenerationConstants
-from Util.ThemeWidgets import *
-from Util.NoteDB import PARAMETER
-import Config
+from common.Generation.Drunk import *
+from common.Generation.GenerationConstants import GenerationConstants
+from common.Util.ThemeWidgets import *
+from common.Util.NoteDB import PARAMETER
+import common.Config as Config
Tooltips = Config.Tooltips()
class Properties( gtk.VBox ):
diff --git a/TamTamEdit.activity/Edit/TrackInterface.py b/TamTamEdit.activity/Edit/TrackInterface.py
index b8a3a27..5b63576 100644
--- a/TamTamEdit.activity/Edit/TrackInterface.py
+++ b/TamTamEdit.activity/Edit/TrackInterface.py
@@ -7,15 +7,15 @@ import gobject
from math import floor
import time
-import Config
+import common.Config as Config
from Edit.NoteInterface import NoteInterface
from Edit.HitInterface import HitInterface
from Edit.MainWindow import CONTEXT
-from Util.NoteDB import PARAMETER
-from Util.CSoundNote import CSoundNote
-from Generation.GenerationConstants import GenerationConstants
-from Util.Profiler import TP
+from common.Util.NoteDB import PARAMETER
+from common.Util.CSoundNote import CSoundNote
+from common.Generation.GenerationConstants import GenerationConstants
+from common.Util.Profiler import TP
class SELECTNOTES:
ALL = -1
diff --git a/TamTamEdit.activity/Edit/TuneInterface.py b/TamTamEdit.activity/Edit/TuneInterface.py
index 3682a57..d29597b 100644
--- a/TamTamEdit.activity/Edit/TuneInterface.py
+++ b/TamTamEdit.activity/Edit/TuneInterface.py
@@ -2,12 +2,12 @@ import pygtk
pygtk.require( '2.0' )
import gtk
-import Config
+import common.Config as Config
-from Util.Profiler import TP
+from common.Util.Profiler import TP
from Edit.MainWindow import CONTEXT
-from Util.NoteDB import PARAMETER
+from common.Util.NoteDB import PARAMETER
class TuneInterfaceParasite:
diff --git a/TamTamEdit.activity/MANIFEST b/TamTamEdit.activity/MANIFEST
new file mode 100644
index 0000000..2d94334
--- /dev/null
+++ b/TamTamEdit.activity/MANIFEST
@@ -0,0 +1,542 @@
+MANIFEST
+NEWS
+setup.py
+TamTamEdit.py
+activity/activity-tamtamedit.svg
+activity/activity.info
+icons/XYBut.svg
+icons/XYButDown.svg
+icons/XYButDownClick.svg
+icons/accept.svg
+icons/add.svg
+icons/arrow-down.svg
+icons/arrow-up.svg
+icons/cancel.svg
+icons/dice.svg
+icons/diceB.svg
+icons/duplicate.svg
+icons/edit-brush.svg
+icons/edit-pencil.svg
+icons/edit-pointer.svg
+icons/grid.svg
+icons/notedur.svg
+icons/props.svg
+icons/recordK.svg
+icons/recordO.svg
+icons/sideR.svg
+icons/sideW.svg
+icons/tam-help.svg
+icons/tempo1.svg
+icons/tempo2.svg
+icons/tempo3.svg
+icons/tempo4.svg
+icons/tempo5.svg
+icons/tempo6.svg
+icons/tempo7.svg
+icons/tempo8.svg
+icons/updownR.svg
+icons/updownW.svg
+icons/voltemp.svg
+icons/volume0.svg
+icons/volume1.svg
+icons/volume2.svg
+icons/volume3.svg
+Edit/EditToolbars.py
+Edit/HitInterface.py
+Edit/KeyboardInput.py
+Edit/MainWindow.py
+Edit/NoteInterface.py
+Edit/Properties.py
+Edit/TrackInterface.py
+Edit/TuneInterface.py
+Edit/__init__.py
+common/Util/Block.py
+common/__init__.py
+common/Config.py
+common/Util/CSoundClient.py
+common/Util/CSoundNote.py
+common/Util/ControlStream.py
+common/Util/Credits.py
+common/Util/InstrumentDB.py
+common/Util/InstrumentPanel.py
+common/Util/Instrument_.py
+common/Util/KeyboardWindow.py
+common/Util/LoopSettings.py
+common/Util/Network.py
+common/Util/NoteDB.py
+common/Util/NoteLooper.py
+common/Util/Profiler.py
+common/Util/Sound.py
+common/Util/ThemeWidgets.py
+common/Util/Trackpad.py
+common/Util/__init__.py
+common/Util/Clooper/Makefile
+common/Util/Clooper/SoundClient.i
+common/Util/Clooper/__init__.py
+common/Util/Clooper/aclient.cpp
+common/Util/Clooper/aclient.so
+common/Util/Clooper/audio.cpp
+common/Util/Clooper/cmd_csound.cpp
+common/Util/Clooper/log.cpp
+common/Util/Clooper/ttest.c
+common/Util/Clooper/ttest.h
+common/Util/Clooper/ttest.i
+common/Util/Clooper/ttest.py
+common/Util/Clooper/ttest_wrap.c
+common/Generation/Drunk.py
+common/Generation/GenerationConstants.py
+common/Generation/GenerationParametersWindow.py
+common/Generation/GenerationPitch.py
+common/Generation/GenerationRythm.py
+common/Generation/Generator.py
+common/Generation/Utils.py
+common/Generation/VariationPitch.py
+common/Generation/VariationRythm.py
+common/Generation/__init__.py
+common/Generation/bList.py
+common/Resources/__init__.py
+common/Resources/crop.csd
+common/Resources/tamtamorc.csd
+common/Resources/tooltips_en.py
+common/Resources/tooltips_fr.py
+common/Resources/Desktops/desktop0
+common/Resources/Desktops/desktop1
+common/Resources/Desktops/desktop2
+common/Resources/Desktops/desktop3
+common/Resources/Desktops/desktop4
+common/Resources/Desktops/desktop5
+common/Resources/Desktops/desktop6
+common/Resources/Desktops/desktop7
+common/Resources/Desktops/desktop8
+common/Resources/Desktops/desktop9
+common/Resources/Images/TamTam.png
+common/Resources/Images/acguit.png
+common/Resources/Images/acguitsel.png
+common/Resources/Images/alarm.png
+common/Resources/Images/alarmsel.png
+common/Resources/Images/all.png
+common/Resources/Images/allsel.png
+common/Resources/Images/animals.png
+common/Resources/Images/animalssel.png
+common/Resources/Images/arrowEditDown.png
+common/Resources/Images/arrowEditDownDown.png
+common/Resources/Images/arrowEditDownOver.png
+common/Resources/Images/arrowEditLeft.png
+common/Resources/Images/arrowEditLeftDown.png
+common/Resources/Images/arrowEditLeftOver.png
+common/Resources/Images/arrowEditRight.png
+common/Resources/Images/arrowEditRightDown.png
+common/Resources/Images/arrowEditRightOver.png
+common/Resources/Images/arrowEditUp.png
+common/Resources/Images/arrowEditUpDown.png
+common/Resources/Images/arrowEditUpOver.png
+common/Resources/Images/basse.png
+common/Resources/Images/bassesel.png
+common/Resources/Images/beat1.png
+common/Resources/Images/beat10.png
+common/Resources/Images/beat11.png
+common/Resources/Images/beat2.png
+common/Resources/Images/beat3.png
+common/Resources/Images/beat4.png
+common/Resources/Images/beat5.png
+common/Resources/Images/beat6.png
+common/Resources/Images/beat7.png
+common/Resources/Images/beat8.png
+common/Resources/Images/beat9.png
+common/Resources/Images/bird.png
+common/Resources/Images/birdsel.png
+common/Resources/Images/bottle.png
+common/Resources/Images/bottlesel.png
+common/Resources/Images/bubbles.png
+common/Resources/Images/bubblessel.png
+common/Resources/Images/byke.png
+common/Resources/Images/bykesel.png
+common/Resources/Images/camera.png
+common/Resources/Images/camerasel.png
+common/Resources/Images/car.png
+common/Resources/Images/carsel.png
+common/Resources/Images/cat.png
+common/Resources/Images/catsel.png
+common/Resources/Images/cello.png
+common/Resources/Images/cellosel.png
+common/Resources/Images/check.png
+common/Resources/Images/checkOff.svg
+common/Resources/Images/checkOn.svg
+common/Resources/Images/chimes.png
+common/Resources/Images/chimessel.png
+common/Resources/Images/clang.png
+common/Resources/Images/clangsel.png
+common/Resources/Images/clarinette.png
+common/Resources/Images/clarinettesel.png
+common/Resources/Images/cling.png
+common/Resources/Images/clingsel.png
+common/Resources/Images/complex1.png
+common/Resources/Images/complex2.png
+common/Resources/Images/complex3.png
+common/Resources/Images/complex4.png
+common/Resources/Images/complex5.png
+common/Resources/Images/complex6.png
+common/Resources/Images/complex7.png
+common/Resources/Images/complex8.png
+common/Resources/Images/concret.png
+common/Resources/Images/concretsel.png
+common/Resources/Images/crash.png
+common/Resources/Images/crashsel.png
+common/Resources/Images/dice.png
+common/Resources/Images/diceProp.png
+common/Resources/Images/dicePropSel.png
+common/Resources/Images/diceblur.png
+common/Resources/Images/diceinst.png
+common/Resources/Images/diceinstsel.png
+common/Resources/Images/didjeridu.png
+common/Resources/Images/didjeridusel.png
+common/Resources/Images/dog.png
+common/Resources/Images/dogsel.png
+common/Resources/Images/door.png
+common/Resources/Images/doorsel.png
+common/Resources/Images/dru0.png
+common/Resources/Images/dru1.png
+common/Resources/Images/dru2.png
+common/Resources/Images/dru3.png
+common/Resources/Images/dru4.png
+common/Resources/Images/drum1kit.png
+common/Resources/Images/drum1kitsel.png
+common/Resources/Images/drum1kitselgen.png
+common/Resources/Images/drum2kit.png
+common/Resources/Images/drum2kitsel.png
+common/Resources/Images/drum2kitselgen.png
+common/Resources/Images/drum3kit.png
+common/Resources/Images/drum3kitsel.png
+common/Resources/Images/drum3kitselgen.png
+common/Resources/Images/drum4kit.png
+common/Resources/Images/drum4kitsel.png
+common/Resources/Images/drum4kitselgen.png
+common/Resources/Images/drum5kit.png
+common/Resources/Images/drum5kitsel.png
+common/Resources/Images/drum5kitselgen.png
+common/Resources/Images/duck.png
+common/Resources/Images/duck2.png
+common/Resources/Images/duck2sel.png
+common/Resources/Images/ducksel.png
+common/Resources/Images/editTam.png
+common/Resources/Images/editTamDown.png
+common/Resources/Images/editTamOver.png
+common/Resources/Images/electronic.png
+common/Resources/Images/electronicsel.png
+common/Resources/Images/flute.png
+common/Resources/Images/flutesel.png
+common/Resources/Images/gam.png
+common/Resources/Images/gamsel.png
+common/Resources/Images/generic.png
+common/Resources/Images/genericsel.png
+common/Resources/Images/guit.png
+common/Resources/Images/guit2.png
+common/Resources/Images/guit2sel.png
+common/Resources/Images/guitsel.png
+common/Resources/Images/harmonica.png
+common/Resources/Images/harmonicasel.png
+common/Resources/Images/harmonium.png
+common/Resources/Images/harmoniumsel.png
+common/Resources/Images/helpShow1.jpg
+common/Resources/Images/helpShow2.jpg
+common/Resources/Images/helpShow3.jpg
+common/Resources/Images/helpShow4.jpg
+common/Resources/Images/helpShow5.jpg
+common/Resources/Images/helpShow6.jpg
+common/Resources/Images/helpShow7.jpg
+common/Resources/Images/helpShow8.jpg
+common/Resources/Images/helpShow9.jpg
+common/Resources/Images/helpTam.png
+common/Resources/Images/helpTamDown.png
+common/Resources/Images/helpTamOver.png
+common/Resources/Images/hit.png
+common/Resources/Images/hitSelected.png
+common/Resources/Images/horse.png
+common/Resources/Images/horsesel.png
+common/Resources/Images/instr0.png
+common/Resources/Images/instr1.png
+common/Resources/Images/instr2.png
+common/Resources/Images/instr3.png
+common/Resources/Images/instr4.png
+common/Resources/Images/jam-blockMask.png
+common/Resources/Images/kalimba.png
+common/Resources/Images/kalimbasel.png
+common/Resources/Images/keyboard.png
+common/Resources/Images/keyboardsel.png
+common/Resources/Images/koto.png
+common/Resources/Images/kotosel.png
+common/Resources/Images/laugh.png
+common/Resources/Images/laughsel.png
+common/Resources/Images/mando.png
+common/Resources/Images/mandosel.png
+common/Resources/Images/marimba.png
+common/Resources/Images/marimbasel.png
+common/Resources/Images/marquis.png
+common/Resources/Images/mic1.png
+common/Resources/Images/mic1sel.png
+common/Resources/Images/mic2.png
+common/Resources/Images/mic2sel.png
+common/Resources/Images/mic3.png
+common/Resources/Images/mic3sel.png
+common/Resources/Images/mic4.png
+common/Resources/Images/mic4sel.png
+common/Resources/Images/miniTam.png
+common/Resources/Images/miniTamDown.png
+common/Resources/Images/miniTamOver.png
+common/Resources/Images/miniplay.png
+common/Resources/Images/mysounds.png
+common/Resources/Images/mysoundssel.png
+common/Resources/Images/note.png
+common/Resources/Images/noteSelected.png
+common/Resources/Images/ocarina.png
+common/Resources/Images/ocarinasel.png
+common/Resources/Images/ounk.png
+common/Resources/Images/ounksel.png
+common/Resources/Images/ow.png
+common/Resources/Images/owsel.png
+common/Resources/Images/pageThumbnailBG.png
+common/Resources/Images/pageThumbnailBG0.png
+common/Resources/Images/pageThumbnailBG1.png
+common/Resources/Images/pageThumbnailBG2.png
+common/Resources/Images/pageThumbnailBG3.png
+common/Resources/Images/pageThumbnailBut0.png
+common/Resources/Images/pageThumbnailBut0Down.png
+common/Resources/Images/pageThumbnailBut1.png
+common/Resources/Images/pageThumbnailBut1Down.png
+common/Resources/Images/pageThumbnailBut2.png
+common/Resources/Images/pageThumbnailBut2Down.png
+common/Resources/Images/pageThumbnailBut3.png
+common/Resources/Images/pageThumbnailBut3Down.png
+common/Resources/Images/pageThumbnailMask.png
+common/Resources/Images/people.png
+common/Resources/Images/peoplesel.png
+common/Resources/Images/percussions.png
+common/Resources/Images/percussionssel.png
+common/Resources/Images/piano.png
+common/Resources/Images/pianosel.png
+common/Resources/Images/plane.png
+common/Resources/Images/planesel.png
+common/Resources/Images/reverb0.png
+common/Resources/Images/reverb1.png
+common/Resources/Images/reverb2.png
+common/Resources/Images/reverb3.png
+common/Resources/Images/reverb4.png
+common/Resources/Images/reverb5.png
+common/Resources/Images/rhodes.png
+common/Resources/Images/rhodessel.png
+common/Resources/Images/sampleBG.png
+common/Resources/Images/sampleNoteMask.png
+common/Resources/Images/saxo.png
+common/Resources/Images/saxosel.png
+common/Resources/Images/scrollBar.png
+common/Resources/Images/sheep.png
+common/Resources/Images/sheepsel.png
+common/Resources/Images/shenai.png
+common/Resources/Images/shenaisel.png
+common/Resources/Images/sitar.png
+common/Resources/Images/sitarsel.png
+common/Resources/Images/slap.png
+common/Resources/Images/slapsel.png
+common/Resources/Images/sliderDrum.png
+common/Resources/Images/sliderEditTempo.png
+common/Resources/Images/sliderEditVolume.png
+common/Resources/Images/sliderInst1.png
+common/Resources/Images/sliderInst2.png
+common/Resources/Images/sliderInst3.png
+common/Resources/Images/sliderInst4.png
+common/Resources/Images/sliderbutbleu.png
+common/Resources/Images/sliderbutjaune.png
+common/Resources/Images/sliderbutred.png
+common/Resources/Images/sliderbutvert.png
+common/Resources/Images/sliderbutviolet.png
+common/Resources/Images/sliderlong.png
+common/Resources/Images/slidershort.png
+common/Resources/Images/stop.png
+common/Resources/Images/strings.png
+common/Resources/Images/stringssel.png
+common/Resources/Images/synthTam.png
+common/Resources/Images/synthTamDown.png
+common/Resources/Images/synthTamOver.png
+common/Resources/Images/synthlabMask.png
+common/Resources/Images/tchiwo.png
+common/Resources/Images/tchiwosel.png
+common/Resources/Images/tempo1.png
+common/Resources/Images/tempo2.png
+common/Resources/Images/tempo3.png
+common/Resources/Images/tempo4.png
+common/Resources/Images/tempo5.png
+common/Resources/Images/tempo6.png
+common/Resources/Images/tempo7.png
+common/Resources/Images/tempo8.png
+common/Resources/Images/trackBG.png
+common/Resources/Images/trackBGDrum.png
+common/Resources/Images/trackBGDrumSelected.png
+common/Resources/Images/trackBGSelected.png
+common/Resources/Images/triangle.png
+common/Resources/Images/trianglesel.png
+common/Resources/Images/trumpet.png
+common/Resources/Images/trumpetsel.png
+common/Resources/Images/tuba.png
+common/Resources/Images/tubasel.png
+common/Resources/Images/violin.png
+common/Resources/Images/violinsel.png
+common/Resources/Images/voix.png
+common/Resources/Images/voixsel.png
+common/Resources/Images/volume0.png
+common/Resources/Images/volume1.png
+common/Resources/Images/volume2.png
+common/Resources/Images/volume3.png
+common/Resources/Images/water.png
+common/Resources/Images/watersel.png
+common/Resources/Images/winds.png
+common/Resources/Images/windssel.png
+common/Resources/Images/zap.png
+common/Resources/Images/zapsel.png
+common/Resources/Loops/loop1.ttl
+common/Resources/Loops/loop2.ttl
+common/Resources/Loops/loop3.ttl
+common/Resources/Sounds/acguit
+common/Resources/Sounds/alarm
+common/Resources/Sounds/banjo
+common/Resources/Sounds/basse
+common/Resources/Sounds/bird
+common/Resources/Sounds/bottle
+common/Resources/Sounds/bubbles
+common/Resources/Sounds/byke
+common/Resources/Sounds/camera
+common/Resources/Sounds/car
+common/Resources/Sounds/cat
+common/Resources/Sounds/cello
+common/Resources/Sounds/chimes
+common/Resources/Sounds/clang
+common/Resources/Sounds/clarinette
+common/Resources/Sounds/cling
+common/Resources/Sounds/crash
+common/Resources/Sounds/diceinst
+common/Resources/Sounds/didjeridu
+common/Resources/Sounds/dog
+common/Resources/Sounds/door
+common/Resources/Sounds/drum1chine
+common/Resources/Sounds/drum1crash
+common/Resources/Sounds/drum1floortom
+common/Resources/Sounds/drum1hardride
+common/Resources/Sounds/drum1hatpedal
+common/Resources/Sounds/drum1hatshoulder
+common/Resources/Sounds/drum1kick
+common/Resources/Sounds/drum1ridebell
+common/Resources/Sounds/drum1snare
+common/Resources/Sounds/drum1snaresidestick
+common/Resources/Sounds/drum1splash
+common/Resources/Sounds/drum1tom
+common/Resources/Sounds/drum2darbukadoom
+common/Resources/Sounds/drum2darbukafinger
+common/Resources/Sounds/drum2darbukapied
+common/Resources/Sounds/drum2darbukapiedsoft
+common/Resources/Sounds/drum2darbukaroll
+common/Resources/Sounds/drum2darbukaslap
+common/Resources/Sounds/drum2darbukatak
+common/Resources/Sounds/drum2hatflanger
+common/Resources/Sounds/drum2hatpied
+common/Resources/Sounds/drum2hatpied2
+common/Resources/Sounds/drum2tambourinepied
+common/Resources/Sounds/drum2tambourinepiedsoft
+common/Resources/Sounds/drum3cowbell
+common/Resources/Sounds/drum3cowbelltip
+common/Resources/Sounds/drum3cup
+common/Resources/Sounds/drum3djembelow
+common/Resources/Sounds/drum3djembemid
+common/Resources/Sounds/drum3djembesidestick
+common/Resources/Sounds/drum3djembeslap
+common/Resources/Sounds/drum3djembestickmid
+common/Resources/Sounds/drum3metalstand
+common/Resources/Sounds/drum3pedalperc
+common/Resources/Sounds/drum3rainstick
+common/Resources/Sounds/drum3tambourinehigh
+common/Resources/Sounds/drum3tambourinelow
+common/Resources/Sounds/drum4afrofeet
+common/Resources/Sounds/drum4fingersn
+common/Resources/Sounds/drum4mutecuic
+common/Resources/Sounds/drum4stompbass
+common/Resources/Sounds/drum4tambouri
+common/Resources/Sounds/drum4tr707clap
+common/Resources/Sounds/drum4tr707open
+common/Resources/Sounds/drum4tr808closed
+common/Resources/Sounds/drum4tr808sn
+common/Resources/Sounds/drum4tr909bass
+common/Resources/Sounds/drum4tr909kick
+common/Resources/Sounds/drum4tr909sn
+common/Resources/Sounds/drum5agogoaigu
+common/Resources/Sounds/drum5agogograve
+common/Resources/Sounds/drum5bongoaiguouvert
+common/Resources/Sounds/drum5bongograveouvert
+common/Resources/Sounds/drum5congaaiguouvert
+common/Resources/Sounds/drum5congagraveferme
+common/Resources/Sounds/drum5congagraveouvert
+common/Resources/Sounds/drum5guiroretour
+common/Resources/Sounds/drum5quicaaigu
+common/Resources/Sounds/drum5quicamedium
+common/Resources/Sounds/drum5timablesaiguslap
+common/Resources/Sounds/drum5timablesslap
+common/Resources/Sounds/drum5vibraslap
+common/Resources/Sounds/duck
+common/Resources/Sounds/duck2
+common/Resources/Sounds/flute
+common/Resources/Sounds/gam
+common/Resources/Sounds/guidice1
+common/Resources/Sounds/guidice10
+common/Resources/Sounds/guidice2
+common/Resources/Sounds/guidice3
+common/Resources/Sounds/guidice4
+common/Resources/Sounds/guidice5
+common/Resources/Sounds/guidice6
+common/Resources/Sounds/guidice7
+common/Resources/Sounds/guidice8
+common/Resources/Sounds/guidice9
+common/Resources/Sounds/guit
+common/Resources/Sounds/guit2
+common/Resources/Sounds/harmonica
+common/Resources/Sounds/harmonium
+common/Resources/Sounds/horse
+common/Resources/Sounds/kalimba
+common/Resources/Sounds/koto
+common/Resources/Sounds/lab1
+common/Resources/Sounds/lab2
+common/Resources/Sounds/lab3
+common/Resources/Sounds/lab4
+common/Resources/Sounds/lab5
+common/Resources/Sounds/lab6
+common/Resources/Sounds/laugh
+common/Resources/Sounds/mando
+common/Resources/Sounds/marimba
+common/Resources/Sounds/mic1
+common/Resources/Sounds/mic2
+common/Resources/Sounds/mic3
+common/Resources/Sounds/mic4
+common/Resources/Sounds/ocarina
+common/Resources/Sounds/ounk
+common/Resources/Sounds/ow
+common/Resources/Sounds/piano
+common/Resources/Sounds/plane
+common/Resources/Sounds/rhodes
+common/Resources/Sounds/saxo
+common/Resources/Sounds/sheep
+common/Resources/Sounds/shenai
+common/Resources/Sounds/sitar
+common/Resources/Sounds/slap
+common/Resources/Sounds/triangle
+common/Resources/Sounds/trumpet
+common/Resources/Sounds/tuba
+common/Resources/Sounds/violin
+common/Resources/Sounds/voix
+common/Resources/Sounds/water
+common/Resources/Sounds/zap
+common/Resources/SynthFiles/synthFile1
+common/Resources/SynthFiles/synthFile2
+common/Resources/SynthFiles/synthFile3
+common/Resources/SynthFiles/synthFile4
+common/Resources/SynthFiles/synthFile5
+common/Resources/SynthFiles/synthFile6
+common/Resources/SynthFiles/synthFile7
+common/Resources/SynthFiles/synthFile8
+common/Resources/SynthFiles/synthFile9
+common/Resources/SynthFiles/synthFile10 \ No newline at end of file
diff --git a/TamTamEdit.activity/TamTam.py b/TamTamEdit.activity/TamTam.py
deleted file mode 100644
index e282df9..0000000
--- a/TamTamEdit.activity/TamTam.py
+++ /dev/null
@@ -1,1229 +0,0 @@
-import locale
-locale.setlocale(locale.LC_NUMERIC, 'C')
-import signal , time , sys , os, shutil
-import pygtk
-pygtk.require( '2.0' )
-import gtk
-
-import gobject
-import time
-
-import Config
-from Util.CSoundClient import new_csound_client
-from Util.Profiler import TP
-
-from Util.InstrumentPanel import InstrumentPanel
-from miniTamTam.miniTamTamMain import miniTamTamMain
-from Jam.JamMain import JamMain
-from Edit.MainWindow import MainWindow
-from Welcome import Welcome
-from SynthLab.SynthLabWindow import SynthLabWindow
-from Util.Trackpad import Trackpad
-from gettext import gettext as _
-#from Util.KeyboardWindow import KeyboardWindow
-import commands
-
-if __name__ != '__main__':
- try:
- from sugar.activity.activity import Activity
- from sugar.activity import activity
- FAKE_ACTIVITY = False
- if Config.DEBUG: print 'using sugar Activity'
- except ImportError:
- from FActivity import FakeActivity as Activity
- FAKE_ACTIVITY = True
- if Config.DEBUG: print 'using fake activity'
-else:
- from FActivity import FakeActivity as Activity
- if Config.DEBUG: print 'using fake activity'
-
-
-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 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)
-
- self.trackpad = Trackpad( self )
- #self.keyboardWindow = KeyboardWindow(size = 8, popup = True)
- #self.keyboardWindow.color_piano()
-
- self.preloadTimeout = None
-
- self.focusInHandler = self.connect('focus_in_event',self.onFocusIn)
- self.focusOutHandler = self.connect('focus_out_event',self.onFocusOut)
- self.connect('notify::active', self.onActive)
- self.connect('destroy', self.onDestroy)
- self.connect( "key-press-event", self.onKeyPress )
- self.connect( "key-release-event", self.onKeyRelease )
- #self.connect( "key-press-event", self.keyboardWindow.handle_keypress)
- #self.connect( "key-release-event", self.keyboardWindow.handle_keyrelease)
- #self.connect( "button-press-event", self.keyboardWindow.handle_mousePress)
- #self.connect( "button-release-event", self.keyboardWindow.handle_mouseRelease)
-
- self.mode = None
- self.modeList = {}
-
- self.instrumentPanel = InstrumentPanel( force_load = False )
- self.preloadList = [ self.instrumentPanel ]
-
- #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
- self.set_mode("mini")
- else:
- self.set_mode(mode)
-
- def onPreloadTimeout( self ):
- if Config.DEBUG > 4: print "TamTam::onPreloadTimeout", self.preloadList
-
- t = time.time()
- if self.preloadList[0].load( t + 0.100 ): # finished preloading this object
- self.preloadList.pop(0)
- if not len(self.preloadList):
- if Config.DEBUG > 1: print "TamTam::finished preloading", time.time() - t
- self.preloadTimeout = False
- return False # finished preloading everything
-
- if Config.DEBUG > 4: print "TamTam::preload returned after", time.time() - t
-
- return True
-
- def doNothing(): #a callback function to appease SynthLab
- pass
-
- def set_mode(self, mode, arg = None):
- if Config.DEBUG: print 'DEBUG: TamTam::set_mode from', self.mode, 'to', mode
-
- if self.mode != None:
- self.modeList[ self.mode ].onDeactivate()
- if FAKE_ACTIVITY:
- self.remove( self.modeList[ self.mode ] )
-
- self.mode = None
- self.trackpad.setContext(mode)
-
- if mode == 'welcome':
- if not (mode in self.modeList):
- self.modeList[mode] = Welcome(self, self.set_mode)
- self.mode = mode
- #if len( self.preloadList ):
- # self.preloadTimeout = gobject.timeout_add( 300, self.onPreloadTimeout )
- elif self.preloadTimeout:
- gobject.source_remove( self.preloadTimeout )
- self.predrawTimeout = False
-
- if mode == 'jam':
- if not (mode in self.modeList):
- self.metadata['title'] = 'TamTam Jam'
- self.modeList[mode] = JamMain(self, self.set_mode)
- self.mode = mode
-
- if mode == 'mini':
- if not (mode in self.modeList):
- self.metadata['title'] = 'TamTam Mini'
- self.modeList[mode] = miniTamTamMain(self, self.set_mode)
- else:
- self.modeList[mode].regenerate()
- if self.instrumentPanel in self.preloadList:
- self.instrumentPanel.load() # finish loading
- self.modeList[mode].setInstrumentPanel( self.instrumentPanel )
- self.mode = mode
-
- if mode == 'edit':
- if not (mode in self.modeList):
- self.metadata['title'] = 'TamTam Edit'
- self.modeList[mode] = MainWindow(self, self.set_mode)
- if self.instrumentPanel in self.preloadList:
- 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'
- self.modeList[mode] = SynthLabWindow(self, self.set_mode, None)
- self.mode = mode
-
- if self.mode == None:
- print 'DEBUG: TamTam::set_mode invalid mode:', mode
- else:
- try: # activity mode
- self.set_canvas( self.modeList[ self.mode ] )
- except: # fake mode
- self.add( self.modeList[ self.mode ] )
- self.modeList[ self.mode ].onActivate(arg)
- self.show()
-
- def onFocusIn(self, event, data=None):
- if Config.DEBUG > 3: print 'DEBUG: TamTam::onFocusOut in TamTam.py'
- csnd = new_csound_client()
- csnd.connect(True)
- if self.mode == 'synth':
- 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()
- csnd.connect(False)
-
- def onActive(self, widget = None, event = None):
- pass
-
- def onKeyPress(self, widget, event):
- if Config.DEBUG > 5: print 'DEBUG: TamTam::onKeyPress in TamTam.py'
- #print "-----", event.keyval, event.string, event.hardware_keycode
- if event.state == gtk.gdk.MOD1_MASK:
- key = event.keyval
- if key == gtk.keysyms.j:
- self.set_mode("jam")
- return
- elif key == gtk.keysyms.m:
- self.set_mode('mini')
- return
- elif key == gtk.keysyms.s:
- self.set_mode('synth')
- return
- elif key == gtk.keysyms.w:
- self.set_mode('welcome')
- return
- elif key == gtk.keysyms.e:
- self.set_mode('edit')
- return
- elif key == gtk.keysyms.t:
- self.toolbox.show()
- return
- elif key == gtk.keysyms.y:
- self.toolbox.hide()
- if self.mode:
- self.modeList[ self.mode ].onKeyPress(widget, event)
-
- def onKeyRelease(self, widget, event):
- if Config.DEBUG > 5: print 'DEBUG: TamTam::onKeyRelease in TamTam.py'
- self.modeList[ self.mode ].onKeyRelease(widget, event)
- pass
-
- def onDestroy(self, arg2):
- if Config.DEBUG: print 'DEBUG: TamTam::onDestroy()'
- os.system('rm -f ' + Config.PREF_DIR + '/synthTemp*')
-
- for m in self.modeList:
- if self.modeList[m] != None:
- self.modeList[m].onDestroy()
-
- csnd = new_csound_client()
- csnd.connect(False)
- csnd.destroy()
-
- gtk.main_quit()
-
- def ensure_dir(self, dir, perms=0777, rw=os.R_OK|os.W_OK):
- if not os.path.isdir( dir ):
- try:
- os.makedirs(dir, perms)
- except OSError, e:
- print 'ERROR: failed to make dir %s: %i (%s)\n' % (dir, e.errno, e.strerror)
- if not os.access(dir, rw):
- print 'ERROR: directory %s is missing required r/w access\n' % dir
-
- def ensure_dirs(self):
- self.ensure_dir(Config.TUNE_DIR)
- self.ensure_dir(Config.SYNTH_DIR)
- self.ensure_dir(Config.SNDS_DIR)
- self.ensure_dir(Config.SCRATCH_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.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' \
- or subactivity_name == 'jam':
- self.set_mode(subactivity_name)
- self.modeList[subactivity_name].handleJournalLoad(file_path)
- elif subactivity_name == 'mini':
- self.set_mode(subactivity_name)
- else:
- return
-
- def write_file(self,file_path):
- if self.mode == 'edit':
- self.metadata['tamtam_subactivity'] = self.mode
- self.modeList[self.mode].handleJournalSave(file_path)
- elif self.mode == 'synth':
- self.metadata['tamtam_subactivity'] = self.mode
- self.modeList[self.mode].handleJournalSave(file_path)
- elif self.mode == 'mini':
- self.metadata['tamtam_subactivity'] = self.mode
- f = open(file_path,'w')
- f.close()
- elif self.mode == 'jam':
- self.metadata['tamtam_subactivity'] = self.mode
- self.modeList[self.mode].handleJournalSave(file_path)
-
-class TamTamJam(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 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 Jam')
- self.set_resizable(False)
-
- self.trackpad = Trackpad( self )
- #self.keyboardWindow = KeyboardWindow(size = 8, popup = True)
- #self.keyboardWindow.color_piano()
-
- self.preloadTimeout = None
-
- self.focusInHandler = self.connect('focus_in_event',self.onFocusIn)
- self.focusOutHandler = self.connect('focus_out_event',self.onFocusOut)
- self.connect('notify::active', self.onActive)
- self.connect('destroy', self.onDestroy)
- self.connect( "key-press-event", self.onKeyPress )
- self.connect( "key-release-event", self.onKeyRelease )
- #self.connect( "key-press-event", self.keyboardWindow.handle_keypress)
- #self.connect( "key-release-event", self.keyboardWindow.handle_keyrelease)
- #self.connect( "button-press-event", self.keyboardWindow.handle_mousePress)
- #self.connect( "button-release-event", self.keyboardWindow.handle_mouseRelease)
-
- self.mode = None
- self.modeList = {}
-
- self.instrumentPanel = InstrumentPanel( force_load = False )
- self.preloadList = [ self.instrumentPanel ]
-
- #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()
-
- self.set_mode("jam")
-
- def onPreloadTimeout( self ):
- if Config.DEBUG > 4: print "TamTam::onPreloadTimeout", self.preloadList
-
- t = time.time()
- if self.preloadList[0].load( t + 0.100 ): # finished preloading this object
- self.preloadList.pop(0)
- if not len(self.preloadList):
- if Config.DEBUG > 1: print "TamTam::finished preloading", time.time() - t
- self.preloadTimeout = False
- return False # finished preloading everything
-
- if Config.DEBUG > 4: print "TamTam::preload returned after", time.time() - t
-
- return True
-
- def doNothing(): #a callback function to appease SynthLab
- pass
-
- def set_mode(self, mode, arg = None):
- if Config.DEBUG: print 'DEBUG: TamTam::set_mode from', self.mode, 'to', mode
-
- if self.mode != None:
- self.modeList[ self.mode ].onDeactivate()
- if FAKE_ACTIVITY:
- self.remove( self.modeList[ self.mode ] )
-
- self.mode = None
- self.trackpad.setContext(mode)
-
- if mode == 'welcome':
- if not (mode in self.modeList):
- self.modeList[mode] = Welcome(self, self.set_mode)
- self.mode = mode
- if len( self.preloadList ):
- self.preloadTimeout = gobject.timeout_add( 300, self.onPreloadTimeout )
- elif self.preloadTimeout:
- gobject.source_remove( self.preloadTimeout )
- self.predrawTimeout = False
-
- if mode == 'jam':
- if not (mode in self.modeList):
- self.metadata['title'] = 'TamTam Jam'
- self.modeList[mode] = JamMain(self, self.set_mode)
- self.mode = mode
-
- if mode == 'mini':
- if not (mode in self.modeList):
- self.metadata['title'] = 'TamTam Mini'
- self.modeList[mode] = miniTamTamMain(self, self.set_mode)
- else:
- self.modeList[mode].regenerate()
- if self.instrumentPanel in self.preloadList:
- self.instrumentPanel.load() # finish loading
- self.modeList[mode].setInstrumentPanel( self.instrumentPanel )
- self.mode = mode
-
- if mode == 'edit':
- if not (mode in self.modeList):
- self.metadata['title'] = 'TamTam Edit'
- self.modeList[mode] = MainWindow(self, self.set_mode)
- if self.instrumentPanel in self.preloadList:
- 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'
- self.modeList[mode] = SynthLabWindow(self, self.set_mode, None)
- self.mode = mode
-
- if self.mode == None:
- print 'DEBUG: TamTam::set_mode invalid mode:', mode
- else:
- try: # activity mode
- self.set_canvas( self.modeList[ self.mode ] )
- except: # fake mode
- self.add( self.modeList[ self.mode ] )
- self.modeList[ self.mode ].onActivate(arg)
- self.show()
-
- def onFocusIn(self, event, data=None):
- if Config.DEBUG > 3: print 'DEBUG: TamTam::onFocusOut in TamTam.py'
- csnd = new_csound_client()
- csnd.connect(True)
- if self.mode == 'synth':
- 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()
- csnd.connect(False)
-
- def onActive(self, widget = None, event = None):
- pass
-
- def onKeyPress(self, widget, event):
- if Config.DEBUG > 5: print 'DEBUG: TamTam::onKeyPress in TamTam.py'
- if event.state == gtk.gdk.MOD1_MASK:
- key = event.keyval
- if key == gtk.keysyms.j:
- self.set_mode("jam")
- return
- elif key == gtk.keysyms.m:
- self.set_mode('mini')
- return
- elif key == gtk.keysyms.s:
- self.set_mode('synth')
- return
- elif key == gtk.keysyms.w:
- self.set_mode('welcome')
- return
- elif key == gtk.keysyms.e:
- self.set_mode('edit')
- return
- elif key == gtk.keysyms.t:
- self.toolbox.show()
- return
- elif key == gtk.keysyms.y:
- self.toolbox.hide()
- if self.mode:
- self.modeList[ self.mode ].onKeyPress(widget, event)
-
- def onKeyRelease(self, widget, event):
- if Config.DEBUG > 5: print 'DEBUG: TamTam::onKeyRelease in TamTam.py'
- self.modeList[ self.mode ].onKeyRelease(widget, event)
- pass
-
- def onDestroy(self, arg2):
- if Config.DEBUG: print 'DEBUG: TamTam::onDestroy()'
- os.system('rm -f ' + Config.PREF_DIR + '/synthTemp*')
-
- for m in self.modeList:
- if self.modeList[m] != None:
- self.modeList[m].onDestroy()
-
- csnd = new_csound_client()
- csnd.connect(False)
- csnd.destroy()
-
- gtk.main_quit()
-
- def ensure_dir(self, dir, perms=0777, rw=os.R_OK|os.W_OK):
- if not os.path.isdir( dir ):
- try:
- os.makedirs(dir, perms)
- except OSError, e:
- print 'ERROR: failed to make dir %s: %i (%s)\n' % (dir, e.errno, e.strerror)
- if not os.access(dir, rw):
- print 'ERROR: directory %s is missing required r/w access\n' % dir
-
- def ensure_dirs(self):
- self.ensure_dir(Config.TUNE_DIR)
- self.ensure_dir(Config.SYNTH_DIR)
- self.ensure_dir(Config.SNDS_DIR)
- self.ensure_dir(Config.SCRATCH_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.SNDS_DIR + '/' + snd)
- os.system('chmod 0777 ' + Config.SNDS_DIR + '/' + snd + ' &')
-
- def read_file(self,file_path):
- self.modeList['jam'].handleJournalLoad(file_path)
-
- def write_file(self,file_path):
- self.modeList['jam'].handleJournalSave(file_path)
-
-class TamTamEdit(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 synth lab
- # - edit mode
-
- def __init__(self, handle, mode='edit'):
- 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 Edit')
- self.set_resizable(False)
-
- self.trackpad = Trackpad( self )
- #self.keyboardWindow = KeyboardWindow(size = 8, popup = True)
- #self.keyboardWindow.color_piano()
-
- self.preloadTimeout = None
-
- self.focusInHandler = self.connect('focus_in_event',self.onFocusIn)
- self.focusOutHandler = self.connect('focus_out_event',self.onFocusOut)
- self.connect('notify::active', self.onActive)
- self.connect('destroy', self.onDestroy)
- self.connect( "key-press-event", self.onKeyPress )
- self.connect( "key-release-event", self.onKeyRelease )
- #self.connect( "key-press-event", self.keyboardWindow.handle_keypress)
- #self.connect( "key-release-event", self.keyboardWindow.handle_keyrelease)
- #self.connect( "button-press-event", self.keyboardWindow.handle_mousePress)
- #self.connect( "button-release-event", self.keyboardWindow.handle_mouseRelease)
-
- self.mode = None
- self.modeList = {}
-
- self.instrumentPanel = InstrumentPanel( force_load = False )
- self.preloadList = [ self.instrumentPanel ]
-
- #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()
-
- self.set_mode("edit")
-
- def onPreloadTimeout( self ):
- if Config.DEBUG > 4: print "TamTam::onPreloadTimeout", self.preloadList
-
- t = time.time()
- if self.preloadList[0].load( t + 0.100 ): # finished preloading this object
- self.preloadList.pop(0)
- if not len(self.preloadList):
- if Config.DEBUG > 1: print "TamTam::finished preloading", time.time() - t
- self.preloadTimeout = False
- return False # finished preloading everything
-
- if Config.DEBUG > 4: print "TamTam::preload returned after", time.time() - t
-
- return True
-
- def doNothing(): #a callback function to appease SynthLab
- pass
-
- def set_mode(self, mode, arg = None):
- if Config.DEBUG: print 'DEBUG: TamTam::set_mode from', self.mode, 'to', mode
-
- if self.mode != None:
- self.modeList[ self.mode ].onDeactivate()
- if FAKE_ACTIVITY:
- self.remove( self.modeList[ self.mode ] )
-
- self.mode = None
- self.trackpad.setContext(mode)
-
- if mode == 'welcome':
- if not (mode in self.modeList):
- self.modeList[mode] = Welcome(self, self.set_mode)
- self.mode = mode
- if len( self.preloadList ):
- self.preloadTimeout = gobject.timeout_add( 300, self.onPreloadTimeout )
- elif self.preloadTimeout:
- gobject.source_remove( self.preloadTimeout )
- self.predrawTimeout = False
-
- if mode == 'jam':
- if not (mode in self.modeList):
- self.metadata['title'] = 'TamTam Jam'
- self.modeList[mode] = JamMain(self, self.set_mode)
- self.mode = mode
-
- if mode == 'mini':
- if not (mode in self.modeList):
- self.metadata['title'] = 'TamTam Mini'
- self.modeList[mode] = miniTamTamMain(self, self.set_mode)
- else:
- self.modeList[mode].regenerate()
- if self.instrumentPanel in self.preloadList:
- self.instrumentPanel.load() # finish loading
- self.modeList[mode].setInstrumentPanel( self.instrumentPanel )
- self.mode = mode
-
- if mode == 'edit':
- if not (mode in self.modeList):
- self.metadata['title'] = 'TamTam Edit'
- self.modeList[mode] = MainWindow(self, self.set_mode)
- if self.instrumentPanel in self.preloadList:
- 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'
- self.modeList[mode] = SynthLabWindow(self, self.set_mode, None)
- self.mode = mode
-
- if self.mode == None:
- print 'DEBUG: TamTam::set_mode invalid mode:', mode
- else:
- try: # activity mode
- self.set_canvas( self.modeList[ self.mode ] )
- except: # fake mode
- self.add( self.modeList[ self.mode ] )
- self.modeList[ self.mode ].onActivate(arg)
- self.show()
-
- def onFocusIn(self, event, data=None):
- if Config.DEBUG > 3: print 'DEBUG: TamTam::onFocusOut in TamTam.py'
- csnd = new_csound_client()
- csnd.connect(True)
- if self.mode == 'synth':
- 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()
- csnd.connect(False)
-
- def onActive(self, widget = None, event = None):
- pass
-
- def onKeyPress(self, widget, event):
- if Config.DEBUG > 5: print 'DEBUG: TamTam::onKeyPress in TamTam.py'
- if event.state == gtk.gdk.MOD1_MASK:
- key = event.keyval
- if key == gtk.keysyms.j:
- self.set_mode("jam")
- return
- elif key == gtk.keysyms.m:
- self.set_mode('mini')
- return
- elif key == gtk.keysyms.s:
- self.set_mode('synth')
- return
- elif key == gtk.keysyms.w:
- self.set_mode('welcome')
- return
- elif key == gtk.keysyms.e:
- self.set_mode('edit')
- return
- elif key == gtk.keysyms.t:
- self.toolbox.show()
- return
- elif key == gtk.keysyms.y:
- self.toolbox.hide()
- if self.mode:
- self.modeList[ self.mode ].onKeyPress(widget, event)
-
- def onKeyRelease(self, widget, event):
- if Config.DEBUG > 5: print 'DEBUG: TamTam::onKeyRelease in TamTam.py'
- self.modeList[ self.mode ].onKeyRelease(widget, event)
- pass
-
- def onDestroy(self, arg2):
- if Config.DEBUG: print 'DEBUG: TamTam::onDestroy()'
- os.system('rm -f ' + Config.PREF_DIR + '/synthTemp*')
-
- for m in self.modeList:
- if self.modeList[m] != None:
- self.modeList[m].onDestroy()
-
- csnd = new_csound_client()
- csnd.connect(False)
- csnd.destroy()
-
- gtk.main_quit()
-
- def ensure_dir(self, dir, perms=0777, rw=os.R_OK|os.W_OK):
- if not os.path.isdir( dir ):
- try:
- os.makedirs(dir, perms)
- except OSError, e:
- print 'ERROR: failed to make dir %s: %i (%s)\n' % (dir, e.errno, e.strerror)
- if not os.access(dir, rw):
- print 'ERROR: directory %s is missing required r/w access\n' % dir
-
- def ensure_dirs(self):
- self.ensure_dir(Config.TUNE_DIR)
- self.ensure_dir(Config.SYNTH_DIR)
- self.ensure_dir(Config.SNDS_DIR)
- self.ensure_dir(Config.SCRATCH_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.SNDS_DIR + '/' + snd)
- os.system('chmod 0777 ' + Config.SNDS_DIR + '/' + snd + ' &')
-
- def read_file(self,file_path):
- self.modeList['edit'].handleJournalLoad(file_path)
-
- def write_file(self,file_path):
- self.modeList['edit'].handleJournalSave(file_path)
-
-class TamTamSynthLab(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 synth lab
- # - edit mode
-
- def __init__(self, handle, mode='synth'):
- 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 SynthLab')
- self.set_resizable(False)
-
- self.trackpad = Trackpad( self )
- #self.keyboardWindow = KeyboardWindow(size = 8, popup = True)
- #self.keyboardWindow.color_piano()
-
- self.preloadTimeout = None
-
- self.focusInHandler = self.connect('focus_in_event',self.onFocusIn)
- self.focusOutHandler = self.connect('focus_out_event',self.onFocusOut)
- self.connect('notify::active', self.onActive)
- self.connect('destroy', self.onDestroy)
- self.connect( "key-press-event", self.onKeyPress )
- self.connect( "key-release-event", self.onKeyRelease )
- #self.connect( "key-press-event", self.keyboardWindow.handle_keypress)
- #self.connect( "key-release-event", self.keyboardWindow.handle_keyrelease)
- #self.connect( "button-press-event", self.keyboardWindow.handle_mousePress)
- #self.connect( "button-release-event", self.keyboardWindow.handle_mouseRelease)
-
- self.mode = None
- self.modeList = {}
-
- self.instrumentPanel = InstrumentPanel( force_load = False )
- self.preloadList = [ self.instrumentPanel ]
-
- #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()
-
- self.set_mode("synth")
-
- def onPreloadTimeout( self ):
- if Config.DEBUG > 4: print "TamTam::onPreloadTimeout", self.preloadList
-
- t = time.time()
- if self.preloadList[0].load( t + 0.100 ): # finished preloading this object
- self.preloadList.pop(0)
- if not len(self.preloadList):
- if Config.DEBUG > 1: print "TamTam::finished preloading", time.time() - t
- self.preloadTimeout = False
- return False # finished preloading everything
-
- if Config.DEBUG > 4: print "TamTam::preload returned after", time.time() - t
-
- return True
-
- def doNothing(): #a callback function to appease SynthLab
- pass
-
- def set_mode(self, mode, arg = None):
- if Config.DEBUG: print 'DEBUG: TamTam::set_mode from', self.mode, 'to', mode
-
- if self.mode != None:
- self.modeList[ self.mode ].onDeactivate()
- if FAKE_ACTIVITY:
- self.remove( self.modeList[ self.mode ] )
-
- self.mode = None
- self.trackpad.setContext(mode)
-
- if mode == 'welcome':
- if not (mode in self.modeList):
- self.modeList[mode] = Welcome(self, self.set_mode)
- self.mode = mode
- if len( self.preloadList ):
- self.preloadTimeout = gobject.timeout_add( 300, self.onPreloadTimeout )
- elif self.preloadTimeout:
- gobject.source_remove( self.preloadTimeout )
- self.predrawTimeout = False
-
- if mode == 'jam':
- if not (mode in self.modeList):
- self.metadata['title'] = 'TamTam Jam'
- self.modeList[mode] = JamMain(self, self.set_mode)
- self.mode = mode
-
- if mode == 'mini':
- if not (mode in self.modeList):
- self.metadata['title'] = 'TamTam Mini'
- self.modeList[mode] = miniTamTamMain(self, self.set_mode)
- else:
- self.modeList[mode].regenerate()
- if self.instrumentPanel in self.preloadList:
- self.instrumentPanel.load() # finish loading
- self.modeList[mode].setInstrumentPanel( self.instrumentPanel )
- self.mode = mode
-
- if mode == 'edit':
- if not (mode in self.modeList):
- self.metadata['title'] = 'TamTam Edit'
- self.modeList[mode] = MainWindow(self, self.set_mode)
- if self.instrumentPanel in self.preloadList:
- 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'
- self.modeList[mode] = SynthLabWindow(self, self.set_mode, None)
- self.mode = mode
-
- if self.mode == None:
- print 'DEBUG: TamTam::set_mode invalid mode:', mode
- else:
- try: # activity mode
- self.set_canvas( self.modeList[ self.mode ] )
- except: # fake mode
- self.add( self.modeList[ self.mode ] )
- self.modeList[ self.mode ].onActivate(arg)
- self.show()
-
- def onFocusIn(self, event, data=None):
- if Config.DEBUG > 3: print 'DEBUG: TamTam::onFocusOut in TamTam.py'
- csnd = new_csound_client()
- csnd.connect(True)
- if self.mode == 'synth':
- 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()
- csnd.connect(False)
-
- def onActive(self, widget = None, event = None):
- pass
-
- def onKeyPress(self, widget, event):
- if Config.DEBUG > 5: print 'DEBUG: TamTam::onKeyPress in TamTam.py'
- if event.state == gtk.gdk.MOD1_MASK:
- key = event.keyval
- if key == gtk.keysyms.j:
- self.set_mode("jam")
- return
- elif key == gtk.keysyms.m:
- self.set_mode('mini')
- return
- elif key == gtk.keysyms.s:
- self.set_mode('synth')
- return
- elif key == gtk.keysyms.w:
- self.set_mode('welcome')
- return
- elif key == gtk.keysyms.e:
- self.set_mode('edit')
- return
- elif key == gtk.keysyms.t:
- self.toolbox.show()
- return
- elif key == gtk.keysyms.y:
- self.toolbox.hide()
- if self.mode:
- self.modeList[ self.mode ].onKeyPress(widget, event)
-
- def onKeyRelease(self, widget, event):
- if Config.DEBUG > 5: print 'DEBUG: TamTam::onKeyRelease in TamTam.py'
- self.modeList[ self.mode ].onKeyRelease(widget, event)
- pass
-
- def onDestroy(self, arg2):
- if Config.DEBUG: print 'DEBUG: TamTam::onDestroy()'
- os.system('rm -f ' + Config.PREF_DIR + '/synthTemp*')
-
- for m in self.modeList:
- if self.modeList[m] != None:
- self.modeList[m].onDestroy()
-
- csnd = new_csound_client()
- csnd.connect(False)
- csnd.destroy()
-
- gtk.main_quit()
-
- def ensure_dir(self, dir, perms=0777, rw=os.R_OK|os.W_OK):
- if not os.path.isdir( dir ):
- try:
- os.makedirs(dir, perms)
- except OSError, e:
- print 'ERROR: failed to make dir %s: %i (%s)\n' % (dir, e.errno, e.strerror)
- if not os.access(dir, rw):
- print 'ERROR: directory %s is missing required r/w access\n' % dir
-
- def ensure_dirs(self):
- self.ensure_dir(Config.TUNE_DIR)
- self.ensure_dir(Config.SYNTH_DIR)
- self.ensure_dir(Config.SNDS_DIR)
- self.ensure_dir(Config.SCRATCH_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.SNDS_DIR + '/' + snd)
- os.system('chmod 0777 ' + Config.SNDS_DIR + '/' + snd + ' &')
-
- def read_file(self,file_path):
- self.modeList['synth'].handleJournalLoad(file_path)
-
- def write_file(self,file_path):
- self.modeList['synth'].handleJournalSave(file_path)
-
-class TamTamMini(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 synth lab
- # - edit mode
-
- def __init__(self, handle, mode='mini'):
- 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 Mini')
- self.set_resizable(False)
-
- self.trackpad = Trackpad( self )
- #self.keyboardWindow = KeyboardWindow(size = 8, popup = True)
- #self.keyboardWindow.color_piano()
-
- self.preloadTimeout = None
-
- self.focusInHandler = self.connect('focus_in_event',self.onFocusIn)
- self.focusOutHandler = self.connect('focus_out_event',self.onFocusOut)
- self.connect('notify::active', self.onActive)
- self.connect('destroy', self.onDestroy)
- self.connect( "key-press-event", self.onKeyPress )
- self.connect( "key-release-event", self.onKeyRelease )
- #self.connect( "key-press-event", self.keyboardWindow.handle_keypress)
- #self.connect( "key-release-event", self.keyboardWindow.handle_keyrelease)
- #self.connect( "button-press-event", self.keyboardWindow.handle_mousePress)
- #self.connect( "button-release-event", self.keyboardWindow.handle_mouseRelease)
-
- self.mode = None
- self.modeList = {}
-
- self.instrumentPanel = InstrumentPanel( force_load = False )
- self.preloadList = [ self.instrumentPanel ]
-
- #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()
-
- self.set_mode("mini")
-
- def onPreloadTimeout( self ):
- if Config.DEBUG > 4: print "TamTam::onPreloadTimeout", self.preloadList
-
- t = time.time()
- if self.preloadList[0].load( t + 0.100 ): # finished preloading this object
- self.preloadList.pop(0)
- if not len(self.preloadList):
- if Config.DEBUG > 1: print "TamTam::finished preloading", time.time() - t
- self.preloadTimeout = False
- return False # finished preloading everything
-
- if Config.DEBUG > 4: print "TamTam::preload returned after", time.time() - t
-
- return True
-
- def doNothing(): #a callback function to appease SynthLab
- pass
-
- def set_mode(self, mode, arg = None):
- if Config.DEBUG: print 'DEBUG: TamTam::set_mode from', self.mode, 'to', mode
-
- if self.mode != None:
- self.modeList[ self.mode ].onDeactivate()
- if FAKE_ACTIVITY:
- self.remove( self.modeList[ self.mode ] )
-
- self.mode = None
- self.trackpad.setContext(mode)
-
- if mode == 'welcome':
- if not (mode in self.modeList):
- self.modeList[mode] = Welcome(self, self.set_mode)
- self.mode = mode
- if len( self.preloadList ):
- self.preloadTimeout = gobject.timeout_add( 300, self.onPreloadTimeout )
- elif self.preloadTimeout:
- gobject.source_remove( self.preloadTimeout )
- self.predrawTimeout = False
-
- if mode == 'jam':
- if not (mode in self.modeList):
- self.metadata['title'] = 'TamTam Jam'
- self.modeList[mode] = JamMain(self, self.set_mode)
- self.mode = mode
-
- if mode == 'mini':
- if not (mode in self.modeList):
- self.metadata['title'] = 'TamTam Mini'
- self.modeList[mode] = miniTamTamMain(self, self.set_mode)
- else:
- self.modeList[mode].regenerate()
- if self.instrumentPanel in self.preloadList:
- self.instrumentPanel.load() # finish loading
- self.modeList[mode].setInstrumentPanel( self.instrumentPanel )
- self.mode = mode
-
- if mode == 'edit':
- if not (mode in self.modeList):
- self.metadata['title'] = 'TamTam Edit'
- self.modeList[mode] = MainWindow(self, self.set_mode)
- if self.instrumentPanel in self.preloadList:
- 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'
- self.modeList[mode] = SynthLabWindow(self, self.set_mode, None)
- self.mode = mode
-
- if self.mode == None:
- print 'DEBUG: TamTam::set_mode invalid mode:', mode
- else:
- try: # activity mode
- self.set_canvas( self.modeList[ self.mode ] )
- except: # fake mode
- self.add( self.modeList[ self.mode ] )
- self.modeList[ self.mode ].onActivate(arg)
- self.show()
-
- def onFocusIn(self, event, data=None):
- if Config.DEBUG > 3: print 'DEBUG: TamTam::onFocusOut in TamTam.py'
- csnd = new_csound_client()
- csnd.connect(True)
- if self.mode == 'synth':
- 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()
- csnd.connect(False)
-
- def onActive(self, widget = None, event = None):
- pass
-
- def onKeyPress(self, widget, event):
- if Config.DEBUG > 5: print 'DEBUG: TamTam::onKeyPress in TamTam.py'
- if event.state == gtk.gdk.MOD1_MASK:
- key = event.keyval
- if key == gtk.keysyms.j:
- self.set_mode("jam")
- return
- elif key == gtk.keysyms.m:
- self.set_mode('mini')
- return
- elif key == gtk.keysyms.s:
- self.set_mode('synth')
- return
- elif key == gtk.keysyms.w:
- self.set_mode('welcome')
- return
- elif key == gtk.keysyms.e:
- self.set_mode('edit')
- return
- elif key == gtk.keysyms.t:
- self.toolbox.show()
- return
- elif key == gtk.keysyms.y:
- self.toolbox.hide()
- if self.mode:
- self.modeList[ self.mode ].onKeyPress(widget, event)
-
- def onKeyRelease(self, widget, event):
- if Config.DEBUG > 5: print 'DEBUG: TamTam::onKeyRelease in TamTam.py'
- self.modeList[ self.mode ].onKeyRelease(widget, event)
- pass
-
- def onDestroy(self, arg2):
- if Config.DEBUG: print 'DEBUG: TamTam::onDestroy()'
- os.system('rm -f ' + Config.PREF_DIR + '/synthTemp*')
-
- for m in self.modeList:
- if self.modeList[m] != None:
- self.modeList[m].onDestroy()
-
- csnd = new_csound_client()
- csnd.connect(False)
- csnd.destroy()
-
- gtk.main_quit()
-
- def ensure_dir(self, dir, perms=0777, rw=os.R_OK|os.W_OK):
- if not os.path.isdir( dir ):
- try:
- os.makedirs(dir, perms)
- except OSError, e:
- print 'ERROR: failed to make dir %s: %i (%s)\n' % (dir, e.errno, e.strerror)
- if not os.access(dir, rw):
- print 'ERROR: directory %s is missing required r/w access\n' % dir
-
- def ensure_dirs(self):
- self.ensure_dir(Config.TUNE_DIR)
- self.ensure_dir(Config.SYNTH_DIR)
- self.ensure_dir(Config.SNDS_DIR)
- self.ensure_dir(Config.SCRATCH_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.SNDS_DIR + '/' + snd)
- os.system('chmod 0777 ' + Config.SNDS_DIR + '/' + snd + ' &')
-
- def read_file(self,file_path):
- self.metadata['tamtam_subactivity'] = 'mini'
-
- def write_file(self,file_path):
- f = open(file_path,'w')
- f.close()
-
-
-
-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)
-
-
-
-
-
-
-
-
- def run_edit_mode():
- tamtam = MainWindow()
- mainwin = gtk.Window(gtk.WINDOW_TOPLEVEL)
- mainwin.set_title('TamTam Player')
- display = mainwin.get_display()
- screen = gtk.gdk.Display.get_default_screen(display)
- mainwin.set_geometry_hints( None, screen.get_width(), screen.get_height(), screen.get_width(), screen.get_height(), screen.get_width(), screen.get_height() )
- #mainwin.fullscreen() # don't need to specify full screen, it seem to sit properly anyway
- mainwin.set_resizable(False)
- mainwin.connect('destroy' , tamtam.destroy )
- #mainwin.connect( "configure-event", tamtam.handleConfigureEvent )
- mainwin.connect( "key-press-event", tamtam.onKeyPress )
- mainwin.connect( "key-release-event", tamtam.onKeyRelease )
- mainwin.connect( "delete_event", tamtam.delete_event )
- mainwin.add(tamtam)
- tamtam.show()
- mainwin.show()
- gtk.main()
diff --git a/TamTamEdit.activity/TamTamEdit.py b/TamTamEdit.activity/TamTamEdit.py
new file mode 100644
index 0000000..0147dff
--- /dev/null
+++ b/TamTamEdit.activity/TamTamEdit.py
@@ -0,0 +1,144 @@
+import locale
+locale.setlocale(locale.LC_NUMERIC, 'C')
+import signal , time , sys , os, shutil
+import pygtk
+pygtk.require( '2.0' )
+import gtk
+
+import gobject
+import time
+
+import common.Config as Config
+from common.Util.CSoundClient import new_csound_client
+from common.Util.Profiler import TP
+
+from common.Util.InstrumentPanel import InstrumentPanel
+from Edit.MainWindow import MainWindow
+from common.Util.Trackpad import Trackpad
+from gettext import gettext as _
+import commands
+from sugar.activity import activity
+
+class TamTamEdit(activity.Activity):
+ def __init__(self, handle):
+ activity.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 Mini')
+ self.set_resizable(False)
+
+ self.trackpad = Trackpad( self )
+
+ self.preloadTimeout = None
+
+ self.focusInHandler = self.connect('focus_in_event',self.onFocusIn)
+ self.focusOutHandler = self.connect('focus_out_event',self.onFocusOut)
+ self.connect('notify::active', self.onActive)
+ self.connect('destroy', self.onDestroy)
+ self.connect( "key-press-event", self.onKeyPress )
+ self.connect( "key-release-event", self.onKeyRelease )
+
+
+ self.instrumentPanel = InstrumentPanel( force_load = False )
+ self.preloadList = [ self.instrumentPanel ]
+
+ #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()
+
+ self.trackpad.setContext('edit')
+ self.edit = MainWindow(self)
+ #self.modeList[mode].regenerate()
+ if self.instrumentPanel in self.preloadList:
+ self.instrumentPanel.load() # finish loading
+ self.edit.setInstrumentPanel( self.instrumentPanel )
+
+ self.set_canvas( self.edit )
+
+ self.edit.onActivate(arg = None)
+ self.show()
+
+ def onPreloadTimeout( self ):
+ if Config.DEBUG > 4: print "TamTam::onPreloadTimeout", self.preloadList
+
+ t = time.time()
+ if self.preloadList[0].load( t + 0.100 ): # finished preloading this object
+ self.preloadList.pop(0)
+ if not len(self.preloadList):
+ if Config.DEBUG > 1: print "TamTam::finished preloading", time.time() - t
+ self.preloadTimeout = False
+ return False # finished preloading everything
+
+ if Config.DEBUG > 4: print "TamTam::preload returned after", time.time() - t
+
+ return True
+
+ def onFocusIn(self, event, data=None):
+ if Config.DEBUG > 3: print 'DEBUG: TamTam::onFocusOut in TamTam.py'
+ csnd = new_csound_client()
+ csnd.connect(True)
+ #csnd.load_instruments()
+
+ def onFocusOut(self, event, data=None):
+ if Config.DEBUG > 3: print 'DEBUG: TamTam::onFocusOut in TamTam.py'
+ csnd = new_csound_client()
+ csnd.connect(False)
+
+ def onActive(self, widget = None, event = None):
+ pass
+
+ def onKeyPress(self, widget, event):
+ pass
+
+ def onKeyRelease(self, widget, event):
+ pass
+
+ def onDestroy(self, arg2):
+ if Config.DEBUG: print 'DEBUG: TamTam::onDestroy()'
+ os.system('rm -f ' + Config.PREF_DIR + '/synthTemp*')
+
+ self.mini.onDestroy()
+
+ csnd = new_csound_client()
+ csnd.connect(False)
+ csnd.destroy()
+
+ gtk.main_quit()
+
+ def ensure_dir(self, dir, perms=0777, rw=os.R_OK|os.W_OK):
+ if not os.path.isdir( dir ):
+ try:
+ os.makedirs(dir, perms)
+ except OSError, e:
+ print 'ERROR: failed to make dir %s: %i (%s)\n' % (dir, e.errno, e.strerror)
+ if not os.access(dir, rw):
+ print 'ERROR: directory %s is missing required r/w access\n' % dir
+
+ def ensure_dirs(self):
+ self.ensure_dir(Config.TUNE_DIR)
+ self.ensure_dir(Config.SYNTH_DIR)
+ self.ensure_dir(Config.SNDS_DIR)
+ self.ensure_dir(Config.SCRATCH_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.SNDS_DIR + '/' + snd)
+ os.system('chmod 0777 ' + Config.SNDS_DIR + '/' + snd + ' &')
+
+ def read_file(self,file_path):
+ self.metadata['tamtam_subactivity'] = 'mini'
+
+ def write_file(self,file_path):
+ f = open(file_path,'w')
+ f.close()
diff --git a/TamTamEdit.activity/activity/activity.info b/TamTamEdit.activity/activity/activity.info
index 65e5044..275a2c4 100644
--- a/TamTamEdit.activity/activity/activity.info
+++ b/TamTamEdit.activity/activity/activity.info
@@ -2,5 +2,5 @@
name = TamTamEdit
service_name = org.laptop.TamTamEdit
icon = activity-tamtamedit
-class = TamTam.TamTamEdit
+class = TamTamEdit.TamTamEdit
activity_version = 40
diff --git a/TamTamEdit.activity/po/TamTamEdit.pot b/TamTamEdit.activity/po/TamTamEdit.pot
new file mode 100644
index 0000000..bafa34f
--- /dev/null
+++ b/TamTamEdit.activity/po/TamTamEdit.pot
@@ -0,0 +1,632 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-09-17 12:45-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: activity/activity.info:2
+msgid "TamTamEdit"
+msgstr ""
+
+#: Edit/EditToolbars.py:52 Edit/EditToolbars.py:189
+msgid "Play / Pause"
+msgstr ""
+
+#: Edit/EditToolbars.py:59 Edit/EditToolbars.py:196
+#: common/Resources/tooltips_en.py:42 common/Resources/tooltips_en.py:115
+msgid "Stop"
+msgstr ""
+
+#: Edit/EditToolbars.py:76
+msgid "Record keyboard"
+msgstr ""
+
+#: Edit/EditToolbars.py:83
+msgid "Record to ogg"
+msgstr ""
+
+#: Edit/EditToolbars.py:88
+msgid "Select Tool"
+msgstr ""
+
+#: Edit/EditToolbars.py:98
+msgid "Draw Tool"
+msgstr ""
+
+#: Edit/EditToolbars.py:108
+msgid "Paint Tool"
+msgstr ""
+
+#: Edit/EditToolbars.py:124
+msgid "Duplicate"
+msgstr ""
+
+#: Edit/EditToolbars.py:127
+msgid "Volume / Tempo"
+msgstr ""
+
+#: Edit/EditToolbars.py:215
+msgid "Generate Tune"
+msgstr ""
+
+#: Edit/EditToolbars.py:218 Edit/EditToolbars.py:1011
+msgid "Generation"
+msgstr ""
+
+#: Edit/EditToolbars.py:228
+msgid "Properties"
+msgstr ""
+
+#: Edit/EditToolbars.py:272 Edit/EditToolbars.py:306 Edit/EditToolbars.py:340
+#: Edit/EditToolbars.py:353
+msgid "1/12"
+msgstr ""
+
+#: Edit/EditToolbars.py:272 Edit/EditToolbars.py:306 Edit/EditToolbars.py:340
+#: Edit/EditToolbars.py:353
+msgid "1/6"
+msgstr ""
+
+#: Edit/EditToolbars.py:272 Edit/EditToolbars.py:306 Edit/EditToolbars.py:340
+#: Edit/EditToolbars.py:353
+msgid "1/4"
+msgstr ""
+
+#: Edit/EditToolbars.py:272 Edit/EditToolbars.py:306 Edit/EditToolbars.py:340
+#: Edit/EditToolbars.py:353
+msgid "1/3"
+msgstr ""
+
+#: Edit/EditToolbars.py:272 Edit/EditToolbars.py:306 Edit/EditToolbars.py:340
+#: Edit/EditToolbars.py:353
+msgid "1/2"
+msgstr ""
+
+#: Edit/EditToolbars.py:272 Edit/EditToolbars.py:306 Edit/EditToolbars.py:340
+#: Edit/EditToolbars.py:353
+msgid "1"
+msgstr ""
+
+#: Edit/EditToolbars.py:272 Edit/EditToolbars.py:306 Edit/EditToolbars.py:340
+#: Edit/EditToolbars.py:353
+msgid "2"
+msgstr ""
+
+#: Edit/EditToolbars.py:397 common/Resources/tooltips_en.py:111
+msgid "Volume"
+msgstr ""
+
+#: Edit/EditToolbars.py:408 common/Resources/tooltips_en.py:49
+#: common/Resources/tooltips_en.py:120
+msgid "Tempo"
+msgstr ""
+
+#: Edit/EditToolbars.py:447
+msgid "Rythm"
+msgstr ""
+
+#: Edit/EditToolbars.py:451
+msgid "Density"
+msgstr ""
+
+#: Edit/EditToolbars.py:455 Edit/EditToolbars.py:478
+msgid "Regularity"
+msgstr ""
+
+#: Edit/EditToolbars.py:474
+msgid "Pitch"
+msgstr ""
+
+#: Edit/EditToolbars.py:482
+msgid "Maximum step"
+msgstr ""
+
+#: Edit/EditToolbars.py:501
+msgid "Duration"
+msgstr ""
+
+#: Edit/EditToolbars.py:505
+msgid "Note duration"
+msgstr ""
+
+#: Edit/EditToolbars.py:509
+msgid "Silence density"
+msgstr ""
+
+#: Edit/EditToolbars.py:539
+msgid "Scale: "
+msgstr ""
+
+#: Edit/EditToolbars.py:541 common/Resources/tooltips_en.py:65
+msgid "Major scale"
+msgstr ""
+
+#: Edit/EditToolbars.py:541 common/Resources/tooltips_en.py:66
+msgid "Harmonic minor scale"
+msgstr ""
+
+#: Edit/EditToolbars.py:541 common/Resources/tooltips_en.py:67
+msgid "Natural minor scale"
+msgstr ""
+
+#: Edit/EditToolbars.py:541 common/Resources/tooltips_en.py:68
+msgid "Phrygian scale"
+msgstr ""
+
+#: Edit/EditToolbars.py:541 common/Resources/tooltips_en.py:69
+msgid "Dorian scale"
+msgstr ""
+
+#: Edit/EditToolbars.py:541 common/Resources/tooltips_en.py:70
+msgid "Lydian scale"
+msgstr ""
+
+#: Edit/EditToolbars.py:541
+msgid "Myxolidian scale"
+msgstr ""
+
+#: Edit/EditToolbars.py:547
+msgid "Mode: "
+msgstr ""
+
+#: Edit/EditToolbars.py:549 Edit/EditToolbars.py:849
+#: common/Resources/tooltips_en.py:61 common/Resources/tooltips_en.py:98
+msgid "Drunk"
+msgstr ""
+
+#: Edit/EditToolbars.py:549 Edit/EditToolbars.py:849
+#: common/Resources/tooltips_en.py:62
+msgid "Drone and Jump"
+msgstr ""
+
+#: Edit/EditToolbars.py:549 Edit/EditToolbars.py:849
+#: common/Resources/tooltips_en.py:63 common/Resources/tooltips_en.py:100
+msgid "Repeater"
+msgstr ""
+
+#: Edit/EditToolbars.py:549 common/Resources/tooltips_en.py:64
+#: common/Resources/tooltips_en.py:101
+msgid "Loop segments"
+msgstr ""
+
+#: Edit/EditToolbars.py:848
+msgid "None"
+msgstr ""
+
+#: Edit/EditToolbars.py:848
+msgid "Lowpass"
+msgstr ""
+
+#: Edit/EditToolbars.py:848
+msgid "Bandpass"
+msgstr ""
+
+#: Edit/EditToolbars.py:848
+msgid "Highpass"
+msgstr ""
+
+#: Edit/EditToolbars.py:849 common/Resources/tooltips_en.py:97
+msgid "Line"
+msgstr ""
+
+#: Edit/EditToolbars.py:849
+msgid "Loop Segments"
+msgstr ""
+
+#: Edit/EditToolbars.py:850
+msgid "Purple"
+msgstr ""
+
+#: Edit/EditToolbars.py:850
+msgid "Green"
+msgstr ""
+
+#: Edit/EditToolbars.py:850
+msgid "Blue"
+msgstr ""
+
+#: Edit/EditToolbars.py:850
+msgid "Yellow"
+msgstr ""
+
+#: Edit/EditToolbars.py:874
+msgid "Grid division: "
+msgstr ""
+
+#: Edit/EditToolbars.py:885
+msgid "Page color: "
+msgstr ""
+
+#: Edit/EditToolbars.py:898
+msgid "Transposition: "
+msgstr ""
+
+#: Edit/EditToolbars.py:912
+msgid "Volume: "
+msgstr ""
+
+#: Edit/EditToolbars.py:926
+msgid "Pan: "
+msgstr ""
+
+#: Edit/EditToolbars.py:941
+msgid "Reverb: "
+msgstr ""
+
+#: Edit/EditToolbars.py:956
+msgid "Attack duration: "
+msgstr ""
+
+#: Edit/EditToolbars.py:971
+msgid "Decay duration: "
+msgstr ""
+
+#: Edit/EditToolbars.py:986
+msgid "Filter Type: "
+msgstr ""
+
+#: Edit/EditToolbars.py:995
+msgid "Filter cutoff: "
+msgstr ""
+
+#: Edit/EditToolbars.py:1014
+msgid "Type: "
+msgstr ""
+
+#: Edit/EditToolbars.py:1024
+msgid "Minimum: "
+msgstr ""
+
+#: Edit/EditToolbars.py:1035
+msgid "Maximum: "
+msgstr ""
+
+#: Edit/EditToolbars.py:1046
+msgid "Random: "
+msgstr ""
+
+#: Edit/MainWindow.py:153
+msgid "Track 1 Volume"
+msgstr ""
+
+#: Edit/MainWindow.py:177
+msgid "Track 2 Volume"
+msgstr ""
+
+#: Edit/MainWindow.py:201
+msgid "Track 3 Volume"
+msgstr ""
+
+#: Edit/MainWindow.py:225
+msgid "Track 4 Volume"
+msgstr ""
+
+#: Edit/MainWindow.py:249
+msgid "Track 5 Volume"
+msgstr ""
+
+#: Edit/MainWindow.py:407
+msgid "Compose"
+msgstr ""
+
+#: Edit/MainWindow.py:408 common/Resources/tooltips_en.py:74
+#: common/Resources/tooltips_en.py:117
+msgid "Generate"
+msgstr ""
+
+#: Edit/MainWindow.py:2074 common/Resources/tooltips_en.py:51
+#: common/Resources/tooltips_en.py:52 common/Resources/tooltips_en.py:53
+#: common/Resources/tooltips_en.py:54 common/Resources/tooltips_en.py:55
+msgid "Left click to mute, right click to solo"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:8
+msgid "Select tool"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:9
+msgid "Draw tool"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:10
+msgid "Paint tool"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:12
+msgid "Generate new tune"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:14
+msgid "Generate page"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:15
+msgid "Page properties"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:16
+msgid "Delete page(s)"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:17
+msgid "Duplicate page(s)"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:18
+msgid "Add page"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:19
+msgid "Beats per page"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:20
+msgid "Save tune"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:21
+msgid "Load tune"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:23
+msgid "Generate track"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:24
+msgid "Track properties"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:25
+msgid "Clear track"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:26
+msgid "Duplicate track"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:28
+msgid "Note(s) properties"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:29
+msgid "Delete note(s)"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:30
+msgid "Duplicate note(s)"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:31 common/Resources/tooltips_en.py:32
+msgid "Move note in time"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:33
+msgid "Lower pitch"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:34
+msgid "Raise pitch"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:35 common/Resources/tooltips_en.py:36
+msgid "Modify duration"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:37
+msgid "Lower volume"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:38
+msgid "Raise volume"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:40
+msgid "Play"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:41
+msgid "Pause"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:43
+msgid "Keyboard recording"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:44
+msgid "Save as .ogg"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:45
+msgid "Rewind"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:46
+msgid "Save to journal and quit"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:48
+msgid "Master volume"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:58
+msgid "-- Rythm density, | Rythm regularity"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:59
+msgid "-- Pitch regularity, | Pitch maximum step"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:60
+msgid "-- Average duration, | Silence probability"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:71
+msgid "Myxolydian scale"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:72
+msgid "Save preset"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:73
+msgid "Load preset"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:75
+msgid "Close"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:78
+msgid "Transpose up"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:79
+msgid "Transpose down"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:80
+msgid "Volume up"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:81
+msgid "Volume down"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:82
+msgid "Panoramisation"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:83 common/Resources/tooltips_en.py:113
+msgid "Reverb"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:84
+msgid "Attack duration"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:85
+msgid "Decay duration"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:86
+msgid "Lowpass filter"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:87
+msgid "Highpass filter"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:88
+msgid "Bandpass filter"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:89
+msgid "Filter cutoff"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:90 common/Resources/tooltips_en.py:91
+#: common/Resources/tooltips_en.py:92 common/Resources/tooltips_en.py:93
+#: common/Resources/tooltips_en.py:94 common/Resources/tooltips_en.py:95
+#: common/Resources/tooltips_en.py:96
+msgid "Open algorithmic generator"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:99
+msgid "Drone and jump"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:102
+msgid "Minimum value"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:103
+msgid "Maximum value"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:104
+msgid "Specific parameter"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:105
+msgid "Apply generator"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:106
+msgid "Cancel"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:112
+msgid "Balance"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:114
+msgid "Play / Stop"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:116
+msgid "Left click to record, right click to record on top"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:118
+msgid "Complexity of beat"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:119
+msgid "Beats per bar"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:121
+msgid "Jazz / Rock Kit"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:122
+msgid "African Kit"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:123
+msgid "Arabic Kit"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:124
+msgid "South American Kit"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:125
+msgid "Electronic Kit"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:126
+msgid "Record with the microphone"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:127
+msgid "Open SynthLab to create noise"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:128
+msgid "Record mic into slot 1"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:128
+msgid "Record mic into slot 2"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:128
+msgid "Record mic into slot 3"
+msgstr ""
+
+#: common/Resources/tooltips_en.py:128
+msgid "Record mic into slot 4"
+msgstr ""
diff --git a/TamTamEdit.activity/setup.py b/TamTamEdit.activity/setup.py
index 5b21f11..b31f0b1 100644
--- a/TamTamEdit.activity/setup.py
+++ b/TamTamEdit.activity/setup.py
@@ -17,5 +17,14 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
from sugar.activity import bundlebuilder
+import shutil
+import os
-bundlebuilder.start('TamTam')
+#We are removing the symlink to common and replacing it with the real common folder
+os.system('unlink common')
+shutil.copytree('../common', 'common')
+
+bundlebuilder.start('TamTamEdit')
+#Restore the symlink
+os.system('rm -rf common')
+os.system('ln -s ../common common')