Last weekend 5th of May, the core Unit Seventeen met up for a bit of a coding event.
As GemTwo got some MIDI equipment we could finally test the pitch live in a running EPSS on a Falcon030. It didn’t work 100% the first tests but as we had a good test setup it was quick to find the errors and fix it and we soon had it up and running which was a great feeling!
So I read the MIDI values from the pitch bend and applied the variable values on the base frequency to get a seamless change of the pitch. It sounded great which is something you never can anticipate until really trying it. To play around a bit I implemented so the MIDI modulation wheel adjusted the multiple for the pitch bend value which made it easy to adjust the pitch range dynamically as well instead of having to send the somewhat awkward Pitch Tune RPN messages.
Implementation was just a brute force 16-bit resolution Sample Rate Conversion algorithm without any optimizations, i.e. just looping with dbf and some bcc for the fractional part algorithm, but it worked straight off on the 030. Unfortunately when trying it on a 68000 in the Mega STe it didn’t work either in 16MHz cache mode so it needs some work done.
But we are slowly taking steps forward and I have approaches on how to optimize it by implementing it with self modifying code that dynamically rewrites the offsets for move-blocks. This approach should be possible to use both for the fixed notes as well as the dynamic pitch bend.
We also had some interesting discussions regarding future ideas, for example how we could get the current looping of samples working better and sounding better, implement dynamic volume changes (ADSR) and see if we could work with wavelets. Also our friend Istari visited and he had some approaches for using the DSP in the Falcon for SRC for exmple, but we will try to concentrate on making the core functionality in 68000 and maybe add enhancements for DSP at some later stages as it will be a completely new world for me.
So unfortunately nothing releasable yet but hopefully the Pitch bend and new variable SRC with self modifying code should be next…