cheap-glitch / fretboarder

🎸 A web app to visualize scales, chords and arpeggios on all kinds of fretboards.
https://fretboarder.app
Mozilla Public License 2.0
100 stars 15 forks source link

chord added and corrected #10

Closed sugizo closed 4 years ago

sugizo commented 4 years ago

Description

'arp-pow': { intervals: [4], name: 'fifth (powerchord)' }, should be like this because semitone 4 is major 3rd interval 'arp-pow': { intervals: [7], name: 'fifth (powerchord)' }, also some of extended chord like 13th, 11th, you define it with 9th note while the name is not contain 9th

Implementation details

will send the full correction if you interest

thanks

cheap-glitch commented 4 years ago

should be like this because semitone 4 is major 3rd interval

Nice catch, this has been corrected.

also some of extended chord like 13th, 11th, you define it with 9th note while the name is not contain 9th

Those are extended chords. If you add the 11th/13th but not the 9th, it's called an added tone chord. I could add those too if you think they'd be useful.

I wrote some tests for the arpeggios on the develop branch, all of them should be correct now. Feel free to reopen this issue if you notice another mistake.

sugizo commented 4 years ago

Those are extended chords. If you add the 11th/13th but not the 9th, it's called an added tone chord. I could add those too if you think they'd be useful.

added tone chord is extended chord (semitone > 12) without seventh (semitone 10) or major seventh (semitone 11) e.g. 'arp-majadd9': { intervals: [2, 4, 7], name: 'major added 9th' },

in music theory the chord should be like :

    'arp-min11':    { intervals: [3,  5,  7, 10],             name: 'minor 11th'                },
    'arp-min911':   { intervals: [2,  3,  5,  7, 10],         name: 'minor 9th 11th'            },
    'arp-dom11':    { intervals: [4,  5,  7, 10],             name: 'dominant 11th'             },
    'arp-dom911':   { intervals: [2,  4,  5,  7, 10],         name: 'dominant 9th 11th'         },
    'arp-maj11':    { intervals: [4,  5,  7, 11],             name: 'major 11th'                },
    'arp-maj911':   { intervals: [2,  4,  5,  7, 11],         name: 'major 9th 11th'            }, 

this formula work on 13th chord too

seems dont have suspended chord too, sus2 and sus4 variant, thanks

sugizo commented 4 years ago

