INNER CODE UNIT · TypeScript
makeArp
scribbletune/scribbletune · src/cli.ts:411
const makeArp = (parsed: ParsedOptions): NoteObject[] => {
const [root, mode, pattern, subdiv, progressionInput] = parsed.positionals;
if (!root || !mode || !progressionInput || !pattern || !subdiv) {
throw new TypeError(
'arp requires: <root> <mode> <pattern> <subdiv> <progression|random>'
);
}
const chords = parseProgression(root, mode, progressionInput);
const arpNotes = arp({
chords,
count: parsed.count || 4,
order: parsed.order ? normalizeArpOrder(parsed.order) : '0123',
});
const resolvedPattern = resolvePattern(
pattern,
arpNotes.length,
parsed.fitPattern
);