# Quantize chords while keeping their relative intervals

Think of a piano player. He strikes a C major (C-E-G) with his right hand. The three fingers don’t strike the keys at exactly the same time. Let’s say the C strikes at 0 ms, the E at +7 ms and the G at +18 ms. This is one of the things that make the piano feel alive. No machine gun effect here since the keys don’t strike all at once.

I want a feature that makes it possible to quantize this entire chord while keeping their relative intervals (0-7-18). If I simply quantized the chord, I’d loose their intervals (0-0-0). And I’d probably want to use the iQ feature as well, while still keeping these intervals. With iQ, I’d still loose their intervals but it would be more random. So it’s not good enough.

• Consider notes in a specific interval as a chord, ie range 0-18 ms.
Apply iQ or regular Q to the middle of that chord’s range.

The chord’s range is 0-18 = 18 ms. Select that chord and move the middle of it (9 ms) as per the quantize settings.

This feature reminds of the “Move to cursor” feature, but the differences are that we should quantize the middle of the selected range, and we shouldn’t need to place our cursor each time (it would use the quantize settings instead).

Call it a feature for a sloppy pianist. There’s nothing wrong with his performance, other than that he’s off beat in some places.

And I would also like to implement this behaviour while recording (Auto Q?). That way, my recorded midi session would get quantized and it would treat the chords as ONE and move the chord as per the quantize settings. Being able to use iQ at the same time would be great. That way, I could record using a “sloppy” quantize for chords.

Yes, please! This would be a great feature!

Doing this manually can be very time consuming.

I wanted this for years …

+1

You should be able to get close to this using the midi Logical Editor to create presets to move individual notes in the chord (e.g. 3rd note from the bottom) forward or backwards by a bit. Then create a macro to run all the presets so you change each note in the cord.

You might find these 2 threads useful.
https://www.steinberg.net/forums/viewtopic.php?f=228&t=98734&p=545589
https://www.steinberg.net/forums/viewtopic.php?f=226&t=89066&p=498173

imo this would be a very cool feature- a snap point for midi notes.

Permit me to repeat the idea, to hopefully clarify, and make sure I actually understand!

• we have a number of notes where the start times are different, and we select them.
• Let’s call the earliest ‘x’, and the latest ‘y’.
• we find the difference between y and x, and call it ‘z’, and divide by 2.
• We’ll create a snap point for this group of notes. It is placed ‘s’ samples (the middle point between x and y) from the the earliest note’s start time, on all the notes. (like snap points in the sample editor.)

(y-x)/2=z
x+z=s

When you quantize the chord, the snap point jumps to the grid, and the selected notes come along, keeping their relative time diffs, whether using iQ or just Q.

Sounds like it should take about 5 minutes to program- maybe they can get it into Cubase 9.0!

Well I was missing a key component of the request.

Yeah, it wasn’t so obvious to begin with, which is why I did my algebra. That and to make people think I knew algebra, which I don’t. (anyone who does would be scoffing right now)

Methinks it would be a bit more complex than that, and take a lot more than 5 minutes to program!

The algorithm should not shift the group of notes simply based on half the time between the first and last notes, but instead find the harmonic “snap-point” of the chord. Imagine playing an arpeggio with a trailing note; the task becomes, how does one recognise a “chord” versus a “fast arpeggio”?

I was being facetious…

Including what you described would indeed increase the complexity a whole lot. I was just talking about a manual, selection based function.

This feature would be amazing! I’ve also really bumped into many times where I’ve wised I’ve had this feature.