Hi everyone, I built a max msp version of ansible kria as a learning exercise and I’m sharing its m4l version. I wasn’t planing on making a m4l version because of live’s midi channel limitations but then I found out about David Butler’s wonderful imp.midi externals (Max Externals — The Impersonal Stereo) that allow to bypass live’s routing. It’s been quite a challenging process but I think I’ve implemented almost all of the features with some minor adjustments.
From left to right of the bottom row: the first two buttons correspond to each voice page (basically I took whitewhale 2 voice with accents and octaves version and added most of the features of the 4 voice ansible one), then a group of 4 pages for each voice: notes, duration (with legato on the highest duration), ratcheting (this page differs from the ansible one because I honestly didn’t understand how it worked from the tutorial. It is much simpler: if you press a button you set the division with all steps on, if you hold the page button you can “carve” within the division or add additional steps and set them on or off, the only thing you can’t do is reducing the division number without resetting the steps set off) and transposition. The following two buttons correspond to loop and time modifiers, which work for all pages. You hold the loop modifier button and then you can set the start and end loop points in the row above. The time modifier offers an alternate page for each parameter where you can set clock division and multiplication as well as 5 modes: forwards, backwards, palindrome, drunk and random (as an alternative to the probability page which isn’t implemented). Then the last two buttons correspond to the scale and pattern pages. The scale page also differs from the original version in that it offers already loaded 28 slots that correspond to the 7 modes of major, harmonic major, harmonic minor and melodic minor scales and the scale editor has been enlarged in order to provide transposition over the 11 semitones. The pattern page offers 16 slots that you can recall by tapping the button number on the first row or store by holding the loop modifier button and doing the same (you will get a blinking light as confirmation). The second row is the pattern cue clock that will wait to play the selected pattern on next start of the clock. It also has its own time modifier alternate page. The pattern cue clock is off if you select the first step. To enter metapattern mode, you double tap very quickly the pattern button. It works as described in the tutorial video. It is limited to only 16 pattern steps. The rightmost unlit button is the reset for all sequences (the original max msp version worked with a high resolution main clock but due to live’s vector size I had to go back to working with just tempo objects. Strangely enough, I tried everything I know from ticks to phasors and the only object that allows you to make bar division, multiplication and number of steps changes on the fly without jumping values is the tempo object). Every parameter is tempo decoupled including note and trigger since it’s meant to be a phasing and experimental sequencer in which a single change can alter the whole pattern unexpectedly. Lastly, if you want your presets to be saved don’t forget to save the m4l device.
You can download the m4l device in the attached link. Thanks go to @tyleretters for sharing his conversion patch of led to bitmap messages which opened up a world of possibilities in thinking about the grid canvas, to all the helpful people from the cycling 74 forum who helped me with a lot of questions, to @Puscha and @n-So tutorial videos and of course to @tehn for such marvelous sequencing and interface ideas. Let me know what you think and I hope you enjoy it!
edit: replaced the former teaser with something more kria-like sounding
edit 2: I forgot to mention the following note from David Butler: “When using in Windows, imp.midi in cannot use any port that the host application (Max or Ableton Live) is also using. Any ports required to be used with imp.midi should be disabled in Max/Ableton MIDI preferences. This is due to Windows lacking a native multi-client MIDI driver”.
edit 3: The imp.midi external doesn’t work with arm chips natively, so you would need to run live through rosetta. As an alternative I have added a max msp version that doesn’t need the aforementioned external (this isn’t the original max msp version that works with a high resolution clock that I referred to).