Changing Hise Legato To only 2 Octaves???
-
Hey everyone
As The Title Says, I Need to Change The Legato Range From All Notes To Only 2 Octaves,
Starting From Note 48 To 72.I Don't Want to Affect The Other Notes.
Is This Possible?
Yes But How?Thanks for advices
-
This is The Code From Source On
HardcodedScriptProcessor.h
class LegatoProcessor: public HardcodedScriptProcessor { public: SET_PROCESSOR_NAME("LegatoWithRetrigger", "Legato with Retrigger", "Enables monophonic mode and retriggers the pressed key if there was a key release. "); LegatoProcessor(MainController *mc, const String &id, ModulatorSynth *ms): HardcodedScriptProcessor(mc, id, ms) { onInit(); }; void onInit() override { lastNote = -1; lastEventId = -1; possibleRetriggerNote = -1; possibleRetriggerChannel = -1; lastVelo = 0; } void onNoteOn() override { int newID = Message.makeArtificial(); if(lastNote != -1) { Synth.noteOffByEventId(lastEventId); possibleRetriggerNote = lastNote; possibleRetriggerChannel = lastChannel; } lastEventId = newID; lastNote = Message.getNoteNumber(); lastVelo = Message.getVelocity(); lastChannel = Message.getChannel(); }; void onNoteOff() override { if (Message.getNoteNumber() == lastNote && Message.getChannel() == lastChannel) { Message.ignoreEvent(true); Synth.noteOffByEventId(lastEventId); } int number = Message.getNoteNumber(); int channel = Message.getChannel(); if(number == possibleRetriggerNote && channel == possibleRetriggerChannel) { possibleRetriggerNote = -1; possibleRetriggerChannel = -1; } if(number == lastNote) { if(possibleRetriggerNote != -1 && possibleRetriggerChannel != -1) { lastEventId = Synth.addNoteOn(possibleRetriggerChannel, possibleRetriggerNote, lastVelo, 0); lastNote = possibleRetriggerNote; lastChannel = possibleRetriggerChannel; possibleRetriggerNote = -1; possibleRetriggerChannel = -1; } else { lastNote = -1; } } }
-
Here is A Legato Script Made By David Healey, But It Affects All Notes and It is
Not Like The Bult in One,And Once I Release The Second Note It won't Go Back To The First Note.
PS "I Changed The Fade Time, To Make It Faster"HiseSnippet 1035.3oc4W0saaaCElx1ZnxcoXcnnXWpArKb.RBrV61ZQQPShicgwhSLhyx1cErRGYSDIRMIJuYDj2w8nz2fsCojhjS07bMvRA17Ulemyg767KoFGKbgjDQLwv5hEQ.w3yMmrfKm0aFkwICOlX7HyQzDIDamAczhHZRB3QLLZ9FEfgUKh926e8Qz.J2EJgHjKELW3DVHSVhN9fejEDLf5AWvBqn8yOXnqf2SDHRQ9zzrKIh5dEcJbJUoVCShwm02iIEwSjTIjPLZcjvawjYheimo+krD16B.0BGxDbixfGHB7TLV8eRuYr.uwE9cBgXXNtLJzLKJ7DyQLO1s3kQiuPKvtzhpwCiFqhdNUoW2ZomSMziTgcsxXGRBgWZ.UtLyToibALwxYpgbIvSXxEUSWeRo6iMGyjtypmuMpguXh5ea9lm72xruuO3JKIaKyA+x8al9QYT4glSXbP2QpIxS0qs+Y5bv9M.GhUAUmUzT9GqaSYzZ2TdlqDO9Kho7jHQxRa7DHjcgfqhHkf+TBLHF90yUY4p38Dz3ZE89WO.cxZsYBUlFqKWNLTjxkKUdzbsyIUGNrbWSE8qYRQqOASJ9HFjY7g8dO1bhaLKRVJQwsGXF.SwRmk3TlhjFW2vLFlZCyAtbnm89169xW9psZqvBvaBNUHgbP+TtqJnYK3Jzy3c1dq1WuUaqQ3Qgys2KjdEbXrj4ybYzfNaiaCJk4a2QWRuGK4DMOTs6wyUZfafkZGzJUPguVebJQVVYFR87tTDjFBpB1B81w1o6N165zsa9AUqxEbaJH6mYWms2wVYHdDu5i1J8YYci97JCY0otRuJAvJpnPNMM7cPrVqatab02uHvphJ+MFZu+92letMJl4J7rM4nEEbImnEgo6lpsrtShNyCqxqdBtLVDDnN41W21p8MssqHVMCodI4F1gqo8N1XVOEtUQrtc4FiGtdMF3HJ7BCYEEE7gbl7rHH+oAEkne.hueUnR+pJp1cpQsRnU2YR5kwO0zvgGSkTUyZNFpWDf8HJu03XXNNZNq00x7XH4JoH5d7I.MWu6w9Gl8XUvwIrvn.nOeNDfNolieI5U9zz.YA5x2dMRvEQyDbla0Q6mCxX1zoPbUtWqCcnThuYrD4IGbND.zpWS8MGbBd8BMFiSvFFKbV+XwpxWekYFcsU0W1+23oaM++4S2NWjJY7oinXg5uieRANUdB9hIW.YBmCA3AYZzPMIHacW05rmLw8zK9S7WtPG0ZibgNEBuWNiPpar3stYi2T0xOPif9MW+QXV3WChqscH5A2nclc2qKIDepyaccUg6cw3S817safMOaCr44afMe2FXy2uA17CafMuXk1ndk4goRQXVqHBLtu9JFCi9bJVIqq5I+E.ysMjw
-
@natan said in Changing Hise Legato To only 2 Octaves???:
Hey everyone
As The Title Says, I Need to Change The Legato Range From All Notes To Only 2 Octaves,
Starting From Note 48 To 72.make an if statement maybe?
if (Message.getNotenumber() > 47 && Message.getNoteNumber() < 73) ==> then apply the legato script?
-
This post is deleted! -
@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?