aplayex

現在位置のナビ

トップコンピュータの国フリーソフト → aplayex

ご挨拶 2011年3月

2011年3月11日東日本を大地震と津波が襲いました。 命を落とされた方のご冥福を祈るとともに、 被災された方へお見舞い申し上げます。

2011年3月末現在、東京電力管内は電力不足になり計画停電が続いております。 このようなタイミングで本ページのオーディオツールを公開することは、正直抵抗がありました。 オーディオという不要不急の趣味のために電力を消費することは、 東京電力管内では勧められません。 しかし、被災地以外にも人は住んでおります。 東日本を援助してくださる西日本の方、 あるいは日本を援助してくださる海外の方もいらっしゃいます。 そのような方々に、私が感謝の意を表することができるとすれば、 このようなフリーソフトの公開がもっとも簡単な手段です。 東日本に対する救いの手への一つの感謝として、 このフリーソフトの公開があると考えていただければありがたいです。

2011年3月末日 webmaster

説明

最新のLinuxからUSBオーディオを使用するには、 一般にALSAというドライバを使用します。 このALSAを用いて再生するコマンドラインプログラムにaplayがあります。 aplayにはいろいろと制限があったので、拡張版のaplayexを作成しました。 また、aplay,aplayexを簡単なGUIから操作するために、Xaplayを作成しました。 その二つをここで公開します。

別ページで紹介した、 特定のデバイス専用再生アプリもパッケージに含めました。

さらにパッケージバージョン1.3.0で、 圧縮フォーマットをビットパーフェクトで再生するアプリも追加しました。 展開にはffmpegというライブラリを利用しています。

さらにパッケージバージョン1.5.0で、 udaplayがDoP方式によるデルタシグマデータの再生に対応しました。

aplayex

aplayは、再生するデバイスが受け付けるフォーマットと、 再生するファイルのデータフォーマットが一致している必要がありました。 例えば、デバイスが44.1/48kHzfs,24bit,little endian,2chだった場合、 再生できるファイルは44.1/48kHzfs,24bit,little endian,2chに限られます。 この例では、以下のフォーマットは形式違いとなって再生することができません。

  • 44.1kHzfs,16bit,little endian,2ch
  • 44.1kHzfs,24bit,big endian,2ch
  • 44.1kHzfs,24bit,little endian,5.1ch
  • 88.2kHzfs,24bit,little endian,2ch

aplayexは、フォーマット違いのうちビット長とエンディアンの違いを変換して、 再生できるようにするコマンドです。 サンプリング周波数と、チャネル数の違いは、変換しません。 先の例で言うと、 16bit,little endianと24bit,big endianを再生できるようにします。

aplayには、録音機能もありました。 aplayexは、aplayの録音機能も引き継ぎながら、 再生時と同様のフォーマット変換をできるように設計してあります。 ただ、録音機能の試験はほとんど行っていないので、不具合のある可能性が高いです。

Xaplay

aplay,aplayexおよびudaplayは、 端末からキーボードでコマンドを入力して使用します。 ウィンドウのGUI操作に慣れた方には、不便な方式だと思います。 そこで、aplay,aplayex,udaplay,alsaplayを GUIから操作できるように簡単なフロントエンドGUIを作成しました。 それが、Xaplayです。

インストール方法

すでにaplayexを単体で試用されている方へ

aplayexの試験にご協力いただき、ありがとうございます。 このパッケージをインストールする前に、試用している古いaplayexを削除してください。

すでに以前のaplayexパッケージをインストールした方へ

全員共通のインストール方法をみてインストールしてください。 古いパッケージは、自動的に消されます。 またインストール時には、念のためXaplayなどを終了しておいてください。

全員共通のインストール方法

Ubuntu Linux用にパッケージを作成しました。 32bit/64bitのどちらか自分のOSと合う方を選んで、後にあるリンクからコピーしてください。

その後、端末から以下のコマンドを入力します。

32bit版
sudo dpkg -i aplayex_1.5.0_i386.deb
64bit版
sudo dpkg -i aplayex_1.5.0_amd64.deb

端末からコマンドを入力する代わりに、 ファイルブラウザの中に表示されたdebファイルをダブルクリックしてもいけるかもしれません。

