"CALL / patt / start / length" - new effect idea

What is the problem?

I imagine I’m not the only person who’s making music by coming up with pretty full-fledged ideas for sections, e.g. 8-bar loops representing the intro / verse / bridge / chorus; and then I’d copy these blocks on the timeline and strip them down to build an arrangement, by using smaller sections, repeating them, muting full tracks or smaller bits, etc.

In such workflow, ideally I might want to preserve some integrity of the original idea. So for example if my full-fledged bassline idea for chorus changes at some point, I might want the other parts of the song which I already laid down and that re-use bits & pieces (or full sequence) of that bassline - to be updated too.

With Tracker/Tracker+/Mini this isn’t possible, because each pattern is separate and unique - one can’t re-use the track data (without simple copy/paste) and changing something in one pattern isn’t reflected in any other.

What should this feature achieve?

My idea, implemented as a “simple” pattern command, could add such functionality, while retaining - or adjusting just slightly - the workflow & structure of songs / projects how they’re currently implemented. I think :slight_smile:

For simplicity of the example, imagine I’ve a track in 32-step Pattern #1 with full 2-bar bassline riff that I like.

Let’s say it looks like this (yes, it was prepared in …Excel):

Now imagine, that in another 64-step / 4-bar Pattern #2 I’d like to use some bits of it, but perhaps shuffle them around and extend it. For example, I’d want to repeat first 8 steps twice, then use the first 16 steps, then use the full 32 steps.

Instead of copying & pasting the ranges between patterns, I propose to introduce new “effect” that would have following syntax:

CALL [pattern number] [start] [length]

Now, the pattern instead of holding its own, unique note & FX data; would “alias” them on the fly from another pattern & step range. The screen would display that data using a fainter color and maybe a background gradient, so that it’s clear the data is “aliased” from elsewhere:

Also, there would be a screen button to “jump” to the source pattern & range for editing. And another one to “un-alias” the area from the source, and turn it into regular pattern data, if you’d want to introduce some variability.

Additionally, one would be able to add events on top of such “aliased” area and they’d have priority in playback, until an event from “aliased” comes up next.


At the limit, a project could consist of just couple of original patterns with all of the ideas, while every other pattern used throughout the Song would just borrow bits & pieces from them, like a mash-up or remix. You’d have a pool or riffs and phrases and you’d build a bigger structure out of them. And changing something in one place would affect every other place where it was re-used.

Are there any workarounds?

Not that I’m aware of.

Any links to related discussions?

No.

Any references to other products?

Most DAWs have some variants of this: shared copies in Cubase or Studio One, blocks mode in Reason. Also I think M8’s Phrases are something similar, because they can be re-used in different Chains and song Patterns.

Surprisingly, nothing in Live or Bitwig.

So essentially a master pattern that you can reference and play back a range from in another pattern?

I think you may be missing something though. To make this super flexible, you‘d also have to reference which track from a pattern so the syntax would have to be

COMMAND - PATTERN - TRACK - START - END
(or it could be broken into a start and end command)

unless the idea is really to just play all tracks from the referenced pattern?


I’m not sure i’d use this, but this is most likely due to my own workflow.

I tend to create full fledged A/B etc. section style patterns (varying number of patterns of course), with all the parts inside that i then want to destructure into a song for buildups, bridges, teardowns etc.

This can be done without much effort in song mode. I usually start building patterns at the higher end (at around 200+) i then copy from those patterns (individual tracks or a selection of tracks) and lay them out in a song structure. I can easily go in and create variations this way without changing my initial pattern(s).

1 Like

I thought about this, actually.

But I was being conscious of the fact that Step consists of 4 elements: Note, Instrument, FX1 and FX2, so I wanted to restrict myself to function name + 3 parameters. If someone would come with some clever encoding mechanism that would fit track number or maybe even number of tracks, then it would be awesome. However, for now - the assumption was that the call would always refer the same track, just in a different (or even the same) pattern.

BTW, thanks for looking at it! I’m aware not everyone creates or thinks of music that way, but maybe there’s enough of us that do and that the devs will find this interesting (and realistic to implement).

I like that the idea is “transparent” to those who wouldn’t find it useful, too - just ignore that command and it’s like it isn’t there.:slight_smile:

1 Like

Yes, it can. But if you copy track data from one pattern to another in Song Mode, then:

  1. it copies the whole track, not a segment of it
  2. they’re not linked anymore, so changing the source doesn’t update the copy (“alias”)
1 Like

Then i‘d propose to use two commands

CALL-PATTERN-TRACK-STARTSTEP
and
CALL-EXIT

i think having the possibility to define which track of a pattern to target would be very useful.

By the way - make sure to always vote on your own requests! :heart:
I find it pretty important, that the person who proposes something, should also use one of their votes for their idea.

This reminds me, i should probably make a post about that, since i‘ve seen this a couple times now, that people propose something but don‘t leave their own vote on it :laughing:

1 Like

Oh, that’s clever - thanks!

I felt it would be akin to liking my own posts or videos, which is possible on some platforms but blocked on others, so I’ve not even tried it :smiley:

Upvoted :+1:

1 Like