Project Overview

Harmonicarium is a DHC

The Harmonicarium is a Dynamic Harmonics Calculator implemented using HTML5 technologies.

It’s based on the Pure Data prototype patchHarmonync“, developed between 2013 and 2016. To better understand, you can read the project overview on its site.

Harmonync and Harmonicarium were born as a study and research tools for musicians and overtone singers. But as well as artistic purposes, they may also be useful for scientific purposes.

A Dynamic Harmonic Calculator is a platform that produces a fundamental-variable, user-controlled, Harmonic Series-based tone-scale. The platform allows the user to play the tones of the Harmonic Series of whatever fundamental tone or pitch. It should be able to re-tune MIDI instruments and, eventually, Controlled Voltage devices.

Hereinafter, “Dynamic Harmonics Calculator” will be abbreviated DHC.

In other words, a DHC is an algorithm that allows the user, or the musician, to play the tones of a Harmonic Series and to change its fundamental tone in real-time; just like the overtone singers do with the so-called “polyphonic overtone singing” technique.

The idea is to play a fundamental-variable Harmonic Series on electronic and electro-acoustical instruments, retuned via MIDI and in real-time.

So, I started the Harmonync and Harmonicarium Projects to implement a DHC.

The concept of the Dynamic Harmonics Calculator is a Public Domain idea.

This program is free software and it is distributed under the Affero General Public License v.3 (or AGPLv3).

At a glance

Here is a brief explanation of the functioning of the Harmonicarium and, in general, of a DHC.

You can set a global root frequency, called “Fundamental Mother“. From this root you can derive and set a palette of intervals, called “Fundamental Tones“. From these Fundamental Tones you can derive a set of “Harmonic Tones“. As soon as you press a key assigned to a Fundamental Tone, the Harmonic Tones are instantly recomputed, and you can play the harmonics of the last pressed Fundamental Tone.

We may represent the functioning of the Harmonicarium, with the default settings, in this way:

Settings and default values are explained in the “Settings Overview” part.

What follows is a draft of the actual JavaScript implementation.

Project notes

Harmonicarium is a web-app. It is developed in HTML5 and vanilla JavaScript, using some ES6 new features.

The program is currently usable as a reference tool for overtone singers/instrumentalist and composers.

I know that a browser-based web-app is not very reliable in terms of hi-end audio production/processing, but the current implementation is meant to give everyone the chance to use the program with ease.

I chose to not use any external JavaScript library at the moment and keep vanilla the code because I prefer to avoid relying on third-party frameworks if not strictly necessary.

The only two external tools, the on-screen keyboard and the VU meter, are modular and replaceable if needed in the future.

When this app will be more complete and stable, we can think the re-implementation of a DHC in other programming languages that are better suited to the creation of embedded systems with higher efficiency, accuracy, and stability.

So… if someone wants to help me improving the software, the code is available on GitHub.

Contact me! Contributors are welcome!!


This content has been updated on December 2, 2017 at 9:09 pm