Editing Instruments and Altering EventMode

A Texture's instrument can be edited like other Texture attributes. The instruments available for editing, just as when creating a Texture, are dependent on the active EventMode. To use instruments from another EventMode, the active EventMode must first be changed, and then the Texture may be assigned an instrument.

In the following example, the user changes the EventMode to csoundNative with EMo, examines the available instruments with EMi, and then assigns each Texture instrument 80:

Changing EventMode and editing Texture instrument

pi{auto-muteHiConga}ti{a1} :: emo cn
EventMode mode set to: csoundNative.

pi{auto-muteHiConga}ti{a1} :: emi
csoundNative instruments:
{number,name}
   3      sineDrone                        
   4      sineUnitEnvelope                 
   5      sawDrone                         
   6      sawUnitEnvelope                  
   11     noiseWhite                       
   12     noisePitched                     
   13     noiseUnitEnvelope                
   14     noiseTambourine                  
   15     noiseUnitEnvelopeBandpass        
   16     noiseSahNoiseUnitEnvelope        
   17     noiseSahNoiseUnitEnvelopeDistort 
   20     fmBasic                          
   21     fmClarinet                       
   22     fmWoodDrum                       
   23     fmString                         
   30     samplerReverb                    
   31     samplerRaw                       
   32     samplerUnitEnvelope              
   33     samplerUnitEnvelopeBandpass      
   34     samplerUnitEnvelopeDistort       
   35     samplerUnitEnvelopeParametric    
   36     samplerSahNoiseUnitEnvelope      
   40     vocodeNoiseSingle                
   41     vocodeNoiseSingleGlissando       
   42     vocodeNoiseQuadRemap             
   43     vocodeNoiseQuadScale             
   44     vocodeNoiseQuadScaleRemap        
   45     vocodeNoiseOctScale              
   46     vocodeNoiseOctScaleRemap         
   47     vocodeNoiseBiOctScale            
   48     vocodeNoiseTriOctScale           
   50     guitarNylonNormal                
   51     guitarNylonLegato                
   52     guitarNylonHarmonic              
   60     additiveBellBright               
   61     additiveBellDark                 
   62     additiveBellClear                
   70     synthRezzy                       
   71     synthWaveformVibrato             
   72     synthVcoAudioEnvelopeSineQuad    
   73     synthVcoAudioEnvelopeSquareQuad  
   74     synthVcoDistort                  
   80     pluckTamHats                     
   81     pluckFormant                     
   82     pluckUnitEnvelope                
   110    noiseAudioEnvelopeSineQuad       
   111    noiseAudioEnvelopeSquareQuad     
   130    samplerAudioEnvelopeSineQuad     
   131    samplerAudioEnvelopeSquareQuad   
   132    samplerAudioFileEnvelopeFilter   
   133    samplerAudioFileEnvelopeFollow   
   140    vocodeSineOctScale               
   141    vocodeSineOctScaleRemap          
   142    vocodeSineBiOctScale             
   143    vocodeSineTriOctScale            
   144    vocodeSineQuadOctScale           
   145    vocodeSinePentOctScale           
   146    vocodeSineHexOctScale            
   230    samplerVarispeed                 
   231    samplerVarispeedAudioSine        
   232    samplerVarispeedReverb           
   233    samplerVarispeedDistort          
   234    samplerVarispeedSahNoiseDistort  
   240    vocodeVcoOctScale                
   241    vocodeVcoOctScaleRemap              

pi{auto-muteHiConga}ti{a1} :: tie i 80
baseTexture.py: WARNING: new Texture auxiliary value 2 
TI a1: parameter instrument updated.

pi{auto-muteHiConga}ti{a1} :: tio b1
TI b1 now active.

pi{auto-muteHiConga}ti{b1} :: tie i 80
baseTexture.py: WARNING: new Texture auxiliary value 2 
TI b1: parameter instrument updated.

pi{auto-muteHiConga}ti{b1} :: tiv
TI: b1, TM: LineGroove, TC: 0, TT: TwelveEqual
pitchMode: pitchSpace, silenceMode: off, postMapMode: on
midiProgram: piano1
      status: o, duration: 005.0--20.12
(i)nstrument        80 (csoundNative: pluckTamHats)
(t)ime range        05.0--20.0
(b)pm               wavePowerUp, time, (constant, 20), 0, 2, (constant, 120),
                    (constant, 300)
