The Soundslice Blog

New: smooth scrolling during playback

Today we’ve launched smooth scrolling during Soundslice playback. This makes it much easier and more natural to follow along with the music in our player.

Previously, if you pressed Play on a Soundslice score, the “page” wouldn’t turn until the playhead got to the very end of the “page.” Here’s a video showing the old behavior:

This made sight reading difficult — or impossible! — because of the blind spot at the end of each page.

Today, we’ve fixed that. Our player now smoothly scrolls the notation during playback, making it easy to follow along and sight read without awkward jumpiness or page breaks. Here’s a video of the same music, using our new smooth scrolling:

We designed our scrolling algorithm with these four goals:

  • Ensure the currently playing bar is always fully visible.
  • Ensure the next bar is fully visible at least a few seconds before the playhead reaches it. (Exception: big jumps, such as repeats and Da Capo markings.)
  • Use smooth scrolling instead of instantaneous jumps, to help guide the eye.
  • Finish automatic scrolls a bit early, so that the subsequent stave has a moment to “stabilize” before the playhead gets there.

We think this approach results in a good default autoscroll experience — but we also realize different musicians have different sight reading preferences. So we’ve also launched a second autoscroll mode, which has a different approach: it keeps the playhead at the top of the screen at all times. Here’s what it looks like in action:.

With the default autoscroll, you’ll find that the playhead generally stays near the bottom of the screen, so that there’s enough space to keep the current and next bars in view. With the “always on top” scrolling mode, the playhead stays at the top of the screen, which is more predictable if, say, you’re used to reading paper sheet music — at the expense of always displaying the currently playing notation (which gets hidden for a split second during the scroll).

To use the “always on top” scrolling mode, use our new scroll_type URL parameter. (That’s mostly intended for our partner sites. We’ll eventually have a way for users to set this preference directly in our interface.)

Finally, as before, if you manually pan the score during playback, we’ll disable automatic scrolling and display a small “Resume autoscroll” button at lower left. Click that button to resume automatic scrolling.

We’re happy with what we came up with, but of course we’d love to hear feedback on what does and doesn’t work well. Get in touch!