diff options
author | Nat <natcl@hotmail.com> | 2007-09-17 16:50:00 (GMT) |
---|---|---|
committer | Nat <natcl@hotmail.com> | 2007-09-17 16:50:00 (GMT) |
commit | 2e559ace9d45bb83af07567443321cb3a41de42b (patch) | |
tree | 809e22e4c8317c4de374e487f58c24752b9c1fdc | |
parent | 608fdb2e7f7a62e08b7e29a6ba28ff6326638be9 (diff) |
TamTam Edit split
22 files changed, 2483 insertions, 1285 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')
diff --git a/TamTamJam.activity/Jam/Desktop.py b/TamTamJam.activity/Jam/Desktop.py index 68bf14e..adf3177 100644 --- a/TamTamJam.activity/Jam/Desktop.py +++ b/TamTamJam.activity/Jam/Desktop.py @@ -7,8 +7,8 @@ import common.Config as Config from gettext import gettext as _ -from Jam import Block -from Jam import Popup +from common.Util import Block +from common.Util import Popup class Desktop( gtk.EventBox ): diff --git a/TamTamJam.activity/Jam/JamMain.py b/TamTamJam.activity/Jam/JamMain.py index 3ea49fb..fdc96ed 100644 --- a/TamTamJam.activity/Jam/JamMain.py +++ b/TamTamJam.activity/Jam/JamMain.py @@ -12,7 +12,7 @@ import sugar.graphics.style as style from Jam.Desktop import Desktop import Jam.Picker as Picker -import Jam.Block as Block +import common.Util.Block.Block as Block from Jam.Toolbars import JamToolbar, DesktopToolbar diff --git a/TamTamJam.activity/Jam/Popup.py b/TamTamJam.activity/Jam/Popup.py index 1e57293..6425634 100644 --- a/TamTamJam.activity/Jam/Popup.py +++ b/TamTamJam.activity/Jam/Popup.py @@ -10,7 +10,7 @@ from sugar.graphics import style from sugar.graphics.palette import Palette, Invoker, _palette_observer import gobject -import Jam.Block as Block +import Util.Block.Block as Block from common.Util.NoteDB import PARAMETER from common.Util.CSoundNote import CSoundNote from common.Util.CSoundClient import new_csound_client diff --git a/TamTamJam.activity/MANIFEST b/TamTamJam.activity/MANIFEST index 47a3d81..1b49d16 100644 --- a/TamTamJam.activity/MANIFEST +++ b/TamTamJam.activity/MANIFEST @@ -32,7 +32,6 @@ icons/volume0.svg icons/volume1.svg icons/volume2.svg icons/volume3.svg -Jam/Block.py Jam/Desktop.py Jam/Fillin.py Jam/GenRythm.py @@ -43,6 +42,7 @@ Jam/Popup.py Jam/RythmGenerator.py Jam/__init__.py Jam/Toolbars.py +common/Util/Block.py common/__init__.py common/Config.py common/Util/CSoundClient.py diff --git a/TamTamMini.activity/MANIFEST b/TamTamMini.activity/MANIFEST index 0b06dea..d09b7cd 100644 --- a/TamTamMini.activity/MANIFEST +++ b/TamTamMini.activity/MANIFEST @@ -31,6 +31,7 @@ Mini/__init__.py Mini/lps.py Mini/miniTamTamMain.py Mini/miniToolbars.py +common/Util/Block.py common/__init__.py common/Config.py common/Util/CSoundClient.py diff --git a/TamTamSynthLab.activity/MANIFEST b/TamTamSynthLab.activity/MANIFEST index a773564..ca39254 100644 --- a/TamTamSynthLab.activity/MANIFEST +++ b/TamTamSynthLab.activity/MANIFEST @@ -77,6 +77,7 @@ SynthLab/SynthLabConstants.py SynthLab/SynthLabMain.py SynthLab/SynthLabToolbars.py SynthLab/SynthObjectsParameters.py +common/Util/Block.py common/__init__.py common/Config.py common/Util/CSoundClient.py diff --git a/TamTamSynthLab.activity/po/TamTamSynthLab.pot b/TamTamSynthLab.activity/po/TamTamSynthLab.pot new file mode 100644 index 0000000..6d81981 --- /dev/null +++ b/TamTamSynthLab.activity/po/TamTamSynthLab.pot @@ -0,0 +1,1098 @@ +# 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. +# +#: SynthLab/SynthLabConstants.py:114 SynthLab/SynthLabConstants.py:117 +#: SynthLab/SynthLabConstants.py:171 SynthLab/SynthLabConstants.py:172 +#: SynthLab/SynthLabConstants.py:173 SynthLab/SynthLabConstants.py:174 +#: SynthLab/SynthLabConstants.py:183 SynthLab/SynthLabConstants.py:184 +#: SynthLab/SynthLabConstants.py:185 SynthLab/SynthLabConstants.py:186 +#: SynthLab/SynthLabConstants.py:194 SynthLab/SynthLabConstants.py:195 +#: SynthLab/SynthLabConstants.py:196 SynthLab/SynthLabConstants.py:197 +#: SynthLab/SynthLabConstants.py:206 SynthLab/SynthLabConstants.py:207 +#: SynthLab/SynthLabConstants.py:208 SynthLab/SynthLabConstants.py:209 +#: SynthLab/SynthLabConstants.py:218 SynthLab/SynthLabConstants.py:219 +#: SynthLab/SynthLabConstants.py:220 SynthLab/SynthLabConstants.py:221 +#: SynthLab/SynthLabConstants.py:230 SynthLab/SynthLabConstants.py:231 +#: SynthLab/SynthLabConstants.py:232 SynthLab/SynthLabConstants.py:233 +#: SynthLab/SynthLabConstants.py:241 SynthLab/SynthLabConstants.py:242 +#: SynthLab/SynthLabConstants.py:243 SynthLab/SynthLabConstants.py:244 +#: SynthLab/SynthLabConstants.py:252 SynthLab/SynthLabConstants.py:253 +#: SynthLab/SynthLabConstants.py:254 SynthLab/SynthLabConstants.py:255 +#: SynthLab/SynthLabConstants.py:264 SynthLab/SynthLabConstants.py:265 +#: SynthLab/SynthLabConstants.py:266 SynthLab/SynthLabConstants.py:267 +#: SynthLab/SynthLabConstants.py:275 SynthLab/SynthLabConstants.py:276 +#: SynthLab/SynthLabConstants.py:277 SynthLab/SynthLabConstants.py:278 +#: SynthLab/SynthLabConstants.py:287 SynthLab/SynthLabConstants.py:288 +#: SynthLab/SynthLabConstants.py:289 SynthLab/SynthLabConstants.py:290 +#: SynthLab/SynthLabConstants.py:299 SynthLab/SynthLabConstants.py:300 +#: SynthLab/SynthLabConstants.py:301 SynthLab/SynthLabConstants.py:302 +#: SynthLab/SynthLabConstants.py:311 SynthLab/SynthLabConstants.py:312 +#: SynthLab/SynthLabConstants.py:313 SynthLab/SynthLabConstants.py:321 +#: SynthLab/SynthLabConstants.py:322 SynthLab/SynthLabConstants.py:323 +#: SynthLab/SynthLabConstants.py:324 +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-09-17 11:14-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 "TamTamSynthLab" +msgstr "" + +#: SynthLab/SynthLabConstants.py:90 +msgid "Source" +msgstr "" + +#: SynthLab/SynthLabConstants.py:91 +msgid "Effect" +msgstr "" + +#: SynthLab/SynthLabConstants.py:92 +msgid "Control" +msgstr "" + +#: SynthLab/SynthLabConstants.py:93 +msgid "Sound Output" +msgstr "" + +#: SynthLab/SynthLabConstants.py:96 +msgid "LFO" +msgstr "" + +#: SynthLab/SynthLabConstants.py:97 +msgid "Amplitude" +msgstr "" + +#: SynthLab/SynthLabConstants.py:98 +msgid "Frequency" +msgstr "" + +#: SynthLab/SynthLabConstants.py:99 SynthLab/SynthLabConstants.py:250 +msgid "Waveform" +msgstr "" + +#: SynthLab/SynthLabConstants.py:100 +msgid "Sine" +msgstr "" + +#: SynthLab/SynthLabConstants.py:100 SynthLab/SynthLabConstants.py:180 +msgid "Triangle" +msgstr "" + +#: SynthLab/SynthLabConstants.py:100 +msgid "Bi-Square" +msgstr "" + +#: SynthLab/SynthLabConstants.py:100 +msgid "Uni-Square" +msgstr "" + +#: SynthLab/SynthLabConstants.py:100 SynthLab/SynthLabConstants.py:180 +msgid "Sawtooth" +msgstr "" + +#: SynthLab/SynthLabConstants.py:100 +msgid "Sawtooth-down" +msgstr "" + +#: SynthLab/SynthLabConstants.py:101 +msgid "Offset" +msgstr "" + +#: SynthLab/SynthLabConstants.py:102 +msgid "" +"A low frequency oscillation (LFO) is a signal usually below 20 Hz which " +"creates a pulsating rythm rather than a audible tone. This signal is " +"commonly used to control sound parameters." +msgstr "" + +#: SynthLab/SynthLabConstants.py:103 +msgid "" +"The amplitude (volume) of the LFO signal. More amplitude means the effect " +"will be more noticeable." +msgstr "" + +#: SynthLab/SynthLabConstants.py:104 +msgid "The speed of the signal beteen 0 Hz and 20 hz." +msgstr "" + +#: SynthLab/SynthLabConstants.py:105 +msgid "The type of waveform that will be used for the LFO." +msgstr "" + +#: SynthLab/SynthLabConstants.py:106 +msgid "Offset: " +msgstr "" + +#: SynthLab/SynthLabConstants.py:108 +msgid "Random" +msgstr "" + +#: SynthLab/SynthLabConstants.py:109 +msgid "Minimum" +msgstr "" + +#: SynthLab/SynthLabConstants.py:110 +msgid "Maximum" +msgstr "" + +#: SynthLab/SynthLabConstants.py:112 +msgid "Seed" +msgstr "" + +#: SynthLab/SynthLabConstants.py:113 +msgid "" +"A random number generator is a computational device designed to generate a " +"sequence of numbers that lack any pattern." +msgstr "" + +#: SynthLab/SynthLabConstants.py:115 +msgid "The minimum value that can be generated." +msgstr "" + +#: SynthLab/SynthLabConstants.py:116 +msgid "The maximum value that can be generated." +msgstr "" + +#: SynthLab/SynthLabConstants.py:119 +msgid "Envelope" +msgstr "" + +#: SynthLab/SynthLabConstants.py:120 +msgid "Attack" +msgstr "" + +#: SynthLab/SynthLabConstants.py:121 +msgid "Decay" +msgstr "" + +#: SynthLab/SynthLabConstants.py:122 +msgid "Sustain" +msgstr "" + +#: SynthLab/SynthLabConstants.py:123 +msgid "Release" +msgstr "" + +#: SynthLab/SynthLabConstants.py:124 +msgid "" +"An ADSR envelope is a component of many sythesizers, samplers, and other " +"electronic musical instruments. Its function is to modulate some aspect of " +"the instrument's sound - often its volume - over time." +msgstr "" + +#: SynthLab/SynthLabConstants.py:125 +msgid "How quickly the sound reaches full volume after the sound is activated." +msgstr "" + +#: SynthLab/SynthLabConstants.py:126 +msgid "" +"How quickly the sound drops to the sustain level after the initial peak." +msgstr "" + +#: SynthLab/SynthLabConstants.py:127 +msgid "" +"The \"constant\" volume that the sound takes after decay until the note is " +"released." +msgstr "" + +#: SynthLab/SynthLabConstants.py:128 +msgid "How quickly the sound fades when a note ends." +msgstr "" + +#: SynthLab/SynthLabConstants.py:130 +msgid "Trackpad X" +msgstr "" + +#: SynthLab/SynthLabConstants.py:133 +msgid "Scaling" +msgstr "" + +#: SynthLab/SynthLabConstants.py:134 +msgid "Lin" +msgstr "" + +#: SynthLab/SynthLabConstants.py:134 +msgid "Log" +msgstr "" + +#: SynthLab/SynthLabConstants.py:135 +msgid "Poll time" +msgstr "" + +#: SynthLab/SynthLabConstants.py:136 +msgid "" +"The XO trackpad can be used to control sound parameters. This is the x axis, " +"from left to right." +msgstr "" + +#: SynthLab/SynthLabConstants.py:137 SynthLab/SynthLabConstants.py:149 +msgid "The minimum value the trackpad will send." +msgstr "" + +#: SynthLab/SynthLabConstants.py:138 SynthLab/SynthLabConstants.py:150 +msgid "The maximum value de trackpad will send." +msgstr "" + +#: SynthLab/SynthLabConstants.py:139 SynthLab/SynthLabConstants.py:151 +msgid "The type of scaling, logarithmic or linear." +msgstr "" + +#: SynthLab/SynthLabConstants.py:140 SynthLab/SynthLabConstants.py:152 +msgid "The time interval between each event coming from the trackpad." +msgstr "" + +#: SynthLab/SynthLabConstants.py:142 +msgid "Trackpad Y" +msgstr "" + +#: SynthLab/SynthLabConstants.py:148 +msgid "" +"The XO trackpad can be used to control sound parameters. This is the y axis, " +"from top to bottom." +msgstr "" + +#: SynthLab/SynthLabConstants.py:155 +msgid "FM" +msgstr "" + +#: SynthLab/SynthLabConstants.py:156 +msgid "Carrier Frequency" +msgstr "" + +#: SynthLab/SynthLabConstants.py:157 +msgid "Modulator Frequency" +msgstr "" + +#: SynthLab/SynthLabConstants.py:158 SynthLab/SynthLabConstants.py:239 +msgid "Index" +msgstr "" + +#: SynthLab/SynthLabConstants.py:159 +msgid "Gain" +msgstr "" + +#: SynthLab/SynthLabConstants.py:160 +msgid "" +"Frequency modulation synthesis is a form of audio synthesis where the timbre " +"of a simple waveform is changed by frequency modulating it with a modulating " +"frequency that is also in the audio range, resulting in a more complex " +"waveform and a different-sounding tone." +msgstr "" + +#: SynthLab/SynthLabConstants.py:161 +msgid "The main waveform frequency." +msgstr "" + +#: SynthLab/SynthLabConstants.py:162 +msgid "The frequency of the waveform that will modulate the Carrier waveform." +msgstr "" + +#: SynthLab/SynthLabConstants.py:163 +msgid "The variation in frequency of the Carrier waveform." +msgstr "" + +#: SynthLab/SynthLabConstants.py:164 SynthLab/SynthLabConstants.py:175 +#: SynthLab/SynthLabConstants.py:187 SynthLab/SynthLabConstants.py:198 +#: SynthLab/SynthLabConstants.py:210 SynthLab/SynthLabConstants.py:222 +#: SynthLab/SynthLabConstants.py:234 SynthLab/SynthLabConstants.py:245 +#: SynthLab/SynthLabConstants.py:256 SynthLab/SynthLabConstants.py:268 +#: SynthLab/SynthLabConstants.py:279 SynthLab/SynthLabConstants.py:291 +#: SynthLab/SynthLabConstants.py:303 SynthLab/SynthLabConstants.py:314 +#: SynthLab/SynthLabConstants.py:325 SynthLab/SynthLabConstants.py:347 +msgid "The overall gain (volume) of the sound source." +msgstr "" + +#: SynthLab/SynthLabConstants.py:166 +msgid "Buzz" +msgstr "" + +#: SynthLab/SynthLabConstants.py:168 +msgid "Number of harmonics" +msgstr "" + +#: SynthLab/SynthLabConstants.py:169 +msgid "Filter Slope" +msgstr "" + +#: SynthLab/SynthLabConstants.py:177 +msgid "VCO" +msgstr "" + +#: SynthLab/SynthLabConstants.py:180 +msgid "Square" +msgstr "" + +#: SynthLab/SynthLabConstants.py:189 +msgid "Pluck" +msgstr "" + +#: SynthLab/SynthLabConstants.py:191 SynthLab/SynthLabConstants.py:307 +msgid "Lowpass Filter" +msgstr "" + +#: SynthLab/SynthLabConstants.py:192 +msgid "Vibrato" +msgstr "" + +#: SynthLab/SynthLabConstants.py:200 +msgid "Noise" +msgstr "" + +#: SynthLab/SynthLabConstants.py:201 SynthLab/SynthLabConstants.py:284 +msgid "Type" +msgstr "" + +#: SynthLab/SynthLabConstants.py:202 +msgid "White" +msgstr "" + +#: SynthLab/SynthLabConstants.py:202 +msgid "Pink" +msgstr "" + +#: SynthLab/SynthLabConstants.py:202 +msgid "Gauss" +msgstr "" + +#: SynthLab/SynthLabConstants.py:204 +msgid "Bandwith" +msgstr "" + +#: SynthLab/SynthLabConstants.py:212 +msgid "Sound Sample" +msgstr "" + +#: SynthLab/SynthLabConstants.py:214 +msgid "Sample Number" +msgstr "" + +#: SynthLab/SynthLabConstants.py:215 +msgid "Sample name" +msgstr "" + +#: SynthLab/SynthLabConstants.py:224 +msgid "Voice" +msgstr "" + +#: SynthLab/SynthLabConstants.py:226 +msgid "Vowel" +msgstr "" + +#: SynthLab/SynthLabConstants.py:236 +msgid "Grain" +msgstr "" + +#: SynthLab/SynthLabConstants.py:247 +msgid "Additive Synthesis" +msgstr "" + +#: SynthLab/SynthLabConstants.py:249 +msgid "Spread" +msgstr "" + +#: SynthLab/SynthLabConstants.py:259 SynthLab/SynthLabConstants.py:341 +msgid "Delay" +msgstr "" + +#: SynthLab/SynthLabConstants.py:262 +msgid "Feedback" +msgstr "" + +#: SynthLab/SynthLabConstants.py:270 +msgid "Distortion" +msgstr "" + +#: SynthLab/SynthLabConstants.py:272 +msgid "Resonance" +msgstr "" + +#: SynthLab/SynthLabConstants.py:273 +msgid "Distotion Level" +msgstr "" + +#: SynthLab/SynthLabConstants.py:281 +msgid "Filter" +msgstr "" + +#: SynthLab/SynthLabConstants.py:285 +msgid "Lowpass" +msgstr "" + +#: SynthLab/SynthLabConstants.py:285 +msgid "Highpass" +msgstr "" + +#: SynthLab/SynthLabConstants.py:285 +msgid "Bandpass" +msgstr "" + +#: SynthLab/SynthLabConstants.py:293 +msgid "Ring Modulator" +msgstr "" + +#: SynthLab/SynthLabConstants.py:295 +msgid "Mix" +msgstr "" + +#: SynthLab/SynthLabConstants.py:305 common/Resources/tooltips_en.py:83 +#: common/Resources/tooltips_en.py:113 +msgid "Reverb" +msgstr "" + +#: SynthLab/SynthLabConstants.py:306 +msgid "Length" +msgstr "" + +#: SynthLab/SynthLabConstants.py:308 +msgid "Reverb Level" +msgstr "" + +#: SynthLab/SynthLabConstants.py:310 +msgid "" +"Reverberation is the persistence od sound in a particular space after the " +"original sound is removed." +msgstr "" + +#: SynthLab/SynthLabConstants.py:316 +msgid "Harmonizer" +msgstr "" + +#: SynthLab/SynthLabConstants.py:318 +msgid "Dry delay" +msgstr "" + +#: SynthLab/SynthLabConstants.py:327 +msgid "Equalizer 4 bands" +msgstr "" + +#: SynthLab/SynthLabConstants.py:328 +msgid "Band one gain" +msgstr "" + +#: SynthLab/SynthLabConstants.py:329 +msgid "Band two gain" +msgstr "" + +#: SynthLab/SynthLabConstants.py:330 +msgid "Band three gain" +msgstr "" + +#: SynthLab/SynthLabConstants.py:331 +msgid "Band four gain" +msgstr "" + +#: SynthLab/SynthLabConstants.py:332 +msgid "" +"A 4 band equalizer is an effect that splits the spectrum into 4 bands and " +"allows the bands to be set at different levels." +msgstr "" + +#: SynthLab/SynthLabConstants.py:333 +msgid "The gain (volume) of band 1." +msgstr "" + +#: SynthLab/SynthLabConstants.py:334 +msgid "The gain (volume) of band 2." +msgstr "" + +#: SynthLab/SynthLabConstants.py:335 +msgid "The gain (volume) of band 3." +msgstr "" + +#: SynthLab/SynthLabConstants.py:336 +msgid "The gain (volume) of band 4." +msgstr "" + +#: SynthLab/SynthLabConstants.py:338 +msgid "Chorus" +msgstr "" + +#: SynthLab/SynthLabConstants.py:339 +msgid "LFO Depth" +msgstr "" + +#: SynthLab/SynthLabConstants.py:340 +msgid "LFO Frequency" +msgstr "" + +#: SynthLab/SynthLabConstants.py:343 +msgid "" +"A chorus effect is a condition in the way people perceive similar sounds " +"coming from multiple sources." +msgstr "" + +#: SynthLab/SynthLabConstants.py:344 +msgid "LFO Depth: The amplitude of the LFO signal." +msgstr "" + +#: SynthLab/SynthLabConstants.py:345 +msgid "LFO Frequency: the frequency of the LFO signal." +msgstr "" + +#: SynthLab/SynthLabConstants.py:346 +msgid "Delay: The amount of delay between the two signals." +msgstr "" + +#: SynthLab/SynthLabConstants.py:353 +msgid "lfo" +msgstr "" + +#: SynthLab/SynthLabConstants.py:354 +msgid "rand" +msgstr "" + +#: SynthLab/SynthLabConstants.py:355 +msgid "adsr" +msgstr "" + +#: SynthLab/SynthLabConstants.py:356 +msgid "trackpadX" +msgstr "" + +#: SynthLab/SynthLabConstants.py:357 +msgid "trackpadY" +msgstr "" + +#: SynthLab/SynthLabConstants.py:358 +msgid "fm" +msgstr "" + +#: SynthLab/SynthLabConstants.py:359 +msgid "buzz" +msgstr "" + +#: SynthLab/SynthLabConstants.py:360 +msgid "vco" +msgstr "" + +#: SynthLab/SynthLabConstants.py:361 +msgid "pluck" +msgstr "" + +#: SynthLab/SynthLabConstants.py:362 +msgid "noise" +msgstr "" + +#: SynthLab/SynthLabConstants.py:363 +msgid "sample" +msgstr "" + +#: SynthLab/SynthLabConstants.py:364 +msgid "voice" +msgstr "" + +#: SynthLab/SynthLabConstants.py:365 +msgid "grain" +msgstr "" + +#: SynthLab/SynthLabConstants.py:366 +msgid "addSynth" +msgstr "" + +#: SynthLab/SynthLabConstants.py:367 +msgid "wguide" +msgstr "" + +#: SynthLab/SynthLabConstants.py:368 +msgid "distort" +msgstr "" + +#: SynthLab/SynthLabConstants.py:369 +msgid "filter" +msgstr "" + +#: SynthLab/SynthLabConstants.py:370 +msgid "ring" +msgstr "" + +#: SynthLab/SynthLabConstants.py:371 +msgid "reverb" +msgstr "" + +#: SynthLab/SynthLabConstants.py:372 +msgid "harmon" +msgstr "" + +#: SynthLab/SynthLabConstants.py:373 +msgid "eq4band" +msgstr "" + +#: SynthLab/SynthLabConstants.py:374 +msgid "chorus" +msgstr "" + +#: SynthLab/SynthLabMain.py:64 +msgid "Main" +msgstr "" + +#: SynthLab/SynthLabMain.py:65 +msgid "Presets" +msgstr "" + +#: SynthLab/SynthLabMain.py:740 +msgid ": controller output" +msgstr "" + +#: SynthLab/SynthLabMain.py:752 +msgid ": sound output" +msgstr "" + +#: SynthLab/SynthLabMain.py:755 +msgid ": sound input" +msgstr "" + +#: SynthLab/SynthLabMain.py:757 +msgid "Send sound to the speakers" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:27 +msgid "Duration: " +msgstr "" + +#: SynthLab/SynthLabToolbars.py:30 +msgid " s." +msgstr "" + +#: SynthLab/SynthLabToolbars.py:50 +msgid "Duration" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:58 +msgid "Record Synth sound into slot 1" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:64 +msgid "Record Synth sound into slot 2" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:70 +msgid "Record Synth sound into slot 3" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:76 +msgid "Record Synth sound into slot 4" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:82 +msgid "Record Synth sound into slot 5" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:88 +msgid "Record Synth sound into slot 6" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:96 +msgid "Reset the worktable" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:116 +msgid "Preset 1" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:122 +msgid "Preset 2" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:128 +msgid "Preset 3" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:134 +msgid "Preset 4" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:140 +msgid "Preset 5" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:146 +msgid "Preset 6" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:152 +msgid "Preset 7" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:158 +msgid "Preset 8" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:164 +msgid "Preset 9" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:170 +msgid "Preset 10" +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:42 common/Resources/tooltips_en.py:115 +msgid "Stop" +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:49 common/Resources/tooltips_en.py:120 +msgid "Tempo" +msgstr "" + +#: 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: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:61 common/Resources/tooltips_en.py:98 +msgid "Drunk" +msgstr "" + +#: common/Resources/tooltips_en.py:62 +msgid "Drone and Jump" +msgstr "" + +#: common/Resources/tooltips_en.py:63 common/Resources/tooltips_en.py:100 +msgid "Repeater" +msgstr "" + +#: common/Resources/tooltips_en.py:64 common/Resources/tooltips_en.py:101 +msgid "Loop segments" +msgstr "" + +#: common/Resources/tooltips_en.py:65 +msgid "Major scale" +msgstr "" + +#: common/Resources/tooltips_en.py:66 +msgid "Harmonic minor scale" +msgstr "" + +#: common/Resources/tooltips_en.py:67 +msgid "Natural minor scale" +msgstr "" + +#: common/Resources/tooltips_en.py:68 +msgid "Phrygian scale" +msgstr "" + +#: common/Resources/tooltips_en.py:69 +msgid "Dorian scale" +msgstr "" + +#: common/Resources/tooltips_en.py:70 +msgid "Lydian scale" +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:74 common/Resources/tooltips_en.py:117 +msgid "Generate" +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: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:97 +msgid "Line" +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:111 +msgid "Volume" +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/TamTamJam.activity/Jam/Block.py b/common/Util/Block.py index 83be3f0..83be3f0 100644 --- a/TamTamJam.activity/Jam/Block.py +++ b/common/Util/Block.py diff --git a/common/Util/ControlStream.py b/common/Util/ControlStream.py index ac7035f..de72fe2 100644 --- a/common/Util/ControlStream.py +++ b/common/Util/ControlStream.py @@ -10,7 +10,7 @@ from common.Util import NoteDB from common.Util.CSoundNote import CSoundNote from common.Util.CSoundClient import new_csound_client -from Jam import Block +from common.Util import Block class TamTamOStream: def __init__(self, file): |