please review it first, chord ref are from wiki or wikibooks not sure about extended chord for augmented and diminished, still investigating thanks

    // ARPEGGIOS
    'arp-pow':      { intervals: [7],                         name: 'fifth (powerchord)'        },

    // Triads
    'arp-maj':      { intervals: [4,  7],                     name: 'major'                     },
    'arp-majb5':    { intervals: [4,  6],                     name: 'major b5'                  },
    'arp-min':      { intervals: [3,  7],                     name: 'minor'                     },
    'arp-aug':      { intervals: [4,  8],                     name: 'augmented'                 },
    'arp-dim':      { intervals: [3,  6],                     name: 'diminished'                },
    'arp-sus2':     { intervals: [2,  7],                     name: 'sus2'                      },
    'arp-sus4':     { intervals: [5,  7],                     name: 'sus4'                      },

    // Sixth chords
    'arp-maj6':     { intervals: [4,  7,  9],                 name: 'major 6th'                 },
    'arp-minb6':    { intervals: [3,  7,  8],                 name: 'minor flat 6th'            },
    'arp-min6':     { intervals: [3,  7,  9],                 name: 'minor 6th'                 },

    // Seventh chords
    'arp-dom7':     { intervals: [4,  7, 10],                 name: 'dominant 7th'              },
    'arp-dom7b5':   { intervals: [4,  6, 10],                 name: 'dominant 7th flat five'    },
    'arp-maj7':     { intervals: [4,  7, 11],                 name: 'major 7th'                 },
    'arp-min7':     { intervals: [3,  7, 10],                 name: 'minor 7th'                 },
    'arp-minmaj7':  { intervals: [3,  7, 11],                 name: 'minor-major 7th'           },
    'arp-aug7':     { intervals: [4,  8, 10],                 name: 'augmented 7th'             },
    'arp-augmaj7':  { intervals: [4,  8, 11],                 name: 'augmented major 7th'       },
    'arp-hdim7':    { intervals: [3,  6, 10],                 name: 'half-diminished 7th'       },
    'arp-dim7':     { intervals: [3,  6,  9],                 name: 'diminished 7th'            },
    'arp-dimmaj7':  { intervals: [3,  6, 11],                 name: 'diminished major 7th'      },

    'arp-76':       { intervals: [4,  7,  9, 10],             name: '7th 6th'                   },

    // Ninth chords
    'arp-majadd9':  { intervals: [2,  4,  7],                 name: 'major added 9th'           },
    'arp-domb9':    { intervals: [1,  4,  7, 10],             name: 'dominant b9th'             },
    'arp-dom9':     { intervals: [2,  4,  7, 10],             name: 'dominant 9th'              },
    'arp-dom#9':    { intervals: [3,  4,  7, 10],             name: 'dominant #9th'             },
    'arp-maj9':     { intervals: [2,  4,  7, 11],             name: 'major 9th'                 },
    'arp-min9':     { intervals: [2,  3,  7, 10],             name: 'minor 9th'                 },
    'arp-minmaj9':  { intervals: [2,  3,  7, 11],             name: 'minor-major 9th'           },
    'arp-aug9':     { intervals: [2,  4,  8, 10],             name: 'augmented 9th'             },
    'arp-augmaj9':  { intervals: [2,  4,  8, 11],             name: 'augmented major 9th'       },
    'arp-hdim9':    { intervals: [2,  3,  6, 10],             name: 'half-diminished 9th'       },
    'arp-hdimmin9': { intervals: [1,  3,  6, 10],             name: 'half-diminished minor 9th' },
    'arp-dim9':     { intervals: [2,  3,  6,  9],             name: 'diminished 9th'            },
    'arp-dimmin9':  { intervals: [1,  3,  6,  9],             name: 'diminished minor 9th'      },
    'arp-6-9':      { intervals: [2,  4,  7,  9],             name: '6/9'                       },
    'arp-minb69':   { intervals: [2,  3,  7,  8],             name: 'minor b6/9'                },
    'arp-min6-9':   { intervals: [2,  3,  7,  9],             name: 'minor 6/9'                 },

    // Eleventh chords
    'arp-min11':    { intervals: [3,  5,  7, 10],             name: 'minor 11th'                },
    'arp-dom11':    { intervals: [4,  5,  7, 10],             name: 'dominant 11th'             },
    'arp-maj11':    { intervals: [4,  5,  7, 11],             name: 'major 11th'                },
    'arp-maj#11':   { intervals: [4,  6,  7, 11],             name: 'major #11th'               },
    'arp-dom911':   { intervals: [2,  4,  5,  7, 10],         name: 'dominant 9th 11th'         },
    'arp-maj911':   { intervals: [2,  4,  5,  7, 11],         name: 'major 9th 11th'            },
    'arp-minmaj11': { intervals: [2,  3,  5,  7, 11],         name: 'minor-major 9th 11th'      },
    'arp-min911':   { intervals: [2,  3,  5,  7, 10],         name: 'minor 9th 11th'            },
    'arp-aug11':    { intervals: [2,  4,  5,  8, 10],         name: 'augmented 11th'            },
    'arp-augmaj11': { intervals: [2,  4,  5,  8, 11],         name: 'augmented major 11th'      },
    'arp-hdim11':   { intervals: [2,  3,  5,  6, 10],         name: 'half-diminished 11th'      },
    'arp-dim11':    { intervals: [2,  3,  5,  6,  9],         name: 'diminished 11th'           },

    // Thirteenth chords
    'arp-min13':    { intervals: [3,  7,  9, 10],             name: 'minor 13th'                },
    'arp-dom13':    { intervals: [4,  7,  9, 10],             name: 'dominant 13th'             },
    'arp-maj13':    { intervals: [4,  7,  9, 11],             name: 'major 13th'                },
    'arp-dom91113': { intervals: [2,  4,  5,  7,  9, 10],     name: 'dominant 9th 11th 13th'    },
    'arp-maj91113': { intervals: [2,  4,  5,  7,  9, 11],     name: 'major 9th 11th 13th'       },
    'arp-min91113': { intervals: [2,  3,  5,  7,  9, 10],     name: 'minor 9th 11th 13th'       },
    'arp-minmaj13': { intervals: [2,  3,  5,  7,  9, 11],     name: 'minor-major 9th 11th 13th' },
    'arp-aug13':    { intervals: [2,  4,  5,  8,  9, 10],     name: 'augmented 13th'            },
    'arp-augmaj13': { intervals: [2,  4,  5,  8,  9, 11],     name: 'augmented major 13th'      },
    'arp-hdim13':   { intervals: [2,  3,  5,  6,  9, 10],     name: 'half-diminished 13th'      },
cheap-glitch commented 4 years ago

Please open a proper Pull Request if you want to suggest some changes to the code. It makes it much easier for me to see what has been modified and what hasn't. See: https://git-scm.com/book/en/v2/GitHub-Contributing-to-a-Project