Please correct the errors below.
The player Learn and teach using sheet music synced with video Notation and tab editor Easily create interactive sheet music, for free About Soundslice Here’s our story
Help Embed Transcribe Plans Community
Practice Teach Embed Transcribe Community Plans Help Store Log in
Log in Get started

Posts tagged with “Soundslice API”

Aside from the new Paged layout feature (which got its own announcement), here’s a roundup of other improvements we’ve made to Soundslice recently:

New homepage

We’ve completely redesigned our homepage. It does a much better job of communicating the various things you can do with Soundslice — we hope you’ll agree.

While we were at it, we also added a page about selling on our store.

Improvements to player’s settings menu

We made two small usability improvements to the settings menu:

  1. The “X” button at upper right will now always stick to the upper right, meaning it’s always accessible to quickly close the settings. Previously, if you scrolled downward within settings, you wouldn’t have an easy way to close. This was especially annoying on mobile devices.
  2. The background of the settings menu is now partially transparent — meaning you can still see a bit of notation behind it. This can be helpful when you resize music or switch to Paged layout.

“Replay repeats after jumps” feature

You can now specify whether repeat barlines are honored after a jump such as D.S. al Coda. This one will be appreciated by anybody who frequently creates music in AABA form. :-)

For more, see the new “Replaying repeats after jumps” section in this help page.

Visual improvements to Horizontal layout

We made two subtle improvements to Horizontal layout. Can you spot the differences in these before-and-after animations?





The differences are:

  1. The music now goes “flush” against the left edge — removing that inelegant horizontal space we had previously.
  2. We now add a subtle gradient/shadow effect to communicate that there’s more music offscreen.

Accessibility improvements to player

Thanks to some user feedback, we’ve improved the accessibility of our player for people using it with assistive technologies. Various parts of it are labeled in a clearer way and we hope it’s easier to navigate and use.

Editor: Usability improvement for text entry

When you use our editor’s text features and change the font parameters, we’ll now retain your changes for any subsequent text you add. A nice little productivity booster.

Smarter transposition of tablature

If you use our player’s transposition feature on tablature tracks, we now disallow downward transposition if it would result in unplayable music.

For example, if your tab has a note on an open low E string of a guitar in standard tuning, we no longer allow transposing downward — because that low note can’t go any further down.

Fortunately our transposition works an octave in both directions, so you can always transpose upward if needed.

Improvements to mouse scrolling

Previously our player had some weirdness when scrolling with the mouse — especially noticeable when you tried to scroll diagonally with both horizontal and vertical scrollbars active. This is much smoother and more natural now.

New player JavaScript API methods

We’ve added a few methods to our JavaScript API:

We’ve been rolling out a bunch of new features lately, as always. If you create scores in Soundslice, you may have already seen some of these.

Wistia integration

We now support Wistia, for people who use Wistia video hosting.

When you add a recording, just select the Wistia option. You’ll first need to link your Wistia account with your Soundslice account. From then on, you’ll be able to access your Wistia videos within Soundslice.

Disabling notation

You can now disable a score’s notation.

Click “Hide notation” when creating or editing the score, and the score will behave in notationless view (i.e., showing only a full-screen video).

Why would you use this? Perhaps you embed Soundslice in your website and want to give people access to your lesson video as soon as possible, before you’ve synced it with notation. In that case, create the score with “Hide notation” checked, then add the video as a recording. Your users will immediately see the video, and you can take your time with notation and syncpoints. When notation and syncpoints are ready, just uncheck “Hide notation.”

Simplified printing toggle

Previously, when creating a score, you had to choose among three printing options — “Printing is disabled,” “Printing is disabled only for embed” and “Printing is allowed.”

This was unnecessarily complicated, given how people were using it, so we’ve simplified it to an “Allow printing” checkbox.

If you check this, then your score will have a “Print” button in its Settings menu.

Switching recordings in the syncpoint editor

You can now switch among a score’s recordings while editing syncpoints.

Previously, you had to click back-and-forth between the syncpoint editor and the score manager. Now, just toggle recordings at the bottom of the player, and you’ll be able to edit syncpoints for multiple recordings.

You can also switch to the the Synthetic player, which wasn’t previously possible in the syncpoint editor. This can be useful if your recording is hard to hear and you need to hear how the notation sounds when played “perfectly” by a computer.

Embed over non-white backgrounds

Previously our embeddable player assumed your website had a white background — causing a flash of white during loading. It no longer does this, meaning it works elegantly with, e.g., black page backgrounds.

New player API methods

