class HeadMusic::Tuning

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

Attributes

reference_pitch[RW]

Public Class Methods

new(reference_pitch: :a440) click to toggle source
# File lib/head_music/tuning.rb, line 10
def initialize(reference_pitch: :a440)
  @reference_pitch = HeadMusic::ReferencePitch.get(reference_pitch)
end

Public Instance Methods

frequency_for(pitch) click to toggle source
# File lib/head_music/tuning.rb, line 14
def frequency_for(pitch)
  pitch = HeadMusic::Pitch.get(pitch)
  reference_pitch_frequency * (2**(1.0 / 12))**(pitch - reference_pitch.pitch).semitones
end