« 「OK, Google」で悩む | トップページ | 曲探しで悩む »

2018年9月17日 (月)

SoundPlay()で悩む

音楽生成のWEBページを作ったり、自前で生成したりしていて、これをWEBアプリケーションとしてまとめようとかしていたのだが、どうにもJavaScriptではうまくいかない。

ブラウザによって動作が違ったりするのが耐えられないので、Windowsのアプリケーションとして作ってみようと思った。

で、音を出すのはMIDIではなくて音程の一つ一つをWAVファイルとして作って、これをWindowsのAPIで鳴らしてやろうというわけなのだが、これでちょっと困ったことになっている。

まず、これが作成したWAVファイル。すべての音程で長さを0.5秒に揃えている。

Trai50_45
波形は三角波で、拡大するとこんなふうになっている。

Trai50_45_zoomed
こんな音だ。

「Tri50_45.mp3」をダウンロード

ところが、このWAVファイルをSoundPlay()というAPIで鳴らすと、こんな音になってしまう。

「Track14_captured.mp3」をダウンロード

どうなってるんだ? ということでこの音をキャプチャするとこんなふうになっている。

Trai50_45_captured
聞いた感じでも頭に何か付いている感じだし、長さが0.2秒ほど長くなってしまっているのでたしかにそういうことなんだろうと思うが、原因がよくわからない。同じWAVをちょっとずらして重ねているのかと思ったがそうでもないようだ。

このAPIはWAVファイルが見つからなかったり、ファイル形式が違っていたりすると警告音を出すという仕様なので、私が作ったWAVになにかまだ気に入らないところがあるのかもしれない。そう思ってWindowsの標準サウンドを鳴らしてみたりするのだが、これはちゃんと鳴らせている。

22Kサンプルのモノラルっていうのが気に入らないのかなぁ?ファイル容量を増やしたくないのでこういう仕様にしているんだけれども。

とか言いつつ、いろいろなデータを食わせて試していると、上記の変な音が出なくなった。どういうことなんだろうか? まぁちょっとだけ気にしつつ先へ進んでみよう。






|

« 「OK, Google」で悩む | トップページ | 曲探しで悩む »

音楽」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« 「OK, Google」で悩む | トップページ | 曲探しで悩む »