Skip to contents

Update 2023-04-12

This project is going on a brief hold for rescoping and refactoring. There are a couple of reasons for this:

  1. The package I was using to write MIDI files, gm, writes MIDI files by running MuseScore 3 from an OS shell. This is a hassle for the user, who needs to install MuseScore 3. But worse, the resulting MIDI files sometimes work and sometimes don’t.

    One specific “didn’t work” was a tool from the Windows store called MIDI Analyzer. When I tried to open one of the MIDI files with MIDI Analyzer to see what it looked like, MIDI Analyzer crashed!

    Meanwhile, MuseScore have moved on to version 4. I don’t have the time to troubleshoot MuseScore’s current product, let alone their “legacy” one.

    So I have spun off a new project, mydough, that’s specifically designed to read and write MIDI files. It uses reticulate to access MIDI via the mido Python package.

  2. eikosany was starting to overlap a lot of functionality provided by other software, all of which I use and which I suspect most microtonal musicians use as well. In addition, there’s a whole other domain of microtonal music that deals with the relationships between timbre / spectra and musical scales.

    So I’ve started a new R package, setharophone. setharophone will implement many of the algorithms in Tuning, Timbre, Spectrum, Scale (Sethares 2013), and will be able to read and write audio files using existing CRAN packages.

    Once setharophone is fleshed out enough to use, I’ll be able to design sounds that go well with any microtonal / xentonal scale, including eikosanies. I’ll probably move the scale, interval and keyboard mapping functions from eikosany to setharophone, since they aren’t specific to the Wilson theory. setharophone will most likely have Scala .scl file input and output.


eikosany is an R package of tools for algorithmic composition with Erv Wilson’s Combination Product Sets (Narushima 2019, chap. 6). It’s meant to complement other microtonal composition tools, not replace any of them.

About the name: an Eikosany is a 20-note scale derived by Erv Wilson from six harmonic factors. Although any six factors can be used, the most commonly encountered Eikosany uses the first six odd numbers: 1, 3, 5, 7, 9 and 11.

Other tools

  • Scala. Note: this is not the Scala multi-paradigm programming language that runs on the Java Virtual Machine. This is a specialized tool for working with musical scales.

  • Sevish’s Scale Workshop. This is a web-based tool for working with musical scales.

  • Leimma and Apotome. These tools, by Khyam Allami and Counterpoint, are browser-based applications for creating microtonal scales and making generative music with them.

  • ODDSound MTS-ESP. This is a plugin for digital audio workstations (DAWs) that facilitates production of microtonal music. I own a copy and if you’re making microtonal electronic music, you should too. The Eikosany and other scales Erv Wilson developed all ship with MTS-ESP, so you don’t really need my R package to compose with them.

  • Entonal Studio. Entonal Studio is a user interface package for microtonal composition. It can operate as a standalone application, a plugin host or a plugin. I own a copy of Entonal Studio and recommend it highly.

  • Infinitone DMT. From the Infinitone DMT FAQ: “Infinitone DMT is a DAW plugin and standalone that empowers musicians to easily use micro-tuning within their own workflow. …

    “As a plugin, Infinitone DMT is inserted in your DAW as a MIDI effect. … The standalone can be used separately from a DAW, or it can be used in conjunction with a DAW by routing MIDI data from the DAW to the standalone (and back).”

  • Universal Tuning Editor. Universal Tuning Editor is an application for computing and visualizing microtonal scales and tunings, and includes tools to interface with hardware and software synthesizers.

  • Wilsonic. This is a free app that runs on iOS devices. I don’t have any iOS devices so I’ve never used this. There is also a version of Wilsonic in development for use with ODDSound MTS-ESP. See

    for the details.

See the Xenharmonic Wiki List of microtonal software plugins for more ways of making microtonal music.

Some history

On February 4, 2001, composer Iannis Xenakis passed away. I’ve been a fan of experimental music, especially musique concrète, algorithmically composed music, microtonal music, and other avant-garde genres since I was an undergraduate. Xenakis was one of the major figures in algorithmic composition.

Reading the first edition of Tuning, Timbre, Spectrum, Scale 1 rekindled my appreciation for the microtonal music of Harry Partch. And so, armed with copies of Sethares (1998), Formalized Music 2, and Genesis of a Music 3, I embarked on a path that led to When Harry Met Iannis 4.

