Polymetric exclusion?

Thanks anyway! And thanks for the feature request link.

Thank you, I really appreciate your looking into it. I do believe I’ll contact feature-request@elektron.se too for a simpler solution. Can we get some love for this feature idea in the comments here, to add weight? I agree it would be “really cool”.

3 Likes

Thank you everyone for your thoughts and ideas. It really is something I care about a lot and I think it would make a great feature.

For some added context, I have actually solved the problem using web technologies and my drum machine called Beadz. You can use the web based version for free here: https://heydon.github.io/beadz-drum-machine. To see it in action:

  1. Make the kick, snare, and snare light tracks different lengths using the + and - buttons to the left of each track.
  2. You can hear the snare overrides/cancels both the kick and snare light while snare light just overrides the kick.
  3. You can change these settings by pressing the cog button/icon for each track. In this case, it’s called “Overrides”.

Here’s a link to Beadz with that all already set up. (Apologies for the limited and poor quality sounds, but performance over the wire is an issue, I have a macOS version with lots more features, if anyone is interested.)

Just like Model:Samples, there is a “chance” feature. In my case, it’s called “Probability”. Importantly, if the chance/probability means a sound isn’t played, the would-be overridden sound(s) gets through and is played as if there is no matching assignment/trigger on the other track. If two tracks/sounds override eachother it gets interesting. Depending on the chance/probability setting, either none, one, or the other will play.

It feels to me like this would be a relatively easy thing to add as a feature. I’m not sure “choke groups” is quite the right terminology, though. To me, choking is about the tail of one sound being cut off as another sound starts, usually on the same track. This is about overridding triggers (whole sounds) between tracks. I will specify the feature, contacting feature-request@elektron.se (thanks, @Schnork).

If you play around with Beadz and you like the way the feature works, please show some support for it here (or however you think is best). Personally, I think it would be a really powerful addition to an already really flexible and fun piece of hardware. I’d even go so far as saying that—for a polymetric drum machine—the feature is kind of conspicuous by its absence.

3 Likes

But that’s really what choke groups are. If you want to trigger both at the same time, you can’t. It’s widely used to cut the tail of an open hat with the next closed hat (to mimick real world playing and to get it grooving), but yeah, that’s what it is: two sounds in the same group can’t play together. Back in the days, manufacturers seemed to think that drum machines kind of had to compete with real world drummers. On a drum set you can play your hat either open or closed (ok, and half-open), but not both at the same time. You’d need two hats.

Like mentioned it’s a standard feature on drum machines and the Machinedrum had it. On the Rytm it’s more of an actual voice limit (more tracks than voices), but essentially it works the same.
Software drum machines/samplers also usually have choke or mute groups. I bet your DAW has this feature in its drum sampler.

Given Model:Samples is a drum machine, asking for choke groups seems plausible.

Yeah, I really expected the trig conditions to work with different track length and multipliers, but I checked on three Elektrons…just in case there’s a bug. I feel they should work like that. What do you guys think?

I guess they’d have to make it a menu option, because changing trig conditons to polymetric would potentially break older projects.

As the name choke-group already tells us, they were “invented” to stop something like an open hihat on one track, when the closed hihat is triggered on the next one. I think that one has more priority over the other when playing simultaneous is just a side effect of them.
And because Digi- and Model boxes don’t have the problem, that you need to have 2 tracks, one for the open and one for the closed hihat, there was no reason to add that feature to the firmware, using the resources for something else (memory and cpu).
That you can use such a feature for something like polymeric prioritizing sounds, is just a nice side effect for those few who need it.
I would assume, that the chance to have this implemented is very much based on how easily it is integrated into what is already there. If it is a minor change, because it can reuse stuff thats already there and it does not break other features, something like that might appear in a future upgrade. If this is something that they need to implement from scratch (because even if it sounds as if thats something probability is easily doable, we all dont know how it is done.), I would assume that the product manager who has to prioritize features into that small amount of available development resources, they might just invest it in stuff, that make the majority of users happy or is asked by really really a lot requests. Song mode on Digis is a good example for that. There is not much that was more requested (other than a OT mk3) than that, and it took over 5 years for them to add it to the boxes.

Yeah, I imagined it as a menu option. It’s high-level, track based, so that feels like it makes the most sense.

