summaryrefslogtreecommitdiff
path: root/bundle.js
diff options
context:
space:
mode:
Diffstat (limited to 'bundle.js')
-rw-r--r--bundle.js142
1 files changed, 129 insertions, 13 deletions
diff --git a/bundle.js b/bundle.js
index ab452a5..17ffb52 100644
--- a/bundle.js
+++ b/bundle.js
@@ -38175,7 +38175,7 @@ var scales = exports.scales = [{ name: "natural", get: function get(i, j) {
reset: function reset(x, y, w, h) {
a = (0, _index.Arithmetic)(x + 1, x + 1).take(w).toJS();
b = (0, _index.Arithmetic)(y + 1, y + 1).take(h).toJS();
- console.log(a);
+ // console.log(a);
},
get: function get(ii, jj, i, j) {
return [a[i], b[j]];
@@ -39011,7 +39011,7 @@ function add(i, j) {
j: j,
playing: false,
destroy: function destroy() {
- div.parentNode && div.parentNode.removeChild(div);
+ return grid.removeChild(div);
},
recolor: function recolor(numerator, denominator) {
var aa = a / numerator;
@@ -39158,16 +39158,15 @@ function bind() {
_keys2.default.listen(trigger_index);
// UI
- document.querySelector("#help .close").addEventListener("click", function () {
- return document.querySelector("#help").classList.remove("visible");
- });
document.querySelector("#help-button").addEventListener("click", function () {
return document.querySelector("#help").classList.toggle("visible");
});
- toggleModus();
+ document.querySelector("#root").addEventListener("click", function () {
+ return document.querySelector(".root-select").classList.toggle("visible");
+ });
document.querySelector("#modus").addEventListener("click", toggleModus);
Array.from(document.querySelectorAll(".mode")).forEach(function (el) {
- console.log(el.getAttribute("name"));
+ // console.log(el.getAttribute("name"));
el.addEventListener("click", function (event) {
var name = el.getAttribute("name");
scaleMode = _scales.scales.findIndex(function (scale) {
@@ -39177,6 +39176,9 @@ function bind() {
});
});
+ toggleModus();
+ bindRoot();
+
// Wheel to scroll
if (_util.browser.isDesktop) {
grid.addEventListener("wheel", function (e) {
@@ -39245,6 +39247,10 @@ function keydown(e) {
// \
_midi2.default.enable(trigger_index);
break;
+ case 192:
+ // ~
+ toggleModus();
+ break;
case 191:
// ?
document.querySelector("#help").classList.toggle("visible");
@@ -39255,9 +39261,7 @@ function keydown(e) {
e.preventDefault();
e.stopPropagation();
if (e.altKey || e.metaKey) {
- root = (0, _util.clamp)(root - (e.shiftKey ? 10 : 1), 1, 200000);
- organ.setRoot(root);
- showMessage("Root: " + root + " hz");
+ setRoot(root - e.shiftKey ? 10 : 1);
} else {
scaleMode = (0, _util.mod)(scaleMode - 1, _scales.scales.length);
rebuild();
@@ -39270,9 +39274,7 @@ function keydown(e) {
e.preventDefault();
e.stopPropagation();
if (e.altKey || e.metaKey) {
- root = (0, _util.clamp)(root + (e.shiftKey ? 10 : 1), 1, 200000);
- organ.setRoot(root);
- showMessage("Root: " + root + " hz");
+ setRoot(root + e.shiftKey ? 10 : 1);
} else {
scaleMode = (0, _util.mod)(scaleMode + 1, _scales.scales.length);
rebuild();
@@ -39281,6 +39283,120 @@ function keydown(e) {
break;
}
}
+function setRoot(newRoot) {
+ if (!newRoot) {
+ return;
+ }
+ root = (0, _util.clamp)(Math.round(newRoot), 1, 300000);
+ _sine2.default.setRoot(root);
+ _bandpass2.default.setRoot(root);
+ showMessage("Root: " + Math.round(root) + " hz");
+ showRoot(root);
+ document.querySelector(".root-select input").value = Math.round(root);
+}
+
+function showRoot(root) {
+ var el = document.querySelector("#root span");
+ el.style.fontSize = root < 1000 ? "14px" : root < 10000 ? "12px" : "9px";
+ el.innerHTML = Math.round(root);
+}
+function bindRoot() {
+ document.querySelector(".root-select").addEventListener("click", function () {
+ document.querySelector(".root-select").classList.remove("visible");
+ }, false);
+ document.querySelector(".root-select > div").addEventListener("click", function (event) {
+ event.stopPropagation();
+ });
+ document.querySelector(".root-select input").addEventListener("input", function (event) {
+ setRoot(parseFloat(event.target.value));
+ });
+ Object.entries({
+ ok: function ok() {
+ return document.querySelector(".root-select").classList.remove("visible");
+ },
+ "div-2": function div2() {
+ return setRoot(root / 2);
+ },
+ "mul-2": function mul2() {
+ return setRoot(root * 2);
+ },
+ "sub-10": function sub10() {
+ return setRoot(root - 10);
+ },
+ "sub-1": function sub1() {
+ return setRoot(root - 1);
+ },
+ "add-1": function add1() {
+ return setRoot(root + 1);
+ },
+ "add-10": function add10() {
+ return setRoot(root + 10);
+ },
+ "note-c": function noteC() {
+ return setRoot(440 * Math.pow(2, -9 / 12) * getOctave(root));
+ },
+ "note-db": function noteDb() {
+ return setRoot(440 * Math.pow(2, -8 / 12) * getOctave(root));
+ },
+ "note-d": function noteD() {
+ return setRoot(440 * Math.pow(2, -7 / 12) * getOctave(root));
+ },
+ "note-eb": function noteEb() {
+ return setRoot(440 * Math.pow(2, -6 / 12) * getOctave(root));
+ },
+ "note-e": function noteE() {
+ return setRoot(440 * Math.pow(2, -5 / 12) * getOctave(root));
+ },
+ "note-f": function noteF() {
+ return setRoot(440 * Math.pow(2, -4 / 12) * getOctave(root));
+ },
+ "note-gb": function noteGb() {
+ return setRoot(440 * Math.pow(2, -3 / 12) * getOctave(root));
+ },
+ "note-g": function noteG() {
+ return setRoot(440 * Math.pow(2, -2 / 12) * getOctave(root));
+ },
+ "note-ab": function noteAb() {
+ return setRoot(440 * Math.pow(2, -1 / 12) * getOctave(root));
+ },
+ "note-a": function noteA() {
+ return setRoot(440 * Math.pow(2, 0 / 12) * getOctave(root));
+ },
+ "note-bb": function noteBb() {
+ return setRoot(440 * Math.pow(2, 1 / 12) * getOctave(root));
+ },
+ "note-b": function noteB() {
+ return setRoot(440 * Math.pow(2, 2 / 12) * getOctave(root));
+ },
+ "note-c2": function noteC2() {
+ return setRoot(440 * Math.pow(2, 3 / 12) * getOctave(root));
+ }
+ }).forEach(function (_ref, index) {
+ var _ref2 = _slicedToArray(_ref, 2),
+ key = _ref2[0],
+ fn = _ref2[1];
+
+ var el = document.querySelector(".root-select ." + key);
+ el.addEventListener("click", fn);
+ if (key.startsWith("note")) {
+ el.style.background = (0, _color2.default)(Math.pow(2, (index - 7) / 12), 0, 1.6);
+ }
+ });
+}
+
+var C_ROOT = Math.round(440 * Math.pow(2, 3 / 12));
+function getOctave(value) {
+ var octave = 0;
+ while (value < C_ROOT) {
+ octave -= 1;
+ value *= 2;
+ }
+ while (value > C_ROOT) {
+ octave += 1;
+ value /= 2;
+ }
+ return Math.pow(2, octave);
+}
var messageTransition = void 0;
function showMessage(message) {