Sevish

How Scale Workshop was started

Scale Workshop is a web app to make musical scales and tunings. It tunes synthesisers to microtonal traditional scales, historical scales and xenharmonic scales. People who are new to custom tunings can learn a lot by loading up some preset scales in Scale Workshop then mashing the qwerty keys to hear what these things sound like!

As of writing, Scale Workshop is developed by Xenharmonic Developers, lead by Lumi Pakkanen. Many others have contributed new features and fixes over the years. The project was originally started by me (Sevish) and in this article I just wanted to share some of my personal thoughts about the early days of the app.

Where to access Scale Workshop

Scale Workshop current version – hosted on Plainsound with the latest features

Scale Workshop 2 – stable SW2 version hosted on sevish.com

Scale Workshop 1 – original old school version is still available here

A screenshot of Scale Workshop 3

Where the idea came from

At Freiburg in south west Germany a few musicians were gathered around a dinner table next to the venue where a concert was about to happen. EUROMicroFest 2017. Michael H Dixon and Donald Bousted were discussing how they were getting things tuned properly on their MacBooks. Of course, Scala came up. Now Scala is perhaps still the most feature-rich scale/tuning software out there. But one thing I noticed is that people had the exact same trouble getting Scala working on a Mac. It got me thinking that it could be possible to recreate some of Scala’s basic functions in a web app that runs on any browser. The idea wasn’t to replace Scala, but to just implement the absolute basics in a convenient web app.

A few realisations hit me in a row.

It seemed like JavaScript could do all the tuning calculations and could even assemble tuning files that would download straight from the app. (Tuning files are one method that software synths can be retuned).

I learned about the Web Audio API and it seemed possible that such a tuning app could let the user play the scale with a built-in synth.

When I became aware of the Linnstrument, I realised a qwerty keyboard could act like a similar thing, i.e. as an isomorphic keyboard for note input. It seemed only needed two parameters would be needed, vertical and horizontal, to get a variety of different isomorphic keyboard mappings.

I realised that scale data could be stored as URL parameters, so that a bookmarked link would bring you right back to the scale you had worked on earlier. I knew that the online tuning scene (the Xenharmonic Alliance Facebook group, Discord server, and Wiki in particular) would use these URLs to quickly share tunings with each other.

If such a project had a permissive software license, I realised that music tech developers could reuse some of the Scale Workshop code to improve the tuning functionality in their own synths. (As far as I know, this did happen at least once).

And by following an open source model, others may want to contribute bug fixes and improvements so that all users of this free app could benefit.

So at this early stage I had a forming image of Scale Workshop in my head, along with an idea of what tech challenges would need to be overcome. Though, it was something completely unrelated to music that actually got my to execute on my plans! I was seeing a lot of jQuery going around at my day job and I wanted to make sure I understood it better, so I decided to start a side project to practice my jQuery and JavaScript in general. I started to build the one thing that I already had in my head, Scale Workshop!

(Of course, jQuery is extremely old hat now and we don’t use it anymore in recent versions).

Getting Scale Workshop working, bit by bit, became my obsession for a while. Every little success and next challenge kept me interested. I remember boarding a bus for a long journey and thinking “by the time I arrive, I want to have the isomorphic keyboard working.” And I barely did, though it was quite broken, I had managed to get the difficult bits done.

Even when my code works, it’s ugly. I don’t go into personal projects with all the logical stuff worked out in advance. I just kinda guess whether things will work or not, then hack things together until they do. In the case of Scale Workshop, this lead to a lot of “sevishcode”, most of which had to be refactored over time!

Eventually some really cool things started happening. Music teachers started using Scale Workshop in the classroom to teach music theory concepts. Tuning heads were generating scales on the bus and pinging them into Discord for later deep dives. And while I’ve now completely stepped away from the project, other developers joined in the effort to build Scale Workshop, which is still under active development.

Big thanks to all the users and developers of this tool. Happy tuning!


Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*