HISE Logo Forum
    • Categories
    • Register
    • Login

    Link multiple Table Processors to one UI ScriptTable.

    Scheduled Pinned Locked Moved Unsolved Scripting
    7 Posts 2 Posters 247 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.
    • HISEnbergH
      HISEnberg
      last edited by HISEnberg

      I have been experiencing issues with linking multiple Table Processors to one Script Table in HISE. I have tried a few different solutions which will work at first but then crash HISE.

      These are the variables

      const var Table1 = Content.getComponent("Table1");
      
      const var Te1 = Synth.getTableProcessor("Table Envelope1");
      const var Te2 = Synth.getTableProcessor("Table Envelope2");
      const var Te3 = Synth.getTableProcessor("Table Envelope3");
      

      So I know I can link the table processors together:

      Te2.getTable(0).linkTo(Te1.getTable(0));
      Te3.getTable(0).linkTo(Te1.getTable(0));
      

      But any effort I make to set these processors to be controlled by my ScriptTable (either through the property editor or via scripting) inevitably crashes HISE.

      I tried a different method:

      const var sharedTableData = Engine.createAndRegisterTableData(0);
      
      Table1.referToData(sharedTableData);
      
      Te1.getTable(0).linkTo(sharedTableData);
      Te2.getTable(0).linkTo(sharedTableData);
      Te3.getTable(0).linkTo(sharedTableData);
      

      Again it will work but then crash HISE with a Midi event. Is there something I am missing or any other way to accomplish this? Perhaps a broadcaster could get around this issue?

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

        I couldn't really figure out a solution using a broadcaster either. I suppose there is an issue when it comes to processing the complex data given out by the tables. Does anyone here know of another way to control multiple Table processors with one UI table?

        Here is my attempt, though the broadcaster isn't adding much:

        const var Table1 = Content.getComponent("Table1");
        
        const var TableEnvelope1 = Synth.getTableProcessor("Table Envelope1");
        const var TableEnvelope2 = Synth.getTableProcessor("Table Envelope2");
        const var TableEnvelope3 = Synth.getTableProcessor("Table Envelope3");
        
        
        const tbl1 = TableEnvelope1.getTable(0);
        const tbl2 = TableEnvelope2.getTable(0);
        const tbl3 = TableEnvelope3.getTable(0);
        
        // Create a Broadcaster 
        const var tableBc = Engine.createBroadcaster({
            "id": "Complex Data Listener",
            "colour": -1,                   
            "args": ["processorId", "dataIndex", "value"]  
        });
        
        // Attach the broadcaster Table Envelope 1 Data
        tableBc.attachToComplexData("Table.Content",
        					   ["Table Envelope1"],
        					   [0],
        					   "Connect to table edits for every table 
        					   (attack & release) for two table envelopes");
        
        // Add a listener 
        tableBc.addListener({"id": "TableContentListener"}, "Table Content Change Handler",
        function(processorId, dataIndex, value)
        {
        	Table1.referToData(tbl1);
        	tbl2.linkTo(tbl1);
        	tbl3.linkTo(tbl1);
        });
        
        1 Reply Last reply Reply Quote 0
        • d.healeyD
          d.healey
          last edited by

          Can you post a snippet? and I'll take a look

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

          HISEnbergH 1 Reply Last reply Reply Quote 0
          • HISEnbergH
            HISEnberg @d.healey
            last edited by

            @d-healey Yes it crashes HISE so I commented out the problematic code:

            HiseSnippet 1784.3oc6a0sSabDEdMvlF6TmlDk+5cirZqLJT.aSIPiphACNX0.XvN+HEkFMr6X6IrdF2cm0AqnH0K6KPuuORspM22Gg7FzNyrq8NqwPbcAhCc2KPZly4L624m8LmOBorM0.43Ps0hEuZmVHsXepdkNDViBMfXhVo0zhcc8Jt6I26EqSZuFZO254zVsSKniCxTKVrIefPyXwmRS97t6uJzBRLPAaoo8XJ1.8PbSLKX2x4+drkUQnIpJtoh1KjujAkTfZQc4nZR840ZAM1GVGsETn1D5Zwtv5lXF0tBCxPNZwlZUpYmJMnuh3o+iwN38rPhEYzpvOHusKRsLEHVrqVgFXKyxc8dGMsXeR4fXwjdwhqquI1D2a+fXxUjB.AVnFOhMQX3MYH3kQEdyq.uA.oXJPZJOHcU8JF13Vr.IB7bI8RDFxtFjG1UghmtZSnoqWfx0fvlsIbeTQa9hdVjdw4meF.+GSeuDI3gdGFnMzFTExAYFv2A5ZYcDq.sYKJguHcJOwol9dISjreq30IHKZKo0xJGgsRI8fs+A.5op7jNhyI6veNYOtyI2veN4B4Yr8rD9RXmq2gjd9f2IWyr8qY1iRyb8qYt9zLYh4lCTvFwKj.Pvp1TnoAzgm2.p9HSXvpF7CacRcLAMqgzBE0S+5jI.7mTXyTeKHkHMZgN.rFjAAODy0ffrSMiuNFxO83580YlAb3Gesf10c357rTs5FBKYlZFPJS9YVhXhNPrnMzxEk54BidSO+YEFCZz.vZf.6o3Qgi+fLRzkLguyMKTZUUpO1EB8yYy5WfJbf3hGN7d1gJudtpz4UWwCGDBxfmQndgR.h+8qCnF0FfZir63uafEokfYevWArQVHnCZZoxrW06.7esNoB7ZSSdJzxOXCTbLSytofzu1OAIAuua0K+7lY7Ez8KR.ugDoNBrAjXZ4k.q4RLXXJIsRVYFPubxL.YFY5jI3EDwmaNuOhm0FUCYWkJiohRcAn4RE0xyZgI6Wk12145eaY1MQuWOfR1hxPaSROchWmHdh2j.zunZ0FnLgqYSs3ty.EKtpv93LLMws4dH6tNZWE48OC2TV+naJqdmggWjVQQJoDAy1tEhbT2jn4mdDMv8QE+0yjsuS529VF30v7lzWT2KInIAr5klhrlVLj9cyNa3m1auYmGVYoMZQZb2Bx0KtSc7xa7xxqtTgtxWb4burxV9qWhztzcpsRwm5qO+G0ti3nV1asl1iJIx9cgLG8bOpExlgEAqXqgZyu.26Fn35qgb1mQaI00+9.9cxuWG7f.m6Gx2o2he5w4eE1j0HPZm7MP35MBlUHOJu1guJjeIL0z0BxBeyrXbDeA7JiPWGJtxi3fYcTGW4D655gEhWUuLlYzXvXbhAfQdV4z.i9C4jTe8Z03s+B.3T5Ee5oyDMpu9K685ujdE9UVxakku7aJWCdBrMB7.QeOQvKywLv4uMrCb1ZnG3baCF+0W0FRbZQcBcvUPMwU4k7Npa9HG9HUnebWQ1Tc+BTn8.E8t6Wj6jCzlJPlqsrrXklTWBKTYvjG2fuYFwAemZrav2OB9XOzr4w6hwJXwvIcG5PhwqwaWVC5Zw5MJRHTtIkPa0fRvFpI5cQLab85HaUrOPGRNL09A6b8765MRRvVeQ9GxK1f173DZDiEY9WySYf4qaq6AWf3CPvGuMom7bcS5AUZeM8xTqNdEpEwV740kfHtt2hiq+rllnOmKhXDDs94+H+Npo2vkl2N+NtPqfnK3Oe2uuxp3VTKn8+0H+6oRdpgr73l58bJvG99OI7P5moGhLoecbeDgNU69rvg69rPdOkjvXsyvQZ8Qhx68K0ytPvqb49ryGGmfESSLjES2xus33eWwaq2Mp9QPCbQanwaL9459c0.htIi2X8x567ABf6RcYXR8Mg7tRbNj5a41rBeTcCj3W+AAYIXyGaBw31dqmWr1aVchobweye7ElQrNluvLcEpFDtQWdIBJHA7RtgbcMpcywEZIYTO49jkUU1ZHlKIr5daERKg6Uj6dJ5cw7c2Lq5lkgjPGFecnSZS7ApKWmHZAWAw8FyscL3NqH1oVqT10xA8DwuD.ky8uT1Nq51a.sM44EiSelQWHhYzYIynrQLihXFcNiYT1SUlQxmHlQmHLixNFvLZB8HZKQzVhnsbdf1xPOoFeb4waHdKc9X6YAxq8AeXt2e7kCX1y4b.uRDGvHNfmcb.yEwALhC34LNf4NU4.9q+xaeaz+5XmLb.yEwALhCXDGvHNfQb.++IGvyh2QSngM8EFd+kAKZ1dQ4Nb+lH+e3Rb8MEqAC3OI3lb5EuvvH7QcHCyNpFlaTMbgQ0vuYTMbwQ0v6NpFtz62PA6uUbYzldeavYAWdcu6ui4Q.V9Yh1+..DgIYK
            
            HISEnbergH 1 Reply Last reply Reply Quote 0
            • HISEnbergH
              HISEnberg @HISEnberg
              last edited by HISEnberg

              Actually there isn't need for the broadcaster here, it might make more sense to just work from this template. Just uncomment the block of code and recompile. You will see it works at first but any MIDI event or attempting to save will crash HISE:

              HiseSnippet 1613.3oc6a0sSabDEdVCSZvo4Ghxe8tUQsRjeDAulR.UUECFb.0.XvjetpQC6N1dBqmY6tyRhUUk5k8EoOH8MnR8ldYe.5E4MnclYWaOqiwXYLN1H6KPZlybNy24Lm4LmOCTzmYiCBX9.iYNntGFX7kvR0o7p4qhHTvVqCLtErT3gp4d6FziWGeXXkrf0p6gBBvN.CiodtbkFyLMP84iOaMjKhZiaME.7JFwF+BRMBu0rEy8CDW2BHG7AjZZqdwbaYyn4YtrPAplBt.vCYeDpBdGjbYof.iKsgCgy7KwQbb.vX50XN0KUk8dZz5eEIfbnKVNHCnjvPQSWf45HQrbVP9pDWmhM79..v3KJ1JVLUTr3VvsINjly2JlbCk.yVZnGOLRkDdSk.dYzg2BZvqCPxPCRvHHMKrjsOwi2RhDOWAtEki8KiDgccnrSXsCPh8RfBnggH3FoLH0rSAyyDpP4yWCcDtfuXPSSL2RKrviME+3AeW5zhyh.t4wHeSkkxX98lMzrBlmmUyiQECl69QhueGzQj1fcYdJcUIRRMURZ5Ewpa1boR6bBlwp2MiUWLS1d2LY07J9gtR+Hoi0zDysPyMTrPq1Wn0IrvrsuvrIWnlODTE4icThVGwQBE2fVgPwya6iE4aqRc1GWgDHNJatFkIdxCSGcBMuOtrPHSIoMqI2JoCNuKgdzArNHV5UcUZ1SV5CeR5zkCo1bBiZxn6v33coy8fz+b5YR+KoMaWT4xcTlL6ym45h86nXYwD+to3bzvZGh8erHZ5FhatPQYjjWagm70V8pJ1QWFzVHitEkv20CSOoZMf3aPxq3wnRr8b0E7qFeAWE3.Dw03KCiN3.J.qWV0QDWAFgvkWb9jeNd2sq+hRKuoGs5SyqFuzdUHqr46Jt1x4aHeoUx9tR6DOl6bvlOJqyRAKEMdY5wa8nxqV3Mw5K9Q4GIM8JQiAfWtk7XsgKH7FgG5g84DYvyXc7whR9Q0rlAtNN3HNySs13BFhp3mpC+gVN6OlqdyA+5qx8dhCuZKo0yUESpTs0qK4v4.ZEOmNBHhx1LmPWDOYsb4CXwBDYJIJfJqIRCH755OvMvJv2qPbVXQB2tZmwXpNfQwox4AFieV7pvMJWFayaAvogEdy4yaf5a+0h19q.KIp2oJcq176nFa9ZzwXymioXeYvKSWZQ4O60VT754VT10lK19C7Qz.OVPBCWBWibfHkOPexWFHdyE+S6KOM0mOOC42QQe7YEDNYG0oDhG5qRKVsFKjxSjFLU2ZUJSe1pzzibsJMFbYOQ2byz.ikH07Z8ruBi2TTtrLJzk2r8hDnbaFk4UkQI15Gz6i49jJUv95XuiNzpbtne5Vybqb6icwH8j1uN2KDIaHeQbB2mwhL8drnamW2CFAWS4EPyw2hzScgtHcmRsuIrHysdThZAhqneTEHlAFMna0mA.YctPL0tUz529qb6oe7lL07d41KD41VzcMhGyE4eVi7mRl7z8X5wcfMcJyO+0eRGgzqCSv5HNOtMpXmqUeV7Sq9rXtnE0j5.v.Cep0YtE2Ssk1XjnsueCzRq05UZSuXbL.SlR0iIS2Mtr3Ytp3z8V1T26G.zyEyaDgGqf8rpdFFse74qfwU6LkUYFsw50f68YBf6yB4DZksQhpUBtkvcBqURzBuMV.NJE6p9ZxRIaCOZ7BxwQ8vScTC9OwmXgYZ9cpIDlogP8fvsavWQRMoEekaqFWl4WaTgtRFcK2lLKcYqi4gzjKOZpDqR5dEDtm15tbtFSZoOYQDMgwDiSXosIePe3FTYo4RXg23rafsvYkwN8bkhgtA3WK+xAzr6+nMsk9zah7cDmK1m+LltzDFSCSFSVSXLMgwzELFSVmqLlx8u+9e+GSXLMPXLYMBvXJEbBclIzYlPm4hLcldtCNQazi1P7tPQ67Vlp1AL+7zOvnK2PqK3bCuwDtgmObCGpOqLVxSL6Ddhliacubl4LNvw63A+wrS9MtMlveL6D9iS3OdQl+3PEuCPtjCUbeV4UNj696rxwbnB2AFeyACpGFbOGF6QMjsO6s1Q+EMKKfeY0LB+lp9e2XF31xwlc3Ok4ZBZMu01Noo9DEs5WEy1uJtX+p321uJtT+p3S6WEW9zUTx5b0PNqVz8DA66haD0SfQDwa0UFv+2iapOM
              
              d.healeyD 1 Reply Last reply Reply Quote 0
              • d.healeyD
                d.healey @HISEnberg
                last edited by d.healey

                @HISEnberg said in Link multiple Table Processors to one UI ScriptTable.:

                any MIDI event

                I'm not getting a crash here on MIDI, but I am when saving.

                Seems like a bug to me.

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

                HISEnbergH 1 Reply Last reply Reply Quote 0
                • HISEnbergH
                  HISEnberg @d.healey
                  last edited by

                  @d-healey Okay thanks for checking, I'll open an issue for it on Github.

                  1 Reply Last reply Reply Quote 0
                  • HISEnbergH HISEnberg referenced this topic on
                  • First post
                    Last post

                  21

                  Online

                  1.7k

                  Users

                  11.8k

                  Topics

                  102.3k

                  Posts