Ubuntu以外のLinuxでも、 debパッケージをバラして中のファイルを適切なディレクトリに配置すれば、 動作する場合もあります。

使用方法

パッケージをインストールすると、Unity3DのDashメニュー 『インストール済み』の中にXaplayがあらわれます。 まず、Xaplayを起動してください。

次にXaplayの上部にあるデバイス名のコンボボックスを選択し、 再生に使用したいデバイスを選択してください。

さらに上部のコマンド設定名のコンボボックスを選択し、 再生に使用したいコマンドを選択してください。

以上で再生の準備は終わりました。 再生したい音声ファイル(一度に複数でも可)を Xaplayのウィンドウにドラッグ&ドロップします。

aplayexとbit perfect

aplayex,Xaplayを作成したそもそもの動機は、 bit perfect再生をもっと手軽に楽しみたいというものでした。 基本的に、aplayex,Xaplayでの再生は、 bit perfectになっています。 ただし、例外もあります。

  • 例外1 フォーマット変換の結果、デバイスフォーマットの方が ファイルフォーマットよりも精度が低い場合
    16bit linear PCMのデバイスで24bit linear PCMデータを再生した場合、 再生は可能ですがbit perfectにはなりません。
  • 例外2 Xaplayの『デバイス設定』メニューで『必要に応じてフォーマットを変換する』にチェックを入れた場合
    最大サンプリング周波数が96kHzfsのデバイスで、176.4kHzfsのデータを再生する場合などにこのチェックを入れる必要がありますが、bit perfectにはなりません。

ライセンス

aplayexのライセンスは、GPLです。ソースコードを aplayexソースコードのリンクに置きます。

Xaplay,udaplay , alsaplayのライセンスは、再配布、利用に限り無料かつ自由とします。

alsaplayは、内部でffmpegのライブラリとダイナミックリンクしています。 ffmpegのうち、LGPL Ver.2.1で配布されている部分を使用しています。

バージョンアップしたところ

バージョン1.5.0から1.6.0で変更になった箇所を明記します。

  • 別ページ で説明している『中田式D/A変換』を試験するためのコマンドを追加しました。

バージョン1.4.1から1.5.0で変更になった箇所を明記します。

  • udaplayコマンドがDoP対応しました。従来のデバイスとDoPデバイスは自動判定します。
  • udaplay,alsaplayで、連続再生最後のファイルの末尾の再生に2重再生やデータ飛ばしの問題があったのに対処しました。

バージョン1.4.0から1.4.1で変更になった箇所を明記します。

  • Xaplayのテキスト画面が書き換わるタイミングでスクロールが発生し、画面が上下にブレていたのを止めました。
  • udaplay , alsaplayで、ホストのCPUとサウンドデバイ スの組み合わせによってはBroken pipeのエラーが出ていました。ALSAライブラリ内部で 使用するバッファサイズを調節して、エラーを減らしました。

バージョン1.3.2から1.4.0で変更になった箇所を明記します。

  • alsaplayでファイルを連続再生した際に、曲間で異常終了してしまうことがある問題に対応しました。
  • Xaplayのデバイス選択とコマンド選択コンボボックスを、メイン画面上部に移動しました。

バージョン1.3.1から1.3.2で変更になった箇所を明記します。

  • alsaplayで一部の圧縮ファイルを再生した際に、ファイルの末尾まできちんと再生できなかった問題に対応しました。

バージョン1.3.0から1.3.1で変更になった箇所を明記します。

  • udaplayがMacintosh対応前のUDAファームウェアで正しく働かない件をデバッグしました。 デバッグにはS氏にご協力いただきました。 この場でお礼申し上げます。

バージョン1.2.0から1.3.0で変更になった箇所を明記します。

  • udaplayの音声データ転送タイミングを大幅に見直しました。
  • udaplayでDSFファイルの連続再生に問題があったのを修正しました。
  • 圧縮音声の再生コマンドalsaplayをパッケージに含めました。

バージョン1.1.0から1.2.0で変更になった箇所を明記します。

  • udaplayで対応していなかった一部のDSDIFFフォーマットが再生できるようになりました。

