INNER CODE UNIT · TypeScript
suffixRepeat
scribbletune/scribbletune · src/cli.ts:152
const suffixRepeat = pattern.match(/^\((.+)\)(\d+)$/);
if (suffixRepeat) {
return suffixRepeat[1].repeat(Number(suffixRepeat[2]));
}
return pattern;
};
const countPatternSteps = (pattern: string): number =>
(pattern.match(/[xR]/g) || []).length;
const fitPatternToNoteCount = (pattern: string, noteCount: number): string => {
const stepCount = countPatternSteps(pattern);
if (!stepCount || stepCount >= noteCount) {
return pattern;
}
const reps = Math.ceil(noteCount / stepCount);
return pattern.repeat(reps);