Class: HeadMusic::Rudiment::Tuning::Pythagorean

Inherits:
HeadMusic::Rudiment::Tuning show all
Defined in:
lib/head_music/rudiment/tuning/pythagorean.rb

Overview

Pythagorean tuning system based on stacking perfect fifths (3:2 ratio)

Constant Summary collapse

INTERVAL_RATIOS =

Frequency ratios for intervals in Pythagorean tuning (relative to tonic) Generated by stacking perfect fifths and reducing to within one octave

{
  unison: Rational(1, 1),
  minor_second: Rational(256, 243),        # Pythagorean minor second
  major_second: Rational(9, 8),            # Pythagorean major second
  minor_third: Rational(32, 27),           # Pythagorean minor third
  major_third: Rational(81, 64),           # Pythagorean major third (ditone)
  perfect_fourth: Rational(4, 3),          # Perfect fourth
  tritone: Rational(729, 512),             # Pythagorean tritone (augmented fourth)
  perfect_fifth: Rational(3, 2),           # Perfect fifth
  minor_sixth: Rational(128, 81),          # Pythagorean minor sixth
  major_sixth: Rational(27, 16),           # Pythagorean major sixth
  minor_seventh: Rational(16, 9),          # Pythagorean minor seventh
  major_seventh: Rational(243, 128),       # Pythagorean major seventh
  octave: Rational(2, 1)                   # Octave
}.freeze
CHROMATIC_RATIOS =

Additional chromatic intervals for enharmonic equivalents

{
  augmented_unison: Rational(2187, 2048),   # Pythagorean augmented unison (sharp)
  diminished_second: Rational(256, 243)     # Same as minor second in Pythagorean
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(reference_pitch: :a440, tonal_center: nil) ⇒ Pythagorean

Returns a new instance of Pythagorean.



30
31
32
# File 'lib/head_music/rudiment/tuning/pythagorean.rb', line 30

def initialize(reference_pitch: :a440, tonal_center: nil)
  super(reference_pitch: reference_pitch, tonal_center: tonal_center || "C4")
end