Skip to content

Super-Badmen-Viper/NSMusicS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NSMusicS | Nine Song Music : 九歌音乐

NSMusicS is a music(streaming/local) client project designed to support all platforms.
The corresponding digital center server NineSong is a server that is bound and paired with NSMusicS, providing high-quality cloud music services for NSMusicS. Of course, NineSong will also provide cloud service scenarios for other application scenarios in the future (film and television videos, photo albums, novels, documents, notes).

Ask DeepWiki

While giving NSMusicS a star, please also give a star to its server, NineSong.

At the same time, NSMusicS is also compatible with various mainstream open-source streaming servers: Navidrome, Jellyfin, Emby. ....

In addition, NSMusicS also supports local mode to use local music libraries. And plan to support various types of network cloud drives,such as webdev,onedriver....

NineSong Server New Function

the NineSong official version 1.0.0 will be released At the end of July 2025. If you want to try using a hybrid version of NSMusicS and NineSong's Docker, you can deploy it in the NineSong project:

NSMusicS-Docker-0.8.0 Download: https://github.com/Super-Badmen-Viper/NineSong Compared to other music servers (such as Navidrome, Jellyfin, Emby, Plex, Subsonic, Gonic), it offers the following enhanced features:

  • More comprehensive music library management:
    • Rich single-level sorting options, supporting multi-level mixed sorting and multi-level mixed filtering;
    • deeper processing of composite tags to make the relevance between musics more comprehensive;
    • search jump optimization
      • Support fuzzy search based on title, album, artist, and lyrics (multiple mixed matching of Chinese Pinyin and simplified traditional Chinese characters);
      • recommended similar search results;
  • More comprehensive music playback experience:
    • various elegant playback styles[cover Square、cover Rotate、cover Beaut、cover Base、cover AlbumList];
    • exclusive playback modes for various music files[normal model、cue-music model];
  • CUE exclusive playback (CUE: wav、ape、flac) and CUE file management:
    • Exclusive management page for music disc image (mirror) auxiliary files.
    • CUE playback styles suitable for music disc image features
    • Visualized virtual track playback of CUE
  • More complete TAG import and management:
    • support for importing complete TAGs from more types of music files (including m4a、cue(wav、ape、flac));
  • Personalized music recommendations based on user usage data:
    • Phase 1 (June): Add tag cloud and recommend music based on user interests.

Subsequent updates (Music Scene):

  • More comprehensive music library management:
    • support for dual-page browsing mode (unlimited virtual list, paged list);
    • support uploading, downloading, and synchronizing music files between the server and client;
  • More complete TAG import and management:
    • support for user-visualized TAG management, allowing remote uploads, auto-associating, manual merging of artist-album-single TAGs;
    • support for richer TAG fields: artist profile pictures, artist photos (multiple selection), album covers, song quality versions (multiple selection), and lyrics versions (single selection);
  • ISO exclusive playback and ISO file management:
    • Exclusive management page for music disc image (mirror) auxiliary files.
    • ISO playback styles suitable for music disc image features
    • Visualized virtual track playback of ISO
  • Support more sound effects settings:
    • support for multi-channel audio effects
    • support for Advanced/Standard/Simple EQ
  • Integrated free public welfare music TAG API:
    • allowing users to obtain online TAGs for songs and choose whether to synchronize TAG data.
  • Personalized music recommendations based on user usage data:
    • Phase 2 (August): Use lightweight recommendation algorithms based on usage data.
    • Phase 3 (October): Build a music knowledge graph by analyzing music metadata to achieve smarter recommendations.
    • Phase 4 (December): Combine the knowledge graph with LLM (DeepSeek) for advanced music recommendations.

You first need to download the compressed file from the ninesong releases

You need to put the. env and docker-compose.yaml files in the same folder. You can customize the parameter configuration of. env and docker-compose.yaml, such as mapping the media library folder to the Volumes of the NineSong container.

