I am building an arpeggiator patch that takes inputs from a Wacom table and controls the live.step object.
The main problem I am having at the moment is processing a note offset value, like -3 or +4 to pitch shift each note in the live.step up or down the number of steps corresponding to the offset. The input could come in at any time, and I want to adjust the values of the notes in the sequence as quickly as possible.
In the example Step Sequencer max4live sample instrument, there is a clever live.arrows implementation to control the overall pitch and position of notes within the sequence. This is exactly what I want to manipulate. The problem is the API will only allow for one shift at a time.
The Step Sequencer will listen for the user to press down the SHIFT key, and then using bangbang, quickly repeat the same value into a prepend object that sends a message 4 times to shift the note values.
My ultimate question is how can i make this dynamic? I need something like a bangbang that can change and rewire itself programmatically to fire off N number of bangs given a change in the incoming note offset value.
Is there a max object that can help me with this?
tl;dr - I need help programming something that can be like a dynamic bangbang, and output N number of bangs as quickly as bangbang dynamically based on an int input.
Programming the Live Step Sequencer to shift multiple notes up/down (need a dynamic bangbang object)
Sat, 06/05/2010 - 20:21
#1
Programming the Live Step Sequencer to shift multiple notes up/down (need a dynamic bangbang object)
Sun, 06/06/2010 - 06:20
#3
It sounds like you could just use the command, "UZI". Uzi allows you to send a bunch of bangs out of it...
Example:
uzi 5
The above example will send 5 bangs. You can also set a message through the left input to set and trigger the bangs.
Mike

Okay so I figured this out using the js object. I wrote an extremely basic script that just interpreted an int input and outputs a bunch of bangs. The code is trivial:
function msg_int(x) {
for (var i=0; i<x; i++) {
outlet(0, "bang");
}
}
I have moved on to other more tedious problems now. If any of you have a better solution than the above, let me know.