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って昔から中途半端な印象があって不思議に思っ