HISE Logo Forum
    • Categories
    • Register
    • Login

    Mark notes that contain samples by coloring keyboard keys

    Scheduled Pinned Locked Moved General Questions
    colorkeyboard
    34 Posts 6 Posters 2.9k 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.
    • J
      Jerems134 @d.healey
      last edited by Jerems134

      @d-healey Trying this doesn't work, now all sample maps color keys at same time, no matter I change sample map

      //Combo box
      const var cmbSampleMap = Content.getComponent("cmbSampleMap");
      cmbSampleMap.set("items", sampleMaps.join("\n"));
      
      
      inline function oncmbSampleMapControl(component, value)
      {
      	Sampler1.asSampler().loadSampleMap(sampleMaps[value-1]);
      };
      reg i;
      
      for (i = 0; i < 127; i++)
      {
          if (Sampler1.asSampler().isNoteNumberMapped(i))
              Engine.setKeyColour(i, Colours.withAlpha(Colours.blue, 0.3));
      }
      Content.getComponent("cmbSampleMap").setControlCallback(oncmbSampleMapControl);
      
      1 Reply Last reply Reply Quote 0
      • d.healeyD
        d.healey
        last edited by d.healey

        As I said, try putting the loop inside the combobox callback function.

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

        1 Reply Last reply Reply Quote 0
        • J
          Jerems134
          last edited by Jerems134

          @d-healey That's what I did ?! Maybe in the wrong place?
          Look code sample

          //Combo box
          const var cmbSampleMap = Content.getComponent("cmbSampleMap");
          cmbSampleMap.set("items", sampleMaps.join("\n"));
          
          
          inline function oncmbSampleMapControl(component, value)
          {
          	Sampler1.asSampler().loadSampleMap(sampleMaps[value-1]);
          };
          //->
          reg i;
          
          for (i = 0; i < 127; i++)
          {
              if (Sampler1.asSampler().isNoteNumberMapped(i))
                  Engine.setKeyColour(i, Colours.withAlpha(Colours.blue, 0.3));
          }
          Content.getComponent("cmbSampleMap").setControlCallback(oncmbSampleMapControl);
          
          ustkU 1 Reply Last reply Reply Quote 0
          • ustkU
            ustk @Jerems134
            last edited by

            @Jerems134 nope it is not what you did, you closed the callback right before reg i;;)
            Also you need to reset the previous colour for all keys before applying the new one (especially if the range is not the same). Use any colour with an alpha value of 0

            Can't help pressing F5 in the forum...

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

              @ustk is correct, you need to place the loop between the braces {} of the function. You have placed it after the closing brace. Also you reg i isn't necessary here, so you can remove that.

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

              J 1 Reply Last reply Reply Quote 1
              • J
                Jerems134 @d.healey
                last edited by

                @ustk @d-healey Ok, I've put code in right place now, but all keys stay coloured.
                How to reset the previous colour ?
                Sorry I'm noob

                //Combo box
                const var cmbSampleMap = Content.getComponent("cmbSampleMap");
                cmbSampleMap.set("items", sampleMaps.join("\n"));
                
                
                inline function oncmbSampleMapControl(component, value)
                {
                	Sampler1.asSampler().loadSampleMap(sampleMaps[value-1]);
                    if (Sampler1.asSampler().isNoteNumberMapped(i))
                    Engine.setKeyColour(i, Colours.withAlpha(Colours.blue, 0.3));
                
                };
                
                
                Content.getComponent("cmbSampleMap").setControlCallback(oncmbSampleMapControl);
                
                ustkU 1 Reply Last reply Reply Quote 0
                • ustkU
                  ustk @Jerems134
                  last edited by

                  @Jerems134 It is the entire for loop you need to move inside ;)

                  Can't help pressing F5 in the forum...

                  ustkU 1 Reply Last reply Reply Quote 0
                  • ustkU
                    ustk @ustk
                    last edited by

                    @ustk You also need to reset the key colors before the if statement in the for loop with an alpha colour value of 0

                    Can't help pressing F5 in the forum...

                    J 1 Reply Last reply Reply Quote 2
                    • J
                      Jerems134 @ustk
                      last edited by

                      @ustk @d-healey Ok it's working, thanks for your help !
                      Solved with this code :

                      //Combo box
                      const var cmbSampleMap = Content.getComponent("cmbSampleMap");
                      cmbSampleMap.set("items", sampleMaps.join("\n"));
                      
                      
                      inline function oncmbSampleMapControl(component, value)
                      {
                      	Sampler1.asSampler().loadSampleMap(sampleMaps[value-1]);
                      	for (i = 0; i < 127; i++)
                      
                       if (Sampler1.asSampler().isNoteNumberMapped(i))
                          Engine.setKeyColour(i, Colours.withAlpha(Colours.blue, 0.3));
                          else
                         Engine.setKeyColour(i, Colours.withAlpha(Colours.white, 0.0));
                      
                      };
                      
                      1 Reply Last reply Reply Quote 3
                      • W
                        WepaAudio
                        last edited by

                        just to thank you guys, I did this code above of my reply and did some editing for 4 samplers and 4 keyboards, I hope it help a newbie like me.

                        const var Sampler1 = Synth.getChildSynth("Sampler1");

                        reg i;

                        for (i = 0; i < 127; i++)
                        {
                        if (Sampler1.asSampler().isNoteNumberMapped(i))
                        Engine.setKeyColour(i, Colours.withAlpha(Colours.blue, 0.2));
                        }

                        const var Sampler2 = Synth.getChildSynth("Sampler2");

                        reg i2;

                        for (i = 0; i < 127; i++)
                        {
                        if (Sampler2.asSampler().isNoteNumberMapped(i))
                        Engine.setKeyColour(i, Colours.withAlpha(Colours.yellow, 0.3));
                        }
                        const var Sampler3 = Synth.getChildSynth("Sampler3");

                        reg i3;

                        for (i = 0; i < 127; i++)
                        {
                        if (Sampler3.asSampler().isNoteNumberMapped(i))
                        Engine.setKeyColour(i, Colours.withAlpha(Colours.orange, 0.3));
                        }

                        const var Sampler4 = Synth.getChildSynth("Sampler4");

                        reg i4;

                        for (i = 0; i < 127; i++)
                        {
                        if (Sampler4.asSampler().isNoteNumberMapped(i))
                        Engine.setKeyColour(i, Colours.withAlpha(Colours.red, 0.3));
                        }

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

                        19

                        Online

                        1.7k

                        Users

                        11.8k

                        Topics

                        103.1k

                        Posts