If you embed Soundslice in your site, you’re welcome to use these new hooks for customization:

  • The setViz API method lets you dynamically activate (or deactivate) a visualization in the player — the piano keyboard, fretboard, violin fingerboard, waveform or mixer.
  • The viz=0 URL parameter lets you turn off all visualizations.
  • The getFullscreenSupport API method tells you whether the user’s browser supports web pages going full screen.
  • The setFullscreen API method lets you make the Soundslice player full-screen.
  • The narrow_video_height URL parameter now accepts percentages — so you can, for example, specify that the video should use 40% of the available height. This lets you make the player more responsive.
  • The settings=0 URL parameter lets you disable the Settings menu.
  • The vfs=0 URL parameter lets you hide the icon that lets users toggle notationless (full-screen video) view.
  • The setNotationVisibility and getNotationVisibility let you programatically control whether notation is visible.
  • The ssAudioEnd API event is triggered when playback reaches the end of the recording.
  • The ssToggleSettings API event tells you when the Settings menu is toggled.
  • The show_notation=0 URL parameter lets you activate notationless view on a per-embed basis.

All of these new hooks are fully documented here.

We have lots of new Soundslice improvements to share with you today. The biggest news: we’ve launched a new speed-changing interface and a way to share scores across your organization.

New speed interface

Changing playback speed has always been an integral part of Soundslice. But due to the variety of audio/video sources Soundslice supports, we’ve had a variety of slowdown interfaces:

The YouTube player traditionally has allowed only 50% and 100% speeds — so we customized our interface to reflect that. For non-YouTube videos, we support any arbitrary speed down to 50%. For audio files, if you’re using a modern browser, we support any speed down to 25%.

These differences have been tricky to maintain, and they’ve caused some confusion with some of our customers. What’s more, our “slider” interface required a bit too much precision on smaller screens and touch devices. And some of you have (rightfully so) been asking for slower minimum speeds and faster maximum speeds — something we were hesitant to do because it would complicate the interface even more!

All those problems are solved today, with our new interface:

Use the up and down arrows to quickly change speed. For fine-grained precision, click (or tap) the number in the middle and enter whatever speed you want. That’s it.

As part of this, we’ve increased the maximum supported speed for our synth player from 125% to 300% — and decreased the minimum speed from 25% to 10%.

YouTube 75% speed!

In related news, YouTube now supports 75% speed in its embedded player! That means any YouTube video in Soundslice now supports 75% speed. Enjoy your new, moderately faster slowdown powers.

And if you want to practice faster, you’ll appreciate that we now support 125%, 150% and 200% speeds for YouTube videos.


Do you use Soundslice with other people in your company/school/group, sharing a single Soundslice login across multiple people? We’re here to help.

Instead of sharing passwords, you can use our new organizations feature. With it, you can share scores across Soundslice accounts, and easily switch between them:

For more, see our new documentation. Note that this is only available for our licensing customers at the moment. If you’re interested in using it, please get in touch!

Multi-bar rests

Our rendering engine now supports multi-bar rests:

We’ve updated our MusicXML and PowerTab importers to handle multi-bar rests properly.

Soundslice player

As always, we make daily improvements to all aspects of our product. Some highlights:

  • Fixed a bug in iOS where you had to tap the Play button twice for videos to start. Take that, Apple!
  • Fixed a bug in Safari where the keyboard/fretboard/mixer would sometimes overlap the bottom of the notation.
  • The visual fretboard now has more padding on top and bottom, which means notes on the outer-most strings no longer get awkwardly cropped.
  • Score owners can now activate the virtual violin even on tracks that have tablature. Previously this wasn’t allowed.
  • When in notationless view, our player now always resizes video to fit the full width of the screen. Previously, it did different things depending on screen size.
  • When in notationless view on a small screen, our player didn’t have a way to toggle notation back on. Now, the arrow icon is available in the upper right of the video.
  • In the waveform, if you use your mouse wheel while dragging the boundaries of a loop, we now keep the loop properly anchored.
  • Made the mouse wheel more sensitive in Firefox, when you scroll through notation. It now matches the “feel” of other browsers.
  • Notationless scores now include a Settings menu. Previously it was hidden.
  • Notationless scores no longer have a Synthetic player. That was rather useless!