バージョン1.0.0から1.1.0で変更になった箇所を明記します。

  • aplayexで浮動小数点フォーマットを再生する時の変換式に手を加えました。
  • Xaplayにアイコンができました。
  • Xaplayにドロップするファイル名で「”(半角ダブルクォート)」が付いていたときの不具合を直したつもりだったのですが、直っていないという指摘がありました。
  • Xaplayで、音楽CDをマウントした時に見えるWAVファイルの再生に対応しました。
  • UDA専用再生プログラムudaplayを追加しました。

バージョン1.3.2に関するご注意

バージョン1.3.2については、いくつか注意事項があります。

デバッグ時間を十分に確保できなかったので、大きなバグが残っているかもしれません。

音声の転送タイミングを大幅に変更したので、聴取環境によっては音質が変わるかもしれません。

以上を考慮して、バージョン1.2.0の公開も平行して続けます。

既知のバグ

Xaplayの『開く』メニューから、一部のファイルが開けません。

Xaplayで、半角ダブルクォートを含んでいるファイルの再生に問題があります。

Ver 1.4.1以降で有効な裏技

udaplayとalsaplayには、EUID==0で実行されると、自発的にプロセスの優先度を上げる機能がつきました。sudo で実行するか、udaplayとalsaplayファイルにSUIDビットをつけると試すことができます。

インストール時にSUIDビットを設定していない理由は、ユーザの立場で考えて付けてほしくないだろうと思ったからです。udaplayとalsaplayはソースコードを公開しておらず、バイナリのみ配布しています。私だったら、中身が保証されていないコマンドにSUIDビットが付いている場合、危険を感じます。

デルタシグマ再生の制限

デルタシグマファイルの再生時には、いくつかの注意点があります。

  • ファイルの連続再生時には、ファイル間に32サンプル(2.8224MHzで約1/100,000秒分)未満のパディングが入ることがあります。その意味で完全なギャップレス再生ではありません。パディングを入れる理由は、コーディングが楽になるからです。完全なギャップレス再生にはなりませんが、DoP連続再生時の曲間でPCMモードに戻ったりはしません。
  • udaplayを起動した場合、指定の出力デバイスがデルタシグマ対応であると仮定します。再生アプリケーションからでは、デバイスが176.4kHz24bit2chの出力を用意している場合、それがDoPを受け付けるのかそうでないのかを判別する手段がありません。そのため、従来から対応しているDoP以外の方式でない限り、DoPを受け付けるものと仮定してDoPデータを送りつけます。。
  • DoPで5.6448MHzのサンプリング周波数のデータを伝送する場合、352.8kHz2chのストリームを使用する場合と、176.4kHz4chのストリームを使用する場合があります。後者に関しては、対応するデバイスを入手できなかったので、未試験です。

中田式D/A変換の対応

2016年6月22日の『第13回1ビット研究会』にて、『中田式D/A変換』について理論と実装を発表しました。 この方式を試せるハードウェアは、Webmasterの手元に自作機器として何台かあります。 中にはインターネットの通販サイトDIYINHKのハードウェアを利用したものがあり、これならば自作オーディオになれた人の手で簡単に再現できます。 そこでWebmasterの手元にある試験プログラムもパッケージに含めることにしました。 使い方にはいろいろ制限があるので、 別ページ を作って説明します。

プログラム

対応OSファイルサイズバージョン日付
Ubuntu Linux 64bitパッケージ aplayex_1.6.0_amd64.deb2,435,476 Byte1.6.02016年8月31日
Ubuntu Linux 32bitパッケージ aplayex_1.6.0_i386.deb2,341,172 Byte1.6.02016年8月31日
Ubuntu Linux 64bitパッケージ aplayex_1.4.1_amd64.deb9,782,234 Byte1.4.12013年5月29日
Ubuntu Linux 32bitパッケージ aplayex_1.4.1_i386.deb8,562,706 Byte1.4.12013年5月29日
Ubuntu Linux 32bitパッケージ aplayex_1.2.0_i386.deb71,734 Byte1.2.02011年9月4日
Ubuntu Linux 64bitパッケージ aplayex_1.2.0_amd64.deb77,316 Byte1.2.02011年9月4日


back button もどる