- Using the VSMM tool
By David Woolls - author of the VSMM tools.
VSMM stands for Very
Structured Melody Maker, and is a development of the Wbargen tools (Bargen
stands for Bar Generator). All
are primarily designed as composition aids but, rather than the simple
constructions of the lower numbered Wbargen's, VSMM produces complete
compositions in four part harmony and with cadential harmonic progression,
which is rather more than the author originally intended. This note concentrates on VSMM, but Tim
has left all the earlier tools in the Tools2 menu, partly because they all
produce something a little different and partly to provide a history of the
development for those of you interested in the process.
- First make sure you
have the latest release of Keykit. These notes refer to VSMM 3.1,
although the central operation is the same for VSMM 3.0.
- Bring up the VSMM tool,
with Tools2->VSMM 3.1
- What you see is a
large number of buttons at the top and a blank space at the bottom. The lower half is in fact a
fully functioning, although slightly modified, Group Tool which is
automatically filled and can be modified by the top section.
- To see what it does
just hit the Make button.
This gives you a drop down menu. Choose New Variation and the lower half of the screen
will fill with the Merged track and Tracks 1 to 4.
- Click the Play
button and you will hear a composition lasting 40 bars, in the key of C
and in 4/4 time. (You can use the normal right mouse click to start as
well, but the play button will always Play when the mouse button has
been set to a different instruction in the lower section).
- It will probably not be the most
wonderful music you have ever heard but it will be fully harmonised,
have a structure which moves in 4 bars, each section will finish with a
cadence of some sort and the final bar will finish with a perfect
cadence. The final four
bars will normally be the same as the first four.
- If there are
interesting phrases but you don't like the full composition you can
choose Make->Current Variation, and the program will use the existing
generated material and write you a new composition. If you don't like it at all
choose Make->New Variation.
You don't need to stop the playback, the program does that for
- Compositions are not
repeatable, so if you like what you hear save it before re-making. Click File->Save, and enter a
file name. In the version which should be in the latest download by the
time you read this, you don't need to enter the .mid suffix and the
program will save both the midi file and a copy of the page ( a .kp
file). For earlier releases,
as with Keykit normally, add the .mid suffix.
- You will see a
message in the console window like D:/Keykit72h/Music/KKNotes3.mid
has been written. D:/Keykit72h/Music/KKNotes3.kp has been written. You
will also see the full pathname in the Name: section at the top
of the music section, beside the Merged button.
- Tip: Because you can
compose in any key, major or minor and in a variety of time signatures, it
is a good idea to incorporate both in your titles, so that if you are
looking for a 2/4 march in D, or the piece you wrote in G minor and 7/4,
you can locate it by this information in the name.
- You can recover the
majority of the settings when you choose File->Read and pick a
midifile created by VSMM.
The tool won't allow you to load a track with more than 4 tracks,
which most other programs generate. (To recover everything recoverable, use Page->Read
and choose the .kp file with the name of the midifile you saved as a new
- You may have noticed
the absence of the trademark 'black splodge' in the Merged track. This is because VSMM picks up
all the data held in that splodge, which are primarily the tempo, key
and time signature, and places them in the appropriate places in the
upper section. It is also
helpful to have a clear view of the full chords when doing editing in
the lower section.
- You can use the Bar
range selectors O> and <32 (or howver many bars there are)
to do pick or expand a section.
If you have 32 bars and want to see the last four, set the first
range, which will have 1 in it to 29, then hit View. If you want to hear bars 17 to 20,
set the left range to 17, the right to 20, click on Pick. Those bars will then change to
red. Now click on Play, and the playback will start at 17 and stop at
the end of 20. You can use
the normal Pick and View options which go with the embedded group tool
if you can see which bits you want. These buttons just let you ask for precisely the
section you want, without having to guess the start and end point.
- Tip: All the buttons
on the right side refer to the current Pick, so you can Re-harmonise,
Transpose or Melodise individual bars or sections, if you want to hear
what it sounds like.
- Tip: Pulling the
Undo button off the Edit section is a very good idea. You will use it a lot when
experimenting. To do this
click Edit->Undo and holding the mouse down pull to the right. Then put the resultant Undo button
What is happening
- When you choose Make
the program generates a random number which it uses as its starting
point. This will always be
different and even if it wasn't the composition would always sound different
because it uses several random number generators to make its decisions,
which is why you should save anything you think you might like to do
something with later.
- VSMM is set by
default to generate 8 different 4 bar lines. You change the number of lines
by clicking T8 and choosing one of the other options. Giving the program less lines to
choose from increases the probability of the same lines appearing in
different voices. You change
the number of bars by clicking on the number beside Bars and
choosing a different set.
Four bar sections are common in classical and contemporary music,
but the program will make what you like best.
- As you will have
guessed by now, clicking on the 4/4, allows you to change time
signature. The current time
signature appears on the button once you have done this. The same goes for the key you
want to compose in, where you click on C, in the first instance,
and clicking on Major gives you other options. The 5 to 8 melody lines are composed taking account
of the time signature, giving appropriate groupings of notes for the
underlying rhythm implied by the time signature. At least 2 of the lines
will have longer note lengths than the rest, which produces the
different pace in a couple of
the four channels which you can often hear.
- Using the current
settings, VSMM then chooses between one and four of the generated lines
for each of the number of Sections, which default to 10,
but can be changed in the same way as Bars by clicking the number
beside Sections. VSMM can
choose the same set of four melody lines or different ones each time, or
combinations of the two. Or
it can simply repeat either the previous section or the first section in
- By default the
harmonising setting is H4, and you know how to change that by now,
although it does give the most satisfying musical output, so you will
probably want to leave it set.
H4 moves along a built-in harmonic progression using the
circle of fifths. It
harmonises each section as it is built. It can jump segments of the sequence but will always
provide a cadence at the end of a section. Chordal harmony is decided by the position in the
sequence and by the selection of either root or an inversion for the
placing of the notes vertically across the voices.
- The chords
themselves are formed by the vertical alignment of the note values of
the various strands from the selected generated sections. You can get false harmonies and doubtful
suspensions where the note values do not coincide in length, or can get
sections with block chords marching along where they do, sometimes too
many of them. You can
always edit out the bits you don't like, but most of the time the music
will sound reasonably good, although not infrequently as if it has been
harmonised by a novice music student with a hangover.
- The notes in between
the chords, where shorter note values in one line have no matches in the
other lines at that time position, are moved by the Melodiser function,
built into H4 but available as a button too. This makes sure that the
passing notes are in the right scale and also stops the music from
leaping about in single lines too much. It also sometimes means that the starts of repeated
sections are not identical to the original, since they are lined up with
the closing chord of the previous section.
- To hear what
untreated output sounds like, or if you just like an interesting noise
as opposed to harmony, set the H4 button to As it comes. You can hear how much work the
program has to do to get to H4 output. H1 to H3 are earlier attempts at providing
chordal harmony. You don't
get progression with these, but the chords sound correct.
- The time signatures
really do make a difference to the sound of the output. A few extreme ones are included
which can give very interesting syncopation effects, but even the
regular ones are worth exploring.
- There is a Make->Autogen
option, which chooses different time signatures for different segments. This can produce some eccentric effects,
if you are so minded.
- VSMM automatically
puts the latest construction into the Snarf, so you can open a Group
Tool, File->Read->Snarf and then File->Misc->Split on
channels, to get the four tracks showing. Or you can use the Window-Copy method from Keykit
- Remember that the
tracks in the lower section have all the facilities of the group tool,
so you can change instruments, mute tracks, or Snarf individual tracks
or sections. Although it writes whole compositions, it is not likely to
produce entirely satisfying tunes much of the time, so just take the
bits you think you can do something with and stitch them together in a
- Those of you who
like a lot of repetition can try re-setting the 5ths button to 3rds
or 2nds. These use different
harmonic progressions and the rules are not quite right, so a lot of
chords are repeated. Good
for practice in improving the harmonies! The adventurous musician/programmers might want to
delve into the code and improve it. The method in vsmm31.k is smmsetchord() .
- When you use Re-Harmonise
H4 you won't get the nice cadential endings, so you need to do them
yourself if you want them.