Class: HeadMusic::Tuning

Inherits:
Object
  • Object
show all
Defined in:
lib/head_music/tuning.rb

Overview

A tuning has a reference pitch and frequency and provides frequencies for all pitches The base class assumes equal temperament tuning. By default, A4 = 440.0 Hz

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(reference_pitch: :a440) ⇒ Tuning

Returns a new instance of Tuning.



8
9
10
# File 'lib/head_music/tuning.rb', line 8

def initialize(reference_pitch: :a440)
  @reference_pitch = HeadMusic::ReferencePitch.get(reference_pitch)
end

Instance Attribute Details

#reference_pitchObject

Returns the value of attribute reference_pitch.



4
5
6
# File 'lib/head_music/tuning.rb', line 4

def reference_pitch
  @reference_pitch
end

Instance Method Details

#frequency_for(pitch) ⇒ Object



12
13
14
15
# File 'lib/head_music/tuning.rb', line 12

def frequency_for(pitch)
  pitch = HeadMusic::Pitch.get(pitch)
  reference_pitch_frequency * (2**(1.0 / 12))**(pitch - reference_pitch.pitch).semitones
end