Sha256: db776c5fe24eac6085c31cf838d5c7f33a8156c2f80ab258c1dcb6e2be02598a

Contents?: true

Size: 735 Bytes

Versions: 3

Compression:

Stored size: 735 Bytes

Contents

# frozen_string_literal: true

# Module for style guidelines.
module HeadMusic::Style::Guidelines; end

# A counterpoint guideline
class HeadMusic::Style::Guidelines::SingleLargeLeaps < HeadMusic::Style::Guidelines::RecoverLargeLeaps
  MESSAGE = 'Recover leaps by step, repetition, opposite direction, or spelling triad.'

  private

  def unrecovered_leap?(first_interval, second_interval, third_interval)
    return false unless first_interval.large_leap?
    return false if spelling_consonant_triad?(first_interval, second_interval, third_interval)
    return false if second_interval.step?
    return false if second_interval.repetition?
    !direction_changed?(first_interval, second_interval) && second_interval.leap?
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
head_music-0.20.0 lib/head_music/style/guidelines/single_large_leaps.rb
head_music-0.19.2 lib/head_music/style/guidelines/single_large_leaps.rb
head_music-0.19.1 lib/head_music/style/guidelines/single_large_leaps.rb