> */ function da_plectrum_get_chord_library( $tuning = 'gCEA' ) { $library = array( da_plectrum_make_chord_entry( 'C', 'C', '', array( 0, 0, 0, 3 ), array( 0, 0, 0, 3 ) ), da_plectrum_make_chord_entry( 'C5', 'C', '5', array( 0, 0, 3, 3 ), array( 0, 0, 1, 2 ) ), da_plectrum_make_chord_entry( 'C6', 'C', '6', array( 0, 0, 0, 0 ), array( 0, 0, 0, 0 ) ), da_plectrum_make_chord_entry( 'C7', 'C', '7', array( 0, 0, 0, 1 ), array( 0, 0, 0, 1 ) ), da_plectrum_make_chord_entry( 'C9', 'C', '9', array( 0, 2, 0, 1 ), array( 0, 2, 0, 1 ) ), da_plectrum_make_chord_entry( 'Cadd9', 'C', 'add9', array( 0, 2, 0, 3 ), array( 0, 1, 0, 3 ) ), da_plectrum_make_chord_entry( 'Caug', 'C', 'aug', array( 1, 0, 0, 3 ), array( 1, 0, 0, 3 ), array( 'C+' ) ), da_plectrum_make_chord_entry( 'Cdim', 'C', 'dim', array( 2, 3, 2, 2 ), array( 1, 3, 1, 2 ) ), da_plectrum_make_chord_entry( 'Cdim7', 'C', 'dim7', array( 2, 3, 2, 3 ), array( 1, 3, 2, 4 ), array( 'Co7' ) ), da_plectrum_make_chord_entry( 'Cmaj7', 'C', 'maj7', array( 0, 0, 0, 2 ), array( 0, 0, 0, 2 ) ), da_plectrum_make_chord_entry( 'Cm', 'C', 'm', array( 0, 3, 3, 3 ), array( 0, 1, 2, 3 ), array( 'Cmin', 'C minor' ) ), da_plectrum_make_chord_entry( 'Cm7', 'C', 'm7', array( 3, 3, 3, 3 ), array( 1, 1, 1, 1 ), array( 'Cmin7' ) ), da_plectrum_make_chord_entry( 'Csus2', 'C', 'sus2', array( 0, 2, 3, 3 ), array( 0, 1, 2, 3 ) ), da_plectrum_make_chord_entry( 'Csus4', 'C', 'sus4', array( 0, 0, 1, 3 ), array( 0, 0, 1, 3 ) ), da_plectrum_make_chord_entry( 'D', 'D', '', array( 2, 2, 2, 0 ), array( 1, 2, 3, 0 ) ), da_plectrum_make_chord_entry( 'D6', 'D', '6', array( 2, 2, 2, 2 ), array( 1, 1, 1, 1 ) ), da_plectrum_make_chord_entry( 'D7', 'D', '7', array( 2, 2, 2, 3 ), array( 1, 1, 1, 3 ) ), da_plectrum_make_chord_entry( 'D7sus4', 'D', '7sus4', array( 2, 2, 3, 3 ), array( 1, 1, 3, 4 ) ), da_plectrum_make_chord_entry( 'Dadd9', 'D', 'add9', array( 2, 2, 0, 0 ), array( 1, 2, 0, 0 ) ), da_plectrum_make_chord_entry( 'Daug', 'D', 'aug', array( 3, 2, 2, 1 ), array( 4, 2, 3, 1 ), array( 'D+' ) ), da_plectrum_make_chord_entry( 'Ddim', 'D', 'dim', array( 1, 2, 1, 2 ), array( 1, 3, 2, 4 ) ), da_plectrum_make_chord_entry( 'Ddim7', 'D', 'dim7', array( 1, 2, 1, 2 ), array( 1, 3, 2, 4 ), array( 'Do7' ) ), da_plectrum_make_chord_entry( 'Dmaj7', 'D', 'maj7', array( 2, 2, 2, 4 ), array( 1, 1, 1, 3 ), array( 'DM7', 'D major 7' ) ), da_plectrum_make_chord_entry( 'Dm', 'D', 'm', array( 2, 2, 1, 0 ), array( 2, 3, 1, 0 ), array( 'Dmin', 'D minor' ) ), da_plectrum_make_chord_entry( 'Dm6', 'D', 'm6', array( 2, 2, 1, 2 ), array( 2, 3, 1, 4 ), array( 'Dmin6' ) ), da_plectrum_make_chord_entry( 'Dm7', 'D', 'm7', array( 2, 2, 1, 3 ), array( 2, 3, 1, 4 ), array( 'Dmin7', 'D minor 7' ) ), da_plectrum_make_chord_entry( 'Dm7b5', 'D', 'm7b5', array( 1, 2, 1, 3 ), array( 1, 3, 2, 4 ), array( 'Dø7', 'Dhalf-diminished' ) ), da_plectrum_make_chord_entry( 'Dsus2', 'D', 'sus2', array( 2, 2, 0, 0 ), array( 1, 2, 0, 0 ) ), da_plectrum_make_chord_entry( 'Dsus4', 'D', 'sus4', array( 0, 2, 3, 0 ), array( 0, 1, 2, 0 ) ), da_plectrum_make_chord_entry( 'Eb', 'Eb', '', array( 3, 3, 3, 1 ), array( 2, 3, 4, 1 ), array( 'D#' ) ), da_plectrum_make_chord_entry( 'E', 'E', '', array( 1, 4, 0, 2 ), array( 1, 4, 0, 2 ) ), da_plectrum_make_chord_entry( 'E6', 'E', '6', array( 1, 1, 0, 2 ), array( 1, 2, 0, 3 ) ), da_plectrum_make_chord_entry( 'E7', 'E', '7', array( 1, 2, 0, 2 ), array( 1, 2, 0, 3 ) ), da_plectrum_make_chord_entry( 'E7sus4', 'E', '7sus4', array( 2, 2, 0, 2 ), array( 1, 2, 0, 3 ) ), da_plectrum_make_chord_entry( 'Eadd9', 'E', 'add9', array( 1, 4, 2, 2 ), array( 1, 4, 2, 3 ) ), da_plectrum_make_chord_entry( 'Eaug', 'E', 'aug', array( 1, 0, 0, 3 ), array( 1, 0, 0, 3 ), array( 'E+' ) ), da_plectrum_make_chord_entry( 'Edim', 'E', 'dim', array( 0, 1, 0, 1 ), array( 0, 2, 0, 1 ) ), da_plectrum_make_chord_entry( 'Edim7', 'E', 'dim7', array( 0, 1, 0, 1 ), array( 0, 2, 0, 1 ), array( 'Eo7' ) ), da_plectrum_make_chord_entry( 'Emaj7', 'E', 'maj7', array( 1, 3, 0, 2 ), array( 1, 3, 0, 2 ), array( 'EM7', 'E major 7' ) ), da_plectrum_make_chord_entry( 'Em', 'E', 'm', array( 0, 4, 3, 2 ), array( 0, 3, 2, 1 ), array( 'Emin', 'E minor' ) ), da_plectrum_make_chord_entry( 'Em6', 'E', 'm6', array( 0, 1, 0, 2 ), array( 0, 1, 0, 2 ), array( 'Emin6' ) ), da_plectrum_make_chord_entry( 'Em7', 'E', 'm7', array( 0, 2, 0, 2 ), array( 0, 1, 0, 2 ), array( 'Emin7' ) ), da_plectrum_make_chord_entry( 'Em7b5', 'E', 'm7b5', array( 0, 2, 0, 1 ), array( 0, 2, 0, 1 ), array( 'Eø7', 'Ehalf-diminished' ) ), da_plectrum_make_chord_entry( 'Esus2', 'E', 'sus2', array( 4, 4, 2, 2 ), array( 3, 4, 1, 1 ) ), da_plectrum_make_chord_entry( 'Esus4', 'E', 'sus4', array( 2, 4, 0, 0 ), array( 1, 3, 0, 0 ) ), da_plectrum_make_chord_entry( 'F', 'F', '', array( 2, 0, 1, 0 ), array( 2, 0, 1, 0 ) ), da_plectrum_make_chord_entry( 'F6', 'F', '6', array( 2, 2, 1, 3 ), array( 1, 2, 0, 3 ) ), da_plectrum_make_chord_entry( 'F7', 'F', '7', array( 2, 3, 1, 3 ), array( 1, 3, 0, 4 ) ), da_plectrum_make_chord_entry( 'F7sus4', 'F', '7sus4', array( 3, 3, 1, 3 ), array( 2, 3, 1, 4 ) ), da_plectrum_make_chord_entry( 'Fadd9', 'F', 'add9', array( 0, 0, 1, 0 ), array( 0, 0, 1, 0 ) ), da_plectrum_make_chord_entry( 'Faug', 'F', 'aug', array( 2, 1, 1, 0 ), array( 3, 1, 2, 0 ), array( 'F+' ) ), da_plectrum_make_chord_entry( 'Fdim', 'F', 'dim', array( 1, 2, 1, 2 ), array( 1, 3, 2, 4 ) ), da_plectrum_make_chord_entry( 'Fdim7', 'F', 'dim7', array( 1, 2, 1, 2 ), array( 1, 3, 2, 4 ), array( 'Fo7' ) ), da_plectrum_make_chord_entry( 'Fmaj7', 'F', 'maj7', array( 2, 4, 1, 3 ), array( 2, 4, 1, 3 ), array( 'FM7', 'F major 7' ) ), da_plectrum_make_chord_entry( 'Fm', 'F', 'm', array( 1, 0, 1, 3 ), array( 1, 0, 2, 4 ), array( 'Fmin', 'F minor' ) ), da_plectrum_make_chord_entry( 'Fm6', 'F', 'm6', array( 1, 2, 1, 3 ), array( 1, 3, 2, 4 ), array( 'Fmin6' ) ), da_plectrum_make_chord_entry( 'Fm7', 'F', 'm7', array( 1, 3, 1, 3 ), array( 1, 3, 2, 4 ), array( 'Fmin7' ) ), da_plectrum_make_chord_entry( 'Fm7b5', 'F', 'm7b5', array( 1, 3, 1, 2 ), array( 1, 4, 2, 3 ), array( 'Fø7', 'Fhalf-diminished' ) ), da_plectrum_make_chord_entry( 'Fsus2', 'F', 'sus2', array( 0, 0, 1, 3 ), array( 0, 0, 1, 3 ) ), da_plectrum_make_chord_entry( 'Fsus4', 'F', 'sus4', array( 3, 0, 1, 1 ), array( 3, 0, 1, 2 ) ), da_plectrum_make_chord_entry( 'G', 'G', '', array( 0, 2, 3, 2 ), array( 0, 1, 3, 2 ) ), da_plectrum_make_chord_entry( 'G6', 'G', '6', array( 0, 2, 0, 2 ), array( 0, 1, 0, 2 ) ), da_plectrum_make_chord_entry( 'G7', 'G', '7', array( 0, 2, 1, 2 ), array( 0, 2, 1, 3 ) ), da_plectrum_make_chord_entry( 'G7sus4', 'G', '7sus4', array( 0, 2, 1, 3 ), array( 0, 2, 1, 3 ) ), da_plectrum_make_chord_entry( 'Gadd9', 'G', 'add9', array( 0, 2, 0, 0 ), array( 0, 2, 0, 0 ) ), da_plectrum_make_chord_entry( 'Gaug', 'G', 'aug', array( 0, 3, 3, 2 ), array( 0, 2, 3, 1 ) ), da_plectrum_make_chord_entry( 'Gdim', 'G', 'dim', array( 0, 1, 0, 1 ), array( 0, 2, 0, 1 ) ), da_plectrum_make_chord_entry( 'Gdim7', 'G', 'dim7', array( 0, 1, 0, 1 ), array( 0, 2, 0, 1 ), array( 'Go7' ) ), da_plectrum_make_chord_entry( 'Gmaj7', 'G', 'maj7', array( 0, 2, 2, 2 ), array( 0, 1, 2, 3 ) ), da_plectrum_make_chord_entry( 'Gm', 'G', 'm', array( 0, 2, 3, 1 ), array( 0, 2, 3, 1 ), array( 'Gmin', 'G minor' ) ), da_plectrum_make_chord_entry( 'Gm6', 'G', 'm6', array( 0, 2, 0, 1 ), array( 0, 2, 0, 1 ), array( 'Gmin6' ) ), da_plectrum_make_chord_entry( 'Gm7', 'G', 'm7', array( 0, 2, 1, 1 ), array( 0, 3, 1, 2 ), array( 'Gmin7' ) ), da_plectrum_make_chord_entry( 'Gm7b5', 'G', 'm7b5', array( 0, 1, 1, 1 ), array( 0, 1, 1, 1 ), array( 'Gø7', 'Ghalf-diminished' ) ), da_plectrum_make_chord_entry( 'Gsus2', 'G', 'sus2', array( 0, 2, 3, 0 ), array( 0, 1, 2, 0 ) ), da_plectrum_make_chord_entry( 'Gsus4', 'G', 'sus4', array( 0, 2, 3, 3 ), array( 0, 1, 2, 3 ) ), da_plectrum_make_chord_entry( 'A', 'A', '', array( 2, 1, 0, 0 ), array( 2, 1, 0, 0 ) ), da_plectrum_make_chord_entry( 'A6', 'A', '6', array( 2, 4, 2, 4 ), array( 1, 3, 2, 4 ) ), da_plectrum_make_chord_entry( 'A7', 'A', '7', array( 0, 1, 0, 0 ), array( 0, 1, 0, 0 ) ), da_plectrum_make_chord_entry( 'A7sus4', 'A', '7sus4', array( 0, 2, 0, 0 ), array( 0, 2, 0, 0 ) ), da_plectrum_make_chord_entry( 'Aadd9', 'A', 'add9', array( 2, 1, 0, 2 ), array( 2, 1, 0, 3 ) ), da_plectrum_make_chord_entry( 'Aaug', 'A', 'aug', array( 2, 1, 1, 0 ), array( 3, 1, 2, 0 ), array( 'A+' ) ), da_plectrum_make_chord_entry( 'Adim', 'A', 'dim', array( 2, 3, 2, 3 ), array( 1, 3, 2, 4 ) ), da_plectrum_make_chord_entry( 'Adim7', 'A', 'dim7', array( 2, 3, 2, 3 ), array( 1, 3, 2, 4 ), array( 'Ao7' ) ), da_plectrum_make_chord_entry( 'Amaj7', 'A', 'maj7', array( 1, 1, 0, 0 ), array( 1, 1, 0, 0 ), array( 'AM7', 'A major 7' ) ), da_plectrum_make_chord_entry( 'Am', 'A', 'm', array( 2, 0, 0, 0 ), array( 2, 0, 0, 0 ), array( 'Amin', 'A minor' ) ), da_plectrum_make_chord_entry( 'Am6', 'A', 'm6', array( 2, 4, 2, 3 ), array( 1, 4, 2, 3 ), array( 'Amin6' ) ), da_plectrum_make_chord_entry( 'Am7', 'A', 'm7', array( 0, 0, 0, 0 ), array( 0, 0, 0, 0 ), array( 'Amin7' ) ), da_plectrum_make_chord_entry( 'Am7b5', 'A', 'm7b5', array( 2, 3, 3, 3 ), array( 1, 2, 3, 4 ), array( 'Aø7', 'Ahalf-diminished' ) ), da_plectrum_make_chord_entry( 'Asus2', 'A', 'sus2', array( 2, 4, 5, 2 ), array( 1, 2, 3, 1 ) ), da_plectrum_make_chord_entry( 'Asus4', 'A', 'sus4', array( 2, 2, 0, 0 ), array( 1, 2, 0, 0 ) ), da_plectrum_make_chord_entry( 'Bb', 'Bb', '', array( 3, 2, 1, 1 ), array( 3, 2, 1, 1 ), array( 'A#' ) ), da_plectrum_make_chord_entry( 'Bb6', 'Bb', '6', array( 0, 2, 1, 1 ), array( 0, 2, 1, 1 ), array( 'A#6' ) ), da_plectrum_make_chord_entry( 'Bb7', 'Bb', '7', array( 1, 2, 1, 1 ), array( 1, 3, 2, 2 ), array( 'A#7' ) ), da_plectrum_make_chord_entry( 'Bb7sus4', 'Bb', '7sus4', array( 1, 3, 1, 1 ), array( 1, 3, 1, 1 ), array( 'A#7sus4' ) ), da_plectrum_make_chord_entry( 'Bbaug', 'Bb', 'aug', array( 3, 2, 2, 1 ), array( 4, 2, 3, 1 ), array( 'A#aug', 'Bb+', 'A#+' ) ), da_plectrum_make_chord_entry( 'Bbdim', 'Bb', 'dim', array( 0, 1, 0, 1 ), array( 0, 2, 0, 1 ), array( 'A#dim' ) ), da_plectrum_make_chord_entry( 'Bbdim7', 'Bb', 'dim7', array( 0, 1, 0, 1 ), array( 0, 2, 0, 1 ), array( 'A#dim7', 'Bbo7', 'A#o7' ) ), da_plectrum_make_chord_entry( 'Bbmaj7', 'Bb', 'maj7', array( 3, 2, 1, 0 ), array( 3, 2, 1, 0 ), array( 'A#maj7' ) ), da_plectrum_make_chord_entry( 'Bbm', 'Bb', 'm', array( 3, 1, 1, 1 ), array( 3, 1, 1, 1 ), array( 'A#m', 'Bbmin', 'Bb minor' ) ), da_plectrum_make_chord_entry( 'Bbm6', 'Bb', 'm6', array( 0, 1, 1, 1 ), array( 0, 1, 1, 1 ), array( 'A#m6', 'Bbmin6', 'A#min6' ) ), da_plectrum_make_chord_entry( 'Bbm7', 'Bb', 'm7', array( 1, 1, 1, 1 ), array( 1, 1, 1, 1 ), array( 'A#m7', 'Bbmin7' ) ), da_plectrum_make_chord_entry( 'Bbm7b5', 'Bb', 'm7b5', array( 1, 1, 0, 1 ), array( 1, 1, 0, 1 ), array( 'A#m7b5', 'Bbø7', 'A#ø7' ) ), da_plectrum_make_chord_entry( 'Bbsus2', 'Bb', 'sus2', array( 3, 0, 1, 1 ), array( 3, 0, 1, 1 ), array( 'A#sus2' ) ), da_plectrum_make_chord_entry( 'Bbsus4', 'Bb', 'sus4', array( 3, 3, 1, 1 ), array( 3, 4, 1, 1 ), array( 'A#sus4' ) ), da_plectrum_make_chord_entry( 'B', 'B', '', array( 4, 3, 2, 2 ), array( 3, 2, 1, 1 ) ), da_plectrum_make_chord_entry( 'B6', 'B', '6', array( 1, 3, 2, 2 ), array( 1, 4, 2, 3 ) ), da_plectrum_make_chord_entry( 'B7', 'B', '7', array( 2, 3, 2, 3 ), array( 1, 3, 2, 4 ) ), da_plectrum_make_chord_entry( 'B7sus4', 'B', '7sus4', array( 4, 4, 2, 0 ), array( 3, 4, 1, 0 ) ), da_plectrum_make_chord_entry( 'Baug', 'B', 'aug', array( 0, 3, 3, 2 ), array( 0, 2, 3, 1 ), array( 'B+' ) ), da_plectrum_make_chord_entry( 'Bdim', 'B', 'dim', array( 1, 2, 1, 2 ), array( 1, 3, 2, 4 ) ), da_plectrum_make_chord_entry( 'Bdim7', 'B', 'dim7', array( 1, 2, 1, 2 ), array( 1, 3, 2, 4 ), array( 'Bo7' ) ), da_plectrum_make_chord_entry( 'Bmaj7', 'B', 'maj7', array( 3, 3, 2, 2 ), array( 3, 4, 1, 2 ), array( 'BM7', 'B major 7' ) ), da_plectrum_make_chord_entry( 'Bm', 'B', 'm', array( 4, 2, 2, 2 ), array( 3, 1, 1, 1 ), array( 'Bmin', 'B minor' ) ), da_plectrum_make_chord_entry( 'Bm6', 'B', 'm6', array( 1, 2, 2, 2 ), array( 1, 2, 3, 4 ), array( 'Bmin6' ) ), da_plectrum_make_chord_entry( 'Bm7', 'B', 'm7', array( 2, 2, 2, 2 ), array( 1, 1, 1, 1 ), array( 'Bmin7' ) ), da_plectrum_make_chord_entry( 'Bm7b5', 'B', 'm7b5', array( 2, 2, 1, 2 ), array( 2, 3, 1, 4 ), array( 'Bø7', 'Bhalf-diminished' ) ), da_plectrum_make_chord_entry( 'Bsus2', 'B', 'sus2', array( 4, 1, 2, 2 ), array( 4, 1, 2, 3 ) ), da_plectrum_make_chord_entry( 'Bsus4', 'B', 'sus4', array( 4, 4, 2, 2 ), array( 3, 4, 1, 1 ) ), da_plectrum_make_chord_entry( 'Db', 'Db', '', array( 1, 1, 1, 4 ), array( 1, 1, 1, 4 ), array( 'C#' ) ), da_plectrum_make_chord_entry( 'Db6', 'Db', '6', array( 1, 1, 1, 1 ), array( 1, 1, 1, 1 ), array( 'C#6' ) ), da_plectrum_make_chord_entry( 'Db7', 'Db', '7', array( 1, 1, 1, 2 ), array( 1, 1, 1, 2 ), array( 'C#7' ) ), da_plectrum_make_chord_entry( 'Dbaug', 'Db', 'aug', array( 2, 1, 1, 0 ), array( 3, 1, 2, 0 ), array( 'C#aug', 'Db+', 'C#+' ) ), da_plectrum_make_chord_entry( 'Dbdim7', 'Db', 'dim7', array( 0, 1, 0, 1 ), array( 0, 2, 0, 1 ), array( 'C#dim7', 'Dbo7', 'C#o7' ) ), da_plectrum_make_chord_entry( 'Dbmaj7', 'Db', 'maj7', array( 1, 1, 1, 3 ), array( 1, 1, 1, 3 ), array( 'C#maj7', 'DbM7', 'C#M7' ) ), da_plectrum_make_chord_entry( 'Dbm', 'Db', 'm', array( 1, 1, 0, 4 ), array( 1, 2, 0, 4 ), array( 'C#m', 'Dbmin', 'C#min', 'Db minor', 'C# minor' ) ), da_plectrum_make_chord_entry( 'Dbm7', 'Db', 'm7', array( 1, 1, 0, 2 ), array( 1, 1, 0, 2 ), array( 'C#m7', 'Dbmin7', 'C#min7' ) ), da_plectrum_make_chord_entry( 'Dbm7b5', 'Db', 'm7b5', array( 0, 1, 0, 2 ), array( 0, 1, 0, 2 ), array( 'C#m7b5', 'Dbø7', 'C#ø7' ) ), da_plectrum_make_chord_entry( 'Dbsus2', 'Db', 'sus2', array( 1, 3, 4, 4 ), array( 1, 2, 3, 4 ), array( 'C#sus2' ) ), da_plectrum_make_chord_entry( 'Dbsus4', 'Db', 'sus4', array( 1, 1, 2, 4 ), array( 1, 1, 2, 4 ), array( 'C#sus4' ) ), da_plectrum_make_chord_entry( 'C/G', 'C', '', array( 0, 0, 0, 3 ), array( 0, 0, 0, 3 ), array(), 1, 'G' ), da_plectrum_make_chord_entry( 'Bb/D', 'Bb', '', array( 3, 2, 1, 1 ), array( 3, 2, 1, 1 ), array(), 1, 'D' ), ); $filtered = array_filter( $library, static function ( $entry ) use ( $tuning ) { return $entry['tuning'] === $tuning; } ); return apply_filters( 'da_plectrum_chord_library', array_values( $filtered ), $tuning ); } /** * Build a normalized chord lookup map for front-end use. * * @param string $tuning Tuning key. * @return array> */ function da_plectrum_get_chord_library_map( $tuning = 'gCEA' ) { $library = da_plectrum_get_chord_library( $tuning ); $map = array(); $aliases = apply_filters( 'da_plectrum_chord_aliases', array(), $tuning, $library ); foreach ( $library as $entry ) { $keys = array_merge( array( $entry['name'] ), $entry['aliases'] ); foreach ( $keys as $key ) { $normalized = strtolower( preg_replace( '/\s+/', '', $key ) ); if ( '' === $normalized ) { continue; } $map[ $normalized ] = $entry; } } foreach ( $aliases as $alias => $target ) { $normalized_alias = strtolower( preg_replace( '/\s+/', '', (string) $alias ) ); $normalized_target = strtolower( preg_replace( '/\s+/', '', (string) $target ) ); if ( '' === $normalized_alias || '' === $normalized_target || empty( $map[ $normalized_target ] ) ) { continue; } $map[ $normalized_alias ] = $map[ $normalized_target ]; } return $map; } /** * Create a chord library entry. * * @param string $name Chord display name. * @param string $root Root note. * @param string $quality Chord quality suffix. * @param array $frets Fret positions. * @param array $fingers Finger positions. * @param array $aliases Alternate names. * @param int $base_fret Starting fret. * @param string $bass Optional slash-chord bass note. * @return array */ function da_plectrum_make_chord_entry( $name, $root, $quality, $frets, $fingers, $aliases = array(), $base_fret = 1, $bass = '' ) { return array( 'name' => $name, 'aliases' => $aliases, 'root' => $root, 'quality' => $quality, 'bass' => $bass, 'tuning' => 'gCEA', 'voicings' => array( array( 'id' => 'open', 'base_fret' => $base_fret, 'frets' => $frets, 'fingers' => $fingers, 'priority' => 1, ), ), ); }