NanoTone Synth Devlogs - the "nth root of x"

NanoTone Synth is my microtonal music software, which allows you to the explore notes between the keys with unusual tuning systems. It allows you to compare each temperament by how closely they approximate harmonic intervals. It was a rather mathematically dense project, but the final product has been rewarding.

NanoTone Synth 1.0 Devlog
September 5, 2016

I wrote this devlog for my music making tool, NanoTone Synth. I apologize if the following is nonsensically technical.

I began developing NanoTone Synth on July 12th, 2016. Most of the math centers around calculating the “nth root of x”, x being 2 for an octave (2:1) and n being the temperament (12 notes per octave). So I drew the inner circle around 12-TET, and I drew the outer circle around 53-TET. Then I added the harmony lines for 3 and 5 limit ratios, which are basically base 2 logarithms of the ratios wrapped around the 360 degrees of a circle.

The next day I added 7, 11 and 13 limit ratios. Then I took a break. I picked it back up on July 23rd, and added a system to show how perfect the fourths and fifths are in any given temperament. Over the next few days I added more ratios to this “approximator” system, and tested the software out in HTML5. I started adding menus for the harmonics on July 29th.

Then I took another break – this time to make the proof of concept Celody Life. I added more ratios and menus to NanoTone over the next few days, then tested it on my Android tablet and cellphone on August 10th. The next day I added the comparisons menu, found an icon, and released the music making tool on itch.io, just under a month after starting the project.

A week later I figured out how to properly upload the HTML5 version onto itch.io. Thanks to Leaf for helping me out with that. :)

NanoTone Synth 2.2 is out!
May 19, 2020

I took a cue from Celody Life and added a similar opening tutorial. This is a much better alternative to the awkward "Start Menu" I added in the last NanoTone Synth update.

Now everything is on one page again - though you can still view the longer tutorial by clicking the ? button or pressing the L key.

I think about improving the GUI or adding more comparison features now and then, but I think I could call this finished as it is. I'm glad to know it's been helpful to people. ^_^

NanoTone Synth 3 is out! 7-limit harmonics and more!
April 13, 2021

Same Old New Thing

New update! NanoTone Synth 3 is out, now with 7-limit comparisons, larger fonts and an easy-to-navigate menu.

I think this update is long overdue... I've been wanting to give NanoTone Synth a proper menu since its first release in 2016.

Adding 7-limit comparisons turned out to be one the easier things about this update... I've also realized there's little to no benefit going further (11-limit comparisons, etc) unless I were to get "Compare to any-TET" working. Which I doubt will happen, as I mention below.

HTML5 is Cursed

I had a few issues with the browser version... apparently pitch shifting doesn't normally work in HTML5 exports of GM:S, and I'm not 100% sure why it works in NanoTone Synth at all. I've finally got the HTML5 version working again, a few weeks after releasing the Windows version... but it's taken a lot of time, energy, and maybe some black magic too.

After various discussions with fellow game developers, I realize I'm not the only one who thinks HTML5 export in GM:S is cursed. So while I managed to get this version working... it's likely the final update I'll have for NanoTone Synth. At least the browser version.

Features That Elude Me

There are a few features I've wanted to implement and haven't been able to. Some features I should've added from the start, while others seem mathematically beyond me.

The ability to compare any two temperaments ("Compare to any-TET") is one feature I'd love to add, but just seems a bit out of reach. Because of the way I coded NanoTone Synth around 12-TET, it uses constants related to 12-TET rather than variables that can be swapped out for any other temperament. Any attempt I make at changing this just breaks NTS, rather than giving me the intended outcome. It's pretty frustrating tbh.

Another feature that doesn't seem to fit NTS's code is changing keys... I wish I had thought to add this one in the initial stages of coding. Of course, the thought experiment of "how do I program a tuner for microtonal software?" is one that leaves my head spinning. Are we talking 12-TET, or any temperament here?

Someday, I will likely return to add a simple option to change keys... I'm just too tired right now, and I'm not currently using the software for myself.

Superkeyboards

One feature I've wanted to add (that may carry over into other software) is a fretboard with microtonal harmonics. I wanted to add multiple ways of displaying microtonality in NTS, rather than just the circular harmonic structure. I think a fretboard could be particularly helpful for fretless bass players like myself.

Since most people still play instruments based on frets and keyboards, I feel like these are useful visual aids that I've not been able to implement here. I've also agonized over thoughts of a "superkeyboard" for a while, but I could never devise one that isn't visually overwhelming.

I wanted to add a "History" section for famous musicians who've pushed the envelope with microtonality (Zhu Zaiyu, Nicola Vicentino, Ivan Wyschnegradsky, Wendy Carlos, Harry Partch, etc)... but I'm tired, and I don't want to deal with the HTML5 version breaking on me again.

Conclusion

So yeah... I think I'm winding down this project for good. I've brought NTS to a place where I'm comfortable, and now I want to apply these ideas to some other music software.

Also, I simply need more hands-on experience with microtonal music, before I can meaningfully expand upon microtonal software like this. With its walls of stats, NTS is a bit too abstract for my tastes.

This gets more traffic than any of my other projects... which is cool. If you've been using the software and want to support the developer, please consider donating via the itch.io page. Thanks for reading. :)

link to NanoTone Synth

Return to software
Return to writings
Return to home