Think of it has rewinding a program. Emulated musics are programs. It would basically be an equivalent to running a program backward which is (mostly) impossible.
The most practical way to implement a rewind features is to have a cache (or back buffer) of the previously generated sound. There is no good reason to implement that directly in the library. It should be a feature from the player if it's willing to pay the price.
On the same subject fast-forward is possible as you can always run the program faster. But it has a heavy cost in term of CPU resource used. This used to be handled by sc68 but it's been deprecated for the same reason: a player can always to that on it's own it does not have to be in the simulator.
On a slightly related topic music speed could (and should) be implemented by the library. That's because in that case the library would be able (in almost all cases) to play the music faster or slower without detuning, something a higher level player could not do.
Last edit: Ben G. Han 2016-11-13
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Think of it has rewinding a program. Emulated musics are programs. It would basically be an equivalent to running a program backward which is (mostly) impossible.
The most practical way to implement a rewind features is to have a cache (or back buffer) of the previously generated sound. There is no good reason to implement that directly in the library. It should be a feature from the player if it's willing to pay the price.
On the same subject fast-forward is possible as you can always run the program faster. But it has a heavy cost in term of CPU resource used. This used to be handled by sc68 but it's been deprecated for the same reason: a player can always to that on it's own it does not have to be in the simulator.
On a slightly related topic music speed could (and should) be implemented by the library. That's because in that case the library would be able (in almost all cases) to play the music faster or slower without detuning, something a higher level player could not do.
Last edit: Ben G. Han 2016-11-13