First all the credits for this idea go to Alex Drinkwater (toneburst), who had the idea to generate CVs from Perlin Noise.
What the hell is Perlin Noise ?
Ken Perlin was looking for a simple approach to generate random looking Textures for Computer Graphics. Just using Noise (Random) to color a Pixel leads to something not very pleasant that just looks like grey from the distance because the difference of 2 adjacent Pixels is basically random. The Brilliant idea now was to use the random values in a Grid and interpolate between these random Set Pixels in a pleasant way. Pleasant is whatever looks good to you, a linear interpolation won’t look really good as it has a discontinuity in the slope at the random colored Pixel, so normally a more sophisticated smoothing algorithm is used.
Heres a good description from some more clever guy….
So how do we get nice Control Voltages from this ?
The Perlin Pattern Generator (which i will call from now on PPG – i always wanted to make something using this Letters……) has a 2 Lists of random Values, one is fixed and common to all PPGs, the other one can be recreated by User request.
As it is not feasible with the chosen PicAxe hardware platform to directly operate on this random list to generate CVs you first have to chose a subset of the list and render the interpolated noise curve into RAM. You have 2 parameters, [LOCATION] and [RANGE] that determine your set of random values and you can manually render this into RAM. The curve is rendered so it wraps around and linear interpolated.
Alex insisted on having a fixed set of random values built into every PPG so you can recreate a given sequence, i insisted on having a random source so we now have both.
Now that you have the interpolated noise curve in RAM you can easily generate CVs from here, the PPG has – just like a classic sequencer – a CLOCK and RESET Input, it will generate a new CV whenever a Trigger Pulse on the CLOCK is detected and will happily reset to the Initial Position when RESET is triggered.
The CV itself now is determined by the [START] and [LENGTH] Parameter. START indicates where the Start/Reset position is, LENGTH determines how many steps you make until you reach again the Start Position. LENGHT can be quantized to full STEPS, so the Sequence repeats every N Steps or to Fractions of Steps or even totally floating.
START and LENGTH can be realtime modulated by CVs.
If you are confused, this might clarify things a bit:
When will this be available ?
Sometime soon. Whatever soon means.