Velocity to delay
-
Hi guys. How can I link velocity to Delay? I want to decrease delay time (i.e. 1/8 to 1/32T) when velocity increases. Maybe there's another way to archive what I'm wanting to do (it's for a Melodica flute to have some ms. of air sound before note sounds, depending on velocity)
-
The delay effect is not working on voice level. You need to delay the note on message with a script depending on the velocity, but make sure you delay the corresponding note off by the same amount or you‘ll get stuck notes when played fast.
-
I've written a script module that does this:
/** Velocity 2 Delay Script * Christoph Hart * Public Domain * * This script delays incoming notes depending on the velocity. * You can set the max delay time and a curve using the UI widgets. */ Content.setHeight(200); Content.setWidth(800); const var Table1 = Content.getComponent("Table1"); const var Delay = Content.getComponent("Delay"); // Store the calculated delays for each note to delay the corresponding note off message. const var noteDelays = []; /** Small helper function that fills a given array with the same value. */ inline function fillArray(array, size, value) { array.reserve(size); for(i = 0; i < size; i++) array.push(value); }; // Init the array with zeros. // This is required on initialisation to avoid reallocation in the note callbacks fillArray(noteDelays, 128, 0); function onNoteOn() { // Calculate the table value local multiplier = Table1.getTableValue(Message.getVelocity()); // Calculate the sample amount for max delay local maxDelay = Engine.getSamplesForMilliSeconds(Delay.getValue()); local delayToUse = maxDelay * multiplier; // Store the delay in the array noteDelays[Message.getNoteNumber()] = delayToUse; // Delay the event Message.delayEvent(delayToUse); } function onNoteOff() { // Delay the note off message by the previously calculated delay Message.delayEvent(noteDelays[Message.getNoteNumber()]); } function onController() { } function onTimer() { } function onControl(number, value) { }
Check out this snippet:
HiseSnippet 1648.3oc4X7uaSbC1WaOFMrfFRLo8mVHlTRoqsoiswDCsTRZgpQnU8JkgPHj6cN4r3N6LaesDXSh2f8xrGj8HrGg8Fr8Y66xcojVZ6XaRaQHz4ue+S+84tsTDRUJgD4M+tiFRQdenevHtNtSLgwQa1E4cY+dDklJwNP2czPhRQiPddydOC.u4mCY+86e6cIIDdHsDDBsmfERe.KkoKgNr82wRR1fDQ2kkVg5a1dyPAuiHQjA1yr9qfFRBeAY.8gDCYy3i77WOhoEx.MQSUHu4tqHZTPr3Pti98XJ19ITygVn.PPNvaHRhLVr4aTmXVRz1E9sBABc6xnvrtnvU86whXigWFM9HKBbIGUiGdybRlWqyo44Uw7lyYdWwOHTxFpKw3rs8nIhPldzpcoIjQSXaNFPyz7B9KuvB3BJwqhszhc3qWaALFxzRlRKFFiuOQlCa6r8SXg3thTHT.fbP2MlovJKq3HibTXFOTjx3CvbADD.nCo7HyYAGqio3Cx07RNI7DQFNjvwJp1hNk7RmjvZn3.S3QXBNLSd.EmoLhwPzi1DeHKZ.UqLRY450pWqifqob8RfbtOkMHV2X0UVo4sm.wiYQ53F2xAudMnXSowGPj3cIPZoE9N3BhAQ2QjNTvgCMtlC80LbUxiKrcbrXwdMmdVdYb.TUPsldHIILKApOhJBX8ERLkDFaCXXsnv8MDKjRpBjYTQ.EK52GmB4bnsXopliAYWm.uC9oOyoXHQGjRRRvwzjgPKb+LdnlYSDDMtOzEpfn6.1ATNlHkfVOjoispVA8bffSxnKgMQXFOgwokRvv7ZFVZXYbQrh8J5hNNZVu1qqWCRtNgtD3CTHA1vPhKjXvA9cCFXrqbaLC+MV9gutwMZ5PWx9vLUbCmfucsepHjtIm4pXpX3uhJEpkvV71RS3eR5OjwjP3FLZFvCijvTDWTPfIGHXQ.MPPRD5fxb0o1nMjsR1GtDRUuVoCWFpWD2Z0asHFpmFGWD7GBn2h2nYQL.rkNEIcqj0lxIWjxQgQ0I3zrDMaXBCxS2IuhzTTY+ZOCwM5km2AnE8uMZZBnFgbLJCxiCAsQREYbssVabG1DJm7xhB504CfLsQIAVdUaHj8.mmEPgxsHUCKgVivZUGwBbxypfcEORQAINV3KTwIOpYW1h3p+ySC1rqinx39SqDILg6GlktOU1n4y.kUp4ipgti6qnPAu1AuPRV1V2.uQoDL0a0NZpse+IxskR8n8m38cvGJoGvDYpjQuU2es4mh9OE94QMLykPRQRhAYsWWa9IwZFyNUD4r0fakaQ2aNcvzlIGmU6zMNKzcgXEBEbSy5VvffhytdjBHqfFGZqBpzopB05LSgrRPu8LTT9kzvzzYxIG7NscVZ87Yo19LDCFVdQeW2GxFNFuexadV6Hhlf79T+Uu4RS96fsf+q+MLe90crmc5zpnYcJ5x4JJHgEQkVM8A9tA0Spne6UsQOZytFcAStyMcvcfav0LShvqKTPERc6BLOHC0Kfo0VeKe.Dx6BuSu6kkadc81ipd3PybRXuHuezCghsSSMm9EjMRNVEW5c5WUTwniQEuAUUEPxCkJh.odAe6xgvUGiYq8O2FVDcX.Lnn5Vmpr98Y.U993TEJkEEkP2VnXlZ7R5dRazauGErMmHxzON4Jdl8ZyQXjQ00n1zjL.YOppEbF16akot2WqoUydJM2q3uMSGFOc6cloXullf+ls27snq6ud+9zPcowNm+Fe+4ck4ymobYmobI+.Xnl8oMVC4ismwOl.6UdOJmJMA0S3wM+56+G2rUnFz9tRBG1vSMgfCnorcgtLUUfv7nMfkY1wjjqV80QPjGCpM.ebJH.EPzYRa0xZ1ECln5X1ISI9mtq8mrooB8mbtxat+Ed806+tv+5WZL6oybeGOPb9BaLfY1cact44V.D2MEco8IvBXigV0H6I3vK9DbVX0hgcnZIav.prpoOU+YMsFVTtDxUauCMgRpVXe81O.JHIxd1a3OWghVm9PwIkt9Dem4hMMo3+abW+r++7t9cDYZ30w8HPgpYK.XG4.3N1PJXIbNMwbCl2LlMWbmWwb1cIKOxd3Ofe4HaYN6kirUAx+QzQJITJddnaoQSs7EsP.+la+yeMueOyY730RMwFXaG1yCCMA6OChNSmiUOyb74mYNt4Yliu3LywWdl43qNybbqSfCyrm0xzhTWqGB8mznL4NB
-
@christoph-hart Awesome!!!! thanks once again! Will try it later today