FreeMultiPatternSequenceEngine

The FreeMultiPatternSequenceEngine is a SequenceEngine that uses a list of patterns (provided by the configured PatternEngines) in which you specify the pitches directly rather than chord offsets. This means that patterns of this SequenceEngine can only be used with a fixed harmony rather than a randomly-generated harmony. This is suitable, for example, for a fixed multi-voice melody for a fixed sequence of chords. This SequenceEngine will pick one of the provided PatternEngine groups at random and will use all the provided PatternEngines within that group to generate the sequences. Note that the patterns within a group don't need to have equal length; each pattern's entries are used individually in a round-robin manner.

Configuration

Tag Attribute Type # Example Description
patternRestartMode - string 0-1 chordSection The restart mode to use for all patterns in addition to restarting them at the end. Allowed values are "chord" (restart patterns at each new chord), "chordSection" (restart patterns at each new chord section), "song" (never restart patterns). Defaults to "song" for backwards compatibility. Available since version 0.9.
patternEngines - - 1-n - Groups the PatternEngines.
patternEngines/patternEngine class class 1 StringPatternEngine The name of the PatternEngine implementation to use.
patternEngines/patternEngine - - 1-n - The configuration of the PatternEngine implementation.

Configuration example


<sequenceEngine class="FreeMultiPatternSequenceEngine">
  <patternEngines>
    <patternEngine class="StringPatternEngine">
      <string>0/6,2/2,4/4,0/4,-1/6,0/2,2/4,-5/4,2/6,4/2,5/4,2/4,0/6,2/2,4/4,-5/4,4/6,5/2,7/4,4/4,5/6,7/2,9/4,9/4,
              7/4,4/4,5/4,2/4,0/4,0/4,0/4,-5/4,4/12,2/2,0/2,2/4,-1/2,-5/6,-5/4,0/12,-1/2,
              -3/2,-1/4,-5/2,-8/6,-8/4,-3/12,-5/2,-7/2,-8/4,-5/2,0/6,0/4,0/12,-3/2,0/2,4/4,5/2,2/6,-5/4</string>
    </patternEngine>
    <patternEngine class="StringPatternEngine">
      <string>0/4,7/4</string>
    </patternEngine>
  </patternEngines>
</sequenceEngine>

Add new comment