Bach to Basics Copyright (c) 2025 gigliof This product includes the following third-party components. Each is subject to its own license terms; check the upstream project for the full text. ──────────────────────────────────────────────────────────────────────────── Bundled assets ──────────────────────────────────────────────────────────────────────────── frontend/public/soundfont/sonivox.sf3 SONiVOX Embedded Audio Synthesis (EAS) soundfont, originally released as part of the Android Open Source Project under the Apache License 2.0. Used here as the AlphaTab playback soundfont. ──────────────────────────────────────────────────────────────────────────── Frontend dependencies (selected - full list in frontend/package.json) ──────────────────────────────────────────────────────────────────────────── AlphaTab - MPL-2.0 (sheet music renderer) PixiJS - MIT (WebGL renderer) Tone.js - MIT (audio scheduling) smplr - MIT (sample-based instruments) WebMidi.js - Apache-2.0 (MIDI input) React - MIT Zustand - MIT Vite - MIT Tailwind CSS - MIT MPL-2.0 note: AlphaTab is consumed unmodified as an npm dependency. MPL-2.0 is per-file copyleft - if you modify AlphaTab's own source files you must share those changes under MPL-2.0, but the rest of this codebase remains under MIT. ──────────────────────────────────────────────────────────────────────────── Backend dependencies (selected - full list in backend/requirements.txt) ──────────────────────────────────────────────────────────────────────────── music21 - LGPL-3.0 (music theory + MusicXML) FastAPI - MIT defusedxml - PSF-2.0 pianoplayer - MIT (Parncutt fingering algorithm) yt-dlp - Unlicense (YouTube audio extraction) pdf2image - MIT Basic Pitch (optional) - Apache-2.0 (audio → MIDI transcription) LGPL note (music21): used as a pure Python library import, unmodified. ──────────────────────────────────────────────────────────────────────────── Optional external tools (NOT bundled - user installs separately) ──────────────────────────────────────────────────────────────────────────── Audiveris 5.x - AGPL-3.0 (PDF → MusicXML OMR) Audiveris is invoked as a subprocess if the user places audiveris.jar at backend/bin/. Because it's distributed separately by the user (and is optional), the AGPL obligations apply only to anyone redistributing the JAR or hosting Audiveris itself - not to this codebase.