We're explored a lot in the area of stand alone beeper music, one that takes nearly all CPU time, but only scratched the surface of the music that plays along some action on the screen. Could be interesting to try this out too. Here is my thoughts.
Early ZX games often were attempting to play some music alongside the gameplay - for example, Antics or Manic Miner.
There is three methods to play beeper music during gameplay.
First is to just put a very short duration beep after each frame. Causes major slowdown to the game and staccato sounding music, but with relatively clean sound.
Second, very often employed to play sound effects, is to play short duration beeps and noises during leftover time of a TV frame, instead of HALT, sound loop stopped with a new interrupt. It introduces major 50 Hz buzz, but no slowdown. Requires to have enough leftover time, though.
Third, I think is the most obscure one, is applicable to games where frame time is evenly distributed around some nearly constant-time process (rendering usually), so they can call sound routine a number of times per frame with mostly constant pace. That likely would suit well for multicolor engines such as Nirvana. They can have a short sample buffer, prepared outside the raster, then read and output value from the buffer to #FE each N scanlines (very low sample rate, but may work for some cases).
The result in existing old games, I think, almost unversally could be described as 'annoying'. But I don't think that's just because of some general issue with the idea itself, rather with poor execution. Most games with in-game music use monophonic single beeps, single simplest timbre (square), combined with poor music (mostly crude renditions of classics), mostly without any pauses (constant beeps/buzz), no dynamics at all. If either or both of the issues (tech and composition) will be improved, the result should become much more pleasant.
i don't think polyphony is a must, as my practice (yet to be released) with PC Speaker shown that it is very well possible to pull quite impressive illusion of multiple voices with proper authoring tools (easy multiple-to-single channel voice management) and composing. Nice to have anyways, if possible.
Timbre/tone control would help greatly, especially pseudo volume control - it would bring the dynamics, and timbre control would help with sound variety. Noise generator would improve the percussion too, even though PC Speaker experience shows that even square tone alone is enough to make a good rythm parts.
Proper composition of new original music, with good variety and dynamics, is of course would bring the greatest improvement to the matter.