EXAMPLE USING EVENT LIST AND PHRASING DYNAMICS, October 2004
The following example is a minstrel tune from the 1830's. Its modern
descendent is "Turkey in the Straw". The treatment is more complicated than
the introductory examples. It uses more than
two voices, delineates phrases with instrument changes and a special chord
treatment on the last beat, and illustrates the use of a compact syntax for
the events list. The actual input data will be given in a monospaced
typewriter-like font. For details of command syntax and options, see the
writeup .
First the tune and variants are given with several melody commands; 'zipryan'
is a transcription with the original slurs indicated, 'ziphalf' has been
constructed by taking every other 1/16 note and lengthening them to 1/8 notes
(to accommodate the slow rise on the dulcimer samples), and 'zipbass'
uses notes from the unison/octave chords on the beats for an electric string
bass augmentation of the backup.
melody zipryan
% From Ryan's Mammoth Collection (original slurs)
% chords generated by VAMP: harmony 35
T:Old Zip Coon -- Reel
M:2/4
L: 1/16
K:A
|: (cB) |"A" AGAB A2(CD) |"A" EFEC E2(AB) |"A" c2c2 cBAB |"E" c2B2 B2(cB) |
|"A" AGAB A2(CD) |"A" EFEC E2(AB) |"A" cBcd ecAB |"A" c2A2 A2 :|
|: (AB) |"A" cdef e2(ed) |"A" cdef e2(ec) |"D" defg f2(fe) |"D" defg f2(fg) |
|"D" agaf "A"fece |"A" cdcA "E"B2(AB) |"F#m" c2(cA) BAFA |"A" E2A2 A2 :|
/melody
mel ziphalf
% extend every other note... for dulcimer
T:Old Zip Coon -- Reel
M:2/4
L: 1/8
K:A
|: c | A A A C | E E E A | c c c A | c B B c |
| A A A C | E E E A | c c e A | c A A :|
|: A | c e e e | c e e e | d f f f | d f f f |
| a a f c | c c B A | c c B F | E A A :|
/mel
mel zipbass
% Unison chord notes for string bass
T:Old Zip Coon -- Reel
M:2/4
L: 1/4
K:A
%% |: E,,,/8 z3/8 %% works ok, try tonal_center 04e.12
|: z/ | A,, E,, | A,, E,, | A,, E,, | E,, B,,,/ z/ |
| A,, E,, | A,, E,, | A,, E,, | A,, E,,/ :|
|: z/ | A,, E,, | A,, E,, | D,, A,,, | D,, A,,,/ z/ |
| D,, A,,, | A,, E,, | F,, C,, | A,, E,,/ :|
/mel
The vamp command names and defines chord sequences which will be used later
in the chord command. The convention is that lower case names refer to a
full measure (4 chords) and upper case names refer to a half measure
(2 chords). Variants are used at the end of the phrase (e.g. a*, e*) and at
the end of the tune (e.g. a*3 and a**). The special vamps 'z1' and 'a*3' are
used to accomodate the shift of the beat introduced by the lead-in notes
'(cB)'. A standard musical staff representation is given for selected vamps.
vamp
% These derive from Peter Barnes' "Interview with a Vamper"
L: 1/8 % to give 2 quarter notes (beats) per measure
K: C
a | [A,,,A,,] [A,^CE] [E,,,E,,] [A,^CE] |
d | [D,,D,] [A,D^F] [A,,,A,,] [A,D^F] |
e | [E,,E,] [BE^G] [B,,,B,,] [BE^G] |
% half measure chords
A | [A,,,A,,] [A,^CE] |
D | [D,,D,] [A,D^F] |
E | [E,,E,] [BE^G] |
% end of phrase (silent on 8th offbeat)
a* | [A,,,A,,] [A,^CE] [A,^CEA] [z] |
d* | [D,,D,] [A,D^F] [dD^FA] [z] |
e* | [E,,E,] [BE^G] [eE^GB] [z] |
% end of tune (coda/cadence.. long final unison)
a** | [A,,,A,,] [A,^CE] [A,,,2A,,2] |
%
zphr | [z4] [z4] [z4] [z4] | % silent 8 beat phrase
zz | [z] [z] [z] [z] | % single silent measure for separation
/vamp
% and a few extra chords
vamp
L:1/8
K:A
z1 | [z] | %% to synch with lead ins
a*3 | [A,,,A,,] [A,CE] [A,CEA] | %% last a* to match z1
f#m | [F,,F,] [FAC] [C,,C,] [FAC] |
/vamp
Chords were assigned using the 'harmony 35' command. and modified
at the end of the phrase by changing the unison-triad pair into a triad-rest
pair. There is no repeat syntax defined for the chord command, so the
sequences are written out twice. Note the use of z1 and a*3 to synchronize
with the lead-in notes. For the final repeat, 'last' plays a prolonged
chord for the final beat. To play suppress the basic vamp on the piano
during the second repetition, the chord sequence 'silent' is used.
chords silent
zphr zphr zphr zphr zphr zphr zphr zphr
/chords
chords h35
z1 a a a e* a a a a* a a a e* a a a a*
a a d d* D A A E f#m a* a a d d* D A A E f#m a*3
/chords
chords last
z1 a a a e* a a a a* a a a e* a a a a*
a a d d* D A A E f#m a* a a d d* D A A E f#m a**
/chords
Accent and phrasing commands are used to define the loudness levels
for chords and melody respectively. The command 'param 5 30'
sets the global staccato durations for melody and chords to 5 and 30 ticks
respectively. The default duration of a quarter note is 120 ticks, so this
amounts to a sixteenth note on staccato chords (triads), and only a 1/96th
note for melody. The accent 'zboomchuck' plays staccato triads at velocity
100 (about 'f') and uses a hypermeter '116 104 108 104 112 104 108 104' for
the unisons. The range is approximately that between 'ff' and 'f';
conceivably a larger range could be used.
Short phrase commands ('mute', 'all', 'odd', 'even') are used as switches
to turn instruments on and off for the melody, so that different phrases
are played by different instruments or in some cases doubled by two
instruments. A pattern of dynamic change within phrases and strains is
set globally by 'danceff' which is added to the instrumental levels; in
the first half, each phrase gets louder in the middle, in the second half,
the pattern occurs over two phrases (the repeat of strain B is louder).
param 5 30
accent zboomchuck % delayed for leadin offset, log velocity
.100 116 .100 104 .100 108 .100 104
.100 112 .100 104 .100 108 .100 104
/accent
phrase mute
ppp 8;
/phrase
phrase odd
ff 8; ppp 8;
/phrase
phrase even
ppp 8; ff 8;
/phrase
phrase all
ff 8;
/phrase
phrase danceff
mf < ff 4 >mf 4; <4 >4; < ff 4> mf 4; <4>4; <8;>8;
Finally all the definitions are used in an event list. We illustrate
the newer shorthand syntax where the program reformats the information
into individual event lines and an instrument list. This example
produces four repeats of the tune; 'instrument 35' is an electric bass.
Immediate playback is turned off by the -1 in the options command;
the 2 and 4 set the slur and chop times for the fiddle,
The generate command makes a MIDI file.
Melody is played (with variations) on three instruments: fiddle, clarinet,
and dulcimer. For backup, the piano plays a basic vamp and an electric
bass plays the root notes of the unisons on the beat. Clarinet, piano, and
bass play the first repeat. In the second repeat, the piano drops out and
the clarinet and fiddle play alternate phrases. A dulcimer comes in
on the third repeat, playing a simplified melody line. The piano is
back on the third repeat, and the fiddle doubles the melody on even
phrases. For the final time through, the fiddle, dulcimer and piano play.
options -1 2 4
# clarinet and fiddle; dulcimer on half, bass on roots, piano
events
0 danceff
melody zipryan
clarinet all odd all mute
fiddle mute even 2 all
melody ziphalf
dulcimer mute 2 all even
melody zipbass
instrument 35 all 3 mute
chords h35 3 last
piano zboomchuck silent zboomchuck
/events
gen prezipff.midi