MusicPlayer2: a Windows-only local music player with dual playback engines
MusicPlayer2是一款功能强大的本地音乐播放软件,旨在为用户提供最佳的本地音乐播放体验。它支持歌词显示、歌词卡拉OK样式显示、歌词在线下载、歌词编辑、歌曲标签识别、专辑封面显示、专辑封面在线下载、频谱分析、音效设置、任务栏缩略图按钮、主题颜色、格式转换等功能,支持高度自定义的界面布局,支持多种播放内核(BASS和FFMpeg)。播放器支持大部分常见的音频格式。
At a glance
- What is it?
- MusicPlayer2 is a GPL-3.0 C++ desktop player for Windows that handles lyrics, tags, album art, cue sheets and format conversion in one window. It is a strong fit if your library lives on disk and your machine runs Windows, and the wrong tool anywhere else.
- Who is it for?
- Adopt MusicPlayer2 if you keep a local library on Windows and want lyric handling, cue sheet splitting and tag editing in one window without a store account. Do not adopt it if you need macOS, Linux or Android playback, since the README states development and running are Windows-only.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 20 days ago.
- What is it written in?
- Mainly C++, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 25, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What MusicPlayer2 solves for people with a folder of audio files
Streaming clients assume a catalogue lives on someone else's server. MusicPlayer2 assumes the opposite: files sit on your disk, and the player's job is to make that collection usable. The README lists the work it takes on: lyric display, karaoke-style lyric highlighting, lyric download and editing, song tag recognition and editing, album cover display and download, spectrum analysis, sound effects, taskbar thumbnail buttons, theme colors, format conversion, cue sheet splitting, a media library, and an xml-defined interface layout.
That list is unusually wide for a single desktop program, and it points at a specific user: someone with ripped CDs, downloaded albums or a cue-plus-single-file archive who wants tags and lyrics fixed in place rather than synced to an account. The project is written in C++ and licensed GPL-3.0. It is not archived, and the last push to the default branch was on 2026-09-10, so the repository is still receiving changes.
The interface is not fixed. The README shows five numbered layouts plus a Groove Music style for Windows 11, in light and dark modes, and the feature list includes xml customization of the layout. That is the clearest signal of intent: the player is meant to be reshaped around how you browse, not the other way round.
Two playback engines and the cue sheet path through the code
Most players ship one audio backend. MusicPlayer2 exposes two: BASS and FFmpeg. The README states support for both engines without ranking them, and the practical consequence is that format coverage is not a single fixed list. If a file will not open under one engine, the other is a different decoder path. The README does not document which engine is the default, nor which formats each one covers, so that is something to determine on your own machine rather than from the repository text.
The repository layout supports the two-engine claim. The solution file MusicPlayer2.sln sits at the top level, with MusicPlayer2/ holding the application sources, and scintilla/ present as a separate directory, which is consistent with the in-application lyric editing described in the feature list. A UnitTest/ directory exists alongside Debug/, Release/ and x64/, so the build tree carries test code in addition to the shipping configurations.
Cue sheet support matters more than it sounds. A single file plus a cue sheet is how many CD rips are stored, and a player that ignores the cue treats the whole disc as one track. MusicPlayer2 lists cue splitting as a feature, which means the track boundaries come from the cue file rather than from the audio container. The README does not describe the parsing rules or how it handles a cue that disagrees with the file's duration, so treat unusual cue files as something to check rather than assume.
Installing MusicPlayer2 on Windows and playing a first album
The README points to the GitHub releases page for the latest version and also lists a Baidu Netdisk mirror. If you use Scoop, the README states the package is maintained in the official Extras bucket and gives this command:
scoop install extras/musicplayer2After it completes, the player is on your PATH-managed Scoop install and appears in the Start menu like any other Scoop app. Updates then follow through Scoop rather than a manual download.
MusicPlayer2 depends on the Microsoft Visual C++ runtime. The README warns that if the program reports a missing MSVC*.dll at startup, you should install the Microsoft Visual C++ Redistributable from the Microsoft documentation page it links. That is the first thing to check if the window never appears.
Once it launches, the README's screenshots show the main window with an optional playlist panel, and the options dialog split into appearance and general settings. A first real use is to point the media library at one album folder, let it read the tags, and then open the options dialog to pick a layout and a theme. The README does not give a step-by-step first-run walkthrough; it directs readers to the project wiki for documentation, so the wiki is where the option-by-option detail lives.
Compiling from source requires Visual Studio 2022 with MFC
The README is explicit about the build. MusicPlayer2 is developed and run only on Windows. To compile the source you need Visual Studio 2022 with the C++ workload installed, and MFC must be checked during setup. With that in place, the README says to open MusicPlayer2.sln and build and run it.
The MFC requirement is the constraint people trip over. MFC is an optional component in the Visual Studio installer, and a default C++ installation does not include it. If you open the solution and the build fails with missing headers, the cause is almost always that checkbox, not the project. The README does not list the specific Windows SDK version or any additional dependencies beyond MFC, so a build environment that differs from the author's may need adjustment that the repository text does not cover.
This matters for anyone planning to patch the player rather than just use it. The two-engine design, the xml layout system and the lyric editor are all reachable from source, but the entry cost is a full Visual Studio 2022 installation with MFC, not a quick cmake invocation. There is no documented Linux or cross-compilation path, and the README states the project supports Windows only.
Where MusicPlayer2 is the wrong choice
The Windows-only constraint is the hard boundary. The README states plainly that the project supports development and running on Windows systems only. There is no macOS build, no Linux build, and no Android client. If your library needs to follow you across platforms, this player does not do that, and no configuration will change it.
The second limitation is scope. MusicPlayer2 is a local player. The feature list covers lyrics, tags, covers, spectrum, effects, conversion and layout, and nothing about streaming services, network shares or cloud libraries. If your listening is mostly subscription streaming, the feature set here is aimed at a different problem.
A third point is documentation depth. The README is a feature list with screenshots and links; it hands off to the wiki and to Documents/update_log.md for detail. It does not document rollback, migration between versions, or what happens to your settings and library database when you upgrade. Recent releases are spaced unevenly: V2.78 is dated 2025-12-27, while V2.77.1 is dated 2024-08-23. Anyone treating this as a long-term library manager should read the update log before replacing a working version.
How MusicPlayer2 differs from Foobar2000
Foobar2000 is the obvious comparison for a Windows local player, and the difference is in where each puts its effort. Foobar2000 is built around a component model: the core is small, and most capability arrives through third-party components that you add and configure yourself. Its default interface is deliberately plain.
MusicPlayer2 takes the opposite approach. Lyric display, karaoke-style highlighting, desktop lyrics, lyric download and editing, tag recognition and editing, album art download, spectrum analysis, equalizer and reverb, taskbar thumbnail buttons, format conversion and cue splitting are all in the feature list as built-in functions rather than optional add-ons. Layout is handled through numbered interface presets and an xml definition rather than through a plugin ecosystem.
That trade is real in both directions. MusicPlayer2 gives you a complete, visually finished player without assembling anything, which is why the README can show a Groove Music style layout. Foobar2000 gives you a smaller core and lets the community decide what it becomes. If you want a player that works after installation, MusicPlayer2's model fits. If you want to build the player's behavior yourself from components, Foobar2000's model fits. The README does not claim parity with any other player, and it does not discuss Foobar2000.
Licence, releases and what an upgrade costs you
MusicPlayer2 is GPL-3.0. For a desktop user that mostly means you can run it freely and read the source. If you redistribute a modified build, the GPL's source-availability terms apply to what you distribute, and the repository text does not add any exception or clarification beyond the LICENSE file. This is a description of the licence identifier, not legal advice; if you plan to ship a modified binary, read the licence itself.
Upgrade cost is bounded by how the project ships. Releases are tagged versions, with V2.78 dated 2025-12-27 and V2.77.1 dated 2024-08-23, and the changelog lives at Documents/update_log.md in the repository. Scoop users get updates through the Extras bucket rather than the releases page. The README does not document a settings migration step, a library database format, or a downgrade procedure, so the practical approach is to know where your settings and library data live before installing a newer build over a working one.
The last push was on 2026-09-10. That is recent enough that the repository is not dormant, but the README does not describe a release cadence, so the changelog is the only place to see what actually changed between versions.
Editorial conclusion
Adopt MusicPlayer2 if you keep a local library on Windows and want lyric handling, cue sheet splitting and tag editing in one window without a store account. Do not adopt it if you need macOS, Linux or Android playback, since the README states development and running are Windows-only. Before committing, verify that the Microsoft Visual C++ redistributable is present, that your preferred engine (BASS or FFmpeg) is selectable in the options, and that your layout choice survives a restart when edited through the xml layout file.
Frequently asked questions
Is MusicPlayer2 free?
Yes. The repository is licensed GPL-3.0, and the README points to the GitHub releases page for downloads. There is no paid tier described in the README.
Does MusicPlayer2 run on Windows only?
Yes. The README states the project supports development and running on Windows systems only, and the build instructions call for Visual Studio 2022 with the C++ workload and MFC checked.
Can I install MusicPlayer2 with Scoop?
Yes. The README states the package is maintained in the official Scoop Extras bucket and gives the command scoop install extras/musicplayer2.
Why does MusicPlayer2 report a missing MSVC dll at startup?
The README attributes this to the Microsoft Visual C++ runtime and links to Microsoft's Visual C++ Redistributable download page. Installing that package is the documented fix.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/zhongyang219-musicplayer2)