External Sidechain, I got it working
-
Hey everyone!
I think I finally got external sidechain working with hise plugins!! so far i've only tested in reaper and pro tools but it working in both daws!
You'll have to change some of the source code and recompile hise to get it working but if you want to try it out here are the locations I edited as well as photos of all the changes:
hi_core / LibConfig.h
hi_core / hi_core / MainController.cpp
hi_dsp / plugin_parameter / PluginParameterProcessor.h
hi_dsp / routing.cppImage Album with all the changes:
https://imgur.com/a/DhRZ0lRsimple comp project with sidechain routing:
HiseSnippet 1970.3oc6Z0saabbEdWRMzRxwN0IAs8xs.8BE.Wgc4ehB8hPQIw.hZISHpnlfdgyncGJNUKmgc2gRhsn.9x7XkGgBzWj7FzdlY1k6rTjzRzVNwAd8EVy4L+7c9e1yxtQbeRbLOxxdiSmLhXY+IndSXhA6O.SYVcNvxtHprUqIivwwj.Ka6hesjg8FqYod9oupENDy7IYjrrNiS8IufNjJxn1s4egFF1FGPNkNzX1Ua1wmy1mGxGGIOLWqQX+KwWPNFKmVAjkcoCCnBdTOAVPhsrWqEOXRuA7qY54eFMlddHQNvypGrQZxs4gARDKoZs+.ZXP2TgM1B1ztYhdQsn+EninAzozyTA+FECmrUXpOrKjGdEyAOOS34Z.u4.IaCHslFROC0yOhNRjwQhmGi5vDjn9XPsaBE8bsr+Qz9bXBLw1CwWRZGACltfsp559bmxtte4et+XlufxYNb1wbA4krs9xM+Watwl+6MclkU+9ykm7Xh3ggjn4xVZoiV1B2hMd34jnm6bENbLY5DAwOuNEsXcpoI2WK0FSjy5vnhWNhvVjifUhpBz+ERPELUgR6+zDseuPZ.IxhBJ4OMGIOKEvMCGrVzlzZrPvY41DMoasIvy2z4.r.K8IRfG.4QjHAUpMrOfbEDfo8P1.c.I9RAeDnz1mObDmIEF60uyRvMlG7DyAWSCDCxH7cMGPnWLPXRYTplrSfJ0gZmcZ+sdPTbDD.CNcRNOF0McnTguHTtDUTFJeMtYFJ+wyalGkM+9agxN2UTtNp020cud8lGDeRxpdA9bRnBgO0jRN03AF.70+sY.32GeK.dPSA4FX7e.0RvbDbGOm97HGfFIhgCchACkuJYDAhJvSSlb+gY4EYse8YovDYyfwoPDYuELRCuOCc5fHR7.HupSh+zL3414ufLm7fwgXQ9zoxZHILf7A4xgISTwhohIlAUuyxwdWg3yPcoB+AyGiElCFkoOd.vXRkomfNreehuHCfqgZ+su+JCsYhSDblxCOWHz7J.8Cnrj8ihHPTF4Td2P7jshwCGERNAv3ycNOj6eYO5+jb6JDIQrsjyXKv2mwHgwqRgjR2Ysh2xMJmvGKnrKNBKhnxfniGOrGbkEex9InSFrHcFRF6JGK8K5QXApA+O3IgombrcBSuYXVVNtPByxyvrhbbwDlURYlUDy5Xh3ZdzkJCYxeCyRZ0Pn+d3kVmQhhk9y1OB4tM7Oq8BC4WKyjPS7zA6nhVWd3jQC3LpujjdFoR6dC4iYhTfZW3Xd.nDK0F6CJ6IcwxLIOCIqGCNrjns8m53pQQlSixcDLHSKPDqMFxcL8VgZEIffgpbcx6DVTxWKjpiVIgOBMbbnfZsPXnYm+vuqGTgbGjVfdCx6pcP4kn3Qgv0nW3AoY+1KQqqknpOLhTQiS5InXdewqNWsQ4OtemofYLo2JwqTh3ERvvscxcdeBZH7+aqXMygX91CugCrfgqqL64za5Xu1QT1Y561gjQaVGguY5XOXr1DqIkahVF22yxxP6sAJh3SnWQl0PEoyOscJ66kN6sTD1D0lPBNGduMqb7xKElmQNNpJNxQP8zB55KchOSx0GGltiPhFC0PIvSY3n75fOEELggGR8i2Vw7doAVKqT+o3nKHh3jKeyH95rhJ2I40DQxrLYRijTpMTcirPxMoWd+.JDehmzZLT8VqZyQAF2gEPtQVN+O4kWCYulgUnTlUXcXltyZHji6IHijESkuGq61vbTOdU200yqNTb6Rx0Z0kk8mCVmJ0puqWspUaznV8cJWMott9Fdxq3Ys2XAGBOl9JzyGNy5T7HT4Z2SzHmP0Jt02odsp6VemJtMb0vYczdBggSkbhUR1opU2wsR0FU+4.WafNg.oLhmFyVBUSGzt.n3kCJkPUJe+QR4cq2vsRkF0b81shahA6QnSjtro33yQ6rcx9zX2pt0ATO2LIkRpgox68AYFw2k4RRJ848vWMWm4H2wroVgKo+Pjw1aNIJLUw2JH+cpRdgav6T6GbGIZPPvCu4qDJFtzc9y4oSK7p3cOsgKWvMp9jH3YU+mQC99wRY30A9Y5NQlQ4MEZajEeGnjSs5PhtcqWtwtt0yUpcwUdSp5mqzatZVlYfShsSZoyaBbYYiUuVnIq6F1xes1bPbSzT2hUx3zhyubHV8NcqTiAManvS0LeLpGDZn5zuJevuUM14uhuh370DHnQ1NDukz2++ycsu+ity88+k9B33OMByhGwiysw8HComxYRYLi32DSZGQ9G5JfFz2miilKqe5qZCB4bWSOrXbj51eouYqQicJtru+f2J98GV6Wbe+gO.ZeWtdSsQJF6QkW59P1UjPHVPgwOCb96ig21OkZde4i3LdZqMxLzmPDQzKtPl7HC6yUfRtW5TJeQyzaDNkzer4K.mMbzQp5Gqjtv6d2mt4Zu98IWi1QF.57gaaWK9q51ttZMXrvxZvXwk0fQ43E1fwTlYMXbEKgT9ikP9XIjekTBo764RH+v+8ikP9XIjG7RHq92n5dVB4W1eAsgX+H9q70eNQYrw5JJftlo9gHsA5H4Xmo+ZMzuG4PHq5q78S6f67WS4UXMUVg0TcEVSsUXM0Wg0ryJrlFKcMxBZI8uRFlCD5dn5kissOjI+UInhtr9+n1MQoI```
-
@pluginboi Excellent ! will have to try this
-
Nice hack! However a more future-proof solution would not hardcode 4 channels, but let
NUM_PLUGIN_CHANNELS
do its magic, and use thesideChain
property of thejuce::AudioBusses
for channels if desired. The cleanest option would probably another macro definition calledNUM_SIDECHAIN_CHANNELS
which will then be subtracted from the total channel amount.I'll try to come up with something, but if it's as easy as just passing in the sidechain flag to juce, then it shouldn't take too much effort.
-
@Christoph-Hart Sidechain would be a gamechanger :)
-
@pluginboi How can you route the sidechain , will it appear in as an extra input in the routing manager ?
-
@lalalandsynth with the changes to the source code the routing manager should show 4 outputs now. I then add 2 more channels and connect each input to the corresponding output 1-4.
Then in scriptnode set it so the routing is enabled for all 4 channels and then using a multi node I separate channel 1 and 2 / 3 and 4. And then I use a send and receive node to send the 3/4 to 1/2.
Probably a much cleaner way of doing it but this was working for now haha
-
@lalalandsynth like this https://imgur.com/a/5bUDWAU
-
@Christoph-Hart oh hey i know your super busy but were you able to figure out a way to make sidechains with another macro NUM_SIDECHAIN_CHANNELS. you were right about in not being future proof haha i currently have to use two different hise builds cause protools only accepts mono sidechain
-
@pluginboi man I'm resurrecting a long gone thread but do you have any updates on your external sidechain journeys?? I'm working on following your original instructions right now but figured I'd ask if you had any new approaches or information in the last couple years!
-
@NEST-acoustics oh yea changed alot from this original post. I'll post an update later this week
-
@pluginboi absolute legend!!