Changing Hise Legato To only 2 Octaves???
-
@Natan this script deals with held notes as well
HiseSnippet 1108.3oc2W0saaaCElxNZn1aYacnXXWpArKrAbBr1x5VQPVShiSgwxOFwYYCnnnfU5XahPQpIQ4Mih7.s2l8nz2fsCojrjRbBRMPKVmg8E77G+NeGdNjdXjzChikQDqFmOODHVeh8n4B0zdSoLAYvADqOy9HXBUIcF4EwBUj8mGRiiAehkU8moMxpwZDym27z8obpvCJDQHWHYdvQr.lpP5vc+YFmeH0GNmETx5s1cfmTzSxkIHfpa2kDR8tjNANgpMqlMw5i56yTxnQJpBhIVqsuze9nox+PjZ+ErX1q3fdgKYDFnTwGJ49ZDqkR5Mkw8Glm3wDhk8vBZndJM7H6iY9rExKniO2nvovix7gUspvqdE34VFdcKAuaBIRIDsVJhvMV5mvwJQEznKAYJXRQEzLPn.QLSMubI58NDen8Plxa5xwXskfQrf7t.iYE10s6OdL3oJ.3Z1G9au6qheZ51+w1iXBvzhY17uzr14Woy.mmABHRSdt2QS1eeeaxBu2MYm5ovs+7HpHNTFWIvif.14RglEJD9KwvgQvueltZVVdOIMZopdySODSxk5yHpJIxbrXu.YhPU4XP86pY2cEa1W6+bM6VV2rU5g1oiaKznwyCr4lYwUvQ1b4Z+Uc6HXhCLCDpA9N63rwSdx1q2TKiSiUmHUPlPiro.2WKKFE97Wr83DgmtL3HEZomJZ0d8lud8lMNF2dbD7lAzKg8hTrwLOFk2pMFZTKarSKyo4MYwo2Sn6nilos.CPCcDLFkCqu1.g1nzWi+Zj5K02+BIOI.zGWyMsiia2NNa31sa6s0lt.vaFlDOsUdNYTdE9SuSKKb4IvDP0OMxsZ2wQGZDGa+V6UWiOWYx9BtdYlqsqDyWxDsjSRBdEDYr5pqS9iGmy9Zp6VbzYmcVTXWP0oohHMH6OOGKY.0vUE7XDDHmAkYxrhUgIbPLQM04mvzNujUjzK3srSLtcJNU87qGiMbeQGmGukg.0goDybmNkWdwu.OFtIJLmnqFvLQWoKTMQOuQJeKT50KF8jBUjjy05ZhaayqZ5TRsdv5x0j4XKgIvcbv9gDXggXWd0QG12uIa3ba71RUICkhABl5zPPbay6H8RcRO2dvATEUOuISFZWHfszZHXc.LCuDIc5SC6Cf3KUxvODdHRkwmMxw3HVPHG5KlAbLIMX7KvrZLMgqxkV8d1ikBY3Tof4U9Rny.UDaxDHpL1WZBsmRguVsPxi18LfCzxWn9M6dDdQHMB4IXE4B225qRVZ85qrSgqi9LryGtOfr9+ue.4YxDESL4XJdH7Ow4D3fpQ3617.b2EBbdHJypltKOccW85zGtI7MK9G7SlRW8ZqLkt4JeurGATuH4K8RmJpOm9.iDLuEl+ZWC6i0qcbIlIkne1c2rKI.e80K87zT7F3vsk6y2tB97cqfOasB978qfOOdE74GVAe9w6zG8Ce2KQICRa4PAC6at9vxpufhmdMmzI+KG5iZZA
-
@ulrik Thank you So Much Ulrik, It is A Very Nice Legato Script
But The Question Is How To Make It Limited To Only 2 Octaves?
-
@ulrik Anyone made a legato script with selectable hi-last-low note priority ?
-
@lalalandsynth Lala How are You Man, You Doing Good?
It was so Long I Did'nt See You round :)Looks Like We Are On Some Train With Legato And Spicific Notes :)
-
if (Message.getNoteNumber() > 47 && Message.getNoteNumber() < 73) ==> then apply the legato script?
-
@lalalandsynth what do you mean?
if several pressed always the highest note is sounding or? -
@ulrik Thank you Ulrik, let me Check and See if I Can Do The Changes
-
@ulrik On a classic monosynth - it might have low note priority , so if you play C1 , you cannot play any notes above that , but you could play B0 and it would overtake the C1 , opposite for High note priority.
And yes, by the same token if you play several notes at the same time , say a chord , only the highest note would play.
Essential for modeling analog synth behaviour.
I guess the tricky part is that it has to remember note 1 when note 2 is played.
On on analog monosynth you could hold C1 , also play B0 - that now plays and when you let go of C1 would play again.
Without retriggering the ADSR/VCA.Last note priority , would allow either way .
Sorry if I am explaining something that is already clear :P
-
@natan Hi mate , yes doing great , took a bit of a break , working on hardware these days .
-
@lalalandsynth Ok, I think I understand.
The legato script above remember all pressed notes so I think it would be doable to have a "LowNote/HighNote priority switch, try it! -
@ulrik demonstration :)
https://youtu.be/6B14tqEW0Uc -
@ulrik
Ulrik
Can You Help Here:
Where I supposed To Place the Extra Range Code:if (Message.getNotenumber() > 47 && Message.getNoteNumber() < 73) ==> then apply the legato script?
function onNoteOn() { Message.makeArtificial(); if (Synth.isLegatoInterval()) { if (eventId != -99) { Synth.addVolumeFade(eventId, 10, -100); heldNotes.push(lastNote); } Synth.addVolumeFade(Message.getEventId(), 0, -99); Synth.addVolumeFade(Message.getEventId(), 0, 0); } eventId = Message.getEventId(); lastNote = Message.getNoteNumber(); }
-
@natan What have you tried?
-
@ulrik I Just Placed The If Statement Before The
if (Synth.isLegatoInterval())
It shows Some Errors aboutMessage.getNotenumber
-
@natan what if you combine all the if statements?
if (Synth.... && Message.getN... > 47 && Message.get....), have you tried that? -
@natan I see the code is misspelled, my bad, it should be Message.getNoteNumber()
-
@ulrik said in Changing Hise Legato To only 2 Octaves???:
Message.getNoteNumber()
Thank you So Much Ulrik, works Like A Charm Now
Just A Small bug:If I play notes Outside the If statement, Notes Gets Stocked :(
Take a Look:HiseSnippet 1157.3oc4W09aaSDF2toFsDn.CMg3iGRnoDozJaVYkoRYsMMcJh9RTSofzzzzM6mjbp12YrOGHB0+G4Ok8c9.7bmsicZcqRiXCIvpMQ2umW7umWtm6R+HgKDGKhLLqe9zPvv7irFLkKG2YLkwM5cfg4mXcDLhJEjAtQrPow9SCowwfmgoYsWnTxr9pF5m2978o9TtKT.YXbgf4BGwBXxBz969CLe+Codv4rfRZu4t8bE7NBeQBRnZV1FgT2KoifSnJ0Vwxv7C55wjhnARpDhMLWceg2zAiE+JOU+KXwr23CpENFCPGkBenv2SwXEpQmwLeu94AdrggoU+hzPszzvirNl4wlgWjN9Ts.RgEkyGlqbWzyoL8rWX5YThcqlxNjDBuDerpLGyTkiLALAeNl0iKAdLSNsb45eU59Pq9Lo63p46JUvWrP8tluYE+0r5NbH3JKH6pVG9yueqzebJU9PqALNn2RpIxmqWS9I5Df7BfCQpjpycro7OVzMkgK7lxSck3q+7HJONTDOmiG.AryEbUFo.7GigCife4LUUtLdGAMpRQu84GhAYk1LfJShzsK6EHR3x4ZOpsv0j6wvgUeWMbn1h0xTAkLu4VrGZkNdtPhhOOvxWO6dNdjMGek+rlUDLh.S.trmGYGx5O6YauVCElOMVdhPBYfZrwfumBKFAe4q1dXB2UUFHBtB8TdyVq032WqQ8iwWONxdi.5kvdQR1PlKi52rE555q0.+fMjzT2PuAKN8nE0l8nIJkd7iI41OBzT3jjf2.QMaQ9dxlaQtC4eGYqmPPNTWQBB9feoeW4A3WpClVHpRCsJ3W0SoB0y6BgeR.n1.jaRahicax5N11s1Vo5rTvFgIwialmkzBuB+W41pbWIJ2M0yMa0lnbMxmsu2VYqs4Jcxrn5Uk5J8JUKukTGp0UWubNbXd8TkBusb9N6LqUIOymEJ7Tmr+zbtjQTctpHOFAAhIP4LYVQqPEefORNFK+15RmpNTDzyxaY8fNsK5Se408w5NupM4oapSfJ2TJybmFkWdw+.+X3lrPuGYdGlAckpP0.s7Fg7sjRudwnifKiD99JYMvWaiqZPJIVMptZIYF1jqcbaBt8JAloHN2X9gQMVrYk3IA34xxRJJ383L4ogvr0okhbDaiYcTkgJhqxn5voB0Jfp3PyNobRcPSuCnRpZ.YFFpWHfyfTQn4AvD7Tuzwk0sN.huTJBeOd6p+Yl2WOmiCXAg9PW9DvGCRMG+LLpFRS7k4nyewfiEbQ3XAm4V9Tyy.YDazHHpL2qLf1SJwqiWf7ncOC7AZ4a.7U6dDdxMMBySvRlKbt2m8UY85KrRoKQ0SQ9uwshq8+yaEelHQx3iNlhMp+F9q0vYkCvKi5BHS3bbjLhYthZRP5Za05zaix8zK9K7ISniZsYlPmbguWdGAT2HwqcSGoo5kefFAiat922V25X0ZhigdXMZmk8F1FA3UJesqqJcuNlep1ludIr4IKgMatD17MKgMOcIrYqkvlu8NsQca98RjhfzshHP+t5iXLM6xoXmrtq23uItlshA
-
@lalalandsynth I got carried away in this, low-high-last note priority thing :)
try this
HiseSnippet 1994.3oc6Y0uaibaDeWausYUqaZJBJ5exJDTHk5SVx95kObbN+cNiXemfk6kBXbHfdWJsDlhTgKk0IT3Wi97zGg9nj2f1YH2U6JKcxNNWBRBpf.r1gyP9a9MePtzs0pHVZpR64Gd93ALO+eaPmwRSx9ITtz63C77+yAmv5QMJRmHMefgLh7LdujSTiZq4JM2L1auwCnoorXOe+k+BzL+vU7re91mtGUPkQrBQdduTwiXmv6yMERauyWxEhinwry48Ko8i243HkbekPMDf3xAM8FPith1i8bJp1RAd9+pCi4FktigZXod9qrmJdbmD0HoS+WxS4WJX3Cs75.SjS7QJQLhXTp29IbQb6bpH0yyOncAwrriXd+fS4w7IxKHneuc.RgEk4C+klFdKOE7ZUFdMKAuYgjWIDshCQvBqhGJfXyTnACAYCvUxoPywRCSlhwrRgnezg36EzlahRlOFWZNXDBH+Pfwr.6pAG1sKKxT.vUBN5e7CeT724V9eSPGtjYK5rK9ez9L4qnWyHeASxzH40ZAEY+m6aQ1f6cQ1KhLvxetlJSGnRmZh6v5yOWIQVnP3eOkcjl8MmgQyxx2WQ0ycnu8oGAN4bsoC0LTaSK1suZnzLUZvxKpXu0CrXekexUr66Oaoz6E3Z.WLBhm2IPX6NOENbJ5sz+5cCf.apgbMUSv10cFgEdjsI6qvpLSidLy9p9Cf3ozTqZgJUqu0pUVshl0ijvDwOWA9CX1EuZKmvAB5XlULH8QexmrUEq39.2bBGVvsIGJ6AQ3FQZFvEmlIuV8spjqSitPxXMvVPFrTqudX2gxHLtmRfcahRXQWQRfsZXv78WHB0H7GHZHRXcsV.veNCvkBrBJe5HfVmXUBwas5qV4etZkPgJhJHB.os13i.uJD91UoI0jDtrvoAsCQ0CkjOCz9oVKjjOkTsJZzMNC0LHmURDfnaVsxDnki9Eism4zZVvgApl2Kn84ftO0p+aBZINnkwzsoRlfnUCM.XRA1c+8VsRQzuQJyzFx3Mm4znVNbq0KCfXB0HX4LI7TLI5q3wljZXRicnjRC8LF3elhwtzHgQGQVmrYtnTa8BleU8DZpo5ZjpP.C+CxMUwjtvd17kcgTlpMe8ladj8iMMMzNZJlIicvp49SZCvUR1ULHgNQB8aFRWizrwl0qWLkfOJgtCmA6.Pk8DrZWrI4uZQ4GNwGdIULDBNqAN1GB12ZM63Oh7jbIe7qVi73EBlDtgkspwZ5ncE7dRV74rWap4b+Kt0hAy3EKDEaXQQ9SOAzuZDTFqYw4zxMtp3oCrmpFlx1mJDWBmjpHxxtFr86WzE9x6RbyTiHAO5JV7jjTzvqQG.L9TpIoAr4ROVM6O6JTJclcuFRLFAdzlfe1bMxF1YNztbo4TfcdJMPTBNWwNTbSYW+1kaJYAYf8.0JQsn7Ffq4.XFIr95fBoJAqw.MTJTrn2LKmlMUSX04rL02pDHv52WHyq1OEZmCGosQe5Urc0FdWdDmJvdkgYLtDKYxUCXcz9mOr+kLsUKGuaOBQCdp6353wnzWiSiMD.T05qSFjcjcRpEZfP2OH0J4OEYZ0AEPKyMkHfpSaiLTXDMkQZ9o3OCcqMNxK518.lc2g8FeHFQONt1jV9Sl5h8OfvbqlMQuHzkjvbFANraRowwYzET1Ig78m7XHyHyfIy7jbCTiroHSmo1qRJcBuD1W5J2OcNXnyAcalLkK1x4hHEKwVskvtc.KCENIJB00JMy550LZLkwMdoU7lIq6uXHt7s5lh41XJl6y9+LmyMPm.9NYi7FvgzLv1sovLUG1GuZUXS7hQGLLMAGw1bCK1YhTlqjd9XoTihb5ntEXyYNqLOvBc3t41cq5101tpbqFrQzv9s0L7bmeIabZs5P4Qy5NrcO5aUBPZVe00rbH8cM1BlUDS+90pqbWMzErs71tHbbQAlELYOSxiZ8psvx.qhNtjbEabQhJRXtYY62ZU.Sl76L8EW46JA1oyBRgQEla4e4FjV1x0+b6aelaGCU5j5HCUvNYV81getm7hcMuSlISqEwMVUdyryFErSdSxsm4X+H+L8qKLSJzDi29saez6joxV36hpln1B3pLclse3s5q8Vo29LMWJo0L88ruC6sa7kczMA1tBa8U4lJkOJIdKJyej7iVJs85xOWYthvqzO88DDb+tFiH2KsWRQk7XI27hAL4a5xM7xdSe7RZN9.pghWtPlLPuAL37lHD7OfcMOh4tpgvfCXoWYTCr5lc5XO+esI69xxtHB7kH83w3cFWzS060EWXyGry3xOLBeMhIB92WtSh8kGJT4y2AN.sZT9wnAX8tAva7QJD7yfaAcp6tILGic38GHXGJulI.R2hw+.vxcoCElboSeIempjpAIJIOp7MfcFyn485wzkw9bcncMFfxJj796bFSvnkuMuOXmSf2NhpAdh8.4hVemuGq4Fu9SAN3RvZJxOeu85k+k8sW6tOndvKsq4Pcd.bVtNpg5HFr5Rna.1KyeIrqi64l3ytaMVFae3+BexFrE9re1fsxG7Gk0nOMRq95HWWZLO8crR.+VZ++JEFbJ9LokmsyMXWPyFM8vMd95nHjheDzrc91rwCvlMe.173GfM+sGfMO4AXyG8.r4iWnM3MHu6PipuqjCDz9P61Y99GJoP1qMS26+we6NjC
-
@natan Yeah, you have to fix that, maybe you should treat the keys outside as real note on & offs, and have the
Message.makeArtificial();
inside if statement? I don't know, you try and let us know what you've tried and how it goes.
And consider also the note off callback, it must be treated the same way I guess
-
@ulrik Definitely will be trying this ! :)