- 1 Fundamental Mother
- 2 Fundamental Tones
- 3 Harmonic Tones
- 4 Controller Key-Map File
The first parameter is the “main root” and it’s called Fundamental Mother (abbreviated is FM). This is the main tone on which all other tones are calculated.
The default value is C3 (or the first C below the standard middle C) that is the MIDI note 48 (MIDI cent) or frequency 130.813 Hertz.
In the note name (e.g. C3), the number (3) indicates the octave in the scientific pitch notation.
You can set the FM in two ways:
- enter the frequency (in Hertz) in the left input text-box;
- press enter or click “Set”.
The decimals used in the frequency are normal decimals. For the avoidance of doubt:
– writing 134.646 means 134.646 Hz
Note that you can write decimal values. The decimal mark can be the point [ . ] or comma [ , ]
MIDI note 0-127:
- enter the MIDI note number (from zero to 127) in the right input text-box;
- press enter or click “Set”.
The decimals used with MIDI note number are intended as cents above of that note. For example:
– writing 48.5 means: MIDI note 48 + 50 cents
– writing 48.61 means: MIDI note 48 + 61 cents
How do I know which number corresponds to the key I’m pressing?
To see what is the MIDI note number of a key (in the standard equal temperament), you can just press it on your keyboard/controller and its number is displayed in the “MIDI Input Monitor” table under “MIDI I/O”.
From the Fundamental Mother you obtain the Fundamental Tones (abbreviated are FTs).
FT are like a palette of tones. They are the red area on the keyboard and when you press a FT key, all the Harmonic Tones on the blue keys are instantly recalculated.
The Fundamental Tones have two main settings:
- The Tuning System, on which the Fundamental-Tone SCALE is built.
- The Controller Keymap.
Once you have choosen the tuning system for FTs, the DHC computes 64 FTs above and 64 FTs under the Fundamental Mother. You can choose the FTs you prefer from this full 129-notes FTs Scale and map them into the Controller Keymap in order to obtain a palette of fundamentals. This palette is represented by the red keys on the Virtual MIDI Controller. We can call it Fundamental Palette (FP)
Let’s see how to tune the FTs.
FT Tuning System
The Tuning System is the method to compute the frequencies of each step of the Fundamental Palette.
Currently just Equal Temperaments and Harmonic Series are available.
Since the “meaning” of the steps is different from one Tuning System to another, each Tuning System should have an ad-hoc Controller Keymap.
The default setting
The default Tuning System is the “equal temperament“, more specifically the 12-TET, better called 12-EDO, that means 12 equal divisions of the octave. We prefer the EDO suffix because it is more definite and intuitive.
The label here says:
n Equal-Divisions of the ratio x
For example, the classic equal temperament 12-EDO is obtained dividing the ratio/interval 2 by 12 logarithmically equal divisions. In other words, we divide the octave in 12 semitones. Here, n-EDx becomes 12-ED2 .
In the mathematics of music we say: twelfth root of two.
As I said, this is the default tuning system for the FTs palette.
But it is possible to logarithmically divide another interval rather than the octave.
So, we might say: nth root of x.
This feature is very useful for microtonal or xenharmonic musicians.
For example we can recreate the equal tempered version of the Bohlen–Pierce scale by dividing a higher fifth (aka tritave) in 13 equal parts.
- Enter 3 (the ratio of the fifth interval) in the “RATIO INTERVAL” grey text box and press enter.
- Enter 13 (the divisions) in the “EQUAL DIVISIONS” grey text box and press enter.
Harm./Sub. Natural & Harm./Sub. Same Octave
The other Tuning System is based on the Harmonic/Subharmonic series. In this way you can use the tones of an Harmonic (or Subharmonic) Series as a FTs.
The Harmonic/Subharmonic tunings are more complex and they will be explained in an ad-hoc tutorial. They obviously require a specific Controller Keymap file (keymaps for Same Octave transpose).
Controller Key-Map (FTs part)
As we have seen before, once you have set the FTs tuning system, you have a 129-tone FTs Scale with witch you can build the Fundamental Palette (the red keys). In order to do so, you have to choice some steps/tones of this FTs Scale and map them by assigning each one to a controller key.
A set of predefined keymaps are available to facilitate the user. The default keymap is structured this way:
FTs: 1 octave (from -7 semitones to +7 semitones relatively to the FM)
HTs: 16 harmonics mapped in “bonka” style.
“Bonka”, “sanga” and “giora” are different ways to map the HTs into the piano keyboard.
You can view the default preloaded keymap clicking “Show Keymap” button.
In this table you can see what each key is associated with. In this case the FTs are mapped from the MIDI key number 41 to 55. As I said, a different FTs Tuning System can provide tones with different “meaning” and therefore requires an ad-hoc Controller Keymap.
The structure of the Controller Keymap file will be discussed in a section below.
When you press an FT key, the Harmonic Tones are instantly recalculated in order to follow the Harmonic (or Subharmonic) Series of the pressed FT.
Harmonic Tones can be abbreviated HTs.
Also the HTs have two main settings.
- The Transpose tool, to change the pitch.
- And again, the Controller Keymap.
HTs Transpose tool
In this box, we can transpose the HTs‘ Harmonic/Subharmonic Series (the blue keys) by octaves or entering a ratio in decimal format.
- Clicking on “plus” you multiply by 2 (that is like go UP by an octave).
- Clicking on “minus” you divide by 2 (that is like go DOWN by an octave).
- Entering directly the “ratio“, gives you the option to not be bound to the octave. The ratio value is in decimal format. For example 3/2 = 1.5, 1/2 = 0.5 and 1/3 = 0.3333.
Controller Key-Map (HTs part)
Such as the FTs, also the HTs are set/mapped into the Controller Keymap file. In the default keymap shown before, the HTs are mapped from the MIDI key number 56 to 74.
The structure of this file is explained in the next section.
Controller Key-Map File
You can open and edit a key-map file with Notepad, TextEdit or any other text editor that saves in plain text format.
This file defines what keys you want to use on the controller. You can choose a set of keys from your controller and assign a function to each key. In this way you can build a Fundamental-Tone Scale and an Harmonic-Tone Scale.
We have three values each line, separated by a single space or tab. Each line is a key on the MIDI controller, with his functions: Fundamental or Harmonic. Value 128 stands for: No function.
- The first value means a key on the Controller (MIDI note number).
- The second value is the FT Number (“±32” is FT; “128” is NO FT).
- The third value is the HT number (“±64” is HT; “128” is NO HT).
41 -7 128 42 -6 128 43 -5 128 44 -4 128 45 -3 128 46 -2 128 47 -1 128 48 0 128 49 1 128 50 2 128 51 3 128 52 4 128 53 5 128 54 6 128 55 7 128 56 128 0 57 128 1 58 128 2 59 128 3 60 128 4 61 128 5 62 128 6 63 128 7 64 128 8 65 128 8 66 128 9 67 128 10 68 128 11 69 128 12 70 128 13 71 128 14 72 128 16 73 128 15
For example, here we have the MIDI note 55 (1st value = 55) that has a Fundamental function. In particular, the key 55 plays the FT number 7 (2nd value = 7). And no Harmonic function (3rd value = 128).
And we have the MIDI note 58 (1st value = 58) that has a Harmonic function. In particular, the key 58 has no Fundamental function (2nd value = 128) and it plays the HT number 2 (3rd value = 2), that is the second harmonic.
This map can be represented in this way:
Blue keys are FTs and green keys are HTs.
The first value is the MIDI note number of the key you chose to be used on the controller device.
The Harmonync assumes that you have an input MIDI controller. According to the MIDI specifications, a controller can send 128 different notes maximum per channel. They are numbered from 0 to 127. Your controller will use only a portion of these 128 keys. So, you have to choose a comfortable set of keys suitable to your needs.
To see the MIDI note number of a key, you can just press it and you have the number in the MIDI IN NOTE grey area (that’s why it’s so big).
With the second value you can assign a Fundamental Tone function to the controller key.
The Fundamental Tone functions are expressed in values between -32 and +32, including zero.
It is very important to note that the root, that is the Fundamental Mother, is always the Function number ZERO.
If you are using the equal temperament 12-EDO, that divide the octave in twelve so-called “semitones”, these ±32 steps correspond to the semitones. As I previously said, this is the default tuning system for the FTs.
With the default settings, where FM is set to C3 and the FT tuning system is set to 12-EDO, we have:
- C3 is the function number zero (the root).
- C♯3 is the function number 1 (1 semitone above the root).
- B3 is the function number 11 (11 semitones above the root).
- B2 is the function number –1 (1 semitone below the root).
- G3 is the function number 7 (7 semitones above the root).
- G2 is the function number –5 (5 semitones below the root).
- C4 is function number 12 (12 semitones above the root).
- C2 is the function number –12 (12 semitones below the root).
If you don’t want to assign a Fundamental Tone function to that key, you have to set this second value to 128.
Key by key, you can build your Fundamental-Tone scale.
Finally, with the third value you can assign a Harmonic Tone function to the key.
The Harmonic Tone functions are expressed in values between –64 and +64 including zero. Zero is actually used for a special feature, usable only with the Built-in DSP.
- Every POSITIVE number (1 to 64), is a Harmonic (also called Overtone).
- Every NEGATIVE number (–1 to –64) is a Sub-Harmonic (also called Undertone).
This Harmonics and Sub-Harmonics, are the whole multiple or fraction, of the last pressed Fundamental Tone.
- Number 1 is the first harmonic and corresponds exactly to the FT because it is multiplied by 1.
- Number 2 is the second harmonic and stands for the frequency of the FT multiplied by 2.
- Number 7 is the seventh overtone.
And so on…
- Number –1 is the first sub-harmonic and corresponds exactly to the FT because it is divided by 1.
- Number –3 is the third sub-harmonic, that is the frequency of the FT divided by 3.
- Number –6 is the sixth undertone.
And so on…
The numbering system of Harmonic Tones is more intuitive. It corresponds to the canonical harmonic or overtone naming.
If you don’t want to assign a Harmonic Tones function to that key, you have to set this third value to 128.
Strange default key-map?!
Maybe, you’ve noticed that the Harmonic Tones have a strange order on the default key-map: the keys 64 and 65 have the same function (the 8th harmonic) and the keys 72 and 73 are inverted (key 72 is the 16th harmonic and key 73 is the 15th harmonic).
Why this strange map?
Because using a piano keyboard, I’d rather have the even harmonics on the white keys and the odd harmonics on the black keys. But to do this, we need a logarithmic keyboard like this:
The classic piano keyboard, with a pattern that repeats every twelve keys, is not the best solution for playing harmonics. So, the default key-map is my personal solution to divide even and odd harmonics respectively in white and black keys using a piano keyboard.
Also the Fundamental Tone mapping might seem strange: starting from zero, there are just seven keys above and seven below zero. With the default classic equal temperament it means a maximum range of an ascending fifth and a descending fifth from the root (or zero). Why?
This because, when I started this project I needed just a fifth upon and a fifth under the root 😉 .
There is an alternative key-map in the keymaps/ directory. The file is “ctrl2_fn.hcmap“. Other maps will be uploaded soon. In the meantime… if you don’t like the default key-map, you can edit it or create your own.
2nd and 3rd value
You must be wondering: why two values to assign a key function?
Because, in theory, you might want to assign a fundamental tone and a harmonic tone to the same key. So, pressing that key, the Harmonync would produce a fundamental and a harmonic tone at the same time.
I’ve never used this possibility and I never checked its proper implementation. Probably, at this stage of development it can result in undesirable effects. I recommend: do not use this possibility yet.
So, to avoid mistakes:
- The FT keys must have the second value (the fundamental function) set to 128.
- The HT keys must have the third value (the harmonic function) set to 128.
- The CONTROLLER KEY-MAP has one line for each used key on the controller.
- Each line has three values: the controller note number, the fundamental function number and the harmonic function number.
- The Fundamental Tone number ZERO is always the Fundamental Mother.
- Value 128 stands for: No Function.
- You can edit or create your own key-map file with a notepad, in plain text format.
Loading a Controller Key-Map
Click on the red button “LOAD CONTROLLER MAP” to open a file-browser window and load a new controller key-map.
The current CONTROLLER KEY-MAP file is written in red. The default one is: ctrl1_fn.hcmap . It is in the “keymaps” directory. There you have an alternative key-map file: /keymaps/ctrl2_fn.hcmap .
Create your own Controller Key-Map
Let’s see how you can create your own key-map. In particular, we are going to re-create the other map you can find in /keymap directory: the file ctrl2_fn.hcmap
Create a keymap is very simple.
First step. Imagine the layout you want to create.
For example, I want two octaves of FT and the first 16 HT. Possibly maintaining the even harmonics on the white keys and the odd harmonics on the black keys. All this should be mapped to a range of 49 keys (or 4 octaves).
An example of this layout is the following:
In the keymap/tools/ directory there is an Excel file, useful to conceive and create a controller keymap. The file is harmonync-keymapping-tool.xlsx . You can find the previous layout in the “layout-maps” worksheet.
Second step. Decide the MIDI key range you want to map your layout to.
For example, in order to use the default key range of my keyboard, I choose the MIDI notes from number 36 to number 81.
You can see the resulting layout:
Note that in this map:
- The FTs are from –12 to +12. They are mapped from the MIDI note number 36 to number 60.
- The HTs are from 1 to 16. They are mapped from the MIDI note number 64 to number 81.
- The MIDI NOTE NUMBER 61, 62 and 63 are unused.
- The 8th and the 12th harmonic are mapped twice. This is a personal choice in order to maintain the odd harmonics on the black keys.
Third step. Compile the map.
In order to avoid mistakes, you can use the mapping tool in the Excel file.
Switch to the “MAPPER” worksheet. This sheet is protected to avoiding mistakes. You can edit only the second and the third column. However, the sheet is not password protected.
- The first column (A) is the MIDI note number, from 0 to 127. It is locked.
- The second (B) is the Fundamental Tone. Here you can enter a number between –32 and +32. 128 is no-function.
- The third column (C) is the Harmonic Tone. Here you can enter a number between –64 and +64. 128 is no-function.
- In the fourth column (G) you have a useful debugging notices area. It is locked.
* Note that there are some hidden columns.
Fourth step. Copy just the first three columns of the used rows, in this case from 36 to 81, and paste them in a plain text editor.
Remove the unused lines 61, 62 and 63. As you can see, now it jumps from 60 to 64:
To be sure the file is in plain text, save in TXT format and then rename the extension from .txt to .hcmap .
You can load the new file as we see before.
|This content is copyrighted: © 2017 Walter Mantovani – Some right reserved.|
|This work is distributed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license.|
This content has been updated on April 3, 2019 at 7:37 pm