When Harry Met Iannis was premiered at a microtonal music festival in El Paso, Texas in late October, 2001. The Bandcamp version is essentially identical to that version; the source code is on GitHub at

At the festival, I met a number of composers who were working in microtonal and just intonation, and one name kept coming up: Erv Wilson. Wilson was a theoretician who developed keyboards, scales and tuning systems that several composers were using at the time, and are still using today. Terumi Narushima’s Microtonality and the Tuning Systems of Erv Wilson 5 is a comprehensive documentation of Wilson’s work and is the basis for the code in this package.


I have two main motivations:

  1. There’s an old saying that if you really want to learn something, teach a computer to do it. In the case of Erv Wilson’s musical constructs, teasing the construction processes out of his and others’ writings on the subject is a non-trivial task.

    For example, much of Wilson’s work consists of multi-dimensional graph structures drawn on flat paper. He did build physical three-dimensional models of some of them, but some can’t even be rendered in three dimensions. And the graph theory operations that generated them and musical ways to traverse them are not at all obvious.

  2. The 20th anniversary of Xenakis’ passing and of When Harry Met Iannis occured in my second year of virtual isolation because of COVID-19. During 2021, I acquired two synthesizers that are capable of mapping the keyboards to arbitrary microtonal scales: an Ashun Sound Machines Hydrasynth Desktop, and a Korg Minilogue XD.

    The Hydrasynth ships with the tuning tables for many of Erv Wilson’s scales already in the firmware. For the Minilogue XD, the user can load up to six custom scales with a software librarian program.

    But I’m not a keyboard player, and even if I were, the remapping process for the scales leaves only middle C where a musician would normally expect to find it. All the other notes are somewhere else.

    So I need a translator for the music I want to write that doesn’t involve a lot of trial and error fumbling around on a remapped synthesizer or on-screen keyboard. CPS scales are aimed at harmonic musical structures like chords, and finding them on a remapped keyboard is tedious and error-prone.

    Music composed using Wilson’s musical structures is mostly played on instruments custom-built for them. There are keyboards designed for Wilson’s and other microtonal music; indeed, Wilson himself designed microtonal keyboards (Narushima 2019, chap. 2). But they’re quite expensive and, like the instruments, custom-built. I need tools to work with what I have.


The ultimate goal of this package is to compose music using Combination Product Set (CPS) scales and other Wilsonic constructs. There are three milestones on that path:

  • v0.5.0:
    • computing scale tables, interval tables, keyboard maps and chord tables from definitions of combination product sets and equal-tempered scales,
    • creating full-keyboard .scl files for synthesizers that can use them, like the Korg Minilogue XD,
    • plotting keyboard maps of chords for retuned synthesizers, and
    • capturing samples from retuned synthesizers and publishing them on Bandcamp.
  • v0.7.5: coding the full range of Erv Wilson’s concepts and graphics - keyboard layouts, lattice diagrams, the scale tree, moments of symmetry, etc.
  • v0.9.0: algorithms for musical composition by traversing Wilsonic graph structures and emitting scores in computer-readable formats such as MIDI and Open Sound Control as well as human-readable formats.

Update 2023-02-23

Mostly because of some hassles getting the Minilogue XD retuned to the 1-3-5-7-9-11 Eikosany, the contents of the v0.5.0 milestone have changed rather drastically. But there is now a due date - Friday, 2023-03-03, a feature freeze is in place and I’m wrapping up the documentation. The pkgdown site is active and you can watch things happen at

Much of the good stuff - the diagrams, and the algorithms for exploring Wilson scales and generating scores that use them - will be in future releases. I don’t have firm release dates yet but I’m aiming for the beginning of May for v0.9.0.


Borasky, M. Edward (Ed). 2021. “When Harry Met Iannis.”
Narushima, T. 2019. Microtonality and the Tuning Systems of Erv Wilson. Routledge Studies in Music Theory. Taylor & Francis Limited.
Partch, H. 1979. Genesis of a Music: An Account of a Creative Work, Its Roots, and Its Fulfillments, Second Edition. Hachette Books.
Sethares, W. A. 1998. Tuning, Timbre, Spectrum, Scale. Springer London.
———. 2013. Tuning, Timbre, Spectrum, Scale. Springer London.
Xenakis, I. 1992. Formalized Music: Thought and Mathematics in Composition. Harmonologia Series. Pendragon Press.