コンテンツにスキップ

再生・キュー・Crate

Crateforge はローカル再生(rodio + symphonia)に対応し、各種フォーマットを直接デコードします。 右レール(選曲ワークベンチ)の Now Playing / Up Next / Crate / Similar で再生と選曲を組み立てます。

画像は後日追加

  • トラックを ダブルクリック で再生します。
  • Space で 再生 / 一時停止、Enter でフォーカス/選択行を再生。
  • J / K で前 / 次の曲、Shift + ← / Shift + → で 5 秒シーク。
  • S でシャッフル、R でリピート(オフ / 全曲 / 1 曲)。Ctrl + ↑ / Ctrl + ↓ で音量。

プレイヤーバーでは、シークバーをドラッグしてスクラブ、時間表示クリックで「経過 ⇄ 残り」を切り替え、 音量バーにつまみと % 表示があります。波形は解析ピークによる実波形で描画されます。

曲の自動送りは Rust 側のワーカースレッド が駆動します。ウィンドウを最小化していても再生が継続し、 次の曲のファイルが見つからない場合は自動でスキップして再生を続けます。 再生に失敗した曲はトーストで通知し、失敗内容(ファイル不在 / デコード失敗 / デコーダのクラッシュ)を crateforge.log に記録します。

シャッフル / リピートの切り替えは、再生エンジンへの反映が終わってから画面に反映されます (Up Next が古い順序を表示しないため)。切り替えに失敗した場合は状態を変えずにエラーを通知します。 モバイル / リモコンから shuffle / repeat / volume を変更した場合も、デスクトップ側の表示に同期します。

設定で ReplayGain(曲ごとの音量正規化、−18 LUFS 基準)をトグルできます。

設定 → 一般 → 出力デバイス で、再生に使うオーディオ出力(ブース出力 / ノート PC のスピーカー / USB オーディオインターフェースなど)を選べます。

  • システム既定 を選ぶと OS の既定出力に追従します(OS 側で既定を切り替えると数秒以内に追従します)。
  • 再生中に切り替えても、再生中の曲・再生位置・再生 / 一時停止・キュー・音量・ReplayGain はそのまま 引き継がれます。
  • デバイスを抜き差ししたあとは 「更新」 ボタンで一覧を取り直します。
  • 選んだデバイスは 名前で保存 され、次回起動時(キューの復元より前)に自動で選ばれます。 見つからない場合は システム既定で再生 し、その旨をトーストで通知します(選択は保持されるので、つなぎ直して再起動すれば戻ります)。
  • 再生中に選んだデバイスが切断された場合は、自動でシステム既定へ切り替えて通知します。

Crateforge は、同じ LAN 上の Google Cast 対応端末(Chromecast / Google TV / Cast 対応スピーカー)へ音楽を送って再生できます。 端末側では Google 標準の Default Media Receiver が使われ、PC は音源の配信と操作を担当します。

  1. プレイヤーバーの 「再生先」ボタン(キャストのアイコン)を押します。
  2. 一覧から端末を選びます。一覧の先頭の 「このコンピューター」 は通常のローカル再生です。
  3. 接続すると、再生中の曲が 同じ位置からキャスト先で続きます(再生中なら再生のまま、一時停止中なら一時停止のまま)。
  4. ローカルに戻すときは、一覧の 「このコンピューター」 を選ぶか、「切断してローカルへ戻す」 を押します。 キャストを止め、同じ位置から PC で 一時停止の状態 で読み込みます。

端末が一覧に出ないときは 「再検索」 を押してください。 キャスト中のボタンは強調表示され、接続中 / 再接続中 / 切断などの状態は一覧の見出しと端末名の下に表示されます。

  • Google Cast built-in のテレビ・スピーカー、Chromecast、Google TV
  • 非対応: HomePod などの AirPlay 端末(Cast 経由では扱えません。macOS では次の「AirPlay(macOS)」を参照)、Miracast / 画面ミラーリング
  • PC とキャスト端末が 同じ LAN にあること。
  • Crateforge の 内蔵 API サーバーが起動し、「LAN 公開」が有効 であること。キャスト端末が PC から音源を取得するために必要です。 無効のまま端末を選ぶと 確認ダイアログ が出て、承諾したときだけ LAN 公開を有効にします(無断では公開しません)。 設定 → AI 連携 / API からいつでも無効にできます。
  • mDNS(マルチキャスト)が通ること。次の場合は端末が見つからなかったり接続できなかったりします。
    • ルーターの AP アイソレーション や、ゲスト Wi-Fi など別ネットワークになっている
    • ファイアウォールが UDP 5353(mDNS) や API ポート(既定 8787)の受信 を止めている
    • VPN や複数のネットワークカードがある環境では、端末と別のインターフェースが選ばれて接続に失敗することがあります。 その場合は VPN を切る / 端末と同じネットワークだけを使うようにしてください。

