Haupt's Theory of Counterpoint, Fugue, and Double Counterpoint