Here’s a strange one: the offsets created by the humanize start positions feature (Playback Options) sometimes repeat when a phrase repeats and between instruments playing the same phrase.
Unfortunately, I can’t reproduce this behavior from scratch, so far, but I’ve attached a minimal project demonstrating it. When looking at the instruments in Key Editor with Played Durations selected, you’ll see:
-
Alto 1 & 2 - The offsets are the same in the phrase repetition, but different from each other.
-
Tenor 1 & 2, & Bari - The offsets are the same in the phrase repetition, and the same in all 3 instruments.
The humanize percentage is set to 1000% for clarity, and toggling between 0% and 1000% helps see what’s happening.
Interaction with VST
In Play mode, you’ll see the altos are both assigned channel 1, and the other instruments are assigned 3-5. This is because I was in the process of cutting down the project to post when I noticed the offsets changing, so I stopped.
The project was originally for big band using VEPro. Initially, offsets in all the saxes repeated between instruments, as in tenors and bari now. I deleted VEPro, added HALion Sonic, and intended to change all the channels to 1. As I did with the altos, the offsets changed, leading to the current state.
You’ll also notice only the altos playing back because apparently the endpoint isn’t reconnected until you edit something like a channel(?).
If you change the channel for a tenor or bari, you’ll probably see the offsets change for that instrument too.
Wondering if anyone else has experienced this?
Thanks!!
Humanize Start Positions Test 2.dorico (1.1 MB)
I don’t think any value for the humanise percentage greater than 100% will have any effect on the values produced by humanisation.
Humanisation uses a pseudo-random number generator, and a normal distribution between a mean value of 0 and standard deviation that is calculated as 10 ticks x the defined humanisation percentage, divided by 100. So with a humanise percentage of 100%, the standard deviation is 10, and the maximum variance you should see is +/-20 ticks, with just under 70% of offsets being within this range (due to the properties of the normal distribution). The calculated offset is also rounded to an integer tick value, which will further limit the variation you see.
Dorico won’t humanise notes that have been manually positioned (i.e. edited in the Key Editor), or grace notes, or generated notes in trills and tremolos. It will also only apply the calculated offset if the resulting position will be within the current playing technique region. So adding articulations and slurs, which create separate playing technique regions, can have an impact on how the humanisation offsets can be applied, since any calculated negative offset that would make the note sound before the notated start of the playing technique region will not be applied.
Dorico doesn’t consider things like the instrument, or the pitch, or the rhythmic position of the note in the bar, or indeed any other factors, when applying humanisation.
I’m not a mathematician (heaven knows I’m not a mathematician!) so I don’t have a good feel for the properties of normal distribution with a standard deviation, but my sense is that the humanisation is sufficiently constrained that it’s not completely unexpected that you should get similar results for similar phrases.
1 Like
We discussed this further this morning, and found that we can improve the randomness of the results by keeping the same pseudo-random number generator around, rather than creating a new one for each region we process. We’ll include this change in a future update.
5 Likes
Thanks so much for the info and consideration – very helpful!
I should note though that in this project, the offsets aren’t just similar; they’re exact (to the naked, well, vision-corrected eye). Please see screenshot:
This shows tenor 2 and bari with the same offsets within and between them. The C3s and C4s are particularly clear.
Sorry, as I mentioned, I don’t know exactly how this project got to this state. I didn’t notice the issue until well into it. I’ll try again to reproduce it when I get a chance.
Thanks again!
It’s OK, as Daniel says we’ve worked out what’s going on here - under some circumstances the sequence of (pseudo-)random numbers is being re-started from the original start point, so you’ll get the same series of adjustments appearing more than once. As Daniel says we should be able to change this.
3 Likes
Ah, ok. I misunderstood. Great, thanks!