現時点でキャストできるのは次の形式です。

  • MP3
  • AAC(M4A / MP4 コンテナ)

FLAC / ALAC / WAV / AIFF / Opus など、それ以外の曲は「この曲の形式はキャストに未対応です」というエラーになり、再生先は切り替わりません (すでにローカルで再生中なら、そのまま鳴り続けます)。

  • キュー・シャッフル・リピート・自動送り は、ローカル再生と同じように続きます。曲が終わると次の曲がキャスト先で始まります。
  • 再生回数などの再生実績も、キャスト先で実際に再生した時間をもとに記録されます。
  • Preview / Audition は無効 です(キャスト中は始められません。逆に Preview 中は再生先を切り替えられないので、Esc で終了してから選び直してください)。
  • キャスト先との通信が切れると、自動で数回再接続を試みます。つながらなければ 「切断」 と表示します。 このとき PC のスピーカーへ自動では切り替えません(会場やスピーカーから突然音が出ないようにするためです)。 端末を選び直して再接続するか、ローカルへ戻してください。ローカルへ戻すと、最後の位置から一時停止の状態で読み込みます。
  • アプリは 常にローカル出力で起動 します。前回キャストしていても、自動では再接続しません。
  • キャスト中も、プレイヤーバーの再生 / 一時停止・シーク・音量は操作できます(音量はキャスト先の音量です)。

キャスト端末には、PC の LAN API トークンは渡しません。代わりに、1 曲だけ・短時間だけ有効で、いつでも失効できる専用の URL を発行して渡します。 この URL は曲の切り替え・切断・アプリの終了で失効します。

ただし、キャストは LAN 公開が前提 です。自宅やスタジオなど、信頼できる LAN での利用を想定 しています。 インターネット越しの利用や、不特定多数が接続する公共 Wi-Fi での利用は想定していません。

動作は環境依存です。この手順は設計上の想定に基づくもので、実機での動作確認は完了していません。

Crateforge 自体は AirPlay を実装していません。macOS では、OS のサウンド出力を AirPlay スピーカーにすることで鳴らします。

  1. システム設定 → サウンド → 出力(または コントロールセンター)で、AirPlay のスピーカーを選びます。
  2. Crateforge の 設定 → 一般 → 出力デバイス は システム既定 のままにします。 OS の既定出力が変わると、数秒以内に追従します。
  3. 一覧に AirPlay のデバイスが表示される場合は、ここで直接選んでも構いません。

A で Audition モード に入ると、波形が高くなり 25 / 50 / 75% のマーカーが表示され、曲の中を素早く行き来できます。

  • 1 / 2 / 3 で 25% / 50% / 75% の位置へジャンプ、Home で先頭、End で終盤(末尾 −3 秒)へ。
  • Alt + ← / Alt + → で ±15 秒。
  • 右レールの Crate / Similar の行からは、キューを壊さずにその場で Preview を始められます。
  • Esc で Preview を終了し、元の曲・元の再生位置へ復帰 します。Preview 中に曲が終端に達しても、 次の曲へは進まず元の位置へ戻ります。

Preview で聴いた分は再生回数・スキップ回数・最近再生に加算されません(統計を汚さずに試聴できます)。

プレイヤーバーの AUDITION / PREVIEW バッジはクリックで解除 できます(A / Esc と同じ)。 Audition モードはセッション限りで、次回起動時には持ち越しません。

右レールの Up Next が、これから再生されるキューです。

  • コンテキストメニューの 「Play Next(次に再生)」 で、選択した曲(複数可・選択順を保持)を 再生中の曲の直後に割り込ませます。
  • 行のホバーで出る 「×」 でキューから削除、ドラッグ&ドロップ で並び替えできます。
  • ヘッダに 件数・合計時間・シャッフルバッジ を表示します。
  • リストには先頭 100 曲 まで表示し、それ以降は末尾に「+N more」と件数で示します(ヘッダの件数はキュー全体)。
  • シャッフルは実際の再生順(順列)を事前計算するので、Up Next にこれから流れる順序がそのまま反映されます。 シャッフルを切り替えると Up Next も即座に新しい順序になります。
  • キュー(シャッフル順を含む)と再生中の曲・再生位置・シャッフル / リピート / 音量は自動で保存され、 次回起動時に 一時停止した状態で 復元されます(自動再生はしません)。ライブラリから削除済みの曲は キューから外されます。Audition / Preview で試聴した曲は保存対象になりません。

右レール(選曲ワークベンチ)

Section titled “右レール(選曲ワークベンチ)”

