How to make Mid-Side processing?
-
a 0.707 factor is equal to -3db, which is necessary to compensate here since the signal is doubled on two output (+3dB).
Just made the decoder
HiseSnippet 1734.3oc6ZEsaaaCEUJNpM1sYXqn.aCXOnMrMzszTa4jXmfh15jX2TiF23Yk1MfgfLVY5DhHSJHQkrrgg8Irei8zv9DJ1Ow9B1S6k87dYijRxhRQMyJoooqM5g.euGdIuh7du7Ppz0kXA87HtJpE27PGnh5U0LODS2c0cAHrR6lJpWSqS6laa1tYK8CHt6gv6nrxgN.OOXeEU0BqwamZwIUDO+08VAXCvVvXUJJOgfrfqiFhnwZ613gHa66C5C2DMTp0y2nsEAuJwl3y7oBZUTb.V6A1A9H.uYSnondoV8QThqIEPgdJpStBo+gl6RN.Gz9mf7PO0FxELTLYcTf56Sr6y8X9uUVcWjc+tQu6dJJpZcimIJDLSbcsNn9nQ5imQdaAfdrExyGpSbbtmgr6UIS2yHC2SQx6lLv6XNAouuMflzy3KGg.HBNgm0FSgXOD8P4kqyU28cz5hnV6ls+NQF9Kag5r1eCW7mVq0fAPKZryNo18+pS5JcNBDuzQ8khZ8H9THa3Clz3RrzP8N.pK5aMR5TENkNUlyOgiXv.pn99OxenIKA0BxldvXnMafzTupB2TgbEtLe4xDh6KDlHFzfKqFBJDJDCVkK+OrGN3HgPv4jAmKE37xfymBbAYvERAVSFrVJv5xf0SAtnL3ho.WRFboTfFUjQikhfMR.ORRIuQGU+eQzwjGWzg1EQGmfniv5tkzLsbQNzvviqn0wTuE1hzGlHvHnQJS72pZC7wV7Zw5NtPGfKbSRWavg2vCLzwF1iE2bS8mZSr1yD8cvOqz2WpXoenjjMBGXEdCtgU3xOqUSWRm8Do3qqrk9mqW41ozZHqk+jDt5V5yDKM2V528twh0151r1Vtr95yzS+N5czQX85o5+Zh9+V0qTOgo0ElF7v5.go0zA39QcPptYAd2LqQrQG8g0My1KkYymv8WHo6u3H2eVt6ax8gES0AKls6uTR2OvTg6uzzkjWa3zpvTWh8Mv9CeJz8l56Cr8GsFxBhRVbXpwq3.A2Fina3.C4ekHrQVcbjQjVCkQ9TbCYz+X66SkXzclTxQNc5Hkbj.qFs60ysjSgPvLK4LYHXlkbzBAyrjykBAyrjykCAyrjyTgfYVxoXH3KpRNqFrbw50G2tIfBXTXTC0wVwbftTDOXRsIbe1o.h1xpIzaOJwIAyqKG.dEMS.02kyTTTxZJsN5MQdzDbCCaBmxX.4vu4m9s+3deIjt7PhOlJyvsqKL4YTXCJwiJq6WV6id1odqwLYyoNlLgeWs32H8ye96mnzqnfiLSuFE4jU504wN5m7zqyqczet4GliQ9QiR+9edRyOZL2bybQ9waX4GmbFuuT29Y7X71D9bY7V6Lhwaohx7NmIAMNY5aFU37237Nmwjw7acN8MCioKUbZodXowixoorM0SLpKkZTMhF0Y4iZOwnV8zvV7xmOrEufa3KMtgkhlExN47JQvmEbC+f.vqoYRcgfgrkWSQ1YvVfrT9.IiWDWMsyXe0zrsNsIf975BwM6YMVwev.naRs+ZCwPkd6WmFgddOnCDP6vqRMBbpF85slKw2IiMs42a5lt.Kw8wK8BsAFxRBSz1UcIddCXuNh9xKwF89t6vmqh0zCtOz0KoNVBjbpCOa3wdPdhOxJJKKt0hQoxl.Qx+mnUc9ak7Y+MX+YvL7etzpB4.SLxuIUyuIykeSlO+lrP9MoV9ModtLIcA6hiWA6N.mt.1RuTKWAEl8wvBzj7qNH0zQwdBWU5L8lPJuHsmTaOdNWYcw3uQ9EZJLdt6+AY6hQ9nIhuR1BuOqTFSSvW7qIb.v2lFoMYY0NDLwYWBFYkrvAqPvN6.ck88LegVlRY0sh0b8F8f1PfmTkuOtw5HLD3lrdXtlKLF+4hia858zBbWc9dA5ud7k0J7ZzWV6E+T2aERlPmM5tzWwWmuplXm.cNakWQNLrVl7sm3Tw2VI5fK7L2veKHTpV.h46rHtzCaF2Ea4PZOFQLtKMAiLcvo4Fx1wh0z.AFwwdDNWIM0Ok050IODdXjvCPgBKJPdBuiC75GfBE9Q96d.AsHm99H6v+QE9BsxLNRtdk2wEtS4lDK+gLVudk2tauMVq2xc5z9QqUlMEBPO.4AqVdY+9HB2buxl916A1lyI1d6N.OJz8VG.1WoouiMxhsvIN8p3EHHBkM1G7gWWIPUKbethg+7ct3VJNq9tbJG+AgTO5AgFBrbIaaEb3UdP7TBMrvWrHZonVGtrtgh3P1AocCYTX11xhWebVVhW1VTM2VLWtsX9bawB41hZ41h541hEOFK37EW1mRFFraISQ2VAUXTaMpBSAk+UOvjtV
-
Now I am reading the code, it seems to be easy... But I worked two days on that
-
@ustk Sounds very good on laptop, I will check it on the studio. You did it! Congrats man ;)
-
@orange ok, now how are we supposed to use this? Well no use it, but implement it, how to add the buttons for selection
-
@Jay You can use it bypassing/enabling script fx and simple gain units to send or stop feeding signals. M/S processing has been widely used in most of the recent fx plugins. For users, workflow is the key ;)
-
@ustk said in How to make Mid-Side processing?:
Now I am reading the code, it seems to be easy... But I worked two days on that
I am trying it, sides are working well while we process sides differently.
But when mids are processed, sides are affected same too. (I use parametric eq) I think they could be processed differently, does it make sense?
-
@orange They're working separately here... When adding a level control on each, I can control Mid without touching the Sides, and vice versa...
Or I don't understand what you mean? Is the routing of your EQs modified in consequence?HiseSnippet 1855.3oc6Z80TaaDDWBaEvNgNoYXl1NSePcl9mjR.aY.aXxjDCXCgI3fiEIocZYnWjOC2frNMRmfR6zo8iSerO1Gymh125zOB8aP6cmjrNITbsgPHjX8.i2cu8t8ta289sGWSGrAz0E6HIma6isgRxWSQ+XKx9qtO.YIsQMI4anzXiZ6puQs5pGgcN.YsmzJGaCbcgskjkyrNqcx4xJw+9m6uBvDXY.iXII8TLx.tIpKhDwsY0GhLMWCzFtMpqPqmu5FFXqUwlXOpMkQonjMv3.vdvGAXMaLEI4qTuMhfczI.BzURN6J31GquO9HK+1+TjK54lPFgljNsi7YuF1rMyhY+VZ08QlsaFN2ckjjUZFsRjwekXJkFn1nd7iVQtNWfZjFhqGxi0OySSz7Jlp4okh4IIXcY8sNpQfa6YBHwsL11Qf.D1JlksgEAZ4hHGKtccgZtuuRSDwX+zs2wRwdoaTm21avl+jJ06zAZPhL1rJq8Um1c5gvQbhSZK4TZg8HP5v6unwnnggpM.DGz2qE2nxbFMpTWeBFQ+ATR9idjWWcZ.pAjt7XYAMoCjh70jXpxoKxnYaW5Pq1bhwhDpwnkCDxIxDIrDi9eoeLg8HBDNmnv4RHbdQgymP3BhBWHgvxhBKmPXEQgURHbQQgKlP3RhBWJgPshhRinBEqESbOJog06nzkBuir8y6PYj2wov6HHuadEcCGjMIv83pJMzUqaYfaCi4X32HowxNlRGOKCVtXUaGnMvAtMtoI33a5B5ZaBaQ8ats5yMwFGni9A3sx+i4yk+mxKnC2.Vg0faZDr8Sa0j4UoegL9lh6n9kpEuSBtZhbYewEWZG0oinlaG06cuHxx6bGZaKTPcyoaodW0FpHK0JI5+x79e1JEqDS0JbU8+nc.W0xp.q1pUTmYt1q32KI5qEX80LZQZdxOZeMSqDpMer4vBwmCK1aNLCaNnyLjESzAKl9bXo3yAeU4ygkBlCh6RL.VVDGr4Ms759bnysUODX50a2j5NEOMwDCVZBr0FVHxV1v.jXwbfDYG4iDxUSpmME0PJPPJB.h.1tykjOhAVmH4ifvRgmi8RS9jIPXpIexFHL0jOJABSM4yUBDlZxmwCDlZxmIBDlZxmbABeUk7YU+sKZu9jMpAH.JXF4.dzcLanCAwbljqAOjVOP3gW0ftGPv1wvfMtuvqpnCHdNLLi7jWSnzPsFxkDCkXPSXfG8gI92O92+q6+LHY4tXOKhHV2lNPgpUTu029EUahcIB7pl+Om4Em4CISEWm7.hI9CThlQpW7H4OUgWgNGoFd0yyIsvqKhy1O8gWWTmsOduR0QrCkWOz2IGM.YS3gPy9VgdMHMcrXMUOC0lreDiutZJ0vmLnHyfETjRfP1At3PlgqdooX1anvWXuLYv7M9KOF70UZBFkSbTNw9kS7jXFzG.LCeWmN+wffY3WlZ1alDyvKVGb6QXFdGK93zee.uVgjOPXFzGgYXDlgQXFFkS7ctbh84NRqAeo2QZY4ym6HMeNwapb5X24m3c8oUjcYerapbZc06ptI6t9zzlLetIE5gkFr6mTWTmJwF0kRLpZgi5LrQsEeTKcVtUwwuXtUwQ2g3qs6PLe3pP5AmWMT74wcH9w9BughNwAB5R2d04Qm9kEPC48ozdU7XFrG3Gy.sbBSLnMKuPTydQ0U75zA5Dm6uUkOTIKIwtZfk2BZCAjFrrT8DNQ0VsV2A6YmRgLr+S6a6.L3ufCgIzVVPZPXr1tpC10sCc5v6KWwV2zyYO1ZUDmVTviNtw4QCfDCcXQCOwExB7QFgQYQslOJE2FvC9+LkRyOa7uC2h9mNSy94Rqxo8UQa3UozvqxbCuJyO7prvvqR4gWkJCkJISXmavRX2.XSwbAMEZ4JnfnOpLeNwemJBMsmuG2TE9e+nCIrjztBss+Xtjuxn2zy+WcWE6ecWhW.QtPazu.x5VzZFoYj6UGSGfmIIja7zpMvVX68wVHi3INnIB1aOninsm5DZYBgl2JhyTUaAMg.WgLeeZ0MQVPfS77gC0Zg1fuVzu8qOTw2bUYmEn91wawJyaQuEqW8KcuW.XBU5n6PdCee9ZJ7SBTYnUdCoXXkTwaO1YBusTXgKrH2feyATJmAZwNYgeQvl7K9Rvk1kBDiYRiQAS6WMWW5IVzl5SPAN1ByvJoH+4zVuI9gviCId.JfXQtjmx5Xeq9An.helM28AnEZzqgLCdZqOVo.Eijiag8bf6UnF1vqKE0qagca1Zq0asbiFa7n0KPWBAnGfbgkJrrWaDlotaAcOyC.6xvDataCfKA5L6QfCkp4YahLnab7pW4S.eOT5XezmLkjOq5VsYL59q2czsTbd8Rtj5egPxmrPnt.CG7tF9EuxeWnbNT2WKt2RNkFLZUMIdQ19gccoPX10vfkebFZfW5ZTZn0XtgVi4GZMVXn0n7PqQkgViE6iFL7hK6Qvc8OsjxnYc+LLx06kgIiz+AaLHA.C
@Jay orange gave a solution two days ago in previous thread
-
@ustk
I added a saw synth with stereo delay fx. So, delayed sound is side, saw sound is mid. If you look at the MID EQ unit, when you tweak eq, mids and sides are changing both. (actually only mids should be affected)
If you send this eq to sides, only stereo delayed sounds are affected, that we want that. But it is not working for mids. Am I doing wrong?HiseSnippet 2068.3oc6ZEzaaajElzxrNRIonsvK1cA5AVfscSpiiDkrsrQQqkskriPshUDcSJv1.2IjirGXJNLjCsWuEK1db+Ezy8XOzC8XOleBEn.s2VzeB6+fsyLjTbFZFWIG65zthGDz79l2LuYl26MeCG10GaACBv9JpE28DOnh5MzLOwkbvFG.PtJsapn9FZcZ2bOy1MaoeL1+Pj69JqehGHH.ZqnpVXKV8TKNsB+4+t55.GfqELUjhxCwHK31nAHRpztM9Pjiyl.a3tnAB0dgFssvtafcvgTapfVEEOf0gf8g2Gvp1TZJpuRKaDA6aR.DXfh5zqisOw7.7wtQ0+gn.zSbfrBFJlzFJR7lXGalEy9uxFGfbr6lL1CTnMZ2zYhBQyDyp0AYiFJOcF403.5oZHNenN0YYdFhlWkbMOibLOEAqa5HqiZDX6PG.Q1xXKGw.Hrqjk01k.cCPjSDWttRM2WWqKhXcP916T4XuzEpKa6Mdw+lZs52GZQRM1o017iOuqzigi3Lm1VJp0CGRfztOZRiUhFFp2AP7Q+cCYipvKnQk67SbOF0gJp+46GNvjFfZAoSOttPGZGoodCElp7xUXkYKWlPWadgoRAMXkUiA4EJjBVkU9+QeXfCKDCVSDrVFvEDAWHC3hhfKlAbIQvkx.VWDrdFvkEAWNC3JhfqjAznhHZZoDXCI3gkTFWuip+lv6X5yx6Pah2w4v6HNuaIMSKejGI1835ZcL0a4ZgsgRNFQURYpomRqenqEKWrtmOzC3C2E20AbxsB.C7bf8n9M2Q+INXqCMQ+C3sK8YkJV5eVRPGtArNqB2xJd4mVqaVRm9jH3uU4w5uqdk2KiTCQorGY3pOVetzR0dr9G7AoEW5wuGstkKqu8b8zee8N5HW85YZ+k3s+cqWotjp04pF8Pa.tpKoCbs0qqOeM60iZkLs0hr1ZdiTMO8CssluWF0VPZLrn7XX4gig4YiASlgrblFX47GCqHOFhTkOFVIdLHtJwHX4R7wN2xMbvSf92Q+HfS3vUSp6jbZhBiVZhKkTCht8mJ0f.X0jcYdtoFJDClapgoiAyM0fVLXtoFdkXvbSMLSLXtoFtVLXtoFJFCdQkZfshCcIzV8iZ2DP.TpFpwxnqXdPeBhsTq1DdDksdxVKMgAGRvdRLjlIB75Zl.RnOiQGO0x0z5n2DEPj3vEWEF0tHRb+zC91+ypOBRVa.NzkHxDsqOT3rD529S9qM5hCHBxZT5Gm+YY2B6b6appNhrT+iZoiB8qdt0mqPpDGhbCoF5sjWH0Uwtsm+PpqpcaKlDvrQn+QvVOMIhncS8VOPxSgtbsIxg.8CRxlsNfutv8a9xu3KdmFLAFwB97u9oOiKnZpm02sJSPM4ScymmSD7ZMtvBSl3u8xn+1yMGr4HjC9S62+GFkbve9r28VYyA+rs.2YRN3+OHl37ehmeUo0LZm3oI74dhmkTubNwSohhm6XNIF7hL2MpvntyN2wblTR+ayXtaXbyREuoPKrxncZCSQcpK0qqjoWMR504Y8ZOduV8E4LByLZ4.vtscQjc7fwusVoobQwoypIRMTFZSoUbxYN9U6LGkRlExO375IvWFm43Mi.eCMShODLft7ZxiNi11iFxGUx3h3pI7F4qlftcoCFXyxKjVMJcsv98g9xR+lF7tJ6VtdMhs7dPOHfzgkkZH30Zzq2V93Pub1nl8dy20GXwuOFgAzNtPZPnTc2vGGDzmNb3sUfXs6F5uOatJURO3QTpoxxnAPhgNrngOJ.xB7QVIQYo0l2KU1EvC9easpKbW4mi1g9S+4X+ckM3kiTwX7Uo53qRswWkEFeUVb7UYowWk5ikJmyD1c.dcAzkdgZtNJN5ihEIQjtzP2Mt0IbwbSt0smKqzBil49KPftXhMZhXqNsbOhldhJI5VbaB6CBcHIRkSU1A6h8N.6hrjSFPCt2eenunsm6.ZMBglKJUxrM5Acff.grY+kFaibg.e4bbi0bwEzgI9SZQlqNK+t9uOtszB+N51Ru3m5d0XBB5zd2m7R957Mz3Y20YLPdI4.tZ4xgdpWHNzJIGFgE4F+eNIQ0BPW1VG7WdgCkOhinKc.kbEyjlhRPN5DZCn6BQqZTAJYvdXF+GM02gV6sweH7jjB2CEWXYNxCYMbjUeOTbg+EarGQ5Jwn2D4D+wm7.sxTdO9Ak22Gte4lXqvATlrAk2qauc1p2Zc5z99aUlNEBP2CE.qVdsPaDlodPYyPmCA6w345rWGP.A5e2iAGozLzyAYQW33mHkO.h7Po88wu0rJQhZ4ZyDL3qdeIenYSdGPOBbDj+Q6vce9C7x8w9Cz2B5B4ubnyhW72cwyKdGKB0DnzScC7vAPCIBpxXUEwZBIgtxUORjTsXCuMoCOCQlxIBqJJjRbQpwnkkZoNhLW+oUawc6LgzQi8NAVzAK+EqIR6NzI.9HjM4.CQESEWUT74711kISHT+b1xSaBApqJBTUmPfZBApey+4lItje8HaYFpmtC3j3KTf+e48O3hXK8aC6SDcYGBzCs+ABHuYiMgP6mP8XDznQsZe+pIxEUfCrM93tzNbSe3SG1N+6uuw8PmRpRyFYxiuKbfGltgnkjm2k0EhcovMZjSbRG5u7ceHWJSIStykKmuxLky905pd5Wq6.fkOdOqnWEOKIx03RndGtbdxE05vJqanvuxfHOnATtG6YYwRrMO0GJeMpN1ZTar0XgwViEGaMVZr0n9XqwxmgFLhdqERvChxJPEzsUzYqTaM7rUET9Y.c7v2sA
-
it's a normal behaviour of the M/S processing, this is why a complex source is important to hear the difference
it makes no sense to use M/S on a synth only, I know people tend to use it everywhere, but even in a full mix, it is rarely necessary. I tend to use it myself only if I need to reinforce the bass in the middle. I don't see a situation where it can be useful as a creative tool. maybe in your case, you'd prefer to use the delay as a send, and treat it separately, which is different from M/SDo it in your favorite DAW
Insert a pingpong delay after a mono synth
insert an M/S plugin with solo functionality after that (like bx_meter)
When soloing M or S, you still hear the delay in bothbut if use insert a song in the sampler in HISE, you'll hear that the levels are separated and have no action on the other
-
@ustk
While i don't know HISE very well and haven't run the snippet, this comment makes absolutely no sense to me at all, in fact in most bass heavy music, the most common place to use M/S is very much synths and very much with EQ, it is very common to cut all bass from sides and leave only lows in the mids on most Neuro/Crush or Crunch 8s/Reeses etc etc, and most current bass music uses variants of those three sound design principals for their basses.Also when you change mids, sides should not change at all, that defeats the point entirely of the process, mids and sides should be separated, if you run a mid EQ on a side channel you will hear nothing at all because it ignores the sides and only processes mids, but there are no mids.
-
Well, as I said, with a more complex material I totally agree, you say it yourself in bass heavy music, which mean a lot of material in common in L/R.
Here the ping pong delay is either full L or full R by definition, and has nothing to do with a complex material that have something in common in both L and R plus specificities in L and R.
The formula for ST to M/S is as simple as this:
M = L + R
S = L - R@Win-Conway said in How to make Mid-Side processing?:
Also when you change mids, sides should not change at all, that defeats the point entirely of the process, mids and sides should be separated, if you run a mid EQ on a side channel you will hear nothing at all because it ignores the sides and only processes mids, but there are no mids.
We agree, it is the case here in my snippet...
-
Maybe I am wrong, but I think we are maybe not talking of the same thing
In a previous post, you said:@Win-Conway said in How to make Mid-Side processing?:
Take your stereo path, pan both left and right channels to centre so that it becomes mono, this is your mid path, take the mid path and invert its polarity (Phase, been a while since i did any code at all, think it is signal * -1) and sum it with the original left and right channels and this will cancel out the mids and leave only the side path ;)
Now you have a mid path and a side path.We agree for M, but not for S (unless I make a mistake)
you invert M and subtract it from L and R, which is not the same than L-R
you don't flip the polarity of R, but I do in respect with the M/S formula, maybe it has something to do with our perception of what we call M/S -
Stereo to M/S
Your Mid is wrong.
It is Mid = Left and Right channels both separated and panned (Not balance) to Mono, you can achieve this with zero balance and zero width if your software only supports stereo channels.
Your Side is wrong.
Side = L+R phase cancelled by Mid.
This will give you a stereo input and two stereo (or summed mono if you wish) outputs, these outputs can be processed as you see fit, then recombined (summed) to a single stereo ouput.I think you are talking about a stereo recording made specifically for M/S encoding, which is not the objective here at all.
-
If you can give me a day, I will be home and i can do a screen capture of it set up and running in basic routing in Reaper, and with MSEd, so that you can see the simple routing creating the M/S signals ;)
-
@Win-Conway Ok cool
Please if you can, just try the snippet to see if it works for you, because on my side it has exactly the same behaviour than in a DAW with M/S plugins,
For instance in Hise when I apply a saturation (just to have something obvious), M and S are treated independently, a simple gain module does the trick as well. -
@Win-Conway said in How to make Mid-Side processing?:
Your Mid is wrong.
It is Mid = Left and Right channels both separated and panned (Not balance) to Mono, you can achieve this with zero balance and zero width if your software only supports stereo channels.Unless I don't understand, it is the same than L+R
Your Side is wrong.
Side = L+R phase cancelled by Mid.
This will give you a stereo input and two stereo (or summed mono if you wish) outputs, these outputs can be processed as you see fit, then recombined (summed) to a single stereo ouput.I agree, I disagree
I think you are talking about a stereo recording made specifically for M/S encoding, which is not the objective here at all.
Totally, this is why here, it can't be called M/S, it doesn't stick to the very definition of the M/S formula.
Now I see your point
But... If I have the same result in a DAW with an M/S plugin and here in HISE, I don't know where/how you can apply the technique you call M/S, except by doing your own routing? -
Ok i think i see why this has gotten messy, you are talking about a Mid/Side recording, so Mid is on one channel and Side is on the other, I am talking about having the ability in an effect plugin to effect only the mids or only the sides from a normal stereo signal.
I think @orange wants what i am suggesting, Mid/Side separation for a standard stereo signal.
-
The definition of Mids and Sides is simple, Mids are the Mono signals, sides are everything else.
-
OK, going in circles, just wait till i do a screen recording to show it ;)
-
we both agree (I think)
but please try the snippet when you can and tell me if it works or not on a song for instance because here it works