npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@lazyingart/musia

v0.1.1

Published

Local-first AI song localization studio: CLI, webapp, stems, lyrics, beats, chords, and creative music workflows.

Readme

English · العربية · Español · Français · 日本語 · 한국어 · Tiếng Việt · 中文 (简体) · 中文(繁體) · Deutsch · Русский

LazyingArt banner

Musia

AI song localization: extract the human voice, stems, lyrics, beats, and chords from a song, then prepare the path toward singable multilingual re-singing.

Website Fun Media Python CUDA Sponsor

Musia is a local-first research prototype for AI music localization. The current MVP takes an input song, separates it into the four Demucs stems bass, drums, vocals, and other, creates an instrumental mix, aliases the vocal as human_sound, transcribes lyrics, estimates beats, and produces Chordify-style chord segments.

Musia Fun player full-song demo

| Donate | PayPal | Stripe | | --- | --- | --- | | Donate | PayPal | Stripe |

What It Produces

input song
-> source/input.wav
-> stems/bass.wav
-> stems/drums.wav
-> stems/vocals.wav
-> stems/other.wav
-> stems/instrumental.wav
-> stems/human_sound.wav
-> analysis/lyrics.json + lyrics.txt
-> analysis/beats.json + beats.csv
-> analysis/chords.json + chords.csv
-> manifest.json + REPORT.md

instrumental.wav is mixed from bass + drums + other. human_sound.wav is the isolated vocals.wav stem.

Current Contents

| Path | Purpose | | --- | --- | | musia/ | Local Python analysis toolkit. | | package.json | npm package metadata for the musia CLI/webapp wrapper. | | bin/musia.js | npm executable that launches Musia Studio and Python workflows. | | website/ | Static Fun Lazying Art media website with a synced player, covers, lyrics/subtitles, pinyin, furigana, chords, and share metadata. | | SETUP_AND_TEST.md | Fresh-clone setup, smoke test, matrix test, and script map. | | scripts/setup_and_smoke_test.sh | One-command core setup plus open-song smoke test. | | scripts/bootstrap_musia.sh | Creates the conda environment and installs the local stack. | | scripts/download_open_songs.py | Downloads free/open test songs. | | scripts/run_pipeline.py | Runs separation, transcription, beats, chords, and report generation. | | scripts/test_open_songs_matrix.sh | Runs the EN/ZH/JA open-song analysis matrix. | | scripts/install_research_repos.sh | Shallow-clones optional research repositories into third_party/. | | scripts/download_quality_backends.sh | Downloads high-quality research backends and model weights into ignored local folders. | | scripts/install_quality_envs.sh | Creates isolated repo-local conda/uv environments for large singing and music models. | | scripts/run_soulx_env.sh | Runs SoulX-Singer with the cloned repo on PYTHONPATH. | | scripts/run_soulx_svs.sh | Runs SoulX-Singer SVS inference with prompt and target metadata. | | scripts/soulx_rewrite_metadata.py | Rewrites SoulX metadata with Mandarin target lyrics while preserving note/F0 timing. | | scripts/mix_vocal_with_instrumental.sh | Mixes a generated vocal with an instrumental stem and loudness-normalizes it. | | scripts/run_localization_performance_pipeline.sh | Dedicated EN/ZH localization performance demo using DeepSeek or OpenAI for lyric/check packages. | | scripts/musia_create.py | Creative CLI for idea, lyrics, chords, notation, reference audio, and localization project planning. | | scripts/musia_song_workbench.py | Reusable song generation, correction, review, and LALACHAN handoff workbench. | | scripts/musia_studio_web.py | Local Musia Studio web app. | | scripts/start_musia_studio_tmux.sh | Starts Musia Studio in tmux. | | scripts/musia_quality_check.py | Checks generated audio duration, levels, ASR, and lyric overlap. | | scripts/validate_fun_media_site.py | Validates the fun.lazying.media.v1 website catalog, manifests, assets, and language tracks. | | scripts/run_moss_music_env.sh | Runs MOSS-Music with the required FFmpeg, TorchCodec, and CUDA library paths. | | scripts/musia_lyricfit_openai.py | Optional OpenAI-powered lyric adaptation helper. | | references/ | Architecture, deep research, and local setup notes. | | TODO.md | Build checklist and next engineering steps. |

