[トップ][ノート][編集履歴][一覧][最近の更新][->English]

Audio

Category of Audio

オーディオねた。

圧縮音楽ねた、オーディオ一般ほかなんでもあり。

Programming/Audio/mpd-japanese-patch

Category of Programming
Category of Audio

そういえば、OpenBSD-cvs:ports/audio/mpdのShift-JIS対応パッチを置いておくのを忘れてた。これがないと困る人は多いはず。

このパッチを当てることで、 charsetを類推して変換後、 utf8でデータベースに登録するようになる。

インストール後に、 /etc/mpd.conf中のid3v1_encodingを"Japanese"に設定した後で、

 # mpd --create-db

するなり、クライアント側からupdateするなりお好きなように。

Gauche付属のguess-jpを使わせてもらってます。感謝!

Programming/Audio/last.fm

Category of Programming
Category of Audio

OpenBSD-cvs:ports/audio/gmpcの出来がなかなかいいので(ほんとうはAmarokでもいいのだけど、KDEの一部なのでビルド時間がもったいない)、 せっかくだからaudioscrobblerも試してみた。

音楽を聞いているマシンではOpenBSD-cvs:ports/audio/mpdOpenBSD-cvs:ports/audio/mpdscribbleを走らせればOK。 あ。もちろんlast.fmのアカウントも必要だな。

あとはサーバを用意して、cgiを設置。 このページのメニューのcgiは、こんなの

最終アクセスから15分経過していたら拾ってくるようにしてみた。 あんまり向こうのAPI叩きすぎるのも悪いし。

やっつけ仕事なので、不具合があるかも。

Audio/aotuv-beta4.5

Category of Audio

Beta4から更新されたので、早速入れ替えてみたのだが、oggencのオプション-qを0より小さくするとセグる。

lib/psy.c:_vp_offset_and_mix()の

for(i=0;i<n;i++){
...
                if((logmdct[i]-lastmdct[i]) > 20){

で-q=-1等のときnが256になって、 lastmdct[i]がオーバーランしているようだ。

lastmdctはlib/mapping0.cにて、

 b->nblock+i*128;

となっていて(iはchannel数)、 nblockのサイズはlib/block.cにて128*channel数と決め打ちになっている。

しかたがないから、むりやりバッファを増やしてみた。

--- lib/block.c.orig    Sun Nov  6 10:28:03 2005
+++ lib/block.c Sun Nov  6 10:28:16 2005
@@ -288,8 +288,8 @@
   b->psy_g_look=_vp_global_look(vi);

   /* added by aoyumi */
-  b->nblock = _ogg_calloc((128*vi->channels), sizeof(*b->nblock));
-  b->tblock = _ogg_calloc((128*vi->channels), sizeof(*b->tblock));
+  b->nblock = _ogg_calloc((128*vi->channels)*2, sizeof(*b->nblock));
+  b->tblock = _ogg_calloc((128*vi->channels)*2, sizeof(*b->tblock));
   b->lownoise_compand_level = _ogg_calloc(vi->channels, sizeof(*b->lownoise_compand_level));

   /* Initialize the envelope state storage */

これが期待されたエンコード結果を生成しているのかまったく自信がない(糞耳)。


とかなんとかいいながら、 -q=-2などとやって遊んでいるのだが(平均ビットレートは30〜40kb/sくらい)、 変な歪みもなくてよい。

Audioに関する全てのエントリ