Users should be able to select the scale of the instrument from a list of popular handpan scales.
Handpans are quite weird compared to other instruments in that they have a set scale and usually that scale is a modification of some other scale, but spread out over 2 or 3 octaves (with just 10 or so notes), so we'll need to keep a dictionary of these handpan specific scales.
We can start small with like 3 or 5 and slowly build up the collection as we go.
We'll also want to let folk edit individual notes and save custom scales. We can tackle this as a separate task, but it'll be useful to keep in mind as we build the basic scale selection logic.
We'll need to set up a few things for this:
UI components for key and scale
Holding key and scale values in state
Updating that state as a user interacts with the options
Reflecting this state in the instrument (and the sequencer once that's built
Users should be able to select the scale of the instrument from a list of popular handpan scales.
Handpans are quite weird compared to other instruments in that they have a set scale and usually that scale is a modification of some other scale, but spread out over 2 or 3 octaves (with just 10 or so notes), so we'll need to keep a dictionary of these handpan specific scales. We can start small with like 3 or 5 and slowly build up the collection as we go.
We'll also want to let folk edit individual notes and save custom scales. We can tackle this as a separate task, but it'll be useful to keep in mind as we build the basic scale selection logic.
We'll need to set up a few things for this: