Transforms
Transforms
Transforms are kind of like Patterns that move across patterns and stomp over them. Like Patterns, they are composed of exactly the same Slots.
While many sequencers have arpeggiators, in Warp, transforms are building blocks that can build arpeggiators, or also generalized MIDI effects, like octave shifting a whole pattern, or every third note. They are limited only by what Slots can do.
Creating A Transform #
This is a basic arpeggiator that strums chords - it works regardless of the number of notes in a Chord:
api.transforms.add(name='arp1', divide=None, slots=[
Slot(),
])
This MIDI effect octave shifts every other note:
api.transforms.add(name='fx1', divide=1, slots=[
Slot(octave_shift=1),
Slot(),
])
This is a two octave arp for triads:
api.transforms.add(name='arp2', divide=6, applies_to='chords', slots=[
Slot(),
Slot(),
Slot(),
Slot(octave_shift=1),
Slot(octave_shift=1),
Slot(octave_shift=1),
])
This makes each note stutter 4 times, but leaves chords alone:
api.transforms.add(name='arp2', applies_to='notes', slots=[
Slot(repeat=4),
])
A transform has the following properties:
slots | list | a list of Slot objects |
divide | int | if set, configures the arpeggiator to split the available notes per step into this many subdivisions. If not set, the division is "auto", which will subdivide a triad 3 times, a power chord 2 times, and so on. |
applies to | string | either chords, notes, or both - this controls whether the transform modifies certain steps based on whether they contain multiple or individual notes |
direction | string | this works exactly as in Patterns - the transform direction does not have to match the pattern direction |
auto_reset | bool | off by default, if True, the transform will start over at the beginning slot when processing each set of slots in a pattern. |
arp | bool | on by default. if disabled, disables the arpeggiator on all note inputs. 'divide' will be ignored and all notes/chords will be effected directly. |
Tip: Variation of a clip is greatly increased when the pattern slots and the transform slots are of odd lengths - they will not completely line up
the same every time as the patterns roll around and repeat.
Tip: If creating a transform that shifts every other note up an octave for example, set arp to False to make sure chords are left intact.