7.2. Creating and Editing Clones

First, using EventMode midi and instrument 0, a Texture with a descending melodic arc will be created. The Texture's time range is set from 0 to 6. The Texture's rhythm employs the ParameterObject convertSecond and uses a standard Generator ParameterObject to create raw duration values in seconds. Finally, This Texture, using a Path only as a reference pitch, employs the Texture's local field to provide harmonic shape.

Example 7-1. Creating a Texture

[PI()TI()] :: emo m 
EventMode mode set to: midi.

[PI()TI()] :: tin a1 0
TI a1 created.

[PI(auto)TI(a1)] :: tie t 0,6
TI a1: parameter time range updated.

[PI(auto)TI(a1)] :: tie r cs,(wpd,e,16,2,0,.6,.02)
TI a1: parameter rhythm updated.

[PI(auto)TI(a1)] :: tie f wpd,e,16,2,0,12,-24
TI a1: parameter local field updated.

[PI(auto)TI(a1)] :: tiv
TI: a1, TM: LineGroove, TC: 0, TT: TwelveEqual
pitchMode: pitchSpace, polyMode: set, silenceMode: off, postMapMode: on
midiProgram: piano1
   status: +, duration: 00.0--6.41
(i)nstrument        0 (generalMidi: piano1)
(t)ime range        0.0--6.0
(b)pm               constant, 120
(r)hythm            convertSecond, (wavePowerDown, event, (constant, 16), 2, 0,
                    (constant, 0.6), (constant, 0.02))
(p)ath              auto
                    (C4)
                    6.00(s)
local (f)ield       wavePowerDown, event, (constant, 16), 2, 0, (constant, 12),
                    (constant, -24)
local (o)ctave      constant, 0
(a)mplitude         constant, 0.9
pan(n)ing           constant, 0.5
au(x)iliary         none
texture (s)tatic
   s0               parallelMotionList, (), 0.0
   s1               pitchSelectorControl, randomPermutate            
   s2               levelFieldMonophonic, event
   s3               levelOctaveMonophonic, event
texture (d)ynamic   none

After creating a Texture, a Clone can be created with the command TCn, for TextureClone New. The user is prompted to enter the name of the new Clone. By default, the Filter ParameterObject filterAdd is applied to the start time of all events with a duration equal to one Pulse. As with Textures, a Clone can be displayed with the TCv command. After displaying the Clone, the user examines the documentation for ParameterObject filterAdd:

Example 7-2. Creating and Viewing a Clone with TCn and TCv

[PI(auto)TI(a1)] :: tcn
name this TextureClone: w1
TC w1 created.

[PI(auto)TI(a1)] :: tcv
TC: w1, TI: a1
   status: +, duration: 00.5--6.91
(t)ime              filterAdd, (loop, ((1,1,+)), orderedCyclic) 
s(u)stain           bypass                                      
a(c)cent            bypass                                      
local (f)ield       bypass                                      
local (o)ctave      bypass                                      
(a)mplitude         bypass                                      
pan(n)ing           bypass                                      
au(x)iliary         none                                        
clone (s)tatic                                                  
   s0               timeReferenceSource, textureTime            
   s1               retrogradeMethodToggle, off  
   
[PI(auto)TI(a1)] :: tpv fa
Filter ParameterObject
{name,documentation}
FilterAdd           filterAdd, parameterObject
                    Description: Each value is added to the value produced by
                    the ParameterObject. Arguments: (1) name, (2)
                    parameterObject {operator value generator}

The Filter ParameterObject bypass is the default for most Clone attributes. This ParameterObject simply passes values through to the Clone unaltered.

Upon creating a new EventList and auditioning the results (with ELn and ELh, see Section 2.5 for more information), the descending melodic line of a1 can be heard echoed by Clone w1. In the following example, another Clone is created called w2. This Clone is then edited to have a time value that, rather than shifted by a constant, is scaled by a value that oscillates between 1 and 2. The Clone's local field filter is also set to transpose the Texture's pitches seven half-steps down. The procedure for editing Clone ParameterObjects is similar to that for editing Textures, except for that only Filter ParameterObjects can be provided.

Example 7-3. Editing a Clone with TCe

[PI(auto)TI(a1)] :: tcn
name this TextureClone: w2
TC w2 created.

