HISE Logo Forum
    • Categories
    • Register
    • Login

    Play held notes on Modwheel/CC like Omnichord

    Scheduled Pinned Locked Moved Scripting
    6 Posts 3 Posters 85 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      StephanS
      last edited by

      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)

      LindonL 1 Reply Last reply Reply Quote 0
      • LindonL
        Lindon @StephanS
        last edited by

        @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...

        HISE Development for hire.
        www.channelrobot.com

        S ChazroxC 2 Replies Last reply Reply Quote 2
        • S
          StephanS @Lindon
          last edited by

          @Lindon

          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);
          		}	
          }
          
          LindonL 1 Reply Last reply Reply Quote 0
          • ChazroxC
            Chazrox @Lindon
            last edited by Chazrox

            @StephanS

            @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.

            1 Reply Last reply Reply Quote 0
            • LindonL
              Lindon @StephanS
              last edited by

              @StephanS

              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.

              HISE Development for hire.
              www.channelrobot.com

              LindonL 1 Reply Last reply Reply Quote 0
              • LindonL
                Lindon @Lindon
                last edited by Lindon

                @StephanS

                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
                

                HISE Development for hire.
                www.channelrobot.com

                1 Reply Last reply Reply Quote 1
                • First post
                  Last post

                21

                Online

                1.8k

                Users

                12.0k

                Topics

                104.4k

                Posts