Trying to create a random pitch detune effect in HISE



  • Has anybody found a way to create random subtle shifts in the pitch of an audio signal using HISE (a few +/- cents)?

    My initial thoughts were that there would be a quick and easy way to modulate the pitch wheel but I can't find a way to do this in a random fashion.

    I'm still playing about but if anybody's got any ideas please share.

    Cheers



  • This is as an effect not an instrument btw...

    Cheers ☺



  • You can either detune the incoming messages or generate messages and pitch fade them.

    I don't think you can control the pitch wheel with an FX plugin. With an instrument plugin you'd just put a random modulator on the pitch parameter.

    HiseSnippet 742.3oc6V0saSCCE1osdZS.SCXBwk4BtETCL94t10t1oIVGUMsCtaXRNs0BG6fiyf91vCA68fGk8F.1IcKohrpRPLPHxU47Yeh+724uzWJ7fnHgDYswvYg.x5lX2Yb0z1SITN5f8PVah6QhTfzNEp0rPRTD3irrptuAvZiZHD5ymM5KMZQXDtGLGJ44XA0CNjFPUYn8a9RJi0k3CCoA418NMOvSvaKXhXMephqiBIdumLANhX1VELxZsN9TkP5pHJHBYUqkvel6TwG4o6+XZD8cLvX3fb0enT3tBlugwl2QsmRY98u3dGgPV39YpP0TUXabOpO8R7L0XqjEry7HudXUYYzyIO8pWH8bJfdnbrqVJ6zjP3GyHpEYlIbLeApXwH0AbEvinpYYp84M9iR2ai6SUdSKluUJfu5.0ua9NO3eKbmwiAOUFYqg69lq2H8loT4FXWJGRpHSHx8RrseM4TvdefCRin5bUEk5mutpEkgqbQ4q7T5ienjviBEQK7gcg.5PA2nHYfihftR3CCLQ473sEDYgKcdit5KYg93RTwxjzkcCDwb0BoGUW4XR9lCKV0ja+Ezon1+6TjP2pqFcKPAs5+CSb1RmSGDxfN7SAlPiX33cv6AiIwL0EnKlj2SvEgSEbpW9LfAfRRmLAj44dgWncUJ8nkLjsaN.X.Ie17CZdnNKjH05DTRsvY00hkEutONkt1lJS6+M5vW8WsC+Ow78757ZoDdc7.B2WDjPz6N2v9xKgyRo5aGM5rFsngBFQZFVoavMjjPqq9lT5rj+llOMPDqn7I8H5xrOo+uoihCb0iE7.MS3bfoOHrUESq8T65F6z4Bb+Diuoeluniw1Z9hNWr30xYDP7jhSzi0TRAyjgrdBh9dyS9SyMz+xq111AcJgEqAv35OpNJP2O+DOOib+Ps9TrOOtD97jR3yNkvmmVBedVI744kvmWrTeLiR2MVIBRajnA52YOhhny06vM0dIY8nuCwKvTxB
    


  • @d-healey thanks for the reply.

    Yeah doing it with an instrument plugin works nicely as your snippets demonstrates...

    Was hoping that somebody may have found a solution for pitch shifting incoming audio using an FX plugin...

    Anybody?



  • @LeeC Did you miss this bit of my post?

    @d-healey said in Trying to create a random pitch detune effect in HISE:

    You can either detune the incoming messages or generate messages and pitch fade them.



  • Hey @d-healey,

    Sorry assumed you were referring to midi when you mentioned 'incoming messages' ☺

    Ok, so this is positive....

    How do we detune incoming audio messages?
    Scriptnode perhaps?



  • @LeeC Oops you're right, I was referring to MIDI 🙂 I don't think it's possible. Maybe when Christoph implements the Rubberband library he could add a detune node which could handle it. The only other way is a custom c++ (or possible SNEX) module.



  • @d-healey fingers crossed 🤞



  • @LeeC You can modulate a stk.delay_a in Script FX (like for a chorus), which is detuning



  • Hey @ustk,

    This sounds promising - thanks for the heads up!

    Do you have any snippet examples?
    I've only just started using scriptnode so not sure how to modulate a stk.delay_a....

    Any futher help would be appreciated.

    Cheers



  • @LeeC stay tuned 😉



  • @ustk Legend thanks man 👌



  • @LeeC Ok here's an example that came out of my mind (I'm not a DSP guy 🙂 )
    There's probably a better way to achieve the random sine than adding oscillators...

    HiseSnippet 2211.3oc6a0DaabbEdVRMxhzxJ+TkB2hdfHPnPFvQfjV1oAAshV+YHTSKZQYkDfz5NZ2gjC3xY1r6PKyDTfbnG5sdt8ROzBzdJnWyghHfdsAH.9Pt1VfhdHM.5btjLyN6xcVxkRqXhjrDzdQb9+aduu26M6rOUykYh87Xt.iba2yACLlFVuGk2ZkVHBErwp.iYfaQsVEy6RwqVuFX4dNHOOrEvvH68j8wH2D.+mCVZYjMhZhipB.1gQLw2mzgvipsVkeNw1dcjEdaRGsduXkMLYzUX1rtB7jEVD3fLaiZhe.R1sLPfwjqYQ3L25bDG6ALlXYlUu5sX6QU8eGhGYWarrPIPcwDopdclskDwxZAqzhXaUKbe6A.FvZQRgrJovrvpDKR+5ijFuneCEhFgt7vHygAuR5vqX5gmgF7lPAuWBV2zk3viZQhsqB2fxwtMPBUfNrT8EXrObElnCT9BcPswq6JJze.yemhEuYgaWr3MdyFcolbBiVfQe.ii2jN+Mx+A4yk+WmuvfM0nQhsIWFWlsM1MwlkZc2CafyS61YWr6MK7DjcWb+NJ19wkuvQKe0U+lpcsVGYzMnD9lNX5nj5f.QkT9GfJQW49R+YBj90sIVXW.QHjeAnxBovc6v5JFkOvCY123c+eKAdzFqh3nvoSLyhUyA6xIxMhwp3mHrSTJ2bh4xqMm4322NNLpDGFSl5E+o8Mo9U3J85W3C+kUbB2gaX4ao6OSEV+sKIrzbEFYBxfrkWNZBcrI7tVXgQ6PjPgo.ypqMhG29P5THnAgRMFQTx1ndDdOcmFmHFMoEtuDrFga1JY7lIA7JTfmz3MvEz0fq0nA1jGA1Ifq+1mM9axGPUDquDHwXNI4o4ifqQaRn3ELcwBnspmyCv78Xtsm+Uc8ClHp4Uuwads78s8cbwBJHdaVMaTu48PBhGdKwPuYgcsYlsqSde7vNLBnyKK6w7lsPTJ11ab7qLPXkroyuRBpwsXc4DZypHtKQXFBeP2N0EQyLwqDfNQcFYjtWTkKJKKYU0wTK+Bes3InwRxxFAMVJrwHOSf.gpuRK32heoBEzWNKaiYIUhqiLEaxd0P7VRluzsnfZgcWvrOEa5nwUBH.+fv99BIcrpMxJm7vX1p8hvoUGeWVhH1A+9sHVxEEZbSQOTLlsD5XYjfpd5m.HFaRnApE5WRtVYTqlZ+5umthBz64hb7jtpJAhsIut1lrgbhJ+Xe5zI1VyHSR.7JPevAFoBP07IFn5K0xn.0TJPoT6GAq3rfDLDf8kh4gcXVIf4Y0vb+dbxKKmPCZSASh8cVngCPUNkcAyyTbRaYHugQlKdAslOKTygwgDAxxFEAdajaSLOHlX3IjTQkjkDwhyJ2b4fOxCKOKNXG0YsLxVq6t1DS4u.ZtMD8ueIofg9DwrnV1pD5N5GTS9TE8zApapJ2msG1cfWhA.djiyP0NUk5briLZk9Qbp2FumR9qWqbWLo7PIXvPn.jFH+G98xmOdogg7bIB4Eqj.j+sOKFjCmScHmGVbgxkei2n3sCdMi0cwuWWL0rWDvW7VxmmsDH8x5CR.3ESD3GrTRx5hGSY8z93tvVRVFXHr.zLbtllgSoKsbtzx4nsblTXiTTb3vioYyGL6Gcu+86++u3Y1T9RylKMaNwLa9yN+z7e9e5yt3Y1bqKMatzr4Dyr48jVMN+2ywlM57kX7NcCpIgMG5kDupxRp4Y0qzF6Z6NZqnLCXEMMbKrGlqDHCwB0MnhOtWPZ8k1gpaKlI8Tj2Y+goHRI5vTj2Y+jnH.vQ8BH4l3mY92+zl+sWohR85+cm5uh+0q+O9pewOdg8AeqbeT42kd2Gh9dzP9q68Gq88V8YKorFq2gw3sHzlQ39S+mxm2sR.0MuxaoGoY4NLq3r2YfcD+cgv1NSCBjIETYcljw2Nu5GrT58pKbrnoVTms92bHNatBbDVEI4ZYJE2yAiZmnqE+FNatsrDzAFYFrRgSD45J+9N4fVXaTuGihzTxpuBbUY0fMc5eq+g9MVih10N7ihbbUgIGkatDcFLWLKqWakezW7etyObDpv0dpiK1yS9UajxMvgriyGtiKcwZKO53gGUjx7p6szzFiF7NNlV4swuoK80b55q4nTaSEn1jWxcomuu6d8u.xL9ehl91fiD2c5ZyImBecF8ODRj2vXv5ZPOd6EBaZ.HYbl4XezD97eW4lJYB+bIbRd.3vH7JWqQK4pe0W9E6+wexvtoEZ3QQ00bbeo144CsSbWTiQ.nQNAwDXSJgYBYhRZckmd2y6LXx53miNTre1C3EjxNAE0NSQvqYF67DAuahn+9Ja+2KeCKAsRlDIIbHii+aVM29em9lUvauvhkKW90ACcxBcM13j7R5ozxrpFuJ7sPOA6meg9WRwq3WtAysSg6gEt+UeukQmggeVZyvPmTmggaZxEPXaWD0yg4gKowK9jAZqr9ppnkkFtpX8Rt8VWr8z52KVIrxx5WGUMDM1jIJGalpRhxpKv+ZI0gSqiE6FqMitcPMRcst1dXemYkzGXT0k0q1HapyjnjSrxhm+RrxSuTZKa5f6QjKV4BwXchL6nVS35vVXEBB8S1.IN7TXswMipxnLmVLp7ldh3Tag4tjlMwwCNjzF5tbNxrcTMyVYKr3sC7hGrRbBNjaU08vMNxhRoWVbX5qqCUvsfz1uvEiTQL6EnTQ7X3.IA5+KCqwr6oHyqSrkwXUGhWU3vBe..Q2Itpx8u+U+KUdXPgJx7WHN885UdXWjslT+COX56tLwgYibSkFY7Y6SjRZy2O5h9OOw0kZlyO38G.CT5E7+5Dmav8LvGd9ArxS.7zmCf6oQN7dZrFcPltrGapR8YoKko7qQruo9++zjCVUVtPov+aEfxupHni3XXO1zT5i+0DxmjGS4wXL2ZLFyhiwXt8XLl6LFi40Giw7SNzwHOA7c6xYcT7eQE0Vy+EuLLhtM5rfuAIizt4
    


  • @ustk Ok great, I'll give this a try later today when I'm back at the machine.

    Big thanks again for putting something together ☺



  • Beautiful solution @ustk. Just gave it a try ✌

    Like how you've created randomness by combining different oscillators with different settings. Sounds ace ☺

    It's also helped me to see some of the possibilities available within script node.

    Big thanks!



  • Hey @ustk,

    Are you finding scriptnode to be incredibly CPU hungry when doing certain things?

    For example, the nice pitch detune snippet you created below uses 50-60% looking at the Hise meter on a Mac Pro.

    HiseSnippet 2211.3oc6a0DaabbEdVRMxhzxJ+TkB2hdfHPnPFvQfjV1oAAshV+YHTSKZQYkDfz5NZ2gjC3xY1r6PKyDTfbnG5sdt8ROzBzdJnWyghHfdsAH.9Pt1VfhdHM.5btjLyN6xcVxkRqXhjrDzdQb9+aduu26M6rOUykYh87Xt.iba2yACLlFVuGk2ZkVHBErwp.iYfaQsVEy6RwqVuFX4dNHOOrEvvH68j8wH2D.+mCVZYjMhZhipB.1gQLw2mzgvipsVkeNw1dcjEdaRGsduXkMLYzUX1rtB7jEVD3fLaiZhe.R1sLPfwjqYQ3L25bDG6ALlXYlUu5sX6QU8eGhGYWarrPIPcwDopdclskDwxZAqzhXaUKbe6A.FvZQRgrJovrvpDKR+5ijFuneCEhFgt7vHygAuR5vqX5gmgF7lPAuWBV2zk3viZQhsqB2fxwtMPBUfNrT8EXrObElnCT9BcPswq6JJze.yemhEuYgaWr3MdyFcolbBiVfQe.ii2jN+Mx+A4yk+WmuvfM0nQhsIWFWlsM1MwlkZc2CafyS61YWr6MK7DjcWb+NJ19wkuvQKe0U+lpcsVGYzMnD9lNX5nj5f.QkT9GfJQW49R+YBj90sIVXW.QHjeAnxBovc6v5JFkOvCY123c+eKAdzFqh3nvoSLyhUyA6xIxMhwp3mHrSTJ2bh4xqMm4322NNLpDGFSl5E+o8Mo9U3J85W3C+kUbB2gaX4ao6OSEV+sKIrzbEFYBxfrkWNZBcrI7tVXgQ6PjPgo.ypqMhG29P5THnAgRMFQTx1ndDdOcmFmHFMoEtuDrFga1JY7lIA7JTfmz3MvEz0fq0nA1jGA1Ifq+1mM9axGPUDquDHwXNI4o4ifqQaRn3ELcwBnspmyCv78Xtsm+Uc8ClHp4Uuwads78s8cbwBJHdaVMaTu48PBhGdKwPuYgcsYlsqSde7vNLBnyKK6w7lsPTJ11ab7qLPXkroyuRBpwsXc4DZypHtKQXFBeP2N0EQyLwqDfNQcFYjtWTkKJKKYU0wTK+Bes3InwRxxFAMVJrwHOSf.gpuRK32heoBEzWNKaiYIUhqiLEaxd0P7VRluzsnfZgcWvrOEa5nwUBH.+fv99BIcrpMxJm7vX1p8hvoUGeWVhH1A+9sHVxEEZbSQOTLlsD5XYjfpd5m.HFaRnApE5WRtVYTqlZ+5umthBz64hb7jtpJAhsIut1lrgbhJ+Xe5zI1VyHSR.7JPevAFoBP07IFn5K0xn.0TJPoT6GAq3rfDLDf8kh4gcXVIf4Y0vb+dbxKKmPCZSASh8cVngCPUNkcAyyTbRaYHugQlKdAslOKTygwgDAxxFEAdajaSLOHlX3IjTQkjkDwhyJ2b4fOxCKOKNXG0YsLxVq6t1DS4u.ZtMD8ueIofg9DwrnV1pD5N5GTS9TE8zApapJ2msG1cfWhA.djiyP0NUk5briLZk9Qbp2FumR9qWqbWLo7PIXvPn.jFH+G98xmOdogg7bIB4Eqj.j+sOKFjCmScHmGVbgxkei2n3sCdMi0cwuWWL0rWDvW7VxmmsDH8x5CR.3ESD3GrTRx5hGSY8z93tvVRVFXHr.zLbtllgSoKsbtzx4nsblTXiTTb3vioYyGL6Gcu+86++u3Y1T9RylKMaNwLa9yN+z7e9e5yt3Y1bqKMatzr4Dyr48jVMN+2ywlM57kX7NcCpIgMG5kDupxRp4Y0qzF6Z6NZqnLCXEMMbKrGlqDHCwB0MnhOtWPZ8k1gpaKlI8Tj2Y+goHRI5vTj2Y+jnH.vQ8BH4l3mY92+zl+sWohR85+cm5uh+0q+O9pewOdg8AeqbeT42kd2Gh9dzP9q68Gq88V8YKorFq2gw3sHzlQ39S+mxm2sR.0MuxaoGoY4NLq3r2YfcD+cgv1NSCBjIETYcljw2Nu5GrT58pKbrnoVTms92bHNatBbDVEI4ZYJE2yAiZmnqE+FNatsrDzAFYFrRgSD45J+9N4fVXaTuGihzTxpuBbUY0fMc5eq+g9MVih10N7ihbbUgIGkatDcFLWLKqWakezW7etyObDpv0dpiK1yS9UajxMvgriyGtiKcwZKO53gGUjx7p6szzFiF7NNlV4swuoK80b55q4nTaSEn1jWxcomuu6d8u.xL9ehl91fiD2c5ZyImBecF8ODRj2vXv5ZPOd6EBaZ.HYbl4XezD97eW4lJYB+bIbRd.3vH7JWqQK4pe0W9E6+wexvtoEZ3QQ00bbeo144CsSbWTiQ.nQNAwDXSJgYBYhRZckmd2y6LXx53miNTre1C3EjxNAE0NSQvqYF67DAuahn+9Ja+2KeCKAsRlDIIbHii+aVM29em9lUvauvhkKW90ACcxBcM13j7R5ozxrpFuJ7sPOA6meg9WRwq3WtAysSg6gEt+UeukQmggeVZyvPmTmggaZxEPXaWD0yg4gKowK9jAZqr9ppnkkFtpX8Rt8VWr8z52KVIrxx5WGUMDM1jIJGalpRhxpKv+ZI0gSqiE6FqMitcPMRcst1dXemYkzGXT0k0q1HapyjnjSrxhm+RrxSuTZKa5f6QjKV4BwXchL6nVS35vVXEBB8S1.IN7TXswMipxnLmVLp7ldh3Tag4tjlMwwCNjzF5tbNxrcTMyVYKr3sC7hGrRbBNjaU08vMNxhRoWVbX5qqCUvsfz1uvEiTQL6EnTQ7X3.IA5+KCqwr6oHyqSrkwXUGhWU3vBe..Q2Itpx8u+U+KUdXPgJx7WHN885UdXWjslT+COX56tLwgYibSkFY7Y6SjRZy2O5h9OOw0kZlyO38G.CT5E7+5Dmav8LvGd9ArxS.7zmCf6oQN7dZrFcPltrGapR8YoKko7qQruo9++zjCVUVtPov+aEfxupHni3XXO1zT5i+0DxmjGS4wXL2ZLFyhiwXt8XLl6LFi40Giw7SNzwHOA7c6xYcT7eQE0Vy+EuLLhtM5rfuAIizt4
    
    

    Anybody else finding the same thing?

    Cheers



  • @LeeC Mine stays at 2.50% max with this snippet... (i7 3.5GHz)

    Although the CPU charge in Hise doesn't reflect what we are generally used to... I invite you to search about that in the forum, @Christoph-Hart gave some explanations to defend Hise's measuring system. (quickly, 50% doesn't mean the CPU is half used...)



  • @ustk Just had a search around thanks.

    Wow, 2.50% max with the same snippet 😲

    Like I said mine shows around 60% easily and if I duplicate the 'ScriptFX' I start to hear glitching and dropouts in the audio.

    Appreciate that we aren't exactly comparing apples to apples here with the different systems etc but, I thought that my Mac Pro would be apple to handle a ton of instances of the ScriptFx in your snippet.

    If anyone experiences similar or has any ideas what's going on please share.

    Cheers

    alt text



  • Duplicated the ScriptFX a few times and we're up around 250%

    alt text



  • Quick question: do you use the Debug build of HISE? That might explain the huge CPU difference.

    I've loaded the snippet, takes 3,5% on my CPU, but it's a fairly powerful i9 notebook.

    As long as your MacPro is >2010, there's clearly something wrong.

    Also be aware that scriptnode patches which use frame-based processing are supposed to be compiled into a C++ module for production builds - if you compile it to C++ that particular patch shouldn't take more than 0.5% - even in the HISE CPU meter.


Log in to reply
 

23
Online

741
Users

2.9k
Topics

24.7k
Posts