Captain's Log: Stardate 77766

Today was a day of bugfixes. I realized that I hadn't built Anukari in debug mode for quite a long time, and figured I should run all the new tests and poke around in the GUI a bit with a debug build to see if anything turned up. Well... a LOT of problems turned up. I fixed at least 7 bugs today. Most of them were "small" in the sense that they were 1-line fixes, but all of them could have caused crashes.

These were especially insidious issues, too, because none of them seemed to happen in the optimized/release build. But all of them could happen -- just a matter of the planets aligning (in)correctly. So I'm very glad that the debug build ended up flagging them. Some of them just caused crashes right away, and some of them hit assertions in STL code, etc. For example, I had passed a std::unordered_set to std::set_symmetric_difference, which requires an ordered set. That's not something that can be caught at compile time (unfortunately), but the MSVC STL implementation did have checks to explode at runtime in debug mode.

I did make a little progress on what I set out to do this morning before getting distracted by bugs: I have a skeleton in place for a MIDI note follower modulator. It works end-to-end, the GUI is there and you can create instruments using it. But it's not very useful yet, because it simply outputs a linear number based on the note. There's very little you can do with a linear note signal -- you really need a logarithmic signal. The idea is that you could use a note follower to modulate the mass of a body to create e.g. a slide whistle / trombone where a single system changes its pitch depending on what note is hit. But there's some work to do next week before that becomes plausible.


© 2024 Anukari LLC, All Rights Reserved
Contact Us|Legal