10 月は、ほとんど 2 つのことに費やしました。reTONE から USB DAC へ直接音を送ることと、NAS やほかのスマートフォンの曲を再生することです。その途中で、Bluetooth のリモコンと、Android 4.0 への対応も入りました。変更をすべて見たい方は、ダウンロードのページのリリース履歴をご覧ください。
ポタフェス大阪で試しに展示した(10 月 3 日)
10 月 3 日、ポタフェス大阪(ポータブルオーディオのイベント)で、reTONE を試しに展示しました。ブースの片隅に置いただけで、正直、誰も来ないだろうと思っていました。ところが、オーディオのイベントの展示はほとんどがハードウェアなので、机の上に謎に古いスマートフォンが並んでいるのが目に留まったようです。「この展示って何なの」と足を止める人が多く、こういうものを試しに作ってみているんです、と説明すると、ぜひ欲しいという声が何件かありました。古いガジェットが好きだという人もいれば、昔使っていたスマートフォンが今でも家にある、という人もいました。思っていたより反応があって、驚きました。
何かを作るなら、誰でも不自由なく使えるものにしたい、というのが私の根っこにあります。1 人だけ、1 台だけでしか成り立たないものには、あまり魅力を感じません。なので、作るなら何らかの形で配布する、というのは最初から決めていました。分からなかったのは、こんなものを本当に欲しい人がいるのか、ということです。それがいい意味で裏切られたので、ここで、ちゃんと配布できるところまで持っていこうと決めました。

USB DAC、遠回りの道(0.64〜0.88)
古い Android のスマートフォンに USB DAC をつないでも、たいていは何も起きません。Android が標準で USB DAC を音の出口として扱えるようになったのは 5.0 からです(それより前はメーカーしだい)。なので、多くの古い端末は、つながれても何をしていいか分からないのです。新しい Android なら安心かというと、そうでもありません。試した端末のひとつは、DAC に届く前に、すべての曲を黙って 48 kHz/16 bit に変換していました。
そこで reTONE は、Android の音の仕組みを飛ばして、DAC と直接やり取りするようにしました。おかげで、Android 4.1 の端末からでも、曲のサンプルレートのまま USB DAC に送れます。個人的には、これが reTONE のいちばん大きな特長だと思っています。
そこまでの道のりは、なかなかのものでした。
最初に出た音は、8 倍速でした。再生を押したら、早口すぎて何を言っているのか分からない音が流れてきました。転送 1 回に詰める音の量を間違えていただけで、直したら普通に鳴りましたが、これは笑いました。
今月いちばん気に入っている不具合は、どの曲も 0.941 倍の速さで鳴る古い端末です。0.941 は、ちょうど 17 分の 16。端末の USB の部品が、16 個ごとに空きを 1 つ挟んでいたので、DAC には必要な音の 17 分の 16 しか届いていませんでした。補正を入れました。すると、まったく別の端末が 1.14 倍速で鳴り始めました。その補正のせいで。はい、補正の補正をしました。

