Pitch modulation beyond +-12 st
-
Hi everyone,
seems like in Hise there's no way to pitch modulate beyond the +-12 semitones range.
I'm wondering whether there are plans to increase said range? Maybe double it, or even +-36 semitones?This would be immensely helpful for more sound design oriented instruments, where such pitch modulations are not unusual.
Regards,
Giuseppe -
@Giuseppe You can use multiple modulators in series.
HiseSnippet 890.3oc0W0saaaCElz1rX1cqXcnXXWpK1Eo.EC1cscCXWzj3XWXr5DinztcWAK0wwDghTihJaFC6cqOB8QouAsGJYGIsHj5XztfoKL74Owuy+TyrFAjlZrDZ2SVl.D5WxBWpcKFtfK0jIGPn2gMkm5.aPAq8WlvSSgHBk19YdFztcH4Ou6o6yUbs.JYQHuzHEvykwRWI2Y69qRkZLOBNQFWQ6Gs6DgQOznLYHdZy5SR3hy3mBGx8p0hQn2ZTjzYrgNtCRQc12DsLbg4O0E5+RYp70JvSLfDhunB1jgKjpnYq80TBgxlU54sK776wlJijWvuLB704BBJsnZLf15pfzfqAjnUfTmBHcWVnvJSbkR7341rIZLgLmig5pPoPWB8MrgFTAs6Gh4mAisHwEFryS52+AA3O2+WlmoENoQGXzGZbvQ5cteu+tW2d+Suf+sn4yaTl+XrFkBrMJ1mcsWkg6nyheMXePv4bUFbghn6WOldqMKlJJ75JJZzSzR2QIvJ5wFUjOV4++ky.jUgM7euXxAbG2mTVwC0KArNoGNzCfywp5hTTW1AP5YNSBVWeo7GV4XhxTbW8xIeeyJAX7nVNzmnzoR2xp8UWiZr9WYM1lBw6xlIchEMiwVMfQLR84.iq5L+J1n4yAgqDfcXi+8ssMbyO96Tb72lEJ0P9Xw7C+ayoC9M94Pvy.MX8AuAWwjw2toSFS13IiGIb3wehkqSSLo0dwgPr7Di1GEJY9hTbP.7GG6ylU4OzvsMJ5cOcL5jMZSH2kYyKK1K1joc0JCZWOOzYyZcq2QTQ+FlS14FXz8ml1pavN+ZaW5tFigx3DELReNnvwa4X7av4Yy4YJ2Zt0KrmZzljEFsTTMqeL3rxSOErUwdiNzdNGtSujy818XPA7pUve+tOGq73VLNAaYr35uosw702wJfafuaL3+uSra+4chMsUEPxJ.YO+cPRcbb5PwUVVSN3iG71WlXTbqeUymrbN4Z.wGdyCwahEeGaxbR8oS4Xu7egQoCyhCw8MB.OcsFT3KmQa42YTP22SWrvQGkS7d7YkvAdZ5JgCVK7+jyHlKrlWIJthou77Kx4f9sN+6H5hePCRGLfjesypsDw3xhWID0eUWxvGtsF9iaqgOZaM7waqgOYaM7m1VC+4Otg9c46k4LwES3HjoyFkeOcJcjliU44cDjO.PZD+qK
-
@d-healey Thanks Dave, will have a look at it.
-
@d-healey Here's my snippet. I certainly did something wrong because the second modulator is not controlled properly.
HiseSnippet 2416.3oc2a8zaabbEenjFGIZYm3zfdnnEXg.ZfRhsEWRJJ4l3XJQ8WDIaBRY0jSLC2cH4Ds6NK1corTSLPA5kdqnGysbs25kdn2zWfBTf9EHeDx2f12rytbmkhThl0hRJD5.mYduc989Mu4Mu4sTU83FTeetGJybGbpKEkYdb8ScB5ToCg4f1cCTleC9PtUWaZipr.iNMVamMpWqQEtSfG2xGs9otDeepIJSlo2VnRl4lAE94md15DKhiAMoKD5PNyftGylEjza0xeAyxZKhI8.lshzEKuqA2oB2h2Ef2z3bHWhwQj1zmSDhMEFk4NaZxB3d0CHATeTlYVmadZ8N7W4Hk+PlOqoEUzPGUGdPxt2haYJPrnWTkNLKypwzfOBdnUSHkokjxGf2mYx50eB47dgCnkngJejYpzva5TvSWEd4Tf2.fTFEHMiDRO.W2vi4FjLh.O2EuqS.0qEAncUnHkEM0eaZrXoi5D7XaxQzs7fF8zXQ874x8PsR4x8QeZV3Cv99AZGS7zjK8G4vap8Ts3GPaZPEtsK2AZr3BIhr.ncRqG6SgQCnmDrvC0tDo761pE6DgbZ9AmWfZDm1zEeT9GpA+oujd9A7HrYllVzpbeV.i6.OpbmSnHe2JDKqlfC0hbmjwiFCzoOieetIX5gaMDFNzrqEAVaiLbn8BCTo7WhVZ4Sq2djlTK8gxxxgWHb8g4XwbnZs55XHrUsAXGKZDq5CgmtUW5Gk8a0zz.casXXasO+oORW6C+P4ne1S0AAxNWL3Drkv6vAXySkJ7wgrdOIxmVDAYOmDipq6RqUagOYeBPDd7tNlfu1GKQDnxqSvymAv469NIb97znI+vgyXMmuVPhJr2y4AzW3rX3bBCq0+PsZMvwhnZKp2.GVDSy6hTbQmt1ModIKPRAgM5oidfGdzC0faFR+FEA4N65vBdgK0YXg7PQNahfeQnBDMHLNy8ihyT2hYR8PLHbxrQmHfBQrZDezHn8z305WwHDboJtS+JtX4QSwM5Swy9Sinh0GWnVqOE+q+qxnWt6Fj.hHbdDeCqAtTu.lX4MyFzigyFkA2mCuA0+n.tK70d69QYxd4KImzaFK+0kOMA2eU4zQFSF4GeFyeeZ.oJwCNWENJP5k3F6erK73yhqSrcAWbwYvQhI5+N3vy7s4l.r9k3my8rIVr+.0rJ0y.fLbXMRFTW7P+sBtqmw7fgZLyiSBjMTCxbnFDBYqlGB5rXDfwvwJH+.pac.iBIdY3m+wyjFPV7FLeCOv3PhXHwYdjEqWZkUVIu9xHV.0V1cdwhjtt9pEWUG0rshr4K7jky+jmfdEyLnSOX7G2pbhxBcKTX4kKVr.xG1nd.LaqyOQtA1mbLcWmpdTHXlrGaxIJlSYUR7tAQ4mHIwsr3j.lS6CXPfAAU9N3v70TXwyZpvhkcKG4JFm7Wn3a6Qb6nXUBPnh96hKBlHX5EzSSIyiyqWpX9R4VsTgTbn3ID57moN9aypAIBj3dsvuSagvoUaSmioVvVB8EdnPlccLom.i9H8vlPZaV7W864dG4CIBRgAZQr7oYeceTcN+xilelHRzPHlu9jxoennMJ2gxZ2IPsGoaycvg4sptJ8m+OkUcyhCOp3HZ6iFh+a4+R4T68d.tOxI8VvYwqED.owL.GIniCEAgpxc65F5KzjeLs+Urh4W4IExs5xk5yON1meT4xcT2p9M2J4x6f2AtZv0NStgBS9it2JYx2AN.yfb5DgJe+K776Dy+GBFSpTbZrACRvL8AKe0YoCLi5ib+gu+6+mpjq45CibQ4O6MgbmCWuqef3f2qaOU0CV.F81nm5b3ZTKJwmNQHSrjLuWDYFdsknD3jWgQgPQGpdR82TVbdp.uxK1jCgNeQAdObuqXpViBQRZQCHXJ0BCz69Tp7b+EtXlQqvEWbcUFU39.b7E9F.dmZ.3ERn9pFuQkA5d3Ma0hZDj.1Yva8kWXMedqCkYkP4Wg21h2jXkPfPdb.pndQEsSNrVuw05If9ETzt+8nVzN2QtncYldjYj2fhzMyMthzMp92+hysz3+lui7JGkW3tvoGocguUv33uya7m9Z7thKQsOIvK7zlm20tN3NaPgY2wgZIJFSloDUBP1NmnsfApScLCa7egOQCpKZmIZP83AGvN5yU384wizV1eZRukcbqqN9V6V1++OA85c+5T+7d+pxz+qkS+6iqG3QIP55siJbUHFTJi0Dc+TUOHyShY5zYOq75P5rTuz892KGNUqYy65jZthPdMpKkHdQBJ5La4Z011i20seszJG5TbfGw3HfJTswW3PAtNP0Fq3w88aAlS3yxWcnpc8ZK3pjdpQOl54mtOHNoZDRQPuW5SEquLi3foIRGNK4NfDtFOEV1Vuu146qcg9ZWru1K2W6R80dkj1Yvo8+lczxKYehaUBXhJRtNKxKCFS1iZjvdzZ3TqDE8E.CdLi9pDgyMQecjSzr5uFCglYJEL9tRLFWWTYny9ufnJ11m6vc6vcXFoc+A241sEEKOAwCzLjUmqRWuiSEPIr7Hmq2nR4ctd1C1sYo1cXcpTdMHxpsn75MhqPPJLKumqxqjXSCd5PIuQzt9ES63Qz03dQUvTKLL5M6Kmd+XrJWQtYC14kEg61.u9twkz5VAwd+3ZFcCiZyJtw.PiPN.BXF814tjDAeKtkeBd4x23pHbomLfGHGlsGTubLtNykaQ7D77UBkNXDNON42Rx0OFuAUorKdGrLiMMX18BtwGGOL2UMwUMttf5jnlHFwOJv1h9t7cFOM0Qj6bXDLq9SEJ9kB.ozi7CWTsEogOif49.wqVvk3PZ35wOlzXmcquIpuKKgwq9XHsdlQ7aRPrU.+oJWGhXaSDxoCxkYV4b.eoFWb+oYvkxg1i+EzSi99NrjuuG+PAXE76NrvuBOk7qDCgnKKvrh9IM1Duj7mwg+Ray55SccoZq00jw0Nf62g0jrTEvakzluTjYosRNMC6kpPE+D9V5.hcytd7s8HNlzFUZr2xMpUqQN8FU16E02T+wuhbLZittVLCvyP3+fdKaK4uxsk7SLaovUtsTXhYKEuxskhSLaY4qbaY4IlsT5J2VJMwrkUtxskUlX1xpW41xpC2VlDmzNIlCahgGugQ7+n.vhSXO.+5DRryg2WzVSO9WJIFmCNf0lYxZXXHVrdDjIxf0I+XnSgwPmhigNKOF5TZLzYkwPmUuPcD0NbstAba4cxfNptoLArLa1KAroQ+O.BlgWqB
-
@Giuseppe Yeah something wrong in your calculation, but the principle is right.
-
@d-healey yes, I corrected it and works. As I'm reading several topics focused on this, I share my solution here.
After setting as many Constant pitch modulators as the number of octaves needed, here's the custom callback that makes the trick.
const var Pitch_knob = Content.getComponent("Pitch_knob"); Pitch_knob.set("text", "Pitch_knob"); Pitch_knob.set("suffix", " st"); Pitch_knob.setRange(-2, 2, 1/12); Pitch_knob.set("middlePosition", 0); Pitch_knob.setControlCallback(onPitch_knobControl); const var PitchMod = Synth.getModulator("PitchMod"); const var PitchMod2 = Synth.getModulator("PitchMod2"); const var Label1 = Content.getComponent("Label1"); inline function onPitch_knobControl(component, value) { if(value>=-1 && value<=1) { PitchMod.setIntensity(value*12); PitchMod2.setIntensity(0); } if(value<-1) { PitchMod2.setIntensity((value+1)*12); } if(value>1) { PitchMod2.setIntensity((value-1)*12); } Label1.set("text","Pitch: "+Math.round(12*value)+" st"); };
I used a label to show the value in semitones.
-
@Giuseppe someone posted this on the forum:
inline function onknbPitchGlobalControl(component, value) { if (value < 13 && value > -13) { PitchMod1.setIntensity(value); PitchMod2.setIntensity(0); // Important in case the user double clicks the knob } else { PitchMod1.setIntensity((value + 1 - (2 * (value < 0))) % 13); PitchMod2.setIntensity(value); } };
-
@alhug thanks .
Not sure what I'm doing wrong, but if I set the knob range to -12 to +12 with a step equal to 1 (like in this case I guess), every step corresponds to an octave shift.