22
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Electron + Vite + Vue】音楽再生アプリ「Muwviz」を作成しました

Posted at

はじめに

ビジュアライザーを眺めながら音楽を聴けるアプリが欲しいなと思い、
Electron、バックエンド/フロントエンドの勉強を兼ねて作成してみました。

音楽を耳と目で楽しめるアプリ『Muwviz』です。

ロゴ

muwviz_screenshot.png

成果物

  • リポジトリ(GitHub)

  • ダウンロード(GitHub Releases)

お使いのPCに合った最新版のインストーラをダウンロードし、インストールしてください。

機能・特徴

  • PC内の音楽ファイル(.aac, .mp3, .ogg, .wav, .flac, .webm, .m4a)を再生します
    • シャッフル再生(アーティスト単位、アルバム単位など)
    • リピート再生(全曲、一曲)
  • 楽曲再生時、リアルタイムで楽曲を解析し、ビジュアライザーを表示します
  • ビジュアライザーのカスタマイズが可能です
  • ビジュアライザーの設定をプリセットとして保存できます
  • 音楽ファイルに登録されている詳細情報・歌詞(メタデータ)を参照できます
  • 外観(テーマ、メインカラー、フォント)のカスタマイズが可能です
  • 楽曲のリアルタイム検索(曲名、アーティスト名、アルバム名)が可能です

使い方としては、一般的な音楽再生アプリと同様で、PC内にある音楽ファイルをアプリに読み込ませる(スキャンさせる)ことでライブラリに追加され、以降、再生や検索、詳細情報の確認ができるようになります。

ビジュアライザーの表示には、audiomotion-analyzer ライブラリを使用させていただきました。

使用技術・ライブラリ

  • ネイティブアプリ化
    • Electronelectron-vite
      • メインプロセス/レンダラープロセス両方のホットリロードに対応
  • バックエンド(メインプロセス)
    • Node.js
    • TypeScript
    • music-metadata
      • 音楽ファイルからメタデータを取得するために使用
    • jimp
      • アートワークを保存するために使用
  • フロントエンド(レンダラープロセス)
    • Viteelectron-vite
    • Vue3, TypeScript, Sass
      • ニューモーフィズムデザインを採用
      • 必要なコンポーネント数があまり多くないことと、デザインを統一させるために、UIフレームワークは使用せずほぼ自作
    • audiomotion-analyzer
      • リアルタイムスペクトラムアナライザー
      • ビジュアライザーの表示に使用
    • waveform-data
      • 再生中の楽曲の波形データを取得するために使用
    • d3
      • waveform-dataで取得した波形データを描写するために使用(画面下部)
  • その他
    • electron-log
      • ロガー, メインプロセス/レンダラープロセス共通で使用
    • electron-updater
      • 自動アップデートに対応するため使用

最後に

最後まで読んでいただきありがとうございます。
今後余裕があれば、具体的な実装についての記事も書こうかと思っています。

もし興味があれば、ダウンロードお願いします!
※フィードバックいただけると大変うれしいです!

22
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?