Yet another wave player, now NCO based and noise (almost) free

This is at last what I wanted. No noise (of course there has to be some noise but compared to duty dac with or without dithering, this is much, much better)
And only one cog used.
This version uses NCO/PWM mode with 8 bit resolution, 7x oversampling, noise shaping and standard 80 MHz clocked Propeller
To do - compute constants in init procedure, to enable different sampling rates and overclocked Propeller without manually changing these constants in code and then place it in OBEX
And only one cog used.
This version uses NCO/PWM mode with 8 bit resolution, 7x oversampling, noise shaping and standard 80 MHz clocked Propeller
To do - compute constants in init procedure, to enable different sampling rates and overclocked Propeller without manually changing these constants in code and then place it in OBEX

Comments
Then I discovered that these artifacts are caused by access to "bufnum" variable from another object - and only this variable - and only from another object (???), so I tried to change its place in my code.
I changed this:
to this
and it helped but I don't know exactly why. There has to be a bug somewhere.
A relative to buf[], in the archive posted in this thread
Any standard propeller audio environment will do. Base frequency is something about 308 kHz. (7x44.1)
Powered speakers is all.
http://www.instructables.com/id/Building-a-custom-shield-for-the-Gangster-Gadget-P/step8/null/
http://forums.parallax.com/showthread.php?140767-A-new-topic-for-vga-(not-only)-sid-player (compile with bst, enable unused methods removing)
so you can try this driver there... The player uses modified Kye's driver so you can have your wav and dmp files in subdirectories on big (I use 8 GB) fat32 formatted SD and long (up to 32 chars) filenamed (the player reads LFNs)