this is why
a) i think cubic map is maybe a tiny bit more useful than logistic for music - it always oscillates
b) you always want to constrain the params for the behavior you find interesting - i’d suggest r in [3.2, 4.0) for both of these if you want them to always be “obviously chaotic”
here’s my “low-res” bifurcation plot for cubic map; you can see that it is exactly like a symmetrically oscillating logistic
matlab
% cubic
Npre = 200;
Nplot = 100;
x = zeros(Nplot,1);
rmin = 2.5;
rmax = 4.0;
rstep = 0.005;
i = 0;
for r = rmin:rstep:rmax
% fake it til you make it...
% using same initial value each time won't capture sign flipping
i = i + 1;
x(1) = 0.5 * (-1)^i;
for n = 1:Npre
x(1) = r*x(1)^3 + (1 - r)*x(1);
end
for n = 1:Nplot-1
x(n+1) = r*x(n)^3 + (1 - r)*x(n);
end
plot(r*ones(Nplot,1), x, '.', 'markersize', 1, 'Color', [0, 0, 0]);
hold on;
end
title('cubic map bifurcation');
xlabel('r'); ylabel('x_n');
set(gca, 'xlim', [rmin rmax]);
hold off;
i’d like to do one for henon too, but it’s trickier. 2 params so it’d have to be a “bifurcation surface” … hard to read… might as well just say that it looks much “noisier” throughout - periods of different lengths are interspersed across the range of parameters. but IIRC the period is always >=2.
[ed] heh, here is someone’s henon bifurcation from wikipedia, with one parameter fixed b=0.3 (a reasonable value)
the notes on the image give an idea of how non-trivial it is to create a meaningful bifurcation plot in this case (and many others)
also, in practical terms (@sliderule) i’d say if you want 1 output, 1 param, that henon oscillator is still useful and interesting if you just fix b=0.3 and take the newest value as output.
oh! for all these deterministic, iterative things, i also think it’s kinda important for musical purposes to be able to arbitrarily set the running state at any time. this lets you take advantage of the coolest thing about these processes - which is that they are repeatable.
pedantic point: it’s not strictly correct to say that some outputs of these functions are “chaotic” and some are “not chaotic.” being “chaotic” is a (somewhat subjectively-defined) property of the system, meaning just that it is a) sensitive to initial conditions, and b) orbits of different lengths lie close together in parameter space. if you wanna refer to output sequences that are “noisier” you can say that they have a longer period or orbit.
however, I guess it’d be reasonable to say, for instance, that above R=3.4 or something the logistic map “is chaotic” (orbits are closely spaced) and below that it is “not chaotic” cause the orbits are all basically the same. i’m still not super comfy with this because it emphasizes the subjectivity too much; your perception of “closely-spaced” is dependent on scale.
</pedantry>