reTONE
開発中・近日公開無料 ・ Android 4.0 以降

2026 年 10 月

reTONE 開発記録

10 月は、ほとんど 2 つのことに費やしました。reTONE から USB DAC へ直接音を送ることと、NAS やほかのスマートフォンの曲を再生することです。その途中で、Bluetooth のリモコンと、Android 4.0 への対応も入りました。変更をすべて見たい方は、ダウンロードのページのリリース履歴をご覧ください。

ポタフェス大阪で試しに展示した(10 月 3 日)

10 月 3 日、ポタフェス大阪(ポータブルオーディオのイベント)で、reTONE を試しに展示しました。ブースの片隅に置いただけで、正直、誰も来ないだろうと思っていました。ところが、オーディオのイベントの展示はほとんどがハードウェアなので、机の上に謎に古いスマートフォンが並んでいるのが目に留まったようです。「この展示って何なの」と足を止める人が多く、こういうものを試しに作ってみているんです、と説明すると、ぜひ欲しいという声が何件かありました。古いガジェットが好きだという人もいれば、昔使っていたスマートフォンが今でも家にある、という人もいました。思っていたより反応があって、驚きました。

何かを作るなら、誰でも不自由なく使えるものにしたい、というのが私の根っこにあります。1 人だけ、1 台だけでしか成り立たないものには、あまり魅力を感じません。なので、作るなら何らかの形で配布する、というのは最初から決めていました。分からなかったのは、こんなものを本当に欲しい人がいるのか、ということです。それがいい意味で裏切られたので、ここで、ちゃんと配布できるところまで持っていこうと決めました。

ポタフェス大阪の、reTONE の展示
ポタフェス大阪の、reTONE の展示

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 倍速で鳴り始めました。その補正のせいで。はい、補正の補正をしました。

その「まったく別の端末」が、この SH-02E です。これも買ってすぐ車の中で撮って有志に送り、「どうしてまた買っちゃうの」と言われました
その「まったく別の端末」が、この SH-02E です。これも買ってすぐ車の中で撮って有志に送り、「どうしてまた買っちゃうの」と言われました

それから、どうしても消えないプツプツという雑音。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 の答えにもとづくものです。音が実際にどの経路を通ったかはアプリからは見えないので、開発中はパソコンから確かめていました。

← 開発記録の一覧へ