static L intRangeChunks(int end, int chunkSize) { ret intRangeChunks(0, end, chunkSize); } static L intRangeChunks(int start, int end, int chunkSize) { new L l; int i = start; while (i < end) { l.add(IntRange(i, min(end, i+chunkSize))); i += chunkSize; } ret l; } // gratuitous convenience syntax for processing sound samples static L intRangeChunks(short[] l, int chunkSize) { ret intRangeChunks(l(l), chunkSize); }