For me it is working as I would expect with tracks of different lengths. The audio of the tracks is still independent so it’s not quite like a choke group but I am able to get the trigs to not fire simultaneously on 2 adjacent tracks using trig conditions. It seems I’m doing what was outlined above by @Schnork but I’ll describe what I did to be sure.

Track 1 has a length of 4 steps with a note on step 1. Track 2 has length of 3 steps with a note on step 1. On step 1 on track 1 I put a condition of 100% (or noFILL). On step 2 I put a lock trig with a condition that will be false (FILL works but some others will too, NEI?). On step 1 of track 2 I put a noNEI condition.

Visually:

T1: TL..TL..TL..TL..TL..TL..T
T2: T..T..T..T..T..T..T..T..T
    ^           ^           ^

T = trig, L = lock trig.
Where I put carets you will only hear track 1. Is this not what we’re trying to achieve?

Edit: The M:S doesn’t have 100% chance like my DN so noFILL works instead. Come to think of it, having 0% and 100% chance would make this technique cleaner. Maybe that’s a good feature request.

Edit2: I’ve found that it does NOT work right when track 2 is set to 1/2 speed of track 1. Seems like a bug. Also sometimes both tracks fire on the very first note when you press play.

3 Likes

Where I put carets you will only hear track 1. Is this not what we’re trying to achieve?

Just getting set up, I’ll try to find the menus I need to test this, thanks very much!

1 Like

I couldn’t get it to work on my Mk1s. Tried different track length and 1/2 speed, 1/4 speed.
I’ll give it another shot later, test more thoroughly, maybe we can work out if it is indeed a bug.

2 Likes

Where I put carets you will only hear track 1. Is this not what we’re trying to achieve?

Yeah, I can’t get this to work at all. Tried various locks/conditions. I’m new to Model Samples, though, so may be doing something completely wrong. :sweat_smile:

1 Like

Are you on the latest firmware?

Are you using different track scales? Because that is definitely buggy. Try sticking to only touching length for now.

Sorry I just noticed an error in my description above. The note trig on track 1 step 1 should have a condition that always evaluates to true so the note will play. noFILL works so long as you aren’t in fill mode. (I had written it backwards as FILL in my previous post).

1 Like

Sorry I just noticed an error in my description above. The note trig on track 1 step 1 should have a condition that always evaluates to true so the note will play. noFILL works so long as you aren’t in fill mode. (I had written it backwards as FILL in my previous post).

I think this is kind of working! For multiple steps/triggers on Track 2 I think I can just put noNEI on each of the triggers?

It’s difficult to test because my brain finds it hard to keep track of the ever-changing pattern 🫤. It may be choking too many beats, I’m not sure. But it certainly works at least to some extent, so nice one!

2 Likes

Yes! Every note trig on track 2 should have a noNEI condition.

On track 1 every chain of rests should start with a lock trig with a FILL condition.

On track 1 every chain of notes should start with a note trig with a noFILL condition.

Though it might be simpler conceptually and less buggy to put conditions on every step of track 1 (repeating FILL or noFILL as necessary) :man_shrugging:

1 Like

Though it might be simpler conceptually and less buggy to put conditions on every step of track 1 (repeating FILL or noFILL as necessary) :man_shrugging:

Really appreciate your input on this. Hope you find it as useful as I will!!

Now I’m wondering what happens when you switch whole polymetric patterns during playback. If there’s overlap, that would be really cool.

2 Likes

I definitely know this better now and I’m really into polymeter so it will be useful for sure :smiley:

The patterns change all at once. Each track will start on the first step of the new pattern. The Chg parameter on the Scale Setup page (func+page) controls how long a pattern will play before a change.

1 Like

With which Elektrons have you tested this? I tried with OT Mk1, AR Mk1 and Analog Keys, but I´ll try to give it another shot today.

Model Samples, Digitone, Syntakt. I will try OT MK2 and RYTM MK2 later.

What result are you getting? Is track 2 playing all the time or never?

Never played. The thing is, it seemed as if the trig conditions did not take any scale setting into account nor different track lengths.

Different scales does not work right. Different lengths works for me (confirmed on my OT mk2 as well).

If you’re never getting notes on track 2 I suspect track 1 is never going into a false state. Make sure a FILL lock trig is on track 1 just after the noFILL note trig.

1 Like

I’m trying to conceptualize how/if this might work if you have more than 2 tracks that you wanted to do this with.