音階とは何かを知る
音が1オクターブ(低いドから高いド)変わると、音の周波数(空気の振動)が2倍異なります。
半音(ドとドのシャープや、ミとファ)の間の周波数の差は、2の12乗根倍異なることになります。これは、音の振動数は等比数列になっていることを意味します。
周波数から音階を計算する
とは、いえ、タダでさえ、等比数列と聞いて頭痛が痛い人がいると思うので、pythonでスクリプトで計算できるようにしました。
music_scale.py
を
たとえば、
python music_scale.py 2093
のようにすれば、2093Hzの音のドレミ...(C,D,E...)を計算してくれます。440Hzを基本のラの周波数としています。
CADデータを準備
ホイッスルを設計します。
円柱と直方体からなる形を作成し、それと比較して、壁の厚み
t
だけ小さい空洞を開けます。また、空気の出口を平行六面体で差を取ることで穴を空けます。
いくつかのサイズの異なったホイッスルを設計したいため、変数の値を変えるだけで、変更できるOpenSCADを利用して作ります。
whistle_scad.zip
これを解凍後、templateにある変数を変えて、好みのホイッスルを作成できます。
サイズを変えて印刷
サイズを変えて、いろいろと印刷します。
FDMの3Dプリンターの場合、サポートなしの設定にしてください。平らな面を下にすれば、サポートなしでも、印刷できます。
鳴るホイッスルになるようにいくつも印刷して調節します。
鳴るものが出来たら、大きさを変えて、少なくとも3つぐらい印刷します。
サイズと周波数の関係を調べる
作成する大きさを変えて印刷したら、例えば倍率と周波数でグラフにしてみます。
audacity
というソフトウエアで、音の高さは調べることが出来ます。
周波数は倍率に比例しているようです(倍率というより、
r
の値かもしれません)。
回帰曲線から、周波数でサイズを見積もります。
1オクターブをハ長調で作るなら、次のものが参考になると思います。
ド : 2093 Hz
レ : 2349 Hz
ミ : 2637 Hz
ファ: 2793 Hz
ソ : 3135 Hz
ラ : 3519 Hz
シ : 3951 Hz
ド : 4186 Hz
音のファイル
コンピュータで計算して作った音です。この音を目標にホイッスルのサイズを決定しました。
0_c_2093.wav
1_d_2349.wav
2_e_2637.wav
3_f_2793.wav
4_g_3135.wav
5_a_3519.wav
6_b_3951.wav
7_c2_4186.wav
ピアノの一番高い音付近になります
調節したサイズで印刷
一つの印刷の時間は短いので、それほど大変ではないはずです。
印刷するたびにきちんと目標の音が出ているか調べると良いです。
一つできるたびに、サイズと音の回帰直線の修正を行うほうが良いと思います。
一通りできたら、喜びましょう!