From aec7417c144504db663a3730b800c6e93d60654e Mon Sep 17 00:00:00 2001 From: Enelg52 Date: Sat, 25 May 2024 20:47:20 +0200 Subject: [PATCH] Add the mousex and mousey signal --- packages/core/signal.mjs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/packages/core/signal.mjs b/packages/core/signal.mjs index 375c4f67..295d39b3 100644 --- a/packages/core/signal.mjs +++ b/packages/core/signal.mjs @@ -86,6 +86,25 @@ export const tri2 = fastcat(isaw2, saw2); export const time = signal(id); + +/** + * The mouse's x or y position value ranges from 0 to 1. + * + * @return {Pattern} + * @example + * n(mousex.segment(4).range(0,7)).scale("C:minor") + * n(mousey.segment(4).range(0,7)).scale("C:minor") + * + */ +let _mouseY=0,_mouseX=0 +document.onmousemove = (e) => { + _mouseY = e.clientY / document.body.clientHeight; + _mouseX = e.clientX / document.body.clientWidth; +}; + +export const mousey = signal(() => _mouseY); +export const mousex = signal(() => _mouseX); + // random signals const xorwise = (x) => {