Articulation, dynamics, performance indications, and note-heads
Articulation, dynamics, slurs, and performance indications, as well as
note-head styles, for both CMN and LilyPond output, can be attached to
the musical data generated by slippery chicken in two
ways. The first method is to specify the desired marks using
the :marks
keyword when defining
the rthm-seq-palette
within a call to
the make-slippery-chicken
function (see the page on rthm-seq-palettes
and rthm-seq-maps for more detail). This attaches the given marks
directly to the marks
slot of the
corresponding rthm-seq
object. That is the method that will be introduced on this page.
The second method is to add the marks after
the slippery-chicken
object has been generated. That approach is covered on the page for
post-generation editing
techniques. Some marks, such as LilyPond trills, can only be added
using this second method.
+ Adding marks, performance indications, and dynamics via :marks
Articulation, dynamics and some performance indications can be
attached to
individual rhythm
objects by enclosing them within the definitions of
the rthm-seq
objects of
the rthm-seq-palette
.
This is done using the :marks
keyword followed by a
list. (Also see the User Guide page
on the rthm-seq object.)
:marks (a 1 s 3 slur 5 6 dim-beg 9 dim-end 13)
The list indicates the mark to be added, such as a
for
an accent or s
for staccato, followed by an index number
or numbers (counting from 1) for the specific rhythm
object within the rthm-seq
to which the mark is to be
attached. The indication (a 1 s 3)
, therefore, results
in an accent being attached to the first rhythm
item of
the rthm-seq
and a staccato dot being attached to the
third. Slurs are indicated by two numerals, the first being the
rhythm
item where the slur begins, and the second the
rhythm
item where it ends. Separate marks are included
sequentially in the same list separated only by a space.
When two numbers follow a mark indication, the mark is attached to all
rhythm
objects from the position in
the rthm-seq
indicated by the first number to the
position indicated by the second. Thus (a 1 4)
attaches
an accent to rhythm
items 1, 2, 3 and 4 of the
sequence. When more than two numbers follow the mark indication, the
mark is only attached to those individual rhythm
items. Thus (a 1 3 5)
attaches an accent
to rhythm
objects 1, 3 and 5 of the
given rthm-seq
.
User-defined performance indications can be added to any note by placing the desired text in quotation marks:
:marks ("etwas rascher" 1)
Dynamics can be attached in the same way.
:marks (ppp 1 cresc-beg 2 cresc-end 4 fff 5)
Any kind of mark can be interspersed with other marks and note-head indications in the same list.
:marks (ppp 1 a 1 3 5 s 2 "like a whisper" 4 slur 6 7 slash 3 8)
Indications for slurs and phrase markings can be given in two
ways. The first way is to attach the beg-sl
and end-sl
or beg-phrase
and end-phrase
marks to the corresponding rhythms:
:marks (beg-sl 1 end-sl 2 beg-sl 5 end-sl 6 beg-phrase 1 end-phrase 8)
Alternatively, these two items can be added by using the
marks slur
and phrase
followed by the
starting and ending rhythm:
:marks (slur 1 2 slur 5 6 phrase 1 8)
When adding marks that require a beginning and ending indication via
the :marks
slot, including the beg-sl
and end-sl
version of slurs or
the beg-phrase
and end-phrase
version of
phrase markings, the user should always include both
the beg-
and end-
versions of the mark in the same rthm-seq
to avoid
errors or unwanted artifacts in the score. To add marks whose
beginning and end points lie in separate sequences,
use post-generation editing
methods instead.
It is important to note that marks are attached
to rhythm
objects of the rthm-seq
, and not
to items in the pitch-seq
of
the pitch-seq-palette
. Two tied rhythmic values are
counted as separate items. This means that marks can be
attached to notes that are tied from the previous note.
Marks that are attached via the marks
slot will appear
in the score whenever that rthm-seq
occurs, with no
consideration for the instrument or combination of instruments
playing. For this reason, the user may wish to add some marks, such
as dynamics, by using
the post-generation editing
methods instead.
Only dynamic marks will affect MIDI output.
Marks and dynamics that can be attached to rhythm
objects using the :marks
keyword are found in
the tables of marks below. It is important to
note that some marks are only available for CMN or LilyPond. These
are pointed out in the tables.
+ Changing note-heads via :marks
The marks
slot can also be used to change the note
heads of one or more notes in a rthm-seq
. This is done
using the same syntax as for the articulations, dynamics, and
performance indications.
:marks (x-head 1 slash 5)
An entire passage can be changed to a different note-head by following the name of the note-head with two numbers.
:marks (slash 1 8)
As stated above, note-head marks can be interspersed with any other type of mark in the same list.
:marks (ppp 1 a 1 3 5 s 2 "like a whisper" 4 slur 6 7 slash 3 8)
The types of note-heads available can be found in the tables of marks below. As with the other marks and dynamics, some note-head types are only available to CMN or LilyPond.
+ LilyPond arrows
LilyPond has an additional option for placing horizontal arrows
above a player's staff in the score. This is done in post-generation
editing using the add-arrow-to-events
method.
The add-arrow-to-events
method takes as its arguments
a slippery-chicken
object, the text to be placed at the
beginning and end of the arrow, both as strings, followed by
references to the bars and notes where the arrow is to start and end,
and the player. If no text is desired for either the start or end of
the arrow, the user must enter a single space as a string
(" "
), rather than an empty string
(""
). The bar and note references are each specified as
two-item lists, with the first item being the bar number and the
second item being the index of the note-event in the bar. (NB:
The note-event index counts both notes and rests and starts at
1.) The player
must be specified exactly as it is defined in
the ensemble
block.
(let ((mini (make-slippery-chicken '+mini+ :title "mini" :instrument-palette +slippery-chicken-standard-instrument-palette+ :ensemble '(((vn (violin :midi-channel 1)))) :tempo-map '((1 (q 60))) :set-palette '((1 ((c4 d4 e4 f4 g4 a4 b4 c5)))) :set-map '((1 (1 1 1))) :rthm-seq-palette '((1 ((((4 4) - e e e e - - e e e e -)) :pitch-seq-palette ((1 2 3 4 5 6 7 8))))) :rthm-seq-map '((1 ((vn (1 1 1)))))))) (add-arrow-to-events +mini+ "start" "end" '(1 5) '(3 4) 'vn ) (write-lp-data-for-all mini :base-path "/tmp/"))
![]() |
+ LilyPond marks that use graphics files
A number of marks available in slippery chicken are
attached to the data of a slippery-chicken
object by
using specially designed graphics files in conjunction with
LilyPond. This is done by setting the :use-custom-markup
argument of the write-lp-data-for-all
method
to T
and placing the names of these marks in
the :marks
slot of the given rthm-seq
object.
The LilyPond graphics files required for this can be obtained from
the
other files page. The
individual .eps
files in the downloaded archive must be
placed in the same directory as the .ly
files that are
to be processed. Once this is done, using LilyPond.app (on Mac) or
LilyPad.exe (on Windows) to generate the PDFs of the
given .ly
file will automatically access
the .eps
files and insert them into the score. If
using lilypond
on Linux, or
running lilypond
from the command line on a Mac, the
user must be sure to also cd
to the directory where
the .eps
and .ly
files are located before
running the program.
The LilyPond marks currently available that require graphics are:
aeolian-dark | ![]() |
aeolian-light | ![]() |
bracket-end | ![]() |
mphonic-arr | ![]() |
mphonic-cluster | ![]() |
mphonic-cons | ![]() |
mphonic-diss | ![]() |
sing | ![]() |
sing-arr | ![]() |
arrow-up-down | ![]() |
These can be used as follows:
(let ((mini (make-slippery-chicken '+mini+ :title "mini" :instrument-palette +slippery-chicken-standard-instrument-palette+ :ensemble '(((fl (flute :midi-channel 1)))) :tempo-map '((1 (q 60))) :set-palette '((1 ((c4 d4 e4 f4 g4 a4 b4 c5)))) :set-map '((1 (1))) :rthm-seq-palette '((1 ((((4 4) h. (q)) ((q) h.) ((e) e (q) - e e e e -)) :pitch-seq-palette ((1 2 3 4 5 6 7)) :marks (aeolian-dark 1 mphonic-arr 2 arrow-up-down 3 bracket-end 7)))) :rthm-seq-map '((1 ((fl (1)))))))) (write-lp-data-for-all mini :base-path "/tmp/" :use-custom-markup t))
![]() |
Tables of marks
+ Articulation and performance indications
mark | :mark |
---|---|
accent | a |
accented staccato | as |
accented tenuto | at |
arco | arco |
bartok pizzicato (see note) | bartok |
battuto abbrev. | batt |
col legno | col-legno |
col legno abbrev. | cl |
col legno battuto abbrev. | clb |
col legno tratto abbrev. | clt |
crescendo begin | cresc-beg |
crescendo end | cresc-end |
diminuendo begin | dim-beg |
diminuendo end | dim-end |
fermata | pause |
glissando begin (see note) | beg-gliss |
glissando end (see note) | end-gliss |
left-handed pizzicato | lhp |
molto vibrato | mv |
natural harmonic | harm |
open note | open |
ordinario | ord |
ottava begin (see note) | beg-8va |
ottava end | end-8va |
ottava bassa begin (see note) | beg-8vb |
ottava bassa end | end-8vb |
phrase mark begin | beg-phrase |
phrase mark end | end-phrase |
pizzicato | pizz |
pizzicato in parentheses | pizzp |
poco crini | poco-crini |
senza vibrato | sv |
short pause (see note) | short-pause |
slur begin | beg-sl |
slur end | end-sl |
staccato | s |
string indications | I , II , III ,
IV |
sul ponticello abbrev. | sp |
sustain pedal change | ped^ |
sustain pedal down | ped |
sustain pedal up | ped-up |
tenuto | te |
tenuto-staccato | ts |
tre corda | tc |
tremolo (3 slashes through stem) | t3 |
una corda | uc |
CMN-only articulation and performance indications
mark | :mark |
---|---|
additional CMN string indications | I-II , I-II-III ,
II-III , III-IV |
fingernail | nail |
stopped note | stopped |
trill with flat accidental | trill-f |
trill with natural accidental | trill-n |
trill with sharp accidental | trill-s |
Notes
- bartok pizzicato: To use
bartok
with LilyPond, you must set the:use-custom-markup
keyword toT
when callingwrite-lp-data-for-all
. - beg-gliss: Adding a gliss to a chord is not possible in CMN; try adding to a note in the chord instead.
- end-gliss: There is no separate
command for ending a glissando in LilyPond, as there is in CMN;
however, place the
end-gliss
anyway and slippery chicken will handle it internally. - beg-8va/end-8va, beg-8vb/end-8vb: When LilyPond encounters these marks it will automatically transpose the pitches in the score by an octave. CMN does not do this.
- short pause: There is no short pause in CMN, so it is replaced by a normal fermata.
+ Dynamics
mark | :mark |
---|---|
pppp | pppp |
ppp | ppp |
pp | pp |
p | p |
mp | mp |
mf | mf |
f | f |
ff | ff |
fff | fff |
ffff | ffff |
CMN-only dynamics
mark | :mark |
---|---|
pppp in parentheses | pppp-p |
ppp in parentheses | ppp-p |
pp in parentheses | pp-p |
p in parentheses | p-p |
mp in parentheses | mp-p |
mf in parentheses | mf-p |
f in parentheses | f-p |
ff in parentheses | ff-p |
fff in parentheses | fff-p |
ffff in parentheses | ffff-p |
+ Note-heads
mark | :mark |
---|---|
circled x | circled-x |
upwards pointing triangle | triangle-up |
x | x-head |
CMN-only note-heads
mark | :mark |
---|---|
airy notehead | airy-head |
downward-pointing arrow | arrow-down |
flageolet notehead | flag-head |
no notehead | none |
slash | slash |
square | square |
upward-pointing arrow | arrow-up |
LilyPond-only note-heads
triangle pointing right | triangle |