Hey all,

I’m trying a new mailing list service called Beehiiv, so this might look a little different that previous communications — although, let’s be honest, it’s been long enough that no one probably remembers the previous mailing list! Anyway, here’s what’s new:

SCAMP Updates!

SCAMP! You know it, you love it, you use it daily for all of your algorithmic composition needs.

And I’ve been working hard on in for the last several months. In particular, I finally rewrote the entire clock system from scratch so that it uses a centralized scheduler. From the user point of view, the main benefit is that it is much more robust, especially for real-time/interactive applications. But I also added the concept of a Moment to make placing things in time clearer. Moments can be either on the beat or time axis, and they can be either absolute (measured from the start of the clock) or relative (measured from the current beat/time.

You can see a good example of Moments, as well as the new align_to argument in this example:

https://scamp.marcevanstein.com/examples/time_clocks_advanced_metric_phase.html

Speaking of which….

SCAMP has always had a folder of examples, but apart from the tutorial they were pretty disorganized, and they were always pretty buried in the repository. Now there is a dedicated example page with examples broken down by topic:

https://scamp.marcevanstein.com/examples/index.html

Almost every example page features an mp3 recording straight on the website and most also have renderings of the scores. Some of the more interactive ones have videos showing the interaction, like this one:

https://scamp.marcevanstein.com/examples/tutorial_25_midi_in_out.html

This was a pretty major undertaking. So, no pressure, but I’m going to drop a link to my Patreon right here, in case you feel so inspired.

Uncle SCAMP Wants You

I apologize for the title of this section.

But the point is, the SCAMP website has a spot where I’m featuring compositions (and maybe other things) made with SCAMP. And at the moment it’s a little bare.

If you’ve written any pieces with SCAMP, I want to know about them and feature them. You can respond directly to this e-mail!

A Seminar?

It’s been a while since I’ve done one of my one-off SCAMP seminars, but I was thinking it might be nice to do one in which I go through the whole examples gallery and give a tour of all the features new and old. (It might take more than one session, but we’ll see how it goes.)

If you’re interested in attending such a seminar, let me know by responding to this e-mail!

AI Policy

One last thing: I have added an AI Policy to all of the SCAMP repos. Although I’m currently almost the lone contributor to the framework, part of my goal with the codebase (and it has been one for years) is to refactor it in such a way that others can easily contribute. And AI coding tools have frankly been instrumental in helping me refactor this behemoth, especially the parts that I wrote long ago, when I didn’t really know what I was doing.

Ultimately, my goal is to have an architecturally solid code base, one that could easily be picked up by another (human!) programmer and taken further. And AI tools can be either instrumental or detrimental in this regard. On the one hand, these tools are not really designed to create sustainable, maintainable systems; left to their own devices, the code gets sloppier and sloppier. On the other hand, though, check out my release notes:

https://github.com/MarcTheSpark/scamp/blob/main/CHANGELOG.md

I don’t have the patience for that shit, or for writing careful commit messages with every code change. But they make a big difference for other people approaching the codebase.

TL;DR: SCAMP is my baby, and I’m committed to understanding every single line of code that goes into it. But with considerable hand-holding, AI coding tools are now good enough that they can contribute to the development process. I encourage you to read the policy.

Okay, that’s all for now. More soon.

Best,

Marc