Home Artists Posts Import Register

Content

I have mainly been working on re-implementing the Fudge resynthesis algorithm using the new plugin API.

This involved adding an interface to the API to allow plugins to indicate to Blockhead whether they require a sample preprocessing stage and then moving the fudge analysis process so that it now happens the first time Fudge is selected for a loaded sample.

Re-implementing the actual algorithm is mostly a copy+paste job but I have made a few changes which I think have improved the way it sounds a little. The analysis process which in v0.12.1 consists of a simple zero-crossing detection has been replaced with an autocorrelation algorithm. This gives the resynthesis more information to better realign the grains when the "uniformity" parameter is set to a low value.

Autocorrelation is basically a way of detecting repeating patterns in a signal. It's usually a very slow process but I developed a pretty specialized version a few years ago which is very fast because it only takes into account the distances between zero-crossings and peaks, which is good enough for this use case. Eventually I want to try adding another resynthesis mode based on an old technique called "Pitch Synchronous Overlap and Add" and this autocorrelation analysis should be reusable for that.

Audibly the new Fudge implementation sounds pretty similar to the old one but my feeling is it sounds a bit better. It's difficult to perform an A/B comparison with the old version because I can't directly open v0.12.1 project files in the new build and parameters such as grain size are now scaled and interpreted differently.

I also made made a fix to the Fudge algorithm that makes the left and right channels much less likely to fall out of phase with one another. This problem was part of the motivation behind setting the uniformity parameter to 100% by default as that turns off the grain realignment eliminating the phasing effect. I may set the default back down to 0% as I think the grain realignment effect just sounds more interesting and is more fun as a starting point to experiment with, though I think some people prefer that ring-modulation sort of effect you can create at 100% uniformity.

The main thing I still have to do for Fudge is hook up is the harmonics section. This involves getting the chord/scale editor UI back in. When I was redoing the envelope editor I ended up making a lot of improvements and I think the chord editor needs a lot of work too however for now I am going to try to avoid making any drastic changes and just plug it in as-is.

Comments

No comments found for this post.