S


Intro       Symbols A B C D E F G H I J K L M N O P Q R S T U V W X Y Z       Index  
scale= &rest references [Function]

Returns true if references are equal scale degree entries in *standard-scale*. references may be a mixture of note, degree and pitch references.

Example:

? (scale= 69 'a4 440.0)
T

See Also:

scale/=, scale<, scale<=, scale>, scale>=, scale-max, scale-min, scale-member, *standard-scale*

 


scale/= &rest references [Function]

Returns true if references contains any different scale degree entries in *standard-scale*. references may be a mixture of note, degree and pitch references.

Example:

? (scale/= 69 'a4 440.0)
NIL

See Also:

scale/=, scale<, scale<=, scale>, scale>=, scale-max, scale-min, scale-member, *standard-scale*

 


scale< &rest references [Function]

Returns true if references are monotonically decreasing scale degree entries in *standard-scale*. references may be a mixture of note, degree and pitch references.

Example:

? (scale< 'a2 59 440.0)
T

See Also:

scale=, scale/=, scale<=, scale>, scale>=, scale-max, scale-min, scale-member, *standard-scale*

 


scale<= &rest references [Function]

Returns true if references contain nondecreasing scale degree entries in *standard-scale*. references may be a mixture of note, degree and pitch references.

Example:

? (scale<= 'a2 59 440.0)
T

See Also:

scale=, scale/=, scale<, scale>, scale>=, scale-max, scale-min, scale-member, *standard-scale*

 


scale> &rest references [Function]

Returns true if references are monotonically increasing scale degree entries in *standard-scale*. references may be a mixture of note, degree and pitch references.

Example:

? (scale> 'a2 59 440.0)
NIL

See Also:

scale=, scale/=, scale<, scale<=, scale>=, scale-max, scale-min, scale-member, *standard-scale*

 


scale>= &rest references [Function]

Returns true if references contain nonincreasing scale degree entries in *standard-scale*. references may be a mixture of note, degree and pitch references.

Example:

? (scale>= 'a2 59 440.0)
NIL

See Also:

scale=, scale/=, scale<, scale<=, scale>, scale-max, scale-min, scale-member, *standard-scale*

 


scale-max &rest references [Function]

Returns the highest reference in references. references may be a mixture of note, degree and pitch references.

Example:

? (scale-max 60 'a4 660.0)
660.0

See Also:

scale=, scale/=, scale<, scale<=, scale>, scale>=, scale-min, scale-member, *standard-scale*

 


scale-member ref references &key :copy :start :end :scale [Function]

Tests for a scale equivalent of ref in references, which can be either a list or vector of scale references. If found, the equivalent value is returned, otherwise nil. Ref and referencesmay be expressed using any combinations of note, degree, or pitch.

Example:

? (scale-member 60 '(c3 fs4 440.0 c4 60))
C4

See Also:

scale=, scale/=, scale<, scale<=, scale>, scale>=, scale-max, scale-min, *standard-scale*

 


scale-min &rest references [Function]

Returns the lowest reference in references. references may be a mixture of note, degree and pitch references.

Example:

? (scale-min 60 'a4 660.0)
60

See Also:

scale=, scale/=, scale<, scale<=, scale>, scale>=, scale-max, scale-member, *standard-scale*

 


sequence [Pattern]

Enumerate items in serial order. Once the last item is reached it is continually reselected by the pattern.

Example:

(setf x (items a b c d e in sequence))
#<SEQUENTIAL-ITEM-STREAM 136377321>

? (read-items x 10)
(A B C D E E E E E E)

See Also:

Item Streams,

 


series {interval}+ {option value [Macro]

Creates a cyclic interval stream for serial row operations. Each interval must be an integer, subpatterns are not allowed.

series implements the following option value pairs:

forming {p | i | r | ri | stream}
Sets the row form for the series. Legal row specifications are: p, prime, i, inversion, r, retrograde, ri, retrograde-inversion or a stream of specifications. The default row form is prime.
multiple {integer | stream}
Sets a scaler on the series. Defaults to 1.
modulus {integer | stream | nil}
Sets an interval modulus on the series. Defaults to none.
series also supports all options implemented by intervals.

Example:

? (setf x (series 0 1 2 3 4 5 6 from (notes a3 a5)
                  forming (items p i r ri)
                  returning note))
#<SERIES-STREAM 135213471>

? (read-items x 28)
(A3 AS3 B3 C4 CS4 D4 DS4 A5 GS5 G5 FS5 F5 E5 DS5 DS4 
 D4 CS4 C4 B3 AS3 A3 DS5 E5 F5 FS5 G5 GS5 A5)

See Also:

Item Streams,

 


SGIMix [Syntax]

Produces score file output for Mix, a sound mixing package that runs on the SGI. Mix is developed by Oyvind Hammer and the Common Music syntax was implemented by Anders Vinjar, both of NoTAM, Norway. Mix is available via anonymous FTP from ftp://notam.uio.no/pub/sgi/mix.tar.gz.

 


shuffle seq &key :copy :start :end :state [Function]

Returns a random reordering of seq, which can be either a list or vector of objects to shuffle. Reordering takes place between :start and :end, which default to the full length of the sequence. If seq is a list and :copy is t (the default) then a reordered copy of seq is returned, otherwise seq is destructively modified and returned.

Example:

? (shuffle '(a b c d e))
(B A E D C)
 
sprout object &optional merge [Function]

Enqueues object in merge, which defaults to the currently executing merge. sprout may be used in conjunction with mute to create musical structure dynamically, while musical processes are already running.

See Also:

mute, Describing Music Algorithmically

 


*standard-scale* [Variable]

*standard-scale* provides the default scale for note references. The initial value is the standard chromatic scale object held in the system constant *chromatic-scale*

See Also:

*chromatic-scale*, defscale, degrees, in-scale, notes, pitches

 


*standard-tempo* [Variable]

Provides the default metronome tempo value. The initial value is 60.0. If the system clock mode is :seconds, a floating point tempo results in floating point time calculations.

See Also:

clock-mode, in-tempo, rhythm, rhythms

 


status? status &optional algorithm [Function]

Returns true if status is the current status of algorithm. The value of status must be one of the following symbols:

:resting
True if the algorithm will not output an event.
:chording
True if the algorithm is currently executing a chord.
:ending
True if the algorithm is terminating.
:killed
True if the algorithm will terminate without output.
Additional status values appropriate to Music Kit note classes:

:noteOn
True if the algorithm will output a :noteOn.
:noteOff
True if the algorithm will output a :noteOff.
:noteUpdate
True if the algorithm will output a :noteUpdate

 


staves {staff}* [Macro]

Returns a list of staff descriptions for use with CMN output streams. Each staff is a list defining the overall characteristics for a CMN staff to be drawn:

(objects &key :name :clef :meter :recursive)

Objects are the Lisp objects that the stream's staffer function will hash on to return the actual CMN staff. If staffing is done by container (the default) then objects should be the symbolic names of the containers to group in the staff. If staffing by midi channel, objects should be the midi channel numbers (0 to 15) to include in the staff. For convenience, objects may be specified as a non-list if there is only one object for the staff.

Following objects comes optional keyword arguments:

:name {string}
The print name of the staff. Defaults to the printed representation of objects, if possible, or an auto-generated label if not.
:clef {symbol | (symbols)}
The clef or clefs that CMN should use when drawing data. If more than one clef is specified the first clef is the main clef and the rest are clefs that CMN is allowed to choose from when positioning data in the staff. If :clef is both then staff data will be drawn in short score (two staves, treble and bass). If :clef is omitted, CMN does whatever it thinks best.
:meter {number}
is the meter that CMN should use when drawing data. If omitted, data will be drawn without meter or bar lines. To specify a meter that applies to all staves, initialize the stream's meter slot using Stella's Open command.
:recursive {t | nil}
If true, sub-containers (if any) of each container specified in objects are automatically processed in the same staff. The default value is nil.

Example:

;;; Channel staffing, 0 to treble, 1 to bass or tenor
? (staves (0 :clef treble) (1 :clef (bass tenor)))

;;; container staffing, Foo and Bar in short score
? (staves ((foo bar) :clef both :name "Piano"))

See Also:

Working with CMN

 


steps {interval}+ {option value}* [Macro]

Creates an item stream of relative interval distances in a scale. Each interval may be an integer or an item stream. A step stream is identical to an interval stream except that its intervals describe relative distances from the last position returned from the pattern, rather from the transposition offset. Macro syntax is otherwise identical to that of intervals.

Example:

? (setf x (steps 1 2 3 in random from 'c4 for 8 returning note))
#<RANDOM-STEP-STREAM 130213351>

? (read-items x 16)
(C4 CS4 DS4 FS4 A4 AS4 C5 D5 C4 CS4 E4 G4 GS4 A4 AS4 CS5)

See Also:

intervals, Item Streams