i have a design drawn up for this sort of multi-pattern meta-sequencing. just need to find time!
Can’t wait to see how you do this!
Speaking of meta sequencing - scale sequencing and transposition would be great too. I like programming chords on the scale slots for complex arpeggios with different pitch and trigger patterns, Being able to sequence scale changes an transpose the chords would make song structures more accessable…
Yeah, I’ve been longing for chord progressions in Kria.
Probability for each pattern would also be awesome… i.e. play P1, then maybe play P2.
I don’t use probabilities page; a shame, but I never think of it in the moment. Perhaps that’s where scale/pattern sequencer will go?
I implemented quantized pattern switching for Ansible’s Kria: https://dl.dropboxusercontent.com/u/125278/Monome/ansible-1.4.1-kria-ycros-quant.zip and my code is at https://github.com/ycros/ansible/tree/kria-quantization
@tehn said he’s doing some deeper stuff with the pattern system so he won’t be pulling this into the main version, but until that’s done here’s my version.
How it works:
- It is off by default, and settings are stored per-pattern. It is accessed by holding down the time modifier button while on the pattern view.
- There are two rows, the second row acts as a multiplier for the top row’s value, so you can quantize to greater than the length of one pattern.
- Turn it on simply by selecting a value in the top row, turn it off by selecting the currently selected value in the top row.
- When active, the pattern will reset when the currently set quantization length is reached. When a new pattern is selected, the current pattern will play out until the currently set quantization length is reached before switching to the newly selected pattern.
- There’s a display when it’s active, showing you where the playhead is within the master pattern time block.
Yeah, scale, pattern and transposition sequencing would be so cool…
But anyway, thanks a lot for doing this! I’ll check it out the next days, sounds great so far!
The ability to cut/paste patterns seems obvious. I’m new to Kria, how does everyone do pattern writing? Start over in each pattern?
pattern page: long press is writing current pattern, while short press is loading.
One more note so that it’s in the “log” – I’d also love to see note repeat and delay as options in Kria. That would really make this an all-in-one sequencer. At the moment I use external modules to kluge this together, and I’ve been experimenting with TT scripts. But having repeat and delay views like the probability view would be amazing.
THIS is the thing that always bites me. It’s a little too easy for a short press to become a long press. Before you know it, you’ve overwritten the pattern you were intending to load.
This happened to me several times recently because I wasn’t being careful.
we can increase the hold time
I think that’s probably the best solution, I remember you throwing out up/down or W/R indicators, but they would totally break the aesthetic when something simpler might fix it. Alternately, an indicator could be a cell next to the selected one flashing in recognisable ways - fast blinking for write, slow triple blink for load.
press to open the preset.
short held press to read. (3 flashes.)
long held press to write (rapid blinking.)
I don’t know - maybe it’s me being a bit stupid but I think I lost as many patterns by accidentally overwriting the one I wanted to read as by accidentally reading an old one instead of writing the actual one on that position.
It got better now and I hope I get used to it as I got used to not just long pressing the panel button for a quick save as it works on the trilogy modules.
I am not sure though if it would help me to have different flashing buttons with another pattern I have to learn apart from long holding vs. short pressing the preset button. It probably would confuse me even more and I might not remember if saving the pattern was a long press or a short hold…
But if you’re already confused, wouldn’t a visual indicator help?
I’m used to things like Mutable Instruments with their LEDs to show when you are loading new firmware; fast pulses means writing, and I’m sure there are a bunch of other techs that use the rapid pulses for saving/writing/activity. This way would give you time to realise the error too, especially in combination with the longer presses.
3 seconds to read. flashes slowly.
5 seconds to write. flashes quickly.
Another alternative could be holding down two keys to write, a more intentional gesture.
Maybe I did not fully understand your proposal but I don’t feel that I need a visual feedback while I am reading/writing. I see that this is useful when you load a new firmware, just to see if you are progressing and if it worked out in the end.
It does not seem to make a big difference to me memorizing a long/short press vs. fast/slow flashes. And in case you realize that you don’t want to do what you do just doing, how can you get out of it then?
Another point would be that, personally, I find the Mutable Instruments practice to work with long and even longer button presses combined with several LED patterns horribly impractical - I never know which mode I am in and constantly have to look it up form the manual. Plus I find long and longer button presses much harder to distinguish than a short press and a longer hold.
So for reading/writing presets I would prefer either a very clear solution as W/R indicators to press (maybe while holding the respective preset button) or a very simple solution as it is now that should be the same across the whole monome line.
Somehow connected to this is what I really would like to have on Ansible: There is a gap in performance when you read or write which de-syncs everything and you have to reset and start again when you just saved something nice. It would be great if we were being able to play the presets too and switch between them instantly. A short and simple single press to read a new preset would perfectly make sense then…
The way I can see it working is that if it hasn’t started flashing in either instance, you haven’t overwritten or changed what you were working on. You get out of it by taking your finger off before it starts flashing. I don’t understand where you are coming from, you want the big W/R but don’t want visual indicators?
What I’m proposing here gives you time to realise that you’ve done something stupid, and visual indicators of whether or not it is too late. I haven’t switched on my system to check if this is the way it already works, but if the ‘current pattern’ is stored on reading ‘new/saved pattern’ then you would have another extra layer of protection too. Add to that a second keypress to make a write gesture ‘intentional’ and you have a pretty secure way of working.
I would want clear visual indicators as the big W/R to press on for writing or reading - I would not want abstract indicators as a fast or slow flashing button while pressing long or short on another button.
I could see it working when it starts flashing slowly for a moment and then flashes faster. Releasing the button while the first phase would do nothing, releasing it after the first phase would read and releasing it after the second phase (when it stopped flashing) would write. It just would be to complicated for me as I would have to memorize the flashing phases, then have to get the right point for releasing the button while not getting to upset as in “uh, it’s flashing - what have I to do now to not mess everything up, was it short or long flashes…”.
You may not want to write a pattern after doing some changes just because you want to read another one.
I think trying to get the function of double check boxes as on a computer (“Do you really want to overwrite or quit without saving?”) with flashing buttons and combinations of button presses/durations of holding a button on a 8 x 16 grid makes things more complicated. Pressing on a single letter as in W/R would be okay, I think.
But all of this depends on if it is sought to have playable instant preset changes possible.