Home Artists Posts Import Register

Content

After some sweat and tears I finally got the fudge sampler fully reimplemented and working including the harmonics editor and warp markers. 

The harmonics editor looks the same but it's now modularized properly and reusable in other contexts. Plugins just need to register a "chord" type of parameter and Blockhead will automatically add the chord editor in the same way as it does for envelopes.

Getting warp manipulation working again was a pain because the algorithms themselves are confusing and I had to figure out how to design the plugin interface so that Blockhead can get the information it needs from the samplers efficiently. The actual rendering of the waveforms on the screen is still handled by the Blockhead core but calculating the sample positions is now taken care of by the sampler plugins.

I made a mistake while re-implementing the warp calculations where I was accidentally applying the sample offset before the warp transformations. The effect was that it meant the warp markers would stick to the original sample positions when shifting the sample offset back and forth. It turns out this actually feels much nicer than the way it worked originally, so I decided to keep the behaviour. I had to fix up a bunch of other things to make it work right but I got there in the end.

It now feels a bit strange that reversing the sample does not also move the warp markers along with it, but fixing this is surprisingly non-trivial so I will not be spending time on it now.

Another thing I worked on which is demo'd in the video, is allowing the user to manipulate the warp markers while the envelope editor or chord editor is open. This was possible in an old build but I removed it because it caused all kinds of input related bugs, but I think I managed to squash them all. The idea of being able to click through a control to another one behind it is unfortunately a bit awkward to achieve in Godot, especially with complex input schemes.

All bouncing and exporting features are now working again. The way this stuff works is Blockhead will generate a temporary "snapshot" of all the data it needs to perform the render in the background. New "snapshot" variants of the new "effect" and "synth" block types had to be added, and the snapshot rendering code had to be adjusted to reflect the new lane-based signal flow.

Unless something comes up I think I'm now pretty close to releasing the next build. I have a big boring list of "things to remember to do before release" which is all stuff like "check unicode filenames still work", "generate default keybindings for macOS" etc etc.

I also have a few tiny features to redo and a lot of known bugs that I'm working through. My health problems are off-and-on but nowhere near as bad as I was earlier in the year.

Files

- YouTube

Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.

Comments

No comments found for this post.