HISE Logo Forum
    • Categories
    • Register
    • Login

    Changing the filter mode from a ComboBox

    Scheduled Pinned Locked Moved General Questions
    12 Posts 5 Posters 1.3k 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 was brought up some months ago. There is a mismatch between the indexes which I believe was caused by new filter types being added and Christoph trying to avoid causing backwards compatibility issues. The current work-around is to do it via a custom callback.

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

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

        @d-healey ok so what are the values I need ot set, and where do I put this "custom callback"?

        HISE Development for hire.
        www.channelrobot.com

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

          @Lindon

          Ok well I found this:

          Link Preview Image
          How to control modules with scripts

          A scripted interface for your instrument is pretty useless unless it can change the parameters or data of the modules in your patch. Basically there are two ...

          favicon

          Forum (forum.hise.audio)

          Which is helpful, in some ways. It tells you how to set a value IF you know what the "magic numbers" are - sadly it is not uncommonly pretty poor at telling you how to find these magic numbers.

          oit says this:

          "But there is no need for magic numbers, there are several ways to obtain the index:

          In the development tools area, there is a searchable list with all modules. You can right click on a module and a popup with all parameter names and their respective index should popup."

          but of course the world moved on and there is no "searchable list" that I can find. In tools menus or in the UI...

          So for those of you wanting to set the mode of a filter here's the code you will need:

          const var yourFilterName= Synth.getEffect("yourFilterName");
          
          inline function onButton1Control(component, value)
          {
          	//Add your custom logic here...
          	yourFilterName.setAttribute(yourFilterName.Mode, <a magic number>);
          };
          
          Content.getComponent("Button1").setControlCallback(onButton1Control);
          

          The magic numbers seem to be:

          0 = Biquad LP
          1 = Biquad HP
          2 = Lo Shelf EQ
          3 = Hi Shelf EQ
          4 = Peak EQ
          5 = Biquad LP Rez
          6 =SVF LP
          7 =SVF HP
          8 =Moog LP
          9 =1 Pole LP
          10 =1 Pole HP
          11 = not assigned
          12 = SVF Notch
          13 = SVF BP
          14 = Allpass
          15 = Ladder 4 Pole

          -- who knows where Ring Mod is, anything above 15 seems to be unasigned , anything below 0 crashes HISE -- you were warned.

          HISE Development for hire.
          www.channelrobot.com

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

            @Lindon Ringmod Filter is 17 ;)

            develop Branch / XCode 13.1
            macOS Monterey / M1 Max

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

              @orange thanks mate - I tried 17 and it didnt seem to work - but clearly I didnt cause its working now...

              HISE Development for hire.
              www.channelrobot.com

              1 Reply Last reply Reply Quote 1
              • Christoph HartC
                Christoph Hart
                last edited by

                const var list = Engine.getFilterModeList();
                

                the object returned from this method contains all filter indexes as constants. You can use it in a combobox in conjunction with an array of string like this:

                const var list = Engine.getFilterModeList();
                
                const var myIndexes = [ list.LowPass, list.RingMod, list.Peak ];
                const var myNames = ["Fnky VA LopazZ", "Ringmod", "Ultra clean super analog style peak PULTEC Simulation"];
                
                1 Reply Last reply Reply Quote 0
                • d.healeyD
                  d.healey
                  last edited by

                  Oh I was late getting back to this post tonight. Seems a solution has been provided. For reference though I will include a link to the related thread - https://forum.hise.audio/topic/877/filter-mode-dropdown-bug/6

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

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

                    @Christoph-Hart It seems the getFilterModeList() function isn't working properly

                    This gives a no iterable type error.

                    const var indexes = Engine.getFilterModeList();
                    
                    for (k in indexes)
                    {
                        Console.print(k);
                    }
                    

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

                    1 Reply Last reply Reply Quote 0
                    • Christoph HartC
                      Christoph Hart
                      last edited by

                      The object that is returned from this function is not a standard Javascript object, but a special object with read only properties.

                      I didn't add iterator support for it because it would defeat the entire purpose of the object which is selecting a few filter types that you want to show. Relying on the order and how many filter types I have added to HISE is the exactly why there is this object :)

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

                        @Christoph-Hart Ah gotcha, I understand now.

                        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

                          i want assign Biquad Lp Rez & Biquad HP mono filter mode on button.
                          see my code :

                          Content.makeFrontInterface(600, 600);
                          
                          const var list = Engine.getFilterModeList();
                          
                          const var BqLPR = list.BiquadLpRez;
                          const var BqHP = list.BiquadHp;
                          
                          const var Button1 = Content.addButton("Button1", BqLPR, BqHP);
                              if (Button1 == 0)    
                          {
                                  Synth.getEffect(BqLPR);
                             }
                             else (Button1 == 1)  
                          {
                               Synth.getEffect(BqHP);
                          }
                          
                          const var Filter1 = Synth.getEffect("Filter1");
                          

                          For now button switch with Biquad LP & Biquad HP (no Biquad LP Rez)

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

                          12

                          Online

                          1.8k

                          Users

                          11.9k

                          Topics

                          104.0k

                          Posts