… and now, it sounds good here too … I noted in your previous post that you mentioned that you had a buffer size of 64 samples, whereas I for some reason have 128. So I thought … could this really be the reason for the difference. So I changed the buffer size to 64, and sample rate to 48000, and lo and behold, nice clean sound all the way up (except for that high B; I should note though that in my example I went up yet another octave, where the top notes really sound strange).
I’m not sure why this is, certainly the buffer size should not have this effect on the sound. My guess, having looked through the source code for VirtualJV, is this: There is a mechanism prior to the sample rate converter which handles the fact that with a fractional sample rate ratio the number of samples needed per process call is not a whole number, so sometimes a few more and sometimes a few less samples are generated; on average, the number is correct. My guess is that for some reason, with certain ratios and buffer sizes, the algorithm fails to manage the data correctly, leading to artifacts.