Play held notes on Modwheel/CC like Omnichord
-
Hi Community,
What would be your approach to achieve an effect like the omnichord.
For anyone who doesn't know this:
I want to hold several notes and slide the modwheel up and down through all held notes and the same transposed/inversion notes.Is it possible to generate or trigger notes via the modwheel?
I found a midi cc to note generator module, but I don't know how to use it and the doc doesn't have anything about it.Thank you already and I am looking forward to helpful posts
Translated with DeepL.com (free version)
-
@StephanS use the onController callback, look for CC1 (the mod wheel) and use its value to decide which note to play in the held chord set...
-
Hi Lindon,
thank you for your idea. Do you have a snipped of it to help me with that.
it doesn't play any notes when I scroll through the modwheel.Thank you very much for your help
On Init var notes = []; var heldNotes = []; var modwheel = []; //Console.print(trace(modwheel)); inline function Omnichord() { for (i = 0; i < heldNotes.length; i++) { Synth.playNote(modwheel[i], 60); } } function onNoteOn() { var note = Message.getNoteNumber(); heldNotes.push(note); //Console.print(trace(heldNotes)); } function onController() { if(Message.getControllerNumber() == 1) // Modwheel { Console.print(Message.getControllerValue() / 127.0); modwheel.push(Message.getControllerValue() / 127.0); } }
-
@Lindon said in Play held notes on Modwheel/CC like Omnichord:
use the onController callback
I think in that case you can also do without the 'inline function' and just write the for loop.
Lindon will verify that if its wrong.
-
take a look at this ...your version isnt playing any note in the Controller callback...
HiseSnippet 1336.3oc6X8taSbDD+t3bHrKspzRE8iaQ8CWHoo9b9mSciZH1IfEXhUbJTIDBs4tw1q37tmtauTrpx6XeD5KPk5aP6r6ZGemwDRsnfJPT9Pl++amYm4lMsiE9PRhH1xtzwCi.K6q4zYHW1udeJia0rgk8m4zhlHgXhg0dCinIIPfkscg6pXXWbQK8O+0OsGMjx8gIrrrdjf4COfMfImvs8t2mEFd.M.NlMHi1quaSeAutHTjh3ofSYqHp+yo8fGRUpsfi08nI8srusSktm3Wo6VqU0aaus2Z8s871n5IqWthevFau1ZatVP2JUoaVEM5J6Gvjh3NRpDRrrWbOQvvN8E+J2DfGwRXmDBJBOqNXjMrOPDFnNhp+1pdeVXP6wIpDKKam1SRaELosa3zhEvNm+jz2mqEPlXQ1Dn8BWD77xBuxyDddy.dVYP2hFzgfPDjFRk4Qlp9MR.Sjuz1jKAdBSNLa88cJbutSalzu+rw6By.uXg5+Z7Np3+oN62sK3Km.1EcN3Wd6Vou5qn88ZN0EbIRAwduIZditzMu1E9Xu2G689Pn26lFn7INOldJn6+z.4qzzcEwCH2Ev9OUN8h5A+8278fG5KQHbbLkmDIR.urdtCLfcrfCI43NkEUloE431.jo77t1vJmVpTwAXpHidWc2wLqjkYaJOmyP5bdpE6EYI2mSwhWG.O4AGl3iIFUdNaqS6zvD3wr.Y+L98OxvtRV12iFGf0P+bWlKbouAkcTV9d7L5Oi4ZW4cvbs+Eicse4IEW2oieLKRNQhBae4HtSPW9q7FoVK7mEbHXIKQR5CgAOTHwK4HwNjm7zZkFIod8iiY85AwIYkEC8z1TWjxULKOhW85cv8EY7di3UpaJ2Wk3I9zP+wdxcoeqTwrgbU+PfF6tTsREyGuLBlJbEKUD6pcY6TtF6G8pTsFa4kWpTQzwEYcc0C.VkkbeXXCLq6xVBkoElOtQoI8Qg0FKPGfkWVQeVohmowyjSTKJ5zXTk.WuJa88tSrvaIkOL.xCAzN4hRHv6I6mAgScH0n37.cahFPmoOi3hCIhPX0nXFW5dKN5RRHZyObKxxDYL0GbyFJMLlxl50m1h7gWYC4rZmWoDbk2Nj6tTIDqsv6O35+qx5wEwv9mBnKkwofJP4qo0JcVIxzdoaWiatXUUqGEKBCgXi1kT0vwQtGHmH+goCNQoEYmcHdjQoS72PAFAhJ8zrQsyok8YIsEIXoapLNiG.u3vWQLdDMLEb0oRENF6juYGx24c90HSnPOatpEERGpNv4pFOYjoOcExlkMWxLZyMolF.ZEDr2PcZsYfqwoqPprQ4xFCT2BmJYo9dy37zLSitbcRZExopCx4JhCMxOUx4xMUBmCf6VHynnf2jyjGFAuxQoV0MFg+0O2rAURUiuFwC0KBhkLEDra.mhea0LLqnSCH44RQzawU3Jb41C40LMt3XL1gMHJD1meJDhGRMF+B7T0klFJGyM+r3VBtHpufyx8wti.o45ZVrOyCzcjR7A5S3bicOBvYlIYVI4a28A3SOnwXdBlybg2kOWbQ0qu1w.Wh5NL48iUuK7A+p2WbGJtp3+epz2zAWesBQWtIu6q2GIRk3FA3dGwpEtcvu90AeWgOfHlygP0Pb6ETiaMzkUzlWIvCzD+M9yHgdJZ6QB8FK78lXLf5GKdlu4SfpgRWUyAysb8+5xhNsTzDOK8mEyV7Ffax+Le+7t5kLrx7Z3ZyqgqOuFtw7Z3lyqgaMuFV80an5gV2IUJFX5EwWe1de8NE11lGdpaKs9GjyXSmC
its not over efficient and it seems to drop notes if you move the controller too quickly but it will get you started.
-
Here's a slightly better approach - its using areas of CC values as opposed to single calculated CC values in an array to trigger the note - then when its in the area checking to see if its already played its note...this helps with the inconsistent value sets you get out of most CC Controllers/MIDI systems...
HiseSnippet 1466.3oc6X09aSaDF2tsdBaXRiMlXe7FZBkRYswouurvJMoEhfPiHcvjPHzU6Kwmv4NK6ycDM5+i6Og848o8ev1ycmShcZHvhfMXin7gbOu96dd4dtKsi4djjDdrgoywChHFlWxpy.lHnd.lxLZ1vv7hVG0mQ8B3w9F6OHBmjP7MLMW7NRALsWxP84O9g8wgXlGYLICiGwodj6S6SEio1du6QCCOD6SNl1OmzarWSONqNOjmBfYQqxFQXumi6Qd.VJ1BVF2EmDXXdCqJcOwqR2sWeG2cc2c6M100cycNYixU772b20Weq086VYG7V6.J8IG3SE73NBrfjXXtz9b+AcB3+LS6fGQSnmDRjKbM5.dVS9PdnubKJoZTOfF52dXTJwvvzp83X1h5X1UrZQ8oinON18YJFnwZjO.ZtPQ3sXA34lGdkyAuyCIibHZIMh.Gy8SCwhhnQlyxXP4rBnoISPXITwf74z+wg3ksZSEdASGiKLELBIj2EXLKw9oVGzsKwSLFfKYc3O8tOKdgWQu3krpyYBXEI18sQyXzabyn4herW5i8ReH1KcUs6un0iwmRT8SJm+kp0c4w8Q2g.8SxX2r5o90298TG4I.HbbLlkDwSHt4sbGRe5wbFIo.0IznxT0n.0FDQJqno0jJHkLTbHDJxI2E1aHwJ4I1FyJXLXcAK0h9h7KOfggDVGBry8OJwCBLx3b91h1ogIjGS8EA4r6ukibk7juKN1GxgdEJZm4QSty4QSex6cGMYZd9F+Ka0wKlFIFyQhmuHi5XDUrxVy0Xge2xBAYlDAJfD5+.t.pkgE0PO4oUcx3Tu9wwzd8HwI44ES5ozoNOkIIVNiV85cfqsQY8xQKDmHZGhGP7k7H.mu0EX4zMk4IOVB4gC8F5jRK+KN14QypdgDbbokq5XWDJ4XLARrcrg95RzZkqR+d2J6TktxJK6XCF1l1sj5HfUoI2iLnAjDJQWF3oXVzuQoIA.ypCYnbvJqHWeli8YUcj.Z7tsEFrZLHieI2JauVoQprrzDZ73B3oVAmDRX8DA4.3D6QEHF4lafT34L0Vbs0f6BjvCIqFESYhRWiAFEEBZ8cWCsBRDCw5R4clBHmSq50mTmhPPpE5rpiRVblzdGwJsrCf2VP0EbG8Uo8X7XxAmR.SJhSIRWULsV04LGzjVoaWsYlsnx67DyCCIwZocjowgdtGQLl+CR6ehTJTsZHWz0uNZJAazsPkyB1v2PN3ajLz0rQ0QqEAzj17jpn0VCRsSjSnLexKN5UffGgCSIkjAMvXSFreMZHKOQyTH09px1nW9RzLESJW4Qk0SuADJiIvYrJIx1u.Gccb2PNTvNKWr1nhRcGBjQFZjaUaZgcIZx6noHBfJ6Ir0WWaxiOT1QAZ6IpjEwCjshBNJBDGACH0E0YlZEz0PTFRRZZvSsKr0EB.7zmRHMjTvB8QOIyhO8lnsJmomVbltltAQA28Gn5GZ5WRa0ahprY4xC037IkgEcNpfvYYmyLQuf7NECaClZWRIlpG3lnSkIpQBBSLJNFx5MaJILD.tmnHmfbVSFUbTDg8plcZTWqD7qerYCr.KmckQCjKhDKnRHX1fbJb+I8jLaqFjjmK3QeHbE7BihsGhwNz9QgjCXmRBgMoBieNrq5hSCECoVbPbKNiGEvYzBWn4gDg97l7XepanaKDXumOlxU16gDXpXRtqc9M6ce34h3XHNQlyXg6e6qkL070WYogKRVCi9v8oSK9+lmNM6tO3p9uemEupE7jiJHUpD8uSt7g7TALTBFpFKeXjEbAkNv6+7H.JYLX9KPybA4Ql50kkq0uli4qV7mvmLltx0lYLcGx7+L9nO1Kl+LO8XL4AKWPQAhsL0eArsUK4ZjqgZzV9DVe34WOyyqnoNmhUlWEWedUbi4UwMmWE2ZdUb64Uwcd8JJec7sSE7959OCiVsOPcu.SS8ePfpUz3u.TGfEGC