/**
* This file is part of HARMONICARIUM, a web app which allows users to play
* the Harmonic Series dynamically by changing its fundamental tone in real-time.
* It is available in its latest version from:
* https://github.com/IndustrieCreative/Harmonicarium
*
* @license
* Copyright (C) 2017-2018 by Walter Mantovani (http://armonici.it).
* Written 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/>.
*/
/* globals HUM */
"use strict";
/**
* The CtrlKeymapPreset class
* A container for the Controller Keymaps Preset
*/
HUM.CtrlKeymapPreset = class {
/**
* @param {HUM.DHC} dhc - The DHC instance to which it belongs
*/
constructor(dhc) {
/**
* The DHC instance
*
* @member {HUM.DHC}
*/
this.dhc = dhc;
/**
* Slots for storing the current selected Controller keymap for each Tuning System
*
* @member {Object}
*
* @property {number} eEDx - Current selected Controller keymap for the n-EDx FT Tuning System
* @property {number} h_s - Current selected Controller keymap for the Harmonic/Subharmonic FT Tuning System
*/
this.current = {
nEDx: 0,
h_s: 0,
// tsnap: 0
};
/**
* Controller keymaps presets for the n-EDx FT Tuning System
*
* @member {Object.<number, CtrlKeymap>}
*/
this.nEDx = {
/**
* A Controller keymap preset
*
* @typedef {Object} CtrlKeymapPreset
*
* @global
*
* @property {string} name - Original filename of the Controller keymap (without extension)
* @property {string} notes - User-friendly description of the Controller keymap
* @property {CtrlKeymap} map - The Controller keymap
*/
0: {
name: "ctrl_nEDx(7-7)_bonkaA(16h)_p",
notes: "FT: 1-octave / HT: 16 bonka A Harmonics / Piper",
/**
* A Controller keymap; each key of the Object is a MIDI Note number
*
* @typedef {Object.<midinnum, CtrlKeymapKey>} CtrlKeymap
*/
map: {
/**
* A single key of the Controller keymap
*
* @typedef {Object} CtrlKeymapKey
*
* @property {xtnum} ft - Fundamental Tone (FT) relative number; +/-64, FT0 is the FM, 129 is no FT
* @property {xtnum} ht - Harmonic/Subharmonic Tone (HT) relative number; +/-128, 0 is Piper feature, 129 is no HT
*/
41: { ft: -7, ht: 129 },
42: { ft: -6, ht: 129 },
43: { ft: -5, ht: 129 },
44: { ft: -4, ht: 129 },
45: { ft: -3, ht: 129 },
46: { ft: -2, ht: 129 },
47: { ft: -1, ht: 129 },
48: { ft: 0, ht: 129 },
49: { ft: 1, ht: 129 },
50: { ft: 2, ht: 129 },
51: { ft: 3, ht: 129 },
52: { ft: 4, ht: 129 },
53: { ft: 5, ht: 129 },
54: { ft: 6, ht: 129 },
55: { ft: 7, ht: 129 },
56: { ft: 129, ht: 0 },
57: { ft: 129, ht: 1 },
58: { ft: 129, ht: 2 },
59: { ft: 129, ht: 3 },
60: { ft: 129, ht: 4 },
61: { ft: 129, ht: 5 },
62: { ft: 129, ht: 6 },
63: { ft: 129, ht: 7 },
64: { ft: 129, ht: 8 },
65: { ft: 129, ht: 8 },
66: { ft: 129, ht: 9 },
67: { ft: 129, ht: 10 },
68: { ft: 129, ht: 11 },
69: { ft: 129, ht: 12 },
70: { ft: 129, ht: 13 },
71: { ft: 129, ht: 14 },
72: { ft: 129, ht: 16 },
73: { ft: 129, ht: 15 },
74: { ft: 129, ht: 16 }
}
},
1: {
name: "ctrl_nEDx(7-7)_bonkaA(16s)i_p",
notes: "FT: 1-octave / HT: 16 bonka A inverted Subharmonics / Piper",
map: {
41: { ft: -7, ht: 129 },
42: { ft: -6, ht: 129 },
43: { ft: -5, ht: 129 },
44: { ft: -4, ht: 129 },
45: { ft: -3, ht: 129 },
46: { ft: -2, ht: 129 },
47: { ft: -1, ht: 129 },
48: { ft: 0, ht: 129 },
49: { ft: 1, ht: 129 },
50: { ft: 2, ht: 129 },
51: { ft: 3, ht: 129 },
52: { ft: 4, ht: 129 },
53: { ft: 5, ht: 129 },
54: { ft: 6, ht: 129 },
55: { ft: 7, ht: 129 },
56: { ft: 129, ht: 0 },
57: { ft: 129, ht: -1 },
58: { ft: 129, ht: -2 },
59: { ft: 129, ht: -3 },
60: { ft: 129, ht: -4 },
61: { ft: 129, ht: -5 },
62: { ft: 129, ht: -6 },
63: { ft: 129, ht: -7 },
64: { ft: 129, ht: -8 },
65: { ft: 129, ht: -8 },
66: { ft: 129, ht: -9 },
67: { ft: 129, ht: -10 },
68: { ft: 129, ht: -11 },
69: { ft: 129, ht: -12 },
70: { ft: 129, ht: -13 },
71: { ft: 129, ht: -14 },
72: { ft: 129, ht: -16 },
73: { ft: 129, ht: -15 },
74: { ft: 129, ht: -16 }
}
},
2: {
name: "ctrl_nEDx(12-12)_bonkaA(16h)_2p",
notes: "FT: 2-octave / HT: 16 bonka A Harmonics / 2 Piper",
map: {
36: {ft: -12, ht: 129},
37: {ft: -11, ht: 129},
38: {ft: -10, ht: 129},
39: {ft: -9, ht: 129},
40: {ft: -8, ht: 129},
41: {ft: -7, ht: 129},
42: {ft: -6, ht: 129},
43: {ft: -5, ht: 129},
44: {ft: -4, ht: 129},
45: {ft: -3, ht: 129},
46: {ft: -2, ht: 129},
47: {ft: -1, ht: 129},
48: {ft: 0, ht: 129},
49: {ft: 1, ht: 129},
50: {ft: 2, ht: 129},
51: {ft: 3, ht: 129},
52: {ft: 4, ht: 129},
53: {ft: 5, ht: 129},
54: {ft: 6, ht: 129},
55: {ft: 7, ht: 129},
56: {ft: 8, ht: 129},
57: {ft: 9, ht: 129},
58: {ft: 10, ht: 129},
59: {ft: 11, ht: 129},
60: {ft: 12, ht: 129},
64: {ft: 129, ht: 0},
65: {ft: 129, ht: 0},
69: {ft: 129, ht: 1},
70: {ft: 129, ht: 2},
71: {ft: 129, ht: 3},
72: {ft: 129, ht: 4},
73: {ft: 129, ht: 5},
74: {ft: 129, ht: 6},
75: {ft: 129, ht: 7},
76: {ft: 129, ht: 8},
77: {ft: 129, ht: 8},
78: {ft: 129, ht: 9},
79: {ft: 129, ht: 10},
80: {ft: 129, ht: 11},
81: {ft: 129, ht: 12},
82: {ft: 129, ht: 13},
83: {ft: 129, ht: 14},
84: {ft: 129, ht: 16},
85: {ft: 129, ht: 15},
86: {ft: 129, ht: 16}
}
},
3: {
name: "ctrl_nEDx(7-7)_bonkaB(16h)_p",
notes: "FT: 1-octave / HT: 16 bonka B Harmonics / Piper",
map: {
41: { ft: -7, ht: 129 },
42: { ft: -6, ht: 129 },
43: { ft: -5, ht: 129 },
44: { ft: -4, ht: 129 },
45: { ft: -3, ht: 129 },
46: { ft: -2, ht: 129 },
47: { ft: -1, ht: 129 },
48: { ft: 0, ht: 129 },
49: { ft: 1, ht: 129 },
50: { ft: 2, ht: 129 },
51: { ft: 3, ht: 129 },
52: { ft: 4, ht: 129 },
53: { ft: 5, ht: 129 },
54: { ft: 6, ht: 129 },
55: { ft: 7, ht: 129 },
56: { ft: 129, ht: 0 },
57: { ft: 129, ht: 1 },
58: { ft: 129, ht: 2 },
59: { ft: 129, ht: 3 },
60: { ft: 129, ht: 4 },
61: { ft: 129, ht: 5 },
62: { ft: 129, ht: 6 },
63: { ft: 129, ht: 7 },
64: { ft: 129, ht: 8 },
65: { ft: 129, ht: 8 },
66: { ft: 129, ht: 9 },
67: { ft: 129, ht: 10 },
68: { ft: 129, ht: 11 },
69: { ft: 129, ht: 12 },
70: { ft: 129, ht: 13 },
71: { ft: 129, ht: 14 },
72: { ft: 129, ht: 14 },
73: { ft: 129, ht: 15 },
74: { ft: 129, ht: 16 }
}
},
4: {
name: "ctrl_nEDx(7-7)_bonkaB(32h)_p",
notes: "FT: 1-octave / HT: 32 bonka B Harmonics / Piper",
map: {
41: {ft: -7, ht: 129},
42: {ft: -6, ht: 129},
43: {ft: -5, ht: 129},
44: {ft: -4, ht: 129},
45: {ft: -3, ht: 129},
46: {ft: -2, ht: 129},
47: {ft: -1, ht: 129},
48: {ft: 0, ht: 129},
49: {ft: 1, ht: 129},
50: {ft: 2, ht: 129},
51: {ft: 3, ht: 129},
52: {ft: 4, ht: 129},
53: {ft: 5, ht: 129},
54: {ft: 6, ht: 129},
55: {ft: 7, ht: 129},
56: {ft: 129, ht: 0},
57: {ft: 129, ht: 1},
58: {ft: 129, ht: 2},
59: {ft: 129, ht: 3},
60: {ft: 129, ht: 4},
61: {ft: 129, ht: 5},
62: {ft: 129, ht: 6},
63: {ft: 129, ht: 7},
64: {ft: 129, ht: 8},
65: {ft: 129, ht: 8},
66: {ft: 129, ht: 9},
67: {ft: 129, ht: 10},
68: {ft: 129, ht: 11},
69: {ft: 129, ht: 12},
70: {ft: 129, ht: 13},
71: {ft: 129, ht: 14},
72: {ft: 129, ht: 14},
73: {ft: 129, ht: 15},
74: {ft: 129, ht: 16},
75: {ft: 129, ht: 17},
76: {ft: 129, ht: 18},
77: {ft: 129, ht: 18},
78: {ft: 129, ht: 19},
79: {ft: 129, ht: 20},
80: {ft: 129, ht: 21},
81: {ft: 129, ht: 22},
82: {ft: 129, ht: 23},
83: {ft: 129, ht: 24},
84: {ft: 129, ht: 24},
85: {ft: 129, ht: 25},
86: {ft: 129, ht: 26},
87: {ft: 129, ht: 27},
88: {ft: 129, ht: 28},
89: {ft: 129, ht: 28},
90: {ft: 129, ht: 29},
91: {ft: 129, ht: 30},
92: {ft: 129, ht: 31},
93: {ft: 129, ht: 32}
}
},
5: {
name: "ctrl_nEDx(12-12)_sanga(16h)_p",
notes: "FT: 2-octave / HT: 16 sanga Harmonics / Piper",
map: {
36: {ft: -12, ht: 129},
37: {ft: -11, ht: 129},
38: {ft: -10, ht: 129},
39: {ft: -9, ht: 129},
40: {ft: -8, ht: 129},
41: {ft: -7, ht: 129},
42: {ft: -6, ht: 129},
43: {ft: -5, ht: 129},
44: {ft: -4, ht: 129},
45: {ft: -3, ht: 129},
46: {ft: -2, ht: 129},
47: {ft: -1, ht: 129},
48: {ft: 0, ht: 129},
49: {ft: 1, ht: 129},
50: {ft: 2, ht: 129},
51: {ft: 3, ht: 129},
52: {ft: 4, ht: 129},
53: {ft: 5, ht: 129},
54: {ft: 6, ht: 129},
55: {ft: 7, ht: 129},
56: {ft: 8, ht: 129},
57: {ft: 9, ht: 129},
58: {ft: 10, ht: 129},
59: {ft: 11, ht: 129},
60: {ft: 12, ht: 129},
62: {ft: 129, ht: 0},
64: {ft: 129, ht: 1},
65: {ft: 129, ht: 2},
66: {ft: 129, ht: 3},
67: {ft: 129, ht: 4},
68: {ft: 129, ht: 5},
69: {ft: 129, ht: 6},
70: {ft: 129, ht: 7},
71: {ft: 129, ht: 8},
72: {ft: 129, ht: 8},
73: {ft: 129, ht: 9},
74: {ft: 129, ht: 10},
75: {ft: 129, ht: 11},
76: {ft: 129, ht: 12},
77: {ft: 129, ht: 12},
78: {ft: 129, ht: 13},
79: {ft: 129, ht: 14},
80: {ft: 129, ht: 15},
81: {ft: 129, ht: 16}
}
},
6: {
name: "ctrl_nEDx(12-12)_sanga(16s)i_p",
notes: "FT: 2-octave / HT: 16 sanga inverted Subharmonics / Piper",
map: {
36: {ft: -12, ht: 129},
37: {ft: -11, ht: 129},
38: {ft: -10, ht: 129},
39: {ft: -9, ht: 129},
40: {ft: -8, ht: 129},
41: {ft: -7, ht: 129},
42: {ft: -6, ht: 129},
43: {ft: -5, ht: 129},
44: {ft: -4, ht: 129},
45: {ft: -3, ht: 129},
46: {ft: -2, ht: 129},
47: {ft: -1, ht: 129},
48: {ft: 0, ht: 129},
49: {ft: 1, ht: 129},
50: {ft: 2, ht: 129},
51: {ft: 3, ht: 129},
52: {ft: 4, ht: 129},
53: {ft: 5, ht: 129},
54: {ft: 6, ht: 129},
55: {ft: 7, ht: 129},
56: {ft: 8, ht: 129},
57: {ft: 9, ht: 129},
58: {ft: 10, ht: 129},
59: {ft: 11, ht: 129},
60: {ft: 12, ht: 129},
62: {ft: 129, ht: 0},
64: {ft: 129, ht: -1},
65: {ft: 129, ht: -2},
66: {ft: 129, ht: -3},
67: {ft: 129, ht: -4},
68: {ft: 129, ht: -5},
69: {ft: 129, ht: -6},
70: {ft: 129, ht: -7},
71: {ft: 129, ht: -8},
72: {ft: 129, ht: -8},
73: {ft: 129, ht: -9},
74: {ft: 129, ht: -10},
75: {ft: 129, ht: -11},
76: {ft: 129, ht: -12},
77: {ft: 129, ht: -12},
78: {ft: 129, ht: -13},
79: {ft: 129, ht: -14},
80: {ft: 129, ht: -15},
81: {ft: 129, ht: -16}
}
},
7: {
name: "ctrl_nEDx(7-7)_giora(4-16h)_p",
notes: "FT: 1-octave / HT: 4-16 giora Harmonics / Piper",
map: {
41: {ft: -7, ht: 129},
42: {ft: -6, ht: 129},
43: {ft: -5, ht: 129},
44: {ft: -4, ht: 129},
45: {ft: -3, ht: 129},
46: {ft: -2, ht: 129},
47: {ft: -1, ht: 129},
48: {ft: 0, ht: 129},
49: {ft: 1, ht: 129},
50: {ft: 2, ht: 129},
51: {ft: 3, ht: 129},
52: {ft: 4, ht: 129},
53: {ft: 5, ht: 129},
54: {ft: 6, ht: 129},
55: {ft: 7, ht: 129},
56: {ft: 129, ht: 0},
57: {ft: 129, ht: 4},
58: {ft: 129, ht: 5},
59: {ft: 129, ht: 6},
60: {ft: 129, ht: 8},
61: {ft: 129, ht: 9},
62: {ft: 129, ht: 7},
63: {ft: 129, ht: 10},
64: {ft: 129, ht: 12},
65: {ft: 129, ht: 11},
66: {ft: 129, ht: 13},
67: {ft: 129, ht: 13},
68: {ft: 129, ht: 14},
69: {ft: 129, ht: 15},
70: {ft: 129, ht: 16},
71: {ft: 129, ht: 13},
72: {ft: 129, ht: 14},
73: {ft: 129, ht: 15},
74: {ft: 129, ht: 16}
}
},
8: {
name: "ctrl_nEDx(12-12)_bonkaA(16-16hs)_2p",
notes: "FT: 2-octave / HT: -16+16 bonka A Harm+Subharmonics / 2 Piper",
map: {
36: {ft: -12, ht: 129},
37: {ft: -11, ht: 129},
38: {ft: -10, ht: 129},
39: {ft: -9, ht: 129},
40: {ft: -8, ht: 129},
41: {ft: -7, ht: 129},
42: {ft: -6, ht: 129},
43: {ft: -5, ht: 129},
44: {ft: -4, ht: 129},
45: {ft: -3, ht: 129},
46: {ft: -2, ht: 129},
47: {ft: -1, ht: 129},
48: {ft: 0, ht: 129},
49: {ft: 1, ht: 129},
50: {ft: 2, ht: 129},
51: {ft: 3, ht: 129},
52: {ft: 4, ht: 129},
53: {ft: 5, ht: 129},
54: {ft: 6, ht: 129},
55: {ft: 7, ht: 129},
56: {ft: 8, ht: 129},
57: {ft: 9, ht: 129},
58: {ft: 10, ht: 129},
59: {ft: 11, ht: 129},
60: {ft: 12, ht: 129},
61: {ft: 129, ht: 0},
62: {ft: 129, ht: -16},
63: {ft: 129, ht: -15},
64: {ft: 129, ht: -16},
65: {ft: 129, ht: -14},
66: {ft: 129, ht: -13},
67: {ft: 129, ht: -12},
68: {ft: 129, ht: -11},
69: {ft: 129, ht: -10},
70: {ft: 129, ht: -9},
71: {ft: 129, ht: -8},
72: {ft: 129, ht: -8},
73: {ft: 129, ht: -7},
74: {ft: 129, ht: -6},
75: {ft: 129, ht: -5},
76: {ft: 129, ht: -4},
77: {ft: 129, ht: -3},
78: {ft: 129, ht: -2},
79: {ft: 129, ht: -1},
80: {ft: 129, ht: 0},
81: {ft: 129, ht: 1},
82: {ft: 129, ht: 2},
83: {ft: 129, ht: 3},
84: {ft: 129, ht: 4},
85: {ft: 129, ht: 5},
86: {ft: 129, ht: 6},
87: {ft: 129, ht: 7},
88: {ft: 129, ht: 8},
89: {ft: 129, ht: 8},
90: {ft: 129, ht: 9},
91: {ft: 129, ht: 10},
92: {ft: 129, ht: 11},
93: {ft: 129, ht: 12},
94: {ft: 129, ht: 13},
95: {ft: 129, ht: 14},
96: {ft: 129, ht: 16},
97: {ft: 129, ht: 15},
98: {ft: 129, ht: 16}
}
},
9: {
name: "ctrl_nEDx(12-16)_sanga(16-16hs)_3p",
notes: "FT: 2-octave+ / HT: -16+16 sanga Harm+Subharmonics / 3 Piper",
map: {
36: {ft: -12, ht: 129},
37: {ft: -11, ht: 129},
38: {ft: -10, ht: 129},
39: {ft: -9, ht: 129},
40: {ft: -8, ht: 129},
41: {ft: -7, ht: 129},
42: {ft: -6, ht: 129},
43: {ft: -5, ht: 129},
44: {ft: -4, ht: 129},
45: {ft: -3, ht: 129},
46: {ft: -2, ht: 129},
47: {ft: -1, ht: 129},
48: {ft: 0, ht: 129},
49: {ft: 1, ht: 129},
50: {ft: 2, ht: 129},
51: {ft: 3, ht: 129},
52: {ft: 4, ht: 129},
53: {ft: 5, ht: 129},
54: {ft: 6, ht: 129},
55: {ft: 7, ht: 129},
56: {ft: 8, ht: 129},
57: {ft: 9, ht: 129},
58: {ft: 10, ht: 129},
59: {ft: 11, ht: 129},
60: {ft: 12, ht: 129},
61: {ft: 13, ht: 129},
62: {ft: 14, ht: 129},
63: {ft: 15, ht: 129},
64: {ft: 16, ht: 129},
67: {ft: 129, ht: -16},
68: {ft: 129, ht: -15},
69: {ft: 129, ht: -14},
70: {ft: 129, ht: -13},
71: {ft: 129, ht: -12},
72: {ft: 129, ht: -12},
73: {ft: 129, ht: -11},
74: {ft: 129, ht: -10},
75: {ft: 129, ht: -9},
76: {ft: 129, ht: -8},
77: {ft: 129, ht: -8},
78: {ft: 129, ht: -7},
79: {ft: 129, ht: -6},
80: {ft: 129, ht: -5},
81: {ft: 129, ht: -4},
82: {ft: 129, ht: -3},
83: {ft: 129, ht: -2},
84: {ft: 129, ht: -1},
85: {ft: 129, ht: 0},
86: {ft: 129, ht: 0},
87: {ft: 129, ht: 0},
88: {ft: 129, ht: 1},
89: {ft: 129, ht: 2},
90: {ft: 129, ht: 3},
91: {ft: 129, ht: 4},
92: {ft: 129, ht: 5},
93: {ft: 129, ht: 6},
94: {ft: 129, ht: 7},
95: {ft: 129, ht: 8},
96: {ft: 129, ht: 8},
97: {ft: 129, ht: 9},
98: {ft: 129, ht: 10},
99: {ft: 129, ht: 11},
100: {ft: 129, ht: 12},
101: {ft: 129, ht: 12},
102: {ft: 129, ht: 13},
103: {ft: 129, ht: 14},
104: {ft: 129, ht: 15},
105: {ft: 129, ht: 16}
}
},
10: {
name: "ctrl_nEDx_(-31+31)_(-32+32h)_p_tsnap",
notes: "FT: 5-octave / HT: -32+32 Harmonics / Piper / [TSNAP]",
map: {
0: {ft: -31, ht: 129},
1: {ft: -30, ht: 129},
2: {ft: -29, ht: 129},
3: {ft: -28, ht: 129},
4: {ft: -27, ht: 129},
5: {ft: -26, ht: 129},
6: {ft: -25, ht: 129},
7: {ft: -24, ht: 129},
8: {ft: -23, ht: 129},
9: {ft: -22, ht: 129},
10: {ft: -21, ht: 129},
11: {ft: -20, ht: 129},
12: {ft: -19, ht: 129},
13: {ft: -18, ht: 129},
14: {ft: -17, ht: 129},
15: {ft: -16, ht: 129},
16: {ft: -15, ht: 129},
17: {ft: -14, ht: 129},
18: {ft: -13, ht: 129},
19: {ft: -12, ht: 129},
20: {ft: -11, ht: 129},
21: {ft: -10, ht: 129},
22: {ft: -9, ht: 129},
23: {ft: -8, ht: 129},
24: {ft: -7, ht: 129},
25: {ft: -6, ht: 129},
26: {ft: -5, ht: 129},
27: {ft: -4, ht: 129},
28: {ft: -3, ht: 129},
29: {ft: -2, ht: 129},
30: {ft: -1, ht: 129},
31: {ft: 0, ht: 129},
32: {ft: 1, ht: 129},
33: {ft: 2, ht: 129},
34: {ft: 3, ht: 129},
35: {ft: 4, ht: 129},
36: {ft: 5, ht: 129},
37: {ft: 6, ht: 129},
38: {ft: 7, ht: 129},
39: {ft: 8, ht: 129},
40: {ft: 9, ht: 129},
41: {ft: 10, ht: 129},
42: {ft: 11, ht: 129},
43: {ft: 12, ht: 129},
44: {ft: 13, ht: 129},
45: {ft: 14, ht: 129},
46: {ft: 15, ht: 129},
47: {ft: 16, ht: 129},
48: {ft: 17, ht: 129},
49: {ft: 18, ht: 129},
50: {ft: 19, ht: 129},
51: {ft: 20, ht: 129},
52: {ft: 21, ht: 129},
53: {ft: 22, ht: 129},
54: {ft: 23, ht: 129},
55: {ft: 24, ht: 129},
56: {ft: 25, ht: 129},
57: {ft: 26, ht: 129},
58: {ft: 27, ht: 129},
59: {ft: 28, ht: 129},
60: {ft: 29, ht: 129},
61: {ft: 30, ht: 129},
62: {ft: 31, ht: 129},
63: {ft: 129, ht: -32},
64: {ft: 129, ht: -31},
65: {ft: 129, ht: -30},
66: {ft: 129, ht: -29},
67: {ft: 129, ht: -28},
68: {ft: 129, ht: -27},
69: {ft: 129, ht: -26},
70: {ft: 129, ht: -25},
71: {ft: 129, ht: -24},
72: {ft: 129, ht: -23},
73: {ft: 129, ht: -22},
74: {ft: 129, ht: -21},
75: {ft: 129, ht: -20},
76: {ft: 129, ht: -19},
77: {ft: 129, ht: -18},
78: {ft: 129, ht: -17},
79: {ft: 129, ht: -16},
80: {ft: 129, ht: -15},
81: {ft: 129, ht: -14},
82: {ft: 129, ht: -13},
83: {ft: 129, ht: -12},
84: {ft: 129, ht: -11},
85: {ft: 129, ht: -10},
86: {ft: 129, ht: -9},
87: {ft: 129, ht: -8},
88: {ft: 129, ht: -7},
89: {ft: 129, ht: -6},
90: {ft: 129, ht: -5},
91: {ft: 129, ht: -4},
92: {ft: 129, ht: -3},
93: {ft: 129, ht: -2},
94: {ft: 129, ht: -1},
95: {ft: 129, ht: 0},
96: {ft: 129, ht: 1},
97: {ft: 129, ht: 2},
98: {ft: 129, ht: 3},
99: {ft: 129, ht: 4},
100: {ft: 129, ht: 5},
101: {ft: 129, ht: 6},
102: {ft: 129, ht: 7},
103: {ft: 129, ht: 8},
104: {ft: 129, ht: 9},
105: {ft: 129, ht: 10},
106: {ft: 129, ht: 11},
107: {ft: 129, ht: 12},
108: {ft: 129, ht: 13},
109: {ft: 129, ht: 14},
110: {ft: 129, ht: 15},
111: {ft: 129, ht: 16},
112: {ft: 129, ht: 17},
113: {ft: 129, ht: 18},
114: {ft: 129, ht: 19},
115: {ft: 129, ht: 20},
116: {ft: 129, ht: 21},
117: {ft: 129, ht: 22},
118: {ft: 129, ht: 23},
119: {ft: 129, ht: 24},
120: {ft: 129, ht: 25},
121: {ft: 129, ht: 26},
122: {ft: 129, ht: 27},
123: {ft: 129, ht: 28},
124: {ft: 129, ht: 29},
125: {ft: 129, ht: 30},
126: {ft: 129, ht: 31},
127: {ft: 129, ht: 32}
}
}
};
/**
* Controller keymaps presets for the Harmonic/Subharmonic FT Tuning System
*
* @member {Object.<number, CtrlKeymap>}
*/
this.h_s = {
0: {
name: "ctrl_HSt(8-4-8hs)_bonkaA(16h)_p",
notes: "FT: -8<4>8 Harm+Subharmonics Same Octave / HT: 16 bonka A Harmonics / Piper",
map: {
45: {ft: -64, ht: 129},
46: {ft: -7, ht: 129},
47: {ft: -6, ht: 129},
48: {ft: -5, ht: 129},
49: {ft: -4, ht: 129},
50: {ft: 0, ht: 129},
51: {ft: 4, ht: 129},
52: {ft: 5, ht: 129},
53: {ft: 6, ht: 129},
54: {ft: 7, ht: 129},
55: {ft: 64, ht: 129},
56: {ft: 129, ht: 0},
57: {ft: 129, ht: 1},
58: {ft: 129, ht: 2},
59: {ft: 129, ht: 3},
60: {ft: 129, ht: 4},
61: {ft: 129, ht: 5},
62: {ft: 129, ht: 6},
63: {ft: 129, ht: 7},
64: {ft: 129, ht: 8},
65: {ft: 129, ht: 8},
66: {ft: 129, ht: 9},
67: {ft: 129, ht: 10},
68: {ft: 129, ht: 11},
69: {ft: 129, ht: 12},
70: {ft: 129, ht: 13},
71: {ft: 129, ht: 14},
72: {ft: 129, ht: 16},
73: {ft: 129, ht: 15},
74: {ft: 129, ht: 16}
}
},
1: {
name: "ctrl_HSt(16-8-16hs)_bonkaA(16h)_p",
notes: "FT: -16<8>16 Harm+Subharmonics Same Octave / HT: 16 bonka A Harmonics / Piper",
map: {
36: {ft: -64, ht: 129},
37: {ft: -15, ht: 129},
38: {ft: -14, ht: 129},
39: {ft: -13, ht: 129},
40: {ft: -12, ht: 129},
41: {ft: -11, ht: 129},
42: {ft: -10, ht: 129},
43: {ft: -9, ht: 129},
44: {ft: 8, ht: 129},
45: {ft: 9, ht: 129},
46: {ft: 10, ht: 129},
47: {ft: 11, ht: 129},
48: {ft: 12, ht: 129},
49: {ft: 13, ht: 129},
50: {ft: 14, ht: 129},
51: {ft: 15, ht: 129},
52: {ft: 64, ht: 129},
56: {ft: 129, ht: 0},
57: {ft: 129, ht: 1},
58: {ft: 129, ht: 2},
59: {ft: 129, ht: 3},
60: {ft: 129, ht: 4},
61: {ft: 129, ht: 5},
62: {ft: 129, ht: 6},
63: {ft: 129, ht: 7},
64: {ft: 129, ht: 8},
65: {ft: 129, ht: 8},
66: {ft: 129, ht: 9},
67: {ft: 129, ht: 10},
68: {ft: 129, ht: 11},
69: {ft: 129, ht: 12},
70: {ft: 129, ht: 13},
71: {ft: 129, ht: 14},
72: {ft: 129, ht: 16},
73: {ft: 129, ht: 15},
74: {ft: 129, ht: 16}
}
},
3: {
name: "ctrl_HSt(32-16-32hs)_bonkaA(16h)_p",
notes: "FT: -32<16>32 Harm+Subharmonics Same Octave / HT: 16 bonka A Harmonics / Piper",
map: {
21: {ft: -64, ht: 129},
22: {ft: -31, ht: 129},
23: {ft: -30, ht: 129},
24: {ft: -29, ht: 129},
25: {ft: -28, ht: 129},
26: {ft: -27, ht: 129},
27: {ft: -26, ht: 129},
28: {ft: -25, ht: 129},
29: {ft: -24, ht: 129},
30: {ft: -23, ht: 129},
31: {ft: -22, ht: 129},
32: {ft: -21, ht: 129},
33: {ft: -20, ht: 129},
34: {ft: -19, ht: 129},
35: {ft: -18, ht: 129},
36: {ft: -17, ht: 129},
37: {ft: -16, ht: 129},
38: {ft: 0, ht: 129},
39: {ft: 16, ht: 129},
40: {ft: 17, ht: 129},
41: {ft: 18, ht: 129},
42: {ft: 19, ht: 129},
43: {ft: 20, ht: 129},
44: {ft: 21, ht: 129},
45: {ft: 22, ht: 129},
46: {ft: 23, ht: 129},
47: {ft: 24, ht: 129},
48: {ft: 25, ht: 129},
49: {ft: 26, ht: 129},
50: {ft: 27, ht: 129},
51: {ft: 28, ht: 129},
52: {ft: 29, ht: 129},
53: {ft: 30, ht: 129},
54: {ft: 31, ht: 129},
55: {ft: 64, ht: 129},
56: {ft: 129, ht: 0},
57: {ft: 129, ht: 1},
58: {ft: 129, ht: 2},
59: {ft: 129, ht: 3},
60: {ft: 129, ht: 4},
61: {ft: 129, ht: 5},
62: {ft: 129, ht: 6},
63: {ft: 129, ht: 7},
64: {ft: 129, ht: 8},
65: {ft: 129, ht: 8},
66: {ft: 129, ht: 9},
67: {ft: 129, ht: 10},
68: {ft: 129, ht: 11},
69: {ft: 129, ht: 12},
70: {ft: 129, ht: 13},
71: {ft: 129, ht: 14},
72: {ft: 129, ht: 16},
73: {ft: 129, ht: 15},
74: {ft: 129, ht: 16}
}
},
4: {
name: "ctrl_HSt(16-8-16hs)m_bonkaA(16h)_p",
notes: "FT: -16<8>16 Harm+Subharmonics Same Octave mixed / HT: 16 bonka A Harmonics / Piper",
map: {
40: {ft: -64, ht: 129},
41: {ft: -15, ht: 129},
42: {ft: 9, ht: 129},
43: {ft: -14, ht: 129},
44: {ft: -13, ht: 129},
45: {ft: 10, ht: 129},
46: {ft: -12, ht: 129},
47: {ft: 11, ht: 129},
48: {ft: -11, ht: 129},
49: {ft: 12, ht: 129},
50: {ft: -10, ht: 129},
51: {ft: 13, ht: 129},
52: {ft: 14, ht: 129},
53: {ft: -9, ht: 129},
54: {ft: 15, ht: 129},
55: {ft: 64, ht: 129},
56: {ft: 129, ht: 0},
57: {ft: 129, ht: 1},
58: {ft: 129, ht: 2},
59: {ft: 129, ht: 3},
60: {ft: 129, ht: 4},
61: {ft: 129, ht: 5},
62: {ft: 129, ht: 6},
63: {ft: 129, ht: 7},
64: {ft: 129, ht: 8},
65: {ft: 129, ht: 8},
66: {ft: 129, ht: 9},
67: {ft: 129, ht: 10},
68: {ft: 129, ht: 11},
69: {ft: 129, ht: 12},
70: {ft: 129, ht: 13},
71: {ft: 129, ht: 14},
72: {ft: 129, ht: 16},
73: {ft: 129, ht: 15},
74: {ft: 129, ht: 16}
}
}
};
} // end class Constructor
}; // end Class