I have a query about something that is out of my c...
# thinking-together
j
I have a query about something that is out of my comfort zone, so the question itself might not be right, but here goes. I have a friend who has found a way to live code the Reaktor Core audio DSP language, such that they can do things like programmatically change connections in the audio graph. This led to the idea of live coding the audio graph itself as a potentially musical activity, for example scheduling a sequence of graph transformations, or sequencing the opening and closing of connections between nodes. The (potentially malformed) question is: what techniques might be useful to take inspiration from for an idea like this? Any papers or libraries that would be worth a look? I assume the relevant domain would be graph theory..? Thanks in advance
s
I'd think of this more as a meta-programming - I'm more familiar with max/msp but I think the idea is the same - instead of patching things together (writing the program), you write a program that does the patching for you. I used this technique in max/msp few times to simplify complex patching, and doing this live is obvious next step, but I'm not sure what it can bring that can't be really done without it - for example instead of patching/unpatching a connection from signal to delay, you can just put a mixer in between the and change the volume from 0.0 to 1.0 if that makes sense 😉
😁 1
m
I think a dsl to match a graph path and apply an operator there would be a declarative way to do it "match all gains with value > 0.5 then increase them by 10%", "replace all distortions connected to a sine wave with X"
j
Thanks for your thoughts @szymon_k @Mariano Guerra
@szymon_k so more like programming the “weights” of the graph…?
@Mariano Guerra it would actually be so cool to have a natural language parser like that. Is there something at the intersection of logic programming and graph programming…?
m
graphql is a graph query language 🙂
s
Yeah but I'd argue a neo4j is waaaaaay different than max/msp / reaktor even though both have edges and vertices 😛
m
you want to match nodes, node attributes and relationshipts, that's the same, then with the match you want to do some transformations, that part is not covered in those query languages
s
so more like programming the “weights” of the graph…?
hm not sure I understand 🙂 what I mean is, you can do: -
sinewave signal -> switch on/off -> output
in reaktor / max/msp directly, and control that switch -
sinewave signal -> output
and remove/re-add that
->
connection programatically both have the same output though
j
Yeah but then the choice becomes adding a switch in between every vertex (and possibly more complex things than that later), or building this type of thing into the language/environment right?
Hmm yeah @Mariano Guerra separation between query and transform… “Direct graph manipulation” doesn’t seem to be a thing that I see very often, why is that?
m
doesn't seem to be something you usually do, usually interactions with graphs are CRUD operations
to a node
w
A topic near my heart Jack. Corresponds to meta-programming, parametric modeling, and anything with a rich notion of templating. Graph theory is less relevant than Applied Category Theory. At last there's good introductory material http://www.azimuthproject.org/azimuth/show/Applied+Category+Theory+Course.
❤️ 1
i
Isn't supercollider basically a language for livecoding a graph of audio processing units?
And maybe not livecoding, but has anyone played much with FAuSt?
s
re: supercollider - yes, it is, and afaik most audio languages, visual or not, work using some kind of audio flow graph metaphor, I think it's in part because plugging things together (like with guitar boxes or modular synths) is familiar for musicians
haven't heard of faust, looks super interesting, thanks for the info; chuck is another low-level audio processing dsl worth checking out