HISE Logo Forum
    • Categories
    • Register
    • Login

    Drum Mapping- user defined

    Scheduled Pinned Locked Moved General Questions
    drum mapping
    40 Posts 5 Posters 2.7k 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.
    • d.healeyD
      d.healey
      last edited by

      This should point you in the right direction...

      HiseSnippet 813.3ocsU00aZCCE0gRlFYioUo8Cv6MPpEBc.cRUUqs7wDZkVznqZuU453.VMXG43zNzT+Ou+AaWmDJPaEClzxCHtebrO95645AJIkEEIUHqBWLMjgrds8voB83ViIbApWaj0ar6ShzLEN00ISCIQQLOjk0Ve13vpPdTx2u9zIj.hfxl6BgtTxorS4S354dGbzW3AAcIdrK3SVH65G0iJEsjAxXfOaY6hBIzaHiXmQLokyFY8hNdbsTMTSzrHjU9SjdSGNVdmHM+K4Q7qCXFiZngvBk5tqLvyvXiWTqw7.uAyN2QHXUFLuJrUZU3c184d7G7OuZ71j.34HVrdXkaUzq1emdtOG8rVfd4So211CoJdnddDC2dkcOAbQ4SfqfEoUZtnbUyY2RBYHzUlPtg0UAFOfnTSW2cvMbcKePQmhNvEQjFeKQgmPBwGh6HFwErJTECNZlRvo7HcozbqV8XOOLQH0ig1j.HOruTgYD5XL3jgmJiw2QDZrVhULXAK5.+TIhoujDDyJUuwN3lvFiqVsmHLVik935MfcUFqyLa59HLM.1t+dKiog6RX1eO+XAUykBrTbFPjyEkJ67yhNX3qOT2fVqJ7QBoh04VnpTRqhYlijItSAtOtjYKGMaKmAAbXVsyhmbMSUpbY76ODuasxo3xV9E2hnkxesVxxGjrJ26buyiOC99lCgSgkCYtXUxf.C5mF0nyTq.VIQxFuCbgCrZVdP61x8yuX85mooMYKjnTzSv0mGxxrWsfDk0kB+6a8ZSzDiHHyGjWHSo4F5X0lcKLcIURTvtMK5FsLDlu7D8BnZkdwAD8xRYy7qr.P4XIMiQWHh35oKNeaCz2tq83m0ktaaOfqoied9l6Y3KT09ey2rokEs636yn54jMuc2u+uNZbCnxWAwNWLpOQq3+.YYC5mgviGTFvDgfE.ajsUNSGUpsqw1TYFxDdIF+F9xBVyXakEr1rfnIDpRdEMUnXlG+xDO.mDIOKU.deDrw0PIhmTdOAlPdEkZJD6BL+4Qr2Fi3CaLh5aLhFaLhlaLh82XDebEHLOGcbrVNIUV.NFzIYrgkUGAA5pR5.Q+A+yFGd
      

      Libre Wave - Freedom respecting instruments and effects
      My Patreon - HISE tutorials
      YouTube Channel - Public HISE tutorials

      gorangroovesG 1 Reply Last reply Reply Quote 0
      • gorangroovesG
        gorangrooves @d.healey
        last edited by

        @d-healey Thank you very much! Let me see if I'll able to wrap my mind around it ☺

        Goran Rista
        https://gorangrooves.com

        Handy Drums and Handy Grooves
        https://library.gorangrooves.com

        1 Reply Last reply Reply Quote 0
        • jssrecordingJ
          jssrecording
          last edited by

          @d-healey Working on a similar situation. I'm currently hitting C1 and can get the sound from C2. However it doesn't trigger that output in Midi. Example when I compile and run my vst the C2 notes aren't getting recorded. Here is my snippet. ```
          HiseSnippet 3766.3oc6c0zababFlqsYhWUqz3fTfhfVjoJoFRMtJ76kabS7Zs1xQNV1azp3lhhTapcmcWBykjgjqjUbEpaQRCZ6gzq9l+Izis2L5oVfbnWZOmdon.8Rt1SsyvOVNjKoVtTKcTRnBhr4vYd3y77Ny67xYFNtkkQGnssgEUkpauuIjpxYnauutyflCTT0o13xTUNK85auI3xViFZ6nXAjYnVaeSEaaXWpJUN4UwYqR0SQ49ymew0TzTz6.CShh5VFpcfWWcnpSXpsZ7VpZZqqzEts5PhbKzXiNF5MMzLFgnzIoYnLU5bWk9vanfy1Inop7TWoqpigUaGEGnMUkSslQ28aOvXOcu7eKUa0czf3KXoZi.xK40Mz5hYLNUplCT051JnpaSQU4zsBEhS5IDOO8lpcUGmdnf7rt2.DVBR8nxINL5wRROlrSuJDz6Tdz6rzs6XoZ5DdGL29Fzan6.s5ofLAjzxKuTm3uJP2z.kCcmUGpbW35VnKFWhkYYXXNOPjgYkKr3B3+6UeUPanCXCcaGj8GUJzkZvNNfaonMBt3BVv9fNirrP2w6FaYrG30ALWvuv+zq09l2.rohM5IbKCMDDu2hKDP.aHl7lPKGUnMhICwYd4kFRj6kNO39Kt..rjkRWUiqZYLxboWCrDyRm2M06guPhy+p8wWwxvszhKbfWE.0Tx1ArKpUKInHBFPg9PmlFCMMzQWD6IGJA65lPaM0tPKVRPibiTQMRt7gMJnboAJWl.kKQP4SCT9LAJehfJjFnBYBTgDAULMPEyDnhIBpTZfJkIPkRDzZoAZsLAZsDAUNMPkyDnxIBZ8z.sdl.sdhfxxjZqelr07mIYbSuWUF6Vkb+J1T6XwlsdVrAcsBQ4tv82TwrkhNTKUHHxSJkesQNNF5D.nzsqWZAk16Jj+OjCYlUh5OkLGS2eZL7lp+z5LLjNT43DBcnF3Rrklx9.+JAK.mlptlpNDzajdGGUTpF5ln73kEVLCsLzVtSfFcdjVfF.YkEWvkN.fZOvxSNPxqCXW493aieB3+zMzjUwHeCCG3xBxmGvxUCyMxb486C.PMaXpHysB39jYOFzRLwfNCPxe3PViKBjGPl0CEWgCGWYg33VEYvtvjVJtoZo3NRVpzrR0mcobZVG14u0gufrNhYz5vOUqCeQXcDYl+VGt4u0QnfrNRYz5HLUqiPgXcXm+VG94u0QrfrN0xn0QbpVGwBw5vM+sNByeqiTAYcjyn0QZpVGoBw5vO+sNhyeqSsBx5TOiVmZS05TqPrNByeqiz725HWLVm5LYz5HOUqibgXcDm+VmZyeqS8Bx5vlp0I38L7lYLGU89.mAPPGEMscT5bWPOCK2DHrg1q5VhjeWQh2RZoUvuBmu0roOfKmzKRgI1zfia5vwMCvwOc33mA3DlNbBy.bhSGNwY.NooCmzL.WsoCWsY.N4oCmLAbdsVyzbSlDrQxxDvdIMsfoDlXRh8Hwpo64xqHtk3v8dQ1I8Udk3ckIuahc0eCTOc+N5g4D+SBSZMaRdQNTOmSB6TlJF6wU6MFpz2c1sWxnWOTt8lElCB73DE4o52c9yEVwXrYlbZO+4COCAexDKDJ.VHHxFxB+1IiGYHsNtp3V4dT6v53NYWhU7GvwCb7yhnWDdbpapub3X7j+1s6tsgFbUSKUDG1DZaipMXhgK2MFMbGn0xqDUOwBYJYD7FHqpD3bmKTGSKm+HjxK3kMRCPlYT0vxDaP4TI2qjPCfe.Z76UVIxn3QaGLTwDaKbWGqk4QANJHuxEPzbCcyQN.id.A7pOXLxw+RIljPId0ZIc3d.cD4.Kgo0ry3wBvAY0zfc.DFNi+OktJKcUdbxUIHN9GD0ck+By5EkAfEf2UA.e2fn7DV5ozS.0IFjXcgzkEhgX7iFYCFMOmAwbKBHnaLPmBYjXdRRlf+ZbwjKhXld4xf3VOm0GthPbYWATzrgH0owFthmMyBc3OdQGghiNjiEGsgOerF9j4cpLVLuLluPDPoiWzo1ST5D2vJD0vlm9qhL4sFHLkZvr0NSjsv3QtrrhbOY4SbSq3bvzlaeehYvzlg5fzbnNjaGlRESyBwBiOYSSqcz0zZ4tocs7UGlJg3KLBkO9HTf7IcSq7Q2zJmalKWLlVYwBiP4iOROY4Sbab8n13WBzdfgkCXaKUE89ZPTBW2Pu+3qyU26bK40Knt2REFgxWa.4hhO4iN0KV5jdiQVl3sF2VY3NFirvqSwKAZprihsR97Ck63hYYJnFgEGixTGeV1CQqyU27b2JlksXj35LEFixlDyEWhapoXZi9yqNR0xHepbt6bxxUPpLagwnzlMsC7V2k3q4RudKuxB2egpKbvBjqGiu7qgI730jI1hCrQzL5t2vOHxS.+wPYcX3urtqnDYMRqZumpSmA92BkVUbhUw+eGEaXjsK9qgS081UwJtWQvBLYlFCQUhcxNVbWdoc897kVJf.WvMa3eg2jDUGOMyGAf+djHuiET4tWXL93ecfqnAnpbpneoUzo+kVQ9gf0waVsIxng9F5pN2zDpm12eEk+TgSQU448MDnr539cX8L9eGVd0PJ0tTUVjlXM+nbqNjehbToAgWCVWHdFZxOFoY.iHzfXmibzgfKND95xL.A+QGBgiNDhGcHjN5xYsiNDxyPEgns02jNxD2DAj67vG9ROd1AIpjB34uPN.Ipndmd+Klb.RTY8we5mxkCPhJrM506b4.j5wYBal.4YoiFFVTaLO+KmGTh18uAO+KlGTxoGfmglbLfDv3c13xJNJ3OyUe+rgK2HJsKC2UsCz6idsJ8kg120wvjpxKLdKVPU4zdO6E8e1tqGo6i9rz3cXQeKiQ5c8R8djO48IuXO0tNCFmPiOow.nZ+AgeyxM9EM5op4+gH+8oueqst40tRysu85275W9Jacv5auYv2HsLyZWcUS89TNv6gJ+2hfD+XEMMSETkCqbi4e0z4erUYkf++keaiP9+ngDj6Emfb9nLruKshVSotV7Z5msSCU6MgNJsTrP.hFFxafQEMyAJiy0C1qAYcXgLNbXXE3djUfFVMhQq2NNsdPyFpNvgAeb3mgVfqNKqrTcIApgJcrLF2V7rz2v.rIYRHwAYZPDySESv9op6GBh+lWy09YXn4nZhUT+M4VW0d8f3EPGXiMmfcTzuq8pQLlKl0A0QJwonk3vsBooYY3lfjmaBRR9kT+V5F63xRTrVswkxNTLMiIlMtUbwjZ6FcsT5eYUKnaHlHCH8sv845nnQYiBNxMh4VFliPU+mldMnlwdTlAwDsQ2jNW.LCZtfu8SQ6dz.zE1SYjlW72Ad1+j+7e+hYsoCYHL2irwQXSm+V7lNOdqIps0arS+fFNKPyJUqVMNVQJx1SUo44EEED3861tHcKhmc9Z.QVKe5LFkUXsrQ2YtV9jhl7jzz7XKMEHno4tGaooHAMuyO+XKMkHM5+xiszrFAMeyO7XKMkIn469weAPymKiAxR538AZDD8wuS7wreq3D8w+rIHJXBht2.jeX7YAiUhim8nG9eaOSCVcocL1E5l91HO4qYbOu272VYW3F5srf1PGuTFZz0OnxNp6.0nFRdV17Sd7PkHQKhF50rs5G.GSqG9mtn8nd8TuGd.bP20PkuaWMDOrU8XYPYceGjYV2IGJ3yeeBcm5Vw082bhFHuWotmWcmbrsGM5PauWp6YP2OalmIhvGeq8+xqte7VkIi0f5fRUtXTYxPkd2GTpxEiJSFoGyuhPkePoJO+TYx.UO8GVpxEiJWmPk+rOpziw7RkmX9zCe9+wOtTlKHYl7cF+8+lRYtfjYxWQbvuqTlmMY9LQW1E2cif+zzPr+DHjX.jbEKh+V3C90wk3GYEaEK3kEkqIVWRlgXpm4hcmvYpFuDG0jYqyvfRVQSyXufOZXa7vG3O99vDvyZMYAkqIyHHIvRsavFgHTAwqz1zW8IWYXnh4Dqb1RjSFw2ogoBdEQHWBjH5m2zoeBZpvUn5ElngFp.1Ir3TO9ihqof2uQ1lqsXK6naaCjR5sbKbbBwdROXxNHWMuSx1jmVuOK8lFcGoo3D8fDFuDI92.2Nk7D6Eep7piZ+tO4NDnPNcgyJcOKcK79LJY9dhD3KpcVQyW+yp4EouRudHGPgj8Tzq+tE+AyLIU9tdT44nQdHgJHOX8aqLzTC5cvLuXvJHxBZxk1In8C9Ou8+N1Inci+4G7gWLoSPayLeBZ2xBpYnzkviItiUi0FgWJyno9GZ39ntzPiQ5QdV9UksflPEmM87VO1Ju0VtmjnwK0meQ21KaagbOgTCxabScHR5cHAookgscOT0wEKaxa0ZjUerVQ7Dg6Bsril1MFMDY90QdbvaFrJUvar.aH1bq1YSETm3Hig39TX1Vw0ji7M4dMarq4hcMerqEhcsXrqkhccsvq8DTj6IxFG2l81nFGw2XaOc11XaA9aIx4Zp8G+b7Rgr47XE2kUDGg5Ib.j+TGqOezex4v8jYitS4HbuZ.GaqhsNWQeWTOTTJXN9bnffbWx7fTYivxMMzMLGXnq1IZ+AT6698waTiPtmXE5RNNntigo77M1B0zSwlnC8K235p5PEqncymIsfM6ZwgYu91zdzEfcwA9pw.km7q8CTdXRGJNNWGV.zS2x4Xtc9Lztd0A3Ag+hhpaYLBeHzEL.GMZTv1nQ96.IGK7D3wW8tlAeMlPsg5ccu3+g9w+lrACbhuIavMo5D.Ept4+2c2vdUNITGOzga7eZngj0h7VZ9uQFZvtbDlDGnIeZgIcmd89GY8enQN1DlzoaTFlz7JLItaiZbTFlTYXRDgIwUFlTYXRkgIUFlzWqBShGzTXd7uGakgI8UyYSRnLLoxvjHCShuLLoxvjJCSpLLouVElj.noXYXRkgIkVXRhkgIUFlDYXRBkgIUFlTYXRkgI8k3vjdRvR2ycga2w6TV.y0S6lBhk5tazupztGCCfwG.IzzLqxf2elp2tSGbGgeHRgStLb4nL74nLB4nLh4nLR4nL0xQYjOzxfCS3RibLF54jDkPqq30vpxUF2v5jT+evcstv.

          d.healeyD 1 Reply Last reply Reply Quote 0
          • d.healeyD
            d.healey @jssrecording
            last edited by

            @jssrecording That's way too complicated to debug without knowing the code. Write a simple example that has the minimal amount of code and widgets to demonstrate the problem. Also, post snippets in code tags :)

            Libre Wave - Freedom respecting instruments and effects
            My Patreon - HISE tutorials
            YouTube Channel - Public HISE tutorials

            1 Reply Last reply Reply Quote 0
            • gorangroovesG
              gorangrooves
              last edited by

              I wasn't able to get it working when I tried last time around.

              Goran Rista
              https://gorangrooves.com

              Handy Drums and Handy Grooves
              https://library.gorangrooves.com

              1 Reply Last reply Reply Quote 0
              • jssrecordingJ
                jssrecording
                last edited by

                Sorry David I thought I had it in code brackets 😬
                Broke it down.
                All the code works and triggers the sound from the other note. However I can't get note 36 that I'm hitting on the keyboard to print note 48 when recording.

                oninit
                
                //Play Button 1 
                
                inline function onplayButton1Control(component, value)
                {
                    if (currentSelectRow == 1){    
                
                    Synth.playNote(48, 127);
                	
                };
                
                // Setting the callback for the Play Buttons. 
                
                Content.getComponent("playButton1").setControlCallback(onplayButton1Control);
                
                
                function onNoteOn()
                {
                
                
                    if (Message.getNoteNumber() >= 36 &&
                        Message.getNoteNumber() <= 44
                    ){	
                        Synth.playNote((Message.getNoteNumber() + (currentSelectRow * 12)), 127);
                        
                    }
                
                }
                
                1 Reply Last reply Reply Quote 0
                • d.healeyD
                  d.healey
                  last edited by d.healey

                  @jssrecording When you say print note 48 - what do you mean? The only reference I see to note 48 is in your button callback which isn't linked to onNoteOn as far as I can tell.

                  Libre Wave - Freedom respecting instruments and effects
                  My Patreon - HISE tutorials
                  YouTube Channel - Public HISE tutorials

                  jssrecordingJ 1 Reply Last reply Reply Quote 0
                  • jssrecordingJ
                    jssrecording @d.healey
                    last edited by

                    @d-healey This is the section that multiplies the * 12 from note 36 to = 48. It's in the onNoteOn section.
                    But what I mean by print is record a midi note on 48. It currently records note to 36. Which I know is obvious because I'm hitting the note 36 C1 on the keyboard. But I want is it to record note 48 C2.

                    Synth.playNote((Message.getNoteNumber() + (currentSelectRow * 12)), 127);
                    
                    d.healeyD 1 Reply Last reply Reply Quote 0
                    • d.healeyD
                      d.healey @jssrecording
                      last edited by

                      @jssrecording There is no MIDI out from HISE, only audio. So you'll only record in your DAW the key that you press.

                      Libre Wave - Freedom respecting instruments and effects
                      My Patreon - HISE tutorials
                      YouTube Channel - Public HISE tutorials

                      jssrecordingJ 1 Reply Last reply Reply Quote 0
                      • jssrecordingJ
                        jssrecording @d.healey
                        last edited by

                        @d-healey Okay thanks David! Will probably do some refactoring with my sample structure layout.

                        1 Reply Last reply Reply Quote 0
                        • Dan KorneffD
                          Dan Korneff
                          last edited by

                          Here was my solution to custom midi mapping

                          HiseSnippet 1836.3oc4X0sSabDEdWLaRX.GkzzH0dS0VSu.ZAhW9IglnnXv1PoI.VwDZkpqRW1cLdD6Ni0tiIPiPpR8cnW1mkbQe.5iPeDxaP6Yl8e7ZhcRHsREYALmYNy7c9Nyb9wM7XVXeelmh5D6cZWrh5TZMOkx6TsiIgprUME0qqssoOG6oGHZ8S6Z56isUTUKroPf5DiqH+40OZcSGSpENQjhx9LhE9IDWBOQZiJOl33rgoMdOhapUubksrXzpLGVO.OEzJqz0z5HyCw6XJV1XZJpWotMgy7ZxM4XeE0wWmYeZyNrWPCV+9DexANXw.CklvFEHdClis.wBoJU6PbraDY29JJpZMRXgBArvGqsMwlDKOgMtgbB8DMRyGpicQvyHM7JmK7JmG7TSAuwCf2M0ZZ4Q5xSlQfsI01hBNp1lfKHMrBVqh5qzpxfEP4K3ZdDdCOXPrByrT4xyouX4xy9f18nVbBipyn6v33coyLK5knIPmgzO+Tsam6bhiwi43f8xcZgW26hTbFZO2CvdyoeroSOb7BAyOK+pMX9Ms62JvpSsPFcKJguaWLcPWJTBoJf+KDhJ31GWx92Nj8WqmMg8clGiay7bUH1haGYjYnHMfzuG7LoGhA76A9CM0XI0o1hw+zennzl3DdgeZsp2u0y7wd9sr64yedqZX+i3rts7oldXiEdg4wA3TBtBAf6FgfqJy8.15rSj3ZRsng8AoW+nQcKV77aw0pn7rspYxMEWVC4MfK6h83DgaRsF9XHJPvU2IzBsBIw51kQErr5UGYp8jzz5ooG7BhMuSrfW4UoClbXmTAfHU5F4p2xV7XWt05Ogw5p2vw7Trm3JQB3PCI0l.o+xtRBjpzrhq4IB+6TvnLG8sB2xj.JFPPOOv8CuKEK.Ii2HdroP3XWfM+LspnpSipgpMMpNZCzFSi1Ds4zn0PqMMZ8HiWS8qgyJxv0T+BEkLlzjCoqNEKSSYR+RyJilcLkzN10hC9uHK4S0leQz7FnxHCzhnkPKiVAcWz8Pqpvwm.XrXBNl2PIjBmLwAqotbFarjL4ReAKgP1L6dNl7rwwEIuBm.B9jIfoHpH0mvOM8yj24f64FlYHg6M0ZP3VcxGuikCdgmhW13MLUYQs5sais3IfcbsM992u4EeSP4VQPQ9PV7NFGjRL2m1CtDl+bXKgo6PWBCTMkE31xDwU5K2yCJtgPOL8QIfYcpIvE1oE+TFiKCAjpDplltccBxj.aelUiOFRYjcG1XjRp3J3jfrSgu5DIlb.vkIykiDswItTKLzdYigu5mwurJNqvvAu2kBxxKpXNElM1uqooCWa74PAOd5QA7eLkcf9C0ipYyz1VHYlRomuzbkmCJYqH5N2Q+G91l6tSFs+whnHs8woRICk94JV742K8WVDoqWxkXa6favfHJPjlR2Wedi4DS.SAMBzsI4mwfvRFKTtTjb3ZBHxXojE1qcahPVo30.E135yAKdKWnldwTv0PcabaydNbce3sP7RcHziv16wj5WDcVjEdm7Lwhn94tr7VTZjD6ErUiUFD0M7zVBkEX+KFY.xLbBzWsEs5zsn0fOvep2htA7A9uMgOveVC9.+Y8Aaj4XfAYQuHSLXE.5DU02uQFL8vYlwaUFC0nOCc9EaQm2nEsbKJ7aXvRsnK2htRK5caQuWK5p4ahwPoHhPA2NNocfHF3YcsgWr5yXEU8RTeAEQuL.Eo87eiHbhGPNQBV3PLeew5mYV840MdPVUBN+XklIQ14zaV8uzXwGHvoP8zWAErWvBOGF9p9NgYkavYxeGw8vwDWWVpaVyJ11vJyqZ53b.jsXlrThX2F7tD53Fx8Y.M8QZCTBD4BdvJNBwT6H6MCHkO+gYogD9Z1.RJz6H4qv8fbHk4gqer.kbudxiVL+YWT2kCV4+k56D89puyHxNRRYkXSOsnD6JsTo4jyxRDMjs0F1120CyV0zg.WUkcBbcszd3y222pUFtVGS0CyaYymY5d3Rn6yqLrLvIQ09bZz+DkQDFqAYDCJXZhq7qQUd0+o7l3H4Y7aoOiv8bpvsb3ZDbXO4Lbq7rmSs+ydxrm8fac6CWCXu8EvMVi99ZOApgHJntN8XrCb4QhwOBtsHqNIRZ1x21lQYc6vnDqrkeC03b3gXuzXOWCZMNGBFmUWGroeltOdBjSzz67cPboVLat9qOQK.t5hvN5+mpw4qF.aj19fSxRb5B.e63g5wliwaFsPMo6YJgShOXKv86wy1QUMrE4.rSVGS+cc+V6Xdu7MCT3+mey.Ok0iCcVusI7RTDQCJYoIzPtEFPBkhcDe0wpiIBNGLtbTvtlXpsbveC+DNogXrZ3jFQS9A4LbMs7XO2JHCo3w50jR.6lJ6keBssEi0i+RcEbCz8F44VVBxddCEk70XwQVikFYMVdj0XkQVi6NxZbuQViUu.MDoNWqGm4F7zCDzntrVDU03uGG0BJ+il.K1k
                          

                          Dan Korneff - Producer / Mixer / Audio Nerd

                          1 Reply Last reply Reply Quote 1
                          • gorangroovesG
                            gorangrooves
                            last edited by gorangrooves

                            @d-healey Hey David. I was wondering if you could please give me nudge here. I managed to get your basic code going (by removing "Ignore events" line from OnNoteOn).
                            What I am trying to accomplish is to have a note transposed to a user-defined note. I added a Combobox with ID ComboBoxKickMidi. The combobox contains a list of notes that can be selected (C0, C#0...).

                            This is the jambalaya code I came up with which, to my surprise, is not working 😂

                            OnInit

                            const var map = Engine.createMidiList();
                            
                            //Add another line for each note you want to remap
                            
                            map.setValue(KickNumber, 36); //Set kick value
                            
                            const var KickNote = Content.getComponent("ComboBoxKickMidi"); // Declare combobox
                            

                            OnNoteOn

                            function onNoteOn()
                            {
                               
                               local KickNumber = Message.getNoteNumber() + 1;
                                
                            	if(KickNumber == KickNote.getValue())
                                {
                                    Message.setNoteNumber(map.getValue(Message.getNoteNumber()));
                                }
                            }
                            

                            The error message I get with regards to map.SetValue line:

                            Interface:! Line 1217, column 13: API call with undefined parameter 0
                            

                            What do I need to change to get this going?

                            Thank you!

                            Goran Rista
                            https://gorangrooves.com

                            Handy Drums and Handy Grooves
                            https://library.gorangrooves.com

                            d.healeyD 1 Reply Last reply Reply Quote 0
                            • d.healeyD
                              d.healey @gorangrooves
                              last edited by

                              @gorangrooves

                              Line 1217, column 13:

                              This implies you haven't posted all of the code... I have no idea what that error is referring to because I don't know what's on Line 1217.

                              Libre Wave - Freedom respecting instruments and effects
                              My Patreon - HISE tutorials
                              YouTube Channel - Public HISE tutorials

                              1 Reply Last reply Reply Quote 0
                              • gorangroovesG
                                gorangrooves
                                last edited by

                                @d-healey The line in question is this one:

                                map.setValue(KickNumber, 36); //Set kick value
                                

                                When removed, all other lines compile OK.

                                Goran Rista
                                https://gorangrooves.com

                                Handy Drums and Handy Grooves
                                https://library.gorangrooves.com

                                d.healeyD 1 Reply Last reply Reply Quote 0
                                • d.healeyD
                                  d.healey @gorangrooves
                                  last edited by

                                  @gorangrooves What is KickNumber?

                                  Libre Wave - Freedom respecting instruments and effects
                                  My Patreon - HISE tutorials
                                  YouTube Channel - Public HISE tutorials

                                  gorangroovesG 1 Reply Last reply Reply Quote 0
                                  • gorangroovesG
                                    gorangrooves @d.healey
                                    last edited by

                                    @d-healey If you look at the OnNoteOn section, I introduced it there. It is supposed to be a numerical value that is calculated from a note that user selects (ex. User selects C0, it gets turned into midi note 36).

                                    Goran Rista
                                    https://gorangrooves.com

                                    Handy Drums and Handy Grooves
                                    https://library.gorangrooves.com

                                    1 Reply Last reply Reply Quote 0
                                    • d.healeyD
                                      d.healey
                                      last edited by

                                      @gorangrooves said in Drum Mapping- user defined:

                                      local KickNumber = Message.getNoteNumber() + 1;

                                      I'm currently making a video on this exact subject!

                                      A local variable only exists between the {} where it's declared. It is local to the code block. So you can't access that variable anywhere else. You need to declare your script-wide variables in on init.

                                      Libre Wave - Freedom respecting instruments and effects
                                      My Patreon - HISE tutorials
                                      YouTube Channel - Public HISE tutorials

                                      1 Reply Last reply Reply Quote 0
                                      • gorangroovesG
                                        gorangrooves
                                        last edited by

                                        @d-healey I understand. Thank you. So, I would use this in OnInit?

                                        var KickNumber = Message.getNoteNumber() + 1;
                                        

                                        Goran Rista
                                        https://gorangrooves.com

                                        Handy Drums and Handy Grooves
                                        https://library.gorangrooves.com

                                        d.healeyD 1 Reply Last reply Reply Quote 0
                                        • d.healeyD
                                          d.healey @gorangrooves
                                          last edited by d.healey

                                          @gorangrooves Message.getNoteNumber(); only works in on note on and on note off.

                                          You need to create a variable in on init. Something like this

                                          reg kickNumber

                                          You should use a reg variable because it is more efficient for variables that will be accessed in real-time callbacks such as on note.

                                          Then inside on note you will save the note number in that variable.

                                          function onNoteOn()
                                          {
                                              kickNumber = Message.getNoteNumber() + 1;
                                          }
                                          

                                          This - map.setValue(KickNumber, 36); - won't work in on init though because kickNumber will be undefined.
                                          So you'd probably need to set it in on note. But if you're doing that then there's probably no point in using the map variable at all. You might as well just use Message.setNoteNumber(36); I would think.

                                          Libre Wave - Freedom respecting instruments and effects
                                          My Patreon - HISE tutorials
                                          YouTube Channel - Public HISE tutorials

                                          gorangroovesG 1 Reply Last reply Reply Quote 0
                                          • gorangroovesG
                                            gorangrooves @d.healey
                                            last edited by

                                            @d-healey Thank you for the explanation. I will play with and report back.

                                            Goran Rista
                                            https://gorangrooves.com

                                            Handy Drums and Handy Grooves
                                            https://library.gorangrooves.com

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

                                            25

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            103.1k

                                            Posts