Phase artifacts



  • Hi guys. Working on a script to modulate phase (with Message.setStartOffset) with note numbers (I need phase to be different for some notes). Thing is I get a lot of artifacts on compiled plugin. (not noticeable on Hise)
    Is there a proper way to do this besides an array and phase values for each note? See example:

    HiseSnippet 1547.3oc4Y1saaaCEGWJIZcwqMcE6iqI5UNKsdhRxeHzEzjlOZCVSSPbV1FBBJXkoiIpLomDcVCJ586wZOBCXuH8MXijxIV7DOuNCrtTrbk+eHOj+NGRJcnx9YhDZdtHywcwCOe.0w8ldsOmK6sQOBi6rylNtK4sKIWRyPEldz4CH44zNNtty+XsA2EWvw72ae3iHoDdBcrIGmiDrD5SY8YxwV2esukkltMoC8PV+R8NZscRD7MDohgJdl2y2Y.I4kjSoOin61bdNtezVcXRQVaIQRycbW3QhNm2tm3m4E8+HVN6EoTs.6zVMPEl2Vj1QSr92Nazik1Y+Kh6bGGWu8GmEluHK74d6x5vtz93rwmZZ.M1ix4C24lFd3x34OQ7vS.OmRzsPAcJHDcFlRj1joWNF0.SXuRsCWR44L44kWt9OE263sOSlzax7N2D3UsP8uMuiV7uk2Vc6RSjigcAus+g2uqzKUfxm30lwolSjFP9RiF88jynnGS4zLcREOkCk+165gxAuyGJ2KQpl9CyH77AhbqAtMsO6PAWmQFa76xoamQ+oCzqxksugfjMwld6C2VEjSzm1D4vLy1k06KFxkVaOleld3f8olRqgS3IEKbs4IES7AYtW8r2c7ZmjwFHG2hlsOaj0wzYuGpnUm4VcQOjZ0OWhNijgHYYOSHo62ijSQqhN93.78P90v33f3nStG53f.fNDniTZyOpCZnAP2DnaAzw15PefF.VH.rP.XgQ.MfuP.egJ9tOtVjeX8PitEPGaqi7AZLPa3qkueSrY7iBA5HftNP2.naBzs.ZEeg07CvQloutusDaKCrkg1REZ3ZMiZzJvHqaKaXKaZKaYKisjM7sk5blJHZVOnUrwP.zPHzPDzPcngB9vgwMMxl1xV1xXKYSeaI1VFXK0rEVCGD3aVAZFAz0A5F.cSf1fVHF2nX3isjs7skXaYfsLzVFYKqaKaXKaZKsopkMUw1TEaSUrMUw1TEaSUrMUw1TEaSUrMUw1Tg88AZLPG.zg.cDPWGna.zMA5V.MfOLfOLfOLfOLfOLfOLfOLfOLfOLfOLfu..eA.9B.7E.3K.vW.fu..eA.9B.7E.3KDvWHfuP.eg.9BA7EB3KDvWHfuPK9NoR2g7DcoFHAW+5z83UWtxqqTAg5JxPUY7NzWod6p+CPE+7arduasTJ+TYOz8Q3QcXkUVF8Zk2rtU2U8pb00kpcJUpc3YC6+BZV0kQqtp0XbrwuSN1+jkU9o8MUjPRQCxn60saNUd.oCZxtfOAsBpQsfVOP40FpJCDozZCxXbYUKuWAcWz.ScBYjNLUkh2c4Gb47HLcSMC6Rj8pIEaROMiRysFgkQeMJrgO5qPpG3YlsKBNU6pplxjEcs5.cQjpqKTsXTW1LOuoxaVrxapffo5tcM4ZXap.QlIRS0IqIzrtf3ro4XUtISeOUURoCoW1QUQX1U4U4utJuxUjpp3Rc6GYoNJ36vYx8FPGUJ6E6btvB14x.rbmFGWksZBmIzswllvUS1nfIc476rIQRzUaNxlpeCnYRlNBc2jdl5tEE0dtn2lz7WJECtdbG1+AeQf4Jw6MJ3sh2QT01W8zqI8KtThtLNv+83ptKzgDCOiu2xN7yToOsSissIMg8BZpZnoS6Fvy+tEsS+pl2tH.ug25OYy1GL5x4lei1RgVpZ00Nx1UvEC5I3rjxrc.UlwN8TZV43chIg0kRRxK2XX1YTPLSN+JVK57XK0VqvxSoJzJ2wmnVRuxvcoge42Wq8vbo0ci+we8.ZJkjaca2sRD1Y8qtGaly5VeooocN3VdEAIxbW7q2eHmktf0hUjq2vdSOy1hODxq21azF1OHRrK4M5rzGBo1o9sGm++me6wCDCkL9opRxxXuR8jJUwisECyRnJR3bZpZh7bmSWIPg1WqK9le7NFwen9aTiXs1cTi3KZ78xbzmjjIddRQIM5m49wFKp3la9uHrn2tZMB6XJVS4mmeMem9rNrmmjnS22WkelrOAyfOgyfOQyfO0mAeZLC9zbF7o0T8Q+YRWenTzu3nnxv9aYJwz0cKttXIytdm+DPq5nZN
    


  • @hisefilo Don't you need to ignore the event first and then generate your own after computation?
    I'm not sure though, I am not comfortable with Message Events...

    BTW, what is the difference between Message.delayEvent and Message.setStartOffset?



  • @ustk Start offset changes the position in the sample that playback starts. Delay event I believe changes the time at which the event starts.



  • @ustk thanks mate! got the atifacts on both Message.delayEvent and Message.setStartOffset 😞

    artifacts-phase.mp3 (1% CPU, so glitches are not CPU related)

    I guess problem is sineweave generator is not doing a polyphonic phase handling. Any clue on how to do a polyphonic Message.setStartOffset thing?? @Christoph-Hart ?



  • @d-healey I think delayEvent is delaying midi events, and setStartOffset is doing things on audio samples



  • @hisefilo That's what I said 😛 but you said it better.



  • @d-healey LOL



  • @ustk @d-healey figured this out!. Loops are not good for realtime playing 😛 I've replaced that loop with a simple notenumber to array order, and artifatcs are gone!


Log in to reply
 

21
Online

576
Users

2.3k
Topics

17.6k
Posts