From 08f94d21222ec4408e21dad61abed6abbe4d91ba Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 20 Jul 2023 22:53:02 +0200 Subject: [PATCH 01/11] add ireal voicings --- packages/tonal/index.mjs | 2 + packages/tonal/ireal.mjs | 748 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 750 insertions(+) create mode 100644 packages/tonal/ireal.mjs diff --git a/packages/tonal/index.mjs b/packages/tonal/index.mjs index 15eb9c4a..fc1b7f97 100644 --- a/packages/tonal/index.mjs +++ b/packages/tonal/index.mjs @@ -3,3 +3,5 @@ import './voicings.mjs'; export * from './tonal.mjs'; export * from './voicings.mjs'; + +import './ireal.mjs'; diff --git a/packages/tonal/ireal.mjs b/packages/tonal/ireal.mjs new file mode 100644 index 00000000..2b2dff17 --- /dev/null +++ b/packages/tonal/ireal.mjs @@ -0,0 +1,748 @@ +import { registerVoicings } from './voicings.mjs'; + +// these voicings have been reverse engineered from ireal pro midi data +// using this script: +// https://codesandbox.io/s/ireal-midi-scraper-meng0t?file=/src/index.js + +registerVoicings('ireal', { + 2: ['5P 8P 9M 12P', '1P 5P 8P 9M', '1P 5P 8P 9M 12P'], + 5: ['5P 8P 12P 15P', '1P 5P 8P 12P'], + 6: ['5P 8P 10M 12P 13M', '3M 5P 8P 10M 13M', '1P 5P 8P 10M 13M', '1P 5P 6M 8P 10M'], + 7: [ + '3M 7m 10M 12P 15P', + '7m 10M 12P 14m 15P', + '3M 7m 8P 10M 14m', + '3M 7m 8P 10M 12P', + '1P 7m 8P 10M 12P', + '1P 5P 7m 8P 10M', + '7m 10M 12P 15P 17M', + ], + 9: [ + '3M 7m 8P 12P 16M', + '7m 10M 12P 15P 16M', + '3M 7m 8P 9M 12P', + '1P 7m 9M 10M 12P', + '1P 5P 7m 9M 10M', + '7m 9M 10M 14m 15P', + ], + 11: ['7m 8P 9M 11P 12P', '7m 8P 11P 12P 16M', '5P 7m 8P 9M 11P', '1P 5P 7m 9M 11P'], + 13: ['7m 8P 9M 10M 13M', '3M 7m 8P 9M 13M', '1P 6M 7m 9M 10M', '1P 7m 9M 10M 13M', '7m 9M 10M 13M 15P'], + 69: ['5P 8P 9M 10M 13M', '3M 5P 8P 9M 13M', '1P 5P 9M 10M 13M', '1P 5P 6M 9M 10M'], + add9: ['3M 8P 9M 12P 15P', '3M 8P 9M 10M 12P', '1P 5P 9M 10M 12P', '1P 5P 8P 9M 10M', '5P 8P 9M 12P 17M'], + '+': [ + '3M 8P 10M 13m 15P', + '3M 6m 8P 10M 13m', + '1P 6m 8P 10M 13m', + '1P 3M 6m 8P 10M', + '6m 10M 13m 15P 17M', + '6m 8P 10M 13m 15P', + ], + o: ['5d 8P 10m 12d 15P', '3m 8P 10m 12d 15P', '1P 5d 8P 10m 12d'], + h: [ + '5d 7m 8P 10m 14m', + '3m 7m 8P 12d 14m', + '3m 7m 8P 10m 12d', + '1P 7m 10m 12d', + '3m 5d 7m 8P 10m', + '7m 10m 12d 14m 15P', + '5d 8P 10m 14m 17m', + '5d 8P 10m 12d 14m', + ], + sus: ['5P 8P 11P 12P 15P', '5P 8P 11P 12P', '1P 4P 5P 8P', '1P 4P 5P 8P 11P'], + '^': ['5P 8P 10M 12P 14M', '3M 8P 10M 12P 14M', '1P 10M 12P 14M', '1P 5P 7M 10M 12P', '5P 8P 10M 14M 17M'], + '-': ['5P 8P 10m 12P 15P', '3m 5P 8P 10m 12P', '1P 3m 5P 8P 10m', '1P 5P 8P 10m 12P'], + '^7': ['5P 8P 10M 12P 14M', '3M 8P 10M 12P 14M', '1P 5P 7M 10M 12P', '1P 10M 12P 14M', '5P 8P 10M 14M 17M'], + '-7': [ + '5P 7m 8P 10m 14m', + '3m 7m 8P 10m 14m', + '3m 7m 8P 10m 12P', + '1P 5P 7m 10m 12P', + '1P 3m 5P 7m 10m', + '7m 10m 12P 15P 17m', + '7m 10m 12P 14m 15P', + '5P 8P 10m 14m 17m', + ], + '7sus': ['5P 8P 11P 12P 14m', '7m 8P 11P 12P 14m', '1P 5P 7m 8P 11P', '7m 11P 12P 14m 18P'], + h7: [ + '5d 7m 8P 10m 14m', + '3m 7m 8P 12d 14m', + '3m 7m 8P 10m 12d', + '3m 5d 7m 8P 10m', + '7m 10m 12d 14m 15P', + '5d 8P 10m 12d 14m', + '5d 8P 10m 14m 17m', + ], + o7: [ + '5d 10m 12d 13M 15P', + '3m 8P 12d 13M 15P', + '1P 6M 10m 12d 13M', + '3m 8P 10m 12d 13M', + '1P 6M 8P 10m 12d', + '6M 12d 15P 17m 19d', + '6M 12d 13M 15P 17m', + '5d 10m 13M 15P 17m', + ], + 'o^7': ['5P 8P 10M 12P 14M', '5P 8P 10M 14M 17M', '3M 8P 10M 12P 14M', '1P 10M 12P 14M', '1P 5P 7M 10M 12P'], + '^9': [ + '3M 7M 8P 12P 16M', + '3M 7M 8P 9M 12P', + '1P 5P 7M 9M 10M', + '1P 7M 9M 10M 12P', + '7M 8P 10M 12P 16M', + '5P 8P 10M 14M 16M', + ], + '^13': ['3M 7M 8P 13M 16M', '3M 7M 8P 9M 13M', '7M 8P 10M 13M 16M', '1P 7M 9M 10M 13M', '1P 6M 7M 9M 10M'], + '^7#11': ['5P 8P 10M 12d 14M', '3M 7M 8P 12d 14M', '3M 7M 8P 10M 12d', '1P 5P 7M 10M 12d'], + '^9#11': ['3M 8P 9M 12d 14M', '1P 3M 5d 7M 9M', '3M 7M 8P 9M 12d', '1P 7M 9M 10M 12d'], + '^7#5': ['6m 7M 8P 10M 13m', '3M 7M 8P 10M 13m', '1P 6m 7M 10M 13m'], + '-6': [ + '5P 8P 10m 13M 15P', + '5P 8P 10m 12P 13M', + '3m 5P 8P 10m 13M', + '1P 5P 8P 10m 13M', + '3m 5P 6M 8P 10m', + '1P 5P 6M 8P 10m', + '1P 3m 5P 6M 8P', + ], + '-69': [ + '5P 8P 9M 10m 13M', + '5P 8P 10m 13M 16M', + '3m 5P 8P 9M 13M', + '3m 6M 9M 10m 12P', + '1P 5P 9M 10m 13M', + '3m 5P 6M 8P 9M', + '1P 3m 5P 6M 9M', + ], + '-^7': ['5P 7M 8P 10m 14M', '3m 7M 8P 10m 12P', '1P 3m 5P 7M 10m', '1P 5P 7M 10m 12P', '5P 8P 10m 14M 17m'], + '-^9': ['5P 8P 9M 10m 14M', '3m 7M 8P 9M 12P', '1P 7M 9M 10m 12P', '1P 3m 5P 7M 9M'], + '-9': [ + '5P 8P 9M 10m 14m', + '7m 10m 12P 15P 16M', + '3m 7m 9M 12P 15P', + '3m 7m 8P 9M 12P', + '3m 5P 7m 8P 9M', + '1P 3m 5P 7m 9M', + ], + '-add9': ['5P 8P 9M 10m 12P', '3m 5P 8P 9M 12P', '1P 3m 5P 9M', '1P 2M 3m 5P 8P'], + '-11': [ + '5P 8P 11P 14m', + '3m 7m 9M 11P 15P', + '3m 7m 8P 9M 11P', + '1P 4P 7m 10m 12P', + '1P 3m 7m 9M 11P', + '7m 10m 12P 15P 18P', + '5P 8P 11P 14m 16M', + ], + '-7b5': [ + '5d 7m 8P 10m 14m', + '3m 7m 8P 12d 14m', + '3m 7m 8P 10m 12d', + '3m 5d 7m 8P 10m', + '7m 10m 12d 14m 15P', + '1P 5d 7m 10m 12d', + '5d 8P 10m 14m 17m', + ], + h9: ['5d 8P 9M 10m 14m', '3m 7m 8P 9M 12d', '1P 7m 9M 10m 12d', '7m 10m 12d 15P 16M'], + '-b6': ['5P 8P 10m 13m 15P', '5P 8P 10m 13m', '3m 5P 8P 10m 13m', '1P 5P 8P 10m 13m', '1P 5P 6m 8P 10m'], + '-#5': ['6m 8P 10m 13m 15P', '3m 6m 8P 10m 13m', '1P 6m 8P 10m 13m'], + '7b9': ['3M 7m 8P 9m 14m', '1P 3M 7m 9m 10M', '3M 7m 8P 9m 10M', '7m 9m 10M 14m 15P'], + '7#9': ['3M 7m 8P 10m 14m', '1P 3M 7m 10m', '7m 10m 10M 14m 15P'], + '7#11': ['7m 10M 12d 14m 15P', '3M 7m 8P 10M 12d', '1P 3M 7m 10M 12d'], + '7b5': ['7m 10M 12d 14m 15P', '3M 7m 8P 10M 12d', '1P 3M 7m 10M 12d'], + '7#5': ['3M 7m 8P 13m 14m', '7m 10M 13m 14m 15P', '3M 7m 8P 10M 13m', '1P 3M 7m 10M 13m'], + '9#11': ['7m 10M 12d 15P 16M', '3M 7m 8P 9M 12d', '1P 7m 9M 10M 12d'], + '9b5': ['7m 10M 12d 15P 16M', '3M 7m 8P 9M 12d', '1P 7m 9M 10M 12d'], + '9#5': ['3M 7m 9M 13m 14m', '3M 7m 9M 10M 13m', '1P 7m 9M 10M 13m', '7m 10M 13m 16M 17M', '7m 10M 13m 14m 16M'], + '7b13': ['3M 7m 8P 13m 14m', '7m 10M 13m 14m 15P', '3M 7m 8P 10M 13m', '1P 3M 7m 10M 13m'], + '7#9#5': ['3M 7m 10m 13m 15P', '1P 3M 7m 10m 13m', '7m 10M 13m 15P 17m'], + '7#9b5': ['3M 7m 10m 12d 15P', '7m 10M 12d 15P 17m', '1P 3M 7m 10m 12d'], + '7#9#11': ['3M 7m 10m 12d 15P', '7m 10M 12d 15P 17m', '1P 3M 7m 10m 12d'], + '7b9#11': ['7m 8P 10M 12d 16m', '3M 7m 8P 9m 12d', '1P 7m 9m 10M 12d'], + '7b9b5': ['7m 8P 10M 12d 16m', '3M 7m 8P 9m 12d', '1P 7m 9m 10M 12d'], + '7b9#5': ['7m 9m 10M 13m 15P', '3M 7m 8P 9m 13m', '1P 7m 9m 10M 13m'], + '7b9#9': ['7m 8P 10M 16m 17m', '3M 7m 8P 9m 10m', '1P 3M 7m 9m 10m'], + '7b9b13': ['7m 9m 10M 13m 15P', '3M 7m 8P 9m 13m', '1P 7m 9m 10M 13m'], + '7alt': [ + '3M 7m 9m 12d 15P', + '3M 7m 10m 13m 15P', + '3M 7m 8P 10m 13m', + '3M 7m 8P 9m 12d', + '1P 7m 10m 10M 13m', + '7m 10M 12d 15P 17m', + ], + '13#11': ['3M 7m 9M 12d 13M', '1P 6M 7m 10M 12d', '7m 10M 12d 13M 16M'], + '13b9': ['3M 7m 10M 13M 16m', '1P 3M 6M 7m 9m', '3M 7m 9m 10M 13M', '1P 6M 7m 9m 10M', '7m 10M 13M 16m 17M'], + '13#9': ['3M 7m 8P 10m 13M', '1P 3M 6M 7m 10m', '7m 10M 13M 14m 17m'], + '7b9sus': ['7m 8P 11P 14m 16m', '5P 7m 8P 9m 11P', '1P 5P 7m 9m 11P'], + '7susadd3': ['5P 8P 10M 11P 14m', '1P 4P 5P 7m 10M', '7m 11P 12P 15P 17M'], + '9sus': ['7m 8P 9M 11P 12P', '5P 7m 8P 9M 11P', '1P 5P 7m 9M 11P', '7m 8P 11P 12P 16M'], + '13sus': ['5P 7m 9M 11P 13M', '1P 4P 6M 7m 9M', '1P 7m 9M 11P 13M', '7m 9M 11P 13M 15P'], + '7b13sus': ['5P 7m 8P 11P 13m', '1P 5P 7m 11P 13m', '7m 11P 13m 14m 15P'], +}); + +registerVoicings('ireal-ext', { + 2: ['5P 8P 9M 12P 15P', '5P 8P 9M 12P 13M', '1P 5P 6M 8P 9M', '1P 5P 8P 9M 12P'], + 5: ['5P 8P 12P 15P', '1P 5P 8P 12P', '1P 5P 8P 9M 12P', '5P 8P 12P 15P 16M'], + 6: ['3M 6M 9M 12P 15P', '3M 5P 9M 10M 13M', '5P 8P 9M 10M 13M', '1P 5P 9M 10M 13M', '1P 5P 6M 9M 10M'], + 7: [ + '3M 7m 10M 12P 15P', + '3M 7m 8P 10M 14m', + '3M 7m 8P 10M 12P', + '1P 7m 8P 10M 12P', + '7m 10M 14m 17M 19P', + '7m 10M 12P 15P 17M', + '7m 10M 12P 14m 15P', + ], + 9: [ + '3M 7m 9M 12P 15P', + '3M 7m 9M 10M 13M', + '3M 7m 9M 10M 12P', + '1P 7m 9M 10M 13M', + '7m 10M 13M 16M 19P', + '1P 6M 7m 9M 10M', + '7m 10M 13M 16M 17M', + '7m 10M 12P 13M 16M', + ], + 11: ['5P 8P 9M 11P 14m', '4P 6M 7m 9M 11P', '1P 5P 7m 9M 11P', '7m 11P 12P 14m 18P', '7m 9M 11P 13M 15P'], + 13: [ + '3M 7m 10M 13M 16M', + '3M 7m 9M 13M 15P', + '3M 7m 9M 10M 13M', + '7m 10M 13M 16M 19P', + '7m 10M 13M 16M 17M', + '7m 10M 12P 13M 16M', + ], + 69: ['3M 6M 9M 12P 15P', '3M 5P 9M 10M 13M', '1P 5P 9M 10M 13M', '1P 5P 6M 9M 10M'], + add9: [ + '5P 8P 9M 10M 15P', + '3M 8P 9M 12P 15P', + '1P 5P 9M 10M 12P', + '3M 8P 9M 10M 12P', + '1P 5P 8P 9M 10M', + '5P 8P 9M 12P 17M', + ], + '+': [ + '3M 8P 10M 13m 15P', + '3M 8P 9M 10M 13m', + '1P 6m 8P 9M 10M', + '1P 6m 8P 10M 13m', + '6m 10M 13m 15P 17M', + '6m 10M 13m 15P 16M', + ], + o: [ + '5d 10m 12d 13M 15P', + '3m 8P 12d 13M 15P', + '1P 6M 10m 12d 13M', + '3m 8P 10m 12d 13M', + '1P 6M 8P 10m 12d', + '6M 12d 15P 17m 19d', + '6M 12d 13M 15P 17m', + '5d 10m 13M 15P 17m', + ], + h: [ + '5d 8P 10m 14m 17m', + '5d 8P 10m 11P 14m', + '3m 7m 8P 12d 14m', + '5d 7m 8P 10m 11P', + '3m 5d 7m 8P 11P', + '1P 7m 10m 12d', + '1P 5d 7m 10m 11P', + '7m 10m 12d 14m 15P', + ], + sus: [ + '5P 8P 11P 13M 15P', + '1P 4P 5P 8P 9M', + '5P 8P 11P 12P 13M', + '5P 8P 9M 11P 12P', + '1P 5P 8P 9M 11P', + '1P 4P 5P 8P 11P', + ], + '^': [ + '3M 7M 10M 13M 16M', + '3M 7M 9M 13M 14M', + '3M 7M 9M 10M 13M', + '3M 7M 9M 10M 12P', + '3M 7M 9M 12P 13M', + '1P 7M 9M 10M 13M', + '7M 10M 13M 16M 19P', + '1P 6M 7M 9M 10M', + '7M 10M 13M 16M 17M', + '7M 10M 13M 14M 16M', + ], + '-': [ + '5P 8P 10m 12P 15P', + '5P 8P 9M 10m 11P', + '3m 5P 8P 10m 12P', + '3m 5P 8P 9M 11P', + '1P 5P 9M 10m 12P', + '1P 3m 5P 9M 11P', + '1P 3m 5P 8P 10m', + ], + '^7': [ + '3M 7M 10M 13M 16M', + '3M 7M 9M 13M 14M', + '3M 7M 9M 10M 13M', + '3M 7M 9M 10M 12P', + '3M 7M 9M 12P 13M', + '1P 7M 9M 10M 13M', + '7M 10M 13M 16M 19P', + '1P 6M 7M 9M 10M', + '7M 10M 13M 16M 17M', + '7M 10M 13M 14M 16M', + ], + '-7': [ + '5P 7m 9M 10m 14m', + '3m 7m 8P 10m 14m', + '3m 7m 9M 10m 12P', + '3m 7m 8P 10m 11P', + '1P 5P 7m 10m 12P', + '1P 5P 7m 10m 11P', + '1P 3m 5P 7m 9M', + '1P 3m 5P 7m 10m', + '7m 10m 12P 15P 16M', + '5P 8P 11P 14m 17m', + ], + '7sus': [ + '5P 8P 9M 11P 14m', + '1P 4P 6M 7m 9M', + '4P 6M 7m 9M 11P', + '1P 5P 7m 9M 11P', + '7m 11P 12P 14m 18P', + '7m 9M 11P 13M 15P', + ], + h7: [ + '5d 8P 10m 14m 17m', + '5d 8P 10m 11P 14m', + '3m 7m 8P 12d 14m', + '5d 7m 8P 10m 11P', + '3m 5d 7m 8P 11P', + '1P 7m 10m 12d', + '1P 5d 7m 10m 11P', + '7m 10m 12d 14m 15P', + ], + o7: [ + '5d 10m 12d 13M 15P', + '3m 8P 12d 13M 15P', + '3m 8P 10m 12d 13M', + '1P 6M 10m 12d 13M', + '1P 6M 8P 10m 12d', + '6M 12d 15P 17m 19d', + '6M 12d 13M 15P 17m', + '5d 10m 13M 15P 17m', + ], + 'o^7': [ + '3M 7M 10M 13M 16M', + '3M 7M 9M 13M 14M', + '3M 7M 9M 10M 13M', + '3M 7M 9M 10M 12P', + '1P 7M 9M 10M 13M', + '7M 10M 13M 16M 19P', + '1P 6M 7M 9M 10M', + '7M 10M 13M 16M 17M', + '7M 10M 13M 14M 16M', + ], + '^9': [ + '3M 7M 10M 13M 16M', + '3M 7M 9M 13M 14M', + '3M 7M 9M 12P 13M', + '3M 7M 9M 10M 13M', + '1P 7M 9M 10M 13M', + '7M 10M 13M 16M 19P', + '1P 6M 7M 9M 10M', + '7M 10M 13M 16M 17M', + '7M 10M 13M 14M 16M', + ], + '^13': [ + '3M 7M 10M 13M 16M', + '3M 7M 9M 13M 14M', + '3M 7M 9M 10M 13M', + '1P 7M 9M 10M 13M', + '7M 10M 13M 16M 19P', + '1P 6M 7M 9M 10M', + '7M 10M 13M 16M 17M', + '7M 10M 13M 14M 16M', + ], + '^7#11': [ + '3M 7M 10M 12d 14M', + '3M 7M 9M 12d 13M', + '3M 7M 9M 10M 12d', + '1P 7M 9M 10M 12d', + '7M 10M 12d 14M 17M', + '7M 10M 12d 13M 16M', + '7M 10M 12d 13M 14M', + ], + '^9#11': [ + '3M 7M 9M 12d 14M', + '3M 7M 9M 12d 13M', + '3M 7M 9M 10M 12d', + '1P 7M 9M 10M 12d', + '1P 3M 5d 7M 9M', + '7M 10M 12d 13M 16M', + ], + '^7#5': ['3M 7M 10M 13m 14M', '3M 7M 9M 10M 13m', '1P 6m 7M 10M 13m', '7M 10M 13m 14M 17M', '7M 10M 13m 14M 16M'], + '-6': [ + '5P 8P 10m 11P 13M', + '3m 5P 8P 9M 13M', + '3m 5P 6M 8P 11P', + '3m 5P 6M 8P 9M', + '1P 3m 5P 6M 9M', + '5P 8P 10m 13M 16M', + ], + '-69': [ + '5P 8P 9M 10m 13M', + '3m 5P 8P 9M 13M', + '3m 6M 9M 10m 12P', + '1P 5P 9M 10m 13M', + '3m 5P 6M 8P 9M', + '1P 3m 5P 6M 9M', + '5P 8P 10m 13M 16M', + ], + '-^7': [ + '3m 7M 9M 12P 14M', + '7M 10m 11P 12P 14M', + '3m 7M 9M 10m 11P', + '3m 7M 9M 10m 12P', + '1P 5P 7M 10m 11P', + '7M 10m 12P 14M 16M', + '1P 3m 5P 7M 9M', + ], + '-^9': [ + '3m 7M 9M 12P 14M', + '7M 10m 11P 12P 14M', + '3m 7M 9M 10m 12P', + '3m 7M 9M 10m 11P', + '1P 5P 7M 10m 11P', + '1P 3m 5P 7M 9M', + '7M 10m 12P 14M 16M', + ], + '-9': [ + '3m 7m 9M 12P 15P', + '3m 7m 9M 10m 14m', + '3m 7m 9M 10m 12P', + '3m 7m 9M 10m 11P', + '1P 3m 7m 9M 11P', + '7m 10m 12P 16M 18P', + '7m 10m 11P 14m 16M', + ], + '-add9': ['5P 8P 9M 10m 12P', '3m 5P 8P 9M 12P', '1P 2M 3m 5P 8P', '1P 3m 5P 9M'], + '-11': [ + '5P 8P 11P 14m', + '7m 9M 10m 11P', + '3m 7m 9M 11P 14m', + '3m 7m 9M 11P 12P', + '3m 5P 7m 9M 11P', + '1P 4P 7m 10m 12P', + '7m 10m 11P 16M 21m', + '7m 10m 12P 16M 18P', + '5P 8P 11P 14m 16M', + '7m 9M 10m 11P 12P', + ], + '-7b5': [ + '5d 8P 10m 14m 17m', + '5d 8P 10m 11P 14m', + '3m 7m 8P 12d 14m', + '5d 7m 8P 10m 11P', + '3m 5d 7m 8P 11P', + '1P 7m 10m 12d', + '1P 5d 7m 10m 11P', + '7m 10m 12d 14m 15P', + ], + h9: [ + '5d 8P 9M 10m 14m', + '3m 7m 9M 12d 14m', + '3m 5d 7m 9M 11P', + '1P 7m 9M 10m 12d', + '7m 10m 12d 14m 16M', + '7m 10m 11P 12d 14m', + ], + '-b6': ['5P 8P 10m 11P 13m', '1P 3m 5P 6m 8P', '3m 5P 8P 11P 13m'], + '-#5': ['6m 8P 10m 13m 15P', '3m 6m 8P 11P 13m', '1P 6m 8P 10m 13m'], + '7b9': ['3M 7m 8P 9m 14m', '7m 9m 10M 14m 15P', '3M 7m 8P 9m 10M', '1P 3M 7m 9m 10M'], + '7#9': ['3M 7m 10m 12P 14m', '3M 7m 10m 10M 12P', '1P 3M 7m 10m', '7m 10M 12P 14m 17m'], + '7#11': ['3M 7m 9M 12d 13M', '1P 3M 7m 9M 12d', '7m 10M 12d 13M 16M'], + '7b5': ['3M 7m 9M 12d 13M', '7m 10M 12d 13M 16M', '1P 3M 7m 9M 12d'], + '7#5': ['3M 7m 8P 13m 14m', '3M 7m 8P 10M 13m', '1P 3M 7m 10M 13m', '7m 10M 13m 14m 17M', '7m 10M 13m 14m 15P'], + '9#11': ['7m 10M 12d 15P 16M', '3M 7m 8P 9M 12d', '1P 7m 9M 10M 12d'], + '9b5': ['7m 10M 12d 15P 16M', '3M 7m 8P 9M 12d', '1P 7m 9M 10M 12d'], + '9#5': ['3M 7m 9M 13m 14m', '3M 7m 9M 10M 13m', '1P 7m 9M 10M 13m', '7m 10M 13m 14m 16M', '7m 10M 13m 16M 17M'], + '7b13': ['3M 7m 8P 13m 14m', '7m 10M 13m 14m 17M', '3M 7m 8P 10M 13m', '1P 3M 7m 10M 13m', '7m 10M 13m 14m 15P'], + '7#9#5': ['3M 7m 10m 13m 14m', '3M 7m 10m 10M 13m', '7m 10M 13m 14m 17m'], + '7#9b5': ['3M 7m 10m 12d 14m', '3M 7m 10m 10M 12d', '7m 10M 12d 14m 17m'], + '7#9#11': ['3M 7m 10m 12d 14m', '3M 7m 10m 10M 12d', '7m 10M 12d 14m 17m'], + '7b9#11': ['3M 7m 9m 12d 14m', '3M 7m 9m 10M 12d', '7m 10M 12d 14m 16m', '7m 8P 10M 12d 16m'], + '7b9b5': ['3M 7m 9m 12d 14m', '3M 7m 9m 10M 12d', '7m 8P 10M 12d 16m', '7m 10M 12d 14m 16m'], + '7b9#5': ['3M 7m 10M 13m 16m', '3M 7m 9m 10M 13m', '7m 10M 13m 14m 16m', '1P 7m 9m 10M 13m', '7m 10M 13m 16m 17M'], + '7b9#9': ['3M 7m 10m 13m 16m', '1P 3M 7m 9m 10m', '7m 10M 13m 16m 17m'], + '7b9b13': ['3M 7m 10M 13m 16m', '3M 7m 9m 10M 13m', '7m 10M 13m 14m 16m', '1P 7m 9m 10M 13m', '7m 10M 13m 16m 17M'], + '7alt': [ + '3M 7m 10m 13m 15P', + '3M 7m 9m 12d 14m', + '3M 7m 8P 10m 13m', + '3M 7m 9m 10m 13m', + '7m 10M 13m 16m 19d', + '7m 10M 13m 15P 17m', + '7m 10M 12d 14m 16m', + ], + '13#11': ['3M 7m 9M 12d 13M', '7m 10M 12d 13M 16M'], + '13b9': ['3M 7m 10M 13M 16m', '7m 10M 13M 16m 17M', '3M 7m 9m 10M 13M'], + '13#9': ['3M 7m 10m 10M 13M', '7m 10M 13M 14m 17m'], + '7b9sus': ['7m 8P 11P 14m 16m', '5P 7m 8P 9m 11P', '1P 5P 7m 9m 11P'], + '7susadd3': ['5P 8P 10M 11P 14m', '1P 4P 5P 7m 10M', '7m 11P 12P 15P 17M'], + '9sus': [ + '5P 8P 9M 11P 14m', + '4P 6M 7m 9M 11P', + '7m 11P 12P 14m 18P', + '1P 5P 7m 9M 11P', + '7m 9M 11P 13M 15P', + '1P 4P 6M 7m 9M', + ], + '13sus': ['4P 7m 9M 11P 13M', '1P 7m 9M 11P 13M', '7m 11P 13M 16M 18P', '7m 11P 13M 14m 16M', '7m 9M 11P 13M 15P'], + '7b13sus': ['5P 7m 8P 11P 13m', '7m 11P 13m 14m 15P', '1P 5P 7m 11P 13m'], +}); + +// handtranscribed voicings +/* +addVoicings('ireal', { + '^7': [ + '1P 5P 7M 10M 12P', // 1 5 7 3 5 // x + // '3M 7M 9M 10M 13M', // 3 7 9 3 6 // Eb^7 aus autumn leaves + '3M 8P 10M 12P 14M', // 3 1 3 5 7 // x + '5P 8P 10M 12M 14M', // 5 1 3 5 7 // x + '3M 7M 10M 12P 15P', // 3 7 3 5 1 // x ???? + '5P 8P 10M 14M 17M', // 5 1 3 7 3 // x + // '7M 10M 13M 14M 16M', // 7 3 6 7 9 // Bb^7 aus autumn leaves + // '7M 10M 13M 16M 17M', // 7 3 6 9 3 // Ab^7 aus twinbay + // + // C,B : 5 1 3 5 7 + // Db, D, Eb: 3 1 3 5 7 + // E: 3 7 1 3 5 + // F,Gb,G: 1 5 7 3 5 + // Ab,A,Bb: 5 1 3 7 3 + ], + m7: [ + '1P 3m 5P 7m 10m', // 1 3 5 7 3 // x + // '1P 5P 7m 10m 11P', // 1 5 7 3 4 // Gm7 autumn leaves + '1P 5P 7m 10m 12P', // 1 5 7 3 5 // x + '3m 7m 8P 10m 12P', // 3 7 1 3 5 // x + '3m 7m 8P 10m 14m', // 3 7 1 3 7 // x + '5P 7m 8P 10m 14m', // 5 7 1 3 7 // x + //'5P 7m 9M 10m 14m', // 5 7 9 3 7 + //'5P 8P 11P 14m 17m', // 5 1 4 7 3 + '7m 10m 12P 14m 15P', // 7 3 5 7 1 // ? + '5P 8P 10m 14m 17m', // 5 1 3 7 3 // x + '7m 10m 12P 15P 17m', // 7 3 5 1 3 // x + // [C,D,Eb]:[3 7 1 3 7] Db + // [E,F]:[3 7 1 3 5] C + // [Db]:[5 7 1 3 7] B + // [Gb]:[1 5 7 3 5] Db + // [G,Ab]:[1 3 5 7 3] Bb + // [A]:[7 3 5 1 3] + // [Bb,B]:[5 1 3 7 3] + ], + m6: [ + '3m 5P 6M 8P 9M', // 3 5 6 1 9 // Gm6 autumn leaves + '1P 3m 5P 6M 9M', // 1 5 6 3 4 // Gm6 autumn leaves + '3m 5P 6M 8P 9M', // 3 5 6 1 9 // Gm6 autumn leaves + '3m 5P 6M 8P 11P', // 3 5 6 1 11 // Gm6 autumn leaves + '1P 5P 6M 10m 11P', // 1 5 6 3 4 // Gm6 autumn leaves + '5P 8P 10m 13M 15P', // 5 1 3 6 1 // Cm6 solar + '1P 3m 5P 6M 8P', // 1 3 5 6 1 // Cm6 solar + ], + 6: [ + '5P 8P 10M 12P 13M', // 5 1 3 5 6 + // '3M 5P 9M 10M 13M', // 3 5 9 3 6 Eb6 aus twinbay + // C: 5 1 3 5 6 + ], + 7: [ + // ohne Erweiterungen + '1P 5P 7m 8P 10M', // 1 5 7 1 3 + '3M 7m 8P 10M 12P', // 3 7 1 3 5 + '1P 7m 8P 10M 12P', // 1 7 1 3 5 + '3M 7m 8P 10M 14m', // 3 7 1 3 7 + '7m 10M 12P 14m 15P', // 7 3 5 7 1 + '3M 7m 10M 12P 15P', // 3 7 3 5 1 + '7m 10M 12P 15P 17M', // 7 3 5 1 3 + // [C, D, Eb, E, F]:[3 7 1 3 5] + // [Db, Gb]:[3 7 3 5 1] + // [G]:[1 5 7 1 3] + // [Ab]:[7 3 5 1 3] + // [A, Bb, B]:[7 3 5 7 1] + ], + '^7#11': [ + // manchmal / 3 + '3M 7M 8P 10M 11A', // 3 7 1 3 11 + '1P 5P 7M 10M 11A', // 1 5 7 3 11 + '3M 7M 8P 11A 14M', // 3 7 1 11 7 + '5P 8P 10M 11A 14M', // 5 1 3 11 7 + ], + '7#11': [ + '3M 7m 9M 11A 13M', // 3 7 9 11 6 + '7m 10M 11A 13M 16M', // 7 3 #11 6 9 // Db7#11 aus twinbay + ], + m7b5: [ + '5d 8P 10m 14m 17m', // 5 1 3 7 3 + '3m 7m 8P 10m 12d', // 3 7 1 3 5 + '5d 7m 8P 10m 14m', // 5 7 1 3 7 // x + // '7m 10m 11P 12d 14m', // 7 3 4 5 7 // Am7b5 autumn leaves + '7m 10m 12d 14m 15P', // 7 3 5 7 1 // Am7b5 autumn leaves + // C: 5 7 1 3 7 + ], + '': [ + '5P 8P 10M 12P 15P', // 5 1 3 5 1 + // C: 5 1 3 5 1 + ], + '-': [ + '5P 8P 10m 12P 15P', // 5 1 3 5 1 + // C: 5 1 3 5 1 + ], + '7b9': [ + '7m 9m 10M 14m 15P', // 7 b9 3 7 1 + '1P 3M 7m 9m 10M', // 1 3 7 9 3 // G7b9 twinbay + '3M 7m 8P 9m 14m', // 3 7 1 9 7 // x + // C: 3 7 1 9 7 + ], + '7b13': [ + '3M 7m 8P 13m 14m', // 3 7 1 13 7 // D7b13 autumn leaves + ], +}); + +addVoicings('ireal-notension', { + '^7': [ + '1P 5P 7M 10M 12P', // 1 5 7 3 5 // x + '3M 8P 10M 12P 14M', // 3 1 3 5 7 // x + '5P 8P 10M 12M 14M', // 5 1 3 5 7 // x + '3M 7M 10M 12P 15P', // 3 7 3 5 1 // x + '5P 8P 10M 14M 17M', // 5 1 3 7 3 // x + // + // C,B : 5 1 3 5 7 + // Db, D, Eb: 3 1 3 5 7 + // E: 3 7 1 3 5 + // F,Gb,G: 1 5 7 3 5 + // Ab,A,Bb: 5 1 3 7 3 + ], + m7: [ + '1P 3m 5P 7m 10m', // 1 3 5 7 3 // x + '1P 5P 7m 10m 12P', // 1 5 7 3 5 // x + '3m 7m 8P 10m 12P', // 3 7 1 3 5 // x + '3m 7m 8P 10m 14m', // 3 7 1 3 7 // x + '5P 7m 8P 10m 14m', // 5 7 1 3 7 // x + // '7m 10m 12P 14m 15P', // 7 3 5 7 1 // ? + '5P 8P 10m 14m 17m', // 5 1 3 7 3 // x + '7m 10m 12P 15P 17m', // 7 3 5 1 3 // x + // C,D,Eb: 3 7 1 3 7 Db + // E,F: 3 7 1 3 5 C + // Db: 5 7 1 3 7 B + // Gb: 1 5 7 3 5 Db + // G,Ab: 1 3 5 7 3 Bb + // A: 7 3 5 1 3 + // Bb,B: 5 1 3 7 3 + ], + 6: [ + '5P 8P 10M 12P 13M', // 5 1 3 5 6 + '3M 5P 8P 10M 13M', // 3 5 1 3 6 + // C, Db: 5 1 3 5 6 + // D, Eb: 3 5 1 3 6 + ], + 7: [ + // ohne Erweiterungen + '1P 5P 7m 8P 10M', // 1 5 7 1 3 + '3M 7m 8P 10M 12P', // 3 7 1 3 5 + // '1P 7m 8P 10M 12P', // 1 7 1 3 5 ? + //'3M 7m 8P 10M 14m', // 3 7 1 3 7 ? + '7m 10M 12P 14m 15P', // 7 3 5 7 1 + '3M 7m 10M 12P 15P', // 3 7 3 5 1 + '7m 10M 12P 15P 17M', // 7 3 5 1 3 + // [C, D, Eb, E, F]:[3 7 1 3 5] + // [Db, Gb]:[3 7 3 5 1] + // [G]:[1 5 7 1 3] + // [Ab]:[7 3 5 1 3] + // [A, Bb, B]:[7 3 5 7 1] + ], + '^7#11': [ + '5P 8P 10M 11A 14M', // 5 1 3 4 7 + '3M 7M 8P 11A 14M', // 3 7 1 4 7 + // C: 5 1 3 4 7 + // Db,D: 3 7 1 4 7 + ], + '7#11': [ + '7m 10M 11A 14m 15P', // 7 3 11 7 1 + '3M 7m 8P 10M 11A', // 3 7 1 3 11 + // C: 7 3 11 7 1 + // Db,D: 3 7 1 3 11 + ], + 9: [ + '3M 7m 8P 12P 16M', // 3 7 1 5 9 + '3M 7m 8P 9M 12P', // 3 7 1 9 5 + // C,Db: 3 7 1 5 9 + // D,Eb: 3 7 1 9 5 + ], + '7#9': [ + '3M 7m 8P 9A 14m', // 3 7 1 9 7 + // C,Db,D,Eb: 3 7 1 9 7 + ], + 13: [ + '7m 8P 9M 10M 13M', //7 1 9 3 13 + '3M 7m 8P 9M 13M', // 3 7 1 9 6 + // C,Db: 7 1 9 3 13 + // D,Eb: 3 7 1 9 6 + ], + m7b5: [ + '5d 7m 8P 10m 14m', // 5 7 1 3 7 + '3m 7m 8P 5d 7m', // 3 7 1 5 7 + // C,Db: 5 7 1 3 7 + // D,Eb: 3 7 1 5 7 + ], + '-9': [ + '3m 7m 8P 9M 12P', // 3 7 1 9 5 + '5P 8P 9M 10m 14m', // 5 1 9 3 7 + '3m 7m 9M 12P 15P', // 3 7 9 5 1 + // C,Db: 5 1 9 3 7 + // D: 3 7 9 5 1 + // Eb: 3 7 1 9 5 + ], + o7: [ + '5d 10m 12d 13M 15P', // b5 b3 b5 6 1 + '3m 8P 12d 13M 15P', // 3 1 b5 6 1 + // C: b5 b3 b5 6 1 + // D: 3 1 b5 6 1 + ], + '7sus': [ + '5P 8P 11P 12P 14m', // 5 1 4 5 7 + //C,Db,D: 5 1 4 5 7 + ], + '': [ + '3M 5P 8P 10M 12P', // 3 5 1 3 5 + '5P 8P 10M 12P 15P', // 5 1 3 5 1 + '3M 8P 10M 12P 15P', // 3 1 3 5 1 + // C: 5 1 3 5 1 + // Db,D: 3 1 3 5 1 + // Eb: 3 5 1 3 5 + ], + '-': [ + '3m 5P 8P 10m 12P', // 3 5 1 3 5 + '5P 8P 10m 12P 15P', // 5 1 3 5 1 + // C,Db: 5 1 3 5 1 + // D: 3 5 1 3 5 + // Eb: 3 5 1 3 5 + ], + '-11': [ + '5P 8P 11P 14m', + '3m 7m 9M 15P', + // C,Db: 5 1 4 7 + // D: 3 7 9 11 1 + ], + '-^7': [ + '3m 7M 8P 10m 12P', + '5P 7M 8P 10m 14M', + // C,Db: 5 7 1 3 7 + // D: 3 7 1 3 5 + ], + '7b13': [ + '3M 7m 8P 13m 14m', + // C,Db,D: 3 7 1 6 7 + ], + '7b9': [ + '3M 7m 8P 9m 14m', // 3 7 1 9 7 // x + // C,Db,D,Eb: 3 7 1 9 7 + ], +}); */ From bcf800482b740afc53d98530f021bf2e0a135d2b Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 20 Jul 2023 23:43:08 +0200 Subject: [PATCH 02/11] fix: chord typo + export only voicings --- packages/tonal/ireal.mjs | 274 +----------------------------------- packages/tonal/voicings.mjs | 4 + 2 files changed, 9 insertions(+), 269 deletions(-) diff --git a/packages/tonal/ireal.mjs b/packages/tonal/ireal.mjs index 2b2dff17..849fe2cc 100644 --- a/packages/tonal/ireal.mjs +++ b/packages/tonal/ireal.mjs @@ -1,10 +1,4 @@ -import { registerVoicings } from './voicings.mjs'; - -// these voicings have been reverse engineered from ireal pro midi data -// using this script: -// https://codesandbox.io/s/ireal-midi-scraper-meng0t?file=/src/index.js - -registerVoicings('ireal', { +export const simple = { 2: ['5P 8P 9M 12P', '1P 5P 8P 9M', '1P 5P 8P 9M 12P'], 5: ['5P 8P 12P 15P', '1P 5P 8P 12P'], 6: ['5P 8P 10M 12P 13M', '3M 5P 8P 10M 13M', '1P 5P 8P 10M 13M', '1P 5P 6M 8P 10M'], @@ -82,7 +76,6 @@ registerVoicings('ireal', { '6M 12d 13M 15P 17m', '5d 10m 13M 15P 17m', ], - 'o^7': ['5P 8P 10M 12P 14M', '5P 8P 10M 14M 17M', '3M 8P 10M 12P 14M', '1P 10M 12P 14M', '1P 5P 7M 10M 12P'], '^9': [ '3M 7M 8P 12P 16M', '3M 7M 8P 9M 12P', @@ -178,9 +171,9 @@ registerVoicings('ireal', { '9sus': ['7m 8P 9M 11P 12P', '5P 7m 8P 9M 11P', '1P 5P 7m 9M 11P', '7m 8P 11P 12P 16M'], '13sus': ['5P 7m 9M 11P 13M', '1P 4P 6M 7m 9M', '1P 7m 9M 11P 13M', '7m 9M 11P 13M 15P'], '7b13sus': ['5P 7m 8P 11P 13m', '1P 5P 7m 11P 13m', '7m 11P 13m 14m 15P'], -}); +}; -registerVoicings('ireal-ext', { +export const complex = { 2: ['5P 8P 9M 12P 15P', '5P 8P 9M 12P 13M', '1P 5P 6M 8P 9M', '1P 5P 8P 9M 12P'], 5: ['5P 8P 12P 15P', '1P 5P 8P 12P', '1P 5P 8P 9M 12P', '5P 8P 12P 15P 16M'], 6: ['3M 6M 9M 12P 15P', '3M 5P 9M 10M 13M', '5P 8P 9M 10M 13M', '1P 5P 9M 10M 13M', '1P 5P 6M 9M 10M'], @@ -330,17 +323,7 @@ registerVoicings('ireal-ext', { '6M 12d 13M 15P 17m', '5d 10m 13M 15P 17m', ], - 'o^7': [ - '3M 7M 10M 13M 16M', - '3M 7M 9M 13M 14M', - '3M 7M 9M 10M 13M', - '3M 7M 9M 10M 12P', - '1P 7M 9M 10M 13M', - '7M 10M 13M 16M 19P', - '1P 6M 7M 9M 10M', - '7M 10M 13M 16M 17M', - '7M 10M 13M 14M 16M', - ], + '^9': [ '3M 7M 10M 13M 16M', '3M 7M 9M 13M 14M', @@ -498,251 +481,4 @@ registerVoicings('ireal-ext', { ], '13sus': ['4P 7m 9M 11P 13M', '1P 7m 9M 11P 13M', '7m 11P 13M 16M 18P', '7m 11P 13M 14m 16M', '7m 9M 11P 13M 15P'], '7b13sus': ['5P 7m 8P 11P 13m', '7m 11P 13m 14m 15P', '1P 5P 7m 11P 13m'], -}); - -// handtranscribed voicings -/* -addVoicings('ireal', { - '^7': [ - '1P 5P 7M 10M 12P', // 1 5 7 3 5 // x - // '3M 7M 9M 10M 13M', // 3 7 9 3 6 // Eb^7 aus autumn leaves - '3M 8P 10M 12P 14M', // 3 1 3 5 7 // x - '5P 8P 10M 12M 14M', // 5 1 3 5 7 // x - '3M 7M 10M 12P 15P', // 3 7 3 5 1 // x ???? - '5P 8P 10M 14M 17M', // 5 1 3 7 3 // x - // '7M 10M 13M 14M 16M', // 7 3 6 7 9 // Bb^7 aus autumn leaves - // '7M 10M 13M 16M 17M', // 7 3 6 9 3 // Ab^7 aus twinbay - // - // C,B : 5 1 3 5 7 - // Db, D, Eb: 3 1 3 5 7 - // E: 3 7 1 3 5 - // F,Gb,G: 1 5 7 3 5 - // Ab,A,Bb: 5 1 3 7 3 - ], - m7: [ - '1P 3m 5P 7m 10m', // 1 3 5 7 3 // x - // '1P 5P 7m 10m 11P', // 1 5 7 3 4 // Gm7 autumn leaves - '1P 5P 7m 10m 12P', // 1 5 7 3 5 // x - '3m 7m 8P 10m 12P', // 3 7 1 3 5 // x - '3m 7m 8P 10m 14m', // 3 7 1 3 7 // x - '5P 7m 8P 10m 14m', // 5 7 1 3 7 // x - //'5P 7m 9M 10m 14m', // 5 7 9 3 7 - //'5P 8P 11P 14m 17m', // 5 1 4 7 3 - '7m 10m 12P 14m 15P', // 7 3 5 7 1 // ? - '5P 8P 10m 14m 17m', // 5 1 3 7 3 // x - '7m 10m 12P 15P 17m', // 7 3 5 1 3 // x - // [C,D,Eb]:[3 7 1 3 7] Db - // [E,F]:[3 7 1 3 5] C - // [Db]:[5 7 1 3 7] B - // [Gb]:[1 5 7 3 5] Db - // [G,Ab]:[1 3 5 7 3] Bb - // [A]:[7 3 5 1 3] - // [Bb,B]:[5 1 3 7 3] - ], - m6: [ - '3m 5P 6M 8P 9M', // 3 5 6 1 9 // Gm6 autumn leaves - '1P 3m 5P 6M 9M', // 1 5 6 3 4 // Gm6 autumn leaves - '3m 5P 6M 8P 9M', // 3 5 6 1 9 // Gm6 autumn leaves - '3m 5P 6M 8P 11P', // 3 5 6 1 11 // Gm6 autumn leaves - '1P 5P 6M 10m 11P', // 1 5 6 3 4 // Gm6 autumn leaves - '5P 8P 10m 13M 15P', // 5 1 3 6 1 // Cm6 solar - '1P 3m 5P 6M 8P', // 1 3 5 6 1 // Cm6 solar - ], - 6: [ - '5P 8P 10M 12P 13M', // 5 1 3 5 6 - // '3M 5P 9M 10M 13M', // 3 5 9 3 6 Eb6 aus twinbay - // C: 5 1 3 5 6 - ], - 7: [ - // ohne Erweiterungen - '1P 5P 7m 8P 10M', // 1 5 7 1 3 - '3M 7m 8P 10M 12P', // 3 7 1 3 5 - '1P 7m 8P 10M 12P', // 1 7 1 3 5 - '3M 7m 8P 10M 14m', // 3 7 1 3 7 - '7m 10M 12P 14m 15P', // 7 3 5 7 1 - '3M 7m 10M 12P 15P', // 3 7 3 5 1 - '7m 10M 12P 15P 17M', // 7 3 5 1 3 - // [C, D, Eb, E, F]:[3 7 1 3 5] - // [Db, Gb]:[3 7 3 5 1] - // [G]:[1 5 7 1 3] - // [Ab]:[7 3 5 1 3] - // [A, Bb, B]:[7 3 5 7 1] - ], - '^7#11': [ - // manchmal / 3 - '3M 7M 8P 10M 11A', // 3 7 1 3 11 - '1P 5P 7M 10M 11A', // 1 5 7 3 11 - '3M 7M 8P 11A 14M', // 3 7 1 11 7 - '5P 8P 10M 11A 14M', // 5 1 3 11 7 - ], - '7#11': [ - '3M 7m 9M 11A 13M', // 3 7 9 11 6 - '7m 10M 11A 13M 16M', // 7 3 #11 6 9 // Db7#11 aus twinbay - ], - m7b5: [ - '5d 8P 10m 14m 17m', // 5 1 3 7 3 - '3m 7m 8P 10m 12d', // 3 7 1 3 5 - '5d 7m 8P 10m 14m', // 5 7 1 3 7 // x - // '7m 10m 11P 12d 14m', // 7 3 4 5 7 // Am7b5 autumn leaves - '7m 10m 12d 14m 15P', // 7 3 5 7 1 // Am7b5 autumn leaves - // C: 5 7 1 3 7 - ], - '': [ - '5P 8P 10M 12P 15P', // 5 1 3 5 1 - // C: 5 1 3 5 1 - ], - '-': [ - '5P 8P 10m 12P 15P', // 5 1 3 5 1 - // C: 5 1 3 5 1 - ], - '7b9': [ - '7m 9m 10M 14m 15P', // 7 b9 3 7 1 - '1P 3M 7m 9m 10M', // 1 3 7 9 3 // G7b9 twinbay - '3M 7m 8P 9m 14m', // 3 7 1 9 7 // x - // C: 3 7 1 9 7 - ], - '7b13': [ - '3M 7m 8P 13m 14m', // 3 7 1 13 7 // D7b13 autumn leaves - ], -}); - -addVoicings('ireal-notension', { - '^7': [ - '1P 5P 7M 10M 12P', // 1 5 7 3 5 // x - '3M 8P 10M 12P 14M', // 3 1 3 5 7 // x - '5P 8P 10M 12M 14M', // 5 1 3 5 7 // x - '3M 7M 10M 12P 15P', // 3 7 3 5 1 // x - '5P 8P 10M 14M 17M', // 5 1 3 7 3 // x - // - // C,B : 5 1 3 5 7 - // Db, D, Eb: 3 1 3 5 7 - // E: 3 7 1 3 5 - // F,Gb,G: 1 5 7 3 5 - // Ab,A,Bb: 5 1 3 7 3 - ], - m7: [ - '1P 3m 5P 7m 10m', // 1 3 5 7 3 // x - '1P 5P 7m 10m 12P', // 1 5 7 3 5 // x - '3m 7m 8P 10m 12P', // 3 7 1 3 5 // x - '3m 7m 8P 10m 14m', // 3 7 1 3 7 // x - '5P 7m 8P 10m 14m', // 5 7 1 3 7 // x - // '7m 10m 12P 14m 15P', // 7 3 5 7 1 // ? - '5P 8P 10m 14m 17m', // 5 1 3 7 3 // x - '7m 10m 12P 15P 17m', // 7 3 5 1 3 // x - // C,D,Eb: 3 7 1 3 7 Db - // E,F: 3 7 1 3 5 C - // Db: 5 7 1 3 7 B - // Gb: 1 5 7 3 5 Db - // G,Ab: 1 3 5 7 3 Bb - // A: 7 3 5 1 3 - // Bb,B: 5 1 3 7 3 - ], - 6: [ - '5P 8P 10M 12P 13M', // 5 1 3 5 6 - '3M 5P 8P 10M 13M', // 3 5 1 3 6 - // C, Db: 5 1 3 5 6 - // D, Eb: 3 5 1 3 6 - ], - 7: [ - // ohne Erweiterungen - '1P 5P 7m 8P 10M', // 1 5 7 1 3 - '3M 7m 8P 10M 12P', // 3 7 1 3 5 - // '1P 7m 8P 10M 12P', // 1 7 1 3 5 ? - //'3M 7m 8P 10M 14m', // 3 7 1 3 7 ? - '7m 10M 12P 14m 15P', // 7 3 5 7 1 - '3M 7m 10M 12P 15P', // 3 7 3 5 1 - '7m 10M 12P 15P 17M', // 7 3 5 1 3 - // [C, D, Eb, E, F]:[3 7 1 3 5] - // [Db, Gb]:[3 7 3 5 1] - // [G]:[1 5 7 1 3] - // [Ab]:[7 3 5 1 3] - // [A, Bb, B]:[7 3 5 7 1] - ], - '^7#11': [ - '5P 8P 10M 11A 14M', // 5 1 3 4 7 - '3M 7M 8P 11A 14M', // 3 7 1 4 7 - // C: 5 1 3 4 7 - // Db,D: 3 7 1 4 7 - ], - '7#11': [ - '7m 10M 11A 14m 15P', // 7 3 11 7 1 - '3M 7m 8P 10M 11A', // 3 7 1 3 11 - // C: 7 3 11 7 1 - // Db,D: 3 7 1 3 11 - ], - 9: [ - '3M 7m 8P 12P 16M', // 3 7 1 5 9 - '3M 7m 8P 9M 12P', // 3 7 1 9 5 - // C,Db: 3 7 1 5 9 - // D,Eb: 3 7 1 9 5 - ], - '7#9': [ - '3M 7m 8P 9A 14m', // 3 7 1 9 7 - // C,Db,D,Eb: 3 7 1 9 7 - ], - 13: [ - '7m 8P 9M 10M 13M', //7 1 9 3 13 - '3M 7m 8P 9M 13M', // 3 7 1 9 6 - // C,Db: 7 1 9 3 13 - // D,Eb: 3 7 1 9 6 - ], - m7b5: [ - '5d 7m 8P 10m 14m', // 5 7 1 3 7 - '3m 7m 8P 5d 7m', // 3 7 1 5 7 - // C,Db: 5 7 1 3 7 - // D,Eb: 3 7 1 5 7 - ], - '-9': [ - '3m 7m 8P 9M 12P', // 3 7 1 9 5 - '5P 8P 9M 10m 14m', // 5 1 9 3 7 - '3m 7m 9M 12P 15P', // 3 7 9 5 1 - // C,Db: 5 1 9 3 7 - // D: 3 7 9 5 1 - // Eb: 3 7 1 9 5 - ], - o7: [ - '5d 10m 12d 13M 15P', // b5 b3 b5 6 1 - '3m 8P 12d 13M 15P', // 3 1 b5 6 1 - // C: b5 b3 b5 6 1 - // D: 3 1 b5 6 1 - ], - '7sus': [ - '5P 8P 11P 12P 14m', // 5 1 4 5 7 - //C,Db,D: 5 1 4 5 7 - ], - '': [ - '3M 5P 8P 10M 12P', // 3 5 1 3 5 - '5P 8P 10M 12P 15P', // 5 1 3 5 1 - '3M 8P 10M 12P 15P', // 3 1 3 5 1 - // C: 5 1 3 5 1 - // Db,D: 3 1 3 5 1 - // Eb: 3 5 1 3 5 - ], - '-': [ - '3m 5P 8P 10m 12P', // 3 5 1 3 5 - '5P 8P 10m 12P 15P', // 5 1 3 5 1 - // C,Db: 5 1 3 5 1 - // D: 3 5 1 3 5 - // Eb: 3 5 1 3 5 - ], - '-11': [ - '5P 8P 11P 14m', - '3m 7m 9M 15P', - // C,Db: 5 1 4 7 - // D: 3 7 9 11 1 - ], - '-^7': [ - '3m 7M 8P 10m 12P', - '5P 7M 8P 10m 14M', - // C,Db: 5 7 1 3 7 - // D: 3 7 1 3 5 - ], - '7b13': [ - '3M 7m 8P 13m 14m', - // C,Db,D: 3 7 1 6 7 - ], - '7b9': [ - '3M 7m 8P 9m 14m', // 3 7 1 9 7 // x - // C,Db,D,Eb: 3 7 1 9 7 - ], -}); */ +}; diff --git a/packages/tonal/voicings.mjs b/packages/tonal/voicings.mjs index bd11a961..db0fa3a8 100644 --- a/packages/tonal/voicings.mjs +++ b/packages/tonal/voicings.mjs @@ -7,6 +7,7 @@ This program is free software: you can redistribute it and/or modify it under th import { stack, register } from '@strudel.cycles/core'; import { renderVoicing } from './tonleiter.mjs'; import _voicings from 'chord-voicings'; +import { complex, simple } from './ireal.mjs'; const { dictionaryVoicing, minTopNoteDiff } = _voicings.default || _voicings; // parcel module resolution fuckup const lefthand = { @@ -206,3 +207,6 @@ export const voicing = register('voicing', function (pat) { }) .outerJoin(); }); + +registerVoicings('ireal', simple); +registerVoicings('ireal-ext', complex); From 1e62554dfb7115a20921b85b87e404ec61b1847c Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 20 Jul 2023 23:43:53 +0200 Subject: [PATCH 03/11] add links --- packages/tonal/ireal.mjs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/tonal/ireal.mjs b/packages/tonal/ireal.mjs index 849fe2cc..43940c9a 100644 --- a/packages/tonal/ireal.mjs +++ b/packages/tonal/ireal.mjs @@ -1,3 +1,6 @@ +// explore them here: https://codesandbox.io/s/voicing-explorer-ireal-47tkx5?file=/src/ireal.js:0-16036 +// scraped via: https://codesandbox.io/s/ireal-midi-scraper-forked-kpqnzf?file=/src/index.js + export const simple = { 2: ['5P 8P 9M 12P', '1P 5P 8P 9M', '1P 5P 8P 9M 12P'], 5: ['5P 8P 12P 15P', '1P 5P 8P 12P'], From d5647c6760049204da5f178abb7551a8da1a5683 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sun, 23 Jul 2023 09:51:21 +0200 Subject: [PATCH 04/11] sort voicings by top note --- packages/tonal/ireal.mjs | 535 +++++++++++++++++++-------------------- 1 file changed, 267 insertions(+), 268 deletions(-) diff --git a/packages/tonal/ireal.mjs b/packages/tonal/ireal.mjs index 43940c9a..2004047f 100644 --- a/packages/tonal/ireal.mjs +++ b/packages/tonal/ireal.mjs @@ -2,486 +2,485 @@ // scraped via: https://codesandbox.io/s/ireal-midi-scraper-forked-kpqnzf?file=/src/index.js export const simple = { - 2: ['5P 8P 9M 12P', '1P 5P 8P 9M', '1P 5P 8P 9M 12P'], - 5: ['5P 8P 12P 15P', '1P 5P 8P 12P'], - 6: ['5P 8P 10M 12P 13M', '3M 5P 8P 10M 13M', '1P 5P 8P 10M 13M', '1P 5P 6M 8P 10M'], + 2: ['1P 5P 8P 9M', '5P 8P 9M 12P', '1P 5P 8P 9M 12P'], + 5: ['1P 5P 8P 12P', '5P 8P 12P 15P'], + 6: ['1P 5P 6M 8P 10M', '5P 8P 10M 12P 13M', '3M 5P 8P 10M 13M', '1P 5P 8P 10M 13M'], 7: [ - '3M 7m 10M 12P 15P', - '7m 10M 12P 14m 15P', - '3M 7m 8P 10M 14m', + '1P 5P 7m 8P 10M', '3M 7m 8P 10M 12P', '1P 7m 8P 10M 12P', - '1P 5P 7m 8P 10M', + '3M 7m 8P 10M 14m', + '3M 7m 10M 12P 15P', + '7m 10M 12P 14m 15P', '7m 10M 12P 15P 17M', ], 9: [ - '3M 7m 8P 12P 16M', - '7m 10M 12P 15P 16M', + '1P 5P 7m 9M 10M', '3M 7m 8P 9M 12P', '1P 7m 9M 10M 12P', - '1P 5P 7m 9M 10M', '7m 9M 10M 14m 15P', + '3M 7m 8P 12P 16M', + '7m 10M 12P 15P 16M', ], - 11: ['7m 8P 9M 11P 12P', '7m 8P 11P 12P 16M', '5P 7m 8P 9M 11P', '1P 5P 7m 9M 11P'], - 13: ['7m 8P 9M 10M 13M', '3M 7m 8P 9M 13M', '1P 6M 7m 9M 10M', '1P 7m 9M 10M 13M', '7m 9M 10M 13M 15P'], - 69: ['5P 8P 9M 10M 13M', '3M 5P 8P 9M 13M', '1P 5P 9M 10M 13M', '1P 5P 6M 9M 10M'], - add9: ['3M 8P 9M 12P 15P', '3M 8P 9M 10M 12P', '1P 5P 9M 10M 12P', '1P 5P 8P 9M 10M', '5P 8P 9M 12P 17M'], + 11: ['5P 7m 8P 9M 11P', '1P 5P 7m 9M 11P', '7m 8P 9M 11P 12P', '7m 8P 11P 12P 16M'], + 13: ['1P 6M 7m 9M 10M', '7m 8P 9M 10M 13M', '3M 7m 8P 9M 13M', '1P 7m 9M 10M 13M', '7m 9M 10M 13M 15P'], + 69: ['1P 5P 6M 9M 10M', '5P 8P 9M 10M 13M', '3M 5P 8P 9M 13M', '1P 5P 9M 10M 13M'], + add9: ['1P 5P 8P 9M 10M', '3M 8P 9M 10M 12P', '1P 5P 9M 10M 12P', '3M 8P 9M 12P 15P', '5P 8P 9M 12P 17M'], '+': [ - '3M 8P 10M 13m 15P', + '1P 3M 6m 8P 10M', '3M 6m 8P 10M 13m', '1P 6m 8P 10M 13m', - '1P 3M 6m 8P 10M', - '6m 10M 13m 15P 17M', + '3M 8P 10M 13m 15P', '6m 8P 10M 13m 15P', + '6m 10M 13m 15P 17M', ], - o: ['5d 8P 10m 12d 15P', '3m 8P 10m 12d 15P', '1P 5d 8P 10m 12d'], + o: ['1P 5d 8P 10m 12d', '5d 8P 10m 12d 15P', '3m 8P 10m 12d 15P'], h: [ - '5d 7m 8P 10m 14m', - '3m 7m 8P 12d 14m', + '3m 5d 7m 8P 10m', '3m 7m 8P 10m 12d', '1P 7m 10m 12d', - '3m 5d 7m 8P 10m', - '7m 10m 12d 14m 15P', - '5d 8P 10m 14m 17m', - '5d 8P 10m 12d 14m', - ], - sus: ['5P 8P 11P 12P 15P', '5P 8P 11P 12P', '1P 4P 5P 8P', '1P 4P 5P 8P 11P'], - '^': ['5P 8P 10M 12P 14M', '3M 8P 10M 12P 14M', '1P 10M 12P 14M', '1P 5P 7M 10M 12P', '5P 8P 10M 14M 17M'], - '-': ['5P 8P 10m 12P 15P', '3m 5P 8P 10m 12P', '1P 3m 5P 8P 10m', '1P 5P 8P 10m 12P'], - '^7': ['5P 8P 10M 12P 14M', '3M 8P 10M 12P 14M', '1P 5P 7M 10M 12P', '1P 10M 12P 14M', '5P 8P 10M 14M 17M'], - '-7': [ - '5P 7m 8P 10m 14m', - '3m 7m 8P 10m 14m', - '3m 7m 8P 10m 12P', - '1P 5P 7m 10m 12P', - '1P 3m 5P 7m 10m', - '7m 10m 12P 15P 17m', - '7m 10m 12P 14m 15P', - '5P 8P 10m 14m 17m', - ], - '7sus': ['5P 8P 11P 12P 14m', '7m 8P 11P 12P 14m', '1P 5P 7m 8P 11P', '7m 11P 12P 14m 18P'], - h7: [ '5d 7m 8P 10m 14m', '3m 7m 8P 12d 14m', - '3m 7m 8P 10m 12d', - '3m 5d 7m 8P 10m', - '7m 10m 12d 14m 15P', '5d 8P 10m 12d 14m', + '7m 10m 12d 14m 15P', + '5d 8P 10m 14m 17m', + ], + sus: ['1P 4P 5P 8P', '1P 4P 5P 8P 11P', '5P 8P 11P 12P', '5P 8P 11P 12P 15P'], + '^': ['1P 5P 7M 10M 12P', '5P 8P 10M 12P 14M', '3M 8P 10M 12P 14M', '1P 10M 12P 14M', '5P 8P 10M 14M 17M'], + '-': ['1P 3m 5P 8P 10m', '3m 5P 8P 10m 12P', '1P 5P 8P 10m 12P', '5P 8P 10m 12P 15P'], + '^7': ['1P 5P 7M 10M 12P', '5P 8P 10M 12P 14M', '3M 8P 10M 12P 14M', '1P 10M 12P 14M', '5P 8P 10M 14M 17M'], + '-7': [ + '1P 3m 5P 7m 10m', + '3m 7m 8P 10m 12P', + '1P 5P 7m 10m 12P', + '5P 7m 8P 10m 14m', + '3m 7m 8P 10m 14m', + '7m 10m 12P 14m 15P', + '7m 10m 12P 15P 17m', + '5P 8P 10m 14m 17m', + ], + '7sus': ['1P 5P 7m 8P 11P', '5P 8P 11P 12P 14m', '7m 8P 11P 12P 14m', '7m 11P 12P 14m 18P'], + h7: [ + '3m 5d 7m 8P 10m', + '3m 7m 8P 10m 12d', + '5d 7m 8P 10m 14m', + '3m 7m 8P 12d 14m', + '5d 8P 10m 12d 14m', + '7m 10m 12d 14m 15P', '5d 8P 10m 14m 17m', ], o7: [ - '5d 10m 12d 13M 15P', - '3m 8P 12d 13M 15P', + '1P 6M 8P 10m 12d', '1P 6M 10m 12d 13M', '3m 8P 10m 12d 13M', - '1P 6M 8P 10m 12d', - '6M 12d 15P 17m 19d', + '5d 10m 12d 13M 15P', + '3m 8P 12d 13M 15P', '6M 12d 13M 15P 17m', '5d 10m 13M 15P 17m', + '6M 12d 15P 17m 19d', ], '^9': [ - '3M 7M 8P 12P 16M', - '3M 7M 8P 9M 12P', '1P 5P 7M 9M 10M', + '3M 7M 8P 9M 12P', '1P 7M 9M 10M 12P', + '3M 7M 8P 12P 16M', '7M 8P 10M 12P 16M', '5P 8P 10M 14M 16M', ], - '^13': ['3M 7M 8P 13M 16M', '3M 7M 8P 9M 13M', '7M 8P 10M 13M 16M', '1P 7M 9M 10M 13M', '1P 6M 7M 9M 10M'], - '^7#11': ['5P 8P 10M 12d 14M', '3M 7M 8P 12d 14M', '3M 7M 8P 10M 12d', '1P 5P 7M 10M 12d'], - '^9#11': ['3M 8P 9M 12d 14M', '1P 3M 5d 7M 9M', '3M 7M 8P 9M 12d', '1P 7M 9M 10M 12d'], + '^13': ['1P 6M 7M 9M 10M', '3M 7M 8P 9M 13M', '1P 7M 9M 10M 13M', '3M 7M 8P 13M 16M', '7M 8P 10M 13M 16M'], + '^7#11': ['3M 7M 8P 10M 12d', '1P 5P 7M 10M 12d', '5P 8P 10M 12d 14M', '3M 7M 8P 12d 14M'], + '^9#11': ['1P 3M 5d 7M 9M', '3M 7M 8P 9M 12d', '1P 7M 9M 10M 12d', '3M 8P 9M 12d 14M'], '^7#5': ['6m 7M 8P 10M 13m', '3M 7M 8P 10M 13m', '1P 6m 7M 10M 13m'], '-6': [ - '5P 8P 10m 13M 15P', + '1P 3m 5P 6M 8P', + '3m 5P 6M 8P 10m', + '1P 5P 6M 8P 10m', '5P 8P 10m 12P 13M', '3m 5P 8P 10m 13M', '1P 5P 8P 10m 13M', - '3m 5P 6M 8P 10m', - '1P 5P 6M 8P 10m', - '1P 3m 5P 6M 8P', + '5P 8P 10m 13M 15P', ], '-69': [ - '5P 8P 9M 10m 13M', - '5P 8P 10m 13M 16M', - '3m 5P 8P 9M 13M', - '3m 6M 9M 10m 12P', - '1P 5P 9M 10m 13M', '3m 5P 6M 8P 9M', '1P 3m 5P 6M 9M', + '3m 6M 9M 10m 12P', + '5P 8P 9M 10m 13M', + '3m 5P 8P 9M 13M', + '1P 5P 9M 10m 13M', + '5P 8P 10m 13M 16M', ], - '-^7': ['5P 7M 8P 10m 14M', '3m 7M 8P 10m 12P', '1P 3m 5P 7M 10m', '1P 5P 7M 10m 12P', '5P 8P 10m 14M 17m'], - '-^9': ['5P 8P 9M 10m 14M', '3m 7M 8P 9M 12P', '1P 7M 9M 10m 12P', '1P 3m 5P 7M 9M'], + '-^7': ['1P 3m 5P 7M 10m', '3m 7M 8P 10m 12P', '1P 5P 7M 10m 12P', '5P 7M 8P 10m 14M', '5P 8P 10m 14M 17m'], + '-^9': ['1P 3m 5P 7M 9M', '3m 7M 8P 9M 12P', '1P 7M 9M 10m 12P', '5P 8P 9M 10m 14M'], '-9': [ - '5P 8P 9M 10m 14m', - '7m 10m 12P 15P 16M', - '3m 7m 9M 12P 15P', - '3m 7m 8P 9M 12P', '3m 5P 7m 8P 9M', '1P 3m 5P 7m 9M', + '3m 7m 8P 9M 12P', + '5P 8P 9M 10m 14m', + '3m 7m 9M 12P 15P', + '7m 10m 12P 15P 16M', ], - '-add9': ['5P 8P 9M 10m 12P', '3m 5P 8P 9M 12P', '1P 3m 5P 9M', '1P 2M 3m 5P 8P'], + '-add9': ['1P 2M 3m 5P 8P', '1P 3m 5P 9M', '5P 8P 9M 10m 12P', '3m 5P 8P 9M 12P'], '-11': [ + '3m 7m 8P 9M 11P', + '1P 3m 7m 9M 11P', + '1P 4P 7m 10m 12P', '5P 8P 11P 14m', '3m 7m 9M 11P 15P', - '3m 7m 8P 9M 11P', - '1P 4P 7m 10m 12P', - '1P 3m 7m 9M 11P', - '7m 10m 12P 15P 18P', '5P 8P 11P 14m 16M', + '7m 10m 12P 15P 18P', ], '-7b5': [ + '3m 5d 7m 8P 10m', + '3m 7m 8P 10m 12d', + '1P 5d 7m 10m 12d', '5d 7m 8P 10m 14m', '3m 7m 8P 12d 14m', - '3m 7m 8P 10m 12d', - '3m 5d 7m 8P 10m', '7m 10m 12d 14m 15P', - '1P 5d 7m 10m 12d', '5d 8P 10m 14m 17m', ], - h9: ['5d 8P 9M 10m 14m', '3m 7m 8P 9M 12d', '1P 7m 9M 10m 12d', '7m 10m 12d 15P 16M'], - '-b6': ['5P 8P 10m 13m 15P', '5P 8P 10m 13m', '3m 5P 8P 10m 13m', '1P 5P 8P 10m 13m', '1P 5P 6m 8P 10m'], - '-#5': ['6m 8P 10m 13m 15P', '3m 6m 8P 10m 13m', '1P 6m 8P 10m 13m'], - '7b9': ['3M 7m 8P 9m 14m', '1P 3M 7m 9m 10M', '3M 7m 8P 9m 10M', '7m 9m 10M 14m 15P'], - '7#9': ['3M 7m 8P 10m 14m', '1P 3M 7m 10m', '7m 10m 10M 14m 15P'], - '7#11': ['7m 10M 12d 14m 15P', '3M 7m 8P 10M 12d', '1P 3M 7m 10M 12d'], - '7b5': ['7m 10M 12d 14m 15P', '3M 7m 8P 10M 12d', '1P 3M 7m 10M 12d'], - '7#5': ['3M 7m 8P 13m 14m', '7m 10M 13m 14m 15P', '3M 7m 8P 10M 13m', '1P 3M 7m 10M 13m'], - '9#11': ['7m 10M 12d 15P 16M', '3M 7m 8P 9M 12d', '1P 7m 9M 10M 12d'], - '9b5': ['7m 10M 12d 15P 16M', '3M 7m 8P 9M 12d', '1P 7m 9M 10M 12d'], - '9#5': ['3M 7m 9M 13m 14m', '3M 7m 9M 10M 13m', '1P 7m 9M 10M 13m', '7m 10M 13m 16M 17M', '7m 10M 13m 14m 16M'], - '7b13': ['3M 7m 8P 13m 14m', '7m 10M 13m 14m 15P', '3M 7m 8P 10M 13m', '1P 3M 7m 10M 13m'], - '7#9#5': ['3M 7m 10m 13m 15P', '1P 3M 7m 10m 13m', '7m 10M 13m 15P 17m'], - '7#9b5': ['3M 7m 10m 12d 15P', '7m 10M 12d 15P 17m', '1P 3M 7m 10m 12d'], - '7#9#11': ['3M 7m 10m 12d 15P', '7m 10M 12d 15P 17m', '1P 3M 7m 10m 12d'], - '7b9#11': ['7m 8P 10M 12d 16m', '3M 7m 8P 9m 12d', '1P 7m 9m 10M 12d'], - '7b9b5': ['7m 8P 10M 12d 16m', '3M 7m 8P 9m 12d', '1P 7m 9m 10M 12d'], - '7b9#5': ['7m 9m 10M 13m 15P', '3M 7m 8P 9m 13m', '1P 7m 9m 10M 13m'], - '7b9#9': ['7m 8P 10M 16m 17m', '3M 7m 8P 9m 10m', '1P 3M 7m 9m 10m'], - '7b9b13': ['7m 9m 10M 13m 15P', '3M 7m 8P 9m 13m', '1P 7m 9m 10M 13m'], + h9: ['3m 7m 8P 9M 12d', '1P 7m 9M 10m 12d', '5d 8P 9M 10m 14m', '7m 10m 12d 15P 16M'], + '-b6': ['1P 5P 6m 8P 10m', '5P 8P 10m 13m', '3m 5P 8P 10m 13m', '1P 5P 8P 10m 13m', '5P 8P 10m 13m 15P'], + '-#5': ['3m 6m 8P 10m 13m', '1P 6m 8P 10m 13m', '6m 8P 10m 13m 15P'], + '7b9': ['1P 3M 7m 9m 10M', '3M 7m 8P 9m 10M', '3M 7m 8P 9m 14m', '7m 9m 10M 14m 15P'], + '7#9': ['1P 3M 7m 10m', '3M 7m 8P 10m 14m', '7m 10m 10M 14m 15P'], + '7#11': ['3M 7m 8P 10M 12d', '1P 3M 7m 10M 12d', '7m 10M 12d 14m 15P'], + '7b5': ['3M 7m 8P 10M 12d', '1P 3M 7m 10M 12d', '7m 10M 12d 14m 15P'], + '7#5': ['3M 7m 8P 10M 13m', '1P 3M 7m 10M 13m', '3M 7m 8P 13m 14m', '7m 10M 13m 14m 15P'], + '9#11': ['3M 7m 8P 9M 12d', '1P 7m 9M 10M 12d', '7m 10M 12d 15P 16M'], + '9b5': ['3M 7m 8P 9M 12d', '1P 7m 9M 10M 12d', '7m 10M 12d 15P 16M'], + '9#5': ['3M 7m 9M 10M 13m', '1P 7m 9M 10M 13m', '3M 7m 9M 13m 14m', '7m 10M 13m 14m 16M', '7m 10M 13m 16M 17M'], + '7b13': ['3M 7m 8P 10M 13m', '1P 3M 7m 10M 13m', '3M 7m 8P 13m 14m', '7m 10M 13m 14m 15P'], + '7#9#5': ['1P 3M 7m 10m 13m', '3M 7m 10m 13m 15P', '7m 10M 13m 15P 17m'], + '7#9b5': ['1P 3M 7m 10m 12d', '3M 7m 10m 12d 15P', '7m 10M 12d 15P 17m'], + '7#9#11': ['1P 3M 7m 10m 12d', '3M 7m 10m 12d 15P', '7m 10M 12d 15P 17m'], + '7b9#11': ['3M 7m 8P 9m 12d', '1P 7m 9m 10M 12d', '7m 8P 10M 12d 16m'], + '7b9b5': ['3M 7m 8P 9m 12d', '1P 7m 9m 10M 12d', '7m 8P 10M 12d 16m'], + '7b9#5': ['3M 7m 8P 9m 13m', '1P 7m 9m 10M 13m', '7m 9m 10M 13m 15P'], + '7b9#9': ['3M 7m 8P 9m 10m', '1P 3M 7m 9m 10m', '7m 8P 10M 16m 17m'], + '7b9b13': ['3M 7m 8P 9m 13m', '1P 7m 9m 10M 13m', '7m 9m 10M 13m 15P'], '7alt': [ + '3M 7m 8P 9m 12d', + '3M 7m 8P 10m 13m', + '1P 7m 10m 10M 13m', '3M 7m 9m 12d 15P', '3M 7m 10m 13m 15P', - '3M 7m 8P 10m 13m', - '3M 7m 8P 9m 12d', - '1P 7m 10m 10M 13m', '7m 10M 12d 15P 17m', ], - '13#11': ['3M 7m 9M 12d 13M', '1P 6M 7m 10M 12d', '7m 10M 12d 13M 16M'], - '13b9': ['3M 7m 10M 13M 16m', '1P 3M 6M 7m 9m', '3M 7m 9m 10M 13M', '1P 6M 7m 9m 10M', '7m 10M 13M 16m 17M'], - '13#9': ['3M 7m 8P 10m 13M', '1P 3M 6M 7m 10m', '7m 10M 13M 14m 17m'], - '7b9sus': ['7m 8P 11P 14m 16m', '5P 7m 8P 9m 11P', '1P 5P 7m 9m 11P'], - '7susadd3': ['5P 8P 10M 11P 14m', '1P 4P 5P 7m 10M', '7m 11P 12P 15P 17M'], - '9sus': ['7m 8P 9M 11P 12P', '5P 7m 8P 9M 11P', '1P 5P 7m 9M 11P', '7m 8P 11P 12P 16M'], - '13sus': ['5P 7m 9M 11P 13M', '1P 4P 6M 7m 9M', '1P 7m 9M 11P 13M', '7m 9M 11P 13M 15P'], + '13#11': ['1P 6M 7m 10M 12d', '3M 7m 9M 12d 13M', '7m 10M 12d 13M 16M'], + '13b9': ['1P 3M 6M 7m 9m', '1P 6M 7m 9m 10M', '3M 7m 9m 10M 13M', '3M 7m 10M 13M 16m', '7m 10M 13M 16m 17M'], + '13#9': ['1P 3M 6M 7m 10m', '3M 7m 8P 10m 13M', '7m 10M 13M 14m 17m'], + '7b9sus': ['5P 7m 8P 9m 11P', '1P 5P 7m 9m 11P', '7m 8P 11P 14m 16m'], + '7susadd3': ['1P 4P 5P 7m 10M', '5P 8P 10M 11P 14m', '7m 11P 12P 15P 17M'], + '9sus': ['5P 7m 8P 9M 11P', '1P 5P 7m 9M 11P', '7m 8P 9M 11P 12P', '7m 8P 11P 12P 16M'], + '13sus': ['1P 4P 6M 7m 9M', '5P 7m 9M 11P 13M', '1P 7m 9M 11P 13M', '7m 9M 11P 13M 15P'], '7b13sus': ['5P 7m 8P 11P 13m', '1P 5P 7m 11P 13m', '7m 11P 13m 14m 15P'], }; export const complex = { - 2: ['5P 8P 9M 12P 15P', '5P 8P 9M 12P 13M', '1P 5P 6M 8P 9M', '1P 5P 8P 9M 12P'], - 5: ['5P 8P 12P 15P', '1P 5P 8P 12P', '1P 5P 8P 9M 12P', '5P 8P 12P 15P 16M'], - 6: ['3M 6M 9M 12P 15P', '3M 5P 9M 10M 13M', '5P 8P 9M 10M 13M', '1P 5P 9M 10M 13M', '1P 5P 6M 9M 10M'], + 2: ['1P 5P 6M 8P 9M', '1P 5P 8P 9M 12P', '5P 8P 9M 12P 13M', '5P 8P 9M 12P 15P'], + 5: ['1P 5P 8P 12P', '1P 5P 8P 9M 12P', '5P 8P 12P 15P', '5P 8P 12P 15P 16M'], + 6: ['1P 5P 6M 9M 10M', '3M 5P 9M 10M 13M', '5P 8P 9M 10M 13M', '1P 5P 9M 10M 13M', '3M 6M 9M 12P 15P'], 7: [ - '3M 7m 10M 12P 15P', - '3M 7m 8P 10M 14m', '3M 7m 8P 10M 12P', '1P 7m 8P 10M 12P', - '7m 10M 14m 17M 19P', - '7m 10M 12P 15P 17M', + '3M 7m 8P 10M 14m', + '3M 7m 10M 12P 15P', '7m 10M 12P 14m 15P', + '7m 10M 12P 15P 17M', + '7m 10M 14m 17M 19P', ], 9: [ - '3M 7m 9M 12P 15P', - '3M 7m 9M 10M 13M', - '3M 7m 9M 10M 12P', - '1P 7m 9M 10M 13M', - '7m 10M 13M 16M 19P', '1P 6M 7m 9M 10M', - '7m 10M 13M 16M 17M', - '7m 10M 12P 13M 16M', - ], - 11: ['5P 8P 9M 11P 14m', '4P 6M 7m 9M 11P', '1P 5P 7m 9M 11P', '7m 11P 12P 14m 18P', '7m 9M 11P 13M 15P'], - 13: [ - '3M 7m 10M 13M 16M', - '3M 7m 9M 13M 15P', + '3M 7m 9M 10M 12P', '3M 7m 9M 10M 13M', - '7m 10M 13M 16M 19P', - '7m 10M 13M 16M 17M', + '1P 7m 9M 10M 13M', + '3M 7m 9M 12P 15P', '7m 10M 12P 13M 16M', + '7m 10M 13M 16M 17M', + '7m 10M 13M 16M 19P', ], - 69: ['3M 6M 9M 12P 15P', '3M 5P 9M 10M 13M', '1P 5P 9M 10M 13M', '1P 5P 6M 9M 10M'], + 11: ['4P 6M 7m 9M 11P', '1P 5P 7m 9M 11P', '5P 8P 9M 11P 14m', '7m 9M 11P 13M 15P', '7m 11P 12P 14m 18P'], + 13: [ + '3M 7m 9M 10M 13M', + '3M 7m 9M 13M 15P', + '3M 7m 10M 13M 16M', + '7m 10M 12P 13M 16M', + '7m 10M 13M 16M 17M', + '7m 10M 13M 16M 19P', + ], + 69: ['1P 5P 6M 9M 10M', '3M 5P 9M 10M 13M', '1P 5P 9M 10M 13M', '3M 6M 9M 12P 15P'], add9: [ - '5P 8P 9M 10M 15P', - '3M 8P 9M 12P 15P', + '1P 5P 8P 9M 10M', '1P 5P 9M 10M 12P', '3M 8P 9M 10M 12P', - '1P 5P 8P 9M 10M', + '5P 8P 9M 10M 15P', + '3M 8P 9M 12P 15P', '5P 8P 9M 12P 17M', ], '+': [ - '3M 8P 10M 13m 15P', - '3M 8P 9M 10M 13m', '1P 6m 8P 9M 10M', + '3M 8P 9M 10M 13m', '1P 6m 8P 10M 13m', - '6m 10M 13m 15P 17M', + '3M 8P 10M 13m 15P', '6m 10M 13m 15P 16M', + '6m 10M 13m 15P 17M', ], o: [ - '5d 10m 12d 13M 15P', - '3m 8P 12d 13M 15P', + '1P 6M 8P 10m 12d', '1P 6M 10m 12d 13M', '3m 8P 10m 12d 13M', - '1P 6M 8P 10m 12d', - '6M 12d 15P 17m 19d', + '5d 10m 12d 13M 15P', + '3m 8P 12d 13M 15P', '6M 12d 13M 15P 17m', '5d 10m 13M 15P 17m', + '6M 12d 15P 17m 19d', ], h: [ - '5d 8P 10m 14m 17m', - '5d 8P 10m 11P 14m', - '3m 7m 8P 12d 14m', '5d 7m 8P 10m 11P', '3m 5d 7m 8P 11P', - '1P 7m 10m 12d', '1P 5d 7m 10m 11P', + '1P 7m 10m 12d', + '5d 8P 10m 11P 14m', + '3m 7m 8P 12d 14m', '7m 10m 12d 14m 15P', + '5d 8P 10m 14m 17m', ], sus: [ - '5P 8P 11P 13M 15P', '1P 4P 5P 8P 9M', - '5P 8P 11P 12P 13M', - '5P 8P 9M 11P 12P', '1P 5P 8P 9M 11P', '1P 4P 5P 8P 11P', + '5P 8P 9M 11P 12P', + '5P 8P 11P 12P 13M', + '5P 8P 11P 13M 15P', ], '^': [ - '3M 7M 10M 13M 16M', - '3M 7M 9M 13M 14M', - '3M 7M 9M 10M 13M', + '1P 6M 7M 9M 10M', '3M 7M 9M 10M 12P', + '3M 7M 9M 10M 13M', '3M 7M 9M 12P 13M', '1P 7M 9M 10M 13M', - '7M 10M 13M 16M 19P', - '1P 6M 7M 9M 10M', - '7M 10M 13M 16M 17M', + '3M 7M 9M 13M 14M', + '3M 7M 10M 13M 16M', '7M 10M 13M 14M 16M', + '7M 10M 13M 16M 17M', + '7M 10M 13M 16M 19P', ], '-': [ - '5P 8P 10m 12P 15P', - '5P 8P 9M 10m 11P', - '3m 5P 8P 10m 12P', - '3m 5P 8P 9M 11P', - '1P 5P 9M 10m 12P', - '1P 3m 5P 9M 11P', '1P 3m 5P 8P 10m', + '5P 8P 9M 10m 11P', + '3m 5P 8P 9M 11P', + '1P 3m 5P 9M 11P', + '3m 5P 8P 10m 12P', + '1P 5P 9M 10m 12P', + '5P 8P 10m 12P 15P', ], '^7': [ - '3M 7M 10M 13M 16M', - '3M 7M 9M 13M 14M', - '3M 7M 9M 10M 13M', + '1P 6M 7M 9M 10M', '3M 7M 9M 10M 12P', + '3M 7M 9M 10M 13M', '3M 7M 9M 12P 13M', '1P 7M 9M 10M 13M', - '7M 10M 13M 16M 19P', - '1P 6M 7M 9M 10M', - '7M 10M 13M 16M 17M', + '3M 7M 9M 13M 14M', + '3M 7M 10M 13M 16M', '7M 10M 13M 14M 16M', + '7M 10M 13M 16M 17M', + '7M 10M 13M 16M 19P', ], '-7': [ - '5P 7m 9M 10m 14m', - '3m 7m 8P 10m 14m', - '3m 7m 9M 10m 12P', - '3m 7m 8P 10m 11P', - '1P 5P 7m 10m 12P', - '1P 5P 7m 10m 11P', '1P 3m 5P 7m 9M', '1P 3m 5P 7m 10m', + '3m 7m 8P 10m 11P', + '1P 5P 7m 10m 11P', + '3m 7m 9M 10m 12P', + '1P 5P 7m 10m 12P', + '5P 7m 9M 10m 14m', + '3m 7m 8P 10m 14m', '7m 10m 12P 15P 16M', '5P 8P 11P 14m 17m', ], '7sus': [ - '5P 8P 9M 11P 14m', '1P 4P 6M 7m 9M', '4P 6M 7m 9M 11P', '1P 5P 7m 9M 11P', - '7m 11P 12P 14m 18P', + '5P 8P 9M 11P 14m', '7m 9M 11P 13M 15P', + '7m 11P 12P 14m 18P', ], h7: [ - '5d 8P 10m 14m 17m', - '5d 8P 10m 11P 14m', - '3m 7m 8P 12d 14m', '5d 7m 8P 10m 11P', '3m 5d 7m 8P 11P', - '1P 7m 10m 12d', '1P 5d 7m 10m 11P', + '1P 7m 10m 12d', + '5d 8P 10m 11P 14m', + '3m 7m 8P 12d 14m', '7m 10m 12d 14m 15P', + '5d 8P 10m 14m 17m', ], o7: [ - '5d 10m 12d 13M 15P', - '3m 8P 12d 13M 15P', + '1P 6M 8P 10m 12d', '3m 8P 10m 12d 13M', '1P 6M 10m 12d 13M', - '1P 6M 8P 10m 12d', - '6M 12d 15P 17m 19d', + '5d 10m 12d 13M 15P', + '3m 8P 12d 13M 15P', '6M 12d 13M 15P 17m', '5d 10m 13M 15P 17m', + '6M 12d 15P 17m 19d', ], - '^9': [ - '3M 7M 10M 13M 16M', - '3M 7M 9M 13M 14M', + '1P 6M 7M 9M 10M', '3M 7M 9M 12P 13M', '3M 7M 9M 10M 13M', '1P 7M 9M 10M 13M', - '7M 10M 13M 16M 19P', - '1P 6M 7M 9M 10M', - '7M 10M 13M 16M 17M', + '3M 7M 9M 13M 14M', + '3M 7M 10M 13M 16M', '7M 10M 13M 14M 16M', + '7M 10M 13M 16M 17M', + '7M 10M 13M 16M 19P', ], '^13': [ - '3M 7M 10M 13M 16M', - '3M 7M 9M 13M 14M', + '1P 6M 7M 9M 10M', '3M 7M 9M 10M 13M', '1P 7M 9M 10M 13M', - '7M 10M 13M 16M 19P', - '1P 6M 7M 9M 10M', - '7M 10M 13M 16M 17M', + '3M 7M 9M 13M 14M', + '3M 7M 10M 13M 16M', '7M 10M 13M 14M 16M', + '7M 10M 13M 16M 17M', + '7M 10M 13M 16M 19P', ], '^7#11': [ - '3M 7M 10M 12d 14M', - '3M 7M 9M 12d 13M', '3M 7M 9M 10M 12d', '1P 7M 9M 10M 12d', - '7M 10M 12d 14M 17M', - '7M 10M 12d 13M 16M', + '3M 7M 9M 12d 13M', + '3M 7M 10M 12d 14M', '7M 10M 12d 13M 14M', + '7M 10M 12d 13M 16M', + '7M 10M 12d 14M 17M', ], '^9#11': [ - '3M 7M 9M 12d 14M', - '3M 7M 9M 12d 13M', + '1P 3M 5d 7M 9M', '3M 7M 9M 10M 12d', '1P 7M 9M 10M 12d', - '1P 3M 5d 7M 9M', + '3M 7M 9M 12d 13M', + '3M 7M 9M 12d 14M', '7M 10M 12d 13M 16M', ], - '^7#5': ['3M 7M 10M 13m 14M', '3M 7M 9M 10M 13m', '1P 6m 7M 10M 13m', '7M 10M 13m 14M 17M', '7M 10M 13m 14M 16M'], + '^7#5': ['3M 7M 9M 10M 13m', '1P 6m 7M 10M 13m', '3M 7M 10M 13m 14M', '7M 10M 13m 14M 16M', '7M 10M 13m 14M 17M'], '-6': [ - '5P 8P 10m 11P 13M', - '3m 5P 8P 9M 13M', - '3m 5P 6M 8P 11P', '3m 5P 6M 8P 9M', '1P 3m 5P 6M 9M', + '3m 5P 6M 8P 11P', + '5P 8P 10m 11P 13M', + '3m 5P 8P 9M 13M', '5P 8P 10m 13M 16M', ], '-69': [ - '5P 8P 9M 10m 13M', - '3m 5P 8P 9M 13M', - '3m 6M 9M 10m 12P', - '1P 5P 9M 10m 13M', '3m 5P 6M 8P 9M', '1P 3m 5P 6M 9M', + '3m 6M 9M 10m 12P', + '5P 8P 9M 10m 13M', + '3m 5P 8P 9M 13M', + '1P 5P 9M 10m 13M', '5P 8P 10m 13M 16M', ], '-^7': [ + '1P 3m 5P 7M 9M', + '3m 7M 9M 10m 11P', + '1P 5P 7M 10m 11P', + '3m 7M 9M 10m 12P', '3m 7M 9M 12P 14M', '7M 10m 11P 12P 14M', - '3m 7M 9M 10m 11P', - '3m 7M 9M 10m 12P', - '1P 5P 7M 10m 11P', '7M 10m 12P 14M 16M', - '1P 3m 5P 7M 9M', ], '-^9': [ - '3m 7M 9M 12P 14M', - '7M 10m 11P 12P 14M', - '3m 7M 9M 10m 12P', + '1P 3m 5P 7M 9M', '3m 7M 9M 10m 11P', '1P 5P 7M 10m 11P', - '1P 3m 5P 7M 9M', + '3m 7M 9M 10m 12P', + '3m 7M 9M 12P 14M', + '7M 10m 11P 12P 14M', '7M 10m 12P 14M 16M', ], '-9': [ - '3m 7m 9M 12P 15P', - '3m 7m 9M 10m 14m', - '3m 7m 9M 10m 12P', '3m 7m 9M 10m 11P', '1P 3m 7m 9M 11P', - '7m 10m 12P 16M 18P', + '3m 7m 9M 10m 12P', + '3m 7m 9M 10m 14m', + '3m 7m 9M 12P 15P', '7m 10m 11P 14m 16M', - ], - '-add9': ['5P 8P 9M 10m 12P', '3m 5P 8P 9M 12P', '1P 2M 3m 5P 8P', '1P 3m 5P 9M'], - '-11': [ - '5P 8P 11P 14m', - '7m 9M 10m 11P', - '3m 7m 9M 11P 14m', - '3m 7m 9M 11P 12P', - '3m 5P 7m 9M 11P', - '1P 4P 7m 10m 12P', - '7m 10m 11P 16M 21m', '7m 10m 12P 16M 18P', - '5P 8P 11P 14m 16M', + ], + '-add9': ['1P 2M 3m 5P 8P', '1P 3m 5P 9M', '5P 8P 9M 10m 12P', '3m 5P 8P 9M 12P'], + '-11': [ + '7m 9M 10m 11P', + '3m 5P 7m 9M 11P', + '3m 7m 9M 11P 12P', + '1P 4P 7m 10m 12P', '7m 9M 10m 11P 12P', + '5P 8P 11P 14m', + '3m 7m 9M 11P 14m', + '5P 8P 11P 14m 16M', + '7m 10m 12P 16M 18P', + '7m 10m 11P 16M 21m', ], '-7b5': [ - '5d 8P 10m 14m 17m', - '5d 8P 10m 11P 14m', - '3m 7m 8P 12d 14m', '5d 7m 8P 10m 11P', '3m 5d 7m 8P 11P', - '1P 7m 10m 12d', '1P 5d 7m 10m 11P', + '1P 7m 10m 12d', + '5d 8P 10m 11P 14m', + '3m 7m 8P 12d 14m', '7m 10m 12d 14m 15P', + '5d 8P 10m 14m 17m', ], h9: [ - '5d 8P 9M 10m 14m', - '3m 7m 9M 12d 14m', '3m 5d 7m 9M 11P', '1P 7m 9M 10m 12d', - '7m 10m 12d 14m 16M', + '5d 8P 9M 10m 14m', + '3m 7m 9M 12d 14m', '7m 10m 11P 12d 14m', + '7m 10m 12d 14m 16M', ], - '-b6': ['5P 8P 10m 11P 13m', '1P 3m 5P 6m 8P', '3m 5P 8P 11P 13m'], - '-#5': ['6m 8P 10m 13m 15P', '3m 6m 8P 11P 13m', '1P 6m 8P 10m 13m'], - '7b9': ['3M 7m 8P 9m 14m', '7m 9m 10M 14m 15P', '3M 7m 8P 9m 10M', '1P 3M 7m 9m 10M'], - '7#9': ['3M 7m 10m 12P 14m', '3M 7m 10m 10M 12P', '1P 3M 7m 10m', '7m 10M 12P 14m 17m'], - '7#11': ['3M 7m 9M 12d 13M', '1P 3M 7m 9M 12d', '7m 10M 12d 13M 16M'], - '7b5': ['3M 7m 9M 12d 13M', '7m 10M 12d 13M 16M', '1P 3M 7m 9M 12d'], - '7#5': ['3M 7m 8P 13m 14m', '3M 7m 8P 10M 13m', '1P 3M 7m 10M 13m', '7m 10M 13m 14m 17M', '7m 10M 13m 14m 15P'], - '9#11': ['7m 10M 12d 15P 16M', '3M 7m 8P 9M 12d', '1P 7m 9M 10M 12d'], - '9b5': ['7m 10M 12d 15P 16M', '3M 7m 8P 9M 12d', '1P 7m 9M 10M 12d'], - '9#5': ['3M 7m 9M 13m 14m', '3M 7m 9M 10M 13m', '1P 7m 9M 10M 13m', '7m 10M 13m 14m 16M', '7m 10M 13m 16M 17M'], - '7b13': ['3M 7m 8P 13m 14m', '7m 10M 13m 14m 17M', '3M 7m 8P 10M 13m', '1P 3M 7m 10M 13m', '7m 10M 13m 14m 15P'], - '7#9#5': ['3M 7m 10m 13m 14m', '3M 7m 10m 10M 13m', '7m 10M 13m 14m 17m'], - '7#9b5': ['3M 7m 10m 12d 14m', '3M 7m 10m 10M 12d', '7m 10M 12d 14m 17m'], - '7#9#11': ['3M 7m 10m 12d 14m', '3M 7m 10m 10M 12d', '7m 10M 12d 14m 17m'], - '7b9#11': ['3M 7m 9m 12d 14m', '3M 7m 9m 10M 12d', '7m 10M 12d 14m 16m', '7m 8P 10M 12d 16m'], - '7b9b5': ['3M 7m 9m 12d 14m', '3M 7m 9m 10M 12d', '7m 8P 10M 12d 16m', '7m 10M 12d 14m 16m'], - '7b9#5': ['3M 7m 10M 13m 16m', '3M 7m 9m 10M 13m', '7m 10M 13m 14m 16m', '1P 7m 9m 10M 13m', '7m 10M 13m 16m 17M'], - '7b9#9': ['3M 7m 10m 13m 16m', '1P 3M 7m 9m 10m', '7m 10M 13m 16m 17m'], - '7b9b13': ['3M 7m 10M 13m 16m', '3M 7m 9m 10M 13m', '7m 10M 13m 14m 16m', '1P 7m 9m 10M 13m', '7m 10M 13m 16m 17M'], + '-b6': ['1P 3m 5P 6m 8P', '5P 8P 10m 11P 13m', '3m 5P 8P 11P 13m'], + '-#5': ['3m 6m 8P 11P 13m', '1P 6m 8P 10m 13m', '6m 8P 10m 13m 15P'], + '7b9': ['3M 7m 8P 9m 10M', '1P 3M 7m 9m 10M', '3M 7m 8P 9m 14m', '7m 9m 10M 14m 15P'], + '7#9': ['1P 3M 7m 10m', '3M 7m 10m 10M 12P', '3M 7m 10m 12P 14m', '7m 10M 12P 14m 17m'], + '7#11': ['1P 3M 7m 9M 12d', '3M 7m 9M 12d 13M', '7m 10M 12d 13M 16M'], + '7b5': ['1P 3M 7m 9M 12d', '3M 7m 9M 12d 13M', '7m 10M 12d 13M 16M'], + '7#5': ['3M 7m 8P 10M 13m', '1P 3M 7m 10M 13m', '3M 7m 8P 13m 14m', '7m 10M 13m 14m 15P', '7m 10M 13m 14m 17M'], + '9#11': ['3M 7m 8P 9M 12d', '1P 7m 9M 10M 12d', '7m 10M 12d 15P 16M'], + '9b5': ['3M 7m 8P 9M 12d', '1P 7m 9M 10M 12d', '7m 10M 12d 15P 16M'], + '9#5': ['3M 7m 9M 10M 13m', '1P 7m 9M 10M 13m', '3M 7m 9M 13m 14m', '7m 10M 13m 14m 16M', '7m 10M 13m 16M 17M'], + '7b13': ['3M 7m 8P 10M 13m', '1P 3M 7m 10M 13m', '3M 7m 8P 13m 14m', '7m 10M 13m 14m 15P', '7m 10M 13m 14m 17M'], + '7#9#5': ['3M 7m 10m 10M 13m', '3M 7m 10m 13m 14m', '7m 10M 13m 14m 17m'], + '7#9b5': ['3M 7m 10m 10M 12d', '3M 7m 10m 12d 14m', '7m 10M 12d 14m 17m'], + '7#9#11': ['3M 7m 10m 10M 12d', '3M 7m 10m 12d 14m', '7m 10M 12d 14m 17m'], + '7b9#11': ['3M 7m 9m 10M 12d', '3M 7m 9m 12d 14m', '7m 10M 12d 14m 16m', '7m 8P 10M 12d 16m'], + '7b9b5': ['3M 7m 9m 10M 12d', '3M 7m 9m 12d 14m', '7m 8P 10M 12d 16m', '7m 10M 12d 14m 16m'], + '7b9#5': ['3M 7m 9m 10M 13m', '1P 7m 9m 10M 13m', '3M 7m 10M 13m 16m', '7m 10M 13m 14m 16m', '7m 10M 13m 16m 17M'], + '7b9#9': ['1P 3M 7m 9m 10m', '3M 7m 10m 13m 16m', '7m 10M 13m 16m 17m'], + '7b9b13': ['3M 7m 9m 10M 13m', '1P 7m 9m 10M 13m', '3M 7m 10M 13m 16m', '7m 10M 13m 14m 16m', '7m 10M 13m 16m 17M'], '7alt': [ - '3M 7m 10m 13m 15P', - '3M 7m 9m 12d 14m', '3M 7m 8P 10m 13m', '3M 7m 9m 10m 13m', - '7m 10M 13m 16m 19d', - '7m 10M 13m 15P 17m', + '3M 7m 9m 12d 14m', + '3M 7m 10m 13m 15P', '7m 10M 12d 14m 16m', + '7m 10M 13m 15P 17m', + '7m 10M 13m 16m 19d', ], '13#11': ['3M 7m 9M 12d 13M', '7m 10M 12d 13M 16M'], - '13b9': ['3M 7m 10M 13M 16m', '7m 10M 13M 16m 17M', '3M 7m 9m 10M 13M'], + '13b9': ['3M 7m 9m 10M 13M', '3M 7m 10M 13M 16m', '7m 10M 13M 16m 17M'], '13#9': ['3M 7m 10m 10M 13M', '7m 10M 13M 14m 17m'], - '7b9sus': ['7m 8P 11P 14m 16m', '5P 7m 8P 9m 11P', '1P 5P 7m 9m 11P'], - '7susadd3': ['5P 8P 10M 11P 14m', '1P 4P 5P 7m 10M', '7m 11P 12P 15P 17M'], + '7b9sus': ['5P 7m 8P 9m 11P', '1P 5P 7m 9m 11P', '7m 8P 11P 14m 16m'], + '7susadd3': ['1P 4P 5P 7m 10M', '5P 8P 10M 11P 14m', '7m 11P 12P 15P 17M'], '9sus': [ - '5P 8P 9M 11P 14m', - '4P 6M 7m 9M 11P', - '7m 11P 12P 14m 18P', - '1P 5P 7m 9M 11P', - '7m 9M 11P 13M 15P', '1P 4P 6M 7m 9M', + '4P 6M 7m 9M 11P', + '1P 5P 7m 9M 11P', + '5P 8P 9M 11P 14m', + '7m 9M 11P 13M 15P', + '7m 11P 12P 14m 18P', ], - '13sus': ['4P 7m 9M 11P 13M', '1P 7m 9M 11P 13M', '7m 11P 13M 16M 18P', '7m 11P 13M 14m 16M', '7m 9M 11P 13M 15P'], - '7b13sus': ['5P 7m 8P 11P 13m', '7m 11P 13m 14m 15P', '1P 5P 7m 11P 13m'], + '13sus': ['4P 7m 9M 11P 13M', '1P 7m 9M 11P 13M', '7m 9M 11P 13M 15P', '7m 11P 13M 14m 16M', '7m 11P 13M 16M 18P'], + '7b13sus': ['5P 7m 8P 11P 13m', '1P 5P 7m 11P 13m', '7m 11P 13m 14m 15P'], }; From 45b91cdea553de7b5cdd91d701cb87231f3ebb52 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sun, 23 Jul 2023 09:57:34 +0200 Subject: [PATCH 05/11] fix: major chords --- packages/tonal/ireal.mjs | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/packages/tonal/ireal.mjs b/packages/tonal/ireal.mjs index 2004047f..ae4438c8 100644 --- a/packages/tonal/ireal.mjs +++ b/packages/tonal/ireal.mjs @@ -46,7 +46,7 @@ export const simple = { '5d 8P 10m 14m 17m', ], sus: ['1P 4P 5P 8P', '1P 4P 5P 8P 11P', '5P 8P 11P 12P', '5P 8P 11P 12P 15P'], - '^': ['1P 5P 7M 10M 12P', '5P 8P 10M 12P 14M', '3M 8P 10M 12P 14M', '1P 10M 12P 14M', '5P 8P 10M 14M 17M'], + '^': ['1P 5P 8P 10M', '3M 5P 8P 10M 12P', '1P 5P 8P 10M 12P', '5P 8P 10M 12P 15P', '3M 8P 10M 12P 15P'], '-': ['1P 3m 5P 8P 10m', '3m 5P 8P 10m 12P', '1P 5P 8P 10m 12P', '5P 8P 10m 12P 15P'], '^7': ['1P 5P 7M 10M 12P', '5P 8P 10M 12P 14M', '3M 8P 10M 12P 14M', '1P 10M 12P 14M', '5P 8P 10M 14M 17M'], '-7': [ @@ -254,16 +254,12 @@ export const complex = { '5P 8P 11P 13M 15P', ], '^': [ - '1P 6M 7M 9M 10M', - '3M 7M 9M 10M 12P', - '3M 7M 9M 10M 13M', - '3M 7M 9M 12P 13M', - '1P 7M 9M 10M 13M', - '3M 7M 9M 13M 14M', - '3M 7M 10M 13M 16M', - '7M 10M 13M 14M 16M', - '7M 10M 13M 16M 17M', - '7M 10M 13M 16M 19P', + '1P 3M 5P 6M 9M', + '3M 5P 9M 10M 12P', + '1P 5P 8P 10M 12P', + '1P 5P 8P 10M 13M', + '5P 9M 10M 12P 15P', + '3M 8P 10M 13M 15P', ], '-': [ '1P 3m 5P 8P 10m', From 6377378a3de2b70cf799a6dc3f288f703e7a458b Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sun, 23 Jul 2023 13:31:47 +0200 Subject: [PATCH 06/11] sort by topnote and then by bottom note (easier to track diffs) --- packages/tonal/ireal.mjs | 289 ++++++++++++++++++++++----------------- 1 file changed, 161 insertions(+), 128 deletions(-) diff --git a/packages/tonal/ireal.mjs b/packages/tonal/ireal.mjs index ae4438c8..71a51fe9 100644 --- a/packages/tonal/ireal.mjs +++ b/packages/tonal/ireal.mjs @@ -2,13 +2,13 @@ // scraped via: https://codesandbox.io/s/ireal-midi-scraper-forked-kpqnzf?file=/src/index.js export const simple = { - 2: ['1P 5P 8P 9M', '5P 8P 9M 12P', '1P 5P 8P 9M 12P'], + 2: ['1P 5P 8P 9M', '1P 5P 8P 9M 12P', '5P 8P 9M 12P'], 5: ['1P 5P 8P 12P', '5P 8P 12P 15P'], - 6: ['1P 5P 6M 8P 10M', '5P 8P 10M 12P 13M', '3M 5P 8P 10M 13M', '1P 5P 8P 10M 13M'], + 6: ['1P 5P 6M 8P 10M', '1P 5P 8P 10M 13M', '3M 5P 8P 10M 13M', '5P 8P 10M 12P 13M'], 7: [ '1P 5P 7m 8P 10M', - '3M 7m 8P 10M 12P', '1P 7m 8P 10M 12P', + '3M 7m 8P 10M 12P', '3M 7m 8P 10M 14m', '3M 7m 10M 12P 15P', '7m 10M 12P 14m 15P', @@ -16,55 +16,55 @@ export const simple = { ], 9: [ '1P 5P 7m 9M 10M', - '3M 7m 8P 9M 12P', '1P 7m 9M 10M 12P', + '3M 7m 8P 9M 12P', '7m 9M 10M 14m 15P', '3M 7m 8P 12P 16M', '7m 10M 12P 15P 16M', ], - 11: ['5P 7m 8P 9M 11P', '1P 5P 7m 9M 11P', '7m 8P 9M 11P 12P', '7m 8P 11P 12P 16M'], - 13: ['1P 6M 7m 9M 10M', '7m 8P 9M 10M 13M', '3M 7m 8P 9M 13M', '1P 7m 9M 10M 13M', '7m 9M 10M 13M 15P'], - 69: ['1P 5P 6M 9M 10M', '5P 8P 9M 10M 13M', '3M 5P 8P 9M 13M', '1P 5P 9M 10M 13M'], - add9: ['1P 5P 8P 9M 10M', '3M 8P 9M 10M 12P', '1P 5P 9M 10M 12P', '3M 8P 9M 12P 15P', '5P 8P 9M 12P 17M'], + 11: ['1P 5P 7m 9M 11P', '5P 7m 8P 9M 11P', '7m 8P 9M 11P 12P', '7m 8P 11P 12P 16M'], + 13: ['1P 6M 7m 9M 10M', '1P 7m 9M 10M 13M', '3M 7m 8P 9M 13M', '7m 8P 9M 10M 13M', '7m 9M 10M 13M 15P'], + 69: ['1P 5P 6M 9M 10M', '1P 5P 9M 10M 13M', '3M 5P 8P 9M 13M', '5P 8P 9M 10M 13M'], + add9: ['1P 5P 8P 9M 10M', '1P 5P 9M 10M 12P', '3M 8P 9M 10M 12P', '3M 8P 9M 12P 15P', '5P 8P 9M 12P 17M'], '+': [ '1P 3M 6m 8P 10M', - '3M 6m 8P 10M 13m', '1P 6m 8P 10M 13m', + '3M 6m 8P 10M 13m', '3M 8P 10M 13m 15P', '6m 8P 10M 13m 15P', '6m 10M 13m 15P 17M', ], - o: ['1P 5d 8P 10m 12d', '5d 8P 10m 12d 15P', '3m 8P 10m 12d 15P'], + o: ['1P 5d 8P 10m 12d', '3m 8P 10m 12d 15P', '5d 8P 10m 12d 15P'], h: [ '3m 5d 7m 8P 10m', '3m 7m 8P 10m 12d', - '1P 7m 10m 12d', - '5d 7m 8P 10m 14m', '3m 7m 8P 12d 14m', - '5d 8P 10m 12d 14m', + '5d 7m 8P 10m 14m', '7m 10m 12d 14m 15P', '5d 8P 10m 14m 17m', ], sus: ['1P 4P 5P 8P', '1P 4P 5P 8P 11P', '5P 8P 11P 12P', '5P 8P 11P 12P 15P'], - '^': ['1P 5P 8P 10M', '3M 5P 8P 10M 12P', '1P 5P 8P 10M 12P', '5P 8P 10M 12P 15P', '3M 8P 10M 12P 15P'], - '-': ['1P 3m 5P 8P 10m', '3m 5P 8P 10m 12P', '1P 5P 8P 10m 12P', '5P 8P 10m 12P 15P'], - '^7': ['1P 5P 7M 10M 12P', '5P 8P 10M 12P 14M', '3M 8P 10M 12P 14M', '1P 10M 12P 14M', '5P 8P 10M 14M 17M'], + '^': ['1P 5P 8P 10M', '1P 5P 8P 10M 12P', '3M 5P 8P 10M 12P', '3M 8P 10M 12P 15P', '5P 8P 10M 12P 15P'], + '-': ['1P 3m 5P 8P 10m', '1P 5P 8P 10m 12P', '3m 5P 8P 10m 12P', '5P 8P 10m 12P 15P'], + '^7': ['1P 5P 7M 10M 12P', '1P 10M 12P 14M', '3M 8P 10M 12P 14M', '5P 8P 10M 12P 14M', '5P 8P 10M 14M 17M'], '-7': [ '1P 3m 5P 7m 10m', - '3m 7m 8P 10m 12P', '1P 5P 7m 10m 12P', - '5P 7m 8P 10m 14m', + '3m 7m 8P 10m 12P', '3m 7m 8P 10m 14m', + '5P 7m 8P 10m 14m', '7m 10m 12P 14m 15P', - '7m 10m 12P 15P 17m', '5P 8P 10m 14m 17m', + '7m 10m 12P 15P 17m', ], '7sus': ['1P 5P 7m 8P 11P', '5P 8P 11P 12P 14m', '7m 8P 11P 12P 14m', '7m 11P 12P 14m 18P'], h7: [ '3m 5d 7m 8P 10m', + '1P 5d 7m 10m 12d', + '1P 7m 10m 12d', '3m 7m 8P 10m 12d', - '5d 7m 8P 10m 14m', '3m 7m 8P 12d 14m', + '5d 7m 8P 10m 14m', '5d 8P 10m 12d 14m', '7m 10m 12d 14m 15P', '5d 8P 10m 14m 17m', @@ -73,56 +73,56 @@ export const simple = { '1P 6M 8P 10m 12d', '1P 6M 10m 12d 13M', '3m 8P 10m 12d 13M', - '5d 10m 12d 13M 15P', '3m 8P 12d 13M 15P', - '6M 12d 13M 15P 17m', + '5d 10m 12d 13M 15P', '5d 10m 13M 15P 17m', + '6M 12d 13M 15P 17m', '6M 12d 15P 17m 19d', ], '^9': [ '1P 5P 7M 9M 10M', - '3M 7M 8P 9M 12P', '1P 7M 9M 10M 12P', + '3M 7M 8P 9M 12P', '3M 7M 8P 12P 16M', - '7M 8P 10M 12P 16M', '5P 8P 10M 14M 16M', + '7M 8P 10M 12P 16M', ], - '^13': ['1P 6M 7M 9M 10M', '3M 7M 8P 9M 13M', '1P 7M 9M 10M 13M', '3M 7M 8P 13M 16M', '7M 8P 10M 13M 16M'], - '^7#11': ['3M 7M 8P 10M 12d', '1P 5P 7M 10M 12d', '5P 8P 10M 12d 14M', '3M 7M 8P 12d 14M'], - '^9#11': ['1P 3M 5d 7M 9M', '3M 7M 8P 9M 12d', '1P 7M 9M 10M 12d', '3M 8P 9M 12d 14M'], - '^7#5': ['6m 7M 8P 10M 13m', '3M 7M 8P 10M 13m', '1P 6m 7M 10M 13m'], + '^13': ['1P 6M 7M 9M 10M', '1P 7M 9M 10M 13M', '3M 7M 8P 9M 13M', '3M 7M 8P 13M 16M', '7M 8P 10M 13M 16M'], + '^7#11': ['1P 5P 7M 10M 12d', '3M 7M 8P 10M 12d', '3M 7M 8P 12d 14M', '5P 8P 10M 12d 14M'], + '^9#11': ['1P 3M 5d 7M 9M', '1P 7M 9M 10M 12d', '3M 7M 8P 9M 12d', '3M 8P 9M 12d 14M'], + '^7#5': ['1P 6m 7M 10M 13m', '3M 7M 8P 10M 13m', '6m 7M 8P 10M 13m'], '-6': [ '1P 3m 5P 6M 8P', - '3m 5P 6M 8P 10m', '1P 5P 6M 8P 10m', - '5P 8P 10m 12P 13M', - '3m 5P 8P 10m 13M', + '3m 5P 6M 8P 10m', '1P 5P 8P 10m 13M', + '3m 5P 8P 10m 13M', + '5P 8P 10m 12P 13M', '5P 8P 10m 13M 15P', ], '-69': [ - '3m 5P 6M 8P 9M', '1P 3m 5P 6M 9M', + '3m 5P 6M 8P 9M', '3m 6M 9M 10m 12P', - '5P 8P 9M 10m 13M', - '3m 5P 8P 9M 13M', '1P 5P 9M 10m 13M', + '3m 5P 8P 9M 13M', + '5P 8P 9M 10m 13M', '5P 8P 10m 13M 16M', ], - '-^7': ['1P 3m 5P 7M 10m', '3m 7M 8P 10m 12P', '1P 5P 7M 10m 12P', '5P 7M 8P 10m 14M', '5P 8P 10m 14M 17m'], - '-^9': ['1P 3m 5P 7M 9M', '3m 7M 8P 9M 12P', '1P 7M 9M 10m 12P', '5P 8P 9M 10m 14M'], + '-^7': ['1P 3m 5P 7M 10m', '1P 5P 7M 10m 12P', '3m 7M 8P 10m 12P', '5P 7M 8P 10m 14M', '5P 8P 10m 14M 17m'], + '-^9': ['1P 3m 5P 7M 9M', '1P 7M 9M 10m 12P', '3m 7M 8P 9M 12P', '5P 8P 9M 10m 14M'], '-9': [ - '3m 5P 7m 8P 9M', '1P 3m 5P 7m 9M', + '3m 5P 7m 8P 9M', '3m 7m 8P 9M 12P', '5P 8P 9M 10m 14m', '3m 7m 9M 12P 15P', '7m 10m 12P 15P 16M', ], - '-add9': ['1P 2M 3m 5P 8P', '1P 3m 5P 9M', '5P 8P 9M 10m 12P', '3m 5P 8P 9M 12P'], + '-add9': ['1P 2M 3m 5P 8P', '1P 3m 5P 9M', '3m 5P 8P 9M 12P', '5P 8P 9M 10m 12P'], '-11': [ - '3m 7m 8P 9M 11P', '1P 3m 7m 9M 11P', + '3m 7m 8P 9M 11P', '1P 4P 7m 10m 12P', '5P 8P 11P 14m', '3m 7m 9M 11P 15P', @@ -131,58 +131,62 @@ export const simple = { ], '-7b5': [ '3m 5d 7m 8P 10m', - '3m 7m 8P 10m 12d', + '1P 7m 10m 12d', '1P 5d 7m 10m 12d', - '5d 7m 8P 10m 14m', + '3m 7m 8P 10m 12d', '3m 7m 8P 12d 14m', + '5d 7m 8P 10m 14m', + '5d 8P 10m 12d 14m', '7m 10m 12d 14m 15P', '5d 8P 10m 14m 17m', ], - h9: ['3m 7m 8P 9M 12d', '1P 7m 9M 10m 12d', '5d 8P 9M 10m 14m', '7m 10m 12d 15P 16M'], - '-b6': ['1P 5P 6m 8P 10m', '5P 8P 10m 13m', '3m 5P 8P 10m 13m', '1P 5P 8P 10m 13m', '5P 8P 10m 13m 15P'], - '-#5': ['3m 6m 8P 10m 13m', '1P 6m 8P 10m 13m', '6m 8P 10m 13m 15P'], + h9: ['1P 7m 9M 10m 12d', '3m 7m 8P 9M 12d', '5d 8P 9M 10m 14m', '7m 10m 12d 15P 16M'], + '-b6': ['1P 5P 6m 8P 10m', '1P 5P 8P 10m 13m', '3m 5P 8P 10m 13m', '5P 8P 10m 13m', '5P 8P 10m 13m 15P'], + '-#5': ['1P 6m 8P 10m 13m', '3m 6m 8P 10m 13m', '6m 8P 10m 13m 15P'], '7b9': ['1P 3M 7m 9m 10M', '3M 7m 8P 9m 10M', '3M 7m 8P 9m 14m', '7m 9m 10M 14m 15P'], '7#9': ['1P 3M 7m 10m', '3M 7m 8P 10m 14m', '7m 10m 10M 14m 15P'], - '7#11': ['3M 7m 8P 10M 12d', '1P 3M 7m 10M 12d', '7m 10M 12d 14m 15P'], - '7b5': ['3M 7m 8P 10M 12d', '1P 3M 7m 10M 12d', '7m 10M 12d 14m 15P'], - '7#5': ['3M 7m 8P 10M 13m', '1P 3M 7m 10M 13m', '3M 7m 8P 13m 14m', '7m 10M 13m 14m 15P'], - '9#11': ['3M 7m 8P 9M 12d', '1P 7m 9M 10M 12d', '7m 10M 12d 15P 16M'], - '9b5': ['3M 7m 8P 9M 12d', '1P 7m 9M 10M 12d', '7m 10M 12d 15P 16M'], - '9#5': ['3M 7m 9M 10M 13m', '1P 7m 9M 10M 13m', '3M 7m 9M 13m 14m', '7m 10M 13m 14m 16M', '7m 10M 13m 16M 17M'], - '7b13': ['3M 7m 8P 10M 13m', '1P 3M 7m 10M 13m', '3M 7m 8P 13m 14m', '7m 10M 13m 14m 15P'], + '7#11': ['1P 3M 7m 10M 12d', '3M 7m 8P 10M 12d', '7m 10M 12d 14m 15P'], + '7b5': ['1P 3M 7m 10M 12d', '3M 7m 8P 10M 12d', '7m 10M 12d 14m 15P'], + '7#5': ['1P 3M 7m 10M 13m', '3M 7m 8P 10M 13m', '3M 7m 8P 13m 14m', '7m 10M 13m 14m 15P'], + '9#11': ['1P 7m 9M 10M 12d', '3M 7m 8P 9M 12d', '7m 10M 12d 15P 16M'], + '9b5': ['1P 7m 9M 10M 12d', '3M 7m 8P 9M 12d', '7m 10M 12d 15P 16M'], + '9#5': ['1P 7m 9M 10M 13m', '3M 7m 9M 10M 13m', '3M 7m 9M 13m 14m', '7m 10M 13m 14m 16M', '7m 10M 13m 16M 17M'], + '7b13': ['1P 3M 7m 10M 13m', '3M 7m 8P 10M 13m', '3M 7m 8P 13m 14m', '7m 10M 13m 14m 15P'], '7#9#5': ['1P 3M 7m 10m 13m', '3M 7m 10m 13m 15P', '7m 10M 13m 15P 17m'], '7#9b5': ['1P 3M 7m 10m 12d', '3M 7m 10m 12d 15P', '7m 10M 12d 15P 17m'], '7#9#11': ['1P 3M 7m 10m 12d', '3M 7m 10m 12d 15P', '7m 10M 12d 15P 17m'], - '7b9#11': ['3M 7m 8P 9m 12d', '1P 7m 9m 10M 12d', '7m 8P 10M 12d 16m'], - '7b9b5': ['3M 7m 8P 9m 12d', '1P 7m 9m 10M 12d', '7m 8P 10M 12d 16m'], - '7b9#5': ['3M 7m 8P 9m 13m', '1P 7m 9m 10M 13m', '7m 9m 10M 13m 15P'], - '7b9#9': ['3M 7m 8P 9m 10m', '1P 3M 7m 9m 10m', '7m 8P 10M 16m 17m'], - '7b9b13': ['3M 7m 8P 9m 13m', '1P 7m 9m 10M 13m', '7m 9m 10M 13m 15P'], + '7b9#11': ['1P 7m 9m 10M 12d', '3M 7m 8P 9m 12d', '7m 8P 10M 12d 16m'], + '7b9b5': ['1P 7m 9m 10M 12d', '3M 7m 8P 9m 12d', '7m 8P 10M 12d 16m'], + '7b9#5': ['1P 7m 9m 10M 13m', '3M 7m 8P 9m 13m', '7m 9m 10M 13m 15P'], + '7b9#9': ['1P 3M 7m 9m 10m', '3M 7m 8P 9m 10m', '7m 8P 10M 16m 17m'], + '7b9b13': ['1P 7m 9m 10M 13m', '3M 7m 8P 9m 13m', '7m 9m 10M 13m 15P'], '7alt': [ '3M 7m 8P 9m 12d', - '3M 7m 8P 10m 13m', '1P 7m 10m 10M 13m', + '3M 7m 8P 10m 13m', '3M 7m 9m 12d 15P', '3M 7m 10m 13m 15P', '7m 10M 12d 15P 17m', + '7m 10M 13m 15P 17m', ], '13#11': ['1P 6M 7m 10M 12d', '3M 7m 9M 12d 13M', '7m 10M 12d 13M 16M'], '13b9': ['1P 3M 6M 7m 9m', '1P 6M 7m 9m 10M', '3M 7m 9m 10M 13M', '3M 7m 10M 13M 16m', '7m 10M 13M 16m 17M'], '13#9': ['1P 3M 6M 7m 10m', '3M 7m 8P 10m 13M', '7m 10M 13M 14m 17m'], - '7b9sus': ['5P 7m 8P 9m 11P', '1P 5P 7m 9m 11P', '7m 8P 11P 14m 16m'], + '7b9sus': ['1P 5P 7m 9m 11P', '5P 7m 8P 9m 11P', '7m 8P 11P 14m 16m'], '7susadd3': ['1P 4P 5P 7m 10M', '5P 8P 10M 11P 14m', '7m 11P 12P 15P 17M'], - '9sus': ['5P 7m 8P 9M 11P', '1P 5P 7m 9M 11P', '7m 8P 9M 11P 12P', '7m 8P 11P 12P 16M'], - '13sus': ['1P 4P 6M 7m 9M', '5P 7m 9M 11P 13M', '1P 7m 9M 11P 13M', '7m 9M 11P 13M 15P'], - '7b13sus': ['5P 7m 8P 11P 13m', '1P 5P 7m 11P 13m', '7m 11P 13m 14m 15P'], + '9sus': ['1P 5P 7m 9M 11P', '5P 7m 8P 9M 11P', '7m 8P 9M 11P 12P', '7m 8P 11P 12P 16M'], + '13sus': ['1P 4P 6M 7m 9M', '1P 7m 9M 11P 13M', '5P 7m 9M 11P 13M', '7m 9M 11P 13M 15P'], + '7b13sus': ['1P 5P 7m 11P 13m', '5P 7m 8P 11P 13m', '7m 11P 13m 14m 15P'], }; export const complex = { 2: ['1P 5P 6M 8P 9M', '1P 5P 8P 9M 12P', '5P 8P 9M 12P 13M', '5P 8P 9M 12P 15P'], 5: ['1P 5P 8P 12P', '1P 5P 8P 9M 12P', '5P 8P 12P 15P', '5P 8P 12P 15P 16M'], - 6: ['1P 5P 6M 9M 10M', '3M 5P 9M 10M 13M', '5P 8P 9M 10M 13M', '1P 5P 9M 10M 13M', '3M 6M 9M 12P 15P'], + 6: ['1P 5P 6M 9M 10M', '1P 5P 9M 10M 13M', '3M 5P 9M 10M 13M', '5P 8P 9M 10M 13M', '3M 6M 9M 12P 15P'], 7: [ - '3M 7m 8P 10M 12P', + '1P 5P 7m 8P 10M', '1P 7m 8P 10M 12P', + '3M 7m 8P 10M 12P', '3M 7m 8P 10M 14m', '3M 7m 10M 12P 15P', '7m 10M 12P 14m 15P', @@ -192,14 +196,21 @@ export const complex = { 9: [ '1P 6M 7m 9M 10M', '3M 7m 9M 10M 12P', - '3M 7m 9M 10M 13M', '1P 7m 9M 10M 13M', + '3M 7m 9M 10M 13M', '3M 7m 9M 12P 15P', '7m 10M 12P 13M 16M', '7m 10M 13M 16M 17M', '7m 10M 13M 16M 19P', ], - 11: ['4P 6M 7m 9M 11P', '1P 5P 7m 9M 11P', '5P 8P 9M 11P 14m', '7m 9M 11P 13M 15P', '7m 11P 12P 14m 18P'], + 11: [ + '1P 4P 6M 7m 9M', + '1P 5P 7m 9M 11P', + '4P 6M 7m 9M 11P', + '5P 8P 9M 11P 14m', + '7m 9M 11P 13M 15P', + '7m 11P 12P 14m 18P', + ], 13: [ '3M 7m 9M 10M 13M', '3M 7m 9M 13M 15P', @@ -208,19 +219,19 @@ export const complex = { '7m 10M 13M 16M 17M', '7m 10M 13M 16M 19P', ], - 69: ['1P 5P 6M 9M 10M', '3M 5P 9M 10M 13M', '1P 5P 9M 10M 13M', '3M 6M 9M 12P 15P'], + 69: ['1P 5P 6M 9M 10M', '1P 5P 9M 10M 13M', '3M 5P 9M 10M 13M', '5P 8P 9M 10M 13M', '3M 6M 9M 12P 15P'], add9: [ '1P 5P 8P 9M 10M', '1P 5P 9M 10M 12P', '3M 8P 9M 10M 12P', - '5P 8P 9M 10M 15P', '3M 8P 9M 12P 15P', + '5P 8P 9M 10M 15P', '5P 8P 9M 12P 17M', ], '+': [ '1P 6m 8P 9M 10M', - '3M 8P 9M 10M 13m', '1P 6m 8P 10M 13m', + '3M 8P 9M 10M 13m', '3M 8P 10M 13m 15P', '6m 10M 13m 15P 16M', '6m 10M 13m 15P 17M', @@ -229,53 +240,54 @@ export const complex = { '1P 6M 8P 10m 12d', '1P 6M 10m 12d 13M', '3m 8P 10m 12d 13M', - '5d 10m 12d 13M 15P', '3m 8P 12d 13M 15P', - '6M 12d 13M 15P 17m', + '5d 10m 12d 13M 15P', '5d 10m 13M 15P 17m', + '6M 12d 13M 15P 17m', '6M 12d 15P 17m 19d', ], h: [ - '5d 7m 8P 10m 11P', - '3m 5d 7m 8P 11P', '1P 5d 7m 10m 11P', + '3m 5d 7m 8P 11P', + '5d 7m 8P 10m 11P', '1P 7m 10m 12d', - '5d 8P 10m 11P 14m', '3m 7m 8P 12d 14m', + '5d 8P 10m 11P 14m', + '7m 10m 11P 12d 14m', '7m 10m 12d 14m 15P', '5d 8P 10m 14m 17m', ], sus: [ '1P 4P 5P 8P 9M', - '1P 5P 8P 9M 11P', '1P 4P 5P 8P 11P', + '1P 5P 8P 9M 11P', '5P 8P 9M 11P 12P', '5P 8P 11P 12P 13M', '5P 8P 11P 13M 15P', ], '^': [ '1P 3M 5P 6M 9M', - '3M 5P 9M 10M 12P', '1P 5P 8P 10M 12P', + '3M 5P 9M 10M 12P', '1P 5P 8P 10M 13M', - '5P 9M 10M 12P 15P', '3M 8P 10M 13M 15P', + '5P 9M 10M 12P 15P', ], '-': [ '1P 3m 5P 8P 10m', - '5P 8P 9M 10m 11P', - '3m 5P 8P 9M 11P', '1P 3m 5P 9M 11P', - '3m 5P 8P 10m 12P', + '3m 5P 8P 9M 11P', + '5P 8P 9M 10m 11P', '1P 5P 9M 10m 12P', + '3m 5P 8P 10m 12P', '5P 8P 10m 12P 15P', ], '^7': [ '1P 6M 7M 9M 10M', '3M 7M 9M 10M 12P', + '1P 7M 9M 10M 13M', '3M 7M 9M 10M 13M', '3M 7M 9M 12P 13M', - '1P 7M 9M 10M 13M', '3M 7M 9M 13M 14M', '3M 7M 10M 13M 16M', '7M 10M 13M 14M 16M', @@ -285,48 +297,51 @@ export const complex = { '-7': [ '1P 3m 5P 7m 9M', '1P 3m 5P 7m 10m', - '3m 7m 8P 10m 11P', '1P 5P 7m 10m 11P', - '3m 7m 9M 10m 12P', + '3m 7m 8P 10m 11P', '1P 5P 7m 10m 12P', - '5P 7m 9M 10m 14m', + '3m 7m 9M 10m 12P', '3m 7m 8P 10m 14m', + '5P 7m 9M 10m 14m', + '7m 10m 11P 14m 15P', '7m 10m 12P 15P 16M', '5P 8P 11P 14m 17m', ], '7sus': [ '1P 4P 6M 7m 9M', - '4P 6M 7m 9M 11P', '1P 5P 7m 9M 11P', + '4P 6M 7m 9M 11P', '5P 8P 9M 11P 14m', '7m 9M 11P 13M 15P', '7m 11P 12P 14m 18P', ], h7: [ - '5d 7m 8P 10m 11P', - '3m 5d 7m 8P 11P', '1P 5d 7m 10m 11P', + '3m 5d 7m 8P 11P', + '5d 7m 8P 10m 11P', '1P 7m 10m 12d', - '5d 8P 10m 11P 14m', + '3m 7m 8P 10m 12d', '3m 7m 8P 12d 14m', + '5d 8P 10m 11P 14m', + '7m 10m 11P 12d 14m', '7m 10m 12d 14m 15P', '5d 8P 10m 14m 17m', ], o7: [ '1P 6M 8P 10m 12d', - '3m 8P 10m 12d 13M', '1P 6M 10m 12d 13M', - '5d 10m 12d 13M 15P', + '3m 8P 10m 12d 13M', '3m 8P 12d 13M 15P', - '6M 12d 13M 15P 17m', + '5d 10m 12d 13M 15P', '5d 10m 13M 15P 17m', + '6M 12d 13M 15P 17m', '6M 12d 15P 17m 19d', ], '^9': [ '1P 6M 7M 9M 10M', - '3M 7M 9M 12P 13M', - '3M 7M 9M 10M 13M', '1P 7M 9M 10M 13M', + '3M 7M 9M 10M 13M', + '3M 7M 9M 12P 13M', '3M 7M 9M 13M 14M', '3M 7M 10M 13M 16M', '7M 10M 13M 14M 16M', @@ -335,8 +350,10 @@ export const complex = { ], '^13': [ '1P 6M 7M 9M 10M', - '3M 7M 9M 10M 13M', '1P 7M 9M 10M 13M', + '3M 7M 9M 12P 13M', + '3M 7M 9M 10M 13M', + '3M 7M 8P 9M 13M', '3M 7M 9M 13M 14M', '3M 7M 10M 13M 16M', '7M 10M 13M 14M 16M', @@ -344,8 +361,9 @@ export const complex = { '7M 10M 13M 16M 19P', ], '^7#11': [ - '3M 7M 9M 10M 12d', + '1P 3M 5d 7M 9M', '1P 7M 9M 10M 12d', + '3M 7M 9M 10M 12d', '3M 7M 9M 12d 13M', '3M 7M 10M 12d 14M', '7M 10M 12d 13M 14M', @@ -354,34 +372,37 @@ export const complex = { ], '^9#11': [ '1P 3M 5d 7M 9M', - '3M 7M 9M 10M 12d', '1P 7M 9M 10M 12d', + '3M 7M 9M 10M 12d', '3M 7M 9M 12d 13M', '3M 7M 9M 12d 14M', + '7M 10M 12d 14M 16M', '7M 10M 12d 13M 16M', ], - '^7#5': ['3M 7M 9M 10M 13m', '1P 6m 7M 10M 13m', '3M 7M 10M 13m 14M', '7M 10M 13m 14M 16M', '7M 10M 13m 14M 17M'], + '^7#5': ['1P 6m 7M 10M 13m', '3M 7M 9M 10M 13m', '3M 7M 10M 13m 14M', '7M 10M 13m 14M 16M', '7M 10M 13m 14M 17M'], '-6': [ - '3m 5P 6M 8P 9M', '1P 3m 5P 6M 9M', + '3m 5P 6M 8P 9M', + '1P 5P 6M 10m 11P', '3m 5P 6M 8P 11P', - '5P 8P 10m 11P 13M', + '1P 5P 9M 10m 13M', '3m 5P 8P 9M 13M', + '5P 8P 10m 11P 13M', '5P 8P 10m 13M 16M', ], '-69': [ - '3m 5P 6M 8P 9M', '1P 3m 5P 6M 9M', + '3m 5P 6M 8P 9M', '3m 6M 9M 10m 12P', - '5P 8P 9M 10m 13M', - '3m 5P 8P 9M 13M', '1P 5P 9M 10m 13M', + '3m 5P 8P 9M 13M', + '5P 8P 9M 10m 13M', '5P 8P 10m 13M 16M', ], '-^7': [ '1P 3m 5P 7M 9M', - '3m 7M 9M 10m 11P', '1P 5P 7M 10m 11P', + '3m 7M 9M 10m 11P', '3m 7M 9M 10m 12P', '3m 7M 9M 12P 14M', '7M 10m 11P 12P 14M', @@ -389,94 +410,106 @@ export const complex = { ], '-^9': [ '1P 3m 5P 7M 9M', - '3m 7M 9M 10m 11P', '1P 5P 7M 10m 11P', + '3m 7M 9M 10m 11P', '3m 7M 9M 10m 12P', '3m 7M 9M 12P 14M', '7M 10m 11P 12P 14M', '7M 10m 12P 14M 16M', ], '-9': [ - '3m 7m 9M 10m 11P', '1P 3m 7m 9M 11P', + '3m 7m 9M 10m 11P', '3m 7m 9M 10m 12P', '3m 7m 9M 10m 14m', '3m 7m 9M 12P 15P', '7m 10m 11P 14m 16M', '7m 10m 12P 16M 18P', ], - '-add9': ['1P 2M 3m 5P 8P', '1P 3m 5P 9M', '5P 8P 9M 10m 12P', '3m 5P 8P 9M 12P'], + '-add9': ['1P 2M 3m 5P 8P', '1P 3m 5P 9M', '3m 5P 8P 9M 12P', '5P 8P 9M 10m 12P'], '-11': [ - '7m 9M 10m 11P', '3m 5P 7m 9M 11P', - '3m 7m 9M 11P 12P', + '7m 9M 10m 11P', '1P 4P 7m 10m 12P', + '3m 7m 9M 11P 12P', '7m 9M 10m 11P 12P', - '5P 8P 11P 14m', '3m 7m 9M 11P 14m', + '4P 10m 12P 14m', + '5P 8P 11P 14m', '5P 8P 11P 14m 16M', '7m 10m 12P 16M 18P', '7m 10m 11P 16M 21m', ], '-7b5': [ - '5d 7m 8P 10m 11P', - '3m 5d 7m 8P 11P', '1P 5d 7m 10m 11P', + '3m 5d 7m 8P 11P', + '5d 7m 8P 10m 11P', '1P 7m 10m 12d', - '5d 8P 10m 11P 14m', + '3m 7m 8P 10m 12d', '3m 7m 8P 12d 14m', + '5d 8P 10m 11P 14m', + '7m 10m 11P 12d 14m', '7m 10m 12d 14m 15P', '5d 8P 10m 14m 17m', ], h9: [ '3m 5d 7m 9M 11P', '1P 7m 9M 10m 12d', - '5d 8P 9M 10m 14m', '3m 7m 9M 12d 14m', + '5d 8P 9M 10m 14m', '7m 10m 11P 12d 14m', '7m 10m 12d 14m 16M', ], - '-b6': ['1P 3m 5P 6m 8P', '5P 8P 10m 11P 13m', '3m 5P 8P 11P 13m'], - '-#5': ['3m 6m 8P 11P 13m', '1P 6m 8P 10m 13m', '6m 8P 10m 13m 15P'], - '7b9': ['3M 7m 8P 9m 10M', '1P 3M 7m 9m 10M', '3M 7m 8P 9m 14m', '7m 9m 10M 14m 15P'], + '-b6': ['1P 3m 5P 6m 8P', '3m 5P 8P 11P 13m', '5P 8P 10m 11P 13m'], + '-#5': ['1P 6m 8P 10m 13m', '3m 6m 8P 11P 13m', '6m 8P 10m 13m 15P'], + '7b9': ['1P 3M 7m 9m 10M', '3M 7m 8P 9m 10M', '3M 7m 8P 9m 14m', '7m 9m 10M 14m 15P'], '7#9': ['1P 3M 7m 10m', '3M 7m 10m 10M 12P', '3M 7m 10m 12P 14m', '7m 10M 12P 14m 17m'], '7#11': ['1P 3M 7m 9M 12d', '3M 7m 9M 12d 13M', '7m 10M 12d 13M 16M'], '7b5': ['1P 3M 7m 9M 12d', '3M 7m 9M 12d 13M', '7m 10M 12d 13M 16M'], - '7#5': ['3M 7m 8P 10M 13m', '1P 3M 7m 10M 13m', '3M 7m 8P 13m 14m', '7m 10M 13m 14m 15P', '7m 10M 13m 14m 17M'], - '9#11': ['3M 7m 8P 9M 12d', '1P 7m 9M 10M 12d', '7m 10M 12d 15P 16M'], - '9b5': ['3M 7m 8P 9M 12d', '1P 7m 9M 10M 12d', '7m 10M 12d 15P 16M'], - '9#5': ['3M 7m 9M 10M 13m', '1P 7m 9M 10M 13m', '3M 7m 9M 13m 14m', '7m 10M 13m 14m 16M', '7m 10M 13m 16M 17M'], - '7b13': ['3M 7m 8P 10M 13m', '1P 3M 7m 10M 13m', '3M 7m 8P 13m 14m', '7m 10M 13m 14m 15P', '7m 10M 13m 14m 17M'], + '7#5': ['1P 3M 7m 10M 13m', '3M 7m 8P 10M 13m', '3M 7m 8P 13m 14m', '7m 10M 13m 14m 15P', '7m 10M 13m 14m 17M'], + '9#11': ['1P 7m 9M 10M 12d', '3M 7m 8P 9M 12d', '7m 10M 12d 15P 16M'], + '9b5': ['1P 7m 9M 10M 12d', '3M 7m 8P 9M 12d', '7m 10M 12d 15P 16M'], + '9#5': ['1P 7m 9M 10M 13m', '3M 7m 9M 10M 13m', '3M 7m 9M 13m 14m', '7m 10M 13m 14m 16M', '7m 10M 13m 16M 17M'], + '7b13': ['1P 3M 7m 10M 13m', '3M 7m 8P 10M 13m', '3M 7m 8P 13m 14m', '7m 10M 13m 14m 15P', '7m 10M 13m 14m 17M'], '7#9#5': ['3M 7m 10m 10M 13m', '3M 7m 10m 13m 14m', '7m 10M 13m 14m 17m'], '7#9b5': ['3M 7m 10m 10M 12d', '3M 7m 10m 12d 14m', '7m 10M 12d 14m 17m'], '7#9#11': ['3M 7m 10m 10M 12d', '3M 7m 10m 12d 14m', '7m 10M 12d 14m 17m'], - '7b9#11': ['3M 7m 9m 10M 12d', '3M 7m 9m 12d 14m', '7m 10M 12d 14m 16m', '7m 8P 10M 12d 16m'], + '7b9#11': ['3M 7m 9m 10M 12d', '3M 7m 9m 12d 14m', '7m 8P 10M 12d 16m', '7m 10M 12d 14m 16m'], '7b9b5': ['3M 7m 9m 10M 12d', '3M 7m 9m 12d 14m', '7m 8P 10M 12d 16m', '7m 10M 12d 14m 16m'], - '7b9#5': ['3M 7m 9m 10M 13m', '1P 7m 9m 10M 13m', '3M 7m 10M 13m 16m', '7m 10M 13m 14m 16m', '7m 10M 13m 16m 17M'], + '7b9#5': ['1P 7m 9m 10M 13m', '3M 7m 9m 10M 13m', '3M 7m 10M 13m 16m', '7m 10M 13m 14m 16m', '7m 10M 13m 16m 17M'], '7b9#9': ['1P 3M 7m 9m 10m', '3M 7m 10m 13m 16m', '7m 10M 13m 16m 17m'], - '7b9b13': ['3M 7m 9m 10M 13m', '1P 7m 9m 10M 13m', '3M 7m 10M 13m 16m', '7m 10M 13m 14m 16m', '7m 10M 13m 16m 17M'], + '7b9b13': ['1P 7m 9m 10M 13m', '3M 7m 9m 10M 13m', '3M 7m 10M 13m 16m', '7m 10M 13m 14m 16m', '7m 10M 13m 16m 17M'], '7alt': [ '3M 7m 8P 10m 13m', - '3M 7m 9m 10m 13m', + '3M 7m 9m 12d 13m', + '3M 7m 10m 13m 14m', '3M 7m 9m 12d 14m', '3M 7m 10m 13m 15P', '7m 10M 12d 14m 16m', + '7m 10M 12d 13m 16m', '7m 10M 13m 15P 17m', '7m 10M 13m 16m 19d', ], '13#11': ['3M 7m 9M 12d 13M', '7m 10M 12d 13M 16M'], '13b9': ['3M 7m 9m 10M 13M', '3M 7m 10M 13M 16m', '7m 10M 13M 16m 17M'], '13#9': ['3M 7m 10m 10M 13M', '7m 10M 13M 14m 17m'], - '7b9sus': ['5P 7m 8P 9m 11P', '1P 5P 7m 9m 11P', '7m 8P 11P 14m 16m'], + '7b9sus': ['1P 5P 7m 9m 11P', '5P 7m 8P 9m 11P', '7m 8P 11P 14m 16m'], '7susadd3': ['1P 4P 5P 7m 10M', '5P 8P 10M 11P 14m', '7m 11P 12P 15P 17M'], '9sus': [ '1P 4P 6M 7m 9M', - '4P 6M 7m 9M 11P', '1P 5P 7m 9M 11P', + '4P 6M 7m 9M 11P', '5P 8P 9M 11P 14m', '7m 9M 11P 13M 15P', '7m 11P 12P 14m 18P', ], - '13sus': ['4P 7m 9M 11P 13M', '1P 7m 9M 11P 13M', '7m 9M 11P 13M 15P', '7m 11P 13M 14m 16M', '7m 11P 13M 16M 18P'], - '7b13sus': ['5P 7m 8P 11P 13m', '1P 5P 7m 11P 13m', '7m 11P 13m 14m 15P'], + '13sus': [ + '1P 4P 6M 7m 9M', + '1P 7m 9M 11P 13M', + '4P 7m 9M 11P 13M', + '7m 9M 11P 13M 15P', + '7m 11P 13M 14m 16M', + '7m 11P 13M 16M 18P', + ], + '7b13sus': ['1P 5P 7m 11P 13m', '5P 7m 8P 11P 13m', '7m 11P 13m 14m 15P'], }; From b1a4788442be48743dc1126222d3d04cab497917 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sun, 23 Jul 2023 14:06:25 +0200 Subject: [PATCH 07/11] a few more voicings --- packages/tonal/ireal.mjs | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/packages/tonal/ireal.mjs b/packages/tonal/ireal.mjs index 71a51fe9..5887a953 100644 --- a/packages/tonal/ireal.mjs +++ b/packages/tonal/ireal.mjs @@ -1,5 +1,5 @@ // explore them here: https://codesandbox.io/s/voicing-explorer-ireal-47tkx5?file=/src/ireal.js:0-16036 -// scraped via: https://codesandbox.io/s/ireal-midi-scraper-forked-kpqnzf?file=/src/index.js +// scraped via: https://codesandbox.io/s/ireal-midi-scraper-2-gjz2mr?file=/src/index.js export const simple = { 2: ['1P 5P 8P 9M', '1P 5P 8P 9M 12P', '5P 8P 9M 12P'], @@ -37,16 +37,32 @@ export const simple = { o: ['1P 5d 8P 10m 12d', '3m 8P 10m 12d 15P', '5d 8P 10m 12d 15P'], h: [ '3m 5d 7m 8P 10m', + '1P 5d 7m 10m 12d', '3m 7m 8P 10m 12d', '3m 7m 8P 12d 14m', '5d 7m 8P 10m 14m', + '5d 8P 10m 12d 14m', '7m 10m 12d 14m 15P', '5d 8P 10m 14m 17m', ], sus: ['1P 4P 5P 8P', '1P 4P 5P 8P 11P', '5P 8P 11P 12P', '5P 8P 11P 12P 15P'], '^': ['1P 5P 8P 10M', '1P 5P 8P 10M 12P', '3M 5P 8P 10M 12P', '3M 8P 10M 12P 15P', '5P 8P 10M 12P 15P'], '-': ['1P 3m 5P 8P 10m', '1P 5P 8P 10m 12P', '3m 5P 8P 10m 12P', '5P 8P 10m 12P 15P'], - '^7': ['1P 5P 7M 10M 12P', '1P 10M 12P 14M', '3M 8P 10M 12P 14M', '5P 8P 10M 12P 14M', '5P 8P 10M 14M 17M'], + '^7': [ + '1P 3m 5P 7m 10m', + '1P 5P 7M 10M 12P', + '1P 5P 7m 10m 12P', + '3m 7m 8P 10m 12P', + '3m 7m 8P 10m 14m', + '5P 7m 8P 10m 14m', + '1P 10M 12P 14M', + '3M 8P 10M 12P 14M', + '5P 8P 10M 12P 14M', + '7m 10m 12P 14m 15P', + '5P 8P 10m 14m 17m', + '7m 10m 12P 15P 17m', + '5P 8P 10M 14M 17M', + ], '-7': [ '1P 3m 5P 7m 10m', '1P 5P 7m 10m 12P', @@ -88,7 +104,7 @@ export const simple = { '7M 8P 10M 12P 16M', ], '^13': ['1P 6M 7M 9M 10M', '1P 7M 9M 10M 13M', '3M 7M 8P 9M 13M', '3M 7M 8P 13M 16M', '7M 8P 10M 13M 16M'], - '^7#11': ['1P 5P 7M 10M 12d', '3M 7M 8P 10M 12d', '3M 7M 8P 12d 14M', '5P 8P 10M 12d 14M'], + '^7#11': ['1P 5P 7M 10M 12d', '3M 7M 8P 10M 12d', '1P 7M 10M 12d 14M', '3M 7M 8P 12d 14M', '5P 8P 10M 12d 14M'], '^9#11': ['1P 3M 5d 7M 9M', '1P 7M 9M 10M 12d', '3M 7M 8P 9M 12d', '3M 8P 9M 12d 14M'], '^7#5': ['1P 6m 7M 10M 13m', '3M 7M 8P 10M 13m', '6m 7M 8P 10M 13m'], '-6': [ @@ -306,6 +322,7 @@ export const complex = { '7m 10m 11P 14m 15P', '7m 10m 12P 15P 16M', '5P 8P 11P 14m 17m', + '7m 10m 12P 15P 17m', ], '7sus': [ '1P 4P 6M 7m 9M', @@ -342,6 +359,7 @@ export const complex = { '1P 7M 9M 10M 13M', '3M 7M 9M 10M 13M', '3M 7M 9M 12P 13M', + '3M 7M 8P 9M 13M', '3M 7M 9M 13M 14M', '3M 7M 10M 13M 16M', '7M 10M 13M 14M 16M', @@ -418,6 +436,7 @@ export const complex = { '7M 10m 12P 14M 16M', ], '-9': [ + '1P 3m 5P 7m 9M', '1P 3m 7m 9M 11P', '3m 7m 9M 10m 11P', '3m 7m 9M 10m 12P', @@ -482,12 +501,15 @@ export const complex = { '7alt': [ '3M 7m 8P 10m 13m', '3M 7m 9m 12d 13m', + '3M 7m 9m 10m 13m', '3M 7m 10m 13m 14m', '3M 7m 9m 12d 14m', '3M 7m 10m 13m 15P', + '3M 7m 10m 13m 16m', '7m 10M 12d 14m 16m', '7m 10M 12d 13m 16m', '7m 10M 13m 15P 17m', + '7m 10M 13m 16m 17m', '7m 10M 13m 16m 19d', ], '13#11': ['3M 7m 9M 12d 13M', '7m 10M 12d 13M 16M'], From 5f57951e3dfa6b483f1babfbca30a41fa12c049d Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sun, 23 Jul 2023 14:10:38 +0200 Subject: [PATCH 08/11] fix: add empty string as major alias --- packages/tonal/voicings.mjs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/tonal/voicings.mjs b/packages/tonal/voicings.mjs index db0fa3a8..c7b4f6b8 100644 --- a/packages/tonal/voicings.mjs +++ b/packages/tonal/voicings.mjs @@ -208,5 +208,7 @@ export const voicing = register('voicing', function (pat) { .outerJoin(); }); -registerVoicings('ireal', simple); -registerVoicings('ireal-ext', complex); +const withEmptyAsMajor = (set) => ({ ...set, '': set['^'] }); + +registerVoicings('ireal', withEmptyAsMajor(simple)); +registerVoicings('ireal-ext', withEmptyAsMajor(complex)); From d231ded7a2430e106d737674fe8558b1258dbd8c Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sun, 23 Jul 2023 21:18:18 +0200 Subject: [PATCH 09/11] fix: ^7 voicings --- packages/tonal/ireal.mjs | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/packages/tonal/ireal.mjs b/packages/tonal/ireal.mjs index 5887a953..e6faef9e 100644 --- a/packages/tonal/ireal.mjs +++ b/packages/tonal/ireal.mjs @@ -48,21 +48,7 @@ export const simple = { sus: ['1P 4P 5P 8P', '1P 4P 5P 8P 11P', '5P 8P 11P 12P', '5P 8P 11P 12P 15P'], '^': ['1P 5P 8P 10M', '1P 5P 8P 10M 12P', '3M 5P 8P 10M 12P', '3M 8P 10M 12P 15P', '5P 8P 10M 12P 15P'], '-': ['1P 3m 5P 8P 10m', '1P 5P 8P 10m 12P', '3m 5P 8P 10m 12P', '5P 8P 10m 12P 15P'], - '^7': [ - '1P 3m 5P 7m 10m', - '1P 5P 7M 10M 12P', - '1P 5P 7m 10m 12P', - '3m 7m 8P 10m 12P', - '3m 7m 8P 10m 14m', - '5P 7m 8P 10m 14m', - '1P 10M 12P 14M', - '3M 8P 10M 12P 14M', - '5P 8P 10M 12P 14M', - '7m 10m 12P 14m 15P', - '5P 8P 10m 14m 17m', - '7m 10m 12P 15P 17m', - '5P 8P 10M 14M 17M', - ], + '^7': ['1P 5P 7M 10M 12P', '1P 10M 12P 14M', '3M 8P 10M 12P 14M', '5P 8P 10M 12P 14M', '5P 8P 10M 14M 17M'], '-7': [ '1P 3m 5P 7m 10m', '1P 5P 7m 10m 12P', From 52b8d9d361f5c46efaa3c9775ca93ee079edd8f2 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sun, 23 Jul 2023 21:18:34 +0200 Subject: [PATCH 10/11] add octaves control for arpeggios --- packages/core/controls.mjs | 1 + packages/tonal/tonleiter.mjs | 12 ++++++------ packages/tonal/voicings.mjs | 4 ++-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs index bd8b35ed..d83e271f 100644 --- a/packages/core/controls.mjs +++ b/packages/core/controls.mjs @@ -579,6 +579,7 @@ const generic_params = [ ['dictionary', 'dict'], // which dictionary to use for the voicings ['anchor'], // the top note to align the voicing to, defaults to c5 ['offset'], // how the voicing is offset from the anchored position + ['octaves'], // how many octaves are voicing steps spread apart, defaults to 1 [['mode', 'anchor']], // below = anchor note will be removed from the voicing, useful for melody harmonization /** diff --git a/packages/tonal/tonleiter.mjs b/packages/tonal/tonleiter.mjs index 56c3e35b..e2d24b27 100644 --- a/packages/tonal/tonleiter.mjs +++ b/packages/tonal/tonleiter.mjs @@ -76,11 +76,11 @@ export const midi2note = (midi, sharp = false) => { return pc + oct; }; -export function scaleStep(notes, offset) { +export function scaleStep(notes, offset, octaves = 1) { notes = notes.map((note) => (typeof note === 'string' ? noteToMidi(note) : note)); - const octOffset = Math.floor(offset / notes.length) * 12; - offset = _mod(offset, 12); - return notes[offset % notes.length] + octOffset; + const octOffset = Math.floor(offset / notes.length) * octaves * 12; + offset = _mod(offset, notes.length); + return notes[offset] + octOffset; } // different ways to resolve the note to compare the anchor to (see renderVoicing) @@ -90,7 +90,7 @@ let modeTarget = { above: (v) => v[0], }; -export function renderVoicing({ chord, dictionary, offset = 0, n, mode = 'below', anchor = 'c5' }) { +export function renderVoicing({ chord, dictionary, offset = 0, n, mode = 'below', anchor = 'c5', octaves = 1 }) { const [root, symbol] = tokenizeChord(chord); const rootChroma = pc2chroma(root); anchor = anchor?.note || anchor; @@ -124,7 +124,7 @@ export function renderVoicing({ chord, dictionary, offset = 0, n, mode = 'below' notes = notes.filter((_, i) => voicingMidi[i] !== noteToMidi(anchor)); } if (n !== undefined) { - return [scaleStep(notes, n)]; + return [scaleStep(notes, n, octaves)]; } return notes; } diff --git a/packages/tonal/voicings.mjs b/packages/tonal/voicings.mjs index c7b4f6b8..2b5da32d 100644 --- a/packages/tonal/voicings.mjs +++ b/packages/tonal/voicings.mjs @@ -196,10 +196,10 @@ export const voicing = register('voicing', function (pat) { .fmap((value) => { // destructure voicing controls out value = typeof value === 'string' ? { chord: value } : value; - let { dictionary = 'default', chord, anchor, offset, mode, n, ...rest } = value; + let { dictionary = 'default', chord, anchor, offset, mode, n, octaves, ...rest } = value; dictionary = typeof dictionary === 'string' ? voicingRegistry[dictionary] : { dictionary, mode: 'below', anchor: 'c5' }; - let notes = renderVoicing({ ...dictionary, chord, anchor, offset, mode, n }); + let notes = renderVoicing({ ...dictionary, chord, anchor, offset, mode, n, octaves }); return stack(...notes) .note() From 9b3fa835160baff4e9743b4294f07823606f7fba Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sun, 23 Jul 2023 22:05:42 +0200 Subject: [PATCH 11/11] add common chord symbol aliases --- packages/tonal/voicings.mjs | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/packages/tonal/voicings.mjs b/packages/tonal/voicings.mjs index 2b5da32d..a99a043b 100644 --- a/packages/tonal/voicings.mjs +++ b/packages/tonal/voicings.mjs @@ -208,7 +208,28 @@ export const voicing = register('voicing', function (pat) { .outerJoin(); }); -const withEmptyAsMajor = (set) => ({ ...set, '': set['^'] }); +export function voicingAlias(symbol, alias, setOrSets) { + setOrSets = !Array.isArray(setOrSets) ? [setOrSets] : setOrSets; + setOrSets.forEach((set) => { + set[alias] = set[symbol]; + }); +} -registerVoicings('ireal', withEmptyAsMajor(simple)); -registerVoicings('ireal-ext', withEmptyAsMajor(complex)); +// no symbol = major chord +voicingAlias('^', '', [simple, complex]); + +Object.keys(simple).forEach((symbol) => { + // add aliases for "-" === "m" + if (symbol.includes('-')) { + let alias = symbol.replace('-', 'm'); + voicingAlias(symbol, alias, [complex, simple]); + } + // add aliases for "^" === "M" + if (symbol.includes('^')) { + let alias = symbol.replace('^', 'M'); + voicingAlias(symbol, alias, [complex, simple]); + } +}); + +registerVoicings('ireal', simple); +registerVoicings('ireal-ext', complex);