fix idea for poly glide script? (it holds this note only)
-
The bug or unwanted behaviour is that only when MIDI notes of same pitch overlap - it holds the note for infinite. (freezes it)
Hey there i am using a MIDI-Processor script that bends MIDI notes.
Simmilar to a pitch Envelope.reg midiList = Engine.createMidiList(); const time = Content.addKnob("time", 0, 0); const amount = Content.addKnob("amount", 130, 0); time.setMode("Time"); amount.set("min", -12); amount.set("max", 12); amount.set("stepSize", 1.0); amount.set("suffix", "st");
Any ideas are welcome - i am not experienced using the MIDI-Processor!
-
@Straticah What does your NoteOff look like? It probably doesn't have enough time to register before hitting your NoteOn again. You may need to write some type of exception:
// Pseudo Code if (lastNote == currentNote) { triggnerNoteOff }
-
@HISEnberg both look like this:
function onNoteOn() { Message.ignoreEvent(true); local nn = Message.getNoteNumber(); local id = Synth.addNoteOn(1, time.getValue() ? nn + amount.getValue() : nn, Message.getVelocity(), 0); midiList.setValue(nn, id); if (time.getValue()) Synth.addPitchFade(id, time.getValue(), - amount.getValue(), 0); }
function onNoteOff() { Synth.noteOffByEventId(midiList.getValue(Message.getNoteNumber())); } // Should i try like this? if (lastNote == currentNote) { triggnerNoteOff }
-
@Straticah Ah I see. Is this the whole script? It would be easier to test a snippet.
I think the issue may be in the NoteOn actually. What happens in your example is when the second chord plays G5 it overwrites the first G5's event ID. So when the first chord releases, it can't find the original G5 eventID to turn off (and plays forever).
So you might need another variable like existingId and use it to kill any notes that already exist.
Do you have a minimal snippet?
-
@HISEnberg Yes, here is the script in a minimal setup :)
HiseSnippet 1442.3oc4X07baSDEWxNalX2RmVlxTNpIvAYHjwxIMIPGl3lDm1LstwTGR4VYszJ6cpztZjVGpggYX3D23OI5QNxL7O.24BG3N7VsR1RNJNdb+fAvGxn8su2t+1euO12lNgbaRTDOTSu5IiBHZ5WE0cDSLX+AXJS6nCzzuFpMNRPBMTh1aT.NJh3noqW9dRA5UVRK92er6dXOLylLQjl1obpM4gTepXhzNMe.0y6PrC4DpeFs2r4Q1b19bO9P.OkQ00Bv1OC2m7HrTsRHs6iiFno+AHRO7lttMZr0l02BS1YidMrrcI81hrs8NaX+w81d6FN8buMXzxsbnBdXWAVPhzzWZOtyntC3eESsAmRin87HxAVZcgcVI9Ptmi7HJ+Va+ATOmNoDUjllNpyDZqrh1tIpM0gNV9D565wSXLwhrDndo7vqbN3YcQvq.HUJCjVRAoaf5ZGRCDSlQhmqfNhAdSWL3mxBEktZ5u.sOGTfIV2G+LxggvfwFXtU85qY.+o1cbGxrETNyfydDWPNlYVq52TsR0uspwzS45V3bxsIj64QBKbZYnQ3rLzjMzuGIbMiyvdCIiUDN944zkmON0VcpynHmcDiJNNfjLdRPgUAd.sDZC95yO5.r.CNE8DYfdAjPAUBG8CHmAoDJWTEzAjnmI3APRwb5+VAcOOpCwpHmWITYTHougODw8PZjv3SMZw5SYj0sCI.azNQtYs6TsJbfAMD.MCpk5ywNNOfw6YtpT9pqY.tavYmnK1mOjIJRa0Lf9VajXQU4BrdDQzl6PLWU5MWEDqTTJ2bUeJCr3irZLsb7ykqzzhgZPAcoesDUVqWe5IG55RklAps5EFc1FnQnbx5z9LdHo0YvYvTDBAO.dq3wswdFLFb9R0qOQHM+QwAZRRqRpZTGPs3BkRRHYOrVKlNklcpLlzrlwtxE7CSXtrS7IvDqkciNk.qLULxrlh.qj5DkGPkURKnNJXPcMLmZypUsRkwPpCUXOPVh0j5bNXAr94gjZamQ9qZsYJQ6MJl9NxwbLNGuTW.8U6bK+apR.nWUk.lUZudoDTApJhSfuVRBbWYBanFERUWFIcEZw3c7EeeYPSs4v1UPJe1TVqY9hEphiDu9AblD75UtLD+bfE0k61nzO.+tiGoCOhJcJigSyerYZlZ1VCfj5wC+gesoJeEVJjgejlOTiPtSwsCnkAVqb4jQLv99r.qvsOtQkk+y+R8SglkuZRSJonYITjnnJwvc3bmgdXQ9K1ks+jLgjAxVPVdkICXlQYAwz21uzEGVVuvlQJL.bNg6MPwkDJFukJ.uxH5Wy3Mo2o2B0x0kXKl.1kPG9EyrQoW4P4VJnbEzSvmQhqzECj2IdrKOz23dDFITxoVynG3eYd6ANXt6A9XaA.gSBwrn.dDbwelUtKwmdBjqDkS5TVzHSL3OM1hFYs3.hXHK+RqDkpUyM138ZJohCApHqdiElY8tdyNXVtECFma+ZSSqF7c+9m8y61hgAmWWBbxcNNxFHFIOmM0oyPuHxSnNhAYV2eKi3FYEeebnC3CsyELWdtifxdmP9b7L5WPO3K+55YAuQKT7xWWq77A2BXP8LXrRJF6R8C7HsXmAcHARjX7sgawbwC8DoRymS1ly3AC3LZtHfGSDgz98I4BrJ7.cWg.d34DI2r4iIdDbTl7z2u4Cg9pwgsiu5Zg3Bq4mKlk+5cQJ3ZHKjX7ei6iJ++96ilcFJT+7eOd5agfZ5MLhc2F+y6ueLenfx52FCUCjMOBOOoKbYqMAPLiQ7juWPujryd035o8U1kvbhGH6fLYRK4X8jIsRm7Mxd3isC4O0V8tAYAiUhk.maV7+trJn1xwFVS+dg3V2oO01N+RcNCarnFtwhZ3lKpg2dQMbqE0vsWTC24xMT1YvcGJ39p7DncoNsheemttpSo3TFs+FfzGtmB