Audio glitches on IRs (Hise 2.0)
-
You can hear it, with a SinusGenerator with this IR:
ir-4.wav when playing a very low note.. think has something to do with shorter looped IRs.Question: When you shorten the IR to a certain minimum size, you can hear nothing. Is that the default behaviour? + after playing around with the knobs i also somehow got a freeze..
gd -
Ooops, didn't see the link.
I can reproduce the issue (nice tip with the lower notes, the artifacts appear just on the bottom 4 keys of my 88 keys) and it has something to do with the IPP FFT implementation. Switching to the slower fallback FFT (Ooura) the artifacts are gone.
I'll make a preprocessor directive that enables you to force usage of the slower FFT - you lose about 10% - 20% performance vs. IPP, but for such a small IR it shouldn't have a measurable impact, also your hundred thousand sine waves will eat up more CPU anyway :)
-
@Christoph-Hart thanks man!!! Really appreciate it. Will report cpu changes.
-
@Christoph-Hart have you seen Yamaha Reface??? Is going spectral modeling also. (Im not the only crazy dude)
-
Nope, but Reface is a weird name, like it will be a movie starring Nicholas Cage :)
Anyway, this is the commit that adds the fix:
https://github.com/christophhart/HISE/commit/4ab1ed006c79f99a02c5e65c4778a90e57e21610
and here is an example snippet:
HiseSnippet 1217.3oc2W0saaTDEd13rHrKshVJHtbUEWjfZSsaC+HpP0I9mhE4GqrlVPJRgw6dr8nN6LKyNqCVHtmWBdK3Rjf2AD7Lvcz2.3L6Zmc21kTiUnUpV4hLemyYluyuyr8UROHJRpHVUGLKDHVugs6LgdRqITlfzqMw5J16SizfxIEZ2YgznHvmXYU4AF.qpqSR98j6uKkSEdPFDg7PIyC1iEvzYn8a94LNuK0GFvBxo81M64IEsjbYLxmJ10IgTuGSGCGPMpslMw5053yzRkqlpgHh056J8m4NQdpHU+GxhXC4fYQChKtQovckbeCiMnjVSXb+9K76HBwxteVTnRZT3516y7YmgmEMdyDANYVjOdXs14QuF4oW8kldjbra8T1gjP5Gyo5hLyjNlKfIKlo5IzfHhomkOc8RktW0tOS6Mob9tVI7EST+ey24I+Ka2YzHvSmQ10s69kuXyzWIkJWx1kIfjNxDh7NIqcdDcJ37.P.JSPsw+VSYy+7u98ksoLboaJOzSiG+.EUDEJiJrwtP.afTXhHYfeQDzUAeyQlrbd7VRppTQO49cQmrTabo5XUR4xNAxXgtP4QkkNmT9vg5kMbX8WBCG9OPOqmsc6p1tdJVnNShgau0bzL1UrrIUJYsexx1AS3QZmoTbluTLUxiMA7ifofZXCmO0IobbqwfNsMYiajSKm4pciMu2kq4f+c6a63BZG8Dvoa2ANZjhon0wcZHfmCcJkwonqmhaNgd86mt3N3hcBC4fyNdd.2TuOWs6hRNDqIoIa6FQb4o3cTinb9P7Ria5LLV6DHwsOTpzlceSztm0c1JBz6n0JFpOrQIxwc2DVuoS8Mu2nXgWhSJEGH0vghM1r12UqZsuulySKZznRkgGfVI4niTpXSqm57LbCQbvPPcSL4vigyTDy8EKtpsbEWXhFmypyonTzSvzGFBmsN0SWfTmblClGJyuxil3NknVFTICAakxIyfidsoZpoHeNFpWHnzLiGZ0FlhSwRK4qZ2FhdrVF9B71xJK2H+mSOa0EbzkEfk4cDSAN5jIb7ZnWMhFy0KPK1wtuTHCmHELu7SAOBvh4wiAUdtWpCgk8XmRFx0adD1gQyOQ+8ZtGNIlpv3DrhwhFKer37xWuqcJccL0TNuZ7JmJK0qbtXpyrSIYM6VlY6Tr+xPuKc1xFmKw95J+3e7K6xBkbpx77rKr7+EyqutXJ+t1hyO2s.Im+aaWxEbEHTa0rheKzW8qOBzEgHj8P1J7Jjr6EDFyif8.wX7Ed4pZmyqdhvXcdb7wT6hsAiU3qe7GLQAT+76WeE3CbZgy3yXsxsG+vu0rMMHjIFmWm42xU.hwm+gWuucqO4X7fUQG6MQwhNtszKN.mGGcLScqsOgKE37lsNkNkDX7XaKi8Azu07uc9YBgKkgXtRoWHy.zQ3uP9S+xsUub5HIljDi2mhCAMG+AwAt3iD7.rZRH.dj4HWybKS555KXjKH7SV723u4BaXVaMWXiEBek4LBndJ4IdoWIaZFd8DDL1JRR6UwO7GW6zfj7XCzN65aUGSw9rS77Lsk2pAgTtM2YEr4tqfMauB17AqfMe3JXyGsB17wmqMlutXmXsLH8pDDnemjmHYY0QXdiaxvHx+fGCCO.
I didn't want to expose this rather exotic parameter to a UI element, so in order to change it, you have to go into scripting.
BTW if you're trying to compile the current master branch, don't bother if it doesn't work. I've been migrating to the latest JUCE version for VST3 support and this breaks many things (I haven't checked macOS yet, but will later today). Now why I decided to do this on the master branch is another question.
-
@Christoph-Hart wow thanks!!! You just pushed to master for me :) that's an honor!!!!
Sadly, as you said, compilation failed :(
Can I copy paste this fix in any way to the previous commit? I compiled yesterday and works like a charm!
-
Pull again, I've just committed the fixes for macOS - but you need to rebuild everything (even resave the HISE Projucer file with the newest Projucer executable).
-
@Christoph-Hart Same thing. Also Projucer app bundled is not opening, I just used 5.4.3 build 22 Mar 2019
- pulled changes
- opened project with projucer 5.4.3
- Save and open IDE
- Build Failed
-
@Christoph-Hart WAIT!!! Just trashed the git folder and downloaded a fresh .zip and is compiling.... updating in minutes
-
Opened Hise and played a bunch of notes on a sinewave with mouse, and got hanging notes. Also Midi is not working. I see keys being pressed on onscreen keyboard but no sound. changed hise output a couple of times, but same thing.
-
Hmm, I got no hanging notes - can you do something to reproduce it consistently? MIDI is also working - and if the keys on the screen are pressed if you play notes on your hardware keyboard, MIDI is working, but the sound generation isn't.
-
@Christoph-Hart will record a video as soon as I get home. I just pressed down the mouse a moved left and right over the onscreen kb from C0 to C7 aprox, like 3 or 4 times. Just a sinewave there. Then start the hanging
-
@Christoph-Hart here you go
https://youtu.be/KgOGjcZ-suAOn MacOs 10.11.8
Compiling nicely on Hise 2.0 from 7 Feb 2019 -
Btw a nice post about how to create IRs
-
BTW, I got the hanging notes also with the 2.0.0 version but I thought it was just a glitch on my macbook. It happens only in the optimised build though, in the Debug build it doesn't produce hanging notes. This is fun.
-
@Christoph-Hart on 2.0.0 same test and no hanging notes :0 im a bit confused.
Keep in mind I'm on a 2009 Macbook pro. I think I will try a not ipp hise to see what's happen regarding IRs
-
Alright, please try again, there was a uninitialised value that caused both issues.
-
@Christoph-Hart awesome!!!! Thanks. Will try it this afternoon!
-
@Christoph-Hart Everything is working!!!!!!!!!!!!!!! Standalone Hise 2.1.0 ompiled OK, switched to Ooura and artifacts are gone!!!! (Apple optimized generates artifacts also)
What can I say..... you are a genius!
-
Ahh, good to know. I think the error is how the different FFT algorithms expect the data to be formatted, and they all expect a different first number in the array as the "zero frequency bin", which might explain why this happened only for very low frequencies.
If I have a few minutes to spare, I'll take a look whether this can be fixed properly, but for now we're good then :)