While piano is fine for playback, I think the app would be even better with other instrument sounds, so users could practice their ears in additional contexts.
I would suggest an option to choose one or several instruments from a list, and randomly select one of the instruments for exercise playbacks if several are selected.
Sounds like a great idea! Admittedly I've been thinking about it myself.
There are a few design decisions that has to be made:
Is this setting relevant for all exercises? For now all exercises are playing notes, so it's seemingly relevant for all of them. But I've been thinking of adding a new kind of exercise in the future for "timbre" training (For example, learn to differ a flute from a clarinet). This question is important when deciding whether to put this setting per exercise, or in the "global settings". Another limitation of putting this setting globally, is that exercises will not be able to decide for themselves which instrument they want to play. With this ability, they will be able not only to choose instrument in a way that makes sense for the specific exercise, but also play multiple instruments at the same time. (If that's possible with Tone.js)
What would be the UI element for selection? Seems like ionic supports multiple option select, might be a good option: . (I'm also thinking of changing existing multiple selection in the app to that, since long checkbox lists are not ideal)
If you want to try to implement this yourself, please consider the following:
You will need open source samples of the instrument you want to add. mp3 files of a selection notes are good. (Tone.js can generate all the notes in between them)
The samples are loaded in the PlayerService, in the _getInstrument() method, by creating a "Sample" object. (See https://tonejs.github.io/). If RAM is not an issue, we can create a map of multiple Samplers and have a method in the PlayerService to switch between them. If RAM is an issue, we need to figure out a way to load / unload the samples to memory. I'd start with loading all of them initially, and then try to solve the memory issue if we have too many samples loaded.
Hi. First of all thank you for this app!
While piano is fine for playback, I think the app would be even better with other instrument sounds, so users could practice their ears in additional contexts. I would suggest an option to choose one or several instruments from a list, and randomly select one of the instruments for exercise playbacks if several are selected.
What do you think?