How to use in your own programs
1. set PLY_SongPtr to point to your binary song data that you've exported form Arkos Tracker
2. call PLY_Init()
3. call PLY_Play() and PLY_SendRegisters() at 50Hz or 60Hz rate or something
4. call PLY_Stop() when you're done

Doh. How do I edit a post. I meant to say, there are some other minor changes like changing the player to a two-phase system where you first call PLY_Play() and then you can do something with the register values, and output the PSG port settings later with PLY_SendRegisters().

The two-phase system also lets you balance sound output timing accuracy vs. precious vblank time usage, as you see fit. You can, for example, just output the port values to the PSG at the beginning of the vertical blank interrupt handler, then use the high-speed VDP access time window for fast VRAM upload, and start processing the next sound tick only after that. This way you waste as little of the vblank time as possible, while still getting a rock solid timing in your sound output. If your VRAM upload takes a reasonably constant time, you could also place the PSG port upload after that, without messing up the timing feel of the music. (Not all people are as sensitive to such timing jitter, but I personally don't like it, if the player's "ticks" aren't steady.)

Yes, I used it at the AAMSX Music Discs that collect tracks from Cultura Chip's music compos. They feature Vortex Tracker, Arkos Tracker and WYZ Tracker tracks usually. But I think all Arkos tracker files where for first version so I didn't try Arkos 2 yet.