123456789101112131415161718192021222324252627282930 |
- const cyrb53 = function(str, seed = 0) {
- let h1 = 0xdeadbeef ^ seed, h2 = 0x41c6ce57 ^ seed;
- for (let i = 0, ch; i < str.length; i++) {
- ch = str.charCodeAt(i);
- h1 = Math.imul(h1 ^ ch, 2654435761);
- h2 = Math.imul(h2 ^ ch, 1597334677);
- }
- h1 = Math.imul(h1 ^ (h1>>>16), 2246822507) ^ Math.imul(h2 ^ (h2>>>13), 3266489909);
- h2 = Math.imul(h2 ^ (h2>>>16), 2246822507) ^ Math.imul(h1 ^ (h1>>>13), 3266489909);
- return 4294967296 * (2097151 & h2) + (h1>>>0);
- };
- const hash = cyrb53
- function clamp(min, max, val) {
- if (val < min) return min;
- if (val > max) return max;
- return val;
- }
- function last(list) {
- return list[list.length - 1];
- }
- function pitchPercent(pitch) {
- return clamp(0, 1, (pitch - 50) / 250);
- }
|