(working title) 2 dimensional chaos generator

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

Architeuthis wrote: Sat Jul 11, 2026 1:37 am here is the nutcase in action ...
I'm not sure what this is, but I like it! Please keep going with this work.

Post

I don't get why you need infinite digits of pi, other than as a stochastic function: a random generator. As said, any randomly chosen number would suffice.

If it is to determine current phase: say you need the phase itself accurate to 10 bits (1/1024 of a full cycle) and with a sampling rate of a gigahertz (20 bits) and the oscillator running already for 1024 seconds (17 minutes, another 10 bits) then a 40 bits mantissa is sufficient. IEEE floats are 80 bits? Isn't pi available as a constant?

Then: it is totally avoidable. My TI-35 calculator had a button "deg - rad - grad" to switch the base of trigonometric functions. Why not have your full cycle at 4.0 instead of 2pi, if that makes things easier?

Oh, if you are chatting with LLMs it helps to know what they are good at (language) and what they suck at: logic & calculus.
We are the KVR collective. Resistance is futile. You will be assimilated. Image
My MusicCalc is served over https!!

Post

antto wrote: Sat Jul 11, 2026 7:36 am i propose this: it's been 5 pages already, it's time for a short "summary" post
any volunteers?

i didn't learn anything... directly (it still doesn't make sense to me), but i did see some more patterns, from which i reached some conclusions
A couple demos that don't showcase anything notable (though the last one has some rather extreme aliasing that actually is the most interesting bit of any of it), nothing resembling a product, and a whole ton of pseudoscience

Post

