Module: DSP::Scales
- Defined in:
- lib/dsprb/scales.rb,
sig/dsprb.rbs
Constant Summary collapse
- MEL_SCALE =
O'Shaughnessy's mel scale, m = 2595 log10(1 + f / 700).
2595.0- MEL_BREAK_HZ =
700.0- SEMITONES_PER_OCTAVE =
12.0
Class Method Summary collapse
- .hz_to_mel(hz) ⇒ ::Float
- .hz_to_semitones(hz, reference:) ⇒ ::Float
- .mel_to_hz(mel) ⇒ ::Float
- .semitones_to_hz(semitones, reference:) ⇒ ::Float
Class Method Details
.hz_to_mel(hz) ⇒ ::Float
13 |
# File 'lib/dsprb/scales.rb', line 13 def hz_to_mel(hz) = MEL_SCALE * Math.log10(1.0 + (hz / MEL_BREAK_HZ)) |
.hz_to_semitones(hz, reference:) ⇒ ::Float
17 |
# File 'lib/dsprb/scales.rb', line 17 def hz_to_semitones(hz, reference:) = SEMITONES_PER_OCTAVE * Math.log2(hz / reference) |
.mel_to_hz(mel) ⇒ ::Float
15 |
# File 'lib/dsprb/scales.rb', line 15 def mel_to_hz(mel) = MEL_BREAK_HZ * ((10.0 ** (mel / MEL_SCALE)) - 1.0) |
.semitones_to_hz(semitones, reference:) ⇒ ::Float
19 |
# File 'lib/dsprb/scales.rb', line 19 def semitones_to_hz(semitones, reference:) = reference * (2.0 ** (semitones / SEMITONES_PER_OCTAVE)) |