(r)hythm            loop, ((4,1,+),(4,1,+),(4,2,+),(4,3,+),(4,5,+),(4,3,+)),
                    randomWalk
(p)ath              auto-muteHiConga
                    (D4)
                    15.00(s)
local (f)ield       constant, 0
local (o)ctave      constant, 0
(a)mplitude         randomUniform, (constant, 0.6), (constant, 1)
pan(n)ing           wavePowerDown, event, (constant, 15), 0.25, 2.5, (constant,
                    0), (constant, 0.5)
au(x)iliary
      x0            cyclicGen, up, 0.1, 0.9, 0.1
      x1            cyclicGen, down, 800, 16000, 200
texture (s)tatic
      s0            parallelMotionList, (), 0.0
      s1            pitchSelectorControl, randomPermutate
      s2            levelFieldMonophonic, event
      s3            levelOctaveMonophonic, event
texture (d)ynamic   none

Notice that, after editing the Texture, a warning is issued. This warning tells the user that additional auxiliary ParameterObjects have been added. As a Csound-based instrument, each event of instrument 80 can accept two additional synthesis parameters. When viewing a Texture with this instrument, as shown above, the auxiliary display shows two additional ParameterObjects, x0 and x1. To learn what these auxiliary ParameterObjects control, the command TIdoc ma be used:

Examining Texture documentation with TIdoc

pi{auto-muteHiConga}ti{b1} :: tidoc
TI: b1, TM: LineGroove
(i)nstrument        80 (csoundNative: pluckTamHats)
(b)pm               (1) name, (2) stepString {'event', 'time'}, (3)
                    parameterObject {secPerCycle}, (4) phase, (5) exponent, (6)
                    min, (7) max
(r)hythm            (1) name, (2) pulseList {a list of Pulse notations}, (3)
                    selectionString {'randomChoice', 'randomWalk',
                    'randomPermutate', 'orderedCyclic',
                    'orderedCyclicRetrograde', 'orderedOscillate'}
local (f)ield       (1) name, (2) value
local (o)ctave      (1) name, (2) value
(a)mplitude         (1) name, (2) min, (3) max
pan(n)ing           (1) name, (2) stepString {'event', 'time'}, (3)
                    parameterObject {secPerCycle}, (4) phase, (5) exponent, (6)
                    min, (7) max
au(x)iliary
      x0            iparm (0-1)
                    (1) name, (2) directionString {'upDown', 'downUp', 'up',
                    'down'}, (3) min, (4) max, (5) increment
      x1            low-pass filter frequency
                    (1) name, (2) directionString {'upDown', 'downUp', 'up',
                    'down'}, (3) min, (4) max, (5) increment
texture (s)tatic
      s0            (1) name, (2) transpositionList, (3) timeDelay
      s1            (1) name, (2) selectionString {'randomChoice', 'randomWalk',
                    'randomPermutate', 'orderedCyclic',
                    'orderedCyclicRetrograde', 'orderedOscillate'}
      s2            (1) name, (2) level {'set', 'event'}
      s3            (1) name, (2) level {'set', 'event'}
texture (d)ynamic   none

Assuming that Csound is properly configured, a new set of EventLists can be created. As the user is now in EventMode csoundNative and has csoundNative textures, both a Csound score and a MIDI file are created. (See for more information on working with Csound in athenaCL.) The user may render the Csound score with ELr, and then audition the results with the ELh command.

Creating a new EventList with ELn

pi{auto-muteHiConga}ti{b1} :: eln
      EventList ath2010.07.03.18.40.11 complete:
/Volumes/xdisc/_scratch/ath2010.07.03.18.40.11.bat
/Volumes/xdisc/_scratch/ath2010.07.03.18.40.11.csd
/Volumes/xdisc/_scratch/ath2010.07.03.18.40.11.mid
/Volumes/xdisc/_scratch/ath2010.07.03.18.40.11.xml
audio rendering initiated: /Volumes/xdisc/_scratch/ath2010.07.03.18.40.11.bat
EventList hear initiated: /Volumes/xdisc/_scratch/ath2010.07.03.18.40.11.aif
EventList hear initiated: /Volumes/xdisc/_scratch/ath2010.07.03.18.40.11.mid