Note that if you update the mirrored version of NineSong, temporary resources in the media library (such as album covers) will also be deleted. You need to rescan the media library in the settings to regenerate temporary resources

run: docker compose up -d
login mail: admin@gmail.com
login password: admin123

How to Thoroughly Reinstall NineSong: Need to Clear Data Together with Volumes in Docker.
Because considering that the image upgrade cannot affect the database data, if you delete the containers of NineSong, the data in their databases will not disappear unless you clear it together with the data in Volumes in Docker.

NSMusicS-Electron | NineSong Music(Desktop-client) : 九歌音乐

  • supporting the Windows10+、MacOS(arm、x64)、Linux platform (which will soon support Docker)
  • music library management
  • network cloud drives (webdev , onedriver....)
  • compatible with streaming media servers (navidrome , jellyfin , emby)
  • compatible with streaming media servers (NineSong、Plex)
  • compatible with local music libraries (win10+)
  • compatible with local music libraries (which will soon support MacOS(arm、x64)、Linux、Docker)
  • mpv -play (win10+、MacOS(arm、x64))
  • mpv -play (which will soon support Linux、Docker)
  • professional audio playback
  • Rich sound effects playback
  • internationalization
  • various music usage scenarios(For NineSong: Server)
  • System backend playback -tray (win10+、MacOS(arm、x64))
  • System backend playback -tray (which will soon support Linux)
  • Compatible with streaming media servers (Jellyfin、Emby、Navidrome、Plex)
  • General file library management(Audio、Video、Image、Text、Document、Archive、Executable、Database、Unknown)
  • Scene of Streaming Music and Karaoke
  • Scene of AI-Models deploy
  • Scene of Intelligent Gallery album
  • Scene of Film and Television Center
  • Scene of Online Notes
  • Scene of Document Workbench
  • Scene of E-book reader
  • Knowledge graph Recommendation system
  • Internationalization

NSMusicS-Flutter | NineSong Music(Mobile-client) : 九歌音乐

  • music library management
  • professional audio playback
  • Rich sound effects playback
  • internationalization
  • various music usage scenarios(For NineSong: Server)

Screenshots:

  • NSMusicS(Electron, Docker-Web):Under development
  • Normal Play Model

  • Mini Play Model: Desktop floating mini window

Downloads

Group Chat

  • QQ群聊
    • NSMusicS交流群(1):(已满500人,请入2群)
    • NSMusicS交流群(2):610551734
  • Other | None
  • 请注意,所有聊天组仅用于日常沟通、功能请求、需求报告和错误报告,只要您态度端正并支持九歌,在我力所能及的情况下,您的需求我都将尽力满足,但是这需要功能需求排期开发,但是您也可以通过赞助等等开源贡献方式来加快你的需求实现。
  • 请不要在聊天组与我进行技术辩论或问答,不然我会给你踢出群聊,技术辩论或问答是非常不礼貌的行为,尤其是在我和你不熟、且你没有参与开源贡献的情况下。

Subsequent updates

  • The cross platform version of NSMusicS Flutter for mobile devices will be released by the end of this year. marking a milestone in the NineSong Music Scene as the first application scenario of the NineSong software ecosystem

  • The NSMusicS client of Huawei HarmonyOS ecosystem will be released in 2026, also in conjunction with NineSong

  • After the initial development and improvement of NSMusicS, it will be integrated into various software ecosystems, such as:

    • Xiaomi Home Integration for Home Assistant: github: ha_xiaomi_home (米家集成:智能家居系统)
    • Xiaomi ecosystem of people, cars, and homes (小米:人车家全生态)

Version:

