![]() State “0” is completely off ( ), so you want states “1” and “2” for your two inputs. You’ll need to put a “+ 1” object between the toggle and the switch selector. “switch” will do what you want, but it requires an extra step. My previous message was a bit terse as I wrote it at 3 AM from the cell phone after getting woken up by the baby ![]() One cool aspect if you’re learning Max: Alt-clicking on an object will pop open an interactive help patch with a more detailed description along with patch examples. Midiout - This is the MIDI output back to Live. This takes simple values and converts them into the more complicated MIDI message. Midiformat - This is sort of the inverse of the midiparse object at the top of the patch. Join 2 - This takes makenote’s output (pitch and velocity) and coverts it into a two-item list, which is the required input for midiformat. It generates a MIDI note with note on and note off messages. Makenote - This object takes arguments for pitch, velocity, and duration. ![]() In this case, index, pitch, velocity, duration, extra1, and extra2. Unjoin 6 - Breaks a list down into six components. Has pitch, velocity, duration, two “extra” parameters, and a loop brace. Live.step - huge compound object dedicated to monophonic step sequencing. These are text instructions sent to objects generally to trigger a type of event or to set a parameter value. Route 0 - If the input is 0, send it to one outlet. ![]() Unjoin 2 - Breaks a list down into two components. Midiparse - Object to help break complex MIDI messages down to more relevant bits, in this case pitch and velocity. Midiin - All MIDI from Live (CC, Notes, etc.) Alternatively Max MSP Jitter For Music by VJ Manzo would be a solid first step. If you open up Help->Max Reference, the most important steps would be knowing bang, messages, and lists. I’d hold off on Step by Step, as it is more of an intermediate level book. I will be honest and say that most of that post makes so little sense to me hence why I have only ever used devices built by others. You’ll need to use the “counter” object for this and replace the “next” message with a “step $1” message.ĮDIT: I saved it as an M4L object with presentation mode if you want to hack it from there: ĭOUBLE EDIT: I highly, highly recommend buying this book, which is all about hacking the live.step object for more advanced behaviors: Maybe have a certain pitch advance the step sequencer by 2 or 3, or backwards by 2 or 3. Add different behaviors for different MIDI notes.Make “next” respond to a specific MIDI note and “reset” to another.It takes an MIDI Note On message to advance the sequencer. Thus, the second output is presumably all note on messages.Īt this point, the sequencer is good to go. Here, we say “route 0” to route all velocity 0 (note off) messages to the first output. We then use a “route” object, which routes an input to different outputs depending on value matching.We use “unjoin 2” to break that list into separate note and velocity outputs.We can assume that all “Velocity 0” messages are note offs, so we want any non-zero velocity. The first outlet is a note/velocity list. midiparse breaks down incoming MIDI messages into multiple outlets.Connect midiformat’s first output to midiout and you’re good to go. So, add a “join 2” object to pack makenote’s outputs up and send that list to midiformat’s first input. The midiformat object prepares messages for output.Plug outputs 2, 3, and 4 from unjoin into makenote’s inputs.The first live.step outlet is a list providing index, note, velocity, duration, extra1, and extra2. Create an “unjoin 6” object (not message).You can already test this sequencer visually by clicking on the messages when the patch is locked. Optionally, add a “reset” message as well.To create this, hit “m” to create a message and type “next” (without quotes). To create this, hit “n” to create a new object and type “live.step”. Surprisingly, this would actually be an excellent first patch to attempt, as live.step does all the heavy lifting. I’d like a sequencer that I can clock with very irregular clocks and I have never really managed to build a working patch myself so creating this seems daunting.
0 Comments
Leave a Reply. |