Music Practice Assistant

Cloudflare 검토용 초안 / 제품 포스터

노래를 올리면,
피아노용 결과와
기타용 결과를
따로 읽는다.

같은 곡을 같은 코드명으로만 반복하지 않습니다. 먼저 원곡을 읽고, 그다음 피아노에는 피아노답게, 기타에는 기타답게 다시 해석하는 연습용 엔진을 목표로 합니다.

출력 원칙 한 곡, 두 개의 연주 가능한 결과
분석 목표 마디를 읽는 화성 초안
경계 업로드 기반, 개인 연습 우선
Draft Pipeline 라이브 컨셉 검토 중
입력

사용자 업로드 파일

안전한 경로
오디오mp3 / wav / m4a
비디오mp4 / mov / webm
정책플랫폼 직접 스크래핑 없음
공통 분석

곡 구조와 화성부터 읽기

목표 스펙
리듬 구조beats / downbeats / sections
화성 구조key / chords / confidence
악기 렌더링

같은 곡을 각 악기 문법으로 다시 출력

같은 시트를 두 번 보여주지 않기
피아노보이싱 / 음역 / 양손 분리
기타카포 / 쉐이프 / 오픈 코드 우선
결과 기준완벽보다 연주 가능성 우선

제품 약속

분석과 편곡을 분리해서,
악기마다 다른 답을 줍니다.

문제는 코드명을 하나 뽑는 것이 아닙니다. 피아노와 기타는 같은 화성을 읽어도 실제로 쥐는 방식이 다르기 때문에, 공통 분석 결과 위에 악기별 해석 레이어가 따로 올라가야 합니다.

이 랜딩은 단순한 자기소개 페이지가 아니라 제품 정의를 검증하는 초안입니다. 첫 화면에서 보여주려는 핵심은 세 가지입니다. 원곡 분석은 공통 레이어에서 한다. 출력은 피아노와 기타가 서로 달라야 한다. 그리고 결과는 정답처럼 보이기보다 실제로 연습을 시작할 수 있게 보여야 한다.

공통 분석마디, 코드 후보, 섹션, 키를 먼저 읽습니다.
피아노 렌더링양손 분리, 보이싱, 음역, voice leading을 고려합니다.
기타 렌더링카포, 오픈 코드, 쉐이프 대체, 운지 난이도를 고려합니다.
곡은 한 번 읽고,
결과는 두 번 다시 만들고,
둘 다 실제로 쳐지게 만든다.

악기별 출력

같은 곡이어도,
피아노 뷰와 기타 뷰는 달라야 합니다.

피아노는 코드 심볼만으로 충분하지 않고, 기타는 음 이름만으로 충분하지 않습니다. 그래서 결과는 악기별로 서로 다른 규칙과 화면을 가져야 합니다.

피아노 뷰

양손과 보이싱이 보이는 결과

보이싱 우선

피아노는 코드명을 보여주는 것으로 끝나면 안 됩니다. 왼손은 어디를 잡고, 오른손은 triad로 갈지 7th를 포함할지, 멜로디를 위에 둘지까지 판단해야 연주 가능한 결과가 됩니다.

  • 왼손 루트 또는 루트+5도 패턴
  • 오른손 triad / 7th / tension 축약 규칙
  • 음역 제한과 과도한 도약 억제
  • 초보, 초중급, 중급 난이도별 단순화
표시 방향코드 심볼 + 양손 가이드 + 필요한 경우 간단한 악보 또는 MIDI 뷰.
기타 뷰

카포와 쉐이프가 보이는 결과

쉐이프 우선

기타는 같은 C 코드라도 어떤 폼으로 잡는지가 중요합니다. 쉬운 키로 전조할지, 카포를 쓸지, 오픈 코드로 갈지, 바레를 대체할지까지 정해줘야 실제로 손에 들어옵니다.

  • 오픈 코드 우선과 바레 대체 규칙
  • 카포 최적화와 쉬운 폼 재선택
  • 스트로크 또는 아르페지오 힌트
  • 운지 난이도와 프렛보드 위치 기준 제안
표시 방향코드 심볼 + 코드 다이어그램 + 카포 정보 + 리듬 패턴.

엔진 방향

좋은 모델 하나가 아니라,
레이어드 엔진이 필요합니다.

현재 검증용 엔진은 업로드 흐름을 확인하는 데 의미가 있었지만, 제품 수준으로 가려면 구조 분석, 화성 추정, 악기별 렌더러를 분리해야 합니다.

Layer 01 / 구조와 박자

beats, downbeats, bar boundaries, sections. 코드 추정보다 먼저 곡의 시간 구조를 읽습니다.

Layer 02 / 화성과 멜로디

key, mode, chord candidates, bass movement, melodic peaks. 여기서 공통 음악 정보가 만들어집니다.

Layer 03 / 피아노 렌더러

voice leading, left-right split, range windows, difficulty-aware voicing rules.

Layer 04 / 기타 렌더러

capo optimization, shape substitution, open-chord priority, strum mapping.

현재 프로토타입

지금 있는 로직은 업로드, JSON 구조, 결과 화면을 검증한 0단계입니다. 코드 추정도 아직 triad 중심입니다.

다음 엔진 전환

다음 단계는 더 좋은 분석 스택으로 바꾸고, 공통 분석 결과를 피아노용과 기타용으로 분기하는 것입니다.

화면 의미

그래서 화면도 한 결과판이 아니라, 공통 분석 요약 아래에 piano view와 guitar view가 분리된 형태가 맞습니다.

제품 경계

안전한 경계와 정확도 기준도
제품의 일부입니다.

이 제품은 링크 긁기 서비스로 시작하지 않습니다. 사용자 업로드 기반, 개인 연습 보조, confidence 중심 결과라는 원칙을 유지해야 장기적으로 안전하고 설득력 있는 제품이 됩니다.

  • 업로드 기반Spotify나 YouTube를 직접 긁지 않고, 사용자가 올린 파일만 다룹니다.
  • 확신보다 confidence불확실한 구간은 후보와 confidence를 보여주고, 억지 확정을 피합니다.
  • 완벽보다 연주 가능성완전 채보를 약속하기보다, 실제로 한 곡을 시작하게 만드는 결과를 우선합니다.

구현 순서

지금 초안 다음에는,
이 순서로 가면 됩니다.

Cloudflare에서는 지금 이 정적 방향성을 먼저 확인하고, 로컬 프로토타입에서는 분석 엔진과 업로드 흐름을 계속 키우면 됩니다. 마케팅 랜딩과 실제 엔진 개발이 이제 하나의 서사로 붙습니다.

지금

제품 약속을 먼저 보이기

루트 index를 제품 정의 페이지로 바꾸고, 첫 화면에서 악기별 차이를 읽히게 합니다.

다음

엔진 교체하기

공통 분석 레이어와 피아노/기타 렌더러를 분리하고, 더 나은 모델 스택으로 옮깁니다.

이후

결과를 실제 연습 도구로 확장

구간 반복, transpose, 저장 기록, 실제 악보/다이어그램 렌더링으로 이어갑니다.