# frozen_string_literal: true module HeadMusic GOLDEN_RATIO = (1 + 5**0.5) / 2.0 GOLDEN_RATIO_INVERSE = 1 / GOLDEN_RATIO PENALTY_FACTOR = GOLDEN_RATIO_INVERSE SMALL_PENALTY_FACTOR = GOLDEN_RATIO_INVERSE**0.5 end require 'head_music/version' require 'active_support/core_ext/module/delegation' require 'active_support/core_ext/string/access' require 'humanize' # utilities require 'head_music/utilities/hash_key' # modules require 'head_music/named_rudiment' # rudiments require 'head_music/chord' require 'head_music/circle' require 'head_music/clef' require 'head_music/consonance' require 'head_music/functional_interval' require 'head_music/grand_staff' require 'head_music/harmonic_interval' require 'head_music/instrument' require 'head_music/interval' require 'head_music/key_signature' require 'head_music/letter_name' require 'head_music/melodic_interval' require 'head_music/meter' require 'head_music/motion' require 'head_music/octave' require 'head_music/pitch' require 'head_music/pitch/enharmonic_equivalence' require 'head_music/pitch/octave_equivalence' require 'head_music/pitch_class' require 'head_music/quality' require 'head_music/rhythm' require 'head_music/rhythmic_unit' require 'head_music/scale' require 'head_music/scale_degree' require 'head_music/scale_type' require 'head_music/sign' require 'head_music/spelling' require 'head_music/staff' require 'head_music/tuning' # content require 'head_music/content/bar' require 'head_music/content/composition' require 'head_music/content/note' require 'head_music/content/placement' require 'head_music/content/position' require 'head_music/content/rhythmic_value' require 'head_music/content/voice' # analysis require 'head_music/style/analysis' require 'head_music/style/annotation' require 'head_music/style/mark' # guidelines require 'head_music/style/guidelines/always_move' require 'head_music/style/guidelines/approach_perfection_contrarily' require 'head_music/style/guidelines/at_least_eight_notes' require 'head_music/style/guidelines/avoid_crossing_voices' require 'head_music/style/guidelines/avoid_overlapping_voices' require 'head_music/style/guidelines/consonant_climax' require 'head_music/style/guidelines/consonant_downbeats' require 'head_music/style/guidelines/diatonic' require 'head_music/style/guidelines/direction_changes' require 'head_music/style/guidelines/end_on_perfect_consonance' require 'head_music/style/guidelines/end_on_tonic' require 'head_music/style/guidelines/frequent_direction_changes' require 'head_music/style/guidelines/limit_octave_leaps' require 'head_music/style/guidelines/moderate_direction_changes' require 'head_music/style/guidelines/mostly_conjunct' require 'head_music/style/guidelines/notes_same_length' require 'head_music/style/guidelines/no_rests' require 'head_music/style/guidelines/no_unisons_in_middle' require 'head_music/style/guidelines/one_to_one' require 'head_music/style/guidelines/prefer_contrary_motion' require 'head_music/style/guidelines/prefer_imperfect' require 'head_music/style/guidelines/prepare_octave_leaps' require 'head_music/style/guidelines/recover_large_leaps' require 'head_music/style/guidelines/singable_intervals' require 'head_music/style/guidelines/singable_range' require 'head_music/style/guidelines/single_large_leaps' require 'head_music/style/guidelines/start_on_perfect_consonance' require 'head_music/style/guidelines/start_on_tonic' require 'head_music/style/guidelines/step_down_to_final_note' require 'head_music/style/guidelines/step_out_of_unison' require 'head_music/style/guidelines/step_to_final_note' require 'head_music/style/guidelines/step_up_to_final_note' require 'head_music/style/guidelines/up_to_fourteen_notes' # guides require 'head_music/style/guides/fux_cantus_firmus' require 'head_music/style/guides/modern_cantus_firmus' require 'head_music/style/guides/first_species_melody' require 'head_music/style/guides/first_species_harmony'