Pattern interference with custom pattern names

hello! I'm getting re-acquainted with tidal and feel like I've encountered a bug.

Here's the code:

let reverb wet = room 0.8 # size 0.7 # dry (1 - wet)

let lfo = slow 1.2 tri

p "chord"
  $ s "[[arpy:1,arpy:2,arpy:3,arpy:4,arpy:5](3,16,3)]"
  # pan saw
  # shape 0.8
  # delay 0.8 # delayfeedback 0.6 # lock 1
  # reverb 2.5
  # cutoff (400 + lfo * 4000) # resonance 0.3
  # phaserdepth 1 # phaserrate 1.2
  # gain 0.5

let drumswing = swingBy (1/6) 8

let drumfx = shape 0.85 # cutoff 1500 -- # reverb 0.25

p "drum-min"
  $ drumswing
  $ stack [ s "bd!3 [bd ~ ~ bd]" -- kick
          , ghost $ s "[~ hc]*4" -- hats
          ]
  # drumfx

The "chord" pattern sounds relatively wet on its own - delay and reverb. As soon as I bring in any other pattern - "drum-min" in this case - the chords dry up. It's as if the amp envelope on the chord stabs are getting cut-off by the other pattern.

When I mute the drum pattern a la p "drum-min" silence, I hear a long tail of delayed drums as if they were running through delay (which they weren't if I'm not confused). Sometimes they cut out and come back.

Weirder yet, this seems to just be a bug with custom pattern names like p "whatever". This bug does not reproduce with d1.

I've tried quitting and restarting supercollider, rebooting sclang, the tidal client, etc. to no effect.

I think this has to do with defining custom pattern names, but not assigning them to different "orbits" - which means that a global effect (like room) will apply to all patterns on the same orbit

a simpler example, where I assign the custom pattern to different orbits and should give the output you're expecting (ie reverb on one pattern but not the other):

let reverb wet = room 0.8 # size 0.7 # dry (1 - wet)

p "foo"
    $ s "bd*2"
    # reverb 2.5
    # orbit 1

p "bar"
    $ s "sd(3,8)"
    # orbit 2

I like to use this to create weird reverb cutoff effects by patterning orbits - eg:

let reverb wet = room 0.8 # size 0.7 # dry (1 - wet)

p "foo"
    $ s "bd*2"
    # reverb 2.5
    # orbit 1

p "bar"
    $ rarely (# orbit 1) -- this guy along with # reverb 0 creates weird reverb interference
    $ s "sd(3,8)"
    # reverb 0
    # orbit 2

Thank you, I'll have to look more into orbits and global effects. I didn't see this called out on the main audio effects page, though searching for some of these terms, it seems orbits are discussed over here in lesson 3.

So IIUC the gist of this is that when another pattern generates an event setting the room control, that control then effects all the audio routed through that orbit?

Correct! delay is also a global effect, as well as clouds and verb if you're using the mi-ugens

1 Like