Man - you guys are smart! I love these discussions, because, even though they are mostly over my head, I usually end up learning something. Still, I feel dumb now, need more coffee.
Incidentally, I think the clock-divider/multiplier, while not as ‘sexy’ a feature, is going to be a lot more useful, to more people, so maybe that should be prioritised.
Looking forward to the Batumi code refresh mq :-).Its such a great module
@mqtthiqs, the discussion above is a mixture of how to evaluate the Perlin function for given co-ordinates (take the dot product of gradient vectors from a bounding box around a given co-ordinate), and how to combine Perlin values sampled at different frequencies (octaves) with different amplitudes (persistence). I think that’s where the confusion arises.
For graphics work, it’s often desirable to overlay several frequencies of Perlin Noise, to add fine detail to enhance the realism of textures, or landscapes (2D Perlin Noise is often used in generating procedural landscape in games).
For that reason, a lot of the literature you’ll find on it assumes you’d want to do this.
I don’t think it’s necessary to use more than one octave, for our purposes, though, which will cut down on the computational load considerably.
Yes, quite possibly, although being able to adjust the number of octaves and the persistence co-efficient on-the-fly might be cool Anyway, this is now on my agenda for DMC. If you have specific implementations in mind, example code in JS, Python, R or C/C++ is welcome by way of specifications.
I’m sure you’ve seen this already, but there’s pseudocode for a basic Perlin 2D implementation on this Wikipedia page.
There’s Ken Perlin’s own integer implementation of 3D Perlin Noise for Java here
Again, I don’t think there’s any mileage in using 3 dimensions, but I imagine it could be scaled back to 2 fairly easily. I know how to do that for a floating-point implementation, but not for fixed-point.
Pseudocode for a Peaks 2D Perlin noise pattern-generator/LFO could be something like:
Set xPos to 0
Set xScale to value of pot 1
Set yPos to value of pot 2
Set pulse-counter to 0
On Pulse (could be multiple/division of clock pulses)
Set xLookup to xPos multiplied by xScale
Set outVal to single-octave Perlin2d(xLookup, yPos)
Increment pulse-counter by fixed amount
That’s pretty much it, really. The devil is obviously in the detail of the Perlin2D implementation itself. There seem to be quite a few examples of that to work from (albeit relatively few fixed-point ones).
I never thought we would be talking about Perlin 3d implementations in our lil’ ol’ Peaks!
Anyway, as interesting as all this is, what do we gain over the “Turing Machine” mode?
TM mode can already “loop” (in a way), but I guess 32 steps is the limit. Plus, you can’t reset the pattern, really.
What are some other advantages?
I’m just wondering if I’d use this mode any more than TM mode or even TAP LFO mode with the (pseudo) random waveform.
I’m wondering if Tides wouldn’t be a better vehicle for Perlin noise. It has two DACs, and VC inputs. And now, 20k of spare flash storage…
Dead Man’s Catch has the bouncing ball envelope generator that was in the Peaks source code enabled, but this is a LOT more fun! (Only works properly in the Chrome browser.)
@glitched the advantage over a Turing Machine is that it’s 100% repeatable. Actually, it’s quite a different concept, really. You could think of it a bit like Grids for patterns-generation, in a way.
@BennelongBicyclist I think Peaks is a more natural fit, to be honest, single it already does tap-tempo LFOs, and has a mini sequencer mode.
BB are we close to a release ?
V. busy with work, and with moving house (urrrghhhh!). I think v1.0 will be ready by Xmas, or maybe the New Year, though. But v0.7beta should be fine to use in the meantime - no crash reports at all that I am aware of.
Quick afternoon jam with DMC
BTW BB have found the current beta release to be very stable
@risome, excellent, thanks for the feedback. I’ll try not to upset the applecart as I add a few more things in the next release.
Thanks for this DMC Firmware BennelongBicyclist, I really love the Bytebeat mode it makes so crazy sounds, love the FM LFO and PLLO too! So much fun crossed with some VCO in FM AID and Warps
Would be so cool to have the Bytebeat mode in Braids as well…
Here is a little mess with your DMC firmware :
Can’t wait for your next update!