Thanks. I was under the impression that FX get ordered in the way that we write them in Tidal, except for delay and reverb which are on sends. I could definitely be wrong.
And I’d love to know more about the possibility for making the reverb act like the other effectsIn the local chain if anyone knows if that’s possible.
all effects, yes. I'm sure my understanding of effects is lacking.
E.g., this page https://tidalcycles.org/index.php/Advanced_workshop_topics mentions
"global effects and routing". I think "routing" is what we are after here. But what exactly is the distinction between global and non-global (local)? How do I find out that property, for any given effect?
My understanding (which could be wrong) is that 'global' is the same idea as a 'send effect', so the default configuration is that delay and reverb are on sends and 'local effects' will be everything else, and I do know that order matters with the local effects. They stack up. You can hear it pretty well with something like this: d1 $ s "cp" # freeze 1 # squiz 0.3 # waveloss 98
But if you now place a reverb in the chain it gets sent off to the send bus (orbit) and does not get eaten up by the waveless effect. It sends the sound to the reverb at the end of the chain (so after the waveloss in this case): d1 $ s "cp" # freeze 1 # squiz 0.3 # waveloss 98 # room 0.5 # size 0.8
And I've seen the documentation for making reverb and delay have their own sends (or orbits), but I haven't seen anything about having delay or reverb act locally, which would be great to play with.
Thanks. I do feel that documentation is lacking in this area. There was a related thread at Default samples list? - #2 by kit-christopher It was suggested to look at "ground truth" by s.queryAllNodes. Well, I really should.
I actually thought that all effects were assigned to a specific orbit the moment you call d1, d2 etc?
It could also be that I've never understood correctly.
delay on d2 will override the parameter of delay in d1 - you will basically hear the same delay applied on both kick and snare. But I have to explicitely route (I do not know if the term is correct here) both streams to the same orbit.
This is what the different orbits are for. @yaxu talks about that in one of his early videos for the class. The one on FX I believe?
It's very hard to tell without some time based effects in the chain, like reverb (which is my goal anyway lol).
I feel like I've gone as far as I can just by listening. We might need to wait for some official word?
EDIT: I think you're both right. I realized that I could set the resonance really high on a filter to ping it to get some decay. It doesn't matter if the waveloss is before or after the filter. I would expect to hear the filter pinging on the grains from the waveloss if it indeed came after. Now I'm really confused, right along with you.
~dirt.modules should list the effect chain in order. For me though, it gets truncated.
However I know you can change the order of two or more modules relative to each other like this: ~dirt.orderModules(['bpf', 'coarse']);
Actually if you run it with a single value nothing gets changed and it still prints the list of effects, e.g. from ~dirt.orderModules(['bpf']);, I get:
Note that the room and size of reverb aren't there. They're global effects, so necessarily have to come later. It looks like the global effects don't have helper functions for manipulating them yet, but go delay > reverb > leslie .
I got something going pretty quickly. I ran into one issue that I can't figure out though: the reverb gets cut off at the end of each cycle and restarts. It's like it gets killed at the end of each cycle (or the start of the new one).
I placed the order of the effect after 'envelope' thinking that might be it but it didn't do it. Does anyone have any ideas?
The reverb I used sounds pretty terrible but it's just for test purposes. I followed along with the doc yaxu posted and this is what I did:
Ah, I was afraid of that. I suppose legato 2, etc should work though.
But that leads me to another question that I hadn't thought of until now: effects in SuperDirt must be polyphonic yes? In other words, I'm not treating the overlapping sounds (if using legato) together in the reverb, but I'm treating each sound separately and then SuperDirt is mixing them back together. Is that correct?
In the case of your local reverb effect yes, it's local to each event. For the standard/built-in superdirt reverb, it's 'global', so all the sounds (per orbit) go in there.