- Dropped off, picked up, dropped off.
- Worked on my vocoding tool with hopes of making it more debuggable so I can, well, figure out why it's not working.
- The general strategy is this: It's a port of a Pure Data vocoder that does work. But there are so many steps in it that I don't know where it went wrong. However, I can modify the Pure Data patch to emit intermediate sounds between most of the steps. So, I thought if I could do the same in my C++ port, I could compare corresponding intermediate sounds.
- I thought I could do this by having an AudioBuffer for each step, and writing to them after each step, then saving them to files at the end. The JUCE project, however, seems to have a max heap size. I was really confused by why I could not create a new FFT object on the second time through a function, and after eliminating some red herrings, I found out it couldn't allocate from the heap. I verified by getting rid of one of my diagnostic AudioBuffers. Without that, I don't get the heap allocation error.
- I thought of these alternative approches:
- Don't allocate extra AudioBuffers. Just allocate `float` arrays in automatic memory (the "stack"). Then, at the end, create one AudioBuffer at a time for each and write it out.
- Don't write out the intermediate AudioBuffers. Instead, refactor so that each step can be easily turned off and compare final outputs from the PD and C++ programs with various steps turned off.
- Constant sneezing made it too hard to concentrate on any of that, so I made my kid edits of the 36th Chamber of Shaolin. (I made one before, but I lost it!) I made one that doesn't make a ton of sense but is mostly just the training scenes so it's easier on the attention span. The other one has a bit more of the first and third acts, but leaves out stabbings and most of the blood.