MultiPatternSequenceEngine

The MultiPatternSequenceEngine is a SequenceEngine that is similar to the PatternSequenceEngine, except that it supports an arbitrary number of voices instead of one.

The MultiPatternSequenceEngine randomly choses on of the provided "patternEngines" tags and uses all of its "patternEngine" tags to create patterns. These patterns will be used to create a multi-voice sequence. The patterns don't need to have the same number of ticks.

The wildcard character "+" can be used to create a transition pitch between the current chord and the next chord. This pitch is always based on chord offset 0 of both chords.

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.
normalizeChords - boolean 0-1 false Specifies that chords should be normalized. Defaults to true. Available since version 0.3.
patternEngines - - 1-n - Groups the patternEngine tags.
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="MultiPatternSequenceEngine">
  <patternEngines>
    <patternEngine class="StringPatternEngine">
      <string>-,-,-,-,5,-,-,-,-,-,-,-,5,-,-,-</string>
    </patternEngine>
    <patternEngine class="StringPatternEngine">
      <string>-,-,-,-,4,-,-,-,-,-,-,-,4,-,-,-</string>
    </patternEngine>
    <patternEngine class="StringPatternEngine">
      <string>-,-,-,-,3,-,-,-,-,-,-,-,3,-,-,-</string>
    </patternEngine>
    <patternEngine class="StringPatternEngine">
      <string>0,-,-,0,-,-,0,-,-,-,0,-,-,-,-,-,0,-,-,0,-,-,0,-,-,-,0,-,-,-,+,-</string>
    </patternEngine>
  </patternEngines>
</sequenceEngine>

Add new comment