Assistant Composer

Introduction to Moritz Assistant Composer Assistant Performer Krystals 4.0


The Assistant Composer began to exist early in 2010, and is a program for writing real compositions which can be interpreted by the Assistant Performer. It is, (like Moritz and Act Two itself) going to evolve continuously, learning by experience over time.
While the individual compositions will obviously be related to my personal history and taste, this project may well produce spin-off which is useful elsewhere. Looking for generalizations is an integral part of my work. Finding them means, for me, re-usable software and therefore progress.

Why ornaments?

Ornaments describe the level of information, below the chord level, normally dealt with by signal processing software such as Max/MSP or SuperCollider. It is important that this boundary is not too sharply drawn.
Also (and equally important): The smallest events notated in humanly readable music notation are chords. These are the smallest logical units which can be used to create musical forms. Adding information (ornaments) to them makes them more recognizable, and the entire form more comprehensible.
Compare the situation with the examples in Moritz’ Ornaments documentation in which the following diagram serves as a ‘score’. Colouring the individual values enables them to be found more easily, and the krystal’s (i.e. the recorded example’s) form to be better understood.

Assistant Composer (March 2012)

Input Dialogs

The Assistant Composer’s input dialogs are currently as they were when the Study 2c scores and the Study 3 sketch were completed. These input dialogs may well change in future, in which case I will document the latest versions here.
Palettes are input dialogs which define (possibly complex) MIDI events, each of which can be associated with a particular chord symbol. Each palette determines the overall ‘colour’ for a composition, in the same way as a painter’s palette determines the overall ‘colour’ for a painting. A palette is simply a set of event types which have been balanced against each other, independently of the way they will eventually be used.
It is quite possible to use the same palette in different contexts (with different krystals, in different compositions etc.). Developing a palette is very much like developing a timbre, but at a higher level.
Note that palettes are a type for which it is possible to define special operations. Parameter values can be permuted, shifted and otherwise transformed with respect to their associated krystal values (left to right in the input fields). These operations may well be the subject of future work...

The Assistant Composer's opening dialog currently looks like this:
Assistant ComposerStudy2c1.1Main.png

When run, the Assistant Composer sends its krystal and palette inputs to an underlying algorithm which in turn creates an abstract score. The information in that abstract score can be used to create various different real scores. The Assistant Composer’s main window is therefore associated with an algorithm, and each of the algorithm’s real scores is available via the score pop-up menu at the top left of the dialog:


Starting the Assistant Composer with a particular score:
An easy way to create a new score for the same algorithm is therefore:
By convention in Study 2c:

Creating a new algorithm is done at the software level — a level which is currently beyond the scope of this website. I want, however, to turn Moritz into some form of open source project within the forseeable future.

The chord type pop-up selects bewteen two notation types: “standard chords” and “2b2”. The latter are the symbols which were used in Study 2b2. The following options can be set for standard chords (2b2 symbols have neither duration classes nor beams.):

midi channels per voice per staff input:
The MIDI channels created by the algorithm are displayed in blue above the text box (in this case 0, 1 and 2). The following help text is displayed if the blue text on the right is right-clicked:


The number of staves defined in this input field determine the (number of) permissible values in the following fields (clefs, stafflines per staff, staff groups etc. The help texts in the rest of the dialog are updated accordingly.

clefs per staff input:
t treble
t1 treble, sounding one octave higher
t2 treble, sounding two octaves higher
t3 treble, sounding three octaves higher
b bass
b1 bass, sounding one octave lower
b2 bass, sounding two octaves lower
b3 bass, sounding three octaves lower
n no clef

Page Dimensions and Metadata:

The Assistant Composer writes the information in the website links section to the top of page 1 of the score. In this case, a link is provided to the About Study 2 page on this website, and a Flash player containing the recording is created.

Study 2c uses the same three krystals as Study 2a and Study 2b, and it uses them in the same way to control the chords on single staves. See: Study2b:krystals.
Difference with respect to Study 2b: Krystals are now independent of palettes. Decaring them here simply makes them available to the underlying algorithm. (Study 3 sketch uses palettes, but no krystals.)

The lastest version of the palette dialog, is described in the Study 2c and Study 3 sketch documentation. Study 3 sketch, in particular, provides an extensive description of the new MIDI and audio buttons.
Differences with respect to the Study 2b palette dialog include:
  • the duration class and crotchet per minute fields have been removed. Duration classes now depend on the minimum crotchet duration set on the main Assistant Composer dialog.
  • the tempo factor field has been removed. Performance speed is now controlled by the Assistant Performer.
  • instrument patch and bank settings are now in the same input field.
  • envelope settings have moved here (from the ornament settings palette). Envelopes can now apply to chords, whether they are ornamented or not. Also, the usage in Study 2a was unnecessarily complicated.
  • ornament duration preferences are set here, not in the ornament settings palette.
  • MIDI and audio buttons have been added.

08.04.2013: I have been using the Microsoft GS Wavetable Synth as the standard MIDI output device during the composition and recordings of Study 1, Study 2 and the Study 3 sketch, but have now installed the CoolSoft VirtualMIDISynth and various compatible sound fonts as a flexible replacement.
This setup should result in better sounding mp3 recordings on this web site, but these recordings should still not be thought of as the final versions. A professional sound engineer has more control and expertees in this area than I have, and that control and expertees should be used!
The sound fonts will be acknowledged individually (with a link to a site where they can be downloaded) whenever they are used: for constructing palettes, making recordings, or in a live performance.

Introduction to Moritz Assistant Composer Assistant Performer Krystals 4.0