This looks good for introductory theory. see also GNU Solfege

https://www.gnu.org/software/solfege/