tulamide wrote:I found that he explicitly checks for all 3 AVX revisions and does a fallback down to AVX (1st gen), if CPU reports so. So that can't be the issue either.
This may still not solve the problem. The only CPU capability
conditionals seem to be compiler directives - they are optimising the code for the system upon which the C++ source code is
compiled,
not the system upon which the final object code (i.e. the plugin .dll) will be
executed. I may have missed something when skimming the code, but I didn''t notice anything which would preclude compatibility problems if the final plugin .dll is loaded on a different system to the one which compiled it.
Spogg wrote:I still find it remarkable that so little CPU is needed for PadPal. And the speed at which the table is updated is amazing
Low CPU load for note-playback doesn't surprise me, as it's literally just a sample-player once the wave rendering has been done. The iFFT rendering speed is very impressive though, and I think it would be a challenge to match that kind of speed with the native features of FS (though maybe the extended assembler of the Alphas would help).
tulamide wrote:It would just need someone with knowledge of C to convert it to DSP/ASM.
1st rule of porting: never assume that a port will be simple unless you are well versed in both source and target languages!
Actually, we should already have a solution for the hardest part - the iFFT - unless MyCo's ASM version has any size limitations (possible, but I don't remember there being any). However, even the data creation code is nothing like as trivial as those friendly C++ high-level abstractions make it look, and DSP code is out of the question, as it can't do the necessary variable-length loops. It's certainly all
possible in ASM, but it's not just a quick brain-teaser for an idle hour or two - per-sample number-crunching is relatively easy, but structured code is a different matter entirely!