Musical keyboard component written in React.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

16 lines
399 B

  1. export default (dummyKeys: number[]): Record<number, number[]> => (
  2. dummyKeys
  3. .map(k => [k, Math.floor(k / 12)])
  4. .reduce<Record<number, number[]>>(
  5. (theOctaves, [key, keyOctave, ]) => ({
  6. ...theOctaves,
  7. [keyOctave]: (
  8. Array.isArray(theOctaves[keyOctave])
  9. ? [...theOctaves[keyOctave], key]
  10. : [key]
  11. )
  12. }),
  13. {}
  14. )
  15. )