LX Music Desktopとは
LX Music Desktopは、ElectronとVue 3を基盤に開発されたクロスプラットフォーム対応の音楽プレイヤーだ。Windows、macOS、Linuxの主要OSに対応し、複数の音楽配信プラットフォームから楽曲を検索・再生できる集約型の音楽ソフトウェアとして機能する。Apache License 2.0の下で公開されており、完全無料で利用可能だ。
主な特徴と利点
マルチプラットフォーム対応
- Windows:インストーラー版とポータブル版の両方を提供
- macOS:dmg形式のインストールパッケージ
- Linux:deb、rpm、AppImageなどの複数形式に対応
複数音楽ソースの統合検索
以下の主要音楽プラットフォームからの検索を一元管理できる:
- 酷我音楽
- 酷狗音楽
- 網易雲音楽
- QQ音乐
- 咪咕音楽
各ソースの実装はsrc/renderer/utils/musicSdk/ディレクトリ内にモジュール化されている。
導入手順
通常インストール
各OSに対応したパッケージをダウンロードし、標準的な手順でインストールを行う。Windowsユーザーはポータブル版を選択することで、システムへの変更を最小限に抑えられる。
ソースからのビルド
開発者はリポジトリから直接ビルド可能だ:
# リポジトリをクローン
git clone https://github.com/lyswhut/lx-music-desktop
cd lx-music-desktop
# 依存パッケージをインストール
npm install
# 開発サーバーを起動
npm run dev
実行にはNode.js 22以上とnpm 8.5.2以上が必要となる。
初期設定のポイント
インストール後、以下の設定を確認すると快適に利用できる:
- 言語設定:設定画面から日本語を含む多言語UIを選択可能
- デフォルト音楽ソース:ネットワーク環境に応じて最適なソースを選択
- テーマ選択:内蔵テーマから好みのデザインを選択
- データ保存場所:Windowsではプログラムフォルダ内にportableフォルダを作成するとポータブルモードになる
UIと基本操作
インターフェースは4つの主要エリアで構成されている:
- 左サイドバー:ホーム、プレイリスト、ダウンロード、ランキングへのナビゲーション
- 上部検索バー:楽曲名、アーティスト名、アルバム名での検索
- メインコンテンツエリア:検索結果とおすすめの表示
- 下部コントロールバー:再生制御、音量調整、歌詞表示
テーマシステムとカスタマイズ
src/common/theme/images/に複数のテーマ画像が用意されている。設定の「外観」タブから好みのテーマを選択・適用できる。水墨画風、アニメ風など様々なスタイルが含まれており、聴く音楽の雰囲気に合わせて切り替え可能だ。
データ同期機能
v2.2.0以降、独立したデータ同期サービスをサポートしている。
自己ホスト型同期サーバー
公式が提供する同期サーバーコードを利用して、自前のサーバーにデプロイ可能:
// 同期クライアント設定例
const syncConfig = {
serverUrl: 'https://your-sync-server.example.com',
syncInterval: 300000, // 5分間隔
dataTypes: ['playlists', 'history', 'preferences']
};
function initializeSync(config) {
return new SyncManager(config.serverUrl, config.syncInterval);
}
同期対象には以下が含まれる:
- プレイリストとお気に入り
- 再生履歴
- 設定とテーマ情報
- ダウンロードタスク
オープンAPIと連携機能
HTTP API
v2.7.0からはローカルHTTPサービスを起動し、外部アプリケーションからの制御が可能になった。主なエンドポイント:
// API制御の例
const apiEndpoints = {
playback: {
play: '/api/player/play',
pause: '/api/player/pause',
next: '/api/player/next',
prev: '/api/player/prev'
},
volume: {
set: '/api/volume/set',
mute: '/api/volume/mute'
},
playlist: {
list: '/api/playlist/list',
add: '/api/playlist/add'
}
};
async function controlPlayer(action, params) {
const url = apiEndpoints.playback[action];
return fetch(url, { method: 'POST', body: JSON.stringify(params) });
}
Scheme URL
v1.17.0以降、ブラウザや外部アプリから直接プレイヤーを制御できる:
lxmusic://play?trackId=12345
lxmusic://search?query=artistName
lxmusic://playlist/add?listId=custom01&trackId=789
キーボードショートカット
設定画面の「ショートカットキー」でカスタマイズ可能。デフォルト設定:
| 操作 | キー |
|---|---|
| 再生/一時停止 | Space |
| 前の曲/次の曲 | ← / → |
| 音量増減 | Ctrl + ↑ / ↓ |
| 検索フォーカス | Ctrl + F |
| 歌詞ウィンドウ | Ctrl + L |
| トレイへ最小化 | Ctrl + M |
グローバルショートカットとして機能するため、アプリが最小化されていても制御可能だ。
オーディオ設定と最適化
src/renderer/assets/medias/filters/に各種音響エフェクトのプリセットが格納されている。
ジャンル別推奨設定
- ポピュラー:中高域を強調し、ボーカルの明瞭度を向上
- クラシック:ホールリバーブで空間的な広がりを演出
- ロック:低域を強化し、リズムのパワー感を増強
- エレクトロニカ:各帯域のバランスを調整し、シンセの質感を浮き立たせる
パフォーマンス最適化
低スペック環境では以下の対策が有効:
- キャッシュを定期的にクリア
- 大規模プレイリストは分割して読み込み
- 不要な視覚エフェクトを無効化
- GPUアクセラレーションを有効化
- ネットワーク応答の速いソースを選択
トラブルシューティング
再生できない場合
- ネットワーク接続を確認
- 「設定 > 音楽ソース」から別のソースを試す
- キャッシュをクリア
- 最新版への更新を確認
- ログファイルでエラー詳細を確認
同期が機能しない場合
- サーバーURLが正しいか確認
- ファイアウォールでポートがブロックされていないか確認
- 接続ステータスを確認
- ログでエラー内容を特定
データバックアップ
設定データは以下のパスに保存される:
- Linux:
~/.config/lx-music-desktop - macOS:
~/Library/Application Support/lx-music-desktop - Windows:
%APPDATA%/lx-music-desktop
このフォルダをコピーしてバックアップ可能。同期機能を使用すればサーバー上に自動保存される。
技術スタック
プロジェクト構成:
- メインプロセス:Electron + TypeScript (
src/main/) - レンダラープロセス:Vue 3 + TypeScript (
src/renderer/) - 歌詞ウィンドウ:独立したVueアプリ (
src/renderer-lyric/) - ビルドツール:Webpack 5
ポータブル版の活用
Windowsではプログラムフォルダ内にportableフォルダを作成するだけで、全データがそこに保存される。USBメモリに入れて持ち運んだり、複数PC間で設定を共有したりできる。
歌詞表示機能
- デスクトップ歌詞ウィンドウ:メイン画面とは独立して表示
- フォント、色、サイズ、透明度のカスタマイズ
- 自動同期機能:ネットワークから歌詞のタイムスタンプを取得
- 手動編集と保存による修正も可能
今後の開発ロードマップ
v2.12.2時点での方向性:
- メモリ使用量とCPU負荷の低減
- 検索・再生の応答速度向上
- 追加音楽ソースへの対応
- ローカルファイル管理の強化
- UIのさらなる改善