Not the first time I've been struck by Architeuthis's ability to produce working software and interesting sounds even if the prose isn't making any sense to me. I've seen much less constructive discussions on this site (-;

Post

Absolutely- but what did you hear that was interesting? TBH to me the most interesting part was actually the noisy aliasing which is not exactly hard to do traditionally

Post

im willing to do a summry and more audio demos. hold on. summary first.

edit: while i summarize this, the theory is all theorycrafting in order to come to one conclusion: sinewaves dont alias. it just a long winded way of explaining why sinewaves dont alias.. and why flat values also dont alias... and why noise sounds like noise even if it aliases... not sure if i can hear the difference between pure alias and perfect (within nyquist) noise

edit2: calculating pi may or may not matter, im not sure, but we could perhaps take 1 second of pi noise and just loop oddly to get repeating and long noise. i hypothesize that pi noise is the best dither to "dither" an oscillating sinusoidal equation (but dithering could be done with any random-enough signal, so maybe that doesn't matter)

edit3: for ai: the graphic for the 2 dimensional chaos generator is a sinewave modulating a sinewave, both have feedback signals going into freq and phase (variable amplitude controls for all inputs), and in the middle is a signal filter before going into freq and phase. the output is the sine value from -1 to +1 for X and another -1 to +1 Y
Last edited by Architeuthis on Sat Jul 11, 2026 1:35 pm, edited 1 time in total.

Post

Mathematicians strongly suspect that pi is a so called "normal number"

https://en.wikipedia.org/wiki/Normal_number

which basically means that the probability distribution of (sequences of) digits should follow a uniform probability distribution. I think, this would mean that it should be statistically indistinguishable from the output of any old PRNG (up to the inevitable (hopefully long) periodicity of the PRNG, of course). So, I do not really see any reason to believe that "pi-noise" should be somehow special from a sonic perspective.

Nice to see that you now have your Chaosfly algorithm published. I think, it does interesting stuff and by exploring its parameter space, we may indeed synthesize interesting chaotic sounds. In your video, there are indeed little obvious aliasing artifacts - it's mostly noise, but: between 1:45...1:53 I hear something that sounds very much like aliasing.
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

what survives science, what gets thrown out:

WHAT SURVIVES (hard facts):
1. a pure sinewave below nyquist does not alias
2. a flat / constant value does not alias. no content above 0 hz, nothing to fold.
3. clipping generates harmonics, and any of those harmonics above nyquist fold back down. so clipping can cause aliasing.
4. a small number of feedback / modulating sinewaves can produce very rich spectra. fm synthesis already proves 2 oscillators make huge timbral complexity. my chaos generator is in that family.
5. aliased broadband noise still sounds like noise based on perception rather than reality, but perception is what we care about

WHAT I THROW OUT (does not survive science):
1. "pi takes more power per digit" - false. spigot algorithms compute digits directly (thanks BertKoor, Music Engineer).
2. "pis digits are special / the universes noise floor" - false. most real numbers are infinite and non-repeating, pi isnt special (Music Engineer). its just a convenient reproducible pseudo-random sequence.
3. "circles / sinewaves are self-similar / fractal" - false. zoom into a circle or a sine and it flattens toward a line, the opposite of fractal (jupiter8).
4. "0 == infinity", "-1 == +1", "x/0 = infinity" - false in standard math. x/0 is undefined, not infinity (jupiter8, Music Engineer).
5. "clipping == aliasing" and "breaking the laws of physics" - false. both are correct math, not law-breaking (stoopicus). related, per keep #3, but not equal.
6. "speed of light = 44100hz", "black holes = 0", "simulate your own universe" - not physics, not dsp. these were mnemonics to push my brain around. fun, but not facts, so out of the technical claim.
7. "mimic ANY sound with two sinewaves at infinite precision" - overclaim. the honest version is keep #4: a wide range, not literally anything.

WHAT ACTUALLY STANDS (needs none of the theory):
- superlove filter: recursive self-oscillating analog-style filter. feedback = mod*feedback + shaped(feedback), filtered before it feeds back. code linked earlier.
- chaosfly: 2D generator, a sine modulating a sine, both feeding back into freq and phase, filter in the loop, output x/y from -1 to +1. soundemote.io/sandbox.

OPEN EXPERIMENT: pi digits as a deterministic noise / dither source.

INTERESTING: a sine looks flat at extreme zoom levels. that same smoothness is why it's band-limited and doesn't alias. "looks flat when you zoom in" and "doesn't alias" are two views of the same thing: no sharp high-frequency detail.

("pure random") pi noise: https://www.youtube.com/watch?v=zdmK2_-3Mcg
("somewhere inbetween") chaosfly: https://www.youtube.com/watch?v=ah8ZGdGbFLM
("pure order") sinusoidal resonator: https://www.youtube.com/watch?v=m-_bo7PFUGI
("the use case") superlove filter demo: https://youtu.be/GmpdZk31ARc

Post

BertKoor wrote: Sat Jul 11, 2026 8:10 am Oh, if you are chatting with LLMs it helps to know what they are good at (language) and what they suck at: logic & calculus.
the first things i wanted to try with these chatbots was... to ask them about problems to which i already know the answer to... but pretending i don't, just like when i didn't know the answers at first... and then watch what the chatbot "vomits"

or, when i've just written some small chunk of code which has turned surprisingly nasty to "get right" - ask the chatbot to write the same thing and see if it'll fall in the same traps as me (or get it right from the first try), and how many attempts will it need until it gets it right

the first actual time i was writing something and felt weak and asked the chatbot to write the thing for me was when i needed a small function that formats a size_t filesize as a short-form text string with suffix like what you'd typically find in filemanagers when you click on some file and it shows you the filesize in this "short form" ... like 128 -> "128B", 1000 -> "0.98K", BUT without using floating point math... so i got stuck and gave up and asked the chatbot to write this for me... well, i thought this should be easy but it turns out i lost 2 hours of very intensive attempts and the chatbot was either making dumb math errors or forgetting the basic requirements and using floating point math after all and basically i gave up with the chatbot and gave up on the desire to avoid floating and used floating point math and wrote it myself
and i learnt a lot about just how "dumb" a chatbot is when you need something very specific

the first success i had with a chatbot was on some very simple task: i had written a specific data container struct and needed a name for it (i suck at naming), so i explained exactly what my container does and i got about 10 suggested names to choose from

unfortunately, the chatbot is too easy to bias in the direction you want, even if you're doing it unintentionally by the mere wording of your text
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

Architeuthis wrote: Sat Jul 11, 2026 1:44 pm what survives science, what gets thrown out:

WHAT SURVIVES (hard facts):
1. a pure sinewave below nyquist does not alias
2. a flat / constant value does not alias. no content above 0 hz, nothing to fold.
3. clipping generates harmonics, and any of those harmonics above nyquist fold back down. so clipping can cause aliasing.
4. a small number of feedback / modulating sinewaves can produce very rich spectra. fm synthesis already proves 2 oscillators make huge timbral complexity. my chaos generator is in that family.
5. aliased broadband noise still sounds like noise based on perception rather than reality, but perception is what we care about
#2 <- if this is saying "a 0Hz signal (a DC offset) doesn't alias", then i really wonder why is this in your list at all, isn't it obvious that it cannot alias, it's 0Hz, if Nyquist is anything larger than 0Hz, then 0Hz is surely below Nyquist, and thus the DC offset is within 0 to Nyquist, which is fine
or, to look at it another way, aliasing is a (bad) side-effect of something that changes in time, a DC offset doesn't change in time, so...

#3 <- harmonics above nyquist don't "fold back down" ... they sorta get mirrored and stuck between nyquist and 0Hz ... if you turn the frequency of a sine wave up, when goes over Nyquist - it'll get mirrored down and start going towards 0Hz, and if it keeps going up after this "reflection" goes past 0Hz - it'll mirror again and start going up from 0Hz, and then things will repeat
INTERESTING: a sine looks flat at extreme zoom levels. that same smoothness is why it's band-limited and doesn't alias. "looks flat when you zoom in" and "doesn't alias" are two views of the same thing: no sharp high-frequency detail.
i don't like your phrasing here, a sine wave is a sine wave, whether it's band-limited or not depends on what you're doing with it, a sine wave with a frequency higher than Nyquist will break the rules
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

(oops, i quoted my previous post instead of editting it, sorry)

a random observation: the less number of Fact Claims you write - the less chance there is for a mistake
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

antto wrote: Sat Jul 11, 2026 4:53 pmaliasing is a (bad) side-effect of something that changes in time, a DC offset doesn't change in time, so...
yeah, fair, it's trivial and you can drop it. i only listed it for completeness of the "what doesn't alias" set, not as a discovery. and your framing beats mine: aliasing is a side effect of change over time, DC doesn't change, so there's nothing to fold.
harmonics above nyquist don't "fold back down" ... they sorta get mirrored and stuck between nyquist and 0Hz
you're right, "fold back down" was sloppy. it mirrors about nyquist, and as the frequency keeps climbing it zigzags: reflects down toward 0, hits 0, reflects back up toward nyquist, repeat. so "down" is only the first bounce. that's the accurate picture, thanks.
a sine wave is a sine wave, whether it's band-limited or not depends on what you're doing with it, a sine wave with a frequency higher than Nyquist will break the rules
i conflated "smooth / looks flat" with "band-limited," and they're not the same thing. a sine doesn't alias because it's one frequency sits below nyquist, full stop, not because it looks flat zoomed in. put it above nyquist and it aliases no matter how smooth it is. so scrap that INTERESTING line, the logic jump doesn't hold.

appreciate you going through it. three real corrections.

Post

AI/SINGLEFILE: https://github.com/soundemote/soemdsp-j ... _boing.cpp (not free for commercial use, jerobeam owns this code, free for personal use)

human/multifile/easier to read: https://github.com/soundemote/soemdsp/t ... oscillator (jerobeam code not free for commercial use, free for personal use)

Image

Image

Post

Music Engineer wrote: Sat Jul 11, 2026 1:29 pmIn your video, there are indeed little obvious aliasing artifacts - it's mostly noise, but: between 1:45...1:53 I hear something that sounds very much like aliasing.
video refers to: viewtopic.php?p=9269006#p9269006

Thanks Music Engineer. You brought up another discrepancy. It is on me to prove this statement: you may or may not be hearing aliasing. I have a thought experiment / a dsp experiment that goes like this: analog can sound like it is aliasing if you FM with made up "aliasing reflected" sub/inharmonics. You can modulate as fast as you want in analog and never alias, but you do get those radio frequency metallic aliasy FM sounds in analog, the difference is that digital aliasing sucks and is ugly, analog "aliasing" is physics-based and pleasing (you get chaotic aliasing). I want to show you proof of this but my sandbox app is not ready to demonstrate it. I'd rather have a full demonstration with audio and visuals than trying to prove it without. And even if I do prove it, I operate under this caveat: I am only proving it because I made the rules for the simulation in the first place.

Post Reply

Return to “DSP and Plugin Development”