Quick Start

Fresh clone, setup, and smoke test:

git clone https://github.com/lachlanchen/Musia.git
cd Musia
bash scripts/setup_and_smoke_test.sh

Manual core commands:

bash scripts/bootstrap_musia.sh
PYTHONNOUSERSITE=1 conda run -n musia python scripts/download_open_songs.py --id danny-boy-1917
PYTHONNOUSERSITE=1 conda run -n musia python scripts/run_pipeline.py data/open_songs/danny-boy-1917/original.ogg --run-name smoke-danny --max-duration 45 --asr-model tiny

Results are written to:

data/runs/<run-name>/

Generated audio, downloaded songs, model weights, and third-party clones are ignored by git.

For the full setup/test guide, see SETUP_AND_TEST.md.

Fun Lazying Art Website

The public media site lives in website/ and is intended for songs, localized songs, MVs, short films, covers, synced lyrics, subtitles, chords, stems, and shareable media pages.

The default catalog item is Small Under the Red Sky, a Mars desert full-song demo with separate English, Mandarin, and Japanese renders. The catalog also includes Rain Day Full Song; both demos use per-vocal trilingual lyric sets when the generated renders do not sing identical lines.

npm run website:validate
python3 -m http.server 8778 --directory website

Local URL:

http://127.0.0.1:8778/

Public URL after GitHub Pages deploy:

https://fun.lazying.art

The reusable data protocol is documented in references/musia-website-json-format.md. The full song-generation and website-publishing workflow is documented in references/musia-song-generation-and-website-runbook.md.

Song Workbench

For repeatable song generation and review:

musia song init --title "My Song" --vocal-language ja --lyrics-file lyrics.txt
data/creative_projects/<song-id>/commands.sh generate
data/creative_projects/<song-id>/commands.sh review
musia song handoff --project-dir data/creative_projects/<song-id> --audio data/creative_projects/<song-id>/final/selected.mp3

See references/musia-song-workbench.md and references/lalachan-song-first-video-workflow.md.

npm CLI And Webapp

Musia also ships as an npm package wrapper around the local Python/conda engine.

From this repo:

npm install
npm link
musia doctor
musia studio --tmux

From npm:

npm install -g @lazyingart/musia
musia doctor

Or without linking:

npm run check
node bin/musia.js studio --tmux

Useful npm/CLI commands:

musia setup
musia models
musia plan --title "My Song" --idea "A cinematic song about..." --provider deepseek
musia soulx-verse --title "Rain Day" --idea "A rainy bilingual musical short film verse"
musia new-session --title "My Song" --cwd ./my-song-folder
musia chat --cwd ./my-song-folder --mode chat "What should I do next?"
musia chat --cwd ./my-song-folder --mode worker "Analyze this project and register artifacts."
musia resume-session <session-id> --cwd ./another-folder
musia pipeline data/open_songs/danny-boy-1917/original.ogg --run-name npm-smoke --max-duration 45
npm run pack:dry-run

The npm CLI uses conda run -n musia python ... by default. Override with:

MUSIA_CONDA_ENV=musia
MUSIA_PYTHON=/path/to/python
MUSIA_NO_CONDA=1

Run the dedicated localization performance demo after the smoke/matrix artifacts exist:

MUSIA_LYRIC_PROVIDER=deepseek \
DEEPSEEK_MODEL=deepseek-reasoner \
scripts/run_localization_performance_pipeline.sh

If your OpenAI account has access to GPT-5.5-compatible chat completions, the same demo can be run with:

scripts/run_localization_performance_pipeline.sh --provider openai --model gpt-5.5

Create original music projects from ideas, lyrics, chords, notation, or reference recordings:

