Perhaps I’m just picky. Perhaps my neuroplasticity isn’t what it used to be. Either way, I find myself getting quite frustrated with the inconsistent scroll wheel behavior between music applications, in particular, digital audio workstations (or DAWs). This wouldn’t be such a problem if the behavior could be customized in “settings”, but this seems to be quite rarely allowed.
Muscle memory is key to an efficient workflow. Years of using a mouse and keyboard in largely consistent ways enables me to perform many computing tasks with great speed. Most software has settled on conventions for keyboard and mouse shortcuts, such as Ctrl-C to copy, Ctrl-V to paste (Command-C, Command-V on Mac), etc., meaning one doesn’t need to relearn common shortcuts on a per-application basis. The same is also true for navigating a view via mouse wheel, at least for most software, according to the following rules:
- Scroll wheel: pan the view vertically
- Shift + scroll wheel: pan the view horizontally
- Ctrl (Command) + scroll wheel: zoom (wheel up = zoom in, wheel down = zoom out)
The vast majority of software I use on a daily basis functions this way, including Audacity, MuseScore, GIMP, Inkscape, LibreOffice, Firefox, Google Chrome, and Polyphone, just to name a few. Over 90% of my computer time is spent reinforcing these shortcuts into my muscle memory.
And then I try working with almost any DAW, and it all goes to hell. My muscle memory kicks in to scroll down in REAPER, and I end up zooming, or I try to zoom in Cakewalk and end up panning horizontally instead. A good percentage of my navigation attempts initially fail as everything that is built into my muscle memory is now wrong.
Perhaps a good comparison for this experience would be video game controller buttons. Anybody who has played platform-style games knows that jump is always the A button and attack is always X (assuming an Xbox style controller layout). If you make one game that swaps the functionality of these buttons with no option for configuration, you will have gamers up in arms, as muscle memory is key for gaming prowess. Some early games did have the jump and attack buttons swapped, but the industry has since standardized on the configuration we use today.
I believe we are at a similar juncture here in 2020. Most software has settled on the aforementioned scroll wheel conventions, so I believe software developers should strive to use these conventions whenever possible.
Scroll wheel behavior in popular DAWs
I tested the mouse scroll wheel (MW) behavior in a number of DAWs in Windows and Linux and charted their behavior in this Google spreadsheet. Here are a few notes on reading the spreadsheet:
- Behaviors not in accordance with the aforementioned conventions are highlighted in red.
- DAWs that have the desired scroll wheel modifiers out-of-the box are highlighted in green.
- DAWs that have alternate scroll wheel modifiers but allow full modifier customization are highlighted in yellow.
- The zoom shortcut (Ctrl+MW) should be used for horizontal zoom, as this is by far the most common zoom operation used in a DAW.
As you can see in the spreadsheet, the scroll wheel behaviors are all over the place. Of the 13 DAWs I tested, only 4 featured the desired scroll wheel behavior by default. Interestingly, all four are open-source DAWs (Ardour, Audacity, LMMS, Qtractor). A further three DAWS (Ableton Live, Pro Tools, Studio One) at least have vertical and horizontal scrolling correct, but miss on the zoom controls.
Only two DAWs (Mixcraft and REAPER) allowed me to fully customize the scroll wheel behavior, at least as far as I could find within the application’s settings. So, counting these two, that brings the number of DAWs that can be used with the desired scroll wheel behavior to 6.
I must give Tracktion Waveform 11 special mention for doing something truly awful: completely different controls between the track and piano roll views:
|Track view||Piano Roll|
|Vertical zoom||Ctrl+MW||Shift+MW / Ctrl+MW|
I can’t see this as anything other than terrible UX design. How is anyone supposed to develop muscle memory when there isn’t even consistency within the same application?
The purpose of this blog post is not just to vent, but to make a case for the standardization of the aforementioned scroll wheel conventions. We’re already part way there, with very strong adoption already in the open source community. If you are a software developer and wish to use a different control scheme, please at least provide an option to fully configure the scroll wheel modifier behavior, as Mixcraft so simply does in its preferences:
From a programming perspective, this is one of the easiest things to implement, so I am astonished it is so rare to find.
I am curious to hear opinions from both users and software developers on this matter. Do you share a similar experience to mine or something completely different? Are there types of music software where a different control scheme makes more sense? Please let me know in the comments.