Pure effect tracks?

I want to make pure effect tracks to manipulate effect values via control busses.

This is my approach.

p "effects" 
  $ "hh" # gain 0
  # delaybus 1 0.6 # delaytime (1/128) # delayfeedback 0.7 # lock 1 
  # roombus 2 0.6 # dry 0.4 # size 0.4
  # lpfbus 3 2400 # resonance 0.2

... then

d3 
  $ hurry 0.8  
  $ s "~!2 hh!2 [~!2 hh]!2 ~ hh ~!2 hh!2" 
  # gain 1.2
  # delayrecv 1 # delaytime (1/8) # delayfeedback 0.7 # lock 1 
  # roomrecv 2 # dry 0.4 # size 0.3
  # lpfrecv 3

This works fine, I can update the effect value such as delaybus globally on "effects" and parameters such as delaytime individually on the receivers. But it seems the effects track needs a sound(?) and sending a sample with gain 0 feels a bit hacky. Are there other ways / pros and cons / to achieve this?

1 Like

I have to admit, I'm a bit lost with what the intended outcome is -

Effects (as I understand them) by definition, are effecting a sound - ie there needs to be a source sound for an effect to apply to

Do you have an example of what an effects only composition sounds like?

pretty sure there is no need to set a sample at all: you can just do

p "effects" 
  $ delaybus 1 0.6 # delaytime (1/128) # delayfeedback 0.7 # lock 1 
  # roombus 2 0.6 # dry 0.4 # size 0.4
  # lpfbus 3 2400 # resonance 0.2

i usually do it like this:

let cb busname num pat = streamReplace tidal (Sound.Tidal.ID.ID $ "cb" ++ (show num)) $ struct "t*128" $ pF busname pat # pI ("^" ++ busname) (pure busid)

and then to control the pan for example

cb "pan" 0 $ range (-1) 1 $ slow 4 sine

d1 $ s "longsample" # panrecv 0
2 Likes

aha, I think I misunderstood the use of the word "track" - in this case OP is referring to "orbits" ?

i think they are reffering to 'channels' (like d1, p "xyz", etc.)

1 Like

I'm using the wrong terminology then - that is what I meant :smiley:

Yes, I meant "patterns" in Tidal wording. I think of them as "effect tracks" that can be assigned individually via the controlbus.

pretty sure there is no need to set a sample at all: you can just do

works indeed. Thank you. The way to define the bus in Haskell is interesting. I haven't dug into that yet.

1 Like

yeah the terminology is not very clear - i'm also not so sure about calling them channels, but it seems good to seperate them from orbits, as more than one channel can be on the same orbit :slight_smile:

1 Like

Also, if I'm right, "pattern" is Tidal terminology, "orbit" comes from Superdirt and "channel" is a concept in Supercollider, we are quite multilingual here.