SHAWZIFY

Contributing to SHAWZIFY

Bug reports and arrangements that came out badly are genuinely the most useful thing you can send. The engine is a pile of musical judgement calls, and the only way to know a weight is wrong is to hear it.

Getting set up

git clone https://github.com/omercsbn/shawzify
cd shawzify
scripts\setup.ps1          # -SkipMl if you do not want PyTorch (much faster)
scripts\test.ps1           # everything should pass before you change anything

Prerequisites and layout are in docs/development.md. The engine alone needs only Python — no Rust, no Node — if that is the part you are working on.

Reporting a bad arrangement

This is the report that helps most, and it needs three things:

  1. What you converted — a link, or the file's name and where it came from. Please do not attach copyrighted audio.
  2. The settings — mode, complexity, scale, stem source. The Advanced panel or --json output has all of them.
  3. What was wrong with it — "the chorus lost its melody", "the rhythm went flat", "it picked the wrong scale". Specific beats vague.

shawzify convert song.mp3 --json > report.json captures the whole decision trail, including per-note reasons. Attach it if you can.

Changing the engine

A few things the codebase is opinionated about:

If you are adding a transcription backend, an audio source, a stem separator, a preview instrument or an arrangement mode, there is a short recipe for each at the end of docs/development.md.

Before you open a pull request

scripts\test.ps1

That runs pytest, ruff, tsc, vitest and cargo test. CI runs the same thing on Windows, so a green local run means a green CI run.

Keep commits focused, and write the message for someone reading git log in a year: what changed and why, not what the diff already shows.

Security

Please do not open a public issue for a security problem — see SECURITY.md.

What is out of scope

Code of conduct

By participating you agree to the Code of Conduct.