Skip to content

4.3. Use Multiline Generator

Claudius Iacob edited this page Dec 2, 2021 · 2 revisions

Use Multiline Generator

As a prerequisite, you should get very acquainted with generators, and particularly with the Multiline Generator. Consult these articles, preferably in this order:

For basic operation, follow the instructions in Generate Music. Using the Multiline Generator, produce various spans of music that employ arbitrary configurations. Observe these guides while adjusting generator parameters:

1. Generic rules

These rules are inherent to the design of the new architecture and are therefore common to the Multiline Generator and any other module that might be built in the future based on the same architecture:

  • the new architecture allows for dynamic parameters to be used; therefore, you should decide beforehand whether you would like to generate a steady or evolving soundscape;

  • keep in mind that the music synthesis engine si still essentially stochastic, which implies that granular control over the resulting material is not possible. The engine is readily useful for prototyping musical ideas that are adequately expressed using constant or evolutionary parametric forces, but is generally not suitable for outputting music that "fits" in a given (third-party) context. The system is neither able, nor designed to produce finite, or ready-to-use music, and you should not attempt to use it in this way. You can, however, try to configure the generator so that it approximates your intended output, and then manually compile and/or adapt an acceptable outcome from several generated variants.

  • observe the effect of a particular parametric value statistically (i.e., over several generated variants), and only amend the parameter when you are positive that most variants exhibit a trait that can be clearly rooted in your current parameter's setting.

  • the new generator design comes with built-in support for templates and presets management: use them, they are there to help you. Templates combine a score setup with a pre-bound generator that has a preloaded configuration (or preset, if applicable). Take the time to save your own templates for scenarios you commonly use (just save the *.maid file to the templates folder); this time will pay off.

  • rather than generating musical content in large amounts (and trying to organize/formally articulate it using parameter evolution), it is better to generate smaller chunks and manually merge/join/blend them into longer phrases.

  • the very same parameter envelope(s) will yield more musically valuable output when applied to smaller areas than to larger ones (e.g., an 8 bars section as opposed to a 32 bars section). Compositional intentionality tends to become more manifest as it is more concise/compressed, and this gives music "weight".

  • the engine makes it trivial to produce several music snippets for the same idea/gesture (something one could name prototypal composition). This is something you might want to explore in your own creation.

  • unrelated to the new architecture but contemporary to it is MAIDENS' newly-added ability to export to the MusicXML interchange format. You should prefer it over other formats because it is more verbose than, e.g., MIDI, and more widespread. For one thing, Makemusic maintains an impressive list of more than 250 software that have at least partial support for MusicXML.

2. Multiline Generator specific rules

  • apart from the stochastic layer that adds a degree of unpredictability to the selection of musical durations actually being used, there is also a factor one could call rhythmical redundancy: the evolution envelope of the Durations Tendency parameter will not be consulted until the generator engine effectively needs to add a new duration.

    For example, if the Durations Tendency envelope describes a fall that is succeeded by a sudden rise and then by a slow calm down, there are 50% chances that the generator only produces one long duration (e.g., a whole): the sudden rise in the envelope will not generate the expected short durations (e.g., eights, sixteenths) if that rise happens during the timeframe "occupied" by the long duration (the whole).

    The rule of thumb is: if you want to produce predictable rhythm, do not aggressively act upon the Durations Tendency envelope. If you request long durations, give them time to consume/breath.


  • you can combine Harmonic Distribution and Intrinsic Consonance to obtain a (degree of) control over chord inversions when generating highly consonant textures. Giving Intrinsic Consonance values close to 100% is likely to result in triadic harmony: you would keep Harmonic Distribution close to 100% to increase chances of these triads being laid out in their root position; you would set Harmonic Distribution close to 0% to likely obtain their first inversion; and you would use 50% to increase odds for second inversion.

  • you can add a sense of phrasing to your generated music by employing something called a cadential device. The name generically refers to any succession of events that induce the listener the idea that music is coming to a rest. You can easily implement one by drawing the Intrinsic Consonance parameter's envelope the way that dissonant structures are followed by more consonant ones. To perfect it, also work on the Durations Tendency envelope causing the increase in consonance to receive significantly longer durations.

  • unless you want scattered/sparse harmonies in your generated music, avoid setting lower values on Number of Voices when Voice Restlessness is also in its higher range. Lower Number of Voices values are more likely to work their magic when coupled with lower Voice Restlessness values: the two would probably cause thin polyphonic textures, which is something commonly respected in classical western music. Thin harmonies hardly get the same treatment.

  • the Multiline Generator only produces one pitch per each polyphonic voice an instrument is known to (typically) have. Instrument databases are internal to MAIDENS and cannot be altered; therefore, if you want to produce, e.g., an eight-pitches-harmony Piano choral, you must add a second Piano to the score (as MAIDENS considers the Piano to only have four polyphonic voices). You would likely export the score and edit it outside of MAIDENS to combine the two Pianos into a single one.

  • you will dramatically increase your chances of generating viable and valuable music if you observe these basic information management principles while editing parameters:

    • to maintain the current information flow (i.e., keep the music "going"), match any significant tension rise in one parameter with a decrease in all the other parameters;
    • to slow down the current information flow (i.e., to draw less attention or come to a rest), lower tension in more than one parameter at the same time; the effect will be proportional to the number of parameters involved;
    • to accelerate the current information flow (i.e., to draw more attention), heighten tension in more than one parameter at the same time; the effect will be proportional to the number of parameters involved;
    • compensate high flow with low flow and vice-versa; redeem delayed high flow compensation with lower flow and vice-versa.

      What exactly makes for a tension rise really depends on the specifics of each parameter, but some working principles can be given:
Parameter Highest Tension At Remarks
Highest Permitted Pitch N/A Tension depends on instrument timbre. [1]
Lowest Permitted Pitch N/A Tension depends on instrument timbre. [1]
Durations Tendency 100% There is a threshold, though. When small durations are consistently upheld over large areas, they tend to "loose power", eventually causing listener's fatigue and a drop in tension. When this happens tensional balance temporarily tilts, and (significantly) longer durations can become more tense than short ones.
Number of Voices 100% Abusing motion in all voices at the same time can cause listener's fatigue and can tilt tensional balance in favor of lone voices (essentially the same phenomena as described above).
Intrinsic Consonance 0% Same observation as above for large areas of harsh dissonances.
Chord Progression 0% Owing to current implementation, this parameter can only contribute a mild increase in tension.
Voice Restlessness 50% A setting of 0% tends to produce pedal points, while a setting of 100% yields homophonic chorals. We will consider that, given an isorhythm made out of fourths (crotchets), the 50% setting tends to cause most motion, hence, most tension.
Harmonic Distribution 0% This is based on the assumption that most instruments have more partials in their lower register. As a setting of 0% will have pitches distribute chiefly toward the bass, this will cause more harsh sounds, and thus more tension.

[1] The more partials an instrument's timbre has at a particular pitch (both harmonics and inharmonics), the more tense it will sound.

The table above deliberately omits four parameters: Analysis Window, Heterogeneity, Hazard and Error Margin. These act on the lower level routines that make musical synthesis possible and are not mapped to any music theory concepts. Consult the main article on the Multiline Generator for a discussion on how to use them.

Clone this wiki locally