@ivs = qw(2 4 5 7 9 11 12 14 16 17 19 21 23 24); for (1..7) { print "0 @ivs[0..6]\n"; $min = shift @ivs; for $v (@ivs) { $v -= $min; } } I 0 2 4 5 7 9 11 12 II 0 2 3 5 7 9 10 12 III 0 1 3 5 7 8 10 12 IV 0 2 4 6 7 9 11 12 V 0 2 4 5 7 9 10 12 VI 0 2 3 5 7 8 10 12 VII 0 1 3 5 6 8 10 12 Qmb5 0 3 6 VII Qm7b5 0 3 6 10 VII Qm 0 3 7 II III VI Qm7 0 3 7 10 II III VI Q 0 4 7 I IV V Q7 0 4 7 10 V Qmaj7 0 4 7 11 I IV Qsus 0 5 7 I II III V VI Q 0 4 7 A x 0 2 2 2 0 1 A# x 1 3 3 3 1 1 Ab 1 3 3 2 1 1 4 B x 2 4 4 4 2 1 B# x 3 2 0 1 0 1 Bb x 1 3 3 3 1 1 C x 3 2 0 1 0 1 C# x x 3 1 2 1 1 Cb x 2 4 4 4 2 1 D x x 0 2 3 2 1 D# x x 3 1 2 1 3 Db x x 3 1 2 1 1 E 0 2 2 1 0 0 1 E# 1 3 3 2 1 1 1 Eb x x 3 1 2 1 3 F 1 3 3 2 1 1 1 F# 2 4 4 3 2 2 1 Fb 0 2 2 1 0 0 1 G 3 2 0 0 0 3 1 G# 1 3 3 2 1 1 4 Gb 2 4 4 3 2 2 1 Qm 0 3 7 Am x 0 2 2 1 0 1 A#m x 1 3 3 2 1 1 Abm 1 3 3 1 1 1 4 Bm x 2 4 4 3 2 1 B#m x 1 3 3 2 1 3 Bbm x 1 3 3 2 1 1 Cm x 1 3 3 2 1 3 Cbm x 2 4 4 3 2 1 C#m x x 2 1 2 0 1 Dm x x 0 2 3 1 1 D#m x x 4 3 4 2 1 Dbm x x 2 1 2 0 1 Em 0 2 2 0 0 0 1 E#m 1 3 3 1 1 1 1 Ebm x x 4 3 4 2 1 Fm 1 3 3 1 1 1 1 F#m 2 4 4 2 2 2 1 Fbm 0 2 2 0 0 0 1 Gm 1 3 3 1 1 1 3 G#m 1 3 3 1 1 1 4 Gbm 2 4 4 2 2 2 1 Qsus 0 5 7 Asus x x 2 2 3 0 1 A#sus x x 3 3 4 1 1 Absus x x 1 1 2 4 1 Bsus x x 3 3 4 1 2 B#sus x x 3 0 1 3 1 Bbsus x x 3 3 4 1 1 Csus x x 3 0 1 3 1 C#sus x x 3 3 4 1 4 Cbsus x x 3 3 4 1 2 Dsus x x 0 2 3 3 1 D#sus x x 1 3 4 4 1 Dbsus x x 3 3 4 1 4 Esus 0 2 2 2 0 0 1 E#sus x x 3 3 1 1 1 Ebsus x x 1 3 4 4 1 Fsus x x 3 3 1 1 1 F#sus x x 4 4 2 2 1 Fbsus 0 2 2 2 0 0 1 Gsus x x 0 0 1 3 1 G#sus x x 1 1 2 4 1 Gbsus x x 4 4 2 2 1 Q7 0 4 7 10 A7 x 0 2 0 2 0 1 A#7 x x 1 1 1 2 3 Ab7 x x 1 1 1 2 1 B7 0 2 1 2 0 2 1 B#7 0 3 2 3 1 0 1 Bb7 x x 1 1 1 2 3 C7 0 3 2 3 1 0 1 C#7 x x 3 4 2 4 1 Cb7 0 2 1 2 0 2 1 D7 x x 0 2 1 2 1 D#7 x x 1 3 2 3 1 Db7 x x 3 4 2 4 1 E7 0 2 2 1 3 0 1 E#7 1 3 1 2 1 1 1 Eb7 x x 1 3 2 3 1 F7 1 3 1 2 1 1 1 F#7 x x 4 3 2 0 1 Fb7 0 2 2 1 3 0 1 G#7 x x 1 1 1 2 1 G7 3 2 0 0 0 1 1 Gb7 x x 4 3 2 0 1 Qm7 0 3 7 10 Am7 x 0 2 2 1 3 1 A#m7 x 1 3 1 2 1 1 Abm7 x x 1 1 1 1 4 Bm7 x 1 3 1 2 1 2 B#m7 x 1 3 1 2 1 3 Bbm7 x 1 3 1 2 1 1 Cm7 x 1 3 1 2 1 3 C#m7 x x 2 4 2 4 1 Cbm7 x 1 3 1 2 1 2 Dm7 x x 0 2 1 1 1 D#m7 x x 1 3 2 2 1 Dbm7 x x 2 4 2 4 1 Em7 0 2 2 0 3 0 1 E#m7 1 3 1 1 1 1 1 Ebm7 x x 1 3 2 2 1 Fm7 1 3 1 1 1 1 1 F#m7 x x 2 2 2 2 1 Fbm7 0 2 2 0 3 0 1 Gm7 1 3 1 1 1 1 3 G#m7 x x 1 1 1 1 4 Gbm7 x x 2 2 2 2 1 Qmaj7 0 4 7 11 Amaj7 x 0 2 1 2 0 1 A#maj7 x 1 3 2 3 x 1 Abmaj7 x x 1 1 1 3 1 Bmaj7 x 2 4 3 4 x 1 B#maj7 x 3 2 0 0 0 1 Bbmaj7 x 1 3 2 3 x 1 Cmaj7 x 3 2 0 0 0 1 C#maj7 x 4 3 1 1 1 1 Cbmaj7 x 2 4 3 4 x 1 Dmaj7 x x 0 2 2 2 1 D#maj7 x x 1 3 3 3 1 Dbmaj7 x 4 3 1 1 1 1 Emaj7 0 2 1 1 0 x 1 E#maj7 x 3 3 2 1 0 1 Ebmaj7 x x 1 3 3 3 1 Fmaj7 x 3 3 2 1 0 1 F#maj7 x x 4 3 2 1 1 Fbmaj7 0 2 1 1 0 x 1 Gmaj7 x x 4 3 2 1 2 G#maj7 x x 1 1 1 3 1 Gbmaj7 x x 4 3 2 1 1 Q+ 0 4 8 A+ x 0 3 2 2 1 1 A#+ x x 0 3 3 2 1 Ab+ x x 2 1 1 0 1 B+ x x 1 0 0 4 1 B#+ x x 2 1 1 0 1 Bb+ x x 0 3 3 2 1 C+ x x 2 1 1 0 1 C#+ x x 3 2 2 1 1 Cb+ x x 1 0 0 4 1 D+ x x 0 3 3 2 1 D#+ x x 1 0 0 4 1 Db+ x x 3 2 2 1 1 E+ x x 2 1 1 0 1 E#+ x x 3 2 2 1 1 Eb+ x x 1 0 0 4 1 F+ x x 3 2 2 1 1 F#+ x x 4 3 3 2 1 Fb+ x x 2 1 1 0 1 G+ x x 1 0 0 4 1 G#+ x x 2 1 1 0 1 Gb+ x x 4 3 3 2 1 Qdim 0 3 6 9 Adim x x 1 2 1 2 1 A#dim x x 2 3 2 3 1 Abdim x x 0 1 0 1 1 Bdim x x 0 1 0 1 1 B#dim x x 1 2 1 2 1 Bbdim x x 2 3 2 3 1 Cdim x x 1 2 1 2 1 C#dim x x 2 3 2 3 1 Cbdim x x 0 1 0 1 1 Ddim x x 0 1 0 1 1 D#dim x x 1 2 1 2 1 Dbdim x x 2 3 2 3 1 Edim x x 2 3 2 3 1 E#dim x x 0 1 0 1 1 Ebdim x x 1 2 1 2 1 Fdim x x 0 1 0 1 1 F#dim x x 1 2 1 2 1 Fbdim x x 2 3 2 3 1 Gdim x x 2 3 2 3 1 G#dim x x 0 1 0 1 1 Gbdim x x 1 2 1 2 1 Qm(maj7) 0 3 7 11 Am(maj7) 0 0 2 1 1 0 1 A#m(maj7) 1 1 3 2 2 1 1 Abm(maj7) 4 2 1 0 0 4 1 Bm(maj7) 2 2 4 3 3 2 1 B#m(maj7) 1 1 3 2 2 1 3 Bbm(maj7) 1 1 3 2 2 1 1 Cm(maj7) 1 1 3 2 2 1 3 C#m(maj7) 1 1 3 2 2 1 4 Cbm(maj7) 2 2 4 3 3 2 1 Dm(maj7) x 4 0 2 3 1 1 D#m(maj7) x 4 0 2 3 1 2 Dbm(maj7) 0 3 2 1 2 0 1 Em(maj7) 0 2 1 0 0 0 1 E#m(maj7) 0 3 3 1 1 1 1 Ebm(maj7) x 4 0 2 3 1 2 Fm(maj7) 0 3 3 1 1 1 1 F#m(maj7) x 0 3 2 2 2 1 Fbm(maj7) 0 2 1 0 0 0 1 Gm(maj7) 2 1 0 0 3 3 1 G#m(maj7) 4 2 1 0 0 4 1 Gbm(maj7) x 0 3 2 2 2 1 Qm7b5 0 3 6 10 Am7b5 x 0 3 3 2 1 3 A#m7b5 x x 1 2 2 2 8 Abm7b5 x x 1 2 2 2 6 Bm7b5 1 0 0 2 0 1 1 B#m7b5 x x 2 2 1 2 7 Bbm7b5 x x 1 2 2 2 8 Cm7b5 x x 2 2 1 2 7 C#m7b5 0 4 2 0 0 0 1 Cbm7b5 1 0 0 2 0 1 1 Dm7b5 x 3 0 1 1 1 1 D#m7b5 x 0 1 2 2 2 1 Dbm7b5 0 4 2 0 0 0 1 Em7b5 0 1 0 0 3 0 1 E#m7b5 1 2 1 1 4 1 1 Ebm7b5 x 0 1 2 2 2 1 Fm7b5 1 2 1 1 4 1 1 F#m7b5 0 0 4 2 1 0 1 Fbm7b5 0 1 0 0 3 0 1 Gm7b5 x x 1 2 2 2 5 G#m7b5 1 2 1 1 4 1 4 Gbm7b5 0 0 4 2 1 0 1 Qmb5 0 3 6 Amb5 x 0 4 2 1 2 4 A#mb5 0 1 2 3 2 0 1 Abmb5 4 2 0 1 0 4 1 Bmb5 1 2 0 4 0 1 1 B#mb5 x x 3 4 3 1 2 Bbmb5 0 1 2 3 2 0 1 Cmb5 x x 3 4 3 1 2 C#mb5 0 4 2 0 2 0 1 Cbmb5 1 2 0 4 0 1 1 Dmb5 x x 0 1 3 1 1 D#mb5 x 0 1 2 4 2 1 Dbmb5 0 4 2 0 2 0 1 Emb5 x x 1 2 4 2 2 E#mb5 x x 3 1 3 1 4 Ebmb5 x 0 1 2 4 2 1 Fmb5 x x 3 1 3 1 4 F#mb5 x 0 3 1 3 4 5 Fbmb5 x x 3 1 3 0 3 Gmb5 x x 3 1 3 1 6 G#mb5 4 2 0 1 0 4 1 Gbmb5 x 0 3 1 3 1 5 for $i (qw(A A# Ab B B# Bb C C# Cb D D# Db E E# Eb F F# Fb G G# Gb)) { $a =`ch/ch -r4 -i3 -p4 '${i}m7b5'`; print "$a\n"; }