diff --git a/packages/tonal/voicings.mjs b/packages/tonal/voicings.mjs index e0bb0543..07d1229a 100644 --- a/packages/tonal/voicings.mjs +++ b/packages/tonal/voicings.mjs @@ -6,10 +6,53 @@ This program is free software: you can redistribute it and/or modify it under th import { stack, register } from '@strudel.cycles/core'; import _voicings from 'chord-voicings'; -const { dictionaryVoicing, minTopNoteDiff, lefthand } = _voicings.default || _voicings; // parcel module resolution fuckup +const { dictionaryVoicing, minTopNoteDiff } = _voicings.default || _voicings; // parcel module resolution fuckup + +const lefthand = { + m7: ['3m 5P 7m 9M', '7m 9M 10m 12P'], + 7: ['3M 6M 7m 9M', '7m 9M 10M 13M'], + '^7': ['3M 5P 7M 9M', '7M 9M 10M 12P'], + 69: ['3M 5P 6A 9M'], + m7b5: ['3m 5d 7m 8P', '7m 8P 10m 12d'], + '7b9': ['3M 6m 7m 9m', '7m 9m 10M 13m'], + '7b13': ['3M 6m 7m 9m', '7m 9m 10M 13m'], + o7: ['1P 3m 5d 6M', '5d 6M 8P 10m'], + '7#11': ['7m 9M 11A 13A'], + '7#9': ['3M 7m 9A'], + mM7: ['3m 5P 7M 9M', '7M 9M 10m 12P'], + m6: ['3m 5P 6M 9M', '6M 9M 10m 12P'], +}; + +const guidetones = { + m7: ['3m 7m', '7m 10m'], + m9: ['3m 7m', '7m 10m'], + 7: ['3M 7m', '7m 10M'], + '^7': ['3M 7M', '7M 10M'], + '^9': ['3M 7M', '7M 10M'], + 69: ['3M 6M'], + 6: ['3M 6M', '6M 10M'], + m7b5: ['3m 7m', '7m 10m'], + '7b9': ['3M 7m', '7m 10M'], + '7b13': ['3M 7m', '7m 10M'], + o7: ['3m 6M', '6M 10m'], + '7#11': ['3M 7m', '7m 10M'], + '7#9': ['3M 7m', '7m 10M'], + mM7: ['3m 7M', '7M 10m'], + m6: ['3m 6M', '6M 10m'], +}; + +const triads = { + '': ['1P 3M 5P', '3M 5P 8P', '5P 8P 10M'], + M: ['1P 3M 5P', '3M 5P 8P', '5P 8P 10M'], + m: ['1P 3m 5P', '3m 5P 8P', '5P 8P 10m'], + o: ['1P 3m 5d', '3m 5d 8P', '5d 8P 10m'], + aug: ['1P 3m 5A', '3m 5A 8P', '5A 8P 10m'], +}; export const voicingRegistry = { lefthand: { dictionary: lefthand, range: ['F3', 'A4'] }, + triads: { dictionary: triads }, + guidetones: { dictionary: guidetones }, }; export const setVoicingRange = (name, range) => addVoicings(name, voicingRegistry[name].dictionary, range);