catanya-like pattern based polyphonic arpeggiator

Questions and discussion about building and using Max for Live devices
greaterthanzero
Posts: 103
Joined: Tue Apr 09, 2013 5:48 pm

Re: catanya-like pattern based polyphonic arpeggiator

Post by greaterthanzero » Mon May 13, 2013 7:38 pm

bootykowski wrote: do you mean, that you can "draw" the pattern via monome?
That's the plan.

..and then, once things are more tactile, there's some more advanced functions we can add which don't make a lot of sense with just mouse and keyboard.

Wow, a monome(or push) controlled device like that would be the killer app.
My original design was for a 256 (16x16 grid). The layout is as follows:

top row:
control pattern 1
Rows 2-5:
draw pattern 1
Row 6:
control pattern 2
Rows 7-10:
pattern 2
Row 11:
control pattern 3
Row 12-15:
pattern 3
bottom row:
something else

The "pattern" rows are very straightforward. Press to toggle a step on or off.

The "control pattern" rows would be more complex.

* one light moves across them, indicating which step is active.

* press and release one button to move the light and change where in the pattern we are. (beat juggling)

* hold one button and press the adjacent button to its left or right to move the light and change what direction it's moving in (determined by which order the buttons were pressed in)

* hold one button and press a non-adjacent button to move the beginning and end points of your loop to those steps. this would also set loop direction (established, again, by the order you pressed those buttons in)

