Guidance on objects

Martin Schmid's icon

Hi.. I'm making my way through tutorials.. but not yet conceiving of how I start to solve the problem I'm after..

In the most basic form.. I want to create a device that will take a midi note as input... but output that note as a chord with some other notes.

In actuality.. the other notes are VST keyswitches that must be held during the playing of the note.. but the end result is the same (I think?).. e.g., one note in... 3 notes out.

Thx for any tips/pointers to objects/messages, or perhaps even a basic patch that demonstrates this that I've not come across yet.

TFL's icon

Here is one example.

Max Patch
Copy patch and select New From Clipboard in Max.

When dealing with chords, most of the time you manipulate lists of notes, and to deal with lists you want zl objects. Check the help file for the [zl] object, that will lead you to the whole zl family.

[vexpr] is also mandatory.

But maybe you will be fine with just messages, [route], [select] and [trigger].

What do you want to do exactly? How does the 3 out notes are related to the 1 input note? Are they always the same? Do you sometimes need more than 3 notes? Is the velocity important?

Martin Schmid's icon

Hi @TFL.. thx for the pointers, and thx for asking.. will need to dig in to your suggestions and examples... I don't think the tutorials I've been going through have covered those.

TBH, not yet sure I know what exactly I want to do... but this is what I think I want to do...

I am using a VST that has a dozen or so articulations... they each require the keyswitch to be maintained with the played notes. Some articulations are 1 key, and some are 2 key (e.g., say I want to play a C2 with articulation X, I'd need to play, e.g., B-1 + C2... and articulation Y may be B-1 + G0 + C2.

So, basically, I'd like to use a device that that I can set automations for the different articulations that while a given value is set, it adds the necessary keyswitch 'notes' to the played notes.

I've tried some devices (even some paid for) I've seen that purport make keyswitch management easier.. but the ones I've found so far only temporarily play the keyswitch notes.. they aren't maintained/held/re-played for subsequent notes.

Source Audio's icon

why don't you create coll with set keyswitches or whatever you call them.

and how do you link THIS note with THAT keyswitch.

Chromatical distance no matter what input note is ?

TFL's icon

Many questions:

How do you want to choose which articulation to play?

Do you want to be able to enable/disable the ones you want in the M4L device, and it will be applied to the subsequent notes you play ?

Or do you want to press the notes corresponding to a given articulation to "enable" it, so it is applied to all subsequent notes you will play ?

If so, how do you want to disable all articulations?

If I understand correctly, the output could either have one note (no articulation), two or three notes, depending on which articulation is selected, right? But then, how do you handle chords? I guess you just need to add the articulation notes to any note/chord you play, right?

And also, how does these articulations work with velocity? Is it of any matter? Should they inherit the velocity of the actual note you play? Or always be set at the same velocity? Or something else?

Martin Schmid's icon

Great questions...

How do you want to choose which articulation to play?

It's of little consequence.. could be a dial, buttons, slider.. doesn't matter. Ultimately, I want to set it with automation. I assume this part will be easier to figure out than how to modify the note data. For starters I was thinking of just hard coding a couple of UI elements that I'd 'select' / control w/ automation.

Do you want to be able to enable/disable the ones you want in the M4L device, and it will be applied to the subsequent notes you play ?

Yes.

Or do you want to press the notes corresponding to a given articulation to "enable" it, so it is applied to all subsequent notes you will play ?

No.. I'm trying to avoid having to 'know' / 'remember' what keys correspond to what articulation.. I want to essentially setup the UI w/ the options.

If so, how do you want to disable all articulations?

an option that sets no articulation (no additional keyswitch note) would be necessary as an option

If I understand correctly, the output could either have one note (no articulation), two or three notes, depending on which articulation is selected, right? But then, how do you handle chords? I guess you just need to add the articulation notes to any note/chord you play, right?

Correct... though, not so much 'play'.. but rather, input into the clip grid/note editor.

And also, how does these articulations work with velocity? Is it of any matter? Should they inherit the velocity of the actual note you play? Or always be set at the same velocity? Or something else?

In playing w/ the MIDI output by the VST (it has it's own grid editor that can be dragged into a clip in ableton) it seems the velocity of the keyswitch notes are of no consequence.

TFL's icon

Here is an example that simply sends note on messages for each enabled articulations, and re-send them when the playback starts (as Live can send note off messages for all active notes if you hit "stop" twice if I remember correctly, disabling the ongoing articulations). Note off messages are sent when the list is updated, before sending the new articulations.

Probably not the best way to do this, but at least that's a way.

Max Patch
Copy patch and select New From Clipboard in Max.