-
Notifications
You must be signed in to change notification settings - Fork 79
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merging StrudelDirt ? #302
Comments
Ah yes, it would be really so much better to keep them together! There are also people who slowly work on a browser version of supercollider, so that may help strudel as well. Now there are a lot of changes which are hard to separate. We'll need to have a chat about why certain things were needed, it seems that some could be done with less impact. But please, let's not get superdirt forked away, because that will make development really complicated. @daslyfe , if you can bear with us, please request changes, I am open to them. |
Hi yes, that would be great if a fork is not needed to support these features I am working on that are useful for strudel. I am sure there are much better ways to implement some of these things, I am new to supercollider and hacking things together at the moment so very open to suggestions! Here are some of the proposed changes: Suggested dirt changes: Volume envelope adsr instead of asr. Note event Filter adsr envelopes - Created envelopes for each filter type. Envelope params default to volume adsr params when not specified. New oscillators: Meta parameters: z1-4 for various oscillator modules. Similar to mutable braids, or electron boxes, oscillators can have up to 4 parameters that shape the sound and vary depending on the model. Strudel changes to support dirt: Tidal/supersirt/strudel note consistency proposal: The default octave should be 4, and ‘c’ or 0 coming from tidal/ strudel should refer to middle C aka C4. C4 should also play samples at their original frequency. I believe this would require some changes in each program to be consistent. If these changes/ features fit within your vision of superdirt I can break them up into separate PRs. |
Thank you for these! Very apprechiated. I'll comment them here, let's see:
We just need to take care that
I would really like to have a combinatory method to do this, rather than building them into each filter. It would be much better if we could run arbitrary envelope synths on any argument, as we can already by mapping. This takes a little bit of work though, so it would be good if we can live without it for a little while.
good!
good! Btw if there are any defaults needed, they should best be added to
in supercollider, the default (middle) octave is 5, this should be kept, I think.
That would be great, then we can make them fit in best. |
Regarding the filter envelopes, I think a more flexible module based system sounds really cool. For now though can we do the envelopes for the filters as implemented (or similar) in the fork and then factor it out later? It is a feature that has been implemented In strudel for a while already. |
Yes, maybe that is ok. But there are a lot of special things in the modules. So we'll have to integrate the functionality of StrudelUtils. Also I have so far taken care that superdirt is not dependent on sc3plugins, but uses them when provided. This may be a little fiddly... Maybe, we could also add the variant modules to SuperDirt in a separate file where it is not loaded automatically, e.g. under But let's see. |
@daslyfe Ah and as I see it, one more thing I notice: modules are used as event-wise effects on synths and samples. There should be no reason to use modules for synths. This causes a lot of overhead in the end, because they are in an order, and have to traversed by every event one by one. The synthEvents you are creating are fine, all calculations can be made within them and then they should be reachable simply by their name, as usual. Sorry that there is no documentation … |
@daslyfe I see that there are more additions accumulating in the fork – would it perhaps not be better to find solutions in E.g. multiplying all the amp values in the SynthDef through the StrudelUtils may be achieved without much dependency and modifications by adding a function to the default even that calculates the amp value from the current environment. |
Currently at the moment I am in a messy “hacking” phase of working on this, I am almost done though and a lot of the work will be broken into small prs. Regarding amp values: my goal ultimately is to get all sustained synths to be at about 1/2 relative samples and percussive synths. This has worked well for strudel mixes not needing much gain adjustment to sound “nice”. |
Regarding modules: I created them for supersaw and superpulse because the array fill parameter needs an integer and not a ugen in order to work. Maybe there is a better way to do this? |
Sorry, I don't understand yet – do you want to make synthdefs on an event basis? |
Strudel has a kind of superdirt clone superdough as it's default output. Strudel can also target superdirt via the osc support, which works well but there is some mismatch with the way superdough works, so @daslyfe has recently forked superdirt into StrudelDirt with some changes.
So I thought I'd make this issue to discuss the possibility of merging them again, with superdirt getting some enhancements in the process. This might involve tweaks on the strudel/tidal side if needed to get things closer.
The text was updated successfully, but these errors were encountered: