Dead Man's Catch modified firmware for Peaks


toneburst> I think I may have an idea of which module you have in mind. I’d be interested to see where you take the idea.

Yes, it’s quite a good platform to experiment with semi-random stuff (this uses a slightly modified version of the integer maths Lorenz generator code from the Streams Easter egg):

Hmmm, video embedding seems to be broken?

BTW, I spent far too long searching for scientific papers on “Erisian noise”, before realising that Eris is the Greek goddess of chaos and discord. D’oh!


toneburst> Incidentally, are you planning to add the clock divider/multiplier we discussed to a future DMC version? I still think that would be a really useful function, and fits in perfectly with the ‘trigger toolbox’ concept of Peaks.

Yes, definitely. I have a much better understanding now of how the tap tempo capability in Peaks works, and plan to re-use that. One idea I had was to use two knobs quantised to, say, 32 steps: one for the numerator of the clock ratio, and one for the denominator. That way you could dial up any clock division/multiplication ratio between 1/32 to 32/1. Weird things like 17/13, for example.


That sounds interesting, but the ability to set pulse-width would also be super handy.



More details on the Sonic Potions Malaclypse Perlin noise module (and the others too):


This stuff looks very good!


Agreed, and very keen to see the implementation details. Oh dear, is it sad to be as interested in the hardware and software engineering behind the panel as it is in what the module actually does?


Indeed it does good modules to pair with Mutable ones


Nice he still also is making a DIY kit. (and a good beard too!)


@shiftr only the smallest of the new modules will be available as a DIY kit though, apparently.



Yes, but still very nice because i think it would probably be much less of a hassle for him to skip the diy. Maybe the other ones will be open source?


Sounds good, but I was very annoyed (asperger warning?) that the ~ divider lines wasn’t aligned on the modules. The Malaclypse even had a straight line. I really hope that these only are some kind of prototype draft faceplates.


@barksten there are also ergonomic, as well as graphic considerations when it comes to designing panels.

Sometimes the placement of jacks, pots etc. can be influenced by PCB-layout issues, too (especially I suspect with dense, single-board configurations, like many commercially manufactured SMD-based modules).



Having says all that, I do love the way many of the panel hardware items and much of the graphic furniture of the MI modules do line up nicely when they’re placed side-by-side in a rack.

Not everything does align to the same strict grid though, even with Olivier’s modules.



@BennelongBicyclist it does look like they’ve taken a different approach to Perlin Noise pattern generation to what I had in mind. I’ll suspend judgement on that until I find out more info though.



It seems to me that the Malaclypse is running something like this:

s = 0.0

gain = 1.0

octave = 1.0

for i = 0 to 7 {

s += gain * SmoothRandomGenerator(octave * f, interpolation_shape)

gain *= spikiness

octave *= 2


return s

Where SmoothRandomGenerator is a smooth random generator (linear or spline interpolation) running at clock speed f?

The big knob at the top controls interpolation_shape, the frequency knob controls f, and the knob that makes things fractal and spiky (I forgot its name) controls “spikiness”.


Yep. Whereas my idea was basically to just use the one octave, and have two parameters to navigate in two dimensions through the noise field, and another two params to scale the field, for smoother or rougher textures.

You’d scan across the noise field along one of the axes, driven either by clock input, or by a CV (e.g. a ramp up/down).



Yes, not yet clear whether the putative SmoothRandomGenerator() is using Perlin’s original algorithm, or a later version of it, or something else.

This is a great resource. Needs hardware FP support on the MPU to run it at audio rates, though.


> Yes, not yet clear whether the putative SmoothRandomGenerator() is using Perlin’s original algorithm

I think there is a misunderstanding (same as above in this thread a couple months ago)… Olivier’s loop is what generates the Perlin noise, by stacking up simple random waves. SmoothRandomGenerator() is a simple random oscillator, just like the one in Peaks’ LFO mode, or what I use in Batumi: it samples random values at some low frequency, and interpolated between these values (linearly or otherwise).


Btw if you happen to have Batumi with the expert firmware, you can do Perlin noise (limited to 4 octaves): put it in Quad mode (the newer one which outputs partial sums) and in smoothed random mode. The sliders will control the amount of each octaves.


I found the wikipedia page article extremely confusing and thought the original Perlin algorithm had some fancy image-specific or 2D bits inside (grids, gradients…), and then saw this, which explains it the same way as I did.

So I guess the confusion is whether “perlin noise” is just the general idea of summing octaves of random process to generate something with a fractal structure, or the very specific 2D implementation.

In any case, if you “limit” yourself to 10 octaves, it’s absolutely doable on an STM32F1.

And there’s no need to precompute anything at all: toneburst’s idea can be done by replacing the random generation function above by any random-looking deterministic function of a CV.