in src/toMidi.ts [198:220]
function argRelMax(array: number[][], order: number = 1): [number, number][] {
const result: [number, number][] = [];
// could really use a transpose op right now. But that would also be expensive
for (let col = 0; col < array[0].length; ++col) {
for (let row = 0; row < array.length; ++row) {
let isRelMax = true;
for (
let comparisonRow = Math.max(0, row - order);
isRelMax && comparisonRow <= Math.min(array.length - 1, row + order);
++comparisonRow
) {
if (comparisonRow !== row) {
isRelMax = isRelMax && array[row][col] > array[comparisonRow][col];
}
}
if (isRelMax) {
result.push([row, col]);
}
}
}
return result;
}