I propose adding playing several sequential sounds (like piano notes) as an "animation". If you play several notes in a row doing:
notes = 'C3', 'D3', 'E3', 'C3'
for note in notes:
sound.play_effect('Piano_' + note)
time.sleep(0.5)
even though sound.play_effect is asynchronous and returns immediately, because the notes are played in a for loop, draw doesn't get called until the sounds are all done. The "to_value" in animate would be a sequence of sounds (not just piano notes). In draw (or perhaps "play"), you would do the same "layer.update(dt)" and "layer.draw" (or "layer.play").
This could be implemented using only Python (make a queue of sounds to play, check if a sound is done, and if so, play the next one), but having this as a built-in "animation" would be nice.
Another nice thing would be being able to add your own sounds to the sound library.