Hi all,
I’ve been playing around with this in my free time and making some progress.
So far I’ve populated a couple of samplers with instruments, just to test different mic counts: a kick with 7 mics and a tom with 5. I was able to get the multimic merge working, and so far that part behaves well. I also added simple per-mic gain controls in the sampler FX, which is also working fine.
For routing, I’m currently using a container. Based on what I read in the forum and the docs, I added Routing Matrix FX modules in the container, one for each mic.
Here’s a snippet:
HiseSnippet 3290.3oc6c0sTaijEVFP.1AHYxlsp8loJsY2KLa.hk7evvxDiARBUvXVLI6jJ0TTxRsgdQVxkjLCraMUMuFyc6ivd6dWdjl2fc6V+X2pssvVXL1P6aBce59zmyQm9q++jiLMT.VVFlbwRbx0M.bwVfux051muy4xPct82Emgkl9oW.sOMkDWwqaHaYAT4hEa52gKQr3yv4762dSQYMYcEP6r339jATAb.rNztctGU3CPMs2JqBNAVmnzYJruhg9NFZFMQRyz7o3ZHqbg7YfCkwEaJdt2KacNWr+Be5p0xkQQLeU47RaTcib41HqZ5ZpxRoAJUqJKAPjyjsVNtXytmJz1vrhsrMvhK1LEMTutx4F+jtaC7InErpF.mPjqBpkcy9sFZpXUDmK2NmC0TOx2LYwgX5QsMZS6ZzdAeInJrU9sMdOygfP6ZPZ.iMUPwa5.hmHo3khP75hHEiPjlwUj9F9JJlvF1sofkmmvuutMvrlL56Don3VVtoVHA+NFnRnauVc4K.u0DknUMRtdpTqHjIUpk2LQBGuj0TA0.l6HqoUE8sxJosYS.l3qe8G1emOHTZ+cp7cBhas6mObEAos1oL5eRu0Ie7vC26.Di1p76WQH6VGWtboUDxs0m163hBUde4iOYEg7toNn7guKAxqvxV3vOV5TLSOEyTgsDxuo.pYNdaTybR4RzMElyo83bl.bNaW4LlO9bNKRA7HcF563a+ATde4G2zKqKzqhc7CjWUa8RMsAd44q8qNz9knlgoPRHh+o1T.J7WCZLPY8pWs7+JQ7W+5+gfsgvE.PCAcTmFKAz2WCEHx6RESnNTQHYIwUDJIsh.vVYs0Va4DwuT1DS4vl0qBLQMA7UhHSah3t59ZMZZcdR2O1mAr2qVMfhcxWV6pO.Ut.aHNsDT4kBupMKVF6.D2yL4VceWJDC1wndCCcThjuDUjPYhOO9B7GWyBWScaSCMemsjF5evktGgk2LdheNQBemh6XqeKGFBqeXF9+DxxCUv1dnxPv5er7Pv5GJSZY8C3q8pA6aQBntFTGHTqothMzPWftfIU7knUDtTVCgdfrjZFJxZBPcUvUHKhut3jtbs10.Kjtlou3PyQx1111DVE0YLYPRXV32Da5JaXWkhmbXEgS1qxINoPnvNcl+NASCb+YbGFQmOf3d7nrZzz1qKO96FpjXGX720SLJ4BJzcisWIcKE1bK9RjTzQ86tosnK5Bt.tXq8TLkadkP0lV2fjVDUhaTPQEp6xIhPnhIhtqT1t0MqiqtC6PMbGdyDjQslPharhGizOn9YkjQepuht93l1yrfLXcwAjvb1UuOT0ayPrp5ONYRmhf5+mZsrXG73HZ91Eamuedk368KwO2VXPeV5srfrYcUTBz.3B0I+6focJTPqx5HtkP.8iT0LA0MtDTAnqh9XpCbpdRD1Dd389proWQPD2IzozvZB9sT73jUUVUs6sQb5FoyR52B+LVUCUSwVmvUzfBfTOUxfMe59RA6j2cS45BmwJFg+vgF1fx5IWNApMPTDnIUqVWo40YTCX1Ux34YaFVESp6.66644WPzbICNAU9dOAUx4Oq3BsPTPC880g1ka.z60rp47viPSlcIOoBUTamoxtj2TYqnAUAlbPzLVeNO0rGD4bjcxEevEE9HQymO+0HwmzCI9jYHwmrCI9jaHwm7C.eJ1z11P2gOufuygRo4zu8l9gS+N9NFqa.XDspQNUpaiqHIejFR7I8PhOYFR7IaW3yG2eWYaY7JY8vAPXCM.l1PLrSrcAWBU.tqqMN+t.qKrMZvEapVSbAsnb21eQ+U8JqCzbZ944c9aQtqZ2feegqIa8eBpZedqLJXT3b.7ryI1xhqKDKAQasvf.KcE4NbPzr6Vntgpm9n.qhj15jamxm+Zc4qHERKaPiJv+ouY6e+q+5+8MVMqUChJEOufZQT8UU0.GYXAwn6sqqzWsAWYiKEZwwbMjMQJAg1zx.wEMUTpWp3u7o6AUbmx2ApX5dphxibUbdd28OoO0xEGjgZ5gV90yF4Z4L7keOGzFT2e+.WfWLuTlLqKkYiTCeUOaO6lpOxU8Y4waa0HT4y0KkWv7dv61cu5Fgpe9do9EZdeo9GbaU+3C1DnHzBURm+8K36RVZ68OjZbxe4u0w3jYJzawycmhCtqA9KFfn3Cz705gbijL+gCJ9wJ2NwtKVU+4Xbfb0Vywv4u68f8+4VFR7NoQ70UB+4MijnXp0EkDywU8r1e0yHkecwMRkZ8TAbGhymMUZQQo78ouvMMyHxwuQ83G3YFMa+OlZvYIOoLyHoAAYI3D3mzGPMxpd5G.CnFYkOyChATir5m8Aw.pRCDzuzMB8mf2+rJuqg+QRdmGG7y3KYn1TS1N3oSi+l4Q.a+HORX7w9pirqWStgHCsirteEwug+Hnsx4cWFmpKxHG2chL5cP+Kx6dpEsEvY3e6Ob2bp9jM+783xY7T9KPSIBOsJTN.ygw8ynQee+LhM8cw0qfer65Uv5N8Pn6Tr45r8iyiOKQ.pIws8h7DGXSPgX59VHDC2FD3rK4h8GOrY8JnNTJ.jIPGAdiOkkXOCuyptoSgS++P+vmLVqDdDEIIJRQTBmdJDmvDcRv0lsowom1inShXsIlgjsYnXaVRhYoHlijXNJh4IIlmh35jDWmh3FjD2f1HDvDI1gMJnQh1JIJEfrDM4zAHmllb.SkHssRLfwpcJtAwST5ggmnOQZKb.CLs80wfNimaZFJeXGyIuGwrT9vLOwgumX5G6dhQGSbVO2zbT9vNNey4QLOkOLySrWdhYXdhi9Qmm2yMccJeXGmu3dD2fxG9gtmXVlm3D07DS34m5lhvK1026I9jEo8iG68Dyw7DeDshkE7cToWYmqu2h9joWa2nvSLOySjs149DSbIeGU5U24568TexsVeGom3255I9b9J1l.45HeiJx0anAL8bIsbSg8KGc6LZB9Z0jqplKeVjnBzLjUINBC7g+UnXyZ0.lAy8+TvoE2ttQS8.MomFcLnAP1tj6wm3Qb9BGe76LMZ1ftVBEb1kuSLkUt.YTHU0x5.TeOaRUcGSCKqZHsxgWVjjNpo4YXSV6bNFbIvzJXdn9gj8.wKm4iV.b+cnhem01k1oURchrSe9o3cSKRkVhJcZpzYnRmkJcNpz4am10fVRtA1GIty9meZ85cbWmms+foP7w4PWHJYQ3YsZC2bl3dPgS.63cf27XbeYrBDa32S+RTGOTNXY7476BpI2Ty1O2fasaICciFmanCUB5libaO6LfIor2UEZaaamaxheNunvw.MfrEf7H.O.pCjMC16cfrEhC76+rqeu9C7thq.F.SXx8jJl9wyIUz9j+bbseWa6Sv2foXHivwwsKPSNfs5uG3l8v84BcYLv8QcXLsOxPS1j1ROrlSWrY5a2AmWc6XsKKFoAYlG2ERmO8i2B4yv2jg6IQjZUFeaWWkwRTqxfyadpccUFw7mDKaUFitUYvEALzvhuEe9qLLTFFJCC8tCCcHcKGnwPCbKGXXn20XnoYXnLLTFF5DGF5P594PigF394vvP6OLzLLLTFFJCC8QDF5P5lkQigF3lk83BCMKCCkggxvPYXnit6DIMFZf6D4jHFZNFFJCCkggxvPmLtMucfgF717d+fglmggxvPYXnLLzGC2C8NvPCdOzowPCyUaId2KQo.xywzdLruvB7N2rTA78AdruevTgc+TlNr6mxLgc1p7gc1pyF14BLWXmKv7gsmVwCaOsRD15wdRnqGagvmKwhgOWhkBuevS6refh+mKtXy482Nw.0XSCzwWVYmHxfF3RfVfPhiW3uYd9RhqhiZUbQptRqhCTlQntOguT5U8h.kQn5ywWJypkeeTpZb9RYW0IRNEMwN2p3PAzpUhX0y6V8Ch3yPI5WPrne4Fh9AyE8MU9VrgH2tIyOvCDExyPoiGDUvmgRuWJ.cv4A+.LXAmGVv4gEbdtoq7Ne+7.CwQYNVv4gcs0t+ez09dhrfyCK37Ld3IxBNOrfyy3gmHK37vBNOiGdhrfyCK37LR7D6y.QA1ujEHJFYAhB9Ip.QA1FwBDEOlBDERr.QAKPTLwrqbgcgWB9erKr.QA6BuvtvKC6C5+220UYjfEHJ5iUYvEAbLIFNFCGigicOgiwBFDCKbrzLbLFNFCGahCG6gb.YHJ3XYX3XLbLFN1iHbrw+fhPTvwxxvwX3XLbLFN1XTfIf8nrlr1q1GxuIDxGFE+n8gQMG9gQE4WmT5ayqSJys60Ik8185jX2MoGX2WyQ7aTi4ELV5ETWVwz3TECcaSCG7z4cxAAqnK6buw3KgSKHxcorVy.KonNTEdphRPV0QEkhZESG0JlIpULaTqXtnVw7QshqeyUDe2q1tosQc2YcywU5n8bGwH1dsFwXZt+OHGS6jI
I’ve run into a couple of questions / obstacles with the Routing Matrix approach:
At first I thought I could access it through Synth.getEffect(), but that didn’t work. After searching the forum, I found that Synth.getRoutingMatrix() seems to be the correct method. Is that expected, or am I misunderstanding how Routing Matrix modules should be accessed?
When I use removeConnection() or removeSendConnection(), the signal seems to get routed back to channels 0/1 automatically, and .clear() doesn’t seem to do anything. Is that expected behaviour?
In this example, I added two buttons just for the first kick mic:
one connects / disconnects that mic to the main bus
the other connects / disconnects it to its own aux bus
I’m not fully sure this is actually the best feature design. It might make more sense to have a single "THRU" button for the whole kit that mutes / unmutes the main output using send fxs, instead of handling everything with Routing Matrix instances. But I’m also using this project as a learning exercise, so I’m experimenting a bit to understand the options better.
Overall, does this structure and routing approach make sense?
PS:
The code is still pretty rough, I’m just testing ideas quickly for now.
In this example, the rack tom is not routed properly.
I still haven’t compiled HISE for multi-output or exported a VST3 to test in the DAW, so before going further I’d like to understand what the best routing approach would be.
Thanks again!