[PI(auto)TI(a1)] :: tpv fma
Filter ParameterObject
{name,documentation}
FilterMultiplyAnchor filterMultiplyAnchor, anchorString, parameterObject
                     Description: All input values are first shifted so that the
                     position specified by anchor is zero; then each value is
                     multiplied by the value produced by the parameterObject.
                     All values are then re-shifted so that zero returns to its
                     former position. Arguments: (1) name, (2) anchorString
                     {'lower', 'upper', 'average', 'median'}, (3)
                     parameterObject {operator value generator}

[PI(auto)TI(a1)] :: tce 
edit TC a1
which parameter? (t,u,c,f,o,a,n,x,s): t
current time: filterAdd, (loop, ((1,1,+)), orderedCyclic)
new value: fma, l, (ws, e, 8, 0, 1, 2)
TC w2: parameter time updated.

[PI(auto)TI(a1)] :: tce
edit TC a1
which parameter? (t,u,c,f,o,a,n,x,s): f
current local field: bypass
new value: fa, (c, -7)
TC w2: parameter local field updated.

[PI(auto)TI(a1)] :: tcv
TC: w2, TI: a1
   status: +, duration: 000.0--11.41
(t)ime              filterMultiplyAnchor, lower, (waveSine, event, 8, 0,
                    (constant, 1), (constant, 2))
s(u)stain           bypass
a(c)cent            bypass
local (f)ield       filterAdd, (constant, -7)
local (o)ctave      bypass
(a)mplitude         bypass
pan(n)ing           bypass
au(x)iliary         none
clone (s)tatic
   s0               timeReferenceSource, textureTime
   s1               retrogradeMethodToggle, off

As with Textures and other objects in athenaCL, Clones can be listed with the TCls command, and the active Clone can be selected with the TCo command. Further, upon examining the parent Texture with TIls, notice that two Clones are now displayed under the TC heading:

Example 7-4. Listing and Selecting Clones with TCls and TCo

[PI(auto)TI(a1)] :: tcls
TextureClones of TI a1
{name,status,duration}
 + w2               + 000.0--11.41    
   w1               + 00.5--6.91      

[PI(auto)TI(a1)] :: tco w1
TC w1 of TI a1 now active.

[PI(auto)TI(a1)] :: tils
TextureInstances available:
{name,status,TM,PI,instrument,time,TC}
 + a1               + LineGroove  auto        0   0.0--6.0   2

Clones features special transformations selected by CloneStatic ParameterObjects. In the following example, a new Clone is created named w3. The CloneStatic ParameterObject retrogradeMethodToggle is set to timeInverse, causing the Clone to create a retrograde presentation of the Texture's events. Additionally, the Clone's time attributes is set with a filterMultuplyAnchor ParameterObject and the Clone's field attributes is set with a filterAdd ParameterObject:

Example 7-5. Creating and Editing Clones

[PI(auto)TI(a1)] :: tpv retrograde
Clone Static ParameterObject
{name,documentation}
retrogradeMethodToggle retrogradeMethodToggle, name
                       Description: Selects type of retrograde transformation
                       applied to Texture. Arguments: (1) name, (2) name
                       {'timeInverse', 'eventInverse', 'off'}

[PI(auto)TI(a1)] :: tcn
name this TextureClone: w3
TC w3 created.

[PI(auto)TI(a1)] :: tce
edit TC a1
which parameter? (t,u,c,f,o,a,n,x,s): s
select a static clone parameter to edit, from s0 to s1: 1
current value for c1: off
new value: timeinverse
TC w3: parameter clone static updated.

[PI(auto)TI(a1)] :: tce t fma,l,(c,2.5)
TC w3: parameter time updated.

[PI(auto)TI(a1)] :: tce f fa,(c,7) 
TC w3: parameter local field updated.

The TEmap command displays all Textures as well as all Texture Clones. Texture Clones appear under their parent Clone. Textures and Clones, further, can be muted independently.

Example 7-6. Viewing Textures and Clones with TEmap

[PI(auto)TI(a1)] :: temap
TextureEnsemble Map:
15.22s              |      .       |      .       |      .      |       .      |
a1                  _________________________                                   
   w3               ............................................................
   w2               .............................................               
   w1                 .........................