서로 다른 연습곡 30개에 도입부와 마무리를 추가함
CI / Frontend - type-check & test (push) Canceled after 0s

비슷한 임시 연습곡 다섯 개를 교체했다. 부르크뮐러와 슈만 원본 30곡의 출처와 권리 정보를 보존했다. 각 MIDI에 양손 연습용 도입부와 마무리를 넣고 난이도를 음표 밀도로 분류했다.

MIDI 구조 검사 30개와 서버 격리 테스트 5개를 통과했다. 운영 백업: /home/syskiller/piano/backups/bach-to-basics/20261009-practice-30-intro-ending. 백엔드만 운영에 반영했고 HTTPS 공개 목록과 30개 다운로드를 확인했다. 회원 업로드 2건은 보존됐다. 실제 건반 연주감 검사는 남아 있다.
This commit is contained in:
이창현
2026-10-09 23:25:37 +09:00
parent 89f66c3bee
commit 8298f5af26
108 changed files with 2181 additions and 282 deletions
+16 -50
View File
@@ -108,56 +108,6 @@ def delete_session(token: str | None) -> None:
SAMPLES = (
{
"storage_name": "starlight-steps-beginner.mid",
"title": "별빛 계단",
"artist": "ITOSM 피아노 학습실",
"description": "약 76초 분량의 직접 만든 입문곡입니다. 오른손은 간단한 선율을 치고 왼손은 근음과 5도를 번갈아 누릅니다. 분산 화음 기법 참고: Bill Hilton의 유튜브 강좌(8AMZph76kqM).",
"difficulty": "beginner",
"genre": "연습곡",
"arrangement": "piano_solo",
"tags": ["양손", "입문", "분산 화음", "근음", "5도", "자체 제작"],
},
{
"storage_name": "starlight-steps-easy.mid",
"title": "별빛 계단",
"artist": "ITOSM 피아노 학습실",
"description": "같은 선율의 약 69초 분량 쉬운 버전입니다. 왼손 네 음을 차례로 펼쳐 소리를 풍성하게 만듭니다. 분산 화음 기법 참고: Bill Hilton의 유튜브 강좌(8AMZph76kqM).",
"difficulty": "easy",
"genre": "연습곡",
"arrangement": "piano_solo",
"tags": ["양손", "쉬움", "분산 화음", "단계별 연습", "자체 제작"],
},
{
"storage_name": "evening-waltz-beginner.mid",
"title": "저녁빛 왈츠",
"artist": "ITOSM 피아노 학습실",
"description": "약 64초 분량의 직접 만든 왈츠입니다. 왼손은 낮은 음 하나와 같은 음 두 번을 반복하고 오른손은 한 박에 한 음씩 연주합니다.",
"difficulty": "beginner",
"genre": "왈츠",
"arrangement": "piano_solo",
"tags": ["양손", "입문", "3박자", "왈츠", "자체 제작"],
},
{
"storage_name": "sunrise-arpeggio-easy.mid",
"title": "해돋이 아르페지오",
"artist": "ITOSM 피아노 학습실",
"description": "약 67초 분량의 직접 만든 연습곡입니다. 오른손 네 음을 차례로 누르는 동안 왼손은 낮은 근음 하나만 유지합니다. 아르페지오 기법 참고: Bill Hilton의 유튜브 강좌(8AMZph76kqM).",
"difficulty": "easy",
"genre": "연습곡",
"arrangement": "piano_solo",
"tags": ["양손", "쉬움", "아르페지오", "근음", "자체 제작"],
},
{
"storage_name": "black-key-pentatonic-beginner.mid",
"title": "검은 건반 산책",
"artist": "ITOSM 피아노 학습실",
"description": "약 74초 분량의 직접 만든 입문곡입니다. 검은 건반 다섯 음만으로 선율을 만들고 왼손은 두 음을 번갈아 누릅니다.",
"difficulty": "beginner",
"genre": "연습곡",
"arrangement": "piano_solo",
"tags": ["양손", "입문", "검은 건반", "5음 음계", "자체 제작"],
},
{
"storage_name": "minuet-bwv-anh-114-beginner.mid",
"title": "미뉴에트 사장조 BWV Anh. 114",
@@ -230,11 +180,27 @@ SAMPLES = (
},
)
# 별도 목록은 원본 MIDI와 권리 표시를 함께 보관한다. 화면에 쓰는 필드만 기본 샘플에 합친다.
PRACTICE_COLLECTION = json.loads(
(Path(__file__).with_name("sample_midi") / "practice_collection.json").read_text(encoding="utf-8")
)
SAMPLES += tuple(
{key: item[key] for key in (
"storage_name", "title", "artist", "description", "difficulty", "genre", "arrangement", "tags"
)}
for item in PRACTICE_COLLECTION
)
LEGACY_SAMPLE_KEYS = (
"first-snow-melody.mid",
"first-snow-accompaniment.mid",
"blue-breeze-walk.mid",
"little-morning-waltz.mid",
"starlight-steps-beginner.mid",
"starlight-steps-easy.mid",
"evening-waltz-beginner.mid",
"sunrise-arpeggio-easy.mid",
"black-key-pentatonic-beginner.mid",
)