HISE Logo Forum
    • Categories
    • Register
    • Login

    Play held notes on Modwheel/CC like Omnichord

    Scheduled Pinned Locked Moved Scripting
    11 Posts 3 Posters 258 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.
    • 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

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

                @Lindon Im avoiding work.....

                HiseSnippet 2524.3oc6Z08aabbD+njOGS5OZyGEoOYrkODPYwPyiTTeXUGSqurUskEgohSKrMROc2Rws5tcYtaorXUDPPKPQ+WHuk+LZeon+ITf9Zenn.EnOlG56syt6cG2i7jDkfSiaaNHKc6r6LyuYlcmc18bq.lCNLjEXjqvNC5gMxcMy1Cn7tq10lPM1bMibW0baeJwoKKv0XkA8rCCwtF4xM8CDCHW9KYHe956shsmM0AOjjgwyXDG7iI9D9PpsZ9Hhm2F1t3cH9Zidtla5vnqx7X8AvLsYUid1N6auG9I1hgMkowCsC6Zj6Vl05rqSsNKTeQqkrVZg4Vxxpwh6NW0ZNtMVpd84q61o1h1yuHvzkW2kvYAs41bbnQtKsBycP6trWQUJ3YjPxtdXQCKi1flUj2f44JLQAUiU6R7baE6kBMLxY1ZnOaZkO68L2h3RRnOz288kcfFxgtCL2TmF7rzgW0IFdFZn6RJzAff412ylmFYh3WTGDFMEx1jxwzPBefd78aU391lsHbmtYi2ox.uPf5aZ7FE7ut45c5fc3CA6kL23mdQizYOQrZVSDyogkqpvxaYtF1ydfDEWQ8tUJjHIIV38XbGsEk2pYRGOkrW2T8rAF6tKrTTiiup2c+a2KltNC+7e2M+626wrW0BT3FA3OKQN+1+byGRFipwZM2hbXrP+xu72eucv98XPBHmTy7lNs6a5Iy8kQz6or9bBcusr4AB8Z9j99sg7MNXH3QoXOP3l4lxPvprcUQaAHZiotxF+K3IpSKQ6bQcZE2o9LjqbBoTul4pLJGZgCrdcjSs2DmScTW42kR76RI9ldJwKFTdeETtp4mXe.Vt9SBjefrcGVfO5AXX8mvmdZqA+Su9WCtsCGfvNA1zvdrPrktjai8I6vn3vTTGgiZYxQJpqg48ooEshTpQIbEa.tBswcklwDqoSrkMMkvf1ojzvz3xm0o1PvqMFrb2sCc.GivOquzoUeuP7mPb4c0j6eUibMcxOzNvM8tBFmQpLqKXprK+MUpromrI3mw97QIDday1NAjd7g8Hvy6FQcHhROyV0qwTO35lHHxDxQcwdtOgwg4xPi6hd9KWtPgntrCaAUDfGsaT.dOIaqx5SEDqFQa0UaCErCatpQyyNjqjhnOLzyGZAcEqht88sojP7yvdLGHUkPEVUpVtZkFMfeMecwav+VRznF7qErDuIPQZAzhAY5fLff.FUlU7vz83ciAdTuiB9Q4599hAHgZAzsuMxI.CQQDuKVnYd.yKD36y5SBvtUfmBh8ywTdEe68waD.MD4eC5.FcoEqVsLpV0pyrbAEpEGmZUwwofT2BeRLu1tfS0eW1JrCKUL4LWhAUrLpQYzbM.QDO3PrH32CGvIXnnJl+Oo81OYL1Np3gEuCpA3SKN.dYN4a91Bh0KW.kGgxW7UhUa.AKqpPuHTwtXQEc.kZyIHTLDRHrIsU.FzYw6XEwGLPBG6GBiqnXNBZ6.WbvKn2ODoB4uf9TapKy+EzhGOtsqEy0r+GQY6VRJt39KV1pd0xBS+5mksmlsitdA.ipmg137BabnEN2hRGBgV7N0i7LHXT0jDcc8RlYAicdg2PWngbbu1jeIVH2JUQfQhF0JkKdjS.OI6T0awx0qprxIwHi44nymEZ0nplMVU7jgY1PPG34zMzjNG0heXzJoz16J84bFUM8L0vJVtwjY3nr38nDydIK4T0zScKxwGJZTLgCwDQw54N8oNB6MTsBuPbajismyNAj81CGDVZFvAqmgrhiG1NnDHCEcsrH4KjGponD4tUWl7isps3xjYmclB4AAjmzojr7iJjvGgGrFrAPIxLPexNSK+d8C6BctbbGREL6rh1GWH+wB8pmlENFS2JAvXbKYUagaWJgkYDPDc7xIlEiJzw1zRyT.z5VvdC16gqP1ixBvqe.30KwC5iEJNsC.HL59.JPFKh8vbQGv4n1ECdFfgiKfFUsc5nz6YK6.rO6.7oHcg2bLt7hVgAQhHedF44AOXZnspJQtmPxBzIksllG1er9EZvB8AePpsMi09Gknb3GHIjsGhBCYy0VNoMuKIDVoAoIzoDmxRDcAHfxFCOy1qONBB0V.84eN5TGVryPMIK68gymseJ+wv4fwR9h.LzgZtVGOFLI+zT7sSleplECtzXg7Q2MK+l.i5JJig.XM+Hx5Gc2QqsPJmiJHkFr.GRhH2s9f3sYXcjs6I4PFYRTr1VQis8jvHiLMo8H.wXIhzFjxbNR7K4aipfTMu0X0c77TAjWpT4wp+D9Jww8PkRU9v3pVoVGaHEr0cTM.GBDnBYd3J8BHvh8h7fAhTHblzgffCUbmhnYimfBuUDQnHAorBYKGIV07avpT42DhRLzR5777HY9xxor8DYrKTY09KqA5ZuF.8Ijg3LA9n7ctAe82D73psEfZufZPKUsbVxaRLn34dx+lZdoZGowydnxQ3ybKkpmxiVl9LxLfCUhxXnpsJjWDI1ckAx8k1zsjxlKmUQU5y9UPZ7LcwIcEcebzFoirSf3.6waBj4dDknxc.JiNPnrjABGGK8Y7Lmrif5npzQafL5lTBe6dX5Id0FQkGAmG7RQnBFJO55gTmrK9zCFD33deOyTmEvPBcsyO2zXTwbiHwz1i.UxKExML0KpdDYz7mMQx3ZlCCXiHge8e3jkfpjQoDdWywR4Np4702y3i2bMats37xQtpgUQBzVCe.wAqN8bdy0vg6yY8j9R+dLpvwl6JmCuo1sc7dMGdGaewFMg5qglWd5H2r7LRF4to4vyHUH4HRETmPpfgrL1gR44MUExNTIKJbTIHsvjFvD2wcteEv+.wKeH7R5580+rbwU4q6T8kWE1kuYjwDYaGF0LMpMbGC0OLEpuwjMEQh4x4zvbHefXQzkMEGa5jrfew+3zrf+hYJK3q9Mxa02HremNhatZJSiNDO+PN.rM8ghaLx8NleLjP2E2wtuGGEtOHGOBcer6NL43OmF+actlcK8A+Scef3nLPf2LYHo0+e7YYMk4MgK99b7AslRCu4iwaaheOO75TQkb.EAdeGX8qLrDSM80bsEix50kAKW0utvmh4pidnaGYZb2mysc1WeA9SwvA+BGNu5K1p4iIT3rfxbAmhe4B+kpx5R+xL18CMUvEI1DC8F0GuH5qeUvLIcj5B3Sp+MwbrNazBKF2wVBG8n2AP9cAS52xsCYWrW5.igQrNkxPtOgXM7qsv0qkuYyz+e+2r4zSRsE4Pz+0704deysCcpgjgaz29w6+S7gu+eEc3a6Dv9z364GhHWQRA7sT4+UjxatknMxZrZpE0lP9TGmzhZLFqcQYr9Ekw4tnL13hx37WTFW3hx3hmMihOW286yY9p0hFFa0Zc0lA4TewR4xRi+MZn3w+.
                

                Now with playback mode, note velocity setting , note length setting and humanising...

                HISE Development for hire.
                www.channelrobot.com

                S 1 Reply Last reply Reply Quote 2
                • LindonL Lindon referenced this topic
                • S
                  StephanS @Lindon
                  last edited by

                  @Lindon

                  Hi lindon,

                  Sorry for this late reply, i had a lot of work the last days.
                  I can only say wow you are really great. Also what you have done with the idea :)
                  What do you think, would it be possible to generate new notes values based on the note values that are recognized? Predefine the new note values using an array and then push them into the list when, for example, note 60 is recognized and then play them?
                  What do you think?

                  LindonL ChazroxC 3 Replies Last reply Reply Quote 0
                  • LindonL
                    Lindon @StephanS
                    last edited by

                    @StephanS I really dont understand what you are asking...

                    HISE Development for hire.
                    www.channelrobot.com

                    1 Reply Last reply Reply Quote 0
                    • ChazroxC
                      Chazrox @StephanS
                      last edited by

                      @StephanS Sounds like you got a great idea! You gonna ask him to make the whole thing for you?

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

                        @StephanS said in Play held notes on Modwheel/CC like Omnichord:

                        @Lindon

                        Hi lindon,

                        Sorry for this late reply, i had a lot of work the last days.
                        I can only say wow you are really great. Also what you have done with the idea :)
                        What do you think, would it be possible to generate new notes values based on the note values that are recognized? Predefine the new note values using an array and then push them into the list when, for example, note 60 is recognized and then play them?
                        What do you think?

                        oh hang on like key switching for chords? Yeah that would be pretty simple I think - I'm sure you can work that out.

                        HISE Development for hire.
                        www.channelrobot.com

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

                        25

                        Online

                        1.8k

                        Users

                        12.1k

                        Topics

                        105.5k

                        Posts