Accumulator UI added
2004-03-02 by colinfraser_com
Folks, P3 v3.89 beta is in the files section. This version needs a sysex backup/restore before/after installation as I had to move some of the pattern data around to fit things in. It adds a new sub-menu to configure the accumulators per pattern. You'll find the 'Acc conf' option on the last pattern edit page, next to 'Apply FTS'. The accumulators are probably due a bit more explanation by now... There are 3 accumulators per track - for note, velocity and aux D. Each time a new pattern is selected, or the sequencer is restarted, all three accumulators are reset to zero. The accumulator values are added to the note, velocity or aux D values before each note or cc message is sent. So unless you modify the value of the accumulators with an aux event, they have no effect. If this sounds complicated, feel free to give up now. The aux events used to modify the accumulators are the 'offset abs ...' and 'offset rel ...' events. 'offset abs ...' sets an accumulator to a specific value in the range 0 to 127. 'offset rel ...' allows you to add a value in the range -64 to +63 to the current accumulator value. So if you have 'offset velo rel', with a value of +1 on each step, the accumulator value will increase by one as each step plays - offsetting the stored values of velocity transmitted on each step as it does. But things get a bit more complicated... ;-) There are 3 options that control the behaviour of the accumulator. The first of these is 'limit', which has a range of 0 to 127. This sets the maximum *absolute* value the accumulator can reach. Each accumulator can have a positive or negative value between plus and minus 'limit'. If you apply a negative offset to an accumulator that is already 0, it will become negative - so the resulting value of note, velo or aux D sent will be lower than the stored value. When the accumulator reaches 'limit', what it does next will depend on the 'accumulator limit behaviour'. This option (shown as 'A:' in the UI) can take the following settings: rtz = return to zero clip = stop at the limit and go no further rvrs = rebound from the limit and reverse direction Reverse has the added effect that any future offsets to the accumulator will be inverted until the limit is reached again (typically the limit at the opposite end of the accumulator travel). The final option is the 'result behaviour' (shown as 'R:' in the UI). This can be set to 'clip' or 'wrap'. This option defines what happens when the *result* of the stored value plus the accumulator value is out of range - e.g. if the total velocity is greater than 127 or less than 0. A setting of 'clip' limits the result to the valid range. A setting of 'wrap' folds the value back into the other end of the valid range. So, here's a quick example, which may makes things a bit clearer: Set up a note pattern as usual. Then configure aux A to 'offset note rel'. Set a value on step 1 of the pattern for aux A of +12. Go to the 'acc conf' menu - on entry it will display the note accumulator settings for the pattern. You can access the settings for the other two accumulators using the PAGE key. Use the DATA knob to set the note acc limit to 24. Use F1 to select A:rtz, and F2 to select R:clip if they are not already set. Then press F3 to confirm the settings. Now start the pattern. Intially the note accumulator value will be 0, but on the first step, it will have +12 added. So the pattern will play transposed up by 12 semitones, then 24. At the next offset of +12, the limit of 24 is exceeded. Since 'A:' is set to rtz, this means the accumulator will reset to 0. So, as the pattern loops, it will play transposed by 12, 24, 0, 12, 24, 0, ... and so on. If you now enter 'acc conf' again, and change A: to 'clip', the accumulator will rise to 24, then stick there until a different pattern is selected, or playback is restarted. Setting A: to 'rvrs' will cause the accumulator to oscillate around 0. The transpose of each loop of the pattern will be: +12, +24, +12, 0, -12, -24, -12, 0, +12, ... and so on. If you're feeling experimental, give it a try and let me know how you get on ;-) Cheers, Colin f