Software apps and online services
Interval Trainer is a tool to help musicians learn musical intervals by ear.
You tell it you want an interval, and it quickly generates one on a random musical note, calculates how many semi-tones to go up and plays back an interval for you. Once it plays back, you tell it what you think the answer is and it corrects you when wrong. Interval Trainer also keeps score for the session.
For non-musicians there's a debug feature where you can test the output of the Skill. Simply prepend "debug" to each command, like "ask Interval Trainer debug for an interval", "debug give me an interval", or "debug minor second" and it will tell you what the answer is for each new question.
To get started, install "IntervalTrainer" from the Skills database, and start off with directions using the command "ask Interval Trainer", or "help".Development
When I was creating this skill, I wasn't just creating it for myself, I was creating it for millions of musicians out there who don't always have time to practice their aural skills (ear training), but do have a 5 or 10 minutes to spare at a time. Using Interval Trainer, a musician will be able to "keep their ears sharp" and challenge themselves as they go.
I wanted to be able to build onto this application as I went, that is why I took a modular approach to design and development of this Node.js application. The user can start with a default set of abilities, and work on specific intervals, directions, and limitations as they go.
Speaking of modular; I created a Generator module which I can use over and over to do most of the grunt-work:
Also, there's a modularity to creating the notes themselves, and if you look hard enough, there's even a debug feature for people not musically inclined to operate the program correctly:
This was a great learning experience, and something that's already getting some real-world use.
User: "Alexa, ask Interval Trainer for an interval" Alexa: "(Plays random musical interval)" User: "That's a minor third" Alexa: "Correct! Your score is 100% (Plays another random interval)" User: "That's a minor second" Alexa: "Incorrect. The answer was major second. Your score is 50%."