who this article is for

music theory and harmony for non-musicians
  • does not assume an ability to
    • play a musical instrument
    • read music
  • assumes a basic background in science
  • assumes a familiarity with the basic principles of object-oriented programming (or pattern language)
  • uses a little python
  • does not teach music theory and harmony as it is taught in music school, so trying to talk about music theory with a music school trained musician who has no background in science will probably be difficult at best; you'll be talking about the same thing, but your language will be very different than his/hers