악보 진행과 연습곡 분류를 바로잡음
CI / Frontend - type-check & test (push) Canceled after 0s

양손 악보를 피아노 독주로 통일하고 난이도 정렬과 곡 목록 통신 복구를 보완했다.
재생 위치에 맞춰 악보 커서와 화면이 이동하도록 고쳤으며 높은음과 낮은음에는 8va와 8vb 표기를 적용했다.
상단 브랜드와 저장소 링크를 ITOSM 피아노 학습실 기준으로 바꿨다.

검사: 프런트엔드 테스트 67건 통과, 백엔드 테스트 4건 통과, 타입 검사와 빌드 통과, Docker 재빌드와 운영 화면 확인
운영 반영: 완료
백업: /home/syskiller/piano/backups/bach-to-basics/20261003-1635-classification-scroll
This commit is contained in:
이창현
2026-10-03 16:56:26 +09:00
parent 0522e48013
commit 92bc93c01b
20 changed files with 218 additions and 141 deletions
+11 -5
View File
@@ -70,11 +70,11 @@ Bach to Basics의 기존 파일 가져오기 기능을 유지하면서 서버
Mutopia Project가 공개 도메인으로 배포하는 실제 클래식 MIDI를 전체 공개 샘플로 제공한다. 출처와 파일별 권리 표시는 `THIRD_PARTY_SAMPLES.md`에 기록한다.
- 미뉴에트 사장조 BWV Anh. 114: 입문 오른손과 쉬운 양손 원곡
- 미뉴에트 내림마장조 WoO 82: 쉬운 오른손과 중급 양손 원곡
- 엘리제를 위하여 WoO 59: 입문 오른손과 쉬운 양손 및 고급 원곡
- 미뉴에트 사장조 BWV Anh. 114: 입문 양손 편곡과 쉬운 양손 원곡
- 미뉴에트 내림마장조 WoO 82: 쉬운 양손 편곡과 중급 양손 원곡
- 엘리제를 위하여 WoO 59: 입문 양손과 쉬운 양손 및 고급 원곡
같은 제목의 난이도와 편곡 형태는 한 묶음에서 선택한다. 공개 도메인 원곡에서 만든 단계별 연습 편곡은 `scripts/build_sample_variants.mjs`로 다시 만들 수 있다.
같은 제목의 난이도별 버전은 한 묶음에서 선택한다. 기본 단계별 연습곡은 모두 오른손과 왼손을 포함한 피아노 독주로 제공한다. 손별 연습은 연습 화면에서 선택한다. 공개 도메인 원곡에서 만든 단계별 연습 편곡은 `scripts/build_sample_variants.mjs`로 다시 만들 수 있다.
## 악보 표시
@@ -86,6 +86,10 @@ MIDI를 선택하면 서버에서 MusicXML로 변환한 뒤 AlphaTab으로 오
운영 환경에서는 악보 렌더링을 UI 스레드에서 처리한다. Vite 번들과 별도 Worker가 렌더링 자원을 서로 다르게 초기화해 빈 악보가 되던 문제를 피하기 위한 설정이다.
전체 화면의 가로 악보는 외부 재생 시계의 시간과 AlphaTab tick을 함께 사용해 커서를 갱신한다. 커서가 화면 너비의 약 40퍼센트 지점에 오면 악보가 부드럽게 따라간다. 확인한 AlphaTab 1.8.3을 고정해 내부 커서 경로가 예고 없이 바뀌지 않게 한다.
MIDI 변환 악보에서 C6 이상의 음이 한 마디에 두 개 이상 이어지면 8va를 적용한다. C2 이하의 연속 저음에는 8vb를 적용한다. C7 이상과 C1 이하는 한 음만 있어도 적용한다. 옥타브 기호는 표기 위치만 바꾸며 실제 재생 음높이는 유지한다.
## 초기 관리자
초기 관리자 아이디는 Compose 환경 변수로 지정한다. 비밀번호는 `secrets/library_admin_password`에서만 읽는다. DB에 같은 아이디가 없을 때만 최초 관리자를 생성한다. 컨테이너 재시작 때 기존 비밀번호를 덮어쓰지 않는다.
@@ -110,7 +114,9 @@ MIDI를 선택하면 서버에서 MusicXML로 변환한 뒤 AlphaTab으로 오
3. 비공개 곡이 다른 회원과 비회원에게 보이지 않는지 확인한다.
4. 회원 공개와 지정 공유 및 최소 등급 제한을 확인한다.
5. MIDI와 MusicXML과 MXL 및 PDF 업로드와 한글 제목 및 태그 검색을 확인한다.
6. 같은 제목의 멜로디와 반주 버전을 각각 불러온다.
6. 같은 제목의 입문과 쉬움 및 원곡 버전을 각각 불러온다. 모든 단계에서 오른손과 왼손 악보가 함께 표시되는지 확인한다.
7. 비밀번호 변경 후 기존 세션이 끝나는지 확인한다.
8. 시험 회원 탈퇴 후 계정과 업로드가 제거되는지 확인한다.
9. 모바일 화면에서 검색과 업로드 및 계정 화면이 가로로 넘치지 않는지 확인한다.
10. 전체 화면에서 50초 이상 이동한 뒤 악보 커서와 가로 스크롤이 진행 막대를 따라가는지 확인한다.
11. 고음과 저음이 많은 MIDI를 변환해 MusicXML에 8va와 8vb가 생성되는지 확인한다.