Specifications

management. How was it possible that the GAP can be put into the middle of old data in
the buffer? It did not make sense, for a long time the Nut OS was again suspected.
5.3.7.3 Next and previous Buttons.
The design focus then changed as too much time was being spent on this problem, so
next and previous buttons were implemented. They acted the same as stop, but on the
server side the program opened song number plus one for next, and minus one for
previous. Testing showed that this worked the same as stop, except the next or previous
song was played instead of the same one, and the slight slice of the old data was still
being played.
This implementation means that if the player is in play mode and the button is pressed,
the player will stop the decoder immediately and the server will start streaming the next
or previous file. When the buffer gets full it then starts the decoder. This effectively
means that the player will continue playing but with the new song. If the player is in
stop mode and previous or next is pressed, then the player stops the decoder and tells
the server to open the new file, but the transfer of MP3 data is not started until play is
pressed again.
This all worked except for the blip of old data. It could successfully change to a new
song while in play mode, without to many problems if the songs were the same bit rate.
But during testing it was note that when the player went from a 128kbbs to a 192kbbs
song, when next or previous was pressed while in play mode, the buffer would very
quickly empty and the song would stutter for a while, constantly re-emptying the buffer
when it refilled and then eventually start. This was repeated when going from 192kbbs
to 128kbbs. The player had no problem doing this when the song was stopped, before
going to the next song, then pressing play. It was decided that the decoder might not
handle having its own buffer partially filled with one bit rate and the rest filled with a
different rate. It seemed unlikely that the decoder couldn’t handle this change, but it was
not described anywhere in the data sheets [13].
To test if it was something to do with the implemented stopping and starting algorithms
or the decoder, the player was simply allowed to play a 192kbbs song after a 128kbbs
51