Notation rendering

  • Improved chord-diagram rendering to compress the names of really long chords, so they don’t bump into neighboring chord names.
  • Improved the vertical positioning of several tablature symbols: let ring, P.M. (palm mute), tap, pop, slap and artificial harmonics. They use space much more efficiently now, though there’s more work to do.
  • Fixed commentary-bar rendering so that tempo and triplet feel markings are rendered above (if applicable).
  • Fixed beamed grace notes to have an even beam width. Previously it was slightly oblong.
  • Fixed trill rendering to avoid doubling up the trill squiggly line in case of subsequent trilled notes.
  • Made some nice performance improvements, especially in the music-glyph rendering.
  • Fixed barre (aka Roman numeral position) rendering on retina screens.
  • Fixed our renderer never to display accidentals for slash noteheads. That bug was just silly.

Notation importing

  • Began implementing specific error messages for our MusicXML importer, if your uploaded file contains a known problem. Much better than a generic “Invalid file” error message.
  • Fixed a bug with funny characters in MusicXML chord names.
  • Fixed a bug where multi-line lyrics in MusicXML would sometimes import in the wrong order.
  • Fixed some bugs with our MusicXML importer’s handling of cross-staff beaming in piano music.

Score manager

  • In the syncpoint editor, inner-bar syncpoints no longer display the fraction (which was confusing and unnecessary), and their circles are smaller.
  • In the syncpoint editor, the notation’s playhead now properly autoscrolls during syncpoint tapping.
  • In the syncpoint editor, if you double-click a syncpoint to edit its bar number, you can now use the Escape key to cancel your pending change.
  • In the syncpoint editor, syncpoint deletion is much more intuitive. Previously, when deleting a syncpoint, we used weird logic in determining whether to alter the subsequent syncpoints.

Overall site design

  • Redesigned the “Account settings” page to be better on small screens, nicer looking and simpler to use.
  • Changed all file-upload pages to use the same design. And all file-upload pages now support drag-and-dropping files onto the page.

For people embedding Soundslice

  • The new flippable=0 URL parameter lets you hide the “Flip video” button in Settings. Useful for instruments like piano in which flipped video is meaningless.
  • The new waveform URL parameter lets you control whether the waveform is visible at page load time.
  • If you use top_controls and have a video above your notation, our tooltips (e.g., for audio sources) will now go upward, not downward. This feels more natural.
  • The “Powered by Soundslice” logo looks better at super-small player widths.

Thanks for using our site, and please get in touch with feedback, as always!

Here’s the latest rundown of Soundslice improvements:

Saving default transposition and synth sounds

Previously, we gave you a way to rename tracks and change default notation view. Now we’ve extended that to include a way to save default track transposition and default synth sound.


So, for example, if you import a MusicXML file and we somehow didn’t pick up that you wanted it to use the bagpipe sound samples in synth playback, you can now change that in track controls, then click “Set default.”

Soundslice player

  • We made our notation auto-zooming more sophisticated. Previously, if you reduced your browser window’s width (or increased the size of a video) such that the longest bar of notation no longer fit in the available width, we would reduce the size of the notation — and if you increased the width after that, the notation would remain small. Now, we remember the last manually specified zoom level, so that notation shrinking is only temporary until the player width increases again.
  • We increased the real-time accuracy of the playhead’s position during playback, leading to fewer cases of a “drifting” or “jumpy” playhead.
  • Our synth player now supports “Choir aahs” and “Choir ooohs.” Ooooh! Ahhh.
  • We fixed a bug where the playhead would remain in an odd position after reaching the end of the score.
  • We fixed playback in iOS (iPhones and iPads) — sometimes playback wouldn’t start when you clicked Play.
  • We fixed a bug where track controls sometimes said “undefined” for the track name (in case of bad MusicXML data).
  • We now hide the playhead at time of page load. It doesn’t become visible until either you seek the audio or press Play. This makes for a cleaner look.

Notation rendering

  • We made chord names slightly bigger when they’re used without diagrams. Looks nicer.
  • We (finally!) added a brace connecting both staves in a grand staff:


  • Similarly, we added a bracket connecting staff and tab staves:


  • Stemmed tab view now includes time signatures.
  • We now support circle and plus signs attached to note heads, e.g., in percussion notation to indicate open/closed hi hats.
  • We improved the placement of articulations (staccato, accents, etc.) with respect to noteheads, especially in case of multiple voices.
  • We fixed a rendering bug where end-repeat bars weren’t correctly drawn when preceding a start-repeat bar that contains a time signature change.
  • We fixed a rendering bug with chord diagrams where they took up too much space in tab tracks that have fewer than six strings.
  • In tablature with non-standard tuning, the tuning now uses sharps or flats depending on the key signature, instead of always using sharps.
  • We improved hairpin rendering (aka crescendos and decrescendos).
  • Stemmed tab view now displays simile repeat signs properly.
  • We improved the positioning of fingering in piano scores with cross-staff beams.
  • We now support rests with more than one augmentation dot.
  • We fixed a bug where the tempo marking at the start of a score wasn’t positioned properly in some cases.

