I actually returned to it this morning hehe, and found some silly mistakes I had made in my refactoring. In particular, I found I had caused a bug last year in the
S16ClipU14 function from the Avril library which would have affected you … I apologise for any time you wasted on that!
(Having said this, I have now learned even more to be incredibly careful when refactoring code sprinkled with things like
a = x & 0x0f; b = x & 0xf0; and coexisting variable names like
phase, which can lead to incredible amounts of time wasted trying to find bugs).
I am now up to the same stage as you: my new firmware, compiled with
-O2 sounds almost identical to the official fimware, except for the ‘voxelito’ patch . I tried to add
-Winline however no warnings were generated by my gcc.
I have listened to your firmware, and it sounds good! I hear the same kind of artifact on the Voxelito patch as with my firmware. I’ve uploaded mine here, and the source is updated on Github.
Update: I believe that the problem with the Voxelito patch is somewhere in the modulation code (LoadSources / ProcessModulationMatrix / UpdateDestinations) because if you play with the mod matrix when Voxelito is loaded, you can hear weird things with the modulations. (I have one voicecard with my custom firmware, and the other ones loaded with the stock firmware, so I can do like A/B testing).
ambika_voicecard.hex.zip (36.5 KB)