HISE Logo Forum
    • Categories
    • Register
    • Login

    Compiling Just an Empty Clone Container Fails

    Scheduled Pinned Locked Moved Bug Reports
    23 Posts 6 Posters 455 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.
    • clevername27C
      clevername27
      last edited by clevername27

      @aaronventure @Christoph-Hart @d-healey Please take a look? 👻

      macOS Sonoma / Various HISE Dev builds.

      HiseSnippet 1111.3oc6V0saaaCElzNLoIKccEn.a2MeY5PQfkiShC1EsINwqFaNwXJKn2EPSQGSDIRAIpj5Mr2s8HrGk8FrcnnrkTpbRlQ61tXx.Fh7bN57wuyebXjhwiiUQH7FmOMjivaRbmJ0S5NgJjn9GivqRNmGqQGMMjFGy8PXb8uyHCu9Jnzm+30GQ8oRFOeKD5Bkfw+AQfPmu6v278Be+dTO94hfBZ29M8YJYWkuJAvQcRSTHkcM8J9oTiZ0Hn2RimfveCo03QrVi2emNNG3bv9sOvwY2NiZ2rEya2C1Ym81wabqNz85.Fs5IdBsJxUS07XDdkiTdScmntUZcvEhXwHetYgCxE7rc6dJeOyQzrKp6Dgu2vYDTLBgICyoq5V55EjABOw78yosuHUPibKJRf3ZkgW8RvyoH7ZV.dU.IbAHshEROm3xhDg5bIF77Yj9RMOZLEhSEghUWD92HcUfBR81Azq48hfEyMXq8Z17UMf+d42NNQxzBkrgRdpRyOSt0K23W1X8M90MZbWQiGWoLiahT997nJEaRMhtOC2RlDLhG8pF2P8S3yUDN9k4Txh4zhgbl8TWPQkruTnOKjKWTh.Jipf29o9GS0TSfHaOPuPdjVXf.9X9MPYfMrrN4Xd70ZUHTH7AwLHaQ4k3S0kSgLEZYB.NnTbyDbjwB8zhEhezxqdrP74jgBMaR0XrVEXDXpOEXLqZ7ojSFOlyz4.bERu28oozqn6exL26J7MISlNnot+YY6zHcKm6oK5u+X6hF9n6hhqeeMAcVxlfq7etlfeLpmp8+0S+KWOU0nrOmLT4O0NhB7qA.eY5VgSTRAqgURiduyoxYZeMop4GEFYPdzX249ot7ABmx02phtN8.k8NBulA4eEILRDGzWxd6zQQBOHHyMiAQG56qtM+Tk4adTrI9iWizba3mUqtpfPQVlAjPXWxgviTx8OLPk.X.Sv0.f.2Y5bpv2nlaRLLMy6LYZyHSKFSb6Tv+vEk5QY.ELcHEZYA4el4gPvlGsMadPegHOmzM7h85ZKTYi+l0dhfQorVPfg0LWwCW2H2Rao.KkyViv7URNZwfLUbU3Xlol3YWyawVh8gfQgA31bRyJnhqlAOaR5GegQJi5itvbAjrTh6.9UMJ+TKBtjYRWPO.OW0Qn7GnHv2jztUm8On09sa2tZZDMjFAeD3FbYk1+8NTPJTwO.t17UvgafPloFg3.olCnueNW.EJZdnq3mmK0d6ySSBxhBkL8X9XZhutzdnE4qlk7EgzBVWk2f4vg9Bsq3JY9Ixp9c8WqR9aYopiTpqCnoU8K2MB+QUhVHuZ.UGIdOfKfsbg.MaVoc7rp5r0Mmk65B00oK9S3ISniYMNSnyLg+i3i.JKRcIy1o0PfOIcGHwPllQuNYfYcCGzMVxKeNV.bSgKYrxepOvvVKqg6rrF1dYMb2k0v8VVC2eYMryCan4hbGlnUA1gOHzfgmjlniwmHovTxzIun+Bk4oc+B
      

      c46280c4-06a6-4152-99c8-8ad15fb42d01-image.png


      5c6c22be-f026-45f9-a27d-b93ffbb0aed3-image.png

      d.healeyD LindonL HISEnbergH 3 Replies Last reply Reply Quote 0
      • d.healeyD
        d.healey @clevername27
        last edited by

        @clevername27 Fails for me with this error

        /HISE/hi_dsp_library/node_api/nodes/Containers.h:116:49: error: ‘const struct scriptnode::wrap::clone_base<scriptnode::wrap::clone_data<scriptnode::container::chain<scriptnode::parameter::empty, scriptnode::wrap::fix<2, scriptnode::core::empty> >, 0, 1>, scriptnode::CloneProcessType::Copy>’ has no member named ‘isPolyphonic’
        >   116 |     bool isPolyphonic() const { return get<0>().isPolyphonic(); }
        > 
        

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

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

          @clevername27

          The project builds fine here, windows - latest HISE build:

            include_juce_audio_devices.cpp
            include_juce_audio_formats.cpp
            include_juce_audio_plugin_client_utils.cpp
            include_juce_audio_processors.cpp
            include_juce_audio_utils.cpp
            include_juce_core.cpp
            include_juce_cryptography.cpp
            include_juce_data_structures.cpp
            include_juce_dsp.cpp
            include_juce_events.cpp
            include_juce_graphics.cpp
            include_juce_gui_extra.cpp
            include_juce_opengl.cpp
            include_juce_osc.cpp
            include_juce_product_unlocking.cpp
            include_melatonin_blur.cpp
          C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\bit(11): warning STL4038: The
           contents of <bit> are available only with C++20 or later. [D:\Hise_Work\test4TheDoc\Binaries\Builds\VisualStudio2022\t
          est4TheDoc_SharedCode.vcxproj]
            include_hi_snex_60.c
            include_hi_snex_61.c
            include_juce_gui_basics.cpp
            test4TheDoc_SharedCode.vcxproj -> D:\Hise_Work\test4TheDoc\Binaries\Compiled\Shared Code\test4TheDoc.lib
            include_juce_audio_plugin_client_VST2.cpp
               Creating library .\..\..\Compiled\VST\test4TheDoc.lib and object .\..\..\Compiled\VST\test4TheDoc.exp
            Generating code
            Finished generating code
            test4TheDoc_VST.vcxproj -> D:\Hise_Work\test4TheDoc\Binaries\Compiled\VST\test4TheDoc.dll
          Press any key to continue . . .
          

          and the DLL build fine too:
          93e98263-6698-406c-949a-6df3f2f2f837-image.png

          HISE Development for hire.
          www.channelrobot.com

          clevername27C 1 Reply Last reply Reply Quote 1
          • clevername27C
            clevername27 @Lindon
            last edited by

            @Lindon Thanks, man. That narrows it down a bit. (I'm on macOS; @d-healey is on Linux.)

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

              I just tested on MacOS and get the same error.

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

              clevername27C 1 Reply Last reply Reply Quote 1
              • clevername27C
                clevername27 @d.healey
                last edited by

                @d-healey Thank you.

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

                  @clevername27 I also get the error on Windows.

                  @Lindon What commit are you using? I'm using 04c8d6c3

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

                  clevername27C LindonL 3 Replies Last reply Reply Quote 1
                  • clevername27C
                    clevername27 @d.healey
                    last edited by

                    @d-healey I've all tried all of them from the past few months.

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

                      @clevername27 @Christoph-Hart Well I finally hit the same road block before plugin release...

                      I have a clone container with linkwitz riley filters
                      It does compile without complaining, but it makes no sound

                      As soon as I remove the clone node and just put the filters as is, it works

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

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

                        @ustk different issue I think, although possibly related. But here we can't compile a polyphonic clone

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

                        1 Reply Last reply Reply Quote 1
                        • clevername27C
                          clevername27 @d.healey
                          last edited by

                          @d-healey Did I answer your question about which versions well enough? I didn't mean to sound flippant—just that I really have tried them all (including the version you mentioned).

                          d.healeyD 1 Reply Last reply Reply Quote 1
                          • hujackusH
                            hujackus @d.healey
                            last edited by

                            @d-healey said in Compiling Just an Empty Clone Container Fails:

                            /HISE/hi_dsp_library/node_api/nodes/Containers.h:116:49: error: ‘const struct scriptnode::wrap::clone_base<scriptnode::wrap::clone_data<scriptnode::container::chain<scriptnode::parameter::empty, scriptnode::wrap::fix<2, scriptnode::core::empty> >, 0, 1>, scriptnode::CloneProcessType::Copy>’ has no member named ‘isPolyphonic’
                            >   116 |     bool isPolyphonic() const { return get<0>().isPolyphonic(); }
                            

                            I'm trying to parse this error. Basically, some code tried calling isPolyphonic() on a clone_base struct when isPolyphonic() is not defined for that struct. This is probably a runtime error only seen when compiling clone containers. The location of that code seems to be in the Containers.h file within the container_base struct.

                            The container_base struct has a protected member std::tuple<Processors...> called elements. This is relevant because the error is referring to get<0>().isPolyphonic() and get<0>() is defined further up in the Containers.h file
                            as (i'm not sure which one)

                            template <int arg> constexpr auto& get() noexcept { return std::get<arg>(elements).getObject(); }
                            template <int arg> constexpr const auto& get() const noexcept { return std::get<arg>(elements).getObject(); }
                            

                            so get<0>().isPolyphonic() is kind of equivalent to std::get<0>(elements).getObject().isPolyphonic() which breaks down in English to get the first object in the elements tuple and ask if it's polyphonic. The error leads me to believe that there is a clone_base struct in that elements tuple of Processors and clone_base doesn't have function isPolyphonic().

                            clone_base is a struct defined in duplicate.h and does not seem to have a polyphonic anything related, so I'm guessing there shouldn't be a clone_base struct in that elements tuple. So I'm thinking where does it get in there? So I'm looking for where clone_base is referenced and I stumble on this alias definition in processors.h

                            template <typename T, int NumDuplicates>
                            using fix_clonecopy = clone_base<clone_data<T, options::no, NumDuplicates>, CloneProcessType::Copy>;
                            

                            which means I can cut down the size of the error message to this

                            /HISE/hi_dsp_library/node_api/nodes/Containers.h:116:49: error: ‘const struct fix_clonecopy’ has no member named ‘isPolyphonic’
                            >   116 |     bool isPolyphonic() const { return get<0>().isPolyphonic(); }
                            

                            I don't know how all this helps anyone. Does anyone else have a different error message related to this problem that I could look at to look for clues?

                            Check out the music of Conway's Game of Life - https://www.youtube.com/@hujackus
                            ConwayMatrix - http://hujackus.altervista.org/conwaymatrix/

                            clevername27C 3 Replies Last reply Reply Quote 1
                            • LindonL
                              Lindon @d.healey
                              last edited by

                              @d-healey
                              Im using

                              c808118776c8f41f5f718faa4f9af3ea5313ba72

                              from 17th feb.

                              Im also doing this form a completely fresh, new and empty project...

                              HISE Development for hire.
                              www.channelrobot.com

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

                                @clevername27 said in Compiling Just an Empty Clone Container Fails:

                                @d-healey Did I answer your question about which versions well enough? I didn't mean to sound flippant—just that I really have tried them all (including the version you mentioned).

                                I was only asking Lindon because he said it worked for him.

                                @Lindon said in Compiling Just an Empty Clone Container Fails:

                                form a completely fresh, new and empty project...

                                But you're using the snippet Bill posted?

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

                                LindonL 1 Reply Last reply Reply Quote 1
                                • HISEnbergH
                                  HISEnberg @clevername27
                                  last edited by

                                  @clevername27 I was curious about your issue here so I tinkered around with it, and I managed to get this to compile (based off of your example):

                                  HiseSnippet 1111.3oc6V0saaaCElzNLoIKccEn.a2MeY5PQfkiShC1EsINwqFaNwXJKn2EPSQGSDIRAIpj5Mr2s8HrGk8FrcnnrkTpbRlQ61tXx.Fh7bN57wuyebXjhwiiUQH7FmOMjivaRbmJ0S5NgJjn9GivqRNmGqQGMMjFGy8PXb8uyHCu9Jnzm+30GQ8oRFOeKD5Bkfw+AQfPmu6v278Be+dTO94hfBZ29M8YJYWkuJAvQcRSTHkcM8J9oTiZ0Hn2RimfveCo03QrVi2emNNG3bv9sOvwY2NiZ2rEya2C1Ym81wabqNz85.Fs5IdBsJxUS07XDdkiTdScmntUZcvEhXwHetYgCxE7rc6dJeOyQzrKp6Dgu2vYDTLBgICyoq5V55EjABOw78yosuHUPibKJRf3ZkgW8RvyoH7ZV.dU.IbAHshEROm3xhDg5bIF77Yj9RMOZLEhSEghUWD92HcUfBR81Azq48hfEyMXq8Z17UMf+d42NNQxzBkrgRdpRyOSt0K23W1X8M90MZbWQiGWoLiahT997nJEaRMhtOC2RlDLhG8pF2P8S3yUDN9k4Txh4zhgbl8TWPQkruTnOKjKWTh.Jipf29o9GS0TSfHaOPuPdjVXf.9X9MPYfMrrN4Xd70ZUHTH7AwLHaQ4k3S0kSgLEZYB.NnTbyDbjwB8zhEhezxqdrP74jgBMaR0XrVEXDXpOEXLqZ7ojSFOlyz4.bERu28oozqn6exL26J7MISlNnot+YY6zHcKm6oK5u+X6hF9n6hhqeeMAcVxlfq7etlfeLpmp8+0S+KWOU0nrOmLT4O0NhB7qA.eY5VgSTRAqgURiduyoxYZeMop4GEFYPdzX249ot7ABmx02phtN8.k8NBulA4eEILRDGzWxd6zQQBOHHyMiAQG56qtM+Tk4adTrI9iWizba3mUqtpfPQVlAjPXWxgviTx8OLPk.X.Sv0.f.2Y5bpv2nlaRLLMy6LYZyHSKFSb6Tv+vEk5QY.ELcHEZYA4el4gPvlGsMadPegHOmzM7h85ZKTYi+l0dhfQorVPfg0LWwCW2H2Rao.KkyViv7URNZwfLUbU3Xlol3YWyawVh8gfQgA31bRyJnhqlAOaR5GegQJi5itvbAjrTh6.9UMJ+TKBtjYRWPO.OW0Qn7GnHv2jztUm8On09sa2tZZDMjFAeD3FbYk1+8NTPJTwO.t17UvgafPloFg3.olCnueNW.EJZdnq3mmK0d6ySSBxhBkL8X9XZhutzdnE4qlk7EgzBVWk2f4vg9Bsq3JY9Ixp9c8WqR9aYopiTpqCnoU8K2MB+QUhVHuZ.UGIdOfKfsbg.MaVoc7rp5r0Mmk65B00oK9S3ISniYMNSnyLg+i3i.JKRcIy1o0PfOIcGHwPllQuNYfYcCGzMVxKeNV.bSgKYrxepOvvVKqg6rrF1dYMb2k0v8VVC2eYMryCan4hbGlnUA1gOHzfgmjlniwmHovTxzIun+Bk4oc+B
                                  
                                  

                                  I couldn't make any sense of the debug console but it seems to me that the clone container is looking for the number of clones to be specified or it will fail to compile. I also had to add some type of processing in the container or else it would fail. I've used the clone container successfully in the past.

                                  General rule of thumb I follow is make sure the NumClones is the first macro control (and the ranges match for each node it controls), and to precompile all of your processing in a separate scriptnode and load that into the clone container (less error prone, plus it keeps the network more organized).

                                  Screenshot 2025-02-21 at 8.54.35 AM.png

                                  clevername27C 1 Reply Last reply Reply Quote 1
                                  • clevername27C
                                    clevername27 @hujackus
                                    last edited by clevername27

                                    @hujackus As @d-healey mentioned, we may be looking at different issues. That said, here are some links to error messages and possibly-useful information I've received in and around this issue. (@d-healey suggested running the compile directly from inside Xcode, which indeed provided more verbosity in error reporting.)

                                    • Link 1

                                    • Link 2

                                    • Link 3

                                    • Link 4

                                    1 Reply Last reply Reply Quote 0
                                    • clevername27C
                                      clevername27 @HISEnberg
                                      last edited by clevername27

                                      @HISEnberg Interesting and thank you - especially about the parameter ordering. I eventually stopped making the number of clones dynamic, and I think my snippets are all such—but maybe if I don't change the number of active clones during execution, the dynamic process is still happening - in which case, maybe it makes sense to always set the number of clones, manually?

                                      I also don't think any of us have stopped to realise the moral and ethical implications of cloning, but I guess one thing at a time.

                                      1 Reply Last reply Reply Quote 0
                                      • clevername27C
                                        clevername27 @hujackus
                                        last edited by clevername27

                                        @hujackus I am feeling like a proper lazy slug looking at all the sleuthing you're doing. (I'm taking a look, now.)

                                        And…you may be on to something. I tried compiling my snippet with that function always returning TRUE, and it compiled. 🚀

                                        When you say struct, do you mean class? (Structs don't have methods, although I guess you could use a function pointer.)

                                        I'm assuming that the function is returning whether Clone nodes can be used in polyphonic networks. So, I changed the return value from FALSE to TRUE. Seems to work. Cheers for your detective work, @hujackus.

                                        Update: Didn't work for my original snippet.

                                        df454456-5612-42f3-a5b2-35e799c2e18b-image.png

                                        @d-healey If this works for others, do you want to submit this?

                                        d.healeyD hujackusH 2 Replies Last reply Reply Quote 0
                                        • clevername27C
                                          clevername27 @hujackus
                                          last edited by

                                          This post is deleted!
                                          1 Reply Last reply Reply Quote 0
                                          • LindonL
                                            Lindon @d.healey
                                            last edited by Lindon

                                            @d-healey said in Compiling Just an Empty Clone Container Fails:

                                            @Lindon said in Compiling Just an Empty Clone Container Fails:

                                            form a completely fresh, new and empty project...

                                            But you're using the snippet Bill posted?

                                            Yes

                                            HISE Development for hire.
                                            www.channelrobot.com

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

                                            52

                                            Online

                                            1.7k

                                            Users

                                            11.7k

                                            Topics

                                            101.8k

                                            Posts