(Very minor revision on 1.31: Simply added labels, Bugfixes)
This script takes as an input one or more bars of MIDI notes, and then transforms them according to various minimalism techniques from the late 60’s / 70’s such as phasing, note substraction, note length, plus scale modification and global transposing.
This will allow you not only to create simple pieces in the vein of early Steve Reich and Philip Glass, but also to create interesting textures with digital arpeggio/pluck patches.
In the first page (PHASING), you can activate the phasing, and indicate i) its length, ii) its output channel, and iii) whether the phasing is done in a gradual way or in a “process” way (i.e. only apply phasing when the notes shift an full beat). Moreover, you can configure if the original MIDI input is played, and on which channel.
In the second page (SUBSTRACT), you can program how many notes are played from the original input. For example, an input of “Eights: 4” will indicate that notes located in the first 4/8 of the input bar(s) will be played – all other notes will be silenced. Bar|Step indicates how many bar(s) we stay in every step of the program.
In the third page (LENGTH), we can program variations of the lenght of the notes. For example, EX=> indicates that every “Bar|Step” bars, we will change the duration of a note in the input – for all input notes from the left to the right. Something like this:
Note 1: 0 beat, 1 quarter => 0 beat, 3 quarter => 0 beat, 3 quarter
Note 2: 2 beat, 1 quarter => 2 beat, 1 quarter => 2 beat, 3 quarter
(In case of doubt, try a piano patch with the phasing turned off. This setting is specially useful with arpeggiated patches)
In the fourth page (SCALE), we can program changes to the current scale of the output, which will be applied every “Bar|Step” bars. This way, we can quantize the input notes to another scale. Besides, in this page we can also configure a global transposition setting, which will be applied to all input notes. This can also be changed by changing the Y coordinate of the XY Pad.
Finally, in the global options page, you can configure how many bars are considered as an input to this MIDI script, and also the humanization of the input notes (thanks to “wim” for the code and other code snippets). Note that the humanization of the notes can also be changed using the X coordinate of the XY pad: the more to the right, the more humanization.