You get the picture
I guess there is no solution in gig performer for the issue with velocity assigning to the different notes in midi chord maker. Then for the moment I have to go hybrid with my kronos. Maybe something for in the future?
There are third-party plugins which provide that functionality.
You can try Cthulu.
Iām not sure we will make a version of the chord maker where you can assign specific velocities to each note - I donāt understand the use case for that nor how many people would need such a thing. Further, it would really be quite trivial to create a scriptlet that could do this - basically just a 128 note lookup table with hardcoded velocities defined for each note and just feed the output of the chordmaker into the scriptlet
That said, we can see the value of being able to add a certain amount of controlled randomness to the velocity of each note as it comes out of the chordmaker so that the chords donāt sound totally mechanical and that is something we might address in the future.
Is it possible to get a scriptlet for what you mentioned? I have totally no experience with writing scriptlets. I just donāt want every note at the same velocity especially with piano sounds.
@Taxfree ,
take a look at Cthulhu, maybe that fits your needs.
Here an example of a scriptlet
Just include a scriptlet, use this code, compile
var n_array : Integer Array = [0,1,2,3,4,5,6,7,8,9,10,
11,12,13,14,15,16,17,18,19,20,
21,22,23,24,25,26,27,28,29,30,
31,32,33,34,35,36,37,38,39,40,
41,42,43,44,45,46,47,48,49,50,
51,52,53,54,55,56,57,58,59,50,
61,62,63,64,65,66,67,68,69,70,
71,72,73,74,75,76,77,78,79,80,
81,82,83,84,85,86,87,88,89,90,
91,92,93,94,95,96,97,98,99,100,
101,102,103,104,105,106,107,108,109,110,
111,112,113,114,115,116,117,118,119,120,
121,122,123,124,125,126,127]
v_vel : Integer
//Called when a NoteOn message is received
On NoteOnEvent(m : NoteMessage)
v_vel = n_array[GetNoteNumber(m)]
SendNow(WithVelocity(m, v_vel))
End
Each array element is a velocity value, just adjust to your needs.
Each MIDI Note is represented by a value between 0 and 127
I still donāt understand the use case. Why would you want the resultant velocities of the chord to always be constant regardless of the incoming velocity? With this approach, every time he plays a note that is mapped to middle C (say), the chord will sound exactly the same no matter how the input note is played.
When I assign different notes to a input note I just want in case of a piano the lower notes to sound somewhat softer than the higher notes instead of that every note of that perticular chord sounds even loud and that veries per chord.
With multiple Chord Maker Plugins you can easily achieve that.
The trick ist to use MIDI Merge in the MIDI In (OSC), this way you can scale the velocity coming out of each Chord Maker
Each Chord Maker reacts in an incoming Note and sends out just 1 or more notes you like.
The leftmost Chord Maker is for the Bass Note and then Scaling Curve in MIDI In (OSC) (3) makes sure the bass note is played with lower velocity.
ScaleChords.gig (216.0 KB)
I get that but Iām asking a different question.
You are playing single notes that are then going through chordmaker to make chords.
Now what do you expect to happen if you play the first single note with a high velocity, and then you play that same note again with a low velocity? With the way you want to do it (i.e, hard coding velocities), it will make no difference whether you play your note hard or soft, the resulting chords will be identical in their sound.
Is that really what you want?
IMO it would be nice to have for each mapping defined in MIDI Chord Maker, and for each generated note of that mapping, the ability to set a velocity scale parameter S. So that, if a trigger note is played with velocity X, each corresponding generated note is played with velocity X scaled by its own S value for that mapping, i.e. S*X rounded to int in 0-127 range.
The range of S parameters could be [0.0 : 2.0] or larger. If by default S=1.0 the current behavior is obtained.
Understand, but this will make the Chord Maker more complex than is must be.
I think the solution I provided is a good way because this way you can for example route MIDI to different plugins with different velocity curves applied.
ā¦and this solutions is available now ![]()
Yes!
Allow me to explain as I think you are misunderstanding the use case. If you are playing a specific song you might have a song part, say a chorus, that you might need the MIDI Chord Maker (MCM) for. When I add that instance of MCM it is only for the rackspace for that song and that song part meaning I wouldnāt need those velocities anywhere else. They are specific to that song part which never changes. I do not need or want random velocities for that sequence of chords for that specific song part. That goes for chord voicings too (which MCM already does). When cover a song I donāt play it dynamically different every time.
Bottom line: when I add MCM to a rackspace to help me cover a specific song part I need those chords to sound exactly the same every single time. Chord voicings AND velocities.
So my last shown solution should be perfect for you.
@pianopaul I really do appreciate the workarounds you have presented. Yes itās all possible the way you explained. But something like that can take more time than necessary, especially when someone like myself has to play new songs every week.
Something built into the chord maker would just make it easier. But as David has pointed out the majority of people might not use it this way so I understand if it doesnāt make sense for him to implement it.
The problem with the proposed solution is that it is monolithic - canāt be used for anything else. For example, suppose you would like to just play notes on your keyboard and have them be produced with hardcoded velocities? Or what if you have a MIDI File player that plays a song and you want hardcoded velocities?
A better solution would be a separate plugin that can be used for any of these purposes ā that said, it would still be a pain to configure as you would have to manually set the values for each note.
I was thinking something along the lines of having the option to turn on or off fixed velocities on MIDI Chord Maker. Maybe if turned on you get a velocity value over the note like the pic below? Maybe when using MIDI learn with the fixed velocity button on it would also learn the velocities? If memory serves correctly the Kronos does this.
I donāt think it should go that far. Something like that should just be handled by a MIDI in block limiting velocities.
Correct me if Iām wrong but arenāt velocities baked into the MIDI files being imported anyway? Iām not seeing the relevance for this one.
I donāt necessarily think so. In my opinion adding it as an option on the existing chord maker like I pointed out should be enough. The fixed velocity option can always default as off so if you need it just turn it on.
If the velocities can be MIDI learned at the same time it MIDI learns the notes it would make it seamless.
I meant to go back and address this statement before. I understand where you are coming from with this but I partially disagree with this premise because I think you are not taking the following into consideration so I just want to give some light push back on this idea.
If a song part has a gradual crescendo where the first chord starts as pianissimo and by the last chord you are at a fortissimo I do not want my preset velocities/dynamics be random. That needs a very specific build up of velocities/dynamics.
You want fixed velocity for all outgoing notes?