それから、どうしても消えないプツプツという雑音。reTONE を直しても、まだ鳴る。設定を変えても、まだ鳴る。原因は、端末自身の Wi-Fi でした。Wi-Fi を切ると静か。入れるとプツプツ。最初から Wi-Fi でした。USB DAC で雑音が気になるときは、まず機内モードを試してみてください。
ある晩には、2012 年の検証機が曲の途中で再起動しました。電池のせいだと思いましたが、外れでした。reTONE が落ちて自動で立ち上がり、DAC をつかみ直したところで、端末のシステムのほうが倒れていたのです。端末のシステムはアプリからはどうにもできませんが、reTONE が最初に落ちないようにはできるので、そこを直しました。
今の状態です。鳴る組み合わせはすべて、正しい速さで途切れずに鳴っています。2012 年の検証機も、24 bit/192 kHz の曲を変換せずに電池式の DAC へ送れます。分からないことも残っています。USB 機器に対応していると言いながら使えない端末があり、端末から電源を取る DAC は、古い端末で認識されないことがあります。
サンプルレート変換を、もう一度確かめる(0.60〜0.68)
端末が曲を元のサンプルレートのまま鳴らせないときは、reTONE が変換します。古い Android では FLAC と WAV のすべてでそうなったので、変換をきちんと調べました。最初のバージョンは、高音のいちばん上を少し削っていました。DSD の変換では、耳に聞こえない高さの音の一部が、聞こえる高さに折り返していました。どちらも作り直しました。
そして、少し恥ずかしい場面がありました。まさにこのサイトに載せる周波数特性の図を作っていて、作り直したフィルターが、自分で決めた目標に届いていないことに気づいたのです。差はわずかでしたが、目標は目標なので、もう一度直しました。サイトの図を作ったことで見つかるとは、思ってもみませんでした。
正直に言うと、差はごくわずかで、聞いて分かるとまではお約束できません。言えるのは、数字があるべき所に収まったということです。聞こえる帯域は平らで、変換で加わる音は、聞こえるはずのない小ささです。
NAS や、もう 1 台のスマートフォンをライブラリに(0.80〜0.88)
家の NAS や、reTONE を入れたほかのスマートフォンの曲を再生できるようにしました。曲は再生しながら古いスマートフォンに取り込むので、一度読み込んだ曲は、もうネットワークとは関係なく鳴ります。
最初のバージョンは、ファイルを全部受け取るまで待つ必要があり、大きなハイレゾの曲で約 23 秒かかりました。取り込みながら鳴らすようにして、ほとんどは解決しました。ただ、大きな WAV が 1 曲だけ、それでも鳴り始めまで 19 秒かかりました。その 19 秒のうち 15 秒は、本物の音を入れる前に、古い端末が 0 だけの空のファイルを書き出していた時間でした。その手順を飛ばしたら、2 秒になりました。0 を書かなかっただけで、19 秒が 2 秒です。
ほかにも想定外がありました。とても大きなジャケットの画像が入った曲は、まったく鳴りませんでした。ファイルの最初が絵ばかりで、音がなかったのです。2 台のスマートフォンで共有しようとしたら、片方の時計がまる 1 日ずれていて失敗したこともあります。
自分のスマートフォンからの共有は、あえて厳しめにしています。聴けるのはペアリングした reTONE の端末だけで、両方の画面に同じ 6 桁の番号が出て、それを確かめます。1 時間使わなければ、自動で止まります。これまで試したのは、パソコンの上の小さなサーバーと reTONE どうしだけで、市販の NAS ではまだ試していません。
Bluetooth のリモコン(0.71〜0.72)
なぜリモコンかというと、まずは単純に便利だからです。古いスマートフォンはアンプにつないだまま、あるいはカバンに入れたままにしておけて、曲は手元のスマートフォンで選べます。それから、電池のためでもあります。古いスマートフォンでいちばん電気を食うのは、たいてい画面です。画面を消したままにできれば、そのぶん電池が長くもちます。
それが Bluetooth でできるようになりました。つながっている間は、手元の reTONE が、古い端末の画面になります。
最初のバージョンでは、音量以外はすべて動きました。音量の命令は「+1」で、Android 4.1 は、頭に「+」の付いた数字を読めなかったのです。たった 1 文字。使えるのは Android どうしだけで、最初の接続は、ライブラリを受け取るまで少し待ちます。
Android 4.0 まで戻る(0.84〜0.86)
Android 4.0 の音楽プレーヤーで使いたい、という声があり(僕の声)、対応を 4.1 から 4.0 まで広げました。面倒だったのは、4.0 にない機能を呼んだときの失敗が、ふだんのエラーの受け止め方では捕まらないことです。そういう所を、ひとつずつ手で探しました。
新しく入れたアップデートの確認も、同じ壁にぶつかりました。確認先のサーバーは新しい方式の安全な接続しか受け付けず、Android 4.x はその方式をそもそも持っていません。そのため、これらの端末では、安全に確認できないことをそのまま表示します。Android 4.0〜4.0.2 は、まだ実機で確かめていません。
そのほかの変更
- DSD の曲の頭で小さく「プツッ」と鳴っていたのを直しました。
- サイレント DAP モードをオフにしても、通知音がミュートのまま残ることがあったのを直しました。
- Apple Lossless(ALAC)を再生できるようにしました。
- 新しい Android で、ジャケットが出なくなることがあったのを直しました。
- タブレットの横向きと、折りたたみの画面に合わせた並べ方を入れました。
- 通知、ロック画面、Bluetooth 機器から操作できるようにしました。
- ネットワーク機能を入れました。初期設定はオフです。
今月の 1 台Android One X5
2018 年の終わりに出た LG の端末で、日本では Android One のモデルとして売られていました。Android One は、素の Android に近い、飾り気のない端末のはずです。なのにこの端末は、LG の上位機からそのまま持ってきたような Hi-Fi Quad DAC(ESS の ES9218)を積んでいます。こういうの、大好きです。
9 月に書いたダイレクト出力も、この端末で見つけたものです。
いちばん良かったのは、10 月の発見です。イヤホンの代わりにアンプのライン入力をイヤホン端子に挿すと、この端末は、それが「AUX」の接続だとアプリにちゃんと知らせてくれます。ほかに試した端末では、何を挿しても「ヘッドホン」にしか見えませんでした。これのおかげで reTONE は、「3.5mm AUX」と表示して固定音量を選べるようになり、音量はアンプのほうで調整できます。判別を間違えると、誰かの耳にいきなり大きな音が届きかねないので、挿すたびに必ず確かめるようにしています。
ほかにも、「サウンド」を押すと Quad DAC の設定画面(デジタルフィルターなど)が直接開き、「端末とオーディオ」には DAC が ES9218 と出て、USB DAC も 96 kHz で途切れずに鳴りました。ひとつ正直に書いておくと、「DIRECT」の表示は Android の答えにもとづくものです。音が実際にどの経路を通ったかはアプリからは見えないので、開発中はパソコンから確かめていました。