セント (音楽)

出典: フリー百科事典『ウィキペディア(Wikipedia)』
2014年4月5日 (土) 18:34時点におけるPuckottini (トーク)による版 (セント値から周波数比へ: #to_rでは厳密すぎて分数になりません。テスト実行はされましたか?サンプルとしてもひどすぎます。そしてEPS値の調整は読者に任せるのが妥当です。)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

セントは、1オクターブの1200分の1の音程である。音律を理論的に表示し、わかりやすくするために使われる対数値の一である。イギリスの音響学者・比較音楽学者、エリス Alexander John Ellis(1814年 - 1890年)が提唱した。

すなわち、nセントとは2音間の周波数比が 2n/1200 : 1 であることをいう[1]。つまり、2音の周波数が f0, f1 のときには、f0 から見て f1 は 1200 log2 (f1/f0) セントだけずれていることになる。

これにより、十二平均律全音は200セント。半音は100セントとなる。ピタゴラス音律長2度大全音の音程比9/8は約204セント。音程比からセント値を求めるには、音程比の常用対数を2の常用対数で割って1200を掛ければよい(1200*log音程比/log2)。

同様の用途に使われるものに、ミリオクターブがある。これは1オクターブを1000ミリオクターブとするものである。

単位換算

プログラム

2 音の周波数比(振動数比)とセント値とを換算する Ruby[脚注 1] プログラムを示す。

周波数比からセント値へ

周波数比 5:4 である音程[脚注 2]のセント値を求めるには次のように実行する。

ruby ratio_to_cent.rb 5 4

ratio_to_cent.rb
#!/usr/bin/ruby

if ARGV.size != 2 then
  STDERR.puts "使い方: #{$PROGRAM_NAME} f1 f2"
  exit 1
end

def ratio_to_cent(ratio)
  return Math.log2(ratio.to_f) * 1200.0
end

ratio = Rational(ARGV[0], ARGV[1])
printf("セント値: %4.3f\n", ratio_to_cent(ratio))

セント値から周波数比へ

386 セント離れた 2 音[脚注 2]の周波数比を求めるには、次のように実行する。

ruby cent_to_ratio.rb 386

cent_to_ratio.rb
#!/usr/bin/ruby

if ARGV.size != 1 then
  STDERR.puts "使い方: #{$PROGRAM_NAME} cent"
  exit 1
end

EPS = 0.008

def cent_to_ratio(cent)
  ratio = 2**(cent.to_f / 1200.0)
  return ratio.rationalize(Rational(EPS))
end

cent = ARGV[0].to_f
ratio = cent_to_ratio(cent)
printf("振動数比: %d:%d\n", ratio.numerator, ratio.denominator)

脚注

テンプレート:Reflist

出典

テンプレート:Reflist
  1. テンプレート:Cite book


引用エラー: 「脚注」という名前のグループの <ref> タグがありますが、対応する <references group="脚注"/> タグが見つからない、または閉じる </ref> タグがありません