Midi chord maker velocity

Yes the goal would be for every outgoing note to have a preset velocity. You hit MIDI learn and it not only learns the notes (as it already does) but also the velocities. This would only be if you have “fixed velocity” on. Also you would also be able to make small adjustments to the velocity manually if needed. Could maybe be done with values above the notes, or maybe even via a right click menu.

And for each incoming not you have to repeat ?
I am wondering if that all makes it too overcomplicated, I like the easy use of MIDI chord maker.

I’m clearly not explaining myself properly – people seem to having problems understanding.

Basically you want a function v = f(n)
and in your particular example, that function returns a constant value for a given note number.

That’s fine. However, if you add this as an option to the existing chord maker, you cannot use it with anything else. Suppose you have a MIDI file and (for whatever reason) you’d like the notes in the MIDI file to have their velocities depend on the particular notes being played. With your approach, you would now have to implement the same functionality into the MIDI file player as you have in the MIDI Chord player. Or what happens if you have a MIDI plugin that generates its own arpeggios and/or sequences and you want to control the velocities? You’re stuck, specially if it’s a third party plugin.

By implementing such a feature as a separate plugin, the mechanism could be applied to any incoming MIDI, no matter from where — vs. only being able to do it with the chordmaker.

I don’t understand this question. Can you clarify?

I don’t think it overcomplicates it. It already learns note information, it’s just adding velocity information for specific use cases as I have laid out. Also if by default this option is off like I mentioned it wouldn’t even “get in the way” of those that don’t need it. Just those of us that want to use it can turn it on.

Each incoming note produces different outgoing notes.
For what do you want to set fixed velocity?

I get it, I’ve just never seen an arpeggiator or sequencer plugin not have an option to control velocities within the plugin. Maybe one exists out there but I’ve never seen it. Also I didn’t think that the MIDI file situation you posed is very common, probably less common than my request in this thread. I could be completely wrong about that though.

I’m not opposed to the idea of it being a separate plugin, I just thought it was an unnecessary added complication for features that I don’t think are needed because of what I stated above. Also implementing it inside the MIDI chord maker could make it very convenient to MIDI learn the velocities as I stated.

Look I get it, it seems like most people are not going to see the value in something like this as the OP and I do and I get you have to go by what most people want/need. Just wanted to state my case. For what it’s worth both the Kronos and the Ableton Live “chord makers” have this option, so more people might want this than you might think.

I thought I explained why I wanted fixed velocities throughout this thread. I could be misunderstanding your question.

Yes because for it just gives me the possibility to make big chords playing with a single note with my left hand while playing another keyboard with my right hand. As it is when I play a c note with my left hand I program for instance a chord with 6 notes. I just don’t want every note coming out of my chord to be with the same velocity. It doesn’t matter to me how hard I play the single note I just care about to the outcome.

I had hoped to find a solution for my situation. I also hoped to go full Vst with gig performer but I am glad that I still have my kronos. You can’t have it all. But in my eyes Midi Chord Maker has lost his appeal especially with piano and epiano souds.

With my above posted solution you should be able to do most you want.

The whole point of GP Script is to allow functionality to be implemented that is not already built into Gig Performer.

Consequently this seems like a strange reaction after you have been told that what you want to do can explicitly be done in Gig Performer using GP Script.

I get that but I am a musician not a programmer I don’t have the time or patience to learn scripting.

I just want to play and use the options that work without have to dig into gp script. The kronos has the solution. Gig Performer at this moment doesn’t

There is no need to become a programmer – @pianopaul provided you with a scriptlet that worked - it wouldn’t really have been very difficult to just tweak it a bit to suit your use case. Particularly since many people here would have helped you.

Sometimes a little time needs to be invested — having owned two Kronos keyboards (and before that an Oasys) myself, I am 100% certain that you invested a lot of time and patience into learning how to control it – it seems to me that a little bit of time, maybe an hour ro so) would get you to a solution that lets you be 100% VST as you wanted.

When I look at the script it looks like that I need a script for each chord I make so I have to use many scripts and many chordmaker plugins to get all my chords the way I like it to sound

The script is to set the velocity depending on the note number, like you do on Kronos..

Ok thank you I will give it a try

OK - someone explained to me clearly what was needed and I now understand why you wanted it inside Chord Maker.

Until (or) if we get around to supporting this, it turns out it’s really simple to implement with a GP Script scriptlet

(I just did it for three notes - see below)

Just define a NoteEvent callback for each note of interest and specify what notes you want to play and their velocities.

I’ve attached a scriptlet preset that you can just save, then drag into a rackspace to try it out. It responds to D3, E3 and F3

// A user function to play chords with individual velocities
function PlayOrStopNotes( noteNumbers : integer array, velocities : integer array, stop : Boolean)
   var i : integer;   
   var length : integer = Size(noteNumbers)
   if stop
      then for i = 0; i < length; i = i + 1 do
              SendNow(MakeNoteMessage(noteNumbers[i], 0))
           end
      elsif length == Size(velocities)  // Sanity check
              then for i = 0; i < length; i = i + 1 do
                       SendNow(MakeNoteMessage(noteNumbers[i], velocities[i]))
                   end        
   end   
End


// Define your notes and velocities here
On NoteEvent(m : NoteMessage) Matching D3    
    PlayOrStopNotes([D3, F#3, A3], [34, 56, 78], IsNoteOff(m))    
End

On NoteEvent(m : NoteMessage) Matching E3    
    PlayOrStopNotes([E3, G3, B3], [52, 61, 40], IsNoteOff(m))    
End

On NoteEvent(m : NoteMessage) Matching F3    
    PlayOrStopNotes([F3, A3, C4], [52, 49, 61], IsNoteOff(m))    
End

MappedChordsWithVelocities.gpp_internal (2.1 KB)

Thank you very much

I have tried it but I can’t figure out how to use it when I change the notes nothing happens I hear everytime the d e f chords even without midi chord maker