diff options
author | Joris | 2022-07-04 11:32:27 +0200 |
---|---|---|
committer | Joris | 2022-07-04 19:36:37 +0200 |
commit | fade87173afbfdd51534646ed49844efa2d0e530 (patch) | |
tree | 54e8d5d81233fa5f3d1ba60fd8c3085252ebccc4 /src/chord.ts | |
parent | ce7722c901776ae8f6a64882e902e8ba851411e0 (diff) | |
download | chords-fade87173afbfdd51534646ed49844efa2d0e530.tar.gz chords-fade87173afbfdd51534646ed49844efa2d0e530.tar.bz2 chords-fade87173afbfdd51534646ed49844efa2d0e530.zip |
Play random major and/or minor chords
Diffstat (limited to 'src/chord.ts')
-rw-r--r-- | src/chord.ts | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/chord.ts b/src/chord.ts new file mode 100644 index 0000000..b2645e2 --- /dev/null +++ b/src/chord.ts @@ -0,0 +1,14 @@ +export type Options = { + major: boolean, + minor: boolean +} + +export function generate({ major, minor }: Options): string { + let choices: string[] = [] + if (major) choices = choices.concat(all) + if (minor) choices = choices.concat(all.map(chord => `${chord}m`)) + + return choices[Math.floor(Math.random() * choices.length)] +} + +const all: string[] = [ 'C', 'D♭', 'D', 'E♭', 'E', 'F', 'G♭', 'G', 'A♭', 'A', 'B♭', 'B' ] |