Here's an updated version. I now explicitly give out the scales as well as chords, and have attempted to optimise the "spelling" of 8-note scales (which don't sit naturally on the 7 letters A-G). I made some simplifications too. Sample interaction: C7 Scale: C D E F G A Bb Chord: C E G Bb C7alt Scale: C Db Eb Fb Gb Ab Bb Chord: C Eb Gb Bb C7b9 Scale: C Db Eb E F# G A Bb Chord: C E G Bb Db Eb F# A Cdim7 Scale: C D Eb F Gb Ab A B Chord: C Eb Gb A C#dim7 Scale: C# D# E F# G A A# B# Chord: C# E G A# Attachments: http://www.ruby-forum.com/attachment/4550/chords-bc.rb -- Posted via http://www.ruby-forum.com/.