読者です 読者をやめる 読者になる 読者になる

新・日々の暮らしに疲れてない?

一人バンド、火頭工房

Web Audio API のfilterの扱いが意外と繊細だったことについて。

プログラミング

どうも火頭です。

記事のタイトルは少しラノベを意識してみましたがいかがでしょう?

 

自分のサイト こちら で自作の音楽を聴けるようにしていまして、これはWeb Audio APIという技術を使って楽曲を再生させています。比較的新しい技術なので、ブラウザの更新に伴いバグが出たりするのでたまに動作確認をするのですが、久しぶりにバグに出くわしました、というお話。

 

楽曲の再生途中で「音がばらばらと崩壊する」とでも言いましょうか、ジジジ...と急に音が消え始め、しばらくして音量が0になる、みたいな感じ。タイミングがまともではないので、あーバグだな、と思いました。

 

元のmp3ファイルが破損しているのかな?と思ったのですが、再生してみても異常なし。ローパスフィルターをいじったらバグが出るので、どうやら原因はフィルターにあり。

 

var default_frequency = 44100;

var new_frequency = 400;

 

filter.frequency.value = new_frequency;

 

こんな感じで変数で代入してるのがダメなんかなーとか、不毛な試行錯誤をした結果...

 

var default_frequency = 44100; ←こいつがダメだったようです。

 

数字を20000とかキリの良いものに変えたら治りました。なんじゃそりゃ!

 

正確には、元が44100だったかなんだか忘れましたが、とにかく指定する周波数が問題だったようです。わけがわからん。

 

最後に言いたいことは、私のサイトで音楽聴いてね、ということです。YouTubeとかSoundCloudにはない素敵な機能を備えてるんだからー。

 

おわり