# 공개 기술과 라이선스

도일 뮤직랩의 코드는 GPL-2.0-or-later로 제공합니다. 원문은 `LICENSE`에 있습니다. 설치·개인 사용에 유료 엔진 구입이나 API 키가 필요하지 않습니다.

## Rubber Band Library 3.3.0

- 저작자: Chris Cannam, Particular Programs Ltd / Breakfast Quay 및 소스에 기재된 기여자
- 엔진: R3 Finer, 표준 다중 해상도 처리
- 공식 사이트: https://breakfastquay.com/rubberband/
- 라이선스: GPL v2 또는 그 이후 버전. 독점 상용 배포에는 별도의 라이선스가 필요할 수 있습니다.
- 원본 소스: `vendor/source/rubberband-3.3.0.tar.bz2`
- 출처: https://breakfastquay.com/files/releases/rubberband-3.3.0.tar.bz2
- 소스 SHA-256: `d9ef89e2b8ef9f85b13ac3c2faec30e20acf2c9f3a9c8c45ce637f2bc95e576c`

## rubberband-wasm 3.3.0

- 저작자: Daninet 및 저장소에 기재된 기여자
- 저장소: https://github.com/Daninet/rubberband-wasm
- 배포: https://registry.npmjs.org/rubberband-wasm/-/rubberband-wasm-3.3.0.tgz
- npm 무결성: `sha512-N0aABkKa1Cuxh/OiK9wHAuO7K/brSCOlHHNwlYfpAgTRtQPZFFxNr20NbsQyokVkw+1mZMcw+cT+3svHG6tPQQ==`
- WASM SHA-256: `496d880b4b585e2afb67be56cf8e14f14d8e1c911f732af0be60b826f07c04dc`
- 라이선스: GPL. 패키지의 `LICENSE`는 GPL v2 원문입니다.
- 변경 없이 포함: `vendor/rubberband.js`, `vendor/rubberband.wasm`
- 패키지 원본 및 빌드 지침: `vendor/source/rubberband-wasm-3.3.0.tgz`, `rubberband.c`, `build.sh`
- 빌드: 원본 패키지를 외부 개발 디렉터리에 풀고 Emscripten 환경에서 `build.sh`를 실행합니다. 패키지 스크립트가 Rubber Band 3.3.0 원본을 받습니다. 동봉된 원본 소스를 대신 사용해도 됩니다. OneDrive 내부에 빌드 캐시를 만들지 마세요.

## Android 네이티브 실시간 엔진 (1.3.0)

- 위 Rubber Band 3.3.0 원본의 `single/RubberBandSingle.cpp`를 Android NDK 27.3.13750724로 빌드합니다. JNI 어댑터는 `android/native/live-dsp.cpp`, 재현 빌드는 `android/build.ps1`입니다.
- libc++ 및 LLVM 런타임을 정적으로 링크합니다. LLVM Project는 Apache-2.0 WITH LLVM-exception 및 구성 파일별 고지를 따릅니다. 사용한 NDK의 원문 런타임·도구체인 고지는 [vendor/android-ndk-NOTICE.txt](vendor/android-ndk-NOTICE.txt)에 포함했습니다. 모든 도구체인 구성물을 앱에 넣는다는 뜻은 아닙니다.
- 새 APK의 정확한 웹 자산·Java·JNI·엔진 소스는 [Android 1.3.0 corresponding source](https://doil.dev/apps/keyshift/downloads/doil-music-lab-1.3.0-source.zip)로 제공합니다.

## Demucs 4.0.1 / HTDemucs (PC AI 분리)

- 원저자: Meta / Alexandre Défossez, Simon Rouard 및 기여자
- 공식 소스 및 모델 사용법: https://github.com/facebookresearch/demucs
- 라이선스: MIT. 기존 채보 앱의 외부 Python 환경에서 설치된 패키지와 원본 MIT 고지를 사용합니다. 앱 ZIP/APK에 Python 패키지나 가중치를 재배포하지 않습니다.
- 최초 실행 모델 다운로드: 공식 Demucs `get_model("htdemucs")` 경로. 캐시: `%LOCALAPPDATA%/SojeolKeyStudio/models` 또는 `SOJEOL_AI_CACHE`.
- 입력을 44.1kHz로 리샘플링하여 모델을 실행하고, 보컬 소스만 선택하거나 비보컬 소스를 합칩니다. 겹침 처리 후 원래 샘플레이트와 길이로 반환합니다. 앱의 AI 어댑터 소스는 `ai`에 있습니다.
- Python/NumPy/SciPy/PyTorch/SoundFile은 선택된 Python 환경의 원 라이선스 조건을 따릅니다.

## 플랫폼 API

- Web Audio / AudioWorklet / WebAssembly / MediaDevices: 브라우저 표준 API
- Chrome tabCapture / offscreen: https://developer.chrome.com/docs/extensions/how-to/web-platform/screen-capture
- 별도의 사이트 스크립트 주입이나 벅스 비공개 API를 사용하지 않습니다.

사용하지 않은 라이브러리: 조사한 `rubberband-web`은 제품에 포함하지 않았습니다. WASM C API를 통해 포먼트, R3, 전체 곡 2회 분석을 직접 설정합니다.
