MacのGoogle Chromeでaudioタグでwavファイルを再生すると,たまに変な音になってた.
しばらく原因不明だったけど,Google Chromeがバグっていて,8bitのwavファイルは再生できないようだった.
8ビットモノラル,16ビットモノラル,16ビットステレオのaudioタグを再生できるページを作った.Firefoxとかではどれも再生できるけど,MacのGoogle Chromeでは一番上のだけ変になってる.
http://hitode909.appspot.com/audiotag/
WindowsのGoogle Chromeではちゃんと音が出るといった情報もあるけどよく分からない.Windowsでは再生できるらしい.
容量は2倍になるけど,変な音が出るよりましだから,wavファイルを再生したいときは,16ビットにすればよさそう.
8ビットだと1文字だけど,16ビットだと2文字なので,XHRでwavファイルのバイナリを取得してビート検出したりするのがちょっとめんどくさい.
8ビットだと1サンプルが1文字で簡単で,
buffer.charCodeAt(i) & 0xff
こんなんでできるけど,16ビットだと,
(buffer.charCodeAt(i) & 0xff) << 8) + (buffer.charCodeAt(i+1) & 0xff
みたいになる.ちょっとめんどくさい.
前に作った,アーメンブレイクを自動再生するやつがしばらく変だったけど,8ビット決め打ちのところを直して,本来の音が出るようになった.
http://hitode909.appspot.com/amen/
MacBookを傾けるとサイン波とかを出すやつは中でwavファイルのバイナリを直接出してるのだけど,まだ直ってない.直そうとしたけど,たぶんヘッダが間違ってるとかで,うまくいかなかった.
http://hitode909.appspot.com/wav/