James McCartney's new music language

… dropping in …
This may not be SC4, and it certainly would break everything…
I was/am working on this language for doing audio synthesis.
OO, multiple inheritance, multiple argument dispatch / generic functions, APL-like auto-mapping of functions over arrays (like multi-channel expansion, but everywhere), create classes and methods dynamically, compiles synthdefs to C++.
This is some unit test output to see what it looks like.
(I edited the link to the raw file because the scrolling gist view was crashing browsers)
Sorry if I’m throwing a wrench.
– james mccartney

18 Likes

Straight to SuperCollider 4000

Not to sound pushy… but I don’t suppose you have some form of ETA on that? :smiley:

It would be a shame if it didn’t come to fruition as it seems to address many issues raised across this forum (e.g., namespaces and modules).

No, I suggest other efforts continue. I’ve been a few years on this, and with some dead ends.

3 Likes

Good throw! Better not break things within sclang, but have a better system for the future. The benefits of smaller improvements to sclang will still be there and we can have them live side by side.

2 Likes

2 posts were merged into an existing topic: Keeping SuperCollider evolving with minimal impact on users work

Wise words, Julian.

A steadily evolving workspace and an experimental playground can coexist harmoniously. Sometimes some loud voices wondering about possibilities can bring attention, but I don’t believe that’s what most users want and expect.

?? Why flagged as off topic ??

… ah, NEW topic!

1 Like

Lots of really interesting hints in the unit test output!

<============================================================================
>============================================================================
(complex(3,2.) + 1.) println -- complex number

x64(4., 2.)
test output:

RESULT:
x64(4., 2.)

Not to initiate a wish-list but… should I take this to mean there’s native/primitive complex numbers? and as complex signals? :crossed_fingers:

In your presentation in 2021 you showed some really nice UI that gave granular introspection and control of nodes in the graph… I’d imagine now you’ve settled on a supported GUI framework to use?

1 Like

The language has both complex numbers and rationals. They were also in the synth engine, but for now they are removed due to being more difficult to optimize (SIMD) compared to int and float. Rationals are not so useful in the synth engine and require frequent lcm and gcd operations which are not very optimizable.

I’ve not worked on the UI recently.

3 Likes

Are you using Dear ImGui? I checked it out recently, from the examples, it seems quite powerful and flexible.

Yes. I really like the immediate mode ui paradigm. I had written my own, but dear imgui is more performant and has more features.

2 Likes