This is a music player built on web technologies. It can be used as a standalone cross-platform application (using nw.js or Electron) or as a web page.
The trick here is that the code base is shared: the very same application code that runs the web page is used in a standalone app.
- Sound playback
- Supported formats: all that your {browser,Electron,nw.js} supports
- Routing to WebAudio graph
- Playlist
- Basic control
- Recursive import
- Repeat
- Drag/drop reordering
- Shuffle
- Playback control & info
- Waveform
- Metadata parsing
- ID3v1
- ID3v2
- Vorbis comments
- m4a/mp4
- Seeking
- Album art
- Global hotkeys
- Miscellaneous
- Realtime visuals
- Spectrum analyser
- Big Psyco from Visual Player for DOS
- Single instance runtime playlist control
- Single instance runtime playback control
- Realtime visuals
- Clone this project
- Run it:
- adjust and run
dist/electron/mp.sh [path-to-song-or-playlist]
- adjust and run
dist/nw/mp.sh [path-to-song-or-playlist]
- launch
dist/web/index.html
The web version is also hosted at GitHub pages.
[-p] play1.mp3 play2.mp3 ... -q enqueue1.mp3 enqueue2.mp3 ... -c command1 command2
Where command
is play
, pause
, prev
or next
.
Web version can be controlled by postMessage
with the following data object:
{
command: "control",
argv: ["array", "of", "command", "line", "arguments"]
}
- Clone this project
npm install
make
- Playback via
HTMLAudioElement
throughWeb Audio
sound graph - Waveform visuals via
decodeAudioData
- Realtime visuals using
AnalyserNode
- Metadata parsing thanks to
XHR2
,ArrayBuffer
,DataView
andTextDecoder
APIs - Written in ES2015, bundled using Rollup and good ol' Make
- CSS compiled with LESS