by ferris
This last week was more lazy time to just improve some things. Still working on getting my new PC env just right, tweaking my DoF some more (ironically by reducing taps/size of the flood fill pass I've made it faster and reduced most of the remaining artifacts that were bugging me most, but it took a lot of different tweaks/trying out techniques to discover that's what needed to be done), and finally adding a mechanism in WaveSabre to drop unused devices from the build. Basically how this works is a song typically consists of a binary blob which is made up of serialized device patches, routing info, midi events, etc. Now, I've also moved the device factory (the thing that given an ID for a device, actually instantiates the device class) alongside the data blob as part of the export data, which means if a song doesn't use a device, it can just exclude it from its factory. This means the compiler/linker can optimize away unused devices automatically simply because specific devices aren't referenced, meaning we've achieved our goal without too much pervasive explicit conditional compilation, which is rad. This also means I'm much more comfortable with h0ffman (and anyone else who has access to the repo currently really) experimenting with new devices and whatnot, given I can still do proper code review, as any executable code that goes inside an intro I at least want my eyes on :)
Anyways, gonna continue to take it easy in the next few weeks and fix stuff here and there. Looks like one my colleagues is starting to show some interest in contributing to the visual tooling as well, so I'll also be following up on that!