PYTHONNOUSERSITE=1 conda run -n musia python scripts/musia_create.py plan \
  --title "My Song" \
  --idea "A hopeful acoustic song about..." \
  --lyrics-file lyrics.txt \
  --chords "C G Am F" \
  --provider deepseek

Start the local web app:

scripts/start_musia_studio_tmux.sh

Musia Studio and the CLI share sessions. A working folder gets a .musia/sessions/<session-id>/session.json pointer, while messages and jobs stay in data/studio/, so you can create or resume music sessions from either web or CLI.

See references/musia-creative-studio.md.

For the new control-level model and the SoulX vocal-only workflow, see references/musia-control-and-soulx-workflow.md. For original short SoulX verse generation, see references/soulx-verse-tool.md and references/lalachan-musia-musical-short-film-handoff.md. For the full installed capability map and practical workflows, see references/musia-full-capability-guide.md.

Local Validation

The local smoke test on an open Wikimedia Commons recording passed on a machine with an NVIDIA RTX 4090 D:

PYTHONNOUSERSITE=1 conda run -n musia python scripts/run_pipeline.py data/open_songs/danny-boy-1917/original.ogg --run-name smoke-danny-120-fixed --max-duration 120 --asr-model base.en --language en --demucs-device cuda

Recorded result:

  • Four stems: bass, drums, vocals, other
  • Additional audio: instrumental, human_sound
  • Tempo estimate: 129.20 BPM
  • Beat count: 257
  • Chord segments: 132
  • Lyrics status: ok

See references/local-setup-and-test-report.md.

A broader open-song matrix and first-verse Chinese localization test were run on 2026-06-28:

MAX_DURATION=60 ASR_MODEL=small DEMUCS_DEVICE=cuda scripts/test_open_songs_matrix.sh

See references/open-song-test-report-2026-06-28.md for exact input songs, output paths, SoulX/YingMusic attempts, and the current quality gate results.

The dedicated DeepSeek/OpenAI localization performance script was also run on 2026-06-28. See references/localization-performance-demo-2026-06-28.md.

High-Quality Backends

The local machine has staged heavier research backends for better vocal quality and music understanding:

  • Strict song localization: SoulX-Singer and YingMusic-Singer-Plus.
  • Full-song alternatives: ACE-Step 1.5, YuE, DiffRhythm, SongGen, HeartMuLa.
  • Music understanding and QA: MOSS-Music.

See references/high-quality-vocal-backends.md and references/local-quality-backend-install-status.md. For the practical control modes, including vocal-only SoulX generation, melody/旋律 generation, full production, controlled material-based generation, and licensed localization, see references/musia-control-and-soulx-workflow.md. For the local SoulX vocal-only outputs that sounded usable, see references/soulx-good-vocal-runs-2026-06-28.md.

For the broader EN/ZH/JP model map, including Chinese-company repos and Microsoft Muzic, see references/en-zh-jp-music-model-repos.md.

Architecture Direction

Musia is not only translation plus TTS. The intended full pipeline is:

song upload
-> rights / ownership check
-> vocal + instrumental separation
-> lyrics transcription
-> word / phoneme timing
-> melody / pitch extraction
-> singable lyric adaptation
-> AI singing synthesis
-> optional voice/timbre conversion
-> mixing + mastering
-> music-player interface

The current repository implements the first local analysis layer. Singing synthesis with YingMusic-Singer-Plus, SoulX-Singer, and related models is staged as a research integration because those models require larger weights, license checks, and separate GPU-worker packaging.

Citation

If you use Musia in research, cite the repository. GitHub reads CITATION.cff and shows a Cite this repository panel on the repo page.

@software{chen_musia_2026,
  author = {Chen, Lachlan},
  title = {Musia: Local-first AI song localization and music analysis},
  year = {2026},
  url = {https://github.com/lachlanchen/Musia}
}

Status

Musia is early research software. The local pipeline works for testing and artifact generation, but the chord detector is a lightweight baseline and the singable re-singing layer is not production-ready yet. Use songs you own, public-domain songs, licensed songs, or creator-uploaded material.