Designing a large user preferences menu that isn’t confusing

enter image description here

My app helps pianists to practise their scales. They press a button and are shown a random scale to play. They press the button again and they get another.

I need to allow users to "turn-off" scales, or toggle the boolean variants of those scales, in a preferences screen.

The problem: There are so many scales that my preferences screen is unwieldy. I have 108 unique scales in my app already (with three boolean "variants" each) and that's only 1/3 of what a professional pianist needs to practice regularly.

Background information

A scale is an ascending, then descending pattern of notes starting and finishing on the same key on the keyboard.

enter image description here

For every one of these 12 keys, there are four different "types" of scale which have major or minor flavours.

  • Octave scale (Major, Harmonic minor, or Melodic minor)
  • Arpeggio (Major or Minor)
  • Scale in sixths (Major or minor)
  • Scale in thirds (Major or minor)

For each of these, a pianist must be able to play the scale:

  • Both hands together OR hands separately
  • Legato (smooth and connected) OR Staccato (percussive and disconnected)
  • Similar motion (hands in same direction) OR Contrary motion (hands in opposite directions)

There's my issue. I can't come up with a way to let a user select from all these options without confusing them. Here are my efforts so far:

enter image description here

The first design allows the user to toggle variants, but doesn't allow them to turn off scales based on individual keys. The second design allows for the opposite; there is no way to toggle the variants.

Further issues:

  • What if a user wants to turn off all minor scales?
  • What if a user wants to toggle all scales to staccato?
  • What if a user wants to turn off all scales based on A flat, for instance?