Thanks for the files. I was unable to reproduce the sync not being triggered in my tests, but I did see the sync being triggered too early (in the BASS_ChannelPlay call). Perhaps that is causing the problem you're seeing in your test, if the BASS_ChannelPlay call comes before the button is set green? Here's an update to try, which should correct the early sync problem... www.un4seen.com/stuff/bass.dll
If you still have the problem with that, please try running your test under the debugger and set a breakpoint in the SYNCPROC to confirm whether it gets called each time you click the button.