MusicXML importing

  • We now detect a couple more ways that various notation programs specify “triplet feel” and properly import that.
  • We improved our importer to properly deal with Sibelius’ buggy handling of subsequent bar repeats.
  • We improved our importer to use bass clef for tab-only parts that are bass guitar. Even though MusicXML files don’t include a clef in this case, we do some heuristics.

Score manager / syncpoint editor

  • “Success” messages look better now, with a yellow background instead of gray, plus some subtle changes in look/feel.
  • The submit button in the “Add recording” page no longer jumps down after you specify a file to upload.
  • We fixed a usability issue with the “More” menu in the score manager — you no longer have to make sure your mouse cursor precisely stays over the menu and its arrow.
  • We fixed a bug where it would say “This folder is empty” at the bottom of some pages when you paged through your scores.
  • We fixed a bug in the syncpoint editor where the guide notes sometimes wouldn’t be displayed at time of page load.


  • We improved our JavaScript API to let you change the notation’s zoom level. See the setZoom API method and ssZoom event in our documentation.
  • We added a side_video_width URL parameter, which lets you specify the width of the videos when they’re on the left of notation.

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!

Today we’re launching several nice things for piano players. I’m particularly excited about this release!

Animated keyboard

First, we’ve made an animated keyboard view, available for any Soundslice score. It’s like our animated fretboard, but it shows a piano keyboard instead.

You’ll see a keyboard icon next to the settings icon at the bottom. Click it to activate the keyboard. Then, whenever you press Play, you’ll see the appropriate notes light up on the piano, telling you exactly where to put your fingers.

Screenshot of keyboard display

Click the track title, to the left of the keyboard, to toggle between left-hand view, right-hand view and both-hand view. If your score has multiple instruments/parts, it’ll toggle through all of them.

If you’re on a smaller screen, like a tablet or smartphone, we’ll automatically remove keys/octaves that your particular piece doesn’t use.

For scores that have tablature, the icon will default to the fretboard, as before, but you’ll see a little arrow icon that lets you switch between fretboard and keyboard:

Screenshot of keyboard toggler

For those of you embedding Soundslice in your site, you already heard from us about this via email last week, but here’s the info again: our embeds now include the keyboard icon by default. To disable it for your users, use the new enable_keyboard=0 URL parameter.

Improved fingering

Second, we’ve greatly improved how fingering is rendered in our music notation.

Previously, we took a naive approach and simply displayed fingerings in a horizontal row above notation. This had a lot of problems:

Screenshot of old fingerings

Now, we’re much more sophisticated and display fingering numbers above, below, left or right of notation, depending on the situation. We’re still tweaking the automatic-fingering algorithms but are much happier with this new display:

Screenshot of new fingerings

The animated keyboard also displays fingerings, if your score has them.

Screenshot of highlighted keyboard notes

Pedals and cross-staff beams

We’ve improved our engine to support two bits of notation important for piano scores: pedal markings and cross-staff beaming. Here’s an example of pedal markings, taken from Scott Joplin’s The Cascades:

Screenshot of pedal notation

And here’s an example of cross-staff beaming:

Screenshot of cross-staff beam notation

Hanon exercises

Finally, we’re throwing in a bonus: the famous Hanon piano exercises (aka “The Virtuoso Pianist”).

Published in 1873, these exercises are still used by piano students around the world today. Now you can practice them using the state-of-the-art Soundslice interface. We’ve made the first 30 exercises available, and we’ll be adding the rest over time. Enjoy!

As always, we’re improving Soundslice daily. Here’s the latest news...

We’ve added three new ways of customizing the Soundslice player when it’s embedded in your web site. Here are the new options:

  • force_top_video=1 forces videos to always be displayed above notation, regardless of your embed’s width. (By default, Soundslice will only display videos above notation for small embed widths.)
  • top_controls=1 places the main controls (the horizontal bar with the play button, etc.) above the notation instead of at the bottom. If a video is visible and it’s displayed above notation, then the controls will be between the video and the notation.
  • show_title=0 hides the score title. This results in a shorter control bar (a vertical savings of about 30 pixels), leaving more room for your notation.

These are all “URL parameters,” which are explained in our player API documentation.

Another small but helpful thing: for those of you who enter video URLs for recordings, it’s now possible for you to change the video URLs after you’ve created them. Just click the pencil icon next to any video recording in the Score manager.