Project Development status Technology Framework Author/Copyright Owner Operating systems LICENSE
NSMusicS : (Desktop、Docker) updateing electron,nodejs,vue,ts,sqlite,docker My Skills Xiang Cheng Windows
Linux(ubuntu+)
Docker
MacOS
A-GPL 3.0
NineSong updateing Go,MongoDB,Gin,JWT,sqlite,docker My Skills Xiang Cheng Docker A-GPL 3.0
NineSongAI updateing Java,MongoDB,SpringBoot,MySQL,docker My Skills Xiang Cheng Docker A-GPL 3.0
NineSongPro updateing Java,MongoDB,SpringCloudAlibaba,MySQL,docker My Skills Xiang Cheng Docker A-GPL 3.0
NSMusicS_For_Flutter updateing flutter,dart,androidstudio My Skills Xiang Cheng Android11++
IOS
A-GPL 3.0
NSMusicS_For_HarmonyOS will developed ArkTs,ArkUI Xiang Cheng HarmonyOS A-GPL 3.0
NSMusicS_For_Audio will developed pytorch,py,jupyter,matlab My Skills Xiang Cheng Docker A-GPL 3.0
NSMusicS_For_KG will developed NebulaGraph / Neo4j Xiang Cheng Docker A-GPL 3.0
NSMusicS-WPF ?-> WinUI3 need to be refactored .net,cs(C#),sqlite My Skills Xiang Cheng Windows10++ A-GPL 3.0

sponsor

爱发电:https://afdian.com/a/fu_zi_qian

Using the source code of NSMusicS-Electron

If you would like to experience the latest development progress of NSMusicS-Electron:

cd NSMusicS\NSMusicS-Electron
# node      -v  20.15.0
# npm       -v  10.4.0
npm install  /or/  cnpm install # Recommended use cnpm install
# Install MPV in the Windows environment (requires its executable file compressed file) 
# https://mpv.io/installation/
# [windows] unzip its contents to: NSMusicS\NSMusicS-Electron\resources\mpv-x86_64-20241124
# [macos] unzip its contents to: NSMusicS\NSMusicS-Electron\resources\mpv-x86_64-20241124
# [linux] please waiting....
# You need to recompile the native module better sqlite3 to allow the sqlite database to read normally
# You can use either of the following two methods (Choose method A or B)
## method A. -> Recommend this, Ensure that the node version is 20.15.0
    Delete the files in the following path first: NSMusicS\NSMusicS-Electron\node_modules\better-sqlite3\build\Release\better_sqlite3.node
    Then copy the file from the following path: NSMusicS\NSMusicS-Electron\resources\node\win | linux | macos -> better-sqlite3.node
    Paste the copied file to the following path: NSMusicS\NSMusicS-Electron\node_modules\better-sqlite3\build\Release
## method B.
    cd NSMusicS/NSMusicS-Electron/node_modules/better-sqlite3 
    npm install electron-rebuild -D
    # 1.open better-sqlite3/package.json 
    # 2.scripts addline: "rebuild": "electron-rebuild -f -w better-sqlite3" 
    npm run rebuild 
cd NSMusicS\NSMusicS-Electron
npm run dev # Direct operation NSMusicS\NSMusicS-Electron
cd NSMusicS\NSMusicS-Electron
npm run build # Package into the current system_configs's software package (such as exe)

Related projects:

Author's Message

  • As this project is currently independently developed by Xiang Cheng(myself), programming standards are a personal habit of the Xiang Cheng(myself), and coding standards are not yet standardized enough. However, this project will continue to undergo self refactoring and reverse development. It can be affirmed that in the future, NSMusicS will form a standard coding specification, which will be beneficial for the community to develop third-party NSMusicS plugins, Enable NSMusicS to meet the diverse needs of more potential customers,Most importantly, NSMusicS will always be open source and continuously updated
  • The expectation of the NSMusicS series products is to enable people around the world to use free, open-source, and user-friendly music products
  • 大道之行,天下为公。人神恋歌,九歌韵世。

The Chinese name of the project is "Nine Song Music Super | 九歌音乐", abbreviated as NSMusicS
inspired by ["Chu Ci"] | 楚辞, to commemorate ["Qu Yuan"] | 屈原