a Dynamic Harmonics Calculator
The Harmonicarium is a platform that allow the user/musician to play the Harmonic Series and change its fundamental tone in real-time. Just like the overtone singers do with the 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.
It's based on the Pure Data prototype patch "Harmonync", developed between 2013 and 2016.
To better understand, you can read the project overview on the home site.
Harmonicarium's source code repository is available on GitHub.
- Musical performances and playing music.
- Music composition for...
- overtone singers and choirs;
- "overtone instruments" (i.e. natural brasses/horns – or the sax altissimo technique; the Đàn bầu that use the string flageolets phenomenon);
- microtonal musicians.
- Polyrhythm composition and research.
- Research about the musical theory.
- Musicotherapy and sound therapy.
- Creative additive sound synthesis.
- Scientific probes; realtime tone/signal generation for...
- environmental acoustic tests (i.e. modal analysis);
- physical actuators (i.e. sonotrode);
- ...
Harmonicarium is written in JavaScript (used ES6 features) and uses the Web MIDI and Web AUDIO API. Currently it has been tested on Google Chrome v61+ under macOS (v10.11+), Windows (v10) and Android (v5+) but it could run on other browsers supporting the Web MIDI and AUDIO API.
At the moment you need Google Chrome or Chromium. The software has been developed on a high performance workstation environment and currently no optimization has been made in order to minimize the computational load.
Partially untested on mobile devices. On embedded Android devices I have experienced slow data processing (delay in output audio response). This means that on low performance system you could may experience slowdowns. The Qwerty Hancock keyboard seems to support multitouch events.
Though Harmonync has the MIDI-OUT-RETUNING feature (that is the main purpose of these software), the Harmonicarium is still under development and the MIDI-OUT is not ready at the moment. We must first create a better user&mobile-friendly GUI.
This program is a web-app. This means that it uses the HTML5 technology and you need a browser to use it. As I said at this moment you need Chrome.
- If you don't have Google Chrome on your system, download here and install it.
- Run the app's URL in the browser. You can:
- open the online version harmonicarium.org/app;
- download the sources from GitHub and open "index.html" to run a local instance of the app.
Note: Of course, if you run the app locally, do not rename or move any other file inside the main folder. You can rename and move only the main folder.
Visit harmonicarium.org for the Tutorials. There is no comprehensive guide at this moment, it is currently being drafted. A video-guide and a step-by-step tutorial will be released as soon as possible. For any questions, do not hesitate to contact Walter Mantovani at armonici.it[at]gmail[dot]com.
Now (November 20, 2017) the harmonicarium.org site is under construction. You can temporarily visit the old project site: harmonync.harmonicarium.org
The document "A first look at THE HARMONYNC: A Dynamic Harmonics Calculator – Draft of Specifications and User Guide" is available here and has the following DOI: 10.978.88940077/01
The code is over-commented because I'm not a professional programmer and overnight coding does not help memory;) I apologize to the expert coders for this but I know that musicians will appreciate it!
Currently there are two main issues:
- The current UI sucks. Help is needed to create an intuitive, responsive and touch-events-compliant UI.
- A DHC should be modular (imagine a chain of DHCs... –_–). So it is necessary to reduce the global objects/functions and put some order. Move the functions into the respective methods of few main objects. In this way the DHC engine could become a library.
Having done these things, there are other two main milestones to reach:
- Implement MIDI-Out tuning (e.g. to play the Harmonic Series on an analog synthesizer).
- Implement polyrhythms generation (nothing but harmonics in the infrasound domain).
If you have any suggestions, you can write directly to the email in the license note or use the "Issues" section of the GitHub repository. And if you are a coder, ever help is welcome!
See also the contact page on the project site.
Harmonicarium – a Dynamic Harmonics Calculator Copyright (C) 2017 by Walter Mantovani
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.
armonici.it [at] gmail [dot] com.