Feature request: Individual channel offset (time delay)

Hi,

Would it be possible to implement the following feature:

Each channel to have its own 'offset' settings which would delay all the steps on this particular channel. Offset unit could be a millisecond (if possible) or a smallest unit of time given the internal resolution of the sequencer.

The above feature would allow to create more interesting rhythms. AKAI MPC series have a similar feature.

Let me know if I somehow overlooked an existing function that is similar.

Thanks

Comments

  • edited November 2014
    Thats a good idea. A cool function too would be the swing per voice option.
  • Great idea for humanizing/wonkifying beats
  • you can do this at the sequencer resolution with the 8 substeps. just turn off the first one and turn on the second for each step that's active. not quite as fast as setting an offset, but you get more control over individual steps.

    this is also the way to do per voice swing/shuffle, negative swing/shuffle, per step swing/shuffle, etc
  • clarification: second substep for slightly late, eighth substep for very late (or slightly early if you sequence the voice on the previous step instead).
  • @gzifcak that's a cool suggestion, thanks!

    I was looking for a bit more control though. I'd like to program the voice using steps/substeps and then have a menu option to slightly delay all the notes in the pattern by an offset value.

    To take things further, the voice offset parameter could also become a destination for the modulation source (for creating phasing effect/various shifts in the rhythm).

    I'm going to have a look at implementing it myself but I won't get a chance to dig into the LXR code until next year.
  • That is really good idea! +1
  • My advice would be to do this with track rotation. I'd like to make track rotation it's own mode (like the euklidean pattern generator), so some key combination could be devised to set rotation on a sub-step rather than the full-step resolution it does currently.

    Is a 1/128th note enough resolution for your purposes?

    adding rotation as a mod destination... there's a thought. I've a few things on my list I'd like to get as working mod destinations, that code is pretty hairy though. The current mod destinations are all voice params, minus the mod dests themselves, so adding a non-sound parameter destination is not trivial. It should be possible though.
  • it sounds like maybe @jazzmonster wants values that are smaller than the 1/128th (32 ppq) timing resolution. otherwise (except for the mod destination) this is already possible with substeps. if rotation doesnt work on substeps yet you can rotate it in your mind before programming ;)

    i for one wouldnt mind a resolution upgrade to 48ppq as this special number gets you triplets for every value all the way down to 64th notes (see 909, linn, p3, etc) but i realize this would mess up the brilliant substep interface because now there would be 12 clicks per step instead of 8.
  • In an ideal world, this is what I though would be useful: Let's say you program a pattern, and you decide you'd like the snare or hihat to be very slightly delayed compared to the other voices. This is an old technique from MPC machines which makes (together with swing/shuffle setting) the rhythm sound much more natural and human. It adds certain groove to it. But the voice delay needs to be adjustable down to milliseconds. So it's not really a rotation, it's much more subtle.

    I understand this can be partially recreated (specially at faster tempos) by using substeps, but it seems like a very convoluted way to achieve the same effect, as it requires reprogramming the sequence, as opposed to adjusting just 1 parameter to taste (especially when playing live).

    I guess another workaround (to an extent) would be to adjust the attack of the sound, but then we'll loose the initial transient.

    Maybe there is a way of setting a voice delay in the actual player routine, as opposed to the sequence itself. That way it wouldn't depend on the internal resolution. Just delay the playback of the particular voice.

    As I mentioned I won't get a chance to look at the code until next year but certainly this is something I'd like to try.
  • i agree that would be cool at smaller timings than the current sequencer resolution, and convenient with a single adjusment rather than each step. adding a delay parameter in
    the voice is a cool way to do it, but then you couldnt slide it early. maybe an offset setting in the mix section by the track length? having an offset parameter in milliseconds would avoid having to upgrade the sequencer resolution, but it would also not obey tempo changes.
  • @gzifcak Yeah that sounds good. The way I see it there is no need for negative offset (to trigger the sound ahead of the main sequencer beat), just a positive offset (delay) is enough. The MIX section in the menu seems like a good place for it.

    The offset doesn't necessarily need to be synced to tempo, it's something you need to adjust to taste depending on how it sounds. So to make things simple the unit can be a millisecond.

    On the other hand if we make the unit a fraction of the current beat duration then it would automatically be synced to the main BPM setting.

    For example if the unit is 1/128 of the beat duration, the range is from 0 (on the beat) to 127 (which is 1/128 of the beat duration ahead of the following beat). At 120 BPM 1/128 of the beat is equal to approximately 4 milliseconds. I'm not sure whether that's accurate enough - it would need to be tested.

    I guess keeping the parameter in the 0 - 127 range would be consistent with the rest of the settings in LXR.
Sign In or Register to comment.