右レールは Now / Up Next と Crate / Similar の 2 グループのタブで構成されます。

  • 左端をドラッグして 幅を変更(280〜560px)でき、ダブルクリックで既定(348px)に戻ります。幅は永続化されます。
  • Split ボタンで Crate と Similar を上下に同時表示できます。Split は Crate / Similar タブでのみ有効 で、 Now / Up Next タブでは無効表示になります。
  • タブは勝手に切り替わりません。Crate に曲を足したり「Find similar」しても、見ているタブは維持されます。 代わりに Crate タブには件数バッジ、Similar タブには基準曲がピンされていることを示すドット が付きます。 (コンテキストメニューの「Find similar」と Ctrl/Cmd + Shift + S は明示的な操作なので Similar タブへ移動します。)
  • Ctrl + ] で右レールを表示、Ctrl + 1〜4 で Now / Up Next / Crate / Similar タブへ切り替えます。

右レールの Crate は、選曲の叩き台を組み立てるためのステージング領域です。

  • 曲を Crate に追加していき、まとまったら 「プレイリストとして保存」 できます。 Ctrl + Shift + C で選択曲をまとめて追加、一覧の行を Crate へドラッグしても追加できます。
  • smooth(スムーズな並び替え) ボタンで、解析値をもとに貪欲最近傍で滑らかな流れに自動ソートします。
  • 各行から Preview / Find Similar / Play next / ここから再生 / Crate から外す を実行できます。

Set Workspace(Anchor / Section / Arc / Lint)

Section titled “Set Workspace(Anchor / Section / Arc / Lint)”

Crate はそのまま セットの設計台 としても使えます(DB は変更せず、内容は次回起動時に復元されます)。

  • セット名・目標尺(分)・メモ を持たせられます。実際の合計尺と目標尺の差が表示されます。
  • Anchor — 行のバッジをクリックして Lock / Opening / Peak / Closing を設定します。 Anchor を付けた曲は smooth 並べ替えでも位置が固定されます。
  • Section — Opening / Build / Peak / Reset / Closing などの区切りを入れられます。 smooth 並べ替えは Section の境界をまたぎません。
  • Set tools(Arc / Lint) — Arc は BPM / Energy の起伏をグラフで表示します。 Lint は破壊的な変更をせずに構成上の注意点(同一アーティストの近接、重複、BPM の急ジャンプ、 Energy の落差、ハーモニック非互換、ファイルなし / 未解析、低レーティング、目標尺の過不足、 Opening / Closing の矛盾)を一覧します。個々の警告は非表示にできます。

Gig Readiness(ギグ前チェック)と Snapshot

Section titled “Gig Readiness(ギグ前チェック)と Snapshot”

Crate ヘッダの 「Ready?」 から、Crate または表示中のプレイリストの準備状況を 1 画面で確認できます。

  • ブロッカー: 曲なし / ファイルが見つからない曲
  • 警告: 未解析の曲 / 重複 / 低ビットレート(256 kbps 未満のロッシー音源。ロスレスは対象外)/ 目標尺の超過・不足 / Set Lint の指摘 / 自動エクスポートの状態
  • Snapshot — その時点のセット内容と判定結果を保存し、後から見返せます(最大 20 件)。
  • Prepare から同期ダイアログを開いて、持ち出し用の準備に進めます。

Inbox / Triage(取り込んだ曲の仕分け)

Section titled “Inbox / Triage(取り込んだ曲の仕分け)”

サイドバーの Inbox には、取り込んだばかりの曲や未評価の曲が集まります(件数はバッジで表示されます)。

  • Inbox に載るのは、直近 14 日以内に追加された曲・未評価(★なし)の曲・「あとで」にした曲 です (直近追加 500 件のウィンドウ + 「あとで」の曲を対象にするので、大きなライブラリでも軽く開けます)。
  • Inbox で T を押すと Triage モード に入り、キーボードだけで 1 曲ずつ捌けます。
キー 操作
Space プレビュー再生 / 一時停止
J / ↓ 次の曲
K / ↑ 前の曲
1〜5 レーティング
Shift+1〜5 半星レーティング(0.5〜4.5)
C Crate に追加
D / Enter 処理済みにして次へ
S あとで(Inbox に残す)
Esc Triage を終了して Inbox リストへ

Triage の試聴は Preview 扱いなので、再生回数を汚しません。

レーティングは 0.5 星刻み です。曲一覧・トラック編集・右クリックメニュー・Triage の ★ は、星の 左半分をクリックで半星(例: 4 つ目の左半分 → 3.5)、右半分で整数星になり、現在値と同じ位置をクリックするとクリアします。値は iTunes 互換の 0〜100(★1 = 20、半星 = 10 刻み)で保存されます。モバイル / TV では最寄りの整数星に丸めて表示します。 「処理済み / あとで」の状態はアプリ内に保存され、DB のスキーマは変更しません。

右レールの Now Playing には、再生中の曲のアートワークとともに Album / Artist / Genre / BPM / Key / Energy を表示します。 BPM・Key (Camelot)・Energy は解析済みの曲で表示され、つなぎの判断に使えます。

Similar タブでは、再生中(または右クリック → 「Find similar」)の曲に対して Camelot キー互換 + テンポ近接の「次の一手」を提示します。 掘り進め方は類似度選曲(Similar Digging)を参照してください。