From 8940bf3505fbc5215338a045e70d475159d9249e Mon Sep 17 00:00:00 2001 From: Raphael Forment Date: Wed, 28 Feb 2024 12:14:49 +0100 Subject: [PATCH] Fix: Cast numbers to int with .scale function --- src/extensions/ArrayExtensions.ts | 52 +++++++++++++++---------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/src/extensions/ArrayExtensions.ts b/src/extensions/ArrayExtensions.ts index 98a1b58..39886ce 100644 --- a/src/extensions/ArrayExtensions.ts +++ b/src/extensions/ArrayExtensions.ts @@ -1,6 +1,6 @@ import { type UserAPI } from "../API"; import { safeScale, stepsToScale } from "zifferjs"; -export {}; +export { }; declare global { interface Array { @@ -60,14 +60,14 @@ export const makeArrayExtensions = (api: UserAPI) => { return this[zoneIndex]; }; - Array.prototype.square = function (): number[] { + Array.prototype.square = function(): number[] { /** * @returns New array with squared values. */ return this.map((x: number) => x * x); }; - Array.prototype.sometimes = function (func: Function): number[] { + Array.prototype.sometimes = function(func: Function): number[] { if (api.randomGen() < 0.5) { return func(this); } else { @@ -75,11 +75,11 @@ export const makeArrayExtensions = (api: UserAPI) => { } }; - Array.prototype.apply = function (func: Function): number[] { + Array.prototype.apply = function(func: Function): number[] { return func(this); }; - Array.prototype.sqrt = function (): number[] { + Array.prototype.sqrt = function(): number[] { /** * @returns New array with square roots of values. Throws if any element is negative. */ @@ -88,7 +88,7 @@ export const makeArrayExtensions = (api: UserAPI) => { return this.map((x: number) => Math.sqrt(x)); }; - Array.prototype.add = function (amount: number): number[] { + Array.prototype.add = function(amount: number): number[] { /** * @param amount - The value to add to each element in the array. * @returns New array with added values. @@ -96,7 +96,7 @@ export const makeArrayExtensions = (api: UserAPI) => { return this.map((x: number) => x + amount); }; - Array.prototype.sub = function (amount: number): number[] { + Array.prototype.sub = function(amount: number): number[] { /** * @param amount - The value to subtract from each element in the array. * @returns New array with subtracted values. @@ -104,7 +104,7 @@ export const makeArrayExtensions = (api: UserAPI) => { return this.map((x: number) => x - amount); }; - Array.prototype.mult = function (amount: number): number[] { + Array.prototype.mult = function(amount: number): number[] { /** * @param amount - The value to multiply with each element in the array. * @returns New array with multiplied values. @@ -112,7 +112,7 @@ export const makeArrayExtensions = (api: UserAPI) => { return this.map((x: number) => x * amount); }; - Array.prototype.div = function (amount: number): number[] { + Array.prototype.div = function(amount: number): number[] { /** * @param amount - The value to divide each element in the array by. * @returns New array with divided values. Throws if division by zero. @@ -121,7 +121,7 @@ export const makeArrayExtensions = (api: UserAPI) => { return this.map((x: number) => x / amount); }; - Array.prototype.pick = function () { + Array.prototype.pick = function() { /** * Returns a random element from an array. * @@ -130,7 +130,7 @@ export const makeArrayExtensions = (api: UserAPI) => { return this[Math.floor(api.randomGen() * this.length)]; }; - Array.prototype.gen = function (min: number, max: number, times: number) { + Array.prototype.gen = function(min: number, max: number, times: number) { /** * Returns an array of random numbers. * @param min - The minimum value of the random numbers @@ -147,7 +147,7 @@ export const makeArrayExtensions = (api: UserAPI) => { ); }; - Array.prototype.bar = function (value: number = 1) { + Array.prototype.bar = function(value: number = 1) { /** * Returns an element from an array based on the current bar. * @@ -162,7 +162,7 @@ export const makeArrayExtensions = (api: UserAPI) => { } }; - Array.prototype.beat = function (divisor: number = 1) { + Array.prototype.beat = function(divisor: number = 1) { const chunk_size = divisor; // Get the first argument (chunk size) const timepos = api.app.clock.pulses_since_origin; const slice_count = Math.floor( @@ -172,7 +172,7 @@ export const makeArrayExtensions = (api: UserAPI) => { }; Array.prototype.b = Array.prototype.beat; - Array.prototype.dur = function (...durations: number[]) { + Array.prototype.dur = function(...durations: number[]) { const timepos = api.app.clock.pulses_since_origin; const ppqn = api.ppqn(); const adjustedDurations: number[] = this.map( @@ -195,7 +195,7 @@ export const makeArrayExtensions = (api: UserAPI) => { throw new Error("Durations array does not match the pattern length."); }; - Array.prototype.shuffle = function () { + Array.prototype.shuffle = function() { /** * Shuffles the array in place. * @@ -214,7 +214,7 @@ export const makeArrayExtensions = (api: UserAPI) => { return this; }; - Array.prototype.rotate = function (steps: number) { + Array.prototype.rotate = function(steps: number) { /** * Rotates the array in place. * @@ -234,7 +234,7 @@ export const makeArrayExtensions = (api: UserAPI) => { return this; }; - Array.prototype.unique = function () { + Array.prototype.unique = function() { /** * Removes duplicate elements from the array in place. * @@ -267,7 +267,7 @@ export const makeArrayExtensions = (api: UserAPI) => { if (this.length <= 1) { return this; } - for (let i = 0; i < this.length; ) { + for (let i = 0; i < this.length;) { const rand = api.randomGen() * 100; if (rand < amount) { if (this.length > 1) { @@ -380,7 +380,7 @@ export const makeArrayExtensions = (api: UserAPI) => { return left_to_right.concat(right_to_left); }; - Array.prototype.loop = function (index: number) { + Array.prototype.loop = function(index: number) { /** * Returns an element from the array based on the index. * The index will wrap over the array. @@ -391,7 +391,7 @@ export const makeArrayExtensions = (api: UserAPI) => { return this[index % this.length]; }; - Array.prototype.random = function () { + Array.prototype.random = function() { /** * Returns a random element from the array. * @@ -410,10 +410,10 @@ export const makeArrayExtensions = (api: UserAPI) => { * * @returns the shifted array */ - const idx = api.counter(name,limit,step); - if(limit) { + const idx = api.counter(name, limit, step); + if (limit) { return this[idx % this.length]; - } else if(idx < this.length) { + } else if (idx < this.length) { return this[idx]; } else { return this[this.length - 1]; @@ -425,7 +425,7 @@ export const makeArrayExtensions = (api: UserAPI) => { -Array.prototype.scale = function ( +Array.prototype.scale = function( scale: string = "major", base_note: number = 0, ) { @@ -442,14 +442,14 @@ Array.prototype.scale = function ( return this.map((value) => { const octaveShift = Math.floor(value / selected_scale.length) * 12; return ( - selected_scale[mod(value, selected_scale.length)] + + selected_scale[mod(Math.floor(value), selected_scale.length)] + base_note + octaveShift ); }); }; -Array.prototype.scaleArp = function ( +Array.prototype.scaleArp = function( scaleName: string = "major", boundary: number = 0, ) {