How to fade out before noteOff?
-
I've made a very simple script that plays the note for a fixed duration and kills the previous note if a new one is pressed (so legato)
The problem is that if the same note is played when the previous one is at about the maximum gain, then we can hear the transition which I don't want. This is because the release state is not triggered when coming from the same note, hence the hard transition...What would be the solution to overcome this?
HiseSnippet 1066.3oc4W0siaSDEdbRFTigVnpHfKMWPUh5RjSaZYqhp5tIaRUDjMQaRKvUUSsONYz5LiwdRnQU8YfWIdD3Ef2g9F.yL1Ys8h2PHRzRE9BGOm+luyuyjwgbGHJhGhLpNcc.fL9H7j0Lw7tyITFZvIHiafGRhDPnULoNqCHQQfKxvn7STDLpVAoedyi6P7ILGHkDB8LN0A9N5BpHk53i9VpueehKLktHizsNZfCm0k6yWJwSYrMJf3bNYFbJQIVILx3C54RE7vIBh.hPFU5vcWOYN+mYwx+LZD8E9fZQSzDoghI2m66pPr5aT24Te2wa76HDx.ONMJTNNJ7o3gTW5EzSiFehlgUpFYiGFk1F7ZlEd1EBulE.OTFzUIFcRPvcW5SD4QlJcjvfxymoFvD.KhJVmMc8NEt2DOlJblWLdKU.dkIp+swaRx+53dddfiHErUv8+g2tY5aDCkODOgx.cGoFHelds02SVAVOAXPnJn1bKMk+1t1TFryMkibDxseZHgEEvixZ3ecBrfNkyTQjzc6oQP+P3mNSkkyRuKmDVHq2739RmrPclPDKC0kKGufujIxUdTNeNAe04jrCGx20jQ9+loFUdGL03evPMi+Ze3MwSbBoAhTNJrcqDponKe8TLWToe2.GByrXbAz1T8E0ssoo2RliJtYwYmJ4LhUqt4qttok7YnzXxg2MVPNGNNTP8nNThes5sMqtgEcFiGB8VALQMQ3Rnd6XUieS8rpQcst8s0ap0W9nKL4LPn1sSWt3EPXs50ekYUkB59jFJgG440Ys1tCbk1Xicec7O5WZadklrcrfUMqJQviRrLw0MwIadfV+Crdf8AV1JWxrZdY77REp0g11Jgdso0kiWRwjArsEQtjVc4LQH22WARkhWhsp4sXNIJVio8vCrVQ7kleifxhj7Ugl6VUnb1fbRsHifb1.FULJ.RNSdSgwFJMQW35YEJ0uxRU6NEHVJoBFi1MFSpQOCNgHHptgDZR4B.YsnxCMNAVImCF2aTEeBDctfG7eiya2yFcyX79w3oDog5wVA9R+M47VMMqMDy2jOjy3Ay4LpS1IpmAhP5rYPXVunPW6XgPdUsKnbzubzYfOPhxcPRrPZXnSKF8vsNrQ9mUit2Ka39P0mOrqd8O149mdmLqku7tSF4QI6TF69U361J0jWkdWNcTd2RGEjBJsikLeNNIDHqpsdu4lZeAdSD98JXu0KXV9+mWv7L9RAkMaHQ1W+R4Mjjm1MQduNGPhDFC7U2ZxnjZDZ7Za0Z88t.lqdweHeRX1Ts1HgYyMLeqrGKHNg7m6DeVfpC7ZZJR+lo+qhUk+mU4ZqlH8obR8v1MrQKjWB64NNpv8WKiOEqyc2Cct2dnSq8Pm6uG57f8PmuYOz4vspi59uGuTvWD2JJILtW7vZidL0jacUO5OAOZIaE.
-
Might it be solved using event IDs instead of direct note number?
-
Synth.addVolumeFade(int eventId, int fadeTimeMilliseconds, int targetVolume);
If you set the target volume to -100 it kills the voice when it gets there (I think...).
You could also try
Synth.noteOffByEventId();
I can't remember if it triggers the envelope. -
@d-healey Oh that's exactly a function I was looking for when searching in the API list but I got itchy eyes these days
-
@ustk It's a useful function but there is no control over the curve, I think it's linear.
-
@d-healey yeah I that's what I'm using in that snippet but no, the release is not triggered...
Trying your first solution ;) -
@d-healey Strangely it does not work, is the mistake mine?
HiseSnippet 1055.3oc4W8ziaTCE2SRLhLPApnB33bAorpoQIa2tzUqPM6lMoJBxtQaBKvoJ2YdIwZmwNLiSnQnJwE9bvWENwY9Tv49M.d1yjLSVFBQQzEUgO3Lu+Y+68768rS+PoKDEICIVkGtXJPrdW5fEB0jVSXbAo6YDq2hBh46SNcwTVTD3QrrJ9TsLqxkHlwqdxoLelvERYQHWI4tvWxC3pTt8a9Ebe+NLOXHOHi1GzrqqTzR5Kmg3nHsNYJy8Z1X3blVsBTDDs83JY3.ESAQDqRmJ8VLXh76Ew5eEOh+bePSzfL.WnX1cj9dZDq4RZMg660eo+FQHVz9odewXu+dzdbO9J9oQgOvHvI0hrwCqBaBdMxBu5aM7HYPWoXzgfP5MymoVGY5iiDAboXMj0Un.QDWsH6w0+ov8tz9bk6j7wagbvKdP85FuIG92g1dzHvUkB1RzNeys6I86ECk2gNfK.SknAHejg14qYyAmmBBHTGTarghxeaaKJmt0EkW3pvseXHSDMUFkcg+kAP.enTniHo61WEAcBgu6R8obV9sjrvbE8pmzAcxbsY.SMKzjtbRfblPsV5Qws9LI+lC0yq4PoWWMGJtcvKGHY8WKwtKcfaHepJUhFOeXB2TDsdpRrTRge0hFBicDREbrs9Kt2w11ilIb0QZGo3bTxEhJ6Y+C2w1AG8vEC6KWKfcMbRnhOh6xY9U16X6xKEwGKjgP64fPUQENC163XSim4ibpv81KY4zCSNdMlm2UR+YAfNQD0npSi50q57.bd4B7x3eLSZD674qfyXPoQ54yBdNDpQiQwx1k4dnVq1gDuoQUi8UcND2g5ZraWdccFMJUoiNrtFC1uz14lAFTMLxrIW+FV0RJTgReeMH0FdCw5Bv7kjXXEgwCq5Lm4iK+REwrg0Swr2tTLr9F61pxnnTzUvUWLERtWcYFvRNMHqb8rJk5WY4ZbmbTKkUNsBaEiIc6itmwTLcZeBOTuo.lzo8Pqyf4Xur3hfxzyfnqUxo2h2YVb6Z7+OTEaGiw2mNjgF2VLG7QeL4dRCOmkLWuBtmTHmNQJ3tY6DdInB4iGCgYQdttyIJE9DqUbZ9yMuD7A1pt5+3898epYrRFXXNJrZSO3w0VeL+hG9hZdGo+7nVF5u8zGc98yPiSiteF8II6Tl08So6eP5R92Y2+dMRKrkoIeLMIDfYxNuw7BqOgtLB+FEr23CCK9+yGFdoblhKF2ig00u.+CK3MbCv2i4BHRDBvG2HpUAcayX55ZZy6k.gmg3OvQhvFZZqDgMVJ7VYOBXtgxm4F2+WWA91FNneKL+EuxzdZZmFDyMancz50pSBvWU8LWWc39AX7Iea1eGr4g6fMGrC17ncvlC2Aa9rcvlGuQazOn8jYJYPboHxne63l0VsE5N2lrdxeBXQ5SkK
-
What about this ;)
HiseSnippet 932.3oc4W0saSiDEdbRFDIKrKHP.W5aPpHXqRJk+DWPZSSPQPZipyxt6Uvf8IIivdFy3wAhPHs2ruA686Cw9.vaChK6a.LyXmXmhaIJB5JD9hnb9aluyu939BtKDEwEHqpClFBHqyfclxjiaMlPYnt6frNEFXS1.s8zPRTD3grrJ+PsLqpUPlmCdv1DeByExXgPOgScgGSCnxLt8a9HpueGhGLfFjS6Ma10kyZw84wJbTFWGERbeAYDrKQqVIrBDs8nRtvQRjPDxpx1buoNi4uhkn+SnQzm6CZhFHG0AkvtC22SiXMWTqwTeu9y72HDxB2Oy6Km38WD2i5QmyOKJbNi.6LKxGOrJcbvqQd3UeogGJG5pjfNEH3dw9D4hHSmNREP4rEPVWlDXQT4z7oq+Wg64w8oR2wEi2REfWUh5aMdSS9mE2d3PvUlA1J3N+wIal9mSfxOgcnLvzIZ.xkLz1+NYBX+PfABcPswQ0T9rG8g+YYaJQGQSY2OqobOWo55GHHrnPdTNUO3cNP.c.moiHY21uEAcDvK2WmkyyuEmHJTzAOnixIKzFGhLVXJW1JfGyjKTdTdoyIEObndQCGp7sZ3P4kqjo.HY84sXmG63JngxLIZ7bgTtYHZwRkDoHq+COLl4pip1b1tbIrGasqU6M0daM6CKX3Pijp8TGmZx75zQLt.ZOAXx0jhX3Z2+PV0hyjBtuOHRL7Ph0EaEKI0v0XwAOGD2vdBwWc7yTT44KFNqsbYaUsrZxhLmhbVWFUtWHLmNIBLiSczbWOOqL+JOWi6TfZYrJnsuUBlzsJc2gHI5TbJOkdgfPR0dn0NvDUeaRBuJdGH5ERd3I36GJubg3uPEasDL9K3ADkwsYS.ekOl9NACO6YLWrZsGmwCGyYT27c86CRAczHPjG4E5NaIkp0Ilyo4+1bevGHymf8WW78+cyDkLvvjJrZi27tqu3yj8t4qW26d5+duVF5+b6as60yQq9Y30yoOJ8lxctWEuwlYG4QY2WuTPokrL4x3zPfpR196lsItBdVD96JXerKAU9Gykf1mGKorQ8Hp95WqVNe23.G0tGtfBILF3qtHrUI8XyD55ZZytA.yyP7Q0SpvFZZqTgMlI7D4NBHtB9ScSl+q6.OsgixuYlOmoJtml1tAx7lMkc35qWGEn1f3ott5v8uphOEayFqfM2bErYyUvlasB1b6Uvl6rB1b2i0F8xaaEK4AIshJF8amLr1pMSO41T0i9DPx.IrK
-
@d-healey Fade Time... silly me...
Exactly what I needed! Thanks a lot Dave! -
@d-healey Oh what is that? Try to play two notes at the same time it creates a very nasty artifact
-
@d-healey Simply solved by checking only one key is triggered at a time...
-
@d-healey Side remark, don't you think the Voices limit is weird?
it limits the voices to 1 from a setting of 6, and if you set it to 1, it automatically comes back to a min of 2 after restart... -
@ustk I hadn't noticed