Unified VU Meter



  • Normally .getCurrentLevel is used for VU meters. But with this method, left and right level information is held individually. getCurrentLevel(0) is for left, getCurrentLevel(1) is for right channels.

    How about a unified, one VU meter? Not left and right individually. How can we make a One VU Meter that shows both channels in one strip?

    HiseSnippet 1487.3oc4X0saSbDEdV6rgDCtBp.0d4nbkohlZmBzpVUgA+CjRB1DmXZunBMd2w1iX1YVs6rIXPHwiFOB8QnOB8MH8L6306tIlDKqRJQMJ2LmYNy7c966bV2MP5PCCkAHq02ehOEYcM6dSDpwMFSXBz1MQV2x9Ix.1ajBEgi6e.1ipnAnGMwmDFRcQVVEer9nVquBJ9u+9AOhvIBGZpHDpuj4P2g4wToR6V+oLNuMwktOyKyoua8scjhFRtLBfUQ6pHehyqHinOinOVAaj0psbYJYPOEQQCQVq7Ho6jdikGILmuOKjMfS0Kpg5AWjQbaI2UiXsTTiwLta2DyODgrr6l5LJZbF2zdWlKal7Tmx0i2.mpQV+gUgyBd0xBupKN7rx.uULv6F18bBX9pzczX6p1aKfPzPBDBxBKyYQE7KX2.hlTgZSOxqnsCfEyznx8qV8N36Us5s+4xkJWBBDgJ7gj.bmHkejRGpw+BNNEYyQTUqgCoNpJajt6FFEyp5SExA0.sRdUPuFROeo.VTYi3ci0JUitDAk+wUwr8rWpbou66vpwrPL7uTvmfGJCvb5PE1YLQ.mcS7SjGgcHB7QTr1nwDbGAUmNuqNcFzlnvgPHJDOPpFmnWn9xMu1lgTkNOMnAgyG.IjUFFIbTLonxsKW5skKgg+hsE8I6S3QzJsDiXBpF7MoNrAv80VFncRsINP9QkTuVrAFED.l2NzCo7JUu82TCBBZSDWtz6JWJwXSPihDXvSk6MMVkfGvE7Loh1A.Vo2VZ8RuqD9jaMb3b2S6sCjbNboyaayycFJVQD4MfFbGHFBl+rCB4q4KHr+3EDYqWcLA+LGTJ1VvTc7ohOVYBZZFitfYJpfiphKW9hokK83LWfBiAUEWwNNjghAbJEzu+AzAa2jnHIWCbivq3SCTLsAX0jdHPnYpBW2tIM7UJoOvMMKIEJCO2G80ydvObP8IyV7d25gJpeO1anYYU8Homu9yqOjw8BUvMusGPMhr1v9sc2qyu1pw9urcmcZ1Zu2sSql8OHN8tZsM8EiPPzomVivzm540Oh4pFCgDqif0iorQiU5U+ArhE1WavNDtl9.kw1JYrsxI7O5bxXSaMaS9YFa680yXanep9.Y.3H1i3xhBy1hvHOuUCXPQ8LsB1BDuZhXE80pjNDqu5wGer4JFcZYoWPV8QmlLEnzktQbhJOOut5b5FPtdNBUMooHjoljML8Ig7eQg6Mr6xTNimOdKLG7B42epw6zVoksM8JRA6J1s+sK39lqMaFGlmOm93DnbM6Tp3yXzFDpIkSx49dgo7YFwQ84L7y1hCg5ntRNI3jN+h4s3hKFw3brxUV3Lj3V3WZxn+R6XW9kI.GmRb4AvWWSY+Y.b2SFoXhQ6RfVTP2C6mAcq.VaGZioyhoaKUP2g2rtpdsFP8nB23E.k+wS2rlds0zMqkrYVWxsLtjqZ+Bxgz34Ym90N50v7id3GSEz.sup1YPI7mK5W63uvesSGGE.g8CHhPeYHsV1a9D6sUdtIUjH+wMhxcJs4ASg5k4bqUOQ3VYEBoE4tLXctaZWVZSdze8fVBBDz6QAqwsSnCXrZeW17ltQ7PZb0QsrJlJdqrheBIvEhKNmEe4JKFe44zgX0Oq+vuKtQUJtXvcNdvBcO0uiv0m1isEz7iCSNOiMeHIhqRjluzZWoP5OVJX4B56QAFgQin4xklqA8PkB9vrTI2r9dTNkDlVtgcpuC7IYj.vOQWRew4zI1ZAiWessAtXMevmWsKthA1kr6CAIG8qanFSVhmYN0NezdPHceRLbN4DQZkxxUE+Ix4CLmd9zkNv7uxLzE+e4LzKNEDzS3xyjOekMzmZKbb3F+ee79hX.nKh2vi3DHeoi4GeQyHtVrDvtEw+.tqauqdMd1u5hsc0Mqh7f9puzwQmS+sf+Y95r0Rny2uD5b2kPm6sD5b+kPmeXIz4GOScziz7vHkzyj+CB51J9W+xxxLUWbo.5e.7BKcQI
    


  • @Steve-Mohican So you mean a mono peak meter (note that VU is not the same thing).
    The way to do this is to compare the two values L&R and take the greater of the two, that's it 😉
    Try that and if you can't I'll help with a snippet...



  • @ustk said in Unified VU Meter:

    @Steve-Mohican So you mean a mono peak meter (note that VU is not the same thing).

    I didn't know that VU meter and peak meter is different. So technically what we do with .getCurrentLevel for left and right channels individually is not VU meter?

    The way to do this is to compare the two values L&R and take the greater of the two, that's it 😉
    Try that and if you can't I'll help with a snippet...

    Hmm I just thought that a mono meter should be a mono sum or something. I did what you suggested withMath.max . I hope it is correct now....

    HiseSnippet 1492.3oc4X0saSbDEdV6rPhAWEpnR8xQ4JmJZXsKPqJphE7OfKIXSbhobQEZ7tisGwryrZ2YSvfPhGm9XviPeD5iPeCROytd8tNwDbsJUjVqnHMmybl467+Y1tARGZXnL.YrwAS7oHiqZ1ahPMt9XBSfZ2.Y7UlORFvdsTnHbb+CwdTEM.8fI9jvPpKxvn3C0a0Xi0Pw+9y68.BmHbnYjPn9RlCcWlGSkQsq8iYbdKhK8.lWtceK61NRQcIWFAvpnoExm37RxH5SH5sUvDYboltLkLnmhnngHi0dfzcRuwxiEI6uOKjMfS0Kph5AGTB4VRtqFwZpn5iYb2topeHBYX1MyXTLwXbcy8XtrYzyLJaFy.mIQd6gQgyCdUyCOqkGdF4f2ZIv6Zl8bBX9pLNZrcEy1BvEMj.tf7vJYunB+VAy5f2jJT63QdIsU.rXlDUtik0Mv21xZ66VtT4RfiHTgOhDf6Do7iTZWM9mvwgH6LhpZNbH0QUYqLtakHXdQerPNnJHU5sBxUW54KEvhJaEyMVpLI5RDT9GVjD1ytoxkt4MwpwrPL7mTvmfGJCvb5PE1YLQ.6cG7ijGicHB7wTrVowDbGAUGNumNbFjlnvgfKJDOPpFmJWn9vStscBoJcbZPcBmO.BHqLLR3nXRQksKW5MkKggew5hdm8I7HZklhQLAUC9FTG1.37ZICzFoVDGH9nRkpVVeydDvT5QdUkJYFwX8MJH.z1coGQ4Ur1d6afOuMTc63e2MAGo++skKkZjR0BEIHQOpb6o93T8.LcOQpnc.EpzaJsQo2VBeZVCGtPdZuTfjygCcQrSttyQvJhHuAzfa.9dvrMaiPb97IRle3Do744NIAM41nTzVvTc7ohOT5EZZjlNQaJpfsphSy9hooY83LWnzGCxltrYrqFEC3rRWO+8nCa2fnHoGCbhvs3SCTLsBXzfdDTHLI6cCyFzvWpj9PMsYA2P56G8Re0rK78GZOY1h24ZGpn98XulluZLDZMao8SsGx3dgJ3ja6AkTQFaY9lt624maV+fWzpytMZt+a2sYi9GFmVXUcGewHD3c5okHL6pdp8wLW03Lf7q1iorQiyJua+LaVXesh6P35xOnb5XoDcrbZ8KcrYrJttYRbZNc7c14zQzOZOPF.Fj8Itrnv7sXRnOu1iPLE0KoURMf7kRIqnuRk1gYiKcxImjbDiNKsrCHu7nyVLFZIHci3D078IzYqSY.w7yUPVWzUDxTSx6t9jz7XYg60L6xTNiWLdKr.7Bw4epw6zVwkMS50jA10La8KqZe2pqVe20mMiDyymSeXJTtpYVo4yYzHDpAkSly78r4RiPO2dACO0VbDjG0UxIAm13WbdMt3xowKPKWaoiPhGA3BSD8WZFaxuHA33PhKN.dScI6OCf69xHESLBFmJfAcOLeBz0BpZ6PqOcVNflQAcm9j0V50Z.0iJbiW.k7OYJyp50FSYVMkYdSx0SLIWw7YjinwyCO80R50v7md3GREz.ssp54TR32W1WK4uzuVpiiBfvAADQnuLjVM+IeJd0x3s46aPUQh42dBoZyUvBjGlh0K29V2NkXs7tYHrnZ9Qif00xWoaOVVSdzebulBB3z6QAswsSnCnrZa2bGXDOjFmcTMufYjqkm7oqM92taf0EuGI9u2XIEWN3t.KXgtm4aNr4z9oMgFcbXZ4YUtGRh3pTpymFsmTH8GKELm7Qm6Sgr+QinyE2rPE59JE7HtLJW2deJmRByRsvN16BOeiD.1I5JZK9HccMVR+0Wal.WrN2+yqVCWNA1kL6CNIG8smTFLcIdl5T8ii1CCoGPhgyom9QKT95RwOmddGyYmEckcL+iLubw+CMu7mhRPP8++mL1v+F2gGwIP9BmjOcgt1x5wT.8VD+YS2vbO8Z7ruYgoo0NVHOnC0KbbzQGeKXeVrL0VAY9tUPlasBxb6UPl6rBx78qfL+v4Jid3f6GojdIw+.gtMi+1QFFIyBEmJf9KGrxOf.
    


  • @Steve-Mohican

    A VU meter has an integration time of typically 300ms
    alt text
    Technically, it is not a peak meter either because you cannot measure all the peaks. A reading of the level every 30ms misses out a lot of samples in between.

    At 48KHz you get one sample every 1440 samples so even if the Hise meter integrates the falling part (afair it's a decreasing factor so not a time constant) that's a lot of samples passing through... I am no expert in this but I guess the principle is here. So we are even further from a true peak meter which needs oversampling and interpolation between samples (not always the case for that one), which makes TRUE PEAK meter never really true peak after conversion anyway...

    In short, in Hise without going DSP you have no way to make a real "standard" meter.
    The .getCurrentLevel method gives the reading of the level that is already smoothed out some ways (at least for the falling part if not for the rising one), so it's cool for making a meter-like animation, but one cannot call it a proper standard meter name in a plugin, be it VU, SAMPLE PEAK, TRUE PEAK, LUFS...

    Your Math.maxmethod is good 😉



  • @ustk Thank you so much for this awesome technical explanation, now understood sir 🙂


Log in to reply
 

15
Online

1.0k
Users

3.6k
Topics

30.7k
Posts