Live.dial randomization

jonbenderr's icon

I was wondering if there was anyway to randomize a live.dial position within the range already set within the dial.

Hoping for a simple solution. Doubt it will be. I have a set up where ranges are actually user definable.

Evan's icon

Using the [random] object? Or perhaps the [random-in-range] patcher?

jonbenderr's icon

I'm sending float values in steps.

The random object is do-able, it just gets a little messy.

Haven't looked at the random-in-range patcher.

Evan's icon

Float values in steps? Meaning you're sending out floats at timed intervals? I don't see how the random object would get any more messy than any other solution. Post an example perhaps?

jonbenderr's icon

Can give an example real quick....

Live.dial with a range of 0. to 3.5

Steps for the dial are set to 8

so it moves 0. 0.5 1 1.5 2 2.5 3 3.5

So I can accomplish randomizing all of this with the random object and some of the math objects, it's just that there are lot's of different ranges I need to cover, so I was hoping there was something a bit easier.

There's probably a way better way to accomplish all of this. I'm still incredibly green and at that point where it's "connect this to that...change these numbers...send these messages...blah blah blah..." I've accomplished a few interesting things though.

Evan's icon

What I would do, if you have different ranges you want to employ, is use the JS object and have different arrays (if the numbers aren't always strictly divisions of 8) mapped to the random values of 1 -8 (or 0-7, or whatever you feel comfortable with). That would cut down on any visual 'mess'.

Of course this is assuming that different ranges are not meant to be set dynamically by the user.

Alternatively, if you always want even divisions, you could use [random 8] and run it into a [scale 0 7 0.0 3.5] and then you could select the range using the third and fourth inlets of the scale object.

So many different ways to do it really.

scyhte's icon

i would use the random-into-scale-approach too. but you could also just multiply the output of the [random 8] with 0.5 by sending it into a [* 0.5]. this way you could change your range by sending another multiplicator than 0.5 into the right inlet of [* 0.5].

jonbenderr's icon

Thanks for the help guys! Got me thinking a little harder about things and ended up scratching the approach I was originally using. I now have a set of 3 live.dials sending their own integer ranges to independent ranges on a select object. The select object then bangs out to the appropriate float values.

Just a silly play position shuffler for some simple audio mangling. A few kinks to work out, but will hopefully have it on maxforlive.com later this evening. Here's a video demo if you guys are curious. Shot of the internals at the beginning.

scyhte's icon

that's actually pretty cool. i wanted to have something similar for midi clips but ended up modifying the midi buffer shuffler to do these kinda things with the recorded midi from the buffer.
this should be adaptable to midi clips, right?

jonbenderr's icon

Thanks!

It actually works for MIDI clips out of the box.

The only caveat right now is it only moves within the first bar of a clip. It's still pretty fun to play with though.

The reason for that limitation is due to the fact that while I understand how to get the end marker of a clip (which the start marker cannot move past), I'm having a hard time wrapping my head around how to make the device respond to varying loop sizes while still maintaining proper note division control, and at the same time maintaining the ability to automate the parameter.

So far the only way I can find to accurately move the marker is by using float numbers. Like I said though, I'm still very much in the "how can I do this without my brain exploding" phase. Maybe this will give someone an idea to expand upon though.

I had another device very similar where you could actually choose between 1 bar, 2 bar, and 4 bar control. Could probably easily get that going again now that I have some basics down.