Skip to content

do it - #1

Open
arnavaggarwal-dev wants to merge 6 commits into
masterfrom
desktop/pyside6
Open

arnavaggarwal-dev wants to merge 6 commits into
masterfrom
desktop/pyside6

Conversation

@arnavaggarwal-dev

Copy link
Copy Markdown
Owner

No description provided.

ARNAV AGGARWAL and others added 6 commits June 9, 2026 04:33
- main.py: PySide6 entry, embedded FastAPI on background thread
- backend/api/: FastAPI app factory, routers split by concern
- backend/models/schemas.py: Pydantic v2 typed contracts
- backend/bridge.py: QObject bridge QML↔FastAPI via Qt signals/slots
- backend/services/pipeline.py: extracted pipeline from monolithic server.py
- frontend/qml/: MainWindow, ScoreView, ProcessingView, Sidebar, Inspector, OmniBar
- pyproject.toml: project manifest + dev deps

Web prototype preserved on master branch.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…script

SQLite / SQLAlchemy:
- backend/db/models.py: Session + Stem ORM models
- backend/db/database.py: engine, SessionLocal, init_db
- backend/services/session_store.py: persist completed jobs
- backend/api/routers/history.py: GET/DELETE /api/history

QML UI (complete):
- StaffCanvas.qml: QtQuick Canvas notation renderer
  - real MIDI notes via /api/midi/{sid}/{stem}
  - seeded fake notes fallback for demo projects
  - treble/bass/perc/alto clef, barlines, noteheads, stems, ledger lines
- ScoreView.qml: scroll view with per-stem staff rows + transport bar
- MainWindow.qml: full layout with status bar, flash toast, download wiring
- Sidebar.qml: stem list + history from /api/history
- Inspector.qml: meta, per-stem confidence bars, GPU vram bar, export buttons
- FlashToast.qml: animated notification

Tests (16 total, 16 passing):
- tests/unit/: STEM_META, GPU info, DB init, Pydantic schemas
- tests/integration/: API routes mocked (analyze, status, midi, history, upload)

CI/CD:
- .github/workflows/ci.yml: lint + unit + integration on push; build exe on tag
- scripts/build_windows.py: PyInstaller one-file Windows exe

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- --onedir (not --onefile) — PySide6 QML plugins unreliable in single file
- Generates .spec at runtime with full PySide6 collect_all hook
- Bundles frontend/qml/, assets/, PySide6/qml/ plugins
- All FastAPI/SQLAlchemy/uvicorn hidden imports declared
- Creates launcher .bat + README.txt in output folder
- --zip flag: ZIPs dist/AegisScoreStudio/ → dist/AegisScoreStudio.zip
- --skip-deps-check for CI
- Placeholder .ico auto-generated if assets/icons/app.ico missing

Usage: python scripts/build_windows.py [--zip]

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add omnizart multi-instrument transcription for orchestral 'other' stem
  (separate venv required, Python 3.9 64-bit + TensorFlow)
- Add web MIDI fast-path: search bitmidi.com/freemidi.org before running
  full Demucs pipeline, saves 5-15 min on popular songs
- Grand-staff register split: auto-split MIDI spanning bass+treble into
  two staves when >12% notes in each register
- Multi-track split: omnizart outputs per-instrument tracks (Violin/Viola/
  Cello/etc.) which become separate stems
- Detection log now lists every detected note (pitch, time, dur, velocity)
- Add setup.bat: one-shot install of all deps incl. omnizart venv creation
- Update Launch Aegis.bat: auto-runs setup on first launch, reads
  OMNIZART_PYTHON from .env.local
- Fix session fast-restore, ctx menu z-index, re-analyze force flag,
  non-blocking audio load, single-click recent session open

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant