Hey, thanks so much Dan!
I’ve got another idea — a polyrhythmic looper.
Say, you have four tracks and loop length set to 1 bar (synced to clock). Then, after you’ve recorded something, you can use the Grid to fiddle with what you have.
In this example I’m using 64 buttons to set loop length for each of four stored loops. As you can see, first of them is set to 8 steps, and the remaining to 4, 5, and 2 steps respectively. And if I have recorded a phrase longer than one bar (e.g 2 or 4), then Grid controls will set overall duration in fractions (e.g 7/16 total length).
UI & performance-wise, I have some other interesting concepts to make this looper an engaging & powerful tool. First, I was thinking of being able to chop the loop in ratios of 32, for which I was thinking of making a menu page: e.g you press a button somewhere in the bottom row, and switch to another “screen”, where you can select a track and set length with 32 buttons. But then I came up with how it could be done more elegantly:
◘ <- here is this button that once pressed (lit), enables you to set track length in range of 17-32.
So you basically just press it, and then push buttons in any of the rows you like to set a desired length. Once you unpress it, you can see the total length at a glance, quantized to nearest /16 value. E.g:
◘◘◘◘◘◘◘◘ (8 step track)
◘◘◘◘◘◘◘◘○ (17 step track, the last led half-dim)
Well you get the idea, and without any menus and stuff you could always know your loop lengths precisely. Odd values will be indicated by a half-dim (or possibly, brighter, if that makes more sense) led, and you always know what’s going on.
Another thing which would be cool to add to our looper is korg-like ‘active step’ functionality. I actually don’t think I have seen it in loopers prior: you will be able to not only truncate your loop, but also cut arbitrary fragments, and it will play with respect to the tempo:
◘◘ ◘ ◘ ◘ <- here we have a 5-step long loop, where parts of the sample unlit do not play. So, not just xox-style mute, but rearrangement of audio fragments with respect to the bits skipped.
Once again, we will have a dedicated button to switch between active step-style loop playback and regular length adjustment. When active, it will allow us to skip the steps we press. At first sight, there is not much need for this control, as we could make active step activation default behavior, and it would allow us to set both active steps and overall length by pressing buttons. But what happens then is I have say, a 16-step long loop which I want to shorten to 11. In active step mode that would require 5 button presses — which, needless to say, is fiddly. In regular length adjustment mode, though, I’ll only need to press one button: 11 in our case, or 3, or 7, or whatever, — to set the desired loop duration.
Last, and possibly the coolest bit is yet one mode, which sets the crossfade duration for the nearby audio chunks.
In this one (that we enter by pressing another button), step length controls are readjusted to control duration of the crossfade. So it goes like this:
◘ (no fade)
◘◘◘◘◘◘◘◘ (50%) etc.
Crossfade will only apply to audio, when there are inactive steps set with active step function. Think some kind of granular, when sample is divided into several chunks (“clouds”) and then there is a possibility to alter the fade from abrupt to smooth. So, basically if you see this on your Grid:
◘◘ ◘ ◘ ◘◘◘ <- — you know that crossfade here occurs three times.
That’s it, guys — I hope this explanation is straightforward, and the idea of this looper is interesting enough for someone to maybe try and code it. I can see this working well not only within the dance music paradigm, but also for making clicks & cuts style edits, irregular beats, and otherwise experimenting with odd time signatures and audio manipulation.