Replies: 9 comments 19 replies
-
If we have a server would be fairly straightforward to load SuperDirt in a docker instance of SuperCollider. But is quite hard to orchestrate in sessions instances (require probably Kubernetes) and it would rely on cloud computing. |
Beta Was this translation helpful? Give feedback.
-
For a client solution I would say that a webAudio implementation of Dirt - starting from dktr0's WebDirt implementation - is very reasonable to ensure compatibility with tidal |
Beta Was this translation helpful? Give feedback.
-
Cool to see this! Great list, I'm eager to see the discussion. What are the priorities and features that you need out of the engines you want to support? I'm the author of Elementary Audio and would be happy to answer questions about whether or not it fits your needs. I think it could be a pretty cool integration; Elementary runs in the browser with a JavaScript API that speaks to a WASM engine running in a web audio worklet, and since you would interop just with that JavaScript API, you'll be able to easily run the same code on the other supported platforms of Elementary– cli, plugins, and file->file offline processing. I'll leave it at that for now as I don't want to overstep my bounds, but I'm happy to chat further if it's helpful! |
Beta Was this translation helpful? Give feedback.
-
It seems like exploration of more than one of these options is warranted. From that angle, maybe it would be good to discuss the bindings here as well, do you have anything in mind already? Or should "sound engine bindings" be a separate issue? |
Beta Was this translation helpful? Give feedback.
-
For those who are interested, here's a demo combining Strudel with Glicol language/audio engine: |
Beta Was this translation helpful? Give feedback.
-
I thought it would be good to also think about non-sound possibilities:
I'm working on a webserial package for strudel at the moment, it should be quite easy. |
Beta Was this translation helpful? Give feedback.
-
I think an important requirement is that the sound engine is really flexible in terms of being able to control effects and other synthesis parameters independently, to effect individual sounds. For example it should be possible to play a sound sample, that is panned to a certain position, with a low pass filter set to a particular value, and a distortion effect applied. Slightly later another sound could then be triggered with different values, without the first one changing. Then all these effects can be patterned. Ideally, we would go beyond trigger messages, by applying a pattern to the life of a sound, so that effect values can be modulated with the pattern while it plays. Exceptions are 'global effects', like reverb. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Let's use this discussion to talk about possible sound engines:
non sound:
With the current structure, we don't even have to decide one one, but can create a package that adds bindings for one or more.
If you know additional candidates, please keep em coming.
How to implement a custom output
Using a different sound output requires creating custom "bindings", which means creating a pattern method that tells the REPL how to output an event when it is triggered. This can be done like this:
The exact same approach is already used in .osc, .midi among others.
So if anybody is interested in trying out one of the above (or something else), this is the current way to go.
You can find project setup instructions here!
Beta Was this translation helpful? Give feedback.
All reactions