Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOli <olivier.belanger@umontreal.ca>2007-10-20 17:25:17 (GMT)
committer Oli <olivier.belanger@umontreal.ca>2007-10-20 17:25:17 (GMT)
commitcd62e6af4d8f4dda887f1aac15abb13128a7f447 (patch)
tree13fc523fa1f9d1555c7d235e3bf6c5a8bcfbaf25
parent138653b35fe9ed1ccc651fd988fac4b14e83f71a (diff)
removed csound table's load from startup
-rw-r--r--TamTamEdit.activity/Edit/MainWindow.py26
-rw-r--r--TamTamJam.activity/Jam/JamMain.py1
-rw-r--r--TamTamJam.activity/Jam/Picker.py4
-rw-r--r--TamTamJam.activity/Jam/Popup.py18
-rw-r--r--TamTamMini.activity/Mini/InstrumentPanel.py1
-rw-r--r--TamTamMini.activity/Mini/miniTamTamMain.py3
-rwxr-xr-xTamTamSynthLab.activity/SynthLab/SynthLabConstants.py4
-rw-r--r--TamTamSynthLab.activity/SynthLab/SynthLabMain.py25
-rw-r--r--common/Util/Block.py2
-rw-r--r--common/Util/CSoundClient.py19
-rw-r--r--common/Util/ControlStream.py15
11 files changed, 80 insertions, 38 deletions
diff --git a/TamTamEdit.activity/Edit/MainWindow.py b/TamTamEdit.activity/Edit/MainWindow.py
index 772257e..73f52a4 100644
--- a/TamTamEdit.activity/Edit/MainWindow.py
+++ b/TamTamEdit.activity/Edit/MainWindow.py
@@ -58,8 +58,7 @@ class MainWindow( gtk.EventBox ):
self.scale = GenerationConstants.DEFAULT_SCALE
# META ALGO: [section, variation or not, nPages] A B A C
- # TODO: Different parameters sets for each tracks
- self.tuneForm = [[0, False, 4], [1, False, 4], [0, True, 2], [2, False, 2]]
+ self.tuneForm = [[0, False, 2], [1, False, 4], [0, True, 2], [2, False, 2]]
def init_data( ):
TP.ProfileBegin("init_data")
@@ -77,6 +76,13 @@ class MainWindow( gtk.EventBox ):
self.instrumentDB.instNamed["kalimba"],
self.instrumentDB.instNamed["drum2kit"] ]
self.trackInstrument = self.trackInstrumentDefault[:]
+
+ for i in self.trackInstrument:
+ if i.kit == None:
+ self.csnd.load_instrument(i.name)
+ else:
+ self.csnd.load_drumkit(i.name)
+
if len(self.trackInstrument) != Config.NUMBER_OF_TRACKS: raise 'error'
self.drumIndex = Config.NUMBER_OF_TRACKS - 1
@@ -413,6 +419,12 @@ class MainWindow( gtk.EventBox ):
orch = self.newOrchestra()
+ for i in orch:
+ if i.kit == None:
+ self.csnd.load_instrument(i.name)
+ else:
+ self.csnd.load_drumkit(i.name)
+
instrumentsIds = []
for inst in orch:
instrumentsIds.append(inst.instrumentId)
@@ -797,6 +809,10 @@ class MainWindow( gtk.EventBox ):
else:
self.trackInstrument2[id] = instrument
+ if instrument.kit == None:
+ self.csnd.load_instrument(instrument.name)
+ else:
+ self.csnd.load_drumkit(instrument.name)
if primary: # TODO handle secondary instruments properly
if (Config.DEBUG > 3): print "handleInstrumentChanged", id, instrument.name, primary
@@ -2160,8 +2176,9 @@ class instrumentPalette( Popup ):
def handleInstrumentChange(self, widget):
if not self.skip:
instrument = widget.props.value
- self.edit.playInstrumentNote(instrument)
self.edit.donePickInstrument(instrument)
+ time.sleep(0.05)
+ self.edit.playInstrumentNote(instrument)
self.popdown(True)
def handleCategoryChange(self, widget):
@@ -2263,8 +2280,9 @@ class drumPalette( Popup ):
def handleInstrumentChange(self, widget):
if not self.skip:
drum = widget.props.value
- self.edit.playInstrumentNote(drum)
self.edit.donePickDrum(drum)
+ time.sleep(0.05)
+ self.edit.playInstrumentNote(drum)
self.popdown(True)
diff --git a/TamTamJam.activity/Jam/JamMain.py b/TamTamJam.activity/Jam/JamMain.py
index dbd7f8b..9eb89fd 100644
--- a/TamTamJam.activity/Jam/JamMain.py
+++ b/TamTamJam.activity/Jam/JamMain.py
@@ -440,6 +440,7 @@ class JamMain(gtk.EventBox):
"pan": pan,
"reverb": reverb }
+
def pushInstrument( self, instrument ):
self.instrumentStack.append( self.instrument )
self.instrument = instrument
diff --git a/TamTamJam.activity/Jam/Picker.py b/TamTamJam.activity/Jam/Picker.py
index 731e85b..1d627e8 100644
--- a/TamTamJam.activity/Jam/Picker.py
+++ b/TamTamJam.activity/Jam/Picker.py
@@ -8,6 +8,7 @@ import os
import random #TEMP
import sets
+from common.Util.CSoundClient import new_csound_client
import common.Config as Config
from gettext import gettext as _
@@ -163,6 +164,7 @@ class Instrument( Picker ):
def __init__( self, owner, filter = ( "All" ) ):
Picker.__init__( self, owner, filter )
+ self.csnd = new_csound_client()
self.type = Instrument
self.instrumentDB = InstrumentDB.getRef()
@@ -174,6 +176,8 @@ class Instrument( Picker ):
# match data structure of Block.Instrument
data = { "name": _(self.instrumentDB.instId[id].name),
"id": id }
+
+ self.csnd.load_instrument(self.instrumentDB.instId[id].name)
win = gtk.gdk.get_default_root_window()
width = Block.Instrument.WIDTH
diff --git a/TamTamJam.activity/Jam/Popup.py b/TamTamJam.activity/Jam/Popup.py
index 9268870..7c90977 100644
--- a/TamTamJam.activity/Jam/Popup.py
+++ b/TamTamJam.activity/Jam/Popup.py
@@ -119,7 +119,7 @@ class Instrument( Popup ):
self.GUI["volumeLabel"].set_size_request( 100, -1 )
self.GUI["volumeLabel"].set_alignment( 0.0, 0.5 )
self.GUI["volumeBox"].pack_start( self.GUI["volumeLabel"], False, padding = style.DEFAULT_PADDING )
- self.GUI["volumeAdjustment"] = gtk.Adjustment( 0.5, 0.0, 1.0, 0.1, 0.1, 0 )
+ self.GUI["volumeAdjustment"] = gtk.Adjustment( 0.5, 0.0, 1.0, 0.01, 0.01, 0 )
self.GUI["volumeAdjustment"].connect( 'value-changed', self.handleVolume )
self.GUI["volumeSlider"] = gtk.HScale( adjustment = self.GUI["volumeAdjustment"] )
self.GUI["volumeSlider"].set_size_request( 250, -1 )
@@ -136,7 +136,7 @@ class Instrument( Popup ):
self.GUI["panLabel"].set_size_request( 100, -1 )
self.GUI["panLabel"].set_alignment( 0.0, 0.5 )
self.GUI["panBox"].pack_start( self.GUI["panLabel"], False, padding = style.DEFAULT_PADDING )
- self.GUI["panAdjustment"] = gtk.Adjustment( 0.5, 0, 1.0, 0.1, 0.1, 0 )
+ self.GUI["panAdjustment"] = gtk.Adjustment( 0.5, 0, 1.0, 0.01, 0.01, 0 )
self.GUI["panAdjustment"].connect( 'value-changed', self.handlePan )
self.GUI["panSlider"] = gtk.HScale( adjustment = self.GUI["panAdjustment"] )
self.GUI["panSlider"].set_size_request( 250, -1 )
@@ -153,7 +153,7 @@ class Instrument( Popup ):
self.GUI["reverbLabel"].set_size_request( 100, -1 )
self.GUI["reverbLabel"].set_alignment( 0.0, 0.5 )
self.GUI["reverbBox"].pack_start( self.GUI["reverbLabel"], False, padding = style.DEFAULT_PADDING )
- self.GUI["reverbAdjustment"] = gtk.Adjustment( 0.5, 0, 1.0, 0.1, 0.1, 0 )
+ self.GUI["reverbAdjustment"] = gtk.Adjustment( 0.5, 0, 1.0, 0.01, 0.01, 0 )
self.GUI["reverbAdjustment"].connect( 'value-changed', self.handleReverb )
self.GUI["reverbSlider"] = gtk.HScale( adjustment = self.GUI["reverbAdjustment"] )
self.GUI["reverbSlider"].set_size_request( 250, -1 )
@@ -224,7 +224,7 @@ class Drum( Popup ):
self.GUI["volumeLabel"].set_size_request( 130, -1 )
self.GUI["volumeLabel"].set_alignment( 0.0, 0.5 )
self.GUI["volumeBox"].pack_start( self.GUI["volumeLabel"], False, padding = style.DEFAULT_PADDING )
- self.GUI["volumeAdjustment"] = gtk.Adjustment( 0.5, 0.0, 1.0, 0.1, 0.1, 0 )
+ self.GUI["volumeAdjustment"] = gtk.Adjustment( 0.5, 0.0, 1.0, 0.01, 0.01, 0 )
self.GUI["volumeAdjustment"].connect( 'value-changed', self.handleVolume )
self.GUI["volumeSlider"] = gtk.HScale( adjustment = self.GUI["volumeAdjustment"] )
self.GUI["volumeSlider"].set_size_request( 250, -1 )
@@ -241,7 +241,7 @@ class Drum( Popup ):
self.GUI["reverbLabel"].set_size_request( 130, -1 )
self.GUI["reverbLabel"].set_alignment( 0.0, 0.5 )
self.GUI["reverbBox"].pack_start( self.GUI["reverbLabel"], False, padding = style.DEFAULT_PADDING )
- self.GUI["reverbAdjustment"] = gtk.Adjustment( 0.5, 0, 1.0, 0.1, 0.1, 0 )
+ self.GUI["reverbAdjustment"] = gtk.Adjustment( 0.5, 0, 1.0, 0.01, 0.01, 0 )
self.GUI["reverbAdjustment"].connect( 'value-changed', self.handleReverb )
self.GUI["reverbSlider"] = gtk.HScale( adjustment = self.GUI["reverbAdjustment"] )
self.GUI["reverbSlider"].set_size_request( 250, -1 )
@@ -279,7 +279,7 @@ class Drum( Popup ):
self.GUI["regularityLabel"].set_size_request( 130, -1 )
self.GUI["regularityLabel"].set_alignment( 0.0, 0.5 )
self.GUI["regularityBox"].pack_start( self.GUI["regularityLabel"], False, padding = style.DEFAULT_PADDING )
- self.GUI["regularityAdjustment"] = gtk.Adjustment( 0.8, 0.0, 1.0, 0.1, 0.1, 0 )
+ self.GUI["regularityAdjustment"] = gtk.Adjustment( 0.8, 0.0, 1.0, 0.01, 0.01, 0 )
self.GUI["regularityAdjustment"].connect( 'value-changed', self.handleRegularity )
self.GUI["regularitySlider"] = gtk.HScale( adjustment = self.GUI["regularityAdjustment"] )
self.GUI["regularitySlider"].set_size_request( 250, -1 )
@@ -386,7 +386,7 @@ class Loop( Popup ):
self.GUI["regularityLabel"].set_size_request( 130, -1 )
self.GUI["regularityLabel"].set_alignment( 0.0, 0.5 )
self.GUI["regularityBox"].pack_start( self.GUI["regularityLabel"], False, padding = style.DEFAULT_PADDING )
- self.GUI["regularityAdjustment"] = gtk.Adjustment( 0.8, 0.0, 1.0, 0.1, 0.1, 0 )
+ self.GUI["regularityAdjustment"] = gtk.Adjustment( 0.8, 0.0, 1.0, 0.01, 0.01, 0 )
self.GUI["regularityAdjustment"].connect( 'value-changed', self.handleRegularity )
self.GUI["regularitySlider"] = gtk.HScale( adjustment = self.GUI["regularityAdjustment"] )
self.GUI["regularitySlider"].set_size_request( 250, -1 )
@@ -834,7 +834,7 @@ class Loop( Popup ):
self.owner.popInstrument()
self.owner.setKeyboardListener( None )
self.owner.setPaused( False )
-
+
def recordNote( self, pitch ):
page = self.block.getData("id")
ticks = self.owner.noteDB.getPage(page).ticks
@@ -888,7 +888,7 @@ class Loop( Popup ):
note = self.noteDB.getNote( self.curPage, 0, self.recordingNote )
if tick > note.cs.onset:
- self.recordingNotePassed = True
+ self.recordingNotePassed = True
if self.recordingNotePassed and tick < note.cs.onset:
tick = self.noteDB.getPage( self.curPage ).ticks
diff --git a/TamTamMini.activity/Mini/InstrumentPanel.py b/TamTamMini.activity/Mini/InstrumentPanel.py
index b28e969..a35b774 100644
--- a/TamTamMini.activity/Mini/InstrumentPanel.py
+++ b/TamTamMini.activity/Mini/InstrumentPanel.py
@@ -301,6 +301,7 @@ class InstrumentPanel( gtk.EventBox ):
if self.setInstrument:
widget.event( gtk.gdk.Event( gtk.gdk.LEAVE_NOTIFY ) ) # fake the leave event
self.setInstrument(instrument)
+ time.sleep(0.05)
if self.playInstrument: self.playInstrument(instrument)
if self.enterMode:
pass #Close the window
diff --git a/TamTamMini.activity/Mini/miniTamTamMain.py b/TamTamMini.activity/Mini/miniTamTamMain.py
index c410a86..ed92955 100644
--- a/TamTamMini.activity/Mini/miniTamTamMain.py
+++ b/TamTamMini.activity/Mini/miniTamTamMain.py
@@ -62,6 +62,7 @@ class miniTamTamMain(gtk.EventBox):
self.beatDuration = 60.0/self.tempo
self.ticksPerSecond = Config.TICKS_PER_BEAT*self.tempo/60.0
self.rythmInstrument = 'drum1kit'
+ self.csnd.load_drumkit(self.rythmInstrument)
self.muteInst = False
self.drumFillin = Fillin( self.beat, self.tempo, self.rythmInstrument, self.reverb, self.drumVolume )
self.sequencer= MiniSequencer(self.recordStateButton, self.recordOverSensitivity)
@@ -566,6 +567,7 @@ class miniTamTamMain(gtk.EventBox):
#data is drum1kit, drum2kit, or drum3kit
#print 'HANDLE: Generate Button'
self.rythmInstrument = data
+ self.csnd.load_drumkit(data)
instrumentId = self.instrumentDB.instNamed[data].instrumentId
for (o,n) in self.noteList :
self.csnd.loopUpdate(n, NoteDB.PARAMETER.INSTRUMENT, instrumentId, -1)
@@ -587,6 +589,7 @@ class miniTamTamMain(gtk.EventBox):
def setInstrument( self , instrument ):
self.instrument = instrument
self.keyboardStandAlone.setInstrument(instrument)
+ self.csnd.load_instrument(instrument)
def playInstrumentNote(self , instrument, secs_per_tick = 0.025):
if not self.muteInst:
diff --git a/TamTamSynthLab.activity/SynthLab/SynthLabConstants.py b/TamTamSynthLab.activity/SynthLab/SynthLabConstants.py
index 77ead26..0fcda29 100755
--- a/TamTamSynthLab.activity/SynthLab/SynthLabConstants.py
+++ b/TamTamSynthLab.activity/SynthLab/SynthLabConstants.py
@@ -73,18 +73,14 @@ class SynthLabConstants:
'chorus': [.5, 1., 5., .5, 0, 3, 0, 10, 0, 30, 0, 1, FLOAT, FLOAT, FLOAT]}
CONTROL_TYPES = ['lfo', 'rand', 'adsr', 'trackpadX', 'trackpadY']
- #CONTROL_TYPES_SEL = [type + 'sel' for type in CONTROL_TYPES]
CONTROL_TYPES_PLUS = [type + '+' for type in CONTROL_TYPES]
SOURCE_TYPES = ['fm', 'buzz', 'vco', 'pluck', 'noise', 'sample', 'voice', 'grain', 'addSynth', 'mic']
- #SOURCE_TYPES_SEL = [type + 'sel' for type in SOURCE_TYPES]
SOURCE_TYPES_PLUS = [type + '+' for type in SOURCE_TYPES]
FX_TYPES = ['wguide', 'distort','filter', 'ring', 'reverb', 'harmon', 'eq4band', 'chorus']
- #FX_TYPES_SEL = [type + 'sel' for type in FX_TYPES]
FX_TYPES_PLUS = [type + '+' for type in FX_TYPES]
OUTPUT_TYPE = ['adsr']
OUTPUT_TYPE_SEL = ['adsrsel']
CHOOSE_TYPE = [CONTROL_TYPES, SOURCE_TYPES, FX_TYPES, OUTPUT_TYPE]
- #CHOOSE_TYPE2 = [CONTROL_TYPES_SEL, SOURCE_TYPES_SEL, FX_TYPES_SEL, OUTPUT_TYPE_SEL]
CHOOSE_TYPE_PLUS = [CONTROL_TYPES_PLUS, SOURCE_TYPES_PLUS, FX_TYPES_PLUS]
# SynthLab Tooltips
diff --git a/TamTamSynthLab.activity/SynthLab/SynthLabMain.py b/TamTamSynthLab.activity/SynthLab/SynthLabMain.py
index 4aeb60a..b6476d5 100644
--- a/TamTamSynthLab.activity/SynthLab/SynthLabMain.py
+++ b/TamTamSynthLab.activity/SynthLab/SynthLabMain.py
@@ -1146,6 +1146,19 @@ class SynthLabMain(gtk.EventBox):
mess = "f5504 0 32768 -1 " + "\"%s\" 0 0 0" % snd
self.csnd.inputMessage( mess )
time.sleep(.005)
+ if lastTable[4] == 6:
+ snd = self.sample_names[int(sourceParametersTable[1])]
+ self.csnd.load_instrument(snd)
+ if lastTable[5] == 6:
+ snd = self.sample_names[int(sourceParametersTable[5])]
+ self.csnd.load_instrument(snd)
+ if lastTable[6] == 6:
+ snd = self.sample_names[int(sourceParametersTable[9])]
+ self.csnd.load_instrument(snd)
+ if lastTable[7] == 6:
+ snd = self.sample_names[int(sourceParametersTable[13])]
+ self.csnd.load_instrument(snd)
+ time.sleep(.005)
def recordSound( self, widget, data ):
if widget.get_active() == True:
@@ -1418,14 +1431,4 @@ class SynthLabMain(gtk.EventBox):
f = shelve.open( Config.TAM_TAM_ROOT + '/common/Resources/SynthFiles/' + preset, 'r')
self.loadState(f)
f.close()
- self.handleSaveTemp()
-
- def initRadioButton( self, labelList, methodCallback, box ):
- for i in range( len( labelList ) ):
- label = labelList[i]
- if i == 0:
- button = ImageRadioButton( group = None, mainImg_path = Config.IMAGE_ROOT + label + '.png', altImg_path = Config.IMAGE_ROOT + label + 'sel.png' )
- else:
- button = ImageRadioButton( group = button, mainImg_path = Config.IMAGE_ROOT + label + '.png', altImg_path = Config.IMAGE_ROOT + label + 'sel.png' )
- button.connect( "toggled", methodCallback, i )
- box.pack_start( button, True, True )
+ self.handleSaveTemp() \ No newline at end of file
diff --git a/common/Util/Block.py b/common/Util/Block.py
index 45f942a..e6a7bf4 100644
--- a/common/Util/Block.py
+++ b/common/Util/Block.py
@@ -14,7 +14,7 @@ from common.Util.NoteDB import PARAMETER
# All the graphics resources are loaded in Desktop and referenced here as necessary
#:::
-class Block():
+class Block:
WIDTH = 100
HEIGHT = 100
diff --git a/common/Util/CSoundClient.py b/common/Util/CSoundClient.py
index c2ca4ff..b3729d8 100644
--- a/common/Util/CSoundClient.py
+++ b/common/Util/CSoundClient.py
@@ -14,6 +14,7 @@ from common.Util.Clooper.aclient import *
from common.Util import NoteDB
import common.Util.InstrumentDB as InstrumentDB
+loadedInstruments = []
_note_template = array.array('f', [0] * 19 )
def _new_note_array():
@@ -98,6 +99,22 @@ class _CSoundClientPlugin:
instrumentId = Config.INSTRUMENT_TABLE_OFFSET + self.instrumentDB.instNamed[ instrumentSoundFile ].instrumentId
sc_inputMessage( Config.CSOUND_LOAD_INSTRUMENT % (instrumentId, fileName) )
+ def load_instrument(self, inst):
+ if not inst in loadedInstruments:
+ fileName = Config.SOUNDS_DIR + "/" + inst
+ instrumentId = Config.INSTRUMENT_TABLE_OFFSET + self.instrumentDB.instNamed[ inst ].instrumentId
+ sc_inputMessage( Config.CSOUND_LOAD_INSTRUMENT % (instrumentId, fileName) )
+ loadedInstruments.append(inst)
+
+ def load_drumkit(self, kit):
+ if not kit in loadedInstruments:
+ for i in self.instrumentDB.instNamed[kit].kit.values():
+ fileName = Config.SOUNDS_DIR + "/" + i
+ instrumentId = Config.INSTRUMENT_TABLE_OFFSET + self.instrumentDB.instNamed[ i ].instrumentId
+ sc_inputMessage( Config.CSOUND_LOAD_INSTRUMENT % (instrumentId, fileName) )
+ loadedInstruments.append(i)
+ loadedInstruments.append(kit)
+
def connect( self, init = True ):
def reconnect():
if sc_start(self.periods_per_buffer) :
@@ -355,6 +372,6 @@ def new_csound_client():
_Client = _CSoundClientPlugin()
_Client.connect(True)
_Client.setMasterVolume(100.0)
- _Client.load_instruments()
+ #_Client.load_instruments()
time.sleep(0.2)
return _Client
diff --git a/common/Util/ControlStream.py b/common/Util/ControlStream.py
index 4eeabc1..ae62c61 100644
--- a/common/Util/ControlStream.py
+++ b/common/Util/ControlStream.py
@@ -17,7 +17,7 @@ class TamTamOStream:
self.file = file
def note_add(self, note):
- l = ['note_add', note.id, note.page, note.track,
+ l = ['note_add', note.id, note.page, note.track,
note.cs.onset,
note.cs.pitch,
note.cs.amplitude,
@@ -120,7 +120,7 @@ class TamTamTable:
nid = int(argv[0])
page = self.pid[int(argv[1])]
track = int(argv[2])
- cs = CSoundNote(
+ cs = CSoundNote(
int(argv[3]),
int(argv[4]),
float(argv[5]),
@@ -149,7 +149,7 @@ class TamTamTable:
insts = ""
for str in argv[3:]:
insts += str
- print pid, insts
+ #print pid, insts
instruments = eval( insts )
if len( self.noteDB.tune ):
after = self.noteDB.tune[-1]
@@ -189,11 +189,11 @@ class TamTamTable:
self.jam.updateLoopImage( data["id"] )
if child:
- block = blockClass( self.jam.getDesktop(), data )
- self.lastBlock.addChild( block )
+ block = blockClass( self.jam.getDesktop(), data )
+ self.lastBlock.addChild( block )
else:
block = self.jam.getDesktop().addBlock( blockClass, data, ( x, y ) )
-
+
block.setPlaced( True )
if blockClass == Block.Instrument and active:
@@ -206,7 +206,7 @@ class TamTamTable:
#try:
if os.path.isfile( filename ):
os.remove( filename )
-
+
file = open( filename, "w" )
for line in self.file:
if line == "desktop_store END\n":
@@ -229,4 +229,3 @@ class TamTamTable:
def quit(self, argv):
print 'quitting...'
sys.exit(0)
-