EN App Store からダウンロード
← ホームへ戻る DEV NOTE ・ シャッフルの話

シャッフルなのに、
同じ曲ばかり流れる理由

質のいいシャッフルは、実はランダムじゃない。

Rondio 開発ノート読了 約6分

01真のランダムは、偏る

完全にランダムだと、人は「偏っている」と感じます。コインを20回投げても、表と裏がきれいに交互に出ることはまずありません。4回連続で同じ面が出るほうが、むしろ普通です。

コイントス20回の一例。3連続・4連続は、ごく普通に起きる。

統計的には完全に正常です。それでも、並びを見ると「偏ってる」と感じます。

音楽のシャッフルでも、まったく同じことが起きます。100曲のプレイリストからランダムに1曲ずつ選び続ければ、同じアーティストが3曲続くことも、さっき聴いた曲がまた出ることも、普通に起きます。

02100曲を全部聴くには、519曲分の再生が必要

毎回100曲からランダムに1曲を選ぶ方式だと、全100曲を1回ずつ聴き終わるまでに、平均で約519回の再生が必要になります。

519
毎回引き直すランダム
100
1巡で全曲ちょうど1回

「クーポン収集問題」として知られている計算です。100 × (1 + 1/2 + 1/3 + … + 1/100) ≒ 519。最後の数曲が、なかなか出てこない。

ただし これは「毎回1曲を引き直す」方式だったらの計算です。実際の音楽アプリは、再生ボタンを押した時点である程度の再生キューを作るものが多く、ここまで極端なことは起きていないはずです。

それでも、この計算が示していることは変わりません。引き直す方式では、聴いていない曲がいつまでも残ります。「再生されない曲がある」と感じているのは、気のせいではありません。

では、生成したキューが終わったあと、次のキューはどう作られるのか。もう聴いた曲を外しているのか、また全体から選び直しているのか。そこは公開されていないので分かりません。分かっているのは、事実だけです。

同じ曲が何度もかかる中、
一度もかからない曲がたくさんある。

03私たちが求める「シャッフル」は、ランダム再生ではない

ここが、この話のいちばん面白いところだと思っています。

「ちゃんとシャッフルされている」と人が感じる状態は、実はランダムではなく、「均等に散らばっている」状態なんです。
  • 同じアーティストが続かない
  • 一度聴いた曲がすぐには戻ってこない
  • ライブラリ全体が、一通り回る

これを実現するには、ランダムをやめるしかありません。意図的に順番を設計する必要がある。そして、この3つは、たった1つのやり方でまとめて満たせることに気付きました。

1巡で、全曲をちょうど1回ずつ。

これだけで、かからない曲は原理的に生まれません。同じ曲がすぐ戻ってくることもない。ライブラリは必ず一通り回る。

実際にその順番で聴いてみて、確信しました。人が「ちゃんとシャッフルされている」と感じるのは、ランダム性の高さではなく、1巡で全部かかることです。

04Rondio が出した答え

この理想のシャッフルを Rondio に詰め込みました。Rondio は iPhone・iPad の中にある音楽ファイルを再生するプレイヤーです。

1
再生ボタンを押した時点で、並び順を全部決める

ある程度の塊からランダムに選ぶのではなく、選んだ範囲の全曲ぶんの順番を最初に確定させます。だから1巡すれば、全曲がちょうど1回ずつ。さきほどの100曲の例で言うと、519曲ではなく100曲で1周します。

2
同じアーティストが続かない

並び順を決める段階で、同じアーティストが隣り合わないように配置します。

3
まだ聴いていない曲が、前のほうに来る

再生履歴を見て、未再生の曲を優先します。「入れたのにかからない曲」がなくなります。なお、このカウンタは他アプリでの再生回数を反映せず、Rondio で再生した回数のみを数えます。

4
お気に入りが、1巡のなかに均等に来る

好きな曲が最初に固まったり、最後まで出てこなかったりしないように散らします。お気に入りは聴くと嬉しくなってテンションが上がりますもんね。せっかく音楽を聴いているのだから、心ときめくことは大切に考えています。

5
アルバム単位のシャッフルもある

アルバムの並び順だけをシャッフルして、アルバムの中の曲順は崩さないモードです。アルバムの曲順構成は、アーティストが最高の組み合わせとして考えたもの。その状態を楽しみたい日は、このモードが最強です。

6
プレイリスト内でのアルバム単位シャッフルもある

iTunes で購入すると、英語の曲なのに歌手名がカタカナ表記になることがあります。「マイケル・ジャクソン」と「Michael Jackson」が別アーティスト扱いになる、あれです。そこで「マイケル」というプレイリストに両方まとめ、その中でアルバム単位シャッフルをかける。曲単位だとバラードから突然ロックに飛んでしまいますが、これなら気持ちよく聴けます。

注意 ストリーミングの曲は再生できません。権利保護がかかっていて、サードパーティのアプリからは扱えない仕組みです。役に立つのは、自分が保有している曲ファイル(mp3 / m4a / FLAC)を再生したい方です。

05シャッフル以外のこと

シャッフル以外の機能も、簡単に紹介します(一部はプレミアム機能です)。

「ファイル」アプリから見えるフォルダを登録するだけで取り込みできる
端末内でもクラウドでも、置き場所はバラバラのまま1つのライブラリに
Music アプリに入っている曲も、1つのフォルダとして扱える
アプリの中にコピーを作らないので、容量を二重に使わない
mp3 / m4a(AAC)/ FLAC 対応
バックグラウンド再生、ロック画面操作、ダークモード対応
ウィジェット対応
広告なし・アカウント登録なし。曲の情報も再生回数も端末から出しません

無料ダウンロード。プレミアム機能は買い切りで、サブスクはありません。14日間無料でお試しできます。

06おわりに

「シャッフルが偏る」という感覚は、気のせいではありません。真のランダムは、人の直感とズレる。そして、1巡で全曲が1回ずつかかると、人はそれを「ちゃんとシャッフルされている」と感じる。

質のいいシャッフルは、
ランダムじゃない。

同じことで困っている方に、届いたらうれしいです。

偏らないシャッフルを、試してみませんか

Rondio は iPhone / iPad 向けのローカル音楽プレイヤーです。無料でダウンロードできます。