begginer's Arpeggiator : how to count with a varying pattern of steps

valenzulu's icon

Hi
Just completed 3 weeks of doing basic tutorials and learning
the basics. (Totally in love with this brilliant software).

For the fun of learning, I'm trying to build an midi arpeggiator, that takes a chord input and arpeggiates it at selectable intervals (not only 8ve), different sequence of notes, etc.

I think about scanning a range of numbers, like a counter, but using the pattern of steps derived from the intervals of my chord.

something like this :
Chord played Cmaj7 1-5-8-12 (chromatic pitches in abstract)
so that would be [ x starting note] +5 +8 +12 etc...
and that "pattern", "travels" up & down (reversing) the given range of midi notes, so it returns only those notes in sync with the chord shape.
Kind of using a data grid.

I don't know if this would be possible without an external.

Thanks so much for any tips

best
S.

terenceformer's icon
Max Patch
Copy patch and select New From Clipboard in Max.

I was actually thinking about arpeggiatin' this morning, and your post inspired me to flesh out my idea. I don't think it's quite what you're looking for (my idea is to create arpeggios from notes held down on a keyboard, not from any preexisting list (chord) of note values) but perhaps it might give you some ideas.

Wetterberg's icon

I don’t know if this would be possible without an external.

I know you're new to Max, but please understand that you can build extremely large and complex sequencing/midi playback/arpeggiation/interaction/etc systems in Max without ever ever needing an external.

I see this so often, a rush to externals, complicated java/js routines and whatnot when it's really not neccesary.

Ernest's icon

True. I just posted a multiphonic arpeggiator patch that certainly demonstrates some of what is possible in Max with out externals. It's probably much more complicated than you want, as it's really designed to support arpeggiation of audio-based video sequences in the future, so it has its own voice allocation to limit poly~ instance consumption. Notwithstanding, what I'm sharing is just for sound, and you're welcome to download it and see if there's something in it that's helpful to you.

cbm's icon

I totally agree about people rushing to find externals to do _exactly_ the thing that they're trying to do. Better that they learn to create nice abstractions for themselves using standard Max.

Miller Puckette once said that Max was a good framework to allow people to host their C code modules, but after an initial flurry of writing externals, most of which are now part of the standard distribution, I haven't felt the need.

valenzulu's icon

Guys Thank You all for your great replies.
I´m in the middle of some heavy work now, but i´ll be back very soon to
comment about the patches you generously posted.

and, of course i think the beauty and fun of this is being able to do it without externals, unless, something really extravagant is needed.