From d3f44fad88e1f3c0308d767b88c9775df784f1de Mon Sep 17 00:00:00 2001 From: Lance Badger Date: Wed, 28 Oct 2020 20:20:36 -0600 Subject: [PATCH] Using jQuery events allow a song to be played from an array --- js/core.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/js/core.js b/js/core.js index 0c95449..656816f 100644 --- a/js/core.js +++ b/js/core.js @@ -250,6 +250,30 @@ $(document).on("keydown keyup", function(e) { $.play(instrument, key, e.type === "keydown"); } }); +$.note = function(key, delay = 50) { + setTimeout(() => { + var e = jQuery.Event("keydown"); + e.key = key; + $(document).trigger(e); + setTimeout(() => { + var e = jQuery.Event("keyup"); + e.key = key; + $(document).trigger(e); + }, delay); + }, delay); +}; + +$.song = function(mySong) { + let length = 0; + mySong.forEach(function(s) { + const data = s.split(':'); + length += parseInt(data[1]); + setTimeout(() => { + $.note(data[0].toString(), 80); + }, length) + }); +}; + $(document).on("touchstart touchend", function(e) { if (e.target.classList.contains("layer")) { if (e.type === "touchstart") {