I am close to completing the integration of Rational numbers into Patterns. And I wanted to clarify some confusion that is the center of discussions.
It seems that, with Patterns, an opportunity to improve the messy discussion about it and make it more and more a discussion about what this is all about. Maybe we should probably provide an experimental ‘SuperCollider 3000’ (homage to Andre 3000) fork for easy testing of the changes (since compiling a ‘branch’ will restrict a lot of people who can try it out.
Features don’t always get rejected because they’re wrong, slow, or poorly engineered. Often they get rejected because they’re framed in the wrong terms, so they end up being judged by criteria they were never meant to meet. It can happen by accident, or even deception
[Concerning this, we are good: our implementation is already equivalent to production code, such as the boost rational library]
Rational durations are especially vulnerable to that. We need to step back a bit to question the questions I am receiving.
If they’re presented as “exact fractions” or “better numerical precision,” the discussion immediately turns into a comparison with floating point. Is it faster? Is it worth the complexity? Do we really need it? From that angle, skepticism is completely reasonable. Floating point is fast, familiar, and more than adequate for many uses.
But rational durations aren’t really just a numerical feature at all. They’re a semantic one.
The goal isn’t better arithmetic — it’s using the kind of arithmetic that preserves musical structure.
I will complete the implementation soon. I believe only after showing an introductory guide with examples of rational numbers that include all sorts of things, invluding Patterns, the direction of the conversation will change.
Things like exact phrase boundaries, guaranteed return points, stable long-horizon form, and operations of all sorts (and new ones targeted at this new feature) that behave structurally rather than approximately.
When musical time stays symbolic for as long as possible, it becomes easier to reason about. Polyrhythms either align or they don’t — there’s no tolerance threshold, no slow drift to manage. Long-running patterns stay coherent without constant correction. These are questions of precision on a very superficial level; in reality, they’re questions of meaning.
* * * * * * * * * * * * * * *
This will also be my farewell from the community. That’s my gift, made with love. I’m not comfortable, and this forum constantly takes away my joy and excitement to make music and programming. The road to hell is paved with good intentions, and I feel that the vibe now is very propitious to bad unintended consequences, and I don’t sense very good feelings about it.
The inability of people with just a pinch of power to hear their peers suggests a lot about the future.
I will be very glad to find other ways to keep in touch with many musicians and hackers from here. Please DM during this process. If we don’t coincide here until then, use this alias to reach me: supercollider_3000@protonmail.com
@asynth @dietcv @Yann_Ics @josh @semiquaver @Spacechild1 @prko @jamshark70