サンプルプログラム
関数と、構造体を使った、サンプルの簡単なプログラムです。周波数をセント値に変換する関数と 440Hzを基準にしたときの平均律の半音階ステップで変わる周波数表示の関数が含まれています。 ファイルは、ヘッダーファイルとメイン関数のCソース、そして、関数のソースの3つのファイルです。 プログラムの動作は、最初、入力値を聞いてくるので、10〜4000くらいの間の適当な周波数を入力します。 次に、440Hzからの移動値を聞いてくるので、-50〜50、までの間の適当な整数値を入力します。 入力が完了すると、結果が、表示されます。
- ヘッダーファイル:[cent.h]
- メイン関数のソース:[main.cpp]
- 関数のソース:[function.cpp]
参考までに440Hzを基準にした時の移動値と周波数、セントの表を掲載しておきます。
移動値 | 音階名 | 周波数 | セント差 |
---|---|---|---|
0 | A3 | 440.00 | 0 |
1 | A#3 | 466.16 | 100 |
2 | B3 | 493.88 | 200 |
3 | C4 | 523.25 | 300 |
4 | C#4 | 554.36 | 400 |
5 | D4 | 587.33 | 500 |
6 | D#4 | 622.25 | 600 |
移動値 | 音階名 | 周波数 | セント差 |
---|---|---|---|
0 | A3 | 440.00 | 0 |
-1 | G#3 | 415.30 | -100 |
-2 | G3 | 391.99 | -200 |
-3 | F#3 | 369.99 | -300 |
-4 | F3 | 349.23 | -400 |
-5 | E3 | 329.63 | -500 |
-6 | D#3 | 311.12 | -600 |
メイン関数の部分を適当に修正すれば、例えば、440Hzを基準としないで他の周波数を基準にしたり、 基準の周波数を入力にする方法もあると思います。いろんな方法で、セントの値が求められます。