What's wrong with my snippet?
-
Hey!!
I was making this saturation fx in HISE and it was working until suddenly it just stopped working (no sound) after quite the amount of tinkering. I tried debugging it for a couple days but it just seems to break at the most random places. Does anyone have any ideas?
HiseSnippet 5962.3oc68rzabbjd8PxZH4HIZIKYGij.iFJ5.EfzvomYH4LYg2YDeYIHRoQbnYVC3EiaNSQNsYOcOo6d3CaHXm.D.i.D3CI4vdJ4WPfyMGjKDaNjKKBPfQ.RNjr1IYujcOHDf8XfS8neTU+XlZFRJIqkzvTrqGe022W88rppqtlkYSnssokTpo253tPoTWFT+XCm1K2VUyP5AqHkJCnslMzAZ6HszwcUssgsjRkZ72EWepomPh7yyprjptpQSXPQRRaap0DttVGMmfRqU8gZ55qo1BtkVGlVWr5CZZZrrotYODtLNHmTW0l6qtG7Qp3lMFPJU5Uao4XZU2QEgLRolXIyVGWus4gFz1usls1N5P7CJR0Q.hV7Zl5svXLtTokaqo2plGMaKIkBTKfCLNkCbCvFZsz7KOfSbURExA8fkejZLdzabNzSgE8xwfdwfRoXPoInnz0.0aZo00InFL9bIvCLbfV6phX6rnBssRi8iuBXYSTKLbx1Qce3ZVnG76wrKjK2cjQ+51+fLYrf6I6flOrjeG4UM1Sy.lsoEDQH3IIqGuyGAa5LKtgjFk01Q0xgT0rJT.3VNjV5xp556fl9lc2dFMczLMl81Y9jLSiPFaScX1tVZFNy5NN6AcVA1TaGnt8ZlVXop0Tah3iL0ugpMBoqAU2ec3AP8Yyc6aiFymhGWjLisi7ApVx63XT2bWm5pNHZvirQcdYyNcMMPOL6MCZxMQ8kqq2W0p0.5paS3659F6fJCK1ZkXeYZSbcdEKsCfCnyj1DAoQ83.S8dXFb+PbllEY7I0sg1Q8a78ZS7cFOiMvdiaT7culErETW83ABBuFFOXVQsSWMi8FHTbaWTVYaSqd18kKRZQzQmT7f3fdMJgtuBrqS6AC.RyR.DahTVGLDvshG.TaEq8iTPclX3G20U2cWrB+MoUJipE2oLZF5HMRYOkZYSi.MJ7.aYpOaSuQ8NHvq2CRT7CZF1Dw13xmUAAwoCTqBp.aOYZFcFbMydyCnlOu4cjcrPP0uIDMCbS1T0XO3r2cgrHqZ4yg+M5WJwzPjM7ZlXCPkyNOtZeN.tx643XosSOG3rAE6h5qZnhPfV2QVQnd4RW98BSVOEwDGroILDcYm9FRigUm3Lh6HOzyH4RZFQY.yH6ppam7TBYtPQjIjbi3DRtQZBQroQjYGrwKjmxrCbFz2CQhyf7SMwOCxvc56Tn1tyxLKtm2j0skem2AQaYlF0jgf7nvEwQdZloQthgB1eWBhfsb.IYFEmGs34TQYAIJry3bqubqARIL.xWDwmdP7ZxeyxaY7LRUHfztwXhZZV+eCrQdd3FXCcchkT63lA6CV5q11WzLZqRBOi1xDPT+F9z9qOwE3Rh5TQk.RVXg3D7TJmPfg3hHdt966rZf68A2LrObgm5SZz4mqRd3iocwM9BOi5FDUxSlryP34wLLyfOxzA9X2bIx7zLxgqZ2cisNWnoixVItpo4wzmNNqQuN6.sXkRvMDkbFeFefjy3iMgzlTlCSCMMdfglyi6BMRJMUIWNJJ6va3hUnl5PxMbF2bCWpmiiogjVKbN7AdFjHXMJQ6zo7xKWTH3ZbO.BRCBB000ZAsHP3J.lHF7AANae4O3K9OqLLff3HfCDR29CxVUDP7ZXP73dNc64rkkVGdfHJobIW7.oGEF.OSHB40cAviO.ZYirIpCCCmqJD0bYLbte2cWyB9GxAgO7q9O9gBAgocgvS35d0BE9upHLBrdLHfjzm+0hi.qGCB70UDQt7p.dK9i17AQvxys3nAhY.rNM4kuKTP4DgEK3boNZxmWCDxgaXv79mHBu8R.eCviFdP4IdtbFMXbU.uCINn7Y+xm7uVQX09.2U7.4cx7OVQ58dvJpNp3Uay0zJxbaWnkiF1RdpUfGn0DRW6soAq.s22wrqTpw78lgTEbbWrP2PCzMUcPr9szPJ2TTfsHEoiX4DGy9vgZsPzoWAm7GWsMTau1AqY5m8jpt3HEgx.dH73cLQFmk1YOuUL8xfh4KUbwEJWnTNIMGXGuJtDn374KWpXoBJLkmm1ixEKuvh4KOujC7HG1EekvbF6GmB7IYjkuIZ79CvH4M+8kUJhxjCW1JZ1cQRrOtoi5AvGQ7PhplDH.o90MOD0MTQkIOdeM5SJ4Wj77x8rcL67tVpcaq0zlqmq.2Usmty851EpZgWSYTs3.bHUtjNJVADnPSqZlnJxkcgxjeJUJ2hkysnBoUaYt2d5vMLaA4fLd4aWtspgATGiJjxdOa31P7BNxfK9iFpx0zUcp6brdHHUaUuIgvkWGu3nAiRduxW0nEyXuPlmh0G7EmxPEmth2B8phZGQNZJ.4u4DftUUFAnspxK.IGQ.5a9zprRDSm96P+fqfSdHn3cLsPJR009XNsWZoap1RCYefAUR8lLjQZwhIggVZwRK2pZWUKDfXfnO8iEQQC..CCNVWZwhhIXLksF1wDCCtwbJAi6ggP+grC5iF3fNIfBgtdgA9.BAErjbRHHn1A5.I0bUBeQFuF1z9whsSKXHVAX6ms+vhsTHzQqUKcXMSaMh2YeH76UsC61E8VmzQ8H1M+gEamQ3n4B.Q0Od3v2q.nfQl.GA4wuN.QXNxjU7dVbGusTGjIFpKBxVXHwQkuOOUJIY6.6xnV8W+S9I+cUr6s6tHmko..4VKkH+K+IhMexFpZBylU+vAxc..b+EWxS0omkJIoIb+RhF9lJrzvkFlnkSXhV.R4x.FvHHEc8f9f2SARDDIQTRU4liuZ0PywdAT5ieSxanec0c7MzquiNJzbVaFawPrmr2.I1KAtOxvubMUaaNO5jL29N2PvBGAyfxyHAzAISMXzACfdPilGKJqOC390VSlLtbpRE4XynbMnJdriPByPU+hphI1EjZTBT72zcfT73fmHJkNIgReBCYRRBJfLO4m8yvVMiWraXjoVmSlR9PdYJJhmAfhWiJ3zeZr+hTyHVliIfMmWhTq6KREiPS+DxhSWlwd88+3yFgt04E533Im0BcqelIzkV7jzSRgpm.9oYgyPDSie18ID17GdzYqWvqwhnCgavYDcEFRfN9rOQfvWI.P3fbXIDROewDjykFl0MI.CNYmgaVNCvGHBxgdSNNjeuYYCH8eJSKMfbLmRxLwmJXfuQWgmDHXADGPyitvPP58M3nWuN+hQnHsPqdUR1RGr8lo.tfHlbyG7JdwLoXcNZq4xtH4.Ly3t8LHfmJre5Lhu9aGwJaMTzDJmPBDDjplwipn8ZjnqKI7JBlTHHhXNk..Aopq3QUzrHX0JtQhNZmnZXZL5QB7pfMLa0SW0g+DJhMX6VAFjrGKP7Q+y.MTGy5QO7wVbBwN1h8+TUJJ5dMPMMmlsiGeGKF7UR5bGecODnWAPODTAH6Df09Q88DeNgX6+W.pD6o+bbFbA3sfuda+LAQ3D1XQnG0qy850RybMMcx9QlBK63dXPS84ffs1rqEDKkukYMjiqYoIGikOui7N5lM2GanN59g5JvuDtEy1jtRl1ix1llV3CJqReOnrRaZ1Cu95an5XQ7ifn+5njSZBcWmUBOXLrEB5y47TmpCMZQd.uhmtUp3yvPUp3UYvFuJ8HnyglV6SNgtt+MxFGdB4MAFPaGLuDZErVHRaCsrIp0SBxkE8eR2SW27PrgEMWoczbForZl5G2ssogVSbQzV3QD2qiYOrUHJkbeU6sT0zwpG06Y2EgpO1nNpwjSdMVj7QzvNnmg1iqohWX3qAv64LRNFZksou7bBXcf.EQCBMuTyydlMcNAODdoAR4mHLtCwTI9XZONtdhjLEW.3AaRvdnwUQhCutDBurfYw0DZXGvPLFCJg0X7dBQ3anYrM+9N8Vmrg5QgJqX059AjbCzriRN5OJEKmSQYAjb29vCo3Jd4fTxVnvBJEJjuPohkKkOuBgA5FW8854X1AIJSrYIEOt.vR.RA3wT.7HhJZHPCbCJjSIWATCJWFgHKlSw8XfWuiooSabTYtvOM.eDHkR.alBbWkb7HDEAGJlx7YKlOe9Eys3hEKUToPtxtFm1D5cvAk3.tDyNrIIwIaX2UWyQJQYVZ0CkDhuP3XQDBK97TH77jUeg72Yk7G0n3.rYNbxerCF4M5.+DJRlwnH4Cr2FWaSUcOjj3iySpcJFzaZvQ6phBiMjwyqRPPje1rzpOM32XgvuWC6JkQ71GEy6yE8ZZZbbc9b5o.qi3XpVHunGhiraKUq8fNjgfs.2sc2.RBYvl+QWcV5xUQUXqwFQsqXuznCv4iGfb5yoXDcmHYEI.x2PNIpTDsHF0QRvltNjoS6lA6EA2j4axHswzlyNewrlAuBv1bWmF6P.NOd7awZ0koQmoxV9VKHKMhKibBjEiHBWwomfrw4QTo3IJC3QMraqh..OQ85TK7r0eFpKOMXYcDrPBRtH3LtXBh8Yq5tS05vibOtIfsvI1gs.QSNslZSbHkRLAtKIg9WpXnj6orXodnjQnxkbkfwAiVviv7u6pHsJJf6VnjKHiEF2SVlNsXxzzc0kyESfQZWi1LVkockaTYszNCqjmxqJhdyvJ5o7xfrWaUqVe+P1a5I9ja727te6G+WTIZP5OqBlFmBrUaKncawEBmdh+mUT+y+y9S+4U3EDSDe.8SWnHWbIA5FyvsIwQL6Oz9+cEthSSo3vpoPs6Ox5IIfdhoMARcCIIoXUTRS79JR32Cj.FiKXtDiDexnoCdqXRG7GbR8XVeZdYJo+uMV4qr91JLQdGNoxSDIT7fkxJBdT8KpJ.dHI8gWekutRBQdybjZ5+3+9wvGjjDZ7OYuu7MplTv1LG2SgbCL+qHB2zPKy+BV5NFoJoBBHc+Q+k0t0aek+k9HcKIcgz8vKcW36wR2iESRn4+M0jPW3rNIzRO+SBEPimhrbZJm+K21Tz0UQ4rcgUR116BWrvdWrvdgB4+zEEtqDb9yGI3w4V9hlLmyItg6M.6RSIKKaSFtgjOOvTrI7w7DxHShYzM1ucJvbumMBMlamVNsQvy1zXt5HSEMgx2U1.ZZrKDguPqN8r0ZNmsYOiV1yguDermasdN8rzrQbZ4sgs0ZhFXYUiVtW0L1x0wMV9gZNx0bxJqL2pc0Z1ntiYy8arArklZi61H.DM7.QCDHZ3BhFDPz.AhFHPnL2lvtpZVMp21r6bsPS6ysZ8MZr11qV+gM18nF6ZpCOtgEsM3MxCkatY2FcUsbZfjcT0af6SCGSS8FZcPzfSitlsrTaBsZzrsltdilVp1sQC67YOT8.o.M.7jAivep+9uLUHa5.QS7TIgDOwVGbXTATBoO1Gf5EI1eU03.LyIgJR1rwFz44o5dvoTh0L33QByKAKQt1oXHcTAgsL5xiCYJLe9xkyUb9ExmuPwRKVZdWGq2Wa4dNRQflzoc57JfM5o6n4z1Bp1J7rZh6XA1q1hm696.m94538mEVn5BOZhtUUzPGuHPmKDKN0A5jH.DK017uhkZaAgSs8TRHIjXK8.9b9jZa+ySM4jNEbEldVk5QdSIjjhrxJ9qouWZp9f42Yt+8ak9O5WTg2R.yjz0.GZo1E++cvdKmOjv2awH7sKF6y2fbR1F8IsTi99AcYP.dd9mkcZPKqieU9LsL9EdDF9.ERCND5T77IuU903gHm2mQhT+YvH8ZTsJyVDTe9yeR6R.uAKT7V2fk5baxYxR.XZ2DkaI9HRWJJ4gzmCp+zk9+.2X2TrKC.u2gzm18Mk2gF.jOjN0j8CnyyAzIA4tCRUhSGBmYAc1K3k7K9LH+p29O4W9O+v+2JIlAmB2fmFYdIDIk6NJt5m3wRlbkTLR4kO5I6K3pBWqspcDSGCITh2zbB1ex.r01KOR6Hjj7L.Team0sxSiyoQdswEMSqtP08iOSKbMCGpOQvq3feHaRmcZkmeq.5zfOhrhPgXDWAUrc2rz5NMyhiIlBRfucQbdOIfdoiGY+GELRhDT0i2LyJXV.IUi9nYbFMkjl9N9v5HTYH8DF8PDdZ8NV94t2wxW3c7b26Xzs4dn8Nls+dGK7xq2wBOu7NV960dGKeg2QpGvxeO16nemETazSS+EnyvjmbirT4kuXgQN2WXjqCxW.4OC+SghkVnzhJKdw5lm7hn6dnBdNr3L.f8A6F1zj2gI.W0oJNI+CJt2eNbGH7DBUpeabqHaTaBQ1DdCGCYfq.y.dcP4rkHWojKnTZ9B4xuXgnC8BEQR4kTVrPtElWozBjgFeO7zmgjwM7jH9SovVUKwGIQhIqO3HkFQ832DCsbzaSyxKt3BEKke9R4EerEMl1yjEFYZf6UvtfaYdZrtfxEJCWnL7xkxPtmaJCmkA958dTdw4P3hccJ4fd5en4Ed0U54hi2zHJ+j5MXMERWsS9u1SRhaejbYxD9fJD9H5OVrGQe9WQ5Z7Wmj9RmRw12Pu5dI14nTJ+WnpSGkF8kQXrAisJmFRcdgH0zASpLWV0QOlIOqRbu.OmhychXuaF7uF403u6LouLzQl3h65BdXCMX6veNPDCc4tQApweapw85oFYJXZf6m9KomS2XNQFCwjO8t3fh8kkI1d39Vl1+2tFWtPL2n2C+6R1HYgbfpq86cGpv.oN2kY1+xT9rImhHxDhgzz0gfCkYyLIBd6c0HeFmVBmwyQFywI1DCmd8ySN8m+0BxocyxcXX0q+RBqNNTOLudBWmG7227CxO4.iAHdDJ3d2Ija.J7hfWQuAfOmQr7CFw.TibQtQeO8Q.x01gw10hhY6JgKY2Q4caIRCDMT.122pPw13iPQboD+sk64eH29T4DRx+pu6SKdRhGxW+aiHlaQ1y9y46oT3tvfEtSSOW.r2uphQF2n5PSFWGTHatR4X9QQZPL3PWnsmir3e5ud1O3K9o+hJCBitAH5W4zQ.uHWLmhLoKZTMgdk4ENOhWCv8037kNRIu3jxL.1OktBmPzHqOJZ9gdWqEhG+cnqCItN5eY9LRK.4Rll62QkbErNRe+1XulemxqRxlgilFbCii9D+8pqKN6d8P7qm8WUg9wCx6Snv29w+2U1DpCwmhDl6o5643n1b+fuyB+CUdnAj4tm3eqRpw+9zUgqvbu7Iy8HeoI43dR29C94+FF262kx8dcPcGKnZGzHWmjAuGaz8IdgPhFGi97Rp5pja8WlUGwDIzSObG9k1s5C0z0WC4RkbrLXxc6AMwWUyAex+Pgznap1h2ZxIUomuF9R+xpjgx6pINXrbw7MgcgpNaP+BA3V4TU2by20xrW2v85YUHWB3aYgltwgJwTwiMfn4SGVZbYKSaabDBDXYyVUsdV6g4UAkrIDuFH7kglaYmUwSTumMDKCo0zS.Hn0jQIG4dSirZyjmUB8b9POWHzyEC877gddgPOuXvyo.7x3SJlL9FpcI2Y8LsbIMWoLTczRXuSz8Yqjg1uawdCkmN5sk9M.3Osh9kydgziqPNnGi3En9Y+cO+o+pxebwP2X3foXvwo8vw5Z3YmUMN.oFhJgl4l62BSuR4MIrgogo20FNqPORHdu8f7u0cwQPblXIwEGwN7spRegC40kGJdgh37h9Me8V.J5JisiI+pwm3fweE5SbvYOqaFWGgxjunpujOOeY.wzsL1S6KJT84QXLde3GvZtt+M8LsLt+mrjTioi76py84+w8S8C9fuP2shNXuPoB7lq1oiJ+pE3tqFoxrooI46ePITEqa9P3w3Gda7GCAM2GfjZ1FOlTB59ZtO7oX1BMtCO5AeS27HUbrP+swbi1rhYyd38V1dtGgTWO.J+.CaGK2hdH9H5suybOZ05aIeull8v2GM1ysgoExLrt4dGKqnHeW40zrfjOUDxlFxae+5CrAxTAc647qnwZ5pVPR+ZrPoFVVEIWzLqzCeg6fWoCDWdcSytqFvzwOR0TPD5V+SOmjG5n1zxrg6qJO4pKmTBRdvfvimFrA9YYEuuA2zE6pCJpfFMa5cbsiuO4Gg9TXD5SwQnOyOB8YgQnOKNB8oTe6CNfL2yp.4apmzF0VkpBmJPZZbo+e.pYLFgC
Notes:
You may need to swap the sampler for a waveform generator and the snex shapers require the following folder and files in the DspNetworks -> CodeLibrary folder (need to create the snex_shaper folder in CodeLibrary):
https://invite.bublup.com/0vuWAlX3jpdQThanks again!!
-
Bumppp!!
-
@Casmat said in What's wrong with my snippet?:
well I dont think the Limiters have been supported for a while - use the one in the dynamic processor, and separate out your effects from one giant lump of ScriptNode into at least 2 or 3 separate things: Saturator, chorus wave shaper etc.
-
@Lindon oops the limiters were left there from previous testing, is there a way to separate these effects? We were thinking that including the things like convolution, chorus, etc would be acting on the wet signal, if we put them in separate fx, then they would be acting on the final mix where if they were in one fx, then the chorus, convo, etc would be acting on the actual saturated signal without the dry, if that makes sense? I probably over complicated it haha
-
@Casmat well you can have your effects working in series or in parallel.
In series you just place them one after the other, your choice of order, for signals in parallel you can either
:-
Set up a routing configuration so the dry signal goes down three separate paths and put each effect in one of those paths, or more simply:
-
define your effects as send effects and have the sends distribute the dry signal from your master effects chain.
-
-
@Lindon hmm, just as a better explanation:
our main plan is to have a master fx chain. In that chain you’d have multiple with let’s say the following effects: chorus, convolution, delay, phaser, saturation. Id want the fx to be processed serially with the option of being moved around (effect slots in hise) in a perfect situation. Basically most of the fx modules I mentioned above would have the option to include “mini fxs”. Like in the saturation example, a mini fx chorus inside the saturation would have a dry/wet, where the dry is the main signal from the saturation and the wet is the choruses wet. So yeah the chorus acting on the saturations wet signal.
But other than that, would send fx allow this level of flexibility? Or is that what you meant for just parallel processing. Could the current situation be simplified/made efficienct whilst going with a series processing flow?
Thanks a lot!!
-
@Casmat said in What's wrong with my snippet?:
@Lindon hmm, just as a better explanation:
our main plan is to have a master fx chain. In that chain you’d have multiple with let’s say the following effects: chorus, convolution, delay, phaser, saturation. Id want the fx to be processed serially with the option of being moved around (effect slots in hise) in a perfect situation.
Well this is entirely do -able using HardcodedMasterFX, you "just" need to compile your ScriptNode FX modules into a DLL and restart HISE and you can then dynamically load them into the HardCodedMasterFX - so they are behaving as "serial FX Slots" . Here's part of the chain that uses 4 such Slots and shows the contents of one of them...
Basically most of the fx modules I mentioned above would have the option to include “mini fxs”. Like in the saturation example, a mini fx chorus inside the saturation would have a dry/wet, where the dry is the main signal from the saturation and the wet is the choruses wet. So yeah the chorus acting on the saturations wet signal.
You are free to build any FX with any chain you want inside your ScriptNode, but my opinion is this "mini fxs" approach is pretty "non-standard" and is adding a fair bit of work for you and confusion for your user base..and I'm struggling to see how this materially improves what a user might want to achieve: "I want some chorus on this....now do I add a chorus FX in one of the slots, or do a tweak the chorus-inside-the-saturator?"...boggle...
This is especially true if your FX all have dry/wet in them already...which serial FX should have.But other than that, would send fx allow this level of flexibility? Or is that what you meant for just parallel processing. Could the current situation be simplified/made efficienct whilst going with a series processing flow?
Send FX are (huh) Send FX... you can have each send slot hold a HardcodedMasterFX in the same way, just set up some send containers and add them:
As you will see the advantage here is a send container can in fact hold a chain of FX, I added a simple gain to manage the Send "Return Levels" etc. So I have a send slot where the user can select the FX they want - and a fixed Simple Gain that is always there and handles Levels etc.
Thanks a lot!!
-
@Lindon ahh, thats useful! Thanks again!