« 2013年2月 | トップページ | 2013年9月 »

2013年5月の1件の記事

2013年5月 5日 (日)

FLAC/MP3/DSD 管理・再生ソフト: TuneBrowser

TuneBrowser

先日、まだベータ版ながら TuneBrowser というソフトをリリースさせていただいた。どういうソフトか、というのは、専用のページを作ったのでそちらを参照いただくとして、きちんとしたソフトを開発・公開するのはひさしぶりなので、経緯について、すこしだけ。

以前、ご要望をいただいてfoo_NowPlaying.gadgetというWindows用ガジェットを公開した(国内外からたくさんダウンロードいただいた――多謝)。これはスクリプト主体の比較的「気軽なツール」だったし、それにしてももう3年以上まえのことだ。個人用の小さなツールはいまもなにかと作ってはいるが、今回のTuneBrowser のような「ちゃんとした」アプリケーションは、ほんとうにひさしぶりのことになる。


過去このブログで紹介してきたように、これまでは楽曲の管理・再生ソフトとしてfoobar2000を使っていた。

foobar2000は、開発に携わる者としていまもひとつの目標でありつづける大変素晴らしいソフトだが、ユーザとしては、いつしかプラグインとTitleFormatに疲れるようになっていた。とくに、前回までの記事に書いたようなタグのデータ管理をするためには、長大なTitleFormatを駆使し、それでも足りないところは自分用のfoobar2000プラグインを作成して補っていた。

そのうち、面倒な設定なしで、自分の思うような管理ができるソフトを作ればいいのではないか――そう思うようになった。もちろん、自分で作るとはいってもそれは大変だから、foobar2000以外のソフトも試してみたが、残念ながらこれはと思うものには出会えなかった。

いまから――というのは2010年ごろのことだが――あたらしく作るのであれば、近年のPCのパワーを生かし、できるだけ「棚をながめてCDを選ぶ」ような操作性が実現できたらいい――そう思って開発をはじめた。実際できあがったTuneBrowserはそうなってないじゃないか、というお叱りもあろうかと思うが、ここ2年ほど、ほんとうにざまざまなユーザ・インタフェース、描画方式を試してきて、現在のかたちに落ち着くようになった。まあ、正直なところ「棚をながめてCDを選ぶ」というところには追いつけていないような気は薄々するけれど(笑)。

なおこれは開発手法の話だが、TuneBrowserは、はじめはWTL+Direct2Dで作成していたが、途中で最近のMFCの進化に驚き、MFC+Direct2Dによる開発に切り替えることになった。

というわけで、もともとはTuneBrowserは楽曲管理専門のソフトウェアでスタートしたのだった。当然、選んだ楽曲は聴いてみたくなる。そのために、はじめはTuneBrowserから外部のMPDあるいはfoobar2000を制御できるようにした。

しかしそれでは、どうしても再生に関して細かい制御をすることがむずかしい。そこでBASS Audio libraryを利用して、自前の再生機構をTuneBrowserに組み込んだ。BASSはシェアウェアにする際にライセンス料が発生するが、そう高いものでもない。これはこれで完成した。と思った。

ところが、最近になってPCでのDSDネイティブ再生が手の届くところにやってきた。これは革命的だ、と感激したが、BASSがDSDをサポートする気配はなさそうだった。BASSと心中する (BASSの対応を待つ) か独自の道を歩むか、悩みに悩んで本当に悩んで、結局デコードと再生の機構をすべて自前で作り直すことにした。

すべてとは言っても、もちろんFLACやTTAなどの各音源フォーマットが提供しているデコーダのソースコードは活用させてもらっている。またDSDIFFのDST圧縮のデコードは、ISO の Philips によるリファレンス実装を入手し、内在している不具合を何日もかけて直したうえで使ってみたが、これが性能的にリアルタイムのデコードにはまったく追従できないものだった。結局DSTデコードは Super Audio CD Decoder project がLGPLで公開している改良版を活用させてもらった。DSTデコード以外の部分はすべて自前の処理ではあるけれど, ぼくの数学の能力を考えると, このDSTデコーダがなかったとしたら, DSDIFF形式/DST圧縮のDSDのネイティブ再生は実現できなかったと思う。このプロジェクトの成果は本当に素晴らしい。

ぼくは音楽再生プログラミングの方法論に詳しいわけではない。ただ仕事がら、C++ によるミッションクリティカルなバックエンドの24時間稼働のサーバシステム (≒デーモン/サービス) をたくさん開発してきた経験はある。だから、TuneBrowser のオリジナルの再生エンジンの開発は (心の奥底では(^^;) 勝算のあるチャレンジに思えた。そしてその経験から、デコード+再生の処理・スレッド構成はできるだけシンプルでロバストな構造になるようにして、読み込んだデータを ”クリーン” に保ったまま最小のCPU時間でデバイスへ渡す、ということを心がけた。結果は、ユーザになっていただいた方の耳でご判断いただければ、と思う。

§

ちなみに、世の中にはTunesBrowserというソフトがすでに存在している。あちらはLinux用であり、別のソフトだ。まぎらわしいので(^^;名前を変えようかとも思ったが、かといって良い名前も思いつかないので、このままリリースすることにした。

TuneBrowserは、foobar2000の表示や再生に関するカスタマイズが億劫な方、TEACやLuxmanが出しているメーカ製のDSD対応再生ソフトウェアでは楽曲管理機能が物足りないと感じられる方、iTunesではクラシック音楽などで管理できる情報が不足しているとお感じの方、そして、ソフトウェアの再生エンジンによる音質の差に興味のある方は、一度お試しいただければ、と思う。ちょっとドキドキしながら(笑)ダウンロードお待ちしています。

 

| | コメント (1)

« 2013年2月 | トップページ | 2013年9月 »