Rebuild for More Outputs in my current build.
-
@Chazrox No need to tinker in the source code for this.
Add
NUM_MAX_CHANNELS=24
to the Extra Preprocessor Definitions section in Projucer and then recompile HISE. You'll also need to include it in the extra definitions section in your project preferences. -
@d-healey 'BUILD FOR PROFILING' or 'BUILD FOR RUNNING'?
-
@Chazrox Profiling, unless you want a debug build.
-
@d-healey Got it. Thank You.
-
-
C Chazrox marked this topic as a question
-
C Chazrox has marked this topic as solved
-
@d-healey I have everything routed. In Abelton all my channels show up but Audio is only coming out of the first stereo channel.
Do I have to disconnect these before compiling and the DAWs will assume the outputs?
-
C Chazrox has marked this topic as unsolved
-
@Chazrox Start with 3 stereo outputs instead of 24. Once you figure that out you can scale up.
Here's an example I made for someone the other day, should be useful for you too.
Use the knobs to choose which stereo pair each sinewave gen is routed to.
Use the buttons to enable/bypass each sinewave gen to make it easier to follow the flow.HiseSnippet 1606.3oc6Z01aaaCDlJNJsVscXcnXXeZPMXevtu3JYmD2gfgl26LZSSPbZ2.ZGJXjniIhDolDUZ71JP+CNf8So+C1NJIGSaq353l1AjZ+IQd7t643c7tiRd2PtCIJhGhzL1uS.Aocc8lcXh1q2FSYnFafz9Vc+XOA897Xw8EjHw8spXUwFsVm.bTDwEooU3wx0pUbVTxu2+n0vdXlCo2THzK3TGxSo9TQuY2ckmP871B6R1m5qr5EVogCmsN2iGC3pftEJ.6bD9PxyvxkMiN5mwQsQZ2QeI2V3kbqunkMo1CcqW0t9h+3B0Wxxpk6CsqeP8CpgcwKU2BoM2ltTAOro.C1.RSeMtamls4ugkpfWPinG3QjCrQMAMmN8VbOWoIJmcmiIgGSIuo2bVHz5sodt61cSLBARd2daoER2Ruk91TW5oy2aq8qSHX1iC0MUsY5GxE5Cx1pP1RAx4.IMEHMaJjtodSmPZfnGEIdtldClfD1BC9NUnjtVzL3Y0WmCqfIp3iOhrUHL3TNJAa62yrlkU4kMLdvCL2iyEl9XQH8DCvcFILCgYRL9Ftl+jYRXVkCIhFtOkFIJMuTz.QR37keo0usrBSamHEUd1ChForCSITRQvYJOYgoZGruLQEImrgaTdJuInXyeAeLw7wD.BXXie9xKqx3of3k.1LZwCMKchIkcpTKaTTYcUBhiZW5Lv6IkSg4sMOhwOnK7RdFje2sXfsU87Vm6GvYv3nRy+DXEu5UtRfo.fD9.seRkHhPxbH2acrm2AvglRbljorYk7QYdRSsULyQP4Ly9VPImtZ6dlGi8hIkM9SihdbGrGnIWhz7STWkjQ6zpGCRYWLNvEBV2IVDDKQBijninRIqtqHW13sYV+VYfHZHTMVBpG1NFvUxbl2wr5xFEMJ1KroB10smHJYYdWyTwHWaYPVkSXHUPQwNxyCf3NSAXOj.fIrSEhLrm.dASA2DBHAd7LsuaUoWxAGQL4sLwLSRXHOznHskYoamoPv8AFy4.0xSYiX8CAxD.9Vi2ZHgogh2+YbXelUJYyDHaNHoVsxkVV.iGILWxxD5gihwRrX+CHgptR4BgDTiJQs8Ykn1I8LixB4rFLpXm.R13gyKhxNnAYHmKCUvREI4G+pr7iM8ntjPDERCdEc4AEKTBfUKsgFalsGj42+nwm4pCo4UNSlWKVH3rDlKpmN37.7bX29ii8p4v9yarAVfk0mxbDfyIfDJnR+t1FjigT2oUqJpuAI5HAOHwSkkvA1W9f9pSf.HsuGzUG4C2Bdvm555Q1kGQkwipdhHAInI8O.ApqaWwB4iOYf85wVw1oJ9u+rq3poJ9uztnU7biQ7kByarRmSG7tWtRP2ScMbk8SlSsVanEuPn6NnWhFIBcSFFNl6hNefvVADu6nyKHpdw.hpp6DcNufn1YBhg6hC5ej6F6IYSsoRY63YDjdb0N4jcqwfHgNpwAC1o4riWmlpMGmS10wDt2TeWpvoc93clbvKjv3SMdy5a+F5a1pETPsGXmUeqecjMoegCkqdF2J655m1t7ExcwBF66hoUXTl7XcUpbtixU9TcsoOqAySO6cY5r2WkBkqkjlN47W1KDI2BXpac8eH7et3ODtii.T+9gXVT.OpOA2j3S2GJVEoN4yifaqS988jdY04WmiCykz6ezVfQlKOMwh3vjvkU84wLQegGEFaex4H4vrSSNbA9JfJ1EiMo9AdjMYGS7fFuSv32.cZ2BG6I5Na+EW1ly3As4LpipSeOBbCzCOjDph8bMnUEBryQ8l4VqrGwifUCf+gUdJD3gCg8IxDtWXetecX45u9N8T3ZJOLZd4HodguLSp22qeCttyyh8aB4RcHYujF4KZPaFY9vzwVxwoISYtIC9W3WFQa4XsLh1cINoENpNsvwzBGWBKbTcZgioEN9xrvwLipvQgKpBG0lV3XZgiKgENpMsvwzBGeYV3X1QU3PenBGCniajqNl6i5VMYDqpVVq5.DqoVVq1.DWP0tVX.hKpZWK9+kcgFkcoMJ6BMJ6RaH6xG6DxesS5WMUlW3pIy.wPrj+XSE02VN1Lmu0pOTg40NN8KpgXr5jxXsIkwElTFWbRYboIkw5SJiO7CynrAfUiEb+zzeHz16tYxG2VSq6muCxzf9OUnnmQA
If you want to visualise the routing in HISE, then change
const rootChainId = Synth.getIdList("Container")[0];
to
const rootChainId = Synth.getIdList("Container")[1];
And look at Container1's routing matrix. Remember to change it back before exporting.
-
@d-healey I jumped in on the deep end for sure. lol Thanks! I'll check that out now.
-
@d-healey from what I can tell I had the routing done right but its not showing up in my DAW properly. I did export your snippet as a plugin and it worked properly but I cant tell what im doing differently/wrong. Does routing have to be scripted in any way?
This is me mashing all keys so all channels show that all samplers are independently routed.
-
@Chazrox said in Rebuild for More Outputs in my current build.:
Does routing have to be scripted in any way?
I don't think so. Have you tried with just 3 stereo pairs?
-
@Chazrox this is an issue with the standalone HISE version. You need to hardcide your routing in the script by getting g a routing matrix reference to your main matrix (the one at the very top of youe module list that has the same name as the xml) and connect the channels with the methods from the routing matrix API
-
@d-healey I have tried with only 2 & 3 stereo pairs using the same logic but it doesnt translate in DAW. The channels appear properly in Abelton, but only first stereo pair is active. I cant tell what im doing wrong. The snippet you gave me doesnt work by default, it only activates the other stereo pairs when I move the knob but if the knob isnt moved, the current value isnt even active yet until I choose an output with the knob. I want to be able to do this without giving the end user an option for changing the routing and be set on OnInit. Shouldnt I be able to do this without any of those knobs or buttons? Is hardcoding the way to go here?
-
@aaronventure I'll give this a try. Thank You sir.
-
// hardcoding Master Routing because the standalone app always defaults this to stereo, unlike the plugin const var MasterRouting = Synth.getRoutingMatrix("main"); for(i=0; i<24; i++) { MasterRouting.addConnection(i,i); // 1 to 1 channel routing //Console.print(i); //check for correct channel numbers }
Replace "main" with whatever's the name of your main matrix. E.g.
-
@aaronventure Sweet. Thanks! I was just reading doc on this and scratchin my head about it. lol.
To be clear, this sets all channels to 'active' state on OnInit by default and thats they way it stays? This is all I have to add?
Does this produce a single stereo output if the end user doesnt expand the outputs to separate mix channels in DAW?
-
@Chazrox this will route all input channels to corresponding output channels. I'm talking about input channels of the matrix, not the plugin. The output channels of the master matrix are the outputs of the plugin.
HISE Standalone output only shows 2, so you cannot do this via the GUI. This will be ran every time you recompile, including at init of your plugin in a DAW, to make sure the routing is correct.
If all you want to do is have your plugin output audio the way it's doing in the HISE standalone, then yes, this code is all you need.
It's frankly silly that this is so obscure, I remember scratching my head about this too and finding info on this here on the forum. So I'm just paying it forward.
-
@aaronventure Thanks! Obscure yes, Im a music producer by profession so I can atLEAST deduce a signal chain, i thought...lol I assumed by setting the routing in the matrix section of the plugin would suffice but thats obviously redundant. Head scratcher for sure! Appreciate the help! Im gonna read up on this more so I can get this right once and for all.
-
Results:
Got it working. Thank You brotha! I think im gonna add routing options after all for end user. Thanks again!
-
@Chazrox @aaronventure I find the routing quite a bit obscure too. Perhaps we could have a clearer general routing window for this, with less limitations, and where all connections can be seen at once. Also thinking about the sends limited to one per channel among other difficulties to understand what is really connected to where, name and colour the channels, etc...
-
@ustk I think some type of window showing all modules and routing options would be great.