AlgoCompSynth / eikosany

R package to calculate properties of Erv Wilson's microtonal structures, especially the Eikosany
https://algocompsynth.github.io/eikosany/
GNU General Public License v3.0
6 stars 1 forks source link
microtonality

eikosany - Algorithmic Composition With Erv Wilson’s Combination Product Sets

Overview

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

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 https://github.com/AlgoCompSynth/when-harry-met-iannis.

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 much of the code in this package.

Motivation

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.

Developer notes

Project status update 2023-09-06:

I presented the project in its current state at the Cascadia R Conference on August 19th, 2023. The slides and some sample data are at https://github.com/AlgoCompSynth/eikosany-slides. I have now begun what I am calling “The Great Refactor”. Approximate road map:

  1. “Finish” consonaR. I am moving most of the scale, keyboard, interval, spectral analysis and synthesis functionality in eikosany to consonaR. I am also adding functionality to consonaR to facilitate algorithmic composition in the frequency domain. This may include a real-time synthesis capability if I can find a way to make that work on Windows, MacOS, Ubuntu 22.04 LTS and Raspberry Pi OS. It definitely will include the current synthesis functionality based on seewave and tuneR.

  2. Replace much of the low-level functionality in eikosany with calls to the equivalents in consonaR.

  3. Removing the MIDI functionality from eikosany. First of all, performing composed microtonal music on hardware and software synthesizers that support it is a solved problem, using the other tools listed above. Second, MIDI is a terrible score language for the kind of music I want to make.

    Open Sound Control (OSC) may be better, but I’m not convinced. I’d much prefer a language that facilitates live coding / performance as a human / computer interface over a communication protocol like MIDI or OSC. CLAMS is my approach.

Moving forward

If you’re interested in helping with the development of this package, a few notes:

  1. While you can install this package via remotes::install("eikosany"), it will be easier for me if you fork the repository https://github.com/AlgoCompSynth/eikosany.git and install it via devtools::install(dependencies = TRUE). I don’t recommend using the package without RStudio; there may well be hidden dependencies on it. I regularly run R CMD check and you should too.

  2. I am tracking Wilsonic MTS-ESP and Surge XT and am more or less constantly re-scoping this project to avoid duplicating those capabilities. So if I get a feature request that’s covered by one of them, I’ll most likely send you there.

  3. I have another project in the works that will be ramping up in September. CLAMS is a Forth-based real-time synthesis toolset for embedded environments. So my development time will be divided between the two projects.

    There will be integrations between the two projects, mostly so I can use R Markdown and Quarto for literate programming and documentation, and so the synthesizer can make algorithmic microtonal music.

References

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.
Xenakis, I. 1992. *Formalized Music: Thought and Mathematics in Composition*. Harmonologia Series. Pendragon Press.