mogrifier / WavsynModular

WavsynModular code for VCVRack Modules
GNU General Public License v3.0
1 stars 0 forks source link

replace LEN with EVOL #32

Closed mogrifier closed 1 month ago

mogrifier commented 3 months ago

Pattern length is not needed since accomplished using space. Set to zero to turn off a step- note my concept is keep it one bar always.

EVOL is evolution. % of random changes to each step in a pattern. More EVOL is not just higher chance but also greater change potential (wider range) when change occurs.

Two options 1) just keep changing from last set of values. Eventually pattern will be nothing like original and very random 2) change from fixed starting position (the original settings). This minimizes variation from the original.

mogrifier commented 2 months ago

UI change made

mogrifier commented 2 months ago

Make the evol setting the change per repetition for a single mutation. What is a mutation? change to: space CV (pitch) gate

how about overall pattern parameter changes? why not mutate mod, skip, rev, oct? Could introduce as a by-product and at a lower mutation chance but still driven by evol setting.

mogrifier commented 1 month ago

Each mutation type will need its own range of values (+/-) that make sense for it. For example, small Gate changes do nothing, so a bigger range is needed.

mogrifier commented 1 month ago

Values should not be allowed to stray too far from the origin, so the original values must be saved for comparison's sake. Limits are easy, since Gate and Space (normally) range is 0..1. Voltage range is -3 to 6.

Space is a little trickier since time fit can make larger values- technically as high as 800%. Value mutation must take into account current value. However, space mutation throws of the rhythm.

mogrifier commented 1 month ago

changing space causes a pattern to become dirty. I think I need to click fit time if dirty automatically.

mogrifier commented 1 month ago

naive random evolution values are not great. Use constraints.

mogrifier commented 1 month ago

I have decided there is no reason to fit time when using evolution. Presumably the user wants the pattern to change, including rhythm and timing, so that's what this does.