HISE Logo Forum
    • Categories
    • Register
    • Login

    Spectrum ballistic (display buffer)

    Scheduled Pinned Locked Moved Unsolved General Questions
    52 Posts 7 Posters 3.7k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Christoph HartC
      Christoph Hart @ustk
      last edited by

      @ustk have you set an external slot?

      ustkU 3 Replies Last reply Reply Quote 0
      • ustkU
        ustk @Christoph Hart
        last edited by ustk

        @Christoph-Hart Yes...
        In fact I've just realised this has to be in the dsp script...
        But since the scriptFX parameters are consumed by the dsp, how do I access these properties from main interface? because I can't use parameters in this script...

        1 Reply Last reply Reply Quote 0
        • ustkU
          ustk @Christoph Hart
          last edited by ustk

          @Christoph-Hart Here's a snippet where I want to connect the interface parameters to the dsp ringBuffer properties

          HiseSnippet 1861.3ocuX0saaibEdjro10pIE6BjG.BekBpihnsiicKB7uRYEZrCgjR1cQvhfwjijFHxYXIGs1ZWj2g81ceH5yPtr6aQA5U8lh9FzdNyPJRpHG6Hzt7BaNmybNmu4Lm+nbikdrjDYLoxFClEwHUtmU+YB03SGS4BR2yHUdfUmNCrOY5vgrX6yhoWwEiHmLKhljv7IUpr1ywcVYi0I5m+8gmPCnBOVNIB40RtG6E7PtJmp6Q+YdPPGpOa.Orvt28ntdRwox.4T.UqY0hDQ8lPGwtfhaqpEoRs19bkLtuhpXIjJqehzeV+wxqDl8+ZdB+x.FtvgzGTjgbGYfOhXjJ4zw7.e2rSeBAzhatuXMiu3AVmy84yom6S9BMC6bIJ5OpTsL7VqD7bJBuVEf2RfTkBPxx.ouzpuWLORkyAwyuypqPwhGRA2dQnbwzvy3IQAzYl6O.MVUpBNYiRHU+g0rNUBhJTMCoSXchgEyUUi8Z0ZKa3OO7OUG1UhLf0zKfQia.DpCWRIJ6umFa6REr.G6mYmopQL0oxvHo.VzXSC6MAYxEIAtb8XfH5fMTfR3rulciMMvzty2nEutQSM8oJZyKMAjOKUUefJZfntd8G+X6mcaO1meb2Kr6619zA8d04299yvQBS4BQDpdxoJtf0X3TgmhKEMF8v5+X8MF0bHDfebPPCSvbB.73IihYy.jAbSPuDxXN+qFyULCSeHQykpF2PMlmXNwQvxsreCbk3rkslLbl+ZtOroGlS3qX7QiUMd32AaqI5Cdm1OjCYLaK9TZPvkPZUNl0Ptrw.maNAi+toWLChp0HCQRq6FRdyi.rnAjVjG4LGcELY7kKyffh5wn9oWpykHlEgt9FoGvrimhFaNfM1wb+WO6.ZKEWHUrWldRq+t51KxZ3vkxCipikAAn4WBai49HB1PLM7RV7VPfevT17MBUbJWmv5lqSTrLlmIIqvFkhtBt5kQLwMUbijlYB0TplhJXqJcEkeeZEk9AbeVLgCEN9LKelGcFQC3zJy1+0m+OOjbGD9ystTpTxvRRezN+iAum7ptmA2rXgsT7.XLhEq33wuxYruG5RXJysg0YrjIJYDXo4kRfB+Fqd+rhf3sdpQMQ.jqwJb9fEmk8xUXbIt3mpPHi0wj3p+FQ6VVT0eDuw048n7OZ17E+8oGEZZ.9K+L97qGFR0acn94ecXQqrws61xMyQSWpYLP3aeepYR6Z9de1P5z.0qK30Mai66GvbkIbLrLmyEuOT5m5p83WBNRRg1MqatGfFcR+oATU4teXK+TFnNK1xA6dH.aMq3HA+Oqk3cEheokKW4Md4Xr5RvHlY7+ALlNHw8sZCku7T4.bcqNeyuASMTyX+5owafMQieOq7FqKNuv.JXE8bBUvfjkM.wZEFf3vpV4c08ifJ3sEiflgoMJNV32iMhm.STzClabgVy2dmY2duzscuAca2+NzVNGHgy5GAA0zf7BL.x9w511aZfvKXhQpwa9Gs2s0A6sER+q4Be4Un6Bnt4fXNULJfsolWZBROfDx8M.Ma6GcPKncl9U3E3+emduuJg4xnSNCKY.6cHMHgkwHUO88nAndTwSMr91mSCCo.Eml6mYPszsZdv9YB+B4HZLWMNj60Il8WN9ZdRpNp+Nvc5GgM2ycx4m7FKwafW.y6TEgMSiYCjtv8biDZXT.qGb4sk8kARuI84+.6CauEYBxNA2QCuwTAT9MYU5BV6NG267wS6LigM5bpJlisAfXWybjmlhtrgeSW2BWiY98YBe8h+C7jxzIKC.Y5jwLuOJ4Bl5JY7DcBW56PVsI6JQmb71gW6Pfw+jWgM.3o0gfrLMMWYvrnwRA2CIY1QFRONTNUnxfakpWnKTa0g5ANpY3vWXENbP.nbBNT17xJkrcdlM5wPkj8UUlyMXzPcWI7apVC4iml0RslQcxDOXHVr3J4CLeLqYA1eZVCOvArqylGXghLKRAV2U3ytFqa9HX.GWZL7wfJyVqMeEXpy4hzNfVVPZI4b50yWuKrtuhEgAz3ZXBTsSqF1AgQVny4WbDofhqkq3ZVaWVya.DfmRZ+Af0cZYdb18fVNN6AguSXWY7hlMr81GbPqcexdau8N6t+S2+IoeKGldOkI7lUDR+gmtyi+oRPpzY0oDhpY4r2MbXumV818vnQRIwI2U+nyM5GeNjCeyJc8aSonR9LK2wzjBZo0pnkZ5QTVDJ4SaRHEhxsrFNTUN799VTAMXVBqIxpTKxaIvtjQ9TixqlFkaTbanfouOyWKdVEnhg9oGhZF+l9SyKeLtmUH7eyGsuPBZweMja4LUsT5VkO8aTCoEtQK5mJcnJxQOLCtZF5bzgucSdMxE5gloQnJ4IR4jPptb7J8UF+lz7Hj5EKeqmoeHd39bME3NPn+os1v5bbssS1mNYbUv.77254kU6a4xr8JHyNqfL6tBx7jUPl8VAYd5JHy9eTYvekuimBeUlo2MPvssIarRaANnrtj.4+BB8N13.
          
          ustkU 1 Reply Last reply Reply Quote 0
          • ustkU
            ustk @ustk
            last edited by ustk

            @ustk Never mind, I found it, I had to manually register a network and disable setForwardControlsToParameters

            ustkU 1 Reply Last reply Reply Quote 0
            • ustkU
              ustk @ustk
              last edited by ustk

              This post is deleted!
              1 Reply Last reply Reply Quote 0
              • ustkU
                ustk @Christoph Hart
                last edited by ustk

                @Christoph-Hart The analyser buffer path produces plenty of artefacts:

                Screen Recording 2022-05-14 at 14.59.43.gif

                Although the code is as simple as it can be
                This happens 50% of the time after hitting compile, so try to compile several times if you don't see the issue
                It seems to happen more with highest buffer size (like 16384 or 32768)

                HiseSnippet 2149.3ocwY0saajaElisobrVmfDffhd4Ti8BY.GgYjkUraw1H4ejsPrcDr75cMBBBnmgRhvyecFpUVcQ.ReE5c6c8In226xqSup6aP6gjynYFYoXas6lJH3Qj7bN7iGd324vwsC8snQQ9gHsUNeT.EosJtyHOd+85SXdnV6iz9c3lMOWe2Ac6RC02OjLj40SeSztiBHQQTajl1hGJjUakkPxO+7q1k3P7rnocgPW3yrnGybY7zdaW+0LGmlDa54L2LRWsdKKeu87c7G.3ZQrAJfXcMoG8ThPrEvHsBGXy39gc3DNMBoszt91i5z2enmR9KXQrqbnhFlnNfgTc2z2wVfXQun85ybramr9iPfUZm5MVT4MdN9DlMab+odkmJGPOUir9CsExCuEyAOyrvyHC7lBjzx.IrBROC2wJjEvSGQfmuB2xiSC6R.2dVnb5.28YQANjQpcP.MXsE.mrxHnEnKh2yGT0iW1kbMsYHzXroJYVwvXC8ZFFq+mJVD1Th35+.ITuMwi5Xp+M5Ip1ix2y2Mv2CZTZM0vqA5jpRDrYZQAUjgWBExgqNxgKslBV5M+do5EUVprMgSJekJD7ahM0sLQIIHSTIhxaCaV7y7GvYdzRcG3YwY9dk5sdwer3J8DBnBwJodDUdHi2ugSPex3d7CId8nanaT9kasNXcPMa3DPaBueIdeVjBXAPyMzeK3nfuxtAn8cLaPn0S63HJqWedo0emvbaYnr1CCDlwXnKbr4WFF.67gI7Vhyfg6QbbtBNrk5tjdq7yCrEj1gZWorUHEh0kf5A3Hd6KLKChJ+C78EluS1PrJkRGRCD6gkhgaBX4jPEbKsoZOO4SBp088N0mSeSL7K9gh5SNT2tScLQ.cnuiCX6oMrZV+LJVxaf6UzvMfXdmAzwBBjK4oDvylRHKikk57UFA88Z4w3uIf5MKdLT7gR3Weaq8g8HAORbefbAzPNS.As8o+.PJqXUVAuOM5ZtefT13Sx.OKWN5iS3bDa.HFvr7HrZy.cSVd6QYaLTrwOtC8+d89xM9w87w+VcTF5skT.AHV8sG3P34YaEoXhG.724n3DrUdQL9nrof9UiB99Bwmgay3V8mNFWXJXD1U9s.iwItdL9.3boEOEfKga98eAxRUPM+EiiXf4TL4qhSI1mL+z4DXVj4kzfkxTSXsXlDVueAblzJdTNPGcfWOfiOlDZ+nfSo7g9gWWZsHoRuu6MxzIfvBltl9gCIg1wmXiN2uMIDpr.x4EUpKwIhlOYmcvjyPCO6yn8XQfFmAUCkM8SpZti5DPsXDmzybfc9wh55qoT3XpWOd+09i5l01b6paHF36Xd19CEdPn6010AXhcIddGQBCYQqIEYevlWQcNSjS.D5sPe5.wogAvgJ+M7C346jB+sQz1Tx0fNjQfvxEWx.wFpiEwQXHd3.0PWdHw0kHfkxhqknMj0JQ2i86QBgDUtLqlgz+Ria.zoLQwO.NA6.gaN00j5AJMEuRJC9X5z.AweHE1Yf3fRQD2.G5YfieC8qb7sttC6uRuMGbfJHbWgDkr5C9MpSz7PUW3detv7yerTU6QuSH7PFvShgXaUcN6EitjhwhaaHZKXF5P8rkM9uvm3AMSNgHFzLYvTxdsBwqK.N7XdJ0YFfO+J+c8uQRb+T7UYh916Jjb0mRK86qitW14I3giCVusUd5ssxShsRGGlMMTZiUwxRaN1+0d2xBW9oGfENhMEKDmI7NrvWgUA7Sy.2qEwxXawAjbJ+O9oe5e+JTLKjfgbg3eCaaJ5vThIzE.uiHeAXI3raYCTCGG+ghjvr3LI.Ooru19NiB566wrDcojHIVpgq+.QFaU.kl1o91.ZvMIVPn7HQgYhbTh5IfDBhB1FmXHGXR4lEwzBijbOLUjILotxJCD2BaQw3hk2hwylxb9QVPAphzinaM8gzxYF9gMahErC8ljRZlHMwj8.sa4YSuQj46EPcRoj7hyJiaAS0ILuKTadXwN.5DxMiaWEZ2gSCDTNh1.onzoUPTC.EkSNTFiVH0nEvUxa0UfNLDD1Yr7ygY1zP8wr5NFll0.xkqoCUdPk.UpryNFU2pVkJaVc6Wt8Vw27SPAOf5YMJANOCaZr4Vk2VXqsL2rVsbPK250LGxJfMqMiE7pxoQ+LQDIJm5n6quzbl9xCAl1YazktKiJLxx318IQYrhw7XkBxBMmDJoEMiPYhzw3tc44CweLl3QbFEQKKF5KS3sL4S1n6oA3BJejkCkLwoxUwtvyxpQxi3ruuj6.8Kj63k1Ce2S00D6dYWGybEJK+TzBJtdAUnZqnKDiBk1jXQfULOEbALjbm++cx2XXLWzt+xcIy08CKj49gO5gToQlqJ90Yup3WW2kHJORq.zfwotvj+G.JrJUKVwn51EqZrSshaatSkhxJkKtYkWVaaT9qW9w2N40KQ+YQ566ERmnVlYgySSv4xo3rN9L3VVPMHNzhSTudwif5Jfx+fmddEeMgEQCKddHSIbSH75bvc9.WFO49ULUlk.K6RnUcWlssCssObYTYzcxDe9mhFSMmTCy+5UtYewtW9I45eru4SQv9qrvVrt8tHWYPuHPQdwh6dk0pNmdCWbWwyZb5gGne7aP1ztjAN7KlRsficAO99UM3rbAHzLbAnJ2oK3iWj2EfP+J6BNpEJ6Rck6UYqY.znIVoYAa834ZE7k5G13jSZLCuMZVwHneNiyP5axh0kuyJjmENaUOEme74+y+yqlBtjUTqv+x38OXuFW9k45UtDqP+2aE+pB.lxGI6AHg8j+yHVAehnstYR8+pTWfGj8dKqjZOmtNUlCc1bNzo5bnyVygN0lCcd4bny1eVcD+eYZLf66pReCcz9.YVNMsC7DupI46cB8+..XsOx.
                

                I thought it would be better once compiled but the same thing happens in the binary
                I don't always get it as bad as it is in this example but in every attempt I still have some artefacts here and there wich is unfortunately not usable in a commercial project as it is...

                ustkU 1 Reply Last reply Reply Quote 0
                • ustkU
                  ustk @ustk
                  last edited by ustk

                  @Christoph-Hart Some more debug info:

                  Strangely this only happens to the first external buffer when you create two of them

                  HiseSnippet 2187.3ocyY8zaajaEmx1TNVqSPBPPQON0XOn.jHLirrhcKZirrsrEhsifkWuqQPP.8LTRDdlgZmgZsUWDfzuB81dqeB58dKm6GjBzSc+Fz9H4LZlQVxVV6lfZj.YR99yO93iueOJ2JfaSCC4Anbqb5v9TTtUwsG5K5sSOByG0bWTteCtQiSMpOnSGZfwtAjqX9cMpfpOrOILj5fxkaw8kxlakkPpe94WUm3R7soISgPmwY1zCYdLQxrsp8ZlqaChC8TlWJoqTqoM2eGtKe.fqEwln9D6KIcoGSjhs.FkK+dNLAOnsfHngnbKUm6LrcO9U9Z4OiExtvkJGXgZCFROcCtqiDwxYQ6zi45zJd+Gh.qzJIZrnNZ7T7QLG1n4ShJOVsfQhFoiG4VHK7VLC7rRCOyTvaBPJWJHg0P5I311Ar9hjUj34qvM8EzfNDHrmFJGOvaWVXeWxP8IHfFbtEffr1HnE9WKh2gCp5KJ4Qtj1H.FLxTEsJaZ9bipllO6OTn.bnDJL9ARfQKhO00x3OZDqZWpXGtWetOLn3Z5kWCzIQkP3vzlBpnRujJjAWsUKWbMMrLZ7cJ0KnsTIGhfT5BkflfIz15F1nnDk2TCqaQCKoSh0IjJZAmuhS3CDLeZwNC7sELtewtOqvOVXktRAzYkE0eDVhGP76RAi.q5.2MZQD8JJ5wB0.nOLDheuE9O7O07.D9VlCH0yRl3.JqaOQwm8NPrRaXpM2McF46GPtUWYockk48yYeXrff71XvNDW2KfqcIQAUPXr8FDZSlI5.pjc.Ex6U36drye6KrJIAeIsJuv5cpAxM7X6xI3TqOSNMf1WlQTLJJEGiDj.cTp35paFi9INXYv8OlKnuIJpU3CELFeoNcl3ZxaTAbWWv1SZYsWuEEK5Ov6BZvygKctCniDDptkslDd50jRWxzVeAOkfb+l9Lwa5S8mVgTTTUA329ll6BGRxBYQyAx0mFHXRHjaW5O.rB5xZqf2kFdof2WIaToDnPuPs5CiK5IO.PLnz1Cv5CCz0oINFldvUxC9QSX7Wq0ScvOZlO9WpgRUecIMPfJ6bmAtDQ1x8RNtnEf3clZrxxk9gLwvzbf+pwALqP7I3VLgcuIiwEl.FgSkOGXLh47g38fKl1hD.tDtw28EflLu1+EhxX.eJc9p3DlkwIHOk.dQQLlC1J2Ii4+bAbJdMep.pGsmeWfwHpHztg8OlJthGbYw0BUJ89NWq3y.gkEXavCthD3DciM7TdKR.zZCP5FVrCwMjlks8j5li6hs8cNg1kEBpbBzOVJ9uzpYMapYk0cdCa2mZyHtI2UA67iELLVSqvgT+thdq86MVu7Kqt4ykK7sLeG9UxHOL8Z0cAhCOhu+Ajf.V3ZJQ1Er4ET2SjDlfPuEly.J3ZZB0dU+N7KvmuSI72DRaQIWB5PFBBqBJwKDYn11DWogDACzKc99DOOBLik1hqEqMPyEq6g7tj.lnmGytQ.8629Z.cZST3CPP.hzxymjXSRHn3DBKPbCBx2SMFmonujiIfBIAPJWwPhWeW5IvY0yMtvkaeYa1eldyx880460kRTztGDpotgyCqP9Y9Jn0sWAP2zT2iHh.FTRFCWiz8zsSD5huFEM1TNVVDpM02QM3+B+DsnU7kQ4hVwKlvqjKez9BfiHpjn95IPcbAuN+ZEGwiwWjJgcmKPpceREveaMzLYmGguZT98MsxiuoUdTjUZ6xbnAJarJV0p3g7W6eCKb9mtGV3.1DrPDo6cXguBquiLICLSahkwNx6TYT9u8S+z+9UnnBdxhwKD86vwltxaRMPzYPINI0DXI35dISz1tt7qj78rHRKnjrZtVb2g86w8Y1xozRDmKssGefr4.cBE3PtCfFbChMjJOT1CnjNT15Bv8PCJYOhCJCXRnAj4zRiD+lSclI3TOUSHxWbtnbc0qDi7l1b7Pa3MrRlXzMbe.sTpkuedStgcoWG28zXLRiOCLtouC8ZII6KfVxR3Sj2UFMBb0QL+yzGdX4I.5Hx0iFWAF2VP6KK4HGC0QUAs7x1MnnLxgRYz7IFMOtbVqtBLgorFeJK+TvyVl5erprkokUUn3xkzqzQPs.kKu0VlU1nZ4xqWYyWt4FQuxUV0d.02dXLbdB1xb8MJsozVaXsd0pYfVl8qUFjkGaUcJa3UUtw3DYFIJi5nYMVZM0X49Pk1oazktKiJMxx3V8Hgorh47Xk7pdZGGJI8miPoxzw3NcDYSweHl3SbGFRKIW5KS5sh7Ic18TAbdIfs9+ADac2HNu9T01kRFqNxpXO3yR5Uxh3zeaV2A5WHSAgb2+7M8TikukdeL0cnp2b4H3kGKnub0L7L4pP+awVDpiWmygVFULHnrDH4wPqIhOOTG4lcpiHXLWjF+xCOy0Coym5gzO39zmTp2T+0oeS8WWyiHatKWdX.SP8.m+6fBvkqTnrYkMKTwbqpE1zZqxErpt9lUJndf.J66v+3aG+c3n+jr4iYBoi0I1zv4ww3b4DbVCeB7bTnCJWZgwdfRgCfthflWgO88K7ZBKjFT3z.lV3FP50oP37dtMdzr0JXps.K8VnYMOliiKsEGd0tJ6N1wm9ovQDKwcf8OdkW5uB9y+jZ+OJ17oP37U0VN1voNxSkzKSTTuj5t2YMqInWKjOp9jsOd+8LN7MHGZGx.WwYSnS1QgfGNa8xNsP.BMkP.p7cFB93YYCAHzuxgfCZhRuUWYlZ5NEfFN1NMMXqE4qUvmar+1Gcz1SIZilVNB5mSELTwlzXc46r+9ogyl0Rv4Ge5e++7pIfK06Az3eY7t6sy1m+k4wgdD6.96si9NUfJkOPMCTD1W8mMZE7QxwFVwudQSiAQP16ssi6bdx5TdNzY84PmJygNaLG5TcNz4kygNadq5H+Kns8.A2SSeCSzZOEKWtb64K+N4TeAcn+G9U3qj
                  

                  Screen Recording 2022-05-14 at 17.35.46.gif

                  Christoph HartC 1 Reply Last reply Reply Quote 0
                  • Christoph HartC
                    Christoph Hart @ustk
                    last edited by

                    @ustk yes this is most likely a multithreading issue between the UI thread and the scripting thread. I‘ll look into it. It‘s on macOS?

                    ustkU 3 Replies Last reply Reply Quote 0
                    • ustkU
                      ustk @Christoph Hart
                      last edited by

                      @Christoph-Hart Thanks, yep macos

                      Christoph HartC 1 Reply Last reply Reply Quote 0
                      • Christoph HartC
                        Christoph Hart @ustk
                        last edited by

                        @ustk I couldn't reproduce it consistently (I can imagine it depends on your hardware because the glitch only happens when both threads access the same data). I've pushed a fix, but I can't ensure it fixes your problem.

                        1 Reply Last reply Reply Quote 0
                        • ?
                          A Former User @Christoph Hart
                          last edited by A Former User

                          @Christoph-Hart

                          		windows.add("Flat Top");
                          		windows.add("Blackman Harris");
                          		windows.add("Hann");
                          		windows.add("Hamming");
                          		windows.add("Kaiser");
                          		windows.add("Gaussian");
                          		windows.add("Triangle");
                          		windows.add("Rectangle");
                          

                          It's great to see to customize the spectrum analyzer, well done! In the source code there are various Window Types. While swapping them, I couldn't see any difference on the spectrum except Rectangle type. Is there anything we should know about these?

                          Except this cubic spectrum, can the spectrum type be changed (for example curvy spectrums like below)?

                          alt text

                          DanHD 1 Reply Last reply Reply Quote 0
                          • ustkU
                            ustk @Christoph Hart
                            last edited by

                            @Christoph-Hart Unfortunately that didn't fix the issue

                            1 Reply Last reply Reply Quote 0
                            • ustkU
                              ustk @Christoph Hart
                              last edited by ustk

                              @Christoph-Hart Check at this, it appears that the glitch isn't from createPath but within the buffer itself.

                              Here I use getReadBuffer/getResizedBuffer with a sinus and you can see the spectral trace of the first harmonic as we should, plus the oscillo trace of the sine as a glitch at the same time. This means the buffer sometimes contains both sets of data so it is probably not clean as it should.

                              Another issue -> the data are spread only on the first half of the buffer (for instance the full spectrum goes from 0 to 128 in a 256 length resized buffer (or full read buffer), the remaining are zeros)

                              When using createPath, it isn't the sine that we see as a glitch, but it might be the imaginary part
                              The problem might not be a thread access issue after all...

                              HiseSnippet 2268.3ocyY0raajbDtojFJqYsMrALB1iSD1CzXkomg5GKua1Xp+nMgsjID0pcMLLLZMSSxFZloYlo4Jwrv.NuB41dKOAAHGyM+JjGibJ6aPRUcOCmYnHsnztqQDrAU+SU8WUc00WUTshDtr3XQDozRGMrOiT5lFsGFJ6sSOJOjzbWRoemQiFGYs8fNcXQV6FQOiG10Zcx1C6SiiYdjRkl+o3dKszBD0O+7S1l5SCcYYSQHGK3trWvC3xrYaU+4be+FTO1Q7fb6ds5McEg6H7EC.bMugMoO08TZW1ATbayYPJUdOOtTD0VRkrXRoE1V3MrcOwYg58eLOlehOCG3PZCJROcCguGhXbVxN839dsRs+XBnkVYdi40di6YrO2iOZ9LuxcTKXkIQd+Qo4JBu4K.Om7vyNG7l.jJkCRFZHcWi1tQ79xrUP77YFMCkrnNTvsmGJGLHXWdbee5P8MHfFiRyANYsRHy8Ol2XGAHZnrZ.8TViHXvHUUwols8JVaXae+u1D1VrvmU00mQip.SXB2RwRqefFY0hFx7cr9FqTc0kI2QDzWDBCprrd4kAYxDIFtccYfHp3MTfB.ssZ4JKqwoUiuWItoVSU8nRZ0STazFTgVWWPGUPXmWh9TYO6bnzMhA2PsfYQ6Ih00B0oMbNohEyjsf6b4ghARdHqRmAgtRtHrR26a9ilK0E2fNRsh9i3phHZXWFnOXUO38hR8xd73bXXEqWC+G9mZd.2eG2CAQ1DOiw61SV49uA1V00QC4cn8mGX3qlncn99m.OOxPlBXO7gJKAr0rSNwegZ+PVL+Oy7RbSN10VaEKGDxWhTzTQv8ZtzXVUVnwEVIVRijGvNq8fST9C6pn8W0VqmNhHqJ7uw9qs3+AEBp5yB6J6Ai+xu79lKAFzEznObcbjnB+g4E.rhGnF+Z9aPU+tQnLh0GuGqj3HS8hHrT9wJ0TA4Y+j5OsDgGHjrWl3XMemo03K0oyDWCixhD99n6ZBKqO1OhfUBGDbBKZE34h+.1nMBIpJldwX5oWxm8yUGzmaihvlgb4K6yBmVNQRxKE3291l6BNeLmTxbv95yhjbDBk1k8CPBdcFpkL1kEepTzWs2jj.PNaoZ0akl+BuAHbHK0MLz2FjyyyALL+fyvmGilv5uVum54wnYd+eoNIWpxEz.ARRK7F3SkEybizUIK.96BoKwLegwb4v7zY+pkNeVg3cMZwkt8lLFmaBXDtU9s.iIjf2xXO3MuqLCfKXz36+Dv3UVe9lIQLvYhG9MMx3DFmq6HJbJJNtRfoboje+q4LxwHExjPlu8B6BYVRnF1Mt+AL4YhnSqrbrRn214bESDrYLGbCQzYzHujWrwGIZQifpT.9y3Jcn9wrh7jGts83GwVgdGx5xiAQNDJsJGyUdwblMwbJdbACa2m4xo9YuUA87ilVVKqE3EprlK+UVa573Zq7vGtZsGswlqfq+c7POwY3E.r5xa6CTLAzvvmQih3wKq1xtfpOg4eHR2Aa50vbVVOvwFysq9c3WfOeiZyeaLqEidJHCcHrYkuIcgDE01k5iJRFMPuzqdJMHfBy3n03xoRCLhox9BQWZDW1Kf61Hh8m15b.cZUX9NvW.Nb7ZJyEk4IpLAuC39.e8UThwIL5ibMQ.4TKHxqRLMnuO6P3JaEqS7Etm1FXduXV+95v9swcTwsG3pY9wWGxgxy7KQmOdh.cIOc2mJi3PlYC30jtnrcRPW5qojw13XLWTaVnmZv+E9IYQmz2j3hNoKlQuTpbhcAvQljYT+JEXPNQrs3bEUwcLNIWb6NmPTVeVhvOuNYlzysMNaT78E0xctnVtchVZ6y8XQJcbSCUgduP77vKngW8gqfFdFeBZHg68RzvmYneiLIELSFwhFd3apBB+29oe5e+DRRdOLm7bI+NbsoS.mkJjbLjoCYn.MAO2qZS1x2WbFR6yS3tfLyp4ZI7G1umHj6hSo2QZrzVAhAXMB5.J3.Ed.ZLZPcgP4gXEiHqHVACPAwhp5NhJp.XxXCvXZTIocQpiLgCMPUKB1C4735p99RNMs5DwtPWoHgL4BGeDqZtkuZmFZv9rySKhZLhowmAF2LzicNx09.nxrLZE7sxnQvQsOO7X8kmAdCP1md9nwqAiaKY8wTN3XHOpxoUFq5fQJHGImRKmozxF0Jp0kfIrwb74z78.M3Xq+wYsGa63rAjb4T1YZOndC0p83Gau15aTq1pqs4i1b8j9Vwr1CXgtCSgycMbrWc8pah5ZcmU2XiBPqf85T.YkMb1XJF7MUGi0gXDIof3jY0W5LUe4SgLsSWoKbYJEUxhFs5Qi+H2HyjVJqJscbnjUlNgjKR2vnSGYwP7aYPCo9CiYUwk9zDdqHexGcOU.WFAry+OfXmKGwk02ppFhKB4aZD.epaUdLDm+6m5RP+bERHT5pGuomZr3s71wTsPUI53HnAj4zOtZFeLtJT+VpFg73aKDPIiJFDRQBjxFPoIxeanNJM6TGIv3ZQZ7K28bs5mtbt9ouwUoNobsV+E4as9KpGPwh6JUFFvkr.3v+8F3WHjYM601zbM6GugI1bfoyFqt4ZlpFDHEaG+8ud71wI+Qr3iYBoiUI1zv4Ao3bwLbV23PnqTnBJel4XMnX9LnpHn3U3yvPymS4wrHyih35M2.BuNBbmWQy31yVof4LAddSnY8.tmmOqk.ZdWEcmdvG8g3QDKoUf8OeRP9uT8W8Ak8Ox27gX39UUVtgk21j.UPOFnn5j5xsrl0krykXu0Gt0AOcOqW7RhGqCcfu73ITI6HWvslsZYmlKfPlhKfT6RcAu+3ht.B4WYWvyZRxapKMSEcmCPCGyRyC15Im0RFux5oas+9aMEuMYZwHjeNmyP4axi0Euz56mFNaVOCmu+d+8+ySl.tT8Cnw+hF6t2Na8pOMMGFPciDu0M4qVAxTdC0LPR3P0eHnkL1GGa4j18hlFC7f7255lV47jko10PlUuFxr10Pl0uFxrw0PlGcMjYyOpL3eSrsFHEAZ5aXhV6oX4JUZuP7qlS88zQ9eP5i+5d
                              

                              Screen Recording 2022-05-16 at 01.50.36.gif

                              Below I generated two spikes (20Hz & 20kHz) + noise to demonstrate the buffer is going up to SR instead of 20kHz. Maybe a remaining of the real + imaginary part that necessitates doubling the Nyquist length? That isn't as bad as the glitch though because it is easy to limit the drawing to 20kHz...

                              SR = 48kHz

                              Screen Recording 2022-05-16 at 14.43.02.gif

                              SR = 96kHz

                              Screen Recording 2022-05-16 at 14.48.55.gif

                              @Christoph-Hart Any insight on this ? I really need the spectrum to work :)

                              1 Reply Last reply Reply Quote 0
                              • ustkU ustk marked this topic as a question on
                              • DanHD
                                DanH @A Former User
                                last edited by

                                @harris-rosendahl yep, curves would be nicer than the square edge current design...

                                DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                                https://dhplugins.com/ | https://dcbreaks.com/
                                London, UK

                                ustkU 1 Reply Last reply Reply Quote 0
                                • ustkU
                                  ustk @DanH
                                  last edited by ustk

                                  @DanH you can implement it yourself with a read buffer and an interpolation of your choice. This way you can make the desired shape (cubic, line, bars, etc...)

                                  ? 1 Reply Last reply Reply Quote 0
                                  • ?
                                    A Former User @ustk
                                    last edited by

                                    @ustk said in Spectrum ballistic (display buffer):

                                    @DanH you can implement it yourself with a read buffer and an interpolation of your choice. This way you can make the desired shape (cubic, line, bars, etc...)

                                    Is it possible to give an example for this iteration & read buffer please?

                                    ustkU 1 Reply Last reply Reply Quote 1
                                    • ustkU
                                      ustk @A Former User
                                      last edited by ustk

                                      @harris-rosendahl For a readBuffer just look at my snippet above

                                      for any data interpolation, type "cubic interpolation code" in your favorite engine and you'll get plenty of math explanations and code examples.

                                      be aware that a buffer goes from 0Hz to SR and is linear. So you have to take only the chunk you want (typically 20Hz-20k) and perform a logarithmic scaling (both for freq and level). You also need to downsample, unless you want to draw 20k pixels in a panel (getResizedBuffer might be preferable if you don't want to make the downsampling yourself)...
                                      This is what the internal createPath of Hise is doing. In comparison, the readBuffer contains the raw data so the whole filtering and shaping part is on your side. But for now it is broken anyway. You can still work with it though, but it can't be used in a final product so much it is glitchy.

                                      Yeah, that's a lot to read and learn ahead :)

                                      ? 1 Reply Last reply Reply Quote 2
                                      • ?
                                        A Former User @ustk
                                        last edited by

                                        @ustk Thank you! 🙏 🙏

                                        DanHD 1 Reply Last reply Reply Quote 0
                                        • DanHD
                                          DanH @A Former User
                                          last edited by

                                          @Christoph-Hart @ustk so on Windows do I need to add ipp when exporting with this new Analyser module?

                                          DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                                          https://dhplugins.com/ | https://dcbreaks.com/
                                          London, UK

                                          1 Reply Last reply Reply Quote 0
                                          • LindonL
                                            Lindon @Christoph Hart
                                            last edited by

                                            @Christoph-Hart said in Spectrum ballistic (display buffer):

                                            @ustk Yes I've added this recently. if you click on the edit button (where you can assign an external slot), you can see a new entry called "Edit properties". This opens a JSON editor that lets you change the properties:

                                            6f72eb4e-d2b9-4494-9801-2b893c936339-image.png

                                            Be aware that these properties are not stored in the network, but you can set them programmatically using the scripting API:

                                            // only works with ring buffers that you have registered as external.
                                            const var dp = Engine.createAndRegisterRingBuffer(0);
                                            
                                            const var mySpecialProperties = {
                                              "BufferLength": 4096,
                                              "WindowType": "Triangle",
                                              "DecibelRange": [
                                                -90.0,
                                                0.0
                                              ],
                                              "UsePeakDecay": false,
                                              "UseDecibelScale": true,
                                              "YGamma": 1.8,
                                              "Decay": 0.2,
                                              "UseLogarithmicFreqAxis": true
                                            };
                                            
                                            dp.setRingBufferProperties(mySpecialProperties);
                                            

                                            Can I apply these setting to an EQ displaying in a FloatingTile (not in ScriptNode)?

                                            HISE Development for hire.
                                            www.channelrobot.com

                                            Matt_SFM 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            11

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            103.2k

                                            Posts