Regarding
> There’s a problem in Max and in Pure Data, which is that you’re writing these things in terms of how they act. You’re making an instrument. But someone wants to store a score in the thing, and then do things that refer to objects in the score. So far, there’s no good design — or at least I haven’t seen a good design — that actually marries these two ideas in a single environment that works.
I'm working towards it in https://ossia.io - the gist of the idea is to have a timeline with dataflow elements embedded directly into it so that parts of the score can connect to other parts which happen earlier / after. This allows to easily make instruments that evolve in time... though most of its users use it to make scores instead of instruments.
(this leads to trying to answer the question "what happens when two connected nodes of a dataflow graph execute for t=[0; 5seconds] for the source node, and t=[3; 7seconds] for the sink node").
Why not allow nesting both ways? Why not allow timelines to be embedded within dataflow graphs, and then triggered by events that occur at arbitrary times? The outermost container can be a canvas embedding a single timeline if that's your thing.
The constant-clockspeed model underlying all track-based sequencers and DAWs is a straitjacket. Arbitrary pauses, jam breaks, and rubato sections make more sense as time-free elements which exist between discrete timelines rather than as modifications to timelines.
That is the case in ossia, timelines can embed flow graphs, and flow graphs can embed timelines (and timelines can embed timelines and flowgraphs can embded flowgraphs... most things are composable). But, unlike Max / PD, cables can be connected across hierarchy levels so 99% of the time you don't need to resort to a specific "subpatch", you just connect things in the timeline itself.
> and then triggered by events that occur at arbitrary times?
However, the timeline has a built-in mechanism for that - see "open the floodgates" here : https://ossia.github.io/score/first_steps/time_approach/inde...
the doc is pretty outdated but this should give an idea :)
As an aside, Max4Live needs some serious love. It needs better interaction with the Live world than is currently provided by the LOM. Things like "get the file path of the current Live set" should be native, and there are a bunch of similar things that should be simple, but are impossible without horrible hacks. Now that Ableton own Cycling74 I hope this situation improves!
Music turns out to be an incredibly hard problem. It's easy to make superficial but limited tools that do maybe 50% of the job to make boring 50% music. But the kind of general score management he talks about is still an unsolved problem - far more challenging in its way than DSP audio synthesis.
Is the goal to create tools that make not-boring music? Or is the goal to make tools that enable you (or some other person) make not-boring music? Automating the creation of music seems to have very little upside. Enabling people to more fully expore their own creative has a lot, but that leaves people faced with lots of "incredibly hard" stuff to do by themselves.
I had a blast interviewing Miller, even though I now have nightmarish visions of imperative constructs rummaging around in my patches, and nasty text fields sneaking up behind my objects, haha.
For future interviews, I'm eager to find more women, NB, trans, etc. folks to bring on the show. If you know of anyone working on the frontiers of programming tools, HCI, PLT, program visualization, etc etc, I would love recommendations.
Cheers!
I have never ever looked at any tech show or podcast and thought "hey, that subject was really interesting, but i wish the person was a trans.." From my european point of view, this would seems borderline discriminatory. I'm more of a "i don't care who you are" person.
I will sure post something once it works (I have a test extension done manually in Rust already working, now need to get serious with it, there's all kinds of thread safety issues etc, challenging but fun)