You are here

Add new comment

Hi - thanks for both comments.

I hadn't thought about a polyphonic situation, but I don't see that it causes any difficulties. To help illustrate what I had in mind, I attach 2 png files. One shows a possible bar of music with 2 melodic lines, the other a qtractor version of this. In the qtractor version, I have deliberately slightly misplaced some notes, just as they might be if they were input from a keyboard without using quantization.

As regards a true legato, what I would hope to be able to do would be the following:
1) From the lower line, select the first 3 notes (C, D, C).
2) Use the Resize tool (or whatever is eventually decided) and use the default value (100%).
3) Qtractor then changes the timing of the NoteOff event of the first selected note to coincide with NoteOn of the second. It also moves NoteOff of the second note to coincide with NoteOn of the third. The third note itself is unaltered.
4) After deselecting these 3 notes, I would select the B and A from the upper line, and repeat step 2.
5) Qtractor would move NoteOff for the B to coincide with NoteOn for A.

I have deliberately made some of the notes in the lower line overlap. These notes would actually be shortened by the legato operation. In the upper line, which has no overlap, but has a gap between the B and the A, the B would be lengthened.

The same principle could be used for producing a consistent non-legato articulation, where we want a slight gap between notes to mimic the effect of separate bowings on a stringed instrument, or tongued notes on a wind instrument. Here we would need to specify the length of the gap, which should be an absolute amount (expressed either as time or as a proportion of a beat). - it shouldn't be a proportion of the existing note-length, because there is generally no reason why we would want the gap after, say, a 2-beat note to be 4 times as long as the gap after a ½-beat note. This would be bizarre and does not correspond to any normal practice of real instrumentalists. (The only difficulty I can see here is deciding what to do if a user asks for a gap greater than the length of one of the notes!)

In order to combine both the legato and articulation types into basically the same operation, perhaps it should be a separate tool, where we simply specify the gap we want between NoteOff for each note and NoteOn for the next. The default would be 0, producing a true legato. Negative values could be allowable, which would produce an overlap of successive notes - useful occasionally for idiosyncratic midi voices, or for certain styles of keyboard playing or perhaps, even, to give a "Mantovani strings" effect.

The general principle seems straightforward to me. Implementing it, of course, may be much more complicated than I realize, even though the logical steps involved are relatively simple compared to many of the fantastic tools we already have in qtractor ( e.g. tempo ramp).

File attachments: