Sha256: 13e8f55322f729b145028859ae6a2466b733407b59e16b683a5b7b102a195ee9
Contents?: true
Size: 682 Bytes
Versions: 9
Compression:
Stored size: 682 Bytes
Contents
# frozen_string_literal: true # Module for style guidelines. module HeadMusic::Style::Guidelines; end # A counterpoint guideline class HeadMusic::Style::Guidelines::OneToOne < HeadMusic::Style::Annotation MESSAGE = "Place a note for each note in the other voice." def marks return unless cantus_firmus&.notes return if cantus_firmus.notes.empty? HeadMusic::Style::Mark.for_each( notes_without_match(voice, cantus_firmus) + notes_without_match(cantus_firmus, voice) ) end private def notes_without_match(voice1, voice2) voice1.notes.reject do |voice1_note| voice2.notes.map(&:position).include?(voice1_note.position) end end end
Version data entries
9 entries across 9 versions & 1 rubygems