New custom feature - pattern rotation

Hi all, I've added a new feature to the custom firmware which can be downloaded here as always: https://github.com/rudeog/LXR/raw/master/firmware image/FIRMWARE.BIN

This feature, which was suggested by @tb323 in another thread will allow you to "rotate" the pattern you have entered for a specific voice in realtime. I thought this was a great idea because it opens up some more live performance possibilities.
I've created a demo video here:


To use the new feature, select the voice you want to rotate, and then enter performance mode by pushing the perf button. Now hold down the shift button and you should see the left most LED blinking. This indicates the amount of rotation in effect. Leftmost LED means 0 or none. So if you push the next LED  it will blink instead, and means the pattern will be rotated by 1 sixteenth note and so on up to 15. If you push the first step again it will be reset to no rotation and should go back to as though you had not rotated it. If your pattern length is less than 16, and you try to rotate above that length it will just calculate the wrap around amount, so all should be as expected.

Known issues:
- The pattern rotation is not saved with pattern or performance yet (neither is the pattern length I don't think).
- Clearing a track or pattern will not clear the rotation back to 0 yet.


Comments

  • Wow! This is a cool feature!  >:D<

  • @rudeog: Great work! I'll have to get home asap and try this. :-)
  • I just try it and thats a very cool features thank you

  • cool. thanks rudeog!
  • Would it be possible to instead of seeing first step of track, see the hole programmed track and move the start point with the encoder? And visually see the programmed steps move? 

    As a little strange bonus feature maybe it would be cool to have start point as a modulation destination so a LFO could modulate start point!

    If you can access sub steps with the pattern rotation and modulate start point with LFO you could add a "human touch" to timing on each track. 

    Love this machine!
    Great Work!
  • Interesting ideas @drkorg. The reason I didn't tie the start point to the encoder was because I wanted to be able to precisely and instantaneously jump to a specific position. The humanize idea is an interesting one, and might bear some playing around with independent of the pattern rotation.
  • Very helpful feature, thanks @rudedog!!
  • Great feature! I was just thinking along those lines. Any possibility to add doing this with multiple voices simultaneously?
  • Interesting idea, but how would one select the multiple voices from an interface perspective (without it becoming unintuitive?). Maybe let the voice buttons become select buttons when shift is held?
  • edited March 2014
    That's precisely what I was thinking. This would be consistent with the current control scheme - in voice mode, voice buttons select the voices and shift+voice is a mute shortcut. In performance mode, the voice buttons mute, so shift+voice would make a sensible select shortcut.

    There's no functionality there at the moment, I think it is a debatable point on how to give user feedback as to which is selected. Personally, I would prefer that when 'shift' is held in performance mode, the voice led's all blank except for the selected voice (I frequently forget which voice I've selected for rotation if I'm jumping between functions a lot), opening up the possibility of providing feedback when more than one is selected. It's debatable - maybe more people would prefer having the mute/note play information displayed while in rotation mode. I'm ok with just seeing that when shift isn't held.

    I also admittedly don't know as much as I would like about how the firmware is coded. This could be a far more complicated task. I'm finding the rotation a great performance tool for adding interest and transitions in any case!

    edit - on a second read-through of the manual, I see that shift+voice in performance mode is mapped to 'unmute all' (or rather, unmute all below voice #x). I can't say this is something I've ever used - I find it easy enough to swipe the voice buttons for multi mute/unmute, but others may disagree.
  • Oh man this is excellent. I have wanted this! Metropolis eurorack sequencer can do this as well as the analog 4. Good stuff! Not only is is s great feature for performance but its also great for finding different patterns when writing beats.
  • A very strong +1 from me too. What brendanclarke is saying was the first thing I thought of missing when watching the video. I'm also not using the "unmute all below voice #x" which I find quite strange since it's specific to one direction of the kit piece array. 

    Please? :) 
  • @rudeog (and everyone else): I implemented what I thought was missing for the pattern generator with a rotation parameter on the menu. :) 
  • @tb323 - awesome! we now have LXR dev #3!

    At the moment changing ROT will also force a pattern generation based on the STP value - would it be possible for ROT to just act on the current pattern, that way we could use it to rotate a manually created pattern as well (if the STP knob isn't changed)

     

     

  • edited March 2014
    @husker: Thanks! That should be doable, perhaps. I'll be diving into the code a bit.. :D
  • edited March 2014
    I looked at the diff and this looks good. Glad someone else is coding on this box too. When you consider the feature complete, let me know and I'll merge it into my fork as well.
  • I've merged these changes from @tb323 into the rudeog master.
Sign In or Register to comment.