* the bottom row would have some buttons dedicated to scrolling the display area (because you're otherwise limited to the 16 steps that can display at one time), but is mostly about saving and loading presets.

* and then, you probably have to do something like "hold one button in a Control Pattern row to set the loop start point. scroll the display area until your desired end point is accessible. Press that button to set the loop end point." if you wanted a longer pattern than 16 beats.

That last bit would make the design scalable down to 8x16, which is a much nicer form factor sitting next to the Push. Push + monome 256 is just obnoxiously huge.


Anyway...

That design doesn't scale well to some of the changes we're discussing. Add a 5th row to each pattern, and the monome falls two rows short.

Plus, the 16 row requirement excludes a lot of users. (and as such, that design won't translate at all to Push)


An 8x8 version would have to work as follows, I think:

Top row
control current pattern
Rows 2-6
draw current pattern (5 voices)
Row 7
page selectors
Row 8
scrolling and preset management

And then the pages might be...

1: edit pattern 1 pitch
2: edit pattern 1 velocity
3: edit pattern 2 pitch
4: edit pattern 2 velocity
5: edit pattern 3 pitch
6: edit pattern 3 velocity
7: beat juggling (all three patterns, three rows each. the scroll buttons might have to come into play here as well)
8: something else

...or something. I'm not sold on this arrangement.



For the rest, everything you say makes absolutely sense to me.
but one thing: yesterday, i stored 4 test presets with different grid lengths successfully, the grid length did not recall? (or do I misunderstand you? I have to translate a lot, my english is not the best :roll: ) the only thing i did not get work, is to save it in a .adv - in the original patch, it worked.
I wish I could see your code to better understand what you're describing.

How are you grabbing the data to save as .adg? Are you linking a [patter] object to the individual [matrixctrl] objects, or something along those lines? Try doing the same with the loop length number boxes.

If that doesn't work, try replacing the loop length number boxes with [live.numbox] objects. They're currently [int], which doesn't have built-in controls for storage and automation like the [live.numbox] does.


I did not try to control velocity via aftertouch on push, i definitely will try that.
That's not implemented in the version you have, but it's easy enough to hack in. Let me know if you need help.

I´m really curious about your next steps.
To be honest, I'm mostly useless today, just sitting around wishing I had air conditioning. But you've got a good insight into my thinking, at least. (I'll actually move forward on this again soon, when I feel more confident about which direction "forward" is)

greaterthanzero
Posts: 103
Joined: Tue Apr 09, 2013 5:48 pm

Re: catanya-like pattern based polyphonic arpeggiator

Post by greaterthanzero » Mon May 13, 2013 7:43 pm

...but if I were really smart, I'd be writing this whole thing as an iOS app.

bootykowski
Posts: 53
Joined: Thu Mar 25, 2010 3:12 pm

Re: catanya-like pattern based polyphonic arpeggiator

Post by bootykowski » Mon May 13, 2013 10:58 pm

I wish I could see your code to better understand what you're describing.

How are you grabbing the data to save as .adg? Are you linking a [patter] object to the individual [matrixctrl] objects, or something along those lines? Try doing the same with the loop length number boxes.

If that doesn't work, try replacing the loop length number boxes with [live.numbox] objects. They're currently [int], which doesn't have built-in controls for storage and automation like the [live.numbox] does.
I just copied a "preset saver" from another patch, it was really simple. connected the objects, i wanna store, that´s it. I don´t have any Idea, how to export the code, to send it to you. As I said, I´m new to M4L, I just look inside the patches, change parameters or connections and see, what happens. Or I copy parts of a patch, if I need them. this is my first mod of a patch. can you tell me, how the code export works? the forum is off again at the moment.

And I don´t know at the moment, how to save - let´s say - "Bass_Pattern.adv", that loads my "bass.maxpresets" file per default, I would like to clear the current loaded preset automatic, when i load a new preset. at the moment, everytime i load a new preset file, i have to clear the already loaded. But that´s ok for this version. I´m very impressed every minute, playing around with it.

How hard is it, to do a user script for push similar to your monome idea? If I had any Idea, how to do this, I would take every minute of my spare time. I don´t own a monome, i have just the 8x8 matrix from push or the launchpad. If i can just "draw" one octave at once with the push, this would be amazing. But I´m far away from implementing this. Is this hard to code? :wink:

Anyway, that´s a great challenge for me. I´ve learned a lot the last to nights, because of your amazing work! Thank´s!!!

bootykowski
Posts: 53
Joined: Thu Mar 25, 2010 3:12 pm

Re: catanya-like pattern based polyphonic arpeggiator

Post by bootykowski » Mon May 13, 2013 11:30 pm

I sent you the patch in your pm. now i have the next idea :lol: . I would like to store presets for each grid. i don´t have an idea, but this would give so much options just with one preset.maxpresets file... Any idea?

greaterthanzero
Posts: 103
Joined: Tue Apr 09, 2013 5:48 pm

Re: catanya-like pattern based polyphonic arpeggiator

Post by greaterthanzero » Mon May 13, 2013 11:48 pm

bootykowski wrote:I sent you the patch in your pm. now i have the next idea :lol: . I would like to store presets for each grid. i don´t have an idea, but this would give so much options just with one preset.maxpresets file... Any idea?
Well, the way you're implementing presets now (which is kind of a mess visually, btw), you should be able to create three [preset] objects, and link each one to the items you want stored in that preset. You'd also need two more sets of save/load buttons.

...except, you don't really need the save/load buttons either. you should be able to save device presets to your library directly.

Anyway, it's totally built into the objects you're using. You want three of that, using three of it will give you three of it. Very straightforward that way...


EDIT:
Wait. You want to save three preset objects worth of data in one file. That's harder.

You probably want to abandon the presets and switch to pattrstorage.

bootykowski
Posts: 53
Joined: Thu Mar 25, 2010 3:12 pm

Re: catanya-like pattern based polyphonic arpeggiator

Post by bootykowski » Mon May 13, 2013 11:57 pm

I already tried that, but the presets will conflict, when i load them.

Image

I also tried to save directly in an .adv file. did not work, how can I fix that? Can you give me a hint, how to save directly in the .adv? ... hhm, I´m still learning. for the moment, I´m really happy, that i can save patterns. everything else will follow hopefully soon.

Why this picture is so big? It´s a screenshot? Is it the retina-display?

bootykowski
Posts: 53
Joined: Thu Mar 25, 2010 3:12 pm

Re: catanya-like pattern based polyphonic arpeggiator

Post by bootykowski » Tue May 14, 2013 12:02 am

EDIT:
Wait. You want to save three preset objects worth of data in one file. That's harder.

You probably want to abandon the presets and switch to pattrstorage.
Ok, i will take a look at pattrstorage. Thanks!

greaterthanzero
Posts: 103
Joined: Tue Apr 09, 2013 5:48 pm

Re: catanya-like pattern based polyphonic arpeggiator

Post by greaterthanzero » Tue May 14, 2013 12:06 am

Re: screenshot,

I know, right? Retina display is a good explanation; that might well be it.

I had the same problem uploading my screenshot for maxforlive.com -- no idea why it's so big. But I already had to take mine into a photoshop (they only accept JPG, and this was a PNG), so I scaled it down again in there. No clue.

greaterthanzero
Posts: 103
Joined: Tue Apr 09, 2013 5:48 pm

Re: catanya-like pattern based polyphonic arpeggiator

Post by greaterthanzero » Tue May 14, 2013 12:09 am

The presets shouldn't have conflicted, so long as they weren't wired to the same things. That is weird.

What you had there should have worked, with the one unfortunate issue that you'd have to load three files instead of one.

bootykowski
Posts: 53
Joined: Thu Mar 25, 2010 3:12 pm

Re: catanya-like pattern based polyphonic arpeggiator

Post by bootykowski » Tue May 14, 2013 12:21 am

Hhm, maybe i should try to exclude Elements from the preset objects, but i will Take a Look at pattrobjects. I don't like to load 3 presets each Time.. Thanks!

bootykowski
Posts: 53
Joined: Thu Mar 25, 2010 3:12 pm

Re: catanya-like pattern based polyphonic arpeggiator

Post by bootykowski » Tue May 14, 2013 12:26 am

The iOS-Idea is great, i will try to Control this device via air Display tomorrow. Good Idea, because drawing with the mouse is really Hard After a while..

greaterthanzero
Posts: 103
Joined: Tue Apr 09, 2013 5:48 pm

Re: catanya-like pattern based polyphonic arpeggiator

Post by greaterthanzero » Tue May 14, 2013 8:43 am

bootykowski wrote:The iOS-Idea is great, i will try to Control this device via air Display tomorrow. Good Idea, because drawing with the mouse is really Hard After a while..
I can already tell I'm going to regret saying this, but a TouchOSC interface will feel better under your hands. Charlie Roberts' "Control" is another strong choice.

bootykowski
Posts: 53
Joined: Thu Mar 25, 2010 3:12 pm

Re: catanya-like pattern based polyphonic arpeggiator

Post by bootykowski » Tue May 14, 2013 4:46 pm

greaterthanzero wrote:
bootykowski wrote:The iOS-Idea is great, i will try to Control this device via air Display tomorrow. Good Idea, because drawing with the mouse is really Hard After a while..
I can already tell I'm going to regret saying this, but a TouchOSC interface will feel better under your hands. Charlie Roberts' "Control" is another strong choice.
I´m sure, air display is just a stoopid hacky workaround for the impatient people like me. But I don´t know, how to setup matrixctrl for controlling with osc... maybe it´s really easy. you know, I´m sure, but i have to wait and learn in that time. :D

Thomasch
Posts: 47
Joined: Thu Oct 06, 2011 1:32 am

Re: catanya-like pattern based polyphonic arpeggiator

Post by Thomasch » Fri May 24, 2013 4:19 pm

@greaterthanzero:
your steparp is a step in the right direction!
thanx for your work!

however, some things feels a little bit unfinished.
i played a bit with it and thats my impressions and some suggestions for improvement

1. setting note length
the note binding works, but single notes are not possible this way.
catanya uses for this task some extra latch buttons in between the notes.
maybe if steparp should support launchpad/push/etc in the future, unfortunately these latch-buttons would increases the button count, and launchpad/push has only 8 in a row.
maybe a counter to this and a differentiation to catanya would be if the note buttons would have 3 states:
  • OFF
    ON
    LATCH (to note before)
a color indication on the note buttons of every state would make sense. (e.g. OFF=black, ON=red, LATCH=yellow)
dont know how difficult it is to hack an ui with triple state buttons. as far as i see, there are only these bar/fader-type cotroller on the sequencer object seems to me this "button effect" is only with two states (on/off) possible in max.
it has to be tap button style with inc/dec between 3 values.

2. entered notes are not saved with the song.
after loading a saved song, the note editor of steparp is blank.

3. pattern library
i hope there will be a way to store pattern in a library with lot of space for many, many patterns.
named patterns that you can choose from an list, would be the next point. catanya like but with a store pattern function.

4. note order
seems this works not correct on the actual version of steparp.
it should order from lowest to highest note.
but sometimes it doesn't
in my test song notes ordered this way (1=lowest note ... 4=highestnote in 4note chords):
first cord: 1,2,3,4
second cord: 1,3,2,4
strange...

5. note velocity
for the groove its way better to add catanya like sliders for every step.
the way it actual works would be good as some kind of additional velocity scaler witch interconnects with the velocity sliders. make it then on/off switchable.

6. i have lots of ideas for a more sophisticated patternarp, but unfortunately i'm not a great max or jawa programmer...
in my old pc days before switching to mac, i used synthedit a lot. its way easier to use than max - but not available on mac...


however
thumbs up to greaterthanzero
thanks for setting a starting point, i hope you let this baby grow!

best regards
thomasch

greaterthanzero
Posts: 103
Joined: Tue Apr 09, 2013 5:48 pm

Re: catanya-like pattern based polyphonic arpeggiator

Post by greaterthanzero » Mon May 27, 2013 2:00 pm

More than two states are very much possible in max. I've discussed a few ways of accomplishing that in this thread (in regards to velocity). But, here:
http://youtu.be/wcETXU85A80

Don't assume because people aren't using advanced techniques that there aren't any!

Note, however, that controlling more than two states is a click-and-drag gesture instead of a simple click. It's less intuitive, and usually best avoided. (The way you described it could work w/ a grid controller, but mouse controls are sort of rigidly defined)

-----

Setting note lengths... I have some vague notions of how I can make that happen, but it won't be a fast or easy fix. Don't expect that to happen any time soon.

...and your states are sort of backwards anyway. Picture it visually:

* EMPTY
* FULL
* FULL w/ GAP

(You can't put the gap at the beginning of all unlatched notes; they'd appear to have a different start time than the latched ones. So, "latched to prior" is not a thing. It's the prior step which latches to the current one.)

-----

Pattern library... probably won't be at all like you imagine it. Sorry.

-----

Everything else: Already discussed above. i don't have anything new to say about 'em.

Post Reply