‘Parameter Locking’?

I’m curious if there’s a different and better way to achieve this workflow:

Let’s say I have an event towards the end of the cycle with a bunch of events before it. I want to set a number of parameters and FX for that single ‘step’ (and maybe later I want to move or duplicate that step). Is there a way to do a ‘parameter locked’, Elektron style sequencer in Tidal where a number of automation points are referenced in one container (and can therefore be moved and duplicated and edited in one place)? I think I’m asking if it would be possible for a sequencer (mini-notation) to have multiple lanes, one for timing, the others for FX and automation. I’m not sure exactly how this would work, or if it would require a workaround that would be worse off then just copying out the sequencers, but I’m thinking out loud. It's possible that I'm missing something obvious (including the fact that Tidal just not be built like this and I should adjust, lol).

Basically I’ve been wanting to make ‘classic’ step sequencer patterns with FX automation and keeping track of the steps to make sure all of the various FX patterns line up is a little tedious. Wondering if there’s a better way.

@kindohm, I know that you’re into the Elektron world. Is this something you’ve ever thought about?

Not sure if this is the best way, but you could achieve something like this with cat?

s1 = s "fk*4" # speed "3 1 2 4"

s2 = plyWith 8 (|* speed 0.7) $ s "ft:3" # room 1 # size 2 # cut 1 # crush (range 10 3 saw) 

s3 =  swingBy (1/3) 5 $ plyWith 4 (|* speed 0.8) $ s "fs"

d1 $ cat [
  s1,
  s2,
  fast 2 $ s3
] 

There's three sequences (or, you could think of them as steps?), and each can have their baked in parameters, and you can block/order them together with cat.

Edit: I realise I misunderstood your question now :sweat_smile:

Hi @ben I don't think I fully follow.. But if there are CC and note events happening at the same time, superdirt will send the CC messages first. Does that help?

Interesting idea @mashaal. The disadvantage of this approach seems to be that it might be hard to control the length of each patten and therefore the length of each 'step'. It is an interesting idea to think of smaller patterns making up the larger one though. I'll bet some cool results could come from that.

And thanks @yaxu. I'll try to explain this better and work out an example tomorrow. I definitely understand how it's not clear, lol. cheers.

Hiya @ben - I think I understand what you mean. Basically creating building blocks of sound + effect and then sequencing these within your sixteen steps (or what have you).

How about using @mashaal's approach but using slowcat instead of cat - slowcat cycles through the pattern once per cycle, meaning each element is applied for the same amount of time. You can speed it up or slow it down using fast and slow - but each chunk will occupy the same time period.

e.g.


s2 = plyWith 8 (|* speed 0.7) $ s "tink:3" # room 1 # size 2 # cut 1 # crush (range 10 3 saw) 

s3 =  swingBy (1/3) 5 $ plyWith 4 (|* speed 0.8) $ s "cpu"

d1 $ fast 4 $ slowcat [
  s1,
  s2,
  s3,
  s2
] 

Obviously you lose some of the subtlety of the mininotation when sequencing with slowcat over the typical method, but it would work for recreating 16 even steps.

1 Like

I think there is some confusion

cat , (also known as slowcat , to match with fastcat defined below) concatenates a list of patterns into a new pattern;

I have a feeling you are looking at doing something like stack but with CC and note sequencing mixed in.

d1 $ stack [
  n "0 2 3 6 7 7",
  ccv "0 120" # ccn 1
  ccv "0 5 32 70 80" # ccn 21
] # s "midiout" # midichan 0

If you want to ensure 8 or 16 step divisions you could discretise the whole pattern with

d1 $ discretise 8 $ stack [
  n "0 2 3 6 7 7",
  ccv "0 120" # ccn 1
  ccv "0 5 32 70 80" # ccn 21
] # s "midiout" # midichan 0
2 Likes

Thanks all.

You're right @khoparzi that I am looking to do both CC params and notes / FX sequences. This is essentially how I've been doing it thus far... But cool idea to use segment to only let values through per 8/16 etc! I'd thus far only thought to use that for lfo's.

1 Like