lib/fet/generator/listening.rb
# The reason number of exercises is required is because the actual number generated is quite large
# For three degrees, it's something like 88C3, but a bit smaller because one you choose 1, you actually exclude some of the 88 other than just itself
# (i.e. if you chose the b2 degree, you exclude the rest of the b2 degrees too)
# 2 degrees => 21592 (left it for a while and it seemed to stop at this value) - comparable to 64C2 * 12 = 24192
# 3 degrees => 252398 (before I stopped it, there was more being generated)
The reason number of exercises is required is because the actual number generated is quite large
For three degrees, it's something like 88C3, but a bit smaller because one you choose 1, you actually exclude some of the 88 other than just itself

2 degrees => 21592 (left it for a while and it seemed to stop at this value) - comparable to 64C2 * 12 = 24192
3 degrees => 252398 (before I stopped it, there was more being generated)
The reason number of exercises is required is because the actual number generated is quite large For three degrees it ' s something like 88C3 but a bit smaller because one you choose 1 you actually exclude some of the 88 other than just itself 2 degrees = > 21592 ( left it for a while and it seemed to stop at this value ) - comparable to 64C2 * 12 = 24192 3 degrees = > 252398 ( before I stopped it there was more being generated )
def generate_number_of_exercises
        number_of_exercises.times do
          root_name, root_midi_value = Fet::MAJOR_ROOT_MIDI_VALUES.to_a.sample
          until select_notes(note_range, root_name, root_midi_value, number_of_degrees, "major"); end
          root_name, root_midi_value = Fet::MINOR_ROOT_MIDI_VALUES.to_a.sample
          until select_notes(note_range, root_name, root_midi_value, number_of_degrees, "minor"); end
        end
      end
def generate_number_of_exercises number_of_exercises . times do root_name , root_midi_value = Fet :: MAJOR_ROOT_MIDI_VALUES . to_a . sample until select_notes ( note_range , root_name , root_midi_value , number_of_degrees , "major" ) ; end root_name , root_midi_value = Fet :: MINOR_ROOT_MIDI_VALUES . to_a . sample until select_notes ( note_range , root_name , root_midi_value , number_of_degrees , "minor" ) ; end end end
The reason number of exercises is required is because the actual number generated is quite large
For three degrees, it's something like 88C3, but a bit smaller because one you choose 1, you actually exclude some of the 88 other than just itself
(i.e.
The reason number of exercises is required is because the actual number generated is quite large For three degrees it ' s something like 88C3 but a bit smaller because one you choose 1 you actually exclude some of the 88 other than just itself ( i . e .
# Create major key exercises # Create minor key exercises