Repeat last bar of random midi events?
Ive gor random notes velocity and duration going, how would I go about capturing the last bar or 2 and repeating them? Maybe seq~ or is there a better way?
I’ve wondered that before too. (Personally, I’ve been calling it a midi "pattern recorder").
Luckily though, seq~ seems to work pretty well for this. Also, I think monome folks use seq~ for their pattern recorders.
The difficulty with seq~ is it’s a little cryptic, a little hard to work with the data. The point I got stuck at, was trying to quantize the notes.
If you want, I can post what I got…
I havent tried it yet but I watched an old max video about it and it seemed kinda arduous to work with which is why I came here first.
If the incoming notes are already quantized is it pretty straight forward from there?
I think the main thing here is that (what I think you’re doing is) you’re generating random values as you go, correct? Each new request for a note gets somehow randomized?
What I typically do is use uzi to generate a randomized list of sorts, and walk through that (multislider using "fetch $1", for instance)
If you do it like that then it’s suddenly easy to do noisering-type pseudo-random sequences.
I made a hub that sends a random bang to one of 8 tracks with a note dropout probability. Each track recieves the bang and creates a random note with random velocity and duration with a bunch of faders for random amount and offset. Now I just lack the ability to loop 1 or 2 bars on the fly.
Your noisering idea is cool but if Im not mistaken that would not retain timing of incoming events am I right? If not then it would be useful in a different scenario.
This may or may not be useful in your case, but you can "seed" the random function so that it produces a replicable sequence of random values.
<code>-- Pasted Max Patch, click to expand. --Copy all of the following text. Then, in Max, select New From Clipboard.----------begin_max5_patcher---------- 1008.3oc0XssbaCBD8Y6uBFM8sllJPBI49V+N5zoirEwQoRfGANMoYx+dEKh bqVxXcKNODjffg8bztG1kGVtvas3NlzC8MzOPKV7vxEKfgzCrno+Buxz61Tj Jgo4sQTVx3JuKL+OE6NELdESxTHIikgX2xptGgiPqS4ak1YVjyYaD64vzIMC dU010599W5aGQvU7zRFrneuJOsvt.6RUatNmu8WUrMJiIGlT+6PXLQ+XUjtM H3RezOa9I4YvxHVeyWHI10guuLmWvT.dvuXak4+E1VX4dZth8J6j80C93xk5 lKbju3r+Tu8+GcUHRyzziWefMNxGfJ.ay6D+VfczvgscxlgT2uiYLCO..neN drhjUf76EkDEpYgDveHHpSFgdPFgbJLBoSF4BjW+Xk1hsjpzJ0WkJwNuwLtI wA2mvypnFP+fUg7QX5.bSLswwchbxAQN8TPdXatI45Ox0dIM+o6NlgQkLUkn 1r5GGYjUZDWncxQ3gGJMAhKJw1sErihvDKz5.f9c59uKsplTqcH+Eimtt.r7 SDk89SeaZEatVHjLTsmApJkmIJgyjkijvANFzVoPKlF1E4gOuNwM+IXoSUgq RU4B9K0DWYNBA738aZdBWmDKQhAGLrw4JnyXHbzDFCM1BK48KckvP2oC54Hc rduRI3GOiLZzw0Tvcej56UpWMhEDbXbXRPTX7QBWnX.qI3QHbwj1loESvcxd jOPgKsxo8Iae2nG74H8TxjxzsrCjtec0heB6MDMVi1BM.5jzBq3Ogrx4CkX0 YcgRRN6XjVhg9bc158iML2J.w2TSXmopD8wSTYXrBNwTHTRWrB8CDqvEJV8l LfBdHlpBocpud3ytCdmRosL82LMvq2r3AVtGw7.GupK3GLb325UmbUgHEpJ1 7x3pgDDMDtwEIjOf4kDgG.o3jBxrlMBX.v0L+lKzFvfd7WyTRw9pM1UydkOn mwQFSpx4PduubRzWMoqyyxX7WV3eVtTeW.YsGq6r8Pcvdz0O1o8TlmsSTSVM jRbvkT8UlCOH0oua6879Ly.fN..foASJ.hbA.gymGA1EOTxoQngfO.MV2ZHW 86SAa5h0iOuHSZe3RLkXqUy1aJnSeWbFlO97MwAs748DcNwQqzbnQmhrJ11Y B3S2r+YjOcQ8LY9LGmzB8mO6g35oi34wdvtdX2LYO9iu7lMegXHNzpuEOMGW jLBmV7V0jlzEpyZs9QiXstyDX9tDtDLadCtnkDMewttbx0rYMu9qvgslvi7k 5sAJ9lCrLYUYZISTZUANPlyXJpN512GqwTgW5tc2xpjMKIXH0U8dinR2M5Bn aN2zEVQuJ1s414mrTuZOt7eP.wc10 -----------end_max5_patcher-----------
My point is that this "hub o’ randomness" could come *downstream* from a sequence of your making – instead of having "random bangs" you can *generate* a stream of your own randomization, and loop *that* instead.
…but at any rate it’d be difficult to say anything more specific without seeing the patch.
The underlying point is that for this to work you either have to "record bangs" and play back a recording, or have a more lateral approach to randomized bangs moving through a patch.
Def food for thought wetterberg. Ill play with it at any rate just for the learning. If it doesnt get me exactly where I was going Im sure itll get me somewhere interesting :)
Seq~ is not too hard, if you just want a simple midi recorder. Look in the help file under the "midi" tab. Set your phasor~ to sync to one bar, and hook it up to rate~ set to two.
Cool Ill look into that.
Dumb question, when and why is it best to use a phazor~ instead of a metro? Im guessing cause metro gives a tick for time and phazor~ moves an object through time? I know that terminology is probably way off and I should probably just start reading…
Phasor~ is better, one because it’s audio rate. But also phasor~ outputs 0. to 1. which is what seq~ needs…
I tried phazor~ but failed to get it to sync to my liveset ended up getting sync~ to work but only at 1bar max length. Got the seq~ thing working too.
look at [rate~] for doing meaningful divisions of a sync-ramp.
Yeah I looked at that and read about it but I tend to comprehend what I see more than what I read so I havent made it work yet. So far the only way I learn anything is read about it first and then keep opening other peoples devices to see what they did. Its silly but sometimes I open half a dozen devices just looking for one object in action.
Wetterberg: It only took me an hour and a half to get your uzi, zlgroup to multislider thing to work. The moral of the story here is that google and youtube are a terrible place to learn this stuff and I should have opened the included tutorials a lot earlier :) it’s a really rockin method too.
Forums > Max For Live