Forum
    • Categories
    • Register
    • Login

    Builder InterfaceTypes

    Scheduled Pinned Locked Moved General Questions
    51 Posts 7 Posters 1.8k 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 @David Healey
      last edited by

      @David-Healey yeah maybe , meanwhile the feckinn autocomplete is a pile of doggy do...

      HISE Development for hire.
      www.channelrobot.com

      David HealeyD 1 Reply Last reply Reply Quote 0
      • David HealeyD
        David Healey @Lindon
        last edited by

        @Lindon said in Builder InterfaceTypes:

        autocomplete is a pile of doggy do...

        💩

        What's it done?

        Free HISE Bootcamp Full Course for beginners.
        YouTube Channel - Public HISE tutorials
        My Patreon - HISE tutorials

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

          @David-Healey it works sometimes and the on others fails completely - only showing me the list of variables I'm using in my script.... its really really crap.

          HISE Development for hire.
          www.channelrobot.com

          David HealeyD 1 Reply Last reply Reply Quote 0
          • David HealeyD
            David Healey @Lindon
            last edited by

            @Lindon I find if you add a new object the autocomplete won't show anything relevant to it until you hit compile.

            Free HISE Bootcamp Full Course for beginners.
            YouTube Channel - Public HISE tutorials
            My Patreon - HISE tutorials

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

              @David-Healey yeah that I know, but this is a the same builder object oi have been using to build everything else with.....

              HISE Development for hire.
              www.channelrobot.com

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

                @Lindon ok here I am AGAIN, 3 times in one day....

                So does anyone know the correct Chain Index for the SampleStart modulation , not in the documentation(duh) and not showing up in the auto complete....

                HISE Development for hire.
                www.channelrobot.com

                David HealeyD 1 Reply Last reply Reply Quote 0
                • David HealeyD
                  David Healey @Lindon
                  last edited by

                  @Lindon I don't see one

                  abc572a5-6404-4ee7-aee8-fd335d2a7762-image.png

                  There isn't one for group xf, mix modulation, or some others either.

                  I wonder if this is what Direct is for.

                  Free HISE Bootcamp Full Course for beginners.
                  YouTube Channel - Public HISE tutorials
                  My Patreon - HISE tutorials

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

                    @David-Healey yeah - Im begingng to think this Builder stuff is a bit pointless - if its not all there then its not saving anything in the end.

                    HISE Development for hire.
                    www.channelrobot.com

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

                      @Lindon you can always lookup the chain index by inspecting the XML:

                      <Processor Type="StreamingSampler" ID="Sampler" Bypassed="0" Gain="1.0"
                                 Balance="0.0" VoiceLimit="256.0" KillFadeTime="20.0" IconColour="0"
                                 PreloadSize="8192.0" BufferSize="4096.0" VoiceAmount="256.0"
                                 SamplerRepeatMode="3.0" RRGroupAmount="1.0" PitchTracking="1.0"
                                 OneShot="0.0" CrossfadeGroups="0.0" Purged="0.0" Reversed="0.0"
                                 NumChannels="1" UseStaticMatrix="0.0" LowPassEnvelopeOrder="0.0"
                                 Group0Table="" Group1Table="" Group2Table="" Group3Table="" Group4Table=""
                                 Group5Table="" Group6Table="" Group7Table="" SampleMapID="">
                        <EditorStates BodyShown="1" Visible="1" Solo="0" MapPanelShown="1" BigSampleMap="1"
                                      GainModulationShown="1"/>
                        <ChildProcessors>
                          <Processor Type="MidiProcessorChain" ID="Midi Processor" Bypassed="0">
                            <EditorStates BodyShown="1" Visible="0" Solo="0"/>
                            <ChildProcessors/>
                          </Processor>
                          <Processor Type="ModulatorChain" ID="GainModulation" Bypassed="0" Intensity="1.0">
                            <EditorStates BodyShown="1" Visible="0" Solo="0"/>
                            <ChildProcessors>
                              <Processor Type="SimpleEnvelope" ID="DefaultEnvelope" Bypassed="0" Monophonic="0.0"
                                         Retrigger="1.0" Intensity="1.0" Attack="5.0" Release="10.0" LinearMode="1.0">
                                <EditorStates BodyShown="1" Visible="1" Solo="0"/>
                                <ChildProcessors>
                                  <Processor Type="ModulatorChain" ID="Attack Time Modulation" Bypassed="0"
                                             Intensity="1.0">
                                    <EditorStates BodyShown="1" Visible="0" Solo="0"/>
                                    <ChildProcessors/>
                                  </Processor>
                                </ChildProcessors>
                              </Processor>
                            </ChildProcessors>
                          </Processor>
                          <Processor Type="ModulatorChain" ID="PitchModulation" Bypassed="0" Intensity="0.0">
                            <EditorStates BodyShown="1" Visible="0" Solo="0"/>
                            <ChildProcessors/>
                          </Processor>
                          <Processor Type="EffectChain" ID="FX" Bypassed="0">
                            <EditorStates BodyShown="1" Visible="0" Solo="0"/>
                            <ChildProcessors/>
                          </Processor>
                          <Processor Type="ModulatorChain" ID="Sample Start" Bypassed="0" Intensity="1.0">
                            <EditorStates BodyShown="1" Visible="0" Solo="0"/>
                            <ChildProcessors/>
                          </Processor>
                          <Processor Type="ModulatorChain" ID="Group Fade" Bypassed="0" Intensity="1.0">
                            <EditorStates BodyShown="1" Visible="0" Solo="0"/>
                            <ChildProcessors/>
                          </Processor>
                        </ChildProcessors>
                        <RoutingMatrix NumSourceChannels="2" Channel0="0" Send0="-1" Channel1="1" Send1="-1"/>
                        <channels>
                          <channelData enabled="1" level="0.0" suffix=""/>
                        </channels>
                      </Processor>
                      

                      SampleStart => 4th child processor => 4.

                      const var b = Synth.createBuilder();
                      
                      const var sampler = b.create(b.SoundGenerators.StreamingSampler, "Sampler", 0, -1);
                      const var SAMPLE_START_MOD_INDEX = 4;
                      
                      b.create(b.Modulators.Velocity, "VeloSampleStart", sampler, SAMPLE_START_MOD_INDEX);
                      b.flush();
                      

                      Im begingng to think this Builder stuff is a bit pointless - if its not all there then its not saving anything in the end.

                      I would say 99% of the functionality is there - I'm building the full Triaz module tree with the builder including hardcoded FX modules, loading custom script processors, etc. It's just that the current docs are a bit sparse and you need to know secret tricks like this one but that is solved with the glory of the new upcoming docs.

                      1 Reply Last reply Reply Quote 4
                      • ustkU
                        ustk
                        last edited by ustk

                        Just a quick question without polluting the thread to much.

                        Is this what I need if:

                        • I want to create predefined modules only in "dev mode" (meaning I can use a macro processor during development and disable it before export)
                        • I want to add scripts to those modules (they would be scriptFX that are using their process callback)
                        • add/remove corresponding buttons on the interface

                        The rationale behind this is to dynamically create a set of tools (modules + scripts + components) that are helping me during development then throw everything away before export with a simple macro (or uncommenting an included file which is about the same)

                        Hise made me an F5 dude, any other app just suffers...

                        1 Reply Last reply Reply Quote 0
                        • OrvillainO
                          Orvillain
                          last edited by

                          If in doubt, add the thing manually, and fish the info out of the xml. I've got a tree builder namespace for my plugin, that builds the entire module tree to the spec I've laid out. It is pretty cool and powerful once you get your head around it. But I don't blame you for the confusion; took me a while to understand!

                          Now... SampleStart .... no... it doesn't seem to exist in the builder from memory. I'm sure I reported this before.

                          The most confusing thing is getting your head around the chain indexes. I wish the API was a bit nicer for that. It also is very crashy.

                          namespace BuilderModuleTree
                          {
                              const builder = Synth.createBuilder();
                          
                              inline function buildModuleTree()
                              {
                                  builder.clear();
                                  // Build stuff here - in my plugin, I have other namespaces like BuilderModuleTreeEffects and BuilderModuleTreeSamplers for example.
                                  builder.flush();
                              }
                          }
                          

                          Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                          Crafting sound at every level. From strings to signal paths, samples to systems.

                          1 Reply Last reply Reply Quote 0
                          • OrvillainO
                            Orvillain
                            last edited by

                            Also, worth remembering... a compiled plugin CANNOT use the builder - at least for the most part. So what I've also got is a PluginStateData namespace, which maintains a key:value dictionary of module id's to module references. This runs on plugin instantiation, retrieves all of the actual object references, and stores them in a const dictionary.

                            You should only use the builder to build the module tree. You should not use it for retrieving or storing id's or object references.

                            Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                            Crafting sound at every level. From strings to signal paths, samples to systems.

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

                            10

                            Online

                            2.3k

                            Users

                            13.7k

                            Topics

                            119.2k

                            Posts