Beyond that, we’ve made dozens of improvements to our MusicXML importer (too many to list!), along with dozens of improvements to our notation rendering, including:

  • Added support for black noteheads with no stems, as is used in some instructional material.
  • Improved dynamics to be rendered above staves if a stave has lyrics.
  • Improved notation rendering in case of more than two voices sharing a single staff.
  • Improved notation to use shorter stem lengths when a stem is off-staff.
  • Improved positioning of rests in case of multiple voices.

Stay tuned for more love and affection from the Soundslice team.

We improve Soundslice daily (yes, even on weekends), and we’re going to start posting weekly blog synopses of our progress. Here’s the first one, which covers what we’ve done in the last two weeks.

Note that many of these changes are behind-the-scenes improvements that you might not think are interesting — but if/when you encounter these obscure edge-cases of user interface or music notation, you’ll be relieved we support them!

Big features

  • Embed whitelist. If you embed Soundslice in your own web site, you can now specify a whitelist of domains that it can be embedded on, for extra security. This means people can’t easily copy your embed code and put it in their own site. See the new documentation here.
  • Multiple lyrics lines. Our notation engine now supports multiple lyrics lines. If you previously uploaded music notation that included multiple lyrics lines, there’s no need to re-upload; your scores will now display those extra lines.

Player UI

  • Improved video handling at smaller screen widths to leave more room for the notation.
  • Fixed a bug with the interactive fretboard where it wouldn’t redraw when the settings were toggled.
  • Fixed a bug where, in the case of multiple uploaded videos, the non-default video wouldn’t play.
  • Fixed a bug with our YouTube player where playback didn’t work in odd situations.
  • Disabled the default full-screen video behavior on iPhones in some situations. Unfortunately we have no way of disabling full-screen video on iPhones in every situation due to Apple’s draconian limitations.
  • Fixed an issue with video playback on iOS. The player now waits to load video until after user interaction.

Notation rendering

  • Improved note and stem positioning in case of multiple voices.
  • Fixed collision for ties after double augmentation dots.
  • Fixed collision for slides (glissando) after augmentation dots.
  • Improved rendering of tab when a bend leads into a slide.
  • Improved spacing of augmentation dots in tempo markings.

Score manager

  • Improved “Copy syncpoints” to refresh the target recording’s syncpoint count instantly after syncpoints are copied.
  • Changed default positioning of tap popup in syncpoint editor not to overlap the waveform.


  • Improved our MusicXML importer to deal with tab data generated by the Notion notation editor.
  • Improved our MusicXML importer to support nested tuplets.
  • Improved our MusicXML importer to deal with some weird MusicXML 1.0 cases with beams and ties.
  • Improved our MusicXML importer to deal with missing time signatures.
  • Improved our MusicXML importer to ignore duplicate/redundant tempo markings.
  • Improved our MusicXML importer to support dotted notes in tempo markings.
  • Fixed a bug in our MusicXML importer involving text positioning.
  • Improved our GPX importer to deal with some weird key-signature data, working around a bug in Guitar Pro.
  • Improved our GPX exporter to properly export grand staffs.
  • Improved our GPX exporter not to include slurs that Guitar Pro would auto-generate due to hammer-ons, pull-offs or ties.
  • Improved our GPX importer to include tempo changes that aren’t displayed (but still take effect in the synth player).
  • Improved our GPX importer to properly deal with crescendos/decrescendos over rests.

Player API/embedding


  • Redesigned our Pitch Perfect pages to have a consistent navigation with the rest of the site.
  • Updated our site’s SSL to use RSA SHA-2 intermediate cert for stronger security. (Our own cert was already SHA-2.)
  • Made a master Help index page.

As always, get in touch if you have any ideas, complaints or love letters.

One of the benefits of creating interactive sheet music with Soundslice is the ability to embed it in your own web site. Today we’re announcing an API that lets you control and customize the Soundslice player when it’s embedded in your site.

The API lets you toggle playback, change audio speed, change audio sources and a few other things — all using JavaScript. We also have several URL parameters that let you customize the player without needing to know JavaScript — for example, changing the notation’s zoom level, hiding tab/notation or displaying the interactive fretboard by default.

A few of our partners and soon-to-be partners have already been kicking the tires on the API, and the feedback has been great.

Full documentation is here. Note that we plan to expand this over time to include more ways for you to customize and control the player. If you have specific needs, contact us any time.

(Interested in embedding our player in your site? For commercial sites, see licensing info. For non-profit use, create a Soundslice For Teachers account.)

Read more posts…