HISE Logo Forum
    • Categories
    • Register
    • Login

    FX Plugins and child Containers

    Scheduled Pinned Locked Moved Feature Requests
    16 Posts 5 Posters 1.1k 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.
    • ustkU
      ustk
      last edited by ustk

      @Christoph-Hart Is there a way to use additional containers when dealing with FX plugins?
      I have an Arpeggiator in the main container. In another container, I have a Script Processor that reads the CurrentValue of the arpeggiator in the onNoteOn CB.
      But the Script Processor doesn't work in the exported plugin (I guess that everything below the main container is simply ignored at compile time for FXs)
      At first, I tried to place the Script Processor just below the ARP but, for some reason, the onNoteOn is not triggered. Like if the APR is only sending messages everywhere but in the processors that are in the same container...

      Another case scenario is the use of Global Modulators in FXs. As Global Modulators have to be placed before any module that needs it, it's mandatory to develop the FX chain in another container below, which is ignored at the moment...

      So, is there a solution to make other containers to work for FX plugins?

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

        The problem is that the exported FX just renders the FX chain (and the MIDI Processor chain if MIDI input is enabled), but no child sound generators.

        Like if the APR is only sending messages everywhere but in the processors that are in the same container...

        Yes this is intended behaviour. Sibling processors will not process artificially generated events (in order to prevent recursive loops).

        The solution? Scriptnode :)

        HiseSnippet 1551.3ocyX06baTDEeOKsIQxwD6PXnfFMgFmgfFKGSBLTXY8gyHrU7gOGi6xr5tUR6nS2db2dxVIPETPG0PAzBMzSW9CfLCyj+BnjtPCEzDd68gt6jTDxNewUn412tu2626suuNo5v0ottbGjRtCFZSQJWDqMzRzsZWByB0nFR4MvMItBpSg.RUFZSbcoFHEkL2VRPIWVj+yS1rBwjXoSiIgPGxY5zcY8YhXppk2gYZtMwfd.qehSuQ4F5bqpbStGfmL30P1D8djNz6PjGaALR4b0MXBtilfHntvYpvMFp0kerUv4Oj4xZYRkKJgz.AEPFUsKyzPMxVcQHkrpwVdl.K+J3lLC1H5wdfk82nPLGI8AJKjFRYSAoROKHsM2zPJfmA7TlDdKg2xwl1oCi.ZK7lIAkRoQUlY4nJM+NJTUtkfZI.Lsh7UGtIbTgOhdCrltCyVTwSH3VHlgjT.JBIMfX5kJb.MGxXI79TWpHsHvJyjcMSlA0wm8KguiWeMA0Nj1HAjcNEvhXI29X3TX.IDvx9BPqGaBHnLmt.PBbGwNzgmdGYZCwlRM1wh2JFBKNMlWNj4p79s3U3m3y9kwZzO2iBIziHOeFRBHrDdOcAY.cehUG5o+tLGVqqW61lzY4.xFv9kSwtJT4vWDWArh9rC3VzDaLBHY.AYPDDjx6fKcyhvyfhUKVrcsZvqGM.9wbqsNE55PpIWmIFNothQdJ8098prUwhezNf9tgmZv54VeWFuK0pin6zrrIzTwckZ5vOAzzQbol5kRSyJRXELTLzxhZpQMo5xxOyNPXpB4sw64Ir8Du.D0J3lp0gRaNQBKVHKL2B4RRgT2xXBQrreOp35uYOHTHM4FdlxZsIaMH6AFtAimt8XCYkSWHZHYOxSQ+h0lZ+hRSqJ8bB2UvpLgd2oi2ElBdgx9urw6n1a0a2FhHhAaV71G8JtUanuKeX7BneIPtX3xBaeT5trAjQJ+LttUGlEsntCEfVMW66PEGyc5s5UMbsu50J7wKkusmktziWv1gZSbnGvUMICW0kz21DJOJnWuPKn1QOM18oWK+CxmK+WluPBl7wXE4IVUOHh0cxiImdxOzeUKu9snNWufeT8nCNw.Tme9bgbqFVLwd1zvikxFhHCiqk.kwTGApXRSIhXetmfY0oIQ3vNARCkMwg4.glOgVaT1c350hJxoQsL7W7T3IbyRQ0SjaVJZy3YYPg2O92+guCuIurwX3JSRka.tgKrMQVjZnJQzUl9.ymJf3SpSQ8QwomSxQID.3wg5tfeHEYkLRwFMgKNrhW+9RPImuM78OiYHUGV45vIBB31GhSjSK2zM47xAxSZEKDf2yKAzh39v7pA.LE9eqD3O9Hur.dL3hblAdKolSiqEAb4P8gzqI2XbEwCHNcnBeTONQnRfTuMLjQItCZiTINvWl.eaTC+os11IXdogn8rGUHgJNzuwRcKBjXEVmc.0QDTBoIy5vzCHrQ4ljSRS6adb4c4GScF66n1n7cssGmJbV+oOgxHRZe+2Ie90M05QONvmKAeohqgpeBjE65JaBH8YxRxfvDLZTQQ4JnUPF4sVdbUhoYK4DFgPaQrmkAsMDKYfT8ZYxzklVrKIPJQq.nLaqFglvpQWXpVMBMEqFNaRqNpYaRqNlZPXXSYL4DZLkAjxmfRDDGb8mJFdIbalojshxs9eSTb5KDbhKj7utCCyk8Qewedqup+i1LnnUb5SZ0V9aKOYlXxPsYDbcC+mGuYRa4Q+l74cGyVhNYZaI5r+21x+7C+zee0+528skL3Oc7HqmrIZ9SFV+gSlLr9T88q+vokLr9bf2zIC9+SNSjRhd9xeexlye9Kjql.xO3J+xs+i6+0iA4mN7GUeyZONLbQqOmK5BiLDi6H1dNw8xmh5NK+Boty3kZd1EgtaiZxOpCLlvgYRrqhRM5.lNMn2SNbMpaOA29UyrU8I5N76oGLomrVyE7o.ICV9+6c4vMkqKTZzGZgWC5BI64eOcc4z9uO7kBSmm0OC7biy.OabF34CNC7byy.O25LvyGNSdj+ola4I38C9RPffZc+fKEk3gUxf9WvR5Dt9
        

        The patch contains an arpeggiator and a scriptnode master FX with a midi note to filter frequency modulation. Note how I used the container.midichain container in order to process the incoming midi messages with perfect accuracy (it basically splits up the audio buffer for each incoming midi note and makes sure it's calculated with (almost) sample-perfect timing. If you don't do it, all messages in a buffer will get processed once at the beginning and with bigger buffer sizes this might lead to timing issues.

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

          @Christoph-Hart That's what I thought. Thanks for the scriptnode hint.
          This means we will never be able to use global mod in FXs...

          What I am doing with the ARP is triggering a callback in the main interface script (via component.changed()), another solution would be to call a function.
          Is it possible from this snippet?
          I just tried to link a parameter in scriptnode with a slider in the main interface, but the communication isn't bi-directional so I don't know how to send information from scriptnode to main script...

          In the end, I want the ARP to read the sliderpack indexes. In my first test, I used arp.CurrentValue() which is very convenient as it directly passes the ARP index... But from scriptnode I don't know how to achieve the same thing...

          HiseSnippet 1807.3ocwX0raibbDdFR0qk3ZYuZwZjC4x.dhBqBA4t1qyhEAh5WCEIthQTQYuDX2Zlljs0vtGOSORhdgA7A+1Df7LjmfbIGx0j2f8ZNkTU2CmeH4JOhI1gBPfc0cU0WUS0eUMrWnzkEEICsrW67IALK6OjzehPMZuQTtv5n8sr+HRWZjhE5XDs6j.ZTDyyx1t5WfBrWaEK8m2s8tTepvkkIxx5BI2kcBeLWkIsWmi499GR8XmyGm6zeZmibkh8j9xX.OUIsrBntWQGxdMEOVEhk8CNviqjg8UTEKxxdkckdS5ORdivb9K3Q7K8Y3h1V8ACYDenz2CQLJ0ZuQbeudSi6HKvJ8xxBUMYgmP5x83oxyxFORugSlF4yG1UtK309GGdsVD7pLO7VmrSX.a3PNE7VxSobRZWDUUKhppkCUyiDq8jBESn.LsA90PoObTkFQeDouaHOPsarRIEVbOTjAEIhtl5GWnzvpD1XcxYrHl5dah99bOVn1DeL40wi6qXAIxlwHOpSYLxCInEzXY4PwizFn+U72CLd21kIc.VQFpNlMI5+lLBDLALl2wB4kyZfmLe13QIFXO43Kk6JuUahGS5y9lXFbYOUb4CnbPYcxotJ50rynhgrkKZVizeT7fA92o5qXT+wETuGvtnMwSfnYL+bofkaiDqQrqBFxipnV1+RR6Wzb5mA6tO7+y5A+6q2Ym6gutf4Kc4pIy6qLjWveCd5t6zr4KOF72yi6YVWZ+8XxILwP0nR6slmfd6heK3s2HQucUAucWUEaP.hRgf42m4ybQpoe7hhEZneA4zXUPr5+QlaCR2dG.zegSM3bofRV1+wngNP38dLSqNV43pWwvUuQhgx1A4qeH4HfKMb.EZWlmr1bVqJ+KaRBaaywzqXGFBKR0nwKZ0ZKmOqUqMe050fiEI8YMc8YzvFnDyePqzHky0zPmrG8scbb9MNSM7PFFcAPYuP0ndtSUGsRl9mPuj4ipp+79z2bp5Y.fK74BlyfXgqhKENgLpW+dM3d2t450d650PiglGRhfQy4dzvlkWf42cTZcdkQCy+MNqIPG2nthcqp9VN0OR3wt0otyScfiC+uNXUbEX+MeUsuSiqDL7rMeUJrjhWKUrSEM1r1aqsVsuqlyraMXvB2KohwmEtvswYaBuKEaHhGeIKbKGcUT5AgBmh8qeP45W6Zdpj6fRwQBt5z.Vx56dLnbc2qTBZ2OjnB4CGxBOVTrKRmZ+8+11kkcZcRtm6ye8tHwzyaBDSM0zt+Nj1UzDHl98GsOdH3tSB9gXJfEp3Xpyde10v7mlKhqQ1mEckRF.gUZcKjdKWHdaJt9GzNSRW7UeUmfoIwiz5XLiyguoML9ZHL4Jbo8HcepDqgY5Tu+A2izSFD57GyAAGYmwzr8rp2IRqzNikwBU9IchvQP3eK1UiztYqB.YMUxjkFfnufowvpDyksbt+6y69+x0ctg6oFgsJ+qv5QL9vQJb0SgUCfGJFWNEFurCCJuo5JXn9Bt7hd0b48YvU1WZs.RTXraoWrONba9YwwW.IYC3pUAhTjrTDAsYyWOcOFPuUoe+gxB2MH83J2QKFuUV.dwah+Di2z2m3fACfVrYfcExgu4mg2swd9bWsjJPv+HPJbgZAcJs+SjCDCgFMMcAxcEa+nfWyT2HCupQcunf5a5nI9SoeCBYv0R14xd9zIMhniC7goOUrsbtDFK6JrVcdN6jq36hmngqo4ezxPsOy6utZ4RhyRjWHFlJFda4bnLSZJnxDMaqhE9xdmIiUbwvtTf1Bt5qeKJ3EygI9She7JdErugYcKbMVz1mI7zK92vmjMaiqsS1r8zMyZ4Xk7LSWSj7c3aXA.g.OFQoROjE4PJNI3jdTjwYCBFJPMKKroaZs6CPMZaA.dVndBjYJH1tJZ1o+jCF7Cjhi0ThUHS+9eXJA2VvILEgmAUNXK9tQ4+ALvTZuor9n8qX7fItzQvGXF+aL2iafbgH5SxEQYG4mpPYNvspI+gdtHtdHfqPlFR+eIwZWMi27bZHLgnF0yJD3KP+h8aSpB5s3dvmFjx1vT5wLsNPfMkRHiuFFgvvyzkKtX1WXpK81KlcVkSj2vBm4W5BFOIHXNoua69oMhWak29j+7W7O+1eX69WwtwjxyexCtEtrGEgcKvzlUtoaLrm3JnmQU7AWMxdTe+KwoGRf2CIwPi0AP4jmUu3K84tX3YkqDEsxzUfiu+Q9pcJejuZm7QdZ1XgQtoRrKVVNmGKD.ExIu+PSeuKq.nrOVK+ip4Tc9hSfN.GSUvz8KlC6Kyrr+rvSOl5FJ+RWSeDLwtpVBT1Iz+zrqQ5hqcRGgmPZAyWhrEeoqKNMwuBlDYw57rkPmmuD57oKgNe1RnyKVBc97kPme8cpC9qTuSrRN1LoIHn2A5hKa6LdtpV+GqHXYVA
          
          1 Reply Last reply Reply Quote 0
          • Christoph HartC
            Christoph Hart
            last edited by Christoph Hart

            So you just want the main interface to show the current arpeggiator position? If yes, just use a timer, poll the attribute and change the slider if it's changed.

            If you need to know more specific stuff of the generated notes, there is an advanced feature of scriptnode and this is to hook up a inline function with a single parameter to a core.midi note - it will call this function for each note and expects a value back. We can also use this to store any value (in this example the note number) into a global variable and read it in the main interface:

            HiseSnippet 1799.3ocwX8zbaTjEuGa2lXEbHNUn3.WFxAV4ZCBIHI.EEkk+aJSrhUE4XxdYoZMSKoFMS2CyziiUR4p3.UAeEfODvYNPAeG1Cbl6bfK64ceutGoYjkhih.1cNnZ5W2u26W+lW+68Z0LV4wSRTwDmUNZPDm37xzVCj5da2iIjj82g3bEZCVhlG6ZEs0fHVRB2m33r3cQANqrDw776arEKfI834hHjiUBO9AhPgNWZy52SDDrGymejHrvpuU888TxsUApT.OKRqRhXd8Yc42mgKaAJwY4c8EZUbKMSySHNKskxePqdpGKsq+XQhnc.GGTizBLjU7dp.eDwnTx18DA9MGtuSHfUZlGEVzFEtNsgvWLRddz3plIby0nX7vYgKBd0d9vq5zf2BSBuUoaFGw61Uv.uk8UpfjZiipEGGUKNanZRjP1VI0boFvzZ3qwp.XoZChtBskWrHRuUpVqjDgOJxhhLQmvBRGK0fLC1XU5C3Ib8KrIZEH74wFS7Jz6mF1RyixjcNib05yhQtLEsfAKyGJtpw.s5KdFv322XVBGfUTw56wGj7GIh.alHN2+dRU6yaf2bxnwUyLv1pv1psTmZLw0ns3edJGNrOR7rugJ.kUoG5oYmve.S1kOe6lUns5k1oSvEp9RV0u1Xp2DXWLl35vtITbjRxKLw4r1kp6yzLhyqSqcmJvyIU1tRkN6rC75iNA9IXyMeA72w7.kmPO3Y6OBYL+04uu0lUp7A2C726l1zNdl820nGvkc08lYuU4.zaG+wf2djB8V+w71EkYrFEHKkRdPKd.2Comd9IFS0PuF8vTcTp9OIysFsQycAJv3gFbhPvLl5+Jng1U5+LLS05jB70KY4qWKyP4yfb1WltOvmF2gAkLKRXaWKYguZAZFiakPVe9dwvfQZT9NUqdS2aWs55e3pkVsDT3LQ6dBK1EOVWy8ibGpZWNh+HH4VpKeCyr2vpSQsvJwwfV6J6Jj7JdwbnXgQ3gs+LHvW1phQRkDLLZds7sy7eLuqa.zmvwXz.rS0JUMxe621ceoPKXAhDtKysafpMK.cofAEcbEcbE5+VhqToc84c.e6uZIQmxugHYG6vxVULFd80WszSWsjK7jYnBSl40RmU.nbKL2lEDzFR6K2IU5oEJY40K8zRq.9IGyuwGUzXqa8Rlyvmh6tBK7CyWgI1h9zLQtoWeh030C467gfpYhyJcF71Pr4pj2Wo4GlAxRmUx87S0oyTmKK+M.9tLsosewt.EKKSCayiuoqImdzBgz3w6fX4YqCBOaFXgEpjXxvgQ7rwWbiYE52vYFJD7RTSvM+.4u8uexO9O+9eYCxC2eGjcKyLfEAuDwi0Bby3rC+DnGU6A0Un6vS5qUQl0lcpAZJ945zSGw.7yp5CFM3K9G0SzCvPyxlERBE99A7lpDAF5KPi8SIX+AhmXP9Su92c2e8Ie4FgE6ulPBYmVj3KAJ6IN0zXbGQPXhFv19gP+xHi+CgiavAJVZf1MoOXm.grO2+HkY8SgiB5rU4mFf8OVrcWrG+rIP.WjmB4hjvFYPQP8BzCb0YtE8YEtqQaJzd8lNdWXJ3Eau9uX7Npk8c6zAHRyA6Rz8dz7d8gYGJNNSF6JkkGC9GAxKmMzcuGUapEhV1gNVcgcRhtOW+XUb+x2vOI5Fq6Z35ERHGimyqj.M1cj5tFtxxBITKOm9tHI9PVUyRx3Ji45zXYlnRmMxlQw7HVLX1lArAkSXgQAPyiZ9McaCcT0GO.MIAWjMBrEthxd151IyCO3x+YcSpGnR0BY2FL3LKbB1bEE3VuP6zYnCj4r.RAZGWEGioqs3Reyf+C7jMYMbrS1j0FNYN6II6ikIaH6c3M7SOkBe+PoJe.1WZOF1h0flLcO7vDRfCYqPgTuQYsKiZTi..97P8.H5NlXmEQyN797V7CjpgFJUfDJ68OQ3iti5bSXE1zuG.eWwpUMRJ9uCXsmcWXv6KYydANUgAfPAkhafWsvFXzZ9KC4SftKYCWnmGGWWFvUL2.o+OEGyIHOhECMHZP84EBgVzu66ioIImzgzjEyB4P+m6atD4dw1q.NfbXzHdkrleH6Jw16xJSbBTq09dCg73w6W9V0avNcbYe8+p9ApGyiO2eazsp+vnnyKEVaqBEN+1uAe9gMZ0m+XaLGAesJUI6dJPcjjXJ5lU.bXK.VNRbDTYXQ7qVI5vNFIYP6JzhrYjlosCDdXQk7nh0PCGAn4h23DxDab3RlSaiSHSYiCqs3FeX42ha7bo1LwFXZ4wSbqmhafwBKWvLySGU+OgzKj4Eq9TOKON9E4RFIv2Uo4OQbEZCbr6n1DoT3RCXaYhO0yCKJ+V0Hjoqy6LG57tygN2ZNz41ygN2YNz48lCcd+KTG7+ScyTsJz1vFHn4tljKGmBjHj+KP6Dj.E
            
            ustkU 2 Replies Last reply Reply Quote 0
            • ustkU
              ustk @Christoph Hart
              last edited by ustk

              This post is deleted!
              1 Reply Last reply Reply Quote 0
              • ustkU
                ustk @Christoph Hart
                last edited by

                @Christoph-Hart I got this part working with no timer by just calling a changed() in the interface script from your SaveToGlobal function.

                Now I got another issue because no global modulator is allowed in FXs.
                I got 4 filters for which I need to modulate Freq, Gain and Q via custom tables

                So how do I sync them?

                Side question, do you have any example on how to use a script modulator please?

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

                  @ustk Did you ever find a solution to this?

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

                    @LeeC Nope, I haven't yet. The solution would obviously be scriptnode but that means I have to move my pre-existing modules in a dsp graph. In my actual case it's not too much of an issue because my FX is based essentially on filters.

                    The main problem I can't resolve for now is the use of a table. Modulating in scriptnode with any waveform is easy, but the implementation of a table that is controlled from the main script seems to be rather complex, for me at least. I haven't a clue...

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

                      There is a unified way of how to control complex UI types:

                      const var firstTable = Engine.createAndRegisterTableData(0);
                      const var seqPack = Engine.createAndRegisterSliderPackData(0);
                      const var audioFile = Engine.createAndRegisterAudioFile(0)
                      

                      If you call this in a ScriptProcessor's onInit method, it will create an object that can be accessed using the processorId property of the UI widget.

                      Once you've registered a slot, it will also become visible to the DSP network of the script processor:

                      UI <-> DataSlot <-> scriptnode
                      

                      Check out this example how the slider pack and table is used in scriptnode:

                      HiseSnippet 1675.3oc2Y0raaaDDdorW+ibbSSa5cgbxA1UfJ9GEifVqXI4DkXYoX433fdHflbkzVSwkgbkrUBJPOz68b6k9FTzq8PAxKPO0mf9F3K8TOzNKWJRJIZaEE3TmpC1bmYGxuYmY9lgRUcX5DWWlCRY185ZSPJWCWqqEuY9lZTKToBHkOBWVykSbRIEsYWaMWWhARQYhGHDnL6jHuOmtwlZlZV5jPQHz9LpNYaZKJOTZ0bOlZZtklAYOZqH6dkbkzYV4Ylr1.dl.qhr0zORqAYGMw1RfQJSUzfxYN03ZbhKrmMYFcq0jcrkb+6ScoGZRDKxfpA2HoXT9lTSip87UWDRYxpgd9DRO+l3xTCZf7vSfO1SQpPKhdFnjneHMYePJyYAosXlFhavY.OkHvaRI7tAtltC0lGpQfs4vkrffScM3XOJrj6Eo7FbdFrAKd5VZGQ1xAVDXvBqoptTpUUUu88p21RmSYVoXV6v3jJVKb6juN4rI+ljoFTU85wpS7XbXllDmXUKhzNmmgKX0t0gDmkR0QyrMIXif62+46Ti14qtzqirQlUIKJuhMwecXDHSLQ.j+wFDKR3iP.JbuHw79Qh8zDOXJbOlA6ccFjG3il+anw0PJDb16jN3y54g+zoxAauZo0CD1oRY99e85QzaPKlMT+dUV7w0NXwpcdbqkE5cq.+o9hQ1uDyQA5m3CzZlTChSUnXxCs.9CDD.Yrx0Cf6WgWakz4eVkGs31c2ta17q8jFcq7vh7cV7v6Z0IasGc3c6HVu95h0q0UktYaAbRuXAvnr0Vd0mbbEXSObwrOowKyR2a4U8VasdZD5okJHdHPRp+QLbraSb3TQzUo.oCPXHy3mEWf3dDmY6ECZYyrDADkouvnvIgQfR45FtnPtioF7lBm8uUPnlDZilbwp+BTZ2K5WxviEz6lmZqCDYGC8vGoS1PX7suHBLT44N6mU..c5Cfc73MGhS.XlXFsM038SWI3k8U.0X8wKHJ9sbo7tQ4seK3vTikCK1JnQDt2.Wkx0aFOdSDCdEkjWx30uiv73h0qSz4gfcR7VG7dl9eJIVR5mk.OeAP5KoIJf1ocqvbPWQtCjHg.od0FAB76OjfqfmOIPV5xAhWmTFt1o9hTEsZPsHo0cHfSUv0dGB+XlyQKbKP8st88lOYTSpScbkEgCZ48sL1kzfJFdvSunteAUg8gV6Rdo.nmiogdSb1q01fx1hdtO762aOfwAMdrcH1ZNj8XUM05tfqVKaSxtfcKk5PSl9Q0nuhLb2J+51ME6XA8lZVVDS2woo1.ywL8nk0LXKr97gdhUQQQYnz.PEJJlhfcYs4TqFk03NTf+BKRmfwwzI488VQBTBQ+Q4ZUwZQMYMhkg2h+A93qLSP1FnLSOkgsVQ9IVdo79WCWIxuwXHWSHkY.GCyrklNbb0splfb7FXQ2cnjj3jVOnzbJgEYDY5CB0sgyg9DCUIvss2flR7Cb7s7X3gwL8u9Y83hWB1grFaWHOQLJSY2nispLQjdXfWA2bgKkPB9oEnaZrqsILD7Y5HR0WVneDPXRbKlg73rOPdyHfLXG+2fyYjwYMCHYpOLBXG9eZPw6Nxl.mbPngWVU8sIAHrW1dZNMHbutKZNvaw.rQR98dqf6RIqNfkR16xTq8GbDxxZmLfrS2Xa1wDmAdsJXzJa6gjd5F03DaAclP1qu4O+f+7Ue2F0Nhbr7DL5NkIpxG1Pv.EIFLMl6M0UeAgqAIJNjzRMWAJCiIJnnLnP.1BPHlCaJbCQpcPnQJy6cbqXGzDlvkmLEsD9o+LJmW.74uY3.n3vX3.3yeSbAPf8LR.7G+Awmecf.3Wp+a+die4yxU7DnkfqqXHJwA3Ujjt.YmYR20jStWxxfbRLYdQcCTDJq4Bnrxb0lyBK3rt7nrtTpU9Pmw5zMP8EAfIMGLB3wWIj++D1p4v0ZwX7lv.buSTVwDAy884F4HHr2Klx5e59SU+zB+wFe3RYE4c+u.JqX3u7GkowPiaMmLqrwkIi0nmVpjveE792SHc6cIt8RnFxsq19PSpt.TnAr653m5RFQSuPxnDQRKRd0o6qLj5MvvvImCUICgyQ2MdeVQJ6rFxjL.TVI246Khn037c78d4UOaoo6vdgt7EgEoRy3IARRs79MFlEWVrNU3WKJVMsJpE0f9Bccw2+ymmAgh2l6LF1r7XXyJigMqNF1r1XXS1wvl6dt1H9oWteaNqk76FDDTsnWxkhRX+rIP+Kpn8FRA
                      
                      ustkU L NatanN 3 Replies Last reply Reply Quote 2
                      • ustkU
                        ustk @Christoph Hart
                        last edited by

                        @Christoph-Hart Amazing Christoph! I tried something similar but without knowing the how to... I'll make my day around this tomorrow 😃

                        1 Reply Last reply Reply Quote 0
                        • L
                          LeeC @Christoph Hart
                          last edited by

                          @Christoph-Hart said in FX Plugins and child Containers:

                          HiseSnippet 1675.3oc2Y0raaaDDdorW+ibbSSa5cgbxA1UfJ9GEifVqXI4DkXYoX433fdHflbkzVSwkgbkrUBJPOz68b6k9FTzq8PAxKPO0mf9F3K8TOzNKWJRJIZaEE3TmpC1bmYGxuYmY9lgRUcX5DWWlCRY185ZSPJWCWqqEuY9lZTKToBHkOBWVykSbRIEsYWaMWWhARQYhGHDnL6jHuOmtwlZlZV5jPQHz9LpNYaZKJOTZ0bOlZZtklAYOZqH6dkbkzYV4Ylr1.dl.qhr0zORqAYGMw1RfQJSUzfxYN03ZbhKrmMYFcq0jcrkb+6ScoGZRDKxfpA2HoXT9lTSip87UWDRYxpgd9DRO+l3xTCZf7vSfO1SQpPKhdFnjneHMYePJyYAosXlFhavY.OkHvaRI7tAtltC0lGpQfs4vkrffScM3XOJrj6Eo7FbdFrAKd5VZGQ1xAVDXvBqoptTpUUUu88p21RmSYVoXV6v3jJVKb6juN4rI+ljoFTU85wpS7XbXllDmXUKhzNmmgKX0t0gDmkR0QyrMIXif62+46Ti14qtzqirQlUIKJuhMwecXDHSLQ.j+wFDKR3iP.JbuHw79Qh8zDOXJbOlA6ccFjG3il+anw0PJDb16jN3y54g+zoxAauZo0CD1oRY99e85QzaPKlMT+dUV7w0NXwpcdbqkE5cq.+o9hQ1uDyQA5m3CzZlTChSUnXxCs.9CDD.Yrx0Cf6WgWakz4eVkGs31c2ta17q8jFcq7vh7cV7v6Z0IasGc3c6HVu95h0q0UktYaAbRuXAvnr0Vd0mbbEXSObwrOowKyR2a4U8VasdZD5okJHdHPRp+QLbraSb3TQzUo.oCPXHy3mEWf3dDmY6ECZYyrDADkouvnvIgQfR45FtnPtioF7lBm8uUPnlDZilbwp+BTZ2K5WxviEz6lmZqCDYGC8vGoS1PX7suHBLT44N6mU..c5Cfc73MGhS.XlXFsM038SWI3k8U.0X8wKHJ9sbo7tQ4seK3vTikCK1JnQDt2.Wkx0aFOdSDCdEkjWx30uiv73h0qSz4gfcR7VG7dl9eJIVR5mk.OeAP5KoIJf1ocqvbPWQtCjHg.od0FAB76OjfqfmOIPV5xAhWmTFt1o9hTEsZPsHo0cHfSUv0dGB+XlyQKbKP8st88lOYTSpScbkEgCZ48sL1kzfJFdvSunteAUg8gV6Rdo.nmiogdSb1q01fx1hdtO762aOfwAMdrcH1ZNj8XUM05tfqVKaSxtfcKk5PSl9Q0nuhLb2J+51ME6XA8lZVVDS2woo1.ywL8nk0LXKr97gdhUQQQYnz.PEJJlhfcYs4TqFk03NTf+BKRmfwwzI488VQBTBQ+Q4ZUwZQMYMhkg2h+A93qLSP1FnLSOkgsVQ9IVdo79WCWIxuwXHWSHkY.GCyrklNbb0splfb7FXQ2cnjj3jVOnzbJgEYDY5CB0sgyg9DCUIvss2flR7Cb7s7X3gwL8u9Y83hWB1grFaWHOQLJSY2nispLQjdXfWA2bgKkPB9oEnaZrqsILD7Y5HR0WVneDPXRbKlg73rOPdyHfLXG+2fyYjwYMCHYpOLBXG9eZPw6Nxl.mbPngWVU8sIAHrW1dZNMHbutKZNvaw.rQR98dqf6RIqNfkR16xTq8GbDxxZmLfrS2Xa1wDmAdsJXzJa6gjd5F03DaAclP1qu4O+f+7Ue2F0Nhbr7DL5NkIpxG1Pv.EIFLMl6M0UeAgqAIJNjzRMWAJCiIJnnLnP.1BPHlCaJbCQpcPnQJy6cbqXGzDlvkmLEsD9o+LJmW.74uY3.n3vX3.3yeSbAPf8LR.7G+Awmecf.3Wp+a+die4yxU7DnkfqqXHJwA3Ujjt.YmYR20jStWxxfbRLYdQcCTDJq4Bnrxb0lyBK3rt7nrtTpU9Pmw5zMP8EAfIMGLB3wWIj++D1p4v0ZwX7lv.buSTVwDAy884F4HHr2Klx5e59SU+zB+wFe3RYE4c+u.JqX3u7GkowPiaMmLqrwkIi0nmVpjveE792SHc6cIt8RnFxsq19PSpt.TnAr653m5RFQSuPxnDQRKRd0o6qLj5MvvvImCUICgyQ2MdeVQJ6rFxjL.TVI246Khn037c78d4UOaoo6vdgt7EgEoRy3IARRs79MFlEWVrNU3WKJVMsJpE0f9Bccw2+ymmAgh2l6LF1r7XXyJigMqNF1r1XXS1wvl6dt1H9oWteaNqk76FDDTsnWxkhRX+rIP+Kpn8FRA

                          This is gonna be so useful! Appreciate the knowledge @Christoph-Hart

                          1 Reply Last reply Reply Quote 0
                          • NatanN
                            Natan
                            last edited by

                            Is This Work With File Player Aswell?

                            L 1 Reply Last reply Reply Quote 0
                            • L
                              LeeC @Natan
                              last edited by

                              @Natanr Do you mean getting the arpeggiator to trigger a file player on/off in sequence?

                              NatanN 1 Reply Last reply Reply Quote 0
                              • NatanN
                                Natan @LeeC
                                last edited by

                                @LeeC Nah, I Mean Showing The File Player's Waveform And The Start End Loop Markers

                                1 Reply Last reply Reply Quote 1
                                • NatanN
                                  Natan @Christoph Hart
                                  last edited by

                                  @Christoph-Hart Christoph
                                  I Know What The First Two Does, But What The Third One Stand For?

                                  const var firstTable = Engine.createAndRegisterTableData(0);
                                  const var seqPack = Engine.createAndRegisterSliderPackData(0);
                                  const var audioFile = Engine.createAndRegisterAudioFile(0)   // << This One?
                                  
                                  d.healeyD 1 Reply Last reply Reply Quote 0
                                  • d.healeyD
                                    d.healey @Natan
                                    last edited by

                                    @Natanr https://docs.hise.audio/scripting/scripting-api/engine/index.html#createandregisteraudiofile

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

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

                                    48

                                    Online

                                    1.7k

                                    Users

                                    11.7k

                                    Topics

                                    101.8k

                                    Posts