Muse Labs Tools について


Muse Labs Tools(以下 MLT)は、Mac OS X のコマンド「afplay」でオーディオファイルを再生するツール群です。

afplay が OS X の標準コマンドになったのは 10.5 からですが、それよりも前からすでに Developer Tools に afplay のソースがありました。しかし当時の afplay はそれほど良い音ではなく、そのこともしばらく忘れていたのですが、ふと思い出して 10.6 で再度確認してみたところ、これがとんでもなく良い音なので私たち一同は驚愕したものです。2010年2月5日のことでした。

afplay はシェルコマンドです。これを利用するには通常はターミナルを使います。CUI に慣れていればいいのですが、触ったこともない人がほとんどでしょう。しかも、afplay は引数として1つのファイルしか受け付けません。連続再生をするにはコマンド命令を工夫する必要があり、それをいちいち手動でターミナルに入力するのは非現実的な作業です。MLT はこの不便さをどうにかできないか、という目的で作られました。

ターミナルに劣らない再生方法を模索

まず最初に直面したのは、AppleScript や ShellScript では音質劣化してしまうという現象でした。コードを最低限のギリギリまで簡素にしても、ターミナルでの再生品質には到底及びません。「AppleScript でターミナルを操作する」という方法も試しましたが、これも手動実行よりあきらかに劣化してしまいました。

こうした試行錯誤を繰り返した結果、私たちは最後に「ソフトウェア自身がターミナルとしてシェルに直接命令を出す」という方法を試みました。こうしてなんとか「ターミナルに劣らない、もしくはそれ以上の品質」にできたのではないかと思っています。
(ちなみに AppleScript の do shell script で同様のことはできますが音質はかえって劣化します)

利便性と再生品質は反比例する

当初、MLT の Player にはウインドウがありました。どうにか利便性を加えたいと願ってのことです。しかしこれも結局は「ウインドウがあるだけで音質劣化する」と結論付けるしかなく、最低限の「選択ダイアログ」のみを残してすべての GUI を削除するに至りました。

再生ファイルをユーザが指定する方法には、選択ダイアログの他に「app へのドラッグ&ドロップ」があります。しかし明白な音質劣化が認められたので、ドラッグ&ドロップ は即却下となりました。

このような経緯から、私たちは「利便性と再生品質は反比例する」と確信するようになりました。MLT の Player は自分で再生はしません。Shell を通して afplay へ命令を送るだけです。それでも再生品質へ敏感に影響するのですから「再生に関わるソフトウェアはなるべくなにもしない方が良い」と私たちは考えます。MLT の Player が最低限の利便性である「CUIを使わない」「連続再生できるようにする」以外のすべてを捨て去った異常なほどの簡素な仕様になっているのは、それが理由です。

完成版の v1.2.2 は2月27日に出来上がりました。ここへ至るまでに、そして今も私たちは様々なことを試しています。それらについては、徐々にお知らせしていこうと思います。
(toposcope)