Hi!
Sorry for the double post, but I felt that this could maybe be it’s own thread…
I’ve been making expression maps for cinematic studio strings, which have a really well sampled legato. The library uses note velocities to pick the length for legato transition and CC1 for dynamics. The exception is the first note of a phrase, which uses velocity for the first attack.
The library has 4 different legatos: slow, medium, fast and portamento. Each of these require a different offset for the “second” note.
After some fiddling around, it seems that the legato could be automated if in the expression maps there where these additional conditions:
First note of a phrase = note after a rest
Subsequent note of a phrase = note after a different note
Repeated note = note after the same note
Previous note length = length condition of a previous note
I also came up with an idea how this could be implemented using dorico’s existing functionality:
If the note length parameter would have also a “slot” for silence (value 0), most of the above conditions could be derived by looking at the note length parameter some amount of “ticks” before the start of a note:
-if it’s 0, then the note is the first of a phrase
-if it’s anything else (very short, short, medium…), then it’s a subsequent note
So just one condition, previous note length (values 0, very short, short, medium, long, very long) would be enough to create a working expression map for different legatos in Cinematic Studio Strings. Different types of legatos could be then assigned based on the length of the previous note and the problem of defining the first note of a phrase would be solved.
Of course this is just from a point of view of one individual library, but I guess same principles apply to many other libraries as well?
Anyway, I just wanted to share my idea, hope that it could be helpful in some way!