Blockhead dev log #2 (Patreon)
Content
Today I managed to resolve the remaining clicking artifacts which occurred while moving blocks around, including when blocks are dragged quickly out of chunks. I then spent some time cleaning up all the code I added to achieve this clickless playback.
There's still one source of clicking I still need to address which happens when the pitch modulation enveloped is modified while the block is playing back in classic (non-granular) mode. Up until now I have covered up this click by having the internal block playhead always interpolate quickly towards the target position, rather than going there instantly.
This results in a funny kind of record scratching effect which is common in some daws such as Reaper that allow you to scrub back and forth through a sample. It sounds ok but I think the effect is a bit out of place and I should now be able to switch it to the new declicking mechanism. Since the modulation envelope data is all managed in a completely different way this will probably involve restructuring the modulation code.
For a change of pace I decided to make a simple sample rate / bit crush effect similar to the one in Renoise. By the way the code for the effects is all open source: https://github.com/colugomusic/blockhead_fx
The UI for the effects is always generated automatically by the host and at the moment I don't really like the way they are presented. The effects system will definitely change a lot in the future.
While testing how the new bitcrusher sounded with the existing effects I noticed a performance problem with the "Zap" effect related to floating point values becoming denormal, so I fixed that too.