Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/Util/CSoundClient.py
diff options
context:
space:
mode:
authorJames <james@mackie.(none)>2007-03-20 21:24:13 (GMT)
committer James <james@mackie.(none)>2007-03-20 21:24:13 (GMT)
commit0b103f2f424878f469c00c411da5b5639a23e5c5 (patch)
tree95e1016a5acee29e06532c493afbee4cd61d6c21 /Util/CSoundClient.py
parent62dfc930747692c0e374aeb3581477698b549ced (diff)
TUNE_DIR, load save, parameter update in csoundclient
Diffstat (limited to 'Util/CSoundClient.py')
-rw-r--r--Util/CSoundClient.py62
1 files changed, 41 insertions, 21 deletions
diff --git a/Util/CSoundClient.py b/Util/CSoundClient.py
index 7fd7a41..8f4a131 100644
--- a/Util/CSoundClient.py
+++ b/Util/CSoundClient.py
@@ -13,6 +13,21 @@ from Util.Clooper.aclient import *
from Util import NoteDB
class _CSoundClientPlugin:
+
+ #array index constants for csound
+ (INSTR_TRACK, \
+ ONSET, \
+ DURATION, \
+ PITCH,
+ REVERBSEND, \
+ AMPLITUDE, \
+ PAN, \
+ INST_ID, \
+ ATTACK, \
+ DECAY, \
+ FILTERTYPE, \
+ FILTERCUTOFF ) = range(12)
+
def __init__(self):
sc_initialize( Config.PLUGIN_UNIVORC, Config.PLUGIN_DEBUG,
Config.PLUGIN_PERIOD, Config.PLUGIN_NPERIODS,
@@ -121,12 +136,12 @@ class _CSoundClientPlugin:
page = note.page
id = note.id
if note.cs.mode == 'mini':
- instrument_offset = 0
+ instrument_id_offset = 0
elif note.cs.mode == 'edit':
if Config.INSTRUMENTSID[note.cs.instrumentId].kit != None:
- instrument_offset = 0
+ instrument_id_offset = 0
else:
- instrument_offset = 100
+ instrument_id_offset = 100
if (parameter == NoteDB.PARAMETER.ONSET):
if (Config.DEBUG > 2): print 'INFO: updating onset', (page<<16)+id, value
sc_loop_updateEvent( (page<<16)+id, 1, value, cmd)
@@ -138,7 +153,7 @@ class _CSoundClientPlugin:
csoundInstId = instrument.csoundInstrumentId
csoundTable = Config.INSTRUMENT_TABLE_OFFSET + instrument.instrumentId
if (Config.DEBUG > 2): print 'INFO: updating drum instrument (pitch)', (page<<16)+id, instrument.name, csoundInstId
- sc_loop_updateEvent( (page<<16)+id, 0, (csoundInstId + instrument_offset) + note.track * 0.01, -1 )
+ sc_loop_updateEvent( (page<<16)+id, 0, (csoundInstId + instrument_id_offset) + note.track * 0.01, -1 )
sc_loop_updateEvent( (page<<16)+id, 7, csoundTable , -1 )
pitch = 1
else:
@@ -149,7 +164,7 @@ class _CSoundClientPlugin:
sc_loop_updateEvent( (page<<16)+id, 5, value, cmd)
elif (parameter == NoteDB.PARAMETER.DURATION):
if (Config.DEBUG > 2): print 'INFO: updating duration', (page<<16)+id, value
- sc_loop_updateEvent( (page<<16)+id, 2, value, cmd)
+ sc_loop_updateEvent( (page<<16)+id, self.DURATION, value, cmd)
elif (parameter == NoteDB.PARAMETER.INSTRUMENT):
pitch = note.cs.pitch
instrument = Config.INSTRUMENTSID[value]
@@ -161,11 +176,23 @@ class _CSoundClientPlugin:
loopEnd = instrument.loopEnd
crossDur = instrument.crossDur
if (Config.DEBUG > 2): print 'INFO: updating instrument', (page<<16)+id, instrument.name, csoundInstId
- sc_loop_updateEvent( (page<<16)+id, 0, (csoundInstId + instrument_offset) + note.track * 0.01, cmd )
+ sc_loop_updateEvent( (page<<16)+id, 0, (csoundInstId + instrument_id_offset) + note.track * 0.01, cmd )
sc_loop_updateEvent( (page<<16)+id, 7, csoundTable, -1 )
sc_loop_updateEvent( (page<<16)+id, 12, loopStart, -1 )
sc_loop_updateEvent( (page<<16)+id, 13, loopEnd, -1 )
sc_loop_updateEvent( (page<<16)+id, 14, crossDur , -1 )
+ elif (parameter == NoteDB.PARAMETER.PAN):
+ sc_loop_updateEvent( (page<<16)+id, self.PAN, value, cmd)
+ elif (parameter == NoteDB.PARAMETER.REVERB):
+ sc_loop_updateEvent( (page<<16)+id, self.REVERBSEND, value, cmd)
+ elif (parameter == NoteDB.PARAMETER.ATTACK):
+ sc_loop_updateEvent( (page<<16)+id, self.ATTACK, value, cmd)
+ elif (parameter == NoteDB.PARAMETER.DECAY):
+ sc_loop_updateEvent( (page<<16)+id, self.DECAY, value, cmd)
+ elif (parameter == NoteDB.PARAMETER.FILTERTYPE):
+ sc_loop_updateEvent( (page<<16)+id, self.FILTERTYPE, value, cmd)
+ elif (parameter == NoteDB.PARAMETER.FILTERCUTOFF):
+ sc_loop_updateEvent( (page<<16)+id, self.FILTERCUTOFF, value, cmd)
else:
if (Config.DEBUG > 0): print 'ERROR: loopUpdate(): unsupported parameter change'
@@ -197,13 +224,6 @@ class _CSoundClientPlugin:
csnote.instrumentId,
csnote.mode)
- INSTR_TRACK=0
- ONSET=1
- DURATION=2
- PITCH=3
- AMPLITUDE=5
- ATTACK=8
- DECAY=9
def csnote_to_array1( self, onset,
pitch,
amplitude,
@@ -228,27 +248,27 @@ class _CSoundClientPlugin:
pitch = GenerationConstants.TRANSPOSE[ pitch - 24 ]
time_in_ticks = 1
- instrument_offset = 0
+ instrument_id_offset = 0
# condition for tied notes
if instrument.csoundInstrumentId == Config.INST_TIED and tied and mode == 'mini':
duration = -1
- instrument_offset = 0
+ instrument_id_offset = 0
elif instrument.csoundInstrumentId == Config.INST_TIED and not tied and mode == 'mini':
- instrument_offset = 0
+ instrument_id_offset = 0
elif instrument.csoundInstrumentId == Config.INST_TIED and mode == 'edit':
- instrument_offset = 100
+ instrument_id_offset = 100
if instrument.csoundInstrumentId == Config.INST_SIMP and mode == 'mini':
- instrument_offset = 0
+ instrument_id_offset = 0
elif instrument.csoundInstrumentId == Config.INST_SIMP and mode == 'edit':
if instrument.soundClass == 'drum':
- instrument_offset = 0
+ instrument_id_offset = 0
else:
- instrument_offset = 100
+ instrument_id_offset = 100
a = array.array('f')
a.extend( [
- (instrument.csoundInstrumentId + trackId + instrument_offset) + trackId * 0.01,
+ (instrument.csoundInstrumentId + trackId + instrument_id_offset) + trackId * 0.01,
onset,
duration,
pitch,