It depends on the game, but it seems possible:
https://www.youtube.com/watch?v=9HObgSBSByg
but at this moment, the gameplay is frozen.
Yes. That is why I ask, there is a need to send data to the PSG less often. How low can we possibly go on the sample/playback?
On MSX2 we can use line interrupts to sync the output, as long as we can get the number of “play”-calls down.
And, first and foremost I did not think of the speech as part of a tune. More like a voice in game, not synced to music, saying “power up”, “here we go”(Mario pitch) or “Valkyrie is about to die”
I’m sure I could live with a certain low-fi. But what does that mean in sample replay-rate?
I've never tried it so I can't say for sure, but I do know that an 8 KHz PCM voice sample is already barely audible. However, to be at that frequency you would need 133 interruptions per frame, which seems incompatible with gameplay code running in parallel. If we take something more reasonable like 20 interruptions per frame (which seems to me already a lot knowing that sending data to the PSG is not trivial), we would be on 1.2 KHz. Maybe for a game without action (e.g. a puzzle game) we could double this number, but it seems to me a lot of effort for a very low quality.
Note also that you would have to completely rewrite the PCM replayer and that without a precise timing, you will probably lose the advantage of this technique which consists in writing in the 3 channels of the PSG in a given delay to generate more natural sounds (Artrag will confirm... or not ^^). With this replayer, the sending of data to the PSG channels is done with a precision of (almost) one CPU cycle.
You are on the wrong path.
If all you need is to play speech with a player on the ISR, and the sole PSG, here it is:
https://www.msx.org/downloads/low-rate-voice-encoder
The encoder extracts from the voice the 3 most important harmonics and plays them on the 3 psg channels as they were sinus waves (they are square waves). The result is acceptable but needs a bit of work (naturally on the SCC, setting real sines, and using 5 harmonics, it sounds much better).
Here it is on a commercial release of Uridium for the colecovision
https://www.youtube.com/watch?v=iK7TfeGIhJ4
For you fun try this rom
From basic type: ?USR(0). The rom works also with the SCC, plug an SCC chip in the other slot, reboot an try again ?USR(0)
So you can compare PSG and SCC.
IIRC there are other samples in the same rom, try user(n) with n up to 5 or 6
I did the same on the Intellivision relaying on he standad PSG (AY8910 equivalent)
This is the game Deep Zone
Thank you so much ARTRAG! -You targeted this back in 2016 already. Making it possible to run once per frame, suitable for a game. So cool. The thread looks very interesting, but I barely understand half of it (I don't know what harmonics, square waves and sinus waves means in this case). As I said, I'm a noob. I might delve into this at some point though, as this is awesome stuff.
I would hope I could use the PSG only (=less extras for the user to buy/install), but the long thread talks a lot about the SCC, and it does really shine compared the PSG. I tested all the roms posted, and checked all the videos. With an MSX2 and PSG only, and say, 4 plays per frame, would it be much better (than only once per frame)? Or is it just so that sinus-waves (or something) on the SCC is such a crucial hardware-feature, that PSG alone will never come close?
The rate used to call the player does not impact on sound quality that much. If you pass from 60hz to 120hz you can find some small gain but you do not gain anything else going further.
The real difference is passing from square waves to sines.
Anyway you can just use the encoder to the link and the player with it.
Try
RELEASE05.RAR
@ARTRAG If you agree, I could add the ISR based replayer to MSXgl.
(I anticipate Wimpie's request ^^)
Sure