跳到內容

播放、佇列、Crate

Crateforge 支援本機播放(rodio + symphonia),可直接解碼各種格式。 在右側欄(選曲工作台)的 Now Playing / Up Next / Crate / Similar 組建播放與選曲。

截圖稍後補上

  • 雙擊 曲目即可播放。
  • Space 為 播放 / 暫停,Enter 播放焦點/選取列。
  • J / K 為上一首 / 下一首,Shift + ← / Shift + → 為 5 秒搜尋。
  • S 為隨機播放,R 為重複播放(關閉 / 全部 / 單曲)。Ctrl + ↑ / Ctrl + ↓ 為音量。

在播放器列中,可拖曳搜尋列進行 scrub,點選時間顯示可切換「已經過 ⇄ 剩餘」, 音量列有滑塊與 % 顯示。波形以解析峰值的實際波形繪製。

曲目的自動接續由 Rust 端的工作執行緒 驅動。即使將視窗最小化播放仍會持續, 若找不到下一首的檔案,會自動跳過並繼續播放。 播放失敗的曲目會以 toast 通知,並將失敗內容(檔案不存在 / 解碼失敗 / 解碼器當機) 記錄到 crateforge.log。

隨機播放 / 重複播放的切換,會在播放引擎套用完成後才反映到畫面上 (避免 Up Next 顯示過期的順序)。切換失敗時不會變更狀態,並以錯誤通知。 從行動裝置 / 遙控器變更 shuffle / repeat / volume 時,桌面端的顯示也會同步。

可在設定中切換 ReplayGain(逐曲音量正規化,以 −18 LUFS 為基準)。

在 設定 → 一般 → 輸出裝置 中,可選擇播放使用的音訊輸出(Booth 輸出 / 筆電喇叭 / USB 音訊介面等)。

  • 選擇 系統預設 時會跟隨作業系統的預設輸出(在作業系統中切換預設後,數秒內就會跟隨)。
  • 播放中切換時,正在播放的曲目、播放位置、播放 / 暫停狀態、佇列、音量與 ReplayGain 都會維持不變。
  • 插拔裝置後,按 「更新」 按鈕重新取得清單。
  • 選擇的裝置會 以名稱儲存,並在下次啟動時(還原佇列之前)自動選用。 若找不到該裝置,會 以系統預設播放,並以通知告知(選擇會保留,重新連接後再啟動即可恢復)。
  • 播放中所選裝置被中斷連線時,會自動切換至系統預設並通知。

Crateforge 可以將音樂投放到同一個 LAN 上的 Google Cast 裝置(Chromecast / Google TV / 支援 Cast 的喇叭)播放。 裝置端使用 Google 標準的 Default Media Receiver,PC 負責提供音源與操作。

  1. 按下播放器列上的 「再生先」按鈕(投放圖示)。
  2. 從清單中選擇裝置。清單最上方的 「このコンピューター」 是一般的本機播放。
  3. 連線後,正在播放的曲目會 從相同位置在投放端繼續(播放中就繼續播放,暫停中就維持暫停)。
  4. 要回到本機時,在清單中選擇 「このコンピューター」,或按下 「切断してローカルへ戻す」。 投放會停止,並從相同位置在 PC 上以 暫停狀態 載入。

若找不到裝置,請按 「再検索」。 投放中按鈕會高亮顯示,連線中 / 重新連線中 / 已中斷等狀態會顯示在清單標題與裝置名稱下方。

  • 內建 Google Cast 的電視與喇叭、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 權杖。取而代之的是,會發給它一組 只對單一曲目、短時間有效、且隨時可撤銷的專用 URL。 此 URL 會在切換曲目、中斷連線、結束應用程式時失效。

不過,投放 以 LAN 公開為前提,預期在家中或錄音室等可信任的 LAN 中使用。 不適用於透過網際網路,或與陌生人共用的公共 Wi-Fi。

實際運作視環境而定。此流程是依設計分析所作的推測,尚未在實機上驗證。

Crateforge 本身並未實作 AirPlay。在 macOS 上,請將系統的聲音輸出設為 AirPlay 喇叭來播放。

  1. 在 系統設定 → 聲音 → 輸出(或控制中心)中選擇 AirPlay 喇叭。
  2. 將 Crateforge 的 設定 → 一般 → 輸出裝置 維持在 系統預設。 系統預設輸出改變後,數秒內就會跟隨。
  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 試聽的曲目不會被儲存為目前曲目。

右側欄由 Now / Up Next 與 Crate / Similar 兩組分頁構成。

  • 拖曳左緣可 調整寬度(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 同時也是 一整套演出的設計台(不會變更資料庫,內容會在下次啟動時還原)。

  • 可為這一套設定 名稱、目標長度(分鐘)、備註,並顯示實際總長度與目標的差距。
  • 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 或目前顯示之播放清單的準備狀況。

  • 阻斷項目:沒有曲目 / 找不到檔案的曲目
  • 警告:未解析的曲目 / 重複 / 低位元率(低於 256 kbps 的有損音源,無損格式不在此列)/ 目標長度過長或不足 / Set Lint 的提醒 / 自動匯出的狀態
  • Snapshot — 可保存當下的內容與判定結果,之後再回顧(最多 20 筆)。
  • 從 Prepare 可開啟同步對話框,繼續進行帶出用的準備。

Inbox / Triage(整理剛匯入的曲目)

Section titled “Inbox / Triage(整理剛匯入的曲目)”

側邊欄的 Inbox 會集中剛匯入的曲目與未評分的曲目(件數以徽章顯示)。

  • 會列入 Inbox 的是 最近 14 天內加入的曲目、未評分(無★)的曲目,以及標記為 「稍後」 的曲目 (候選取自最近加入的 500 筆視窗加上「稍後」的曲目,因此音樂庫很大時也能輕快開啟)。
  • 在 Inbox 按 T 即可進入 Triage 模式,只用鍵盤逐曲處理。
按鍵 操作
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 會四捨五入為最接近的整數星顯示。 「已處理 / 稍後」的狀態保存在應用程式內,不會變更資料庫的結構。

右側欄的 Now Playing 會與正在播放曲目的封面圖一起顯示 Album / Artist / Genre / BPM / Key / Energy。 BPM、Key (Camelot)、Energy 會在已解析的曲目上顯示,可用於判斷銜接。

在 Similar 分頁中,會針對正在播放(或右鍵 →「Find similar」)的曲目, 提示 Camelot 鍵相容 + 節奏相近的「下一手」。 關於如何繼續深掘,請參閱相似度選曲(Similar Digging)。