Ask Your Question

Samples seem to (randomly) not get played

asked 2017-04-12 15:09:42 -0500

Arco gravatar image

updated 2017-04-12 15:35:25 -0500

With the following snippet:

 d1 $ stack [
    sound "tech:5" # gain "1.6" # up "-8" # speed "0.7"  # room 0.25,
    (0.2 ~>) $ sound "cp" # speed "1.9" # room 0.1
] # size 0.2

d2 $ sound "co*2" # gain "0.6"

When only playing d1 the beat is perfect, plays all the time what it says there. But once starting d2 it seems like every 4 or 8 cycles it doesn't play the tech:5 of d1 completely, as if it gets overwritten.

Also when combining the two:

d1 $ stack [
    sound "tech:5" # gain "1.6" # up "-8" # speed "0.7"  # room 0.25,
    (0.2 ~>) $ sound "cp" # speed "1.9" # room 0.1,
    sound "co*2" # gain "0.6"
] # size 0.2

The whole echo of the room seems to get lost..?

Would be great to better understand how/why this happens :-)


edit retag flag offensive close merge delete

2 answers

Sort by ยป oldest newest most voted

answered 2017-04-12 17:01:28 -0500

bgold gravatar image

The reverb effect with the room parameter is a global effect, and so every time a sample plays with a new value of room the reverb will be "reset". And the default value is zero, so the "co*2" will cut off the reverb. Since one of those happens at exactly the same time as the "tech:5" it's a race to see whether the reverb kicks in or not.

You can avoid this by using the orbit parameter to put things with different room amounts on different orbits (each orbit has its own reverb unit). I think by default there are two orbits but you can change your SuperDirt startup command to set up as many as you want. Then you could have the "tech:5" on orbit 1, the "cp" on orbit 2, and leave the "co" alone (it'll default to orbit 0). That should sound better.

There's some ongoing development to hopefully make this a bit a friendlier.

edit flag offensive delete link more

answered 2017-04-12 17:07:21 -0500

yaxu gravatar image

Hi Arco,

I couldn't reproduce the problem with the first pattern, maybe because I'm using a development version of tidal.

For the second pattern, reverb is a 'global' effect, so you can't have different values for room and size active for the different parts of the pattern. Well you can, but you have to tell the different parts to be sent to a different set of global effects, called 'orbits'. e.g.:

d1 $ stack [ sound "tech:5" # gain "1.6" # up "-8" # speed "0.7" # room 0.25 # orbit 1, (0.2 ~>) $ sound "cp" # speed "1.9" # room 0.1 # orbit 2, sound "co*2" # gain "0.6" # orbit 0 ] # size 0.2

By default there are two orbits running - 0 (the default) and 1. You can make 3 (or more) orbits by running this in supercollider: ~dirt.makeBusses([0, 0, 0]). More info here:

edit flag offensive delete link more


Oops @bgold beat me to it, ah well :)

yaxu gravatar imageyaxu ( 2017-04-12 17:08:01 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2017-04-12 15:09:42 -0500

Seen: 13 times

Last updated: Apr 12