Week 58: Fixed-point approximation
I went to give blood for the first time in a while. It was a lovely day for a cycle ride into the City of London, and I didn’t even need a hat or scarf. (It didn’t last: the temperature dropped significantly a day later.) It was my first donation since a brief spell of anaemia last year, but my haemoglobin levels were very good this time, and it all went fine.
I sorted out the efficiency problems with the oscillator for my Pipistrelle module. I rewrote all the oscillators to use a fixed-point integer representation – the processor doesn’t have dedicated floating-point instructions, so those operations are slow – and used a very fast quadratic approximation for the sine wave. With those changes, it can happily blend between four different waveforms at a 48kHz sample rate.
I forked that oscillator and made a quick supersaw oscillator with variable spread and sub-oscillator. It sounds immense, but has some ugly high-end artefacts when not filtered, so I need to tweak it a little.
It’s close to the point where it might be useful to others, so watch this space for an announcement on that soon.
We had another good turnout at Sanshinkai on Saturday, and I’m feeling cautiously optimistic about the future of the group.