Spectrum ballistic (display buffer)
-
@Christoph-Hart Is there a way to modify the ballistic of the FFT like the buffer size (important) and window type (if possible)?
The actual window seems to be Blackmann-Harris but it would be nice to get all available windowsAs for the speed, I'd like not to resort on averaging the display buffer from a getReadBuffer every 30ms or so... Even if it is quicker than 4096 samples (the actual fastest buffer size), that would be dirty as hell :)
-
@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:
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);
-
@Christoph-Hart Wow great! I didn't see this one coming! :clapping_hands: :)
-
@Christoph-Hart Hmmm... What did I miss?
The properties are not applied:
HiseSnippet 1920.3ocuX0raaijDtorolwZRVLAHO.D9DMFGEQGGG6MHH9WkUXicHjbxjAAAAsIaI0PM6lKYqwVyfbeONWydZdAl2gbbmmf85tu.KVf8AX2p6lTjTQN1QXlvC1p65uup5pqpH8SDAjzTQBxZkSmDSPV2vt2Dtb3ACwTNpygHqaa2t8oN6OteeRhygI3yo7An8mDiSSIgHKqkdhhSqUVFoe9OOdeLCyCHEagPuPPCHOkFQkE65u6elxXswgjSoQk3dyc6DH3GHXhw.pVxtEJFGLBOfbBVwVMajU8iBoRQROIVRRQVKuuHbRughy4F9eAMkdFinV3g5AJxrcaAKTgX0tnCFRYg94deJBzheQrXISr311GSCoS2uHl70ZBNERTNdXUqJ7VpB77JCuVkf2bfjUIHYafzsr6EjPikETT34qr6vkjj9XHrWFJmLN5PZZLCOwb9Anw1pFDjMJAU6Wpaef.DkKaFgGQZm.KlpJ2sZ0ZcG3Oq8vF.WoBFoY.ifSbgMZ.GRoRmuGm33i4DlmyibxU0.h7.QTrfCKbW0PdUPlBQRgC2.BHhNYSIPEb1SS1cUCLcZ+Rs3MLZpYHVhadlIg7QYp5CTgaqpfLLF38H9.JGbhDBbzrGOrKY.ME71tPNcYwZb269nq5wwu6y7Op6ocNpmyUxbIfDMoWLIfhYvQXLIQRIo.x9wFNNqZfvSI7Axgq9Gc1r0NastZ+ukxCEmqR.fcW8zDJlOfQVUS6PPWmQXcgsTTeErmiyc1oUyVqq+I7C3+uVy6ySI9D7HPD7Df29XVJImPld5EfYJ8HSFaH8cOAGEggc7ZtctA0R2p4N4x9Tw.bBUNLhFzNg7W16BZZlJZ7VUzjxYPX2o+XdfjJ3NB9YBoTDoxWRDL2f7jk0gHDaLYsF+XiUlSbpYYm8UsdMD2z7+vFqDF2LkHKNGKDxcNJBNieqNmdNoqFns5ZJ8kAvCvL1YPQH2Y.9Zy24BUQnEw2vS9cwiz34xbnxfU6OPt+UmO6b7dcNwom+QGbZ2me70H+O6pK.AenHprqXrDhZt4QM2A53xfl8gdB6wXtl5+ovc8jQCRHS.nAT0dfhvT5mOjJIFhgPuIerbnqbHM0TjHFVttyqfpXdq6n2FhLeKMDXZshM9SD5fgR20dMvVS08+2pCDEPV0fJYZLaJl0PtpwfyuhMLknxp1nQlBIstdH4U2AvhFPZQti2TzUxjImMOCBJpKAGlUPapDIjXUn2MyAycOINw3ft2yT6qQoT4SDRxyx7zFusgyrj52etzxxmXJyOGxFy8QDzkON5LRR4qLJFglzUasZe4sVK24OvbsnDiBdGNU9rXB+xlG.kcWBZCWKCU.qRcS3+PVS3dLZHIAQgdsegs9hDRC3rgY9428t+0iQWCg+RaSYkJRi9G+2tuG87NGBmrpYAxvSwUdXuCIeOLXkYxfUrOjjNRJhAKM8xOLqjwp2LetA0odlQMY.nKTCEDBFbR9ONWkWpV7SVHzPcNoZ0eGoCKyp5ORz3hhw5B2cxzE+yw6FYlY7u8N0yu93Hrl095m+8iKakUt5vVgY1c7bMiABe26yLS1fluOjzGOlIeQ4ntlMZXHi3KRopzxBJm79HQXVnV2HBlhsXBskMmCvrghvwLrr5.ipojyHnzY4ozTCbwAaMo7Tz+lME40Eh2x1mJCFNeLVaNXTcy32ALlM68MsOBJeEHK.3x1se4mgAsqareir7MvlJieC6hYQmcD6SwfUziVaoRRl2L2KULys0e0tnhWrpnbB4TgOvuaJNJlQ5Bdy5NmwDAi5Q+AxGVlL1.18Ub3FLDygqwoKR0z5W63m2G+3yzNevwXYBUUNAhAlQ3OHCc4u2Q15Vp0pLndDdndw+CdxH5kGIUD8xIVTOFcBQdtHYj9fK62P1g4TJUGjeS+K7PvXDhyUERnY4yvokdOeAaR7PAmFn1xvQNR2KRLlKygqUsSzW3saiCf.0DUSb0MEUCEHsT0beZ5YEaWjgnhXJkj+BsF+FLZjt5l50YWRQW4MKkYMi5DoAvvPpKonOv7IjlkH+oYMkCyHWj2WYlj0Y2AV2AFR7B08u6.MJ8wIv6gKMrVe5JvTGS4YURssg25.cL9hoq2DV2SRhUIzp0vjL5fVcUkHBZlJve8tnRJtdghqauQUMuBrA7TQ62FrtWKyi2l6zxyaKH8cD4bSTzvvFaryNs179aswF2aysev12O60nUu9xXBOXRYH8MO3d28mp.oJ9pWEDU21aqKwYugV8NcUYinJhittwQuKMN9D3N7kqzkuJkpTxWX6ODmVRKsVDsTW2paVnTL0BBUJKutc+9xMpleeSaLGyljRZBz9LkaqqqUN0ddHttIHo+DHUg7Mrif+a93Hyf3xe0oq.80pb2x5S+3yr0LGek8iK0C0c.Uqf960L4pcReghZ.lkqQnj39BwnHrt16BMZ5mkNEQ3fDwaBLM+TN2Wp2ANC35Og3J1GqV63kOusITAS8QeSPPdgt4KyFKfL2aAjYyEPl6u.xr0BHyCV.Y19iJi5qot2XXTdSiZXC+izIWVVGwUSWoG0B8+wKXyED
-
@ustk have you set an external slot?
-
@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... -
@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.
-
@ustk Never mind, I found it, I had to manually register a network and disable setForwardControlsToParameters
-
This post is deleted! -
@Christoph-Hart The analyser buffer path produces plenty of artefacts:
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... -
@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
-
@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?
-
@Christoph-Hart Thanks, yep macos
-
@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.
-
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)?
-
@Christoph-Hart Unfortunately that didn't fix the issue
-
@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
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
SR = 96kHz
@Christoph-Hart Any insight on this ? I really need the spectrum to work :)
-
-
@harris-rosendahl yep, curves would be nicer than the square edge current design...
-
@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...)
-
@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?