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 :crossed_fingers:
-
@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 :astonished_face:
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
-
Duplicated the ScriptFX a few times and we're up around 250%
-
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.