投稿

2月, 2011の投稿を表示しています

Javaでギター用チューナーでも作ろうか

イメージ
昨年末からプログラムをやっていないので、忘れないために2ヶ月ぶりに再開してみる。今回はギター用チューナーでも作ろうかと思うが、毎回のように予備知識なしなので、適当に考えて、それを実現させようかと思う。 まずはギターの音を録音して波形を見てみた。サンプリング周波数は44100Hzで録音してみた。赤字の周波数が各弦のジャストチューニング。その横はジャストのときのサンプリング数。その下はジャスト前後のサンプル数と周波数。 1弦 329.62756Hz (133.7874sample) 134sample(329.1045Hz) - 133sample(331.5789Hz) 2弦 246.94165Hz (178.5847sample) 179sample(246.3687Hz) - 178sample(247.7528Hz) 3弦 195.99772Hz (225.0026sample) 226sample(195.133Hz) - 225sample(196.000Hz) 4弦 146.83238Hz (300.3425sample) 301sample(146.512Hz) - 300sample(147Hz) 5弦 110.00000Hz (400.9091sample) 401sample(109.975Hz) - 400sample(110.250Hz) 6弦   82.40689Hz (535.1494sample) 536sample(82.2761Hz) - 535sample(82.430Hz) 波形のかたち 思ったよりも素直だ。倍音が結構含まれているから、もっとギザギザかと思ったけど、そうでもなかった。6弦だけがちょっと倍音が多いけど。 周波数とサンプリング数の関係 上記のように何サンプルでジャストチューニングになるのかを計算したら結構中途半端になった。精度を上げるためにはちょっと細工が必要かもしれない。主流のサンプリング周波数はいくつかあって、44100Hz、48000Hz、96000Hzなどが一般的で高音質な部類になると思う。そこで思ったのだがCDのサンプリング周波数である44100Hzって昔から中途半端な印象があって不思議に思っ

音叉でチューニング

イメージ
ギターのチューニングは音叉で行っているのだが、チューニング手順はいろいろあるようだ。一般的な方法としては、ギターの5弦開放を音叉で合わせた後、5弦と6弦、5弦と4弦、4弦と3弦を5フレットと開放やハーモニックスを使って合わせていく。1、2弦はいろいろな方法があるようだが、ひとつは6弦と1弦を合わせて、最後に1弦と2弦を合わせて完了。これは5弦を中心としたチューニングとも言える。 使用している音叉 Wittner 921 ウイットナー(ドイツ) ギターを始めたときは、上記のようなやり方で合わせていたが、5弦のみを基準にするので、どこかで調整が甘いと、その先ズレまくるという欠点がある。またハーモニックスもオクターブの関係にある2倍音(12フレットナチュラルハーモニックス)、4倍音(5フレットナチュラルハーモニックス)なら問題ないが、3倍音(7フレットナチュラルハーモニックス)では平均律ではなく、純正律で2セント高くなってしまう。またハーモニックスはオクターブチューニングや弦の太さにも影響を受けるため、あまり信用できない。 下はAと5度上のEのハーモニー。上段が平均律で緩やかなうなりがある。下段が純正律でうなりがない。 ギターで3倍音のハーモニーを使ってチューニングすると僅かながらズレてしまうことが分かる。 上段平均律 A220Hz E329.6275569128699Hz 下段純正律 A220Hz E330Hz そこでなるべく音叉で各弦をチューニングする方法に変更した。具体的なやり方はこんな感じ。 独自の音叉によるチューニング方法 5弦 5フレット上のナチュラルハーモニックスと 音叉  440Hz 3弦 2フレット(14フレットナチュラルハーモニックス) と 音叉  440Hz 1弦 5フレット と 音叉  440Hz 4弦 開放 と 5弦5フレット 2弦 開放 と 3弦4フレット 6弦 5フレット上のナチュラルハーモニックス と 1弦開放 こんな感じで5、3、1弦は音叉とあわせている。残りの弦は隣の音叉で合わせた弦や、オクターブ関係にある弦に合わせるので、ズレは生じにくくなっている。しかし、オクターブチューニングなどがしっかり出来ていないと、かえってまずい結果になるとも言える