bass-tab은(는) 무엇을 하나요?
소스가 실제로 보여주는 내용을 노래 데이터 파일로 변환한 다음, 컴팩트한 베이스 탭(.tab)과 인쇄 가능한 연주용 차트 PDF(1-2 US-Letter 페이지)를 렌더링합니다. python3만 필요하며, 제목이나 아티스트가 비라틴 문자(예: 중국어)인 경우 Pillow도 필요합니다. Pillow가 없으면 chart2pdf.py와 tab2pdf.py는 ?를 출력하는 대신 실행을 거부합니다. venv에서 Pillow를 설치하고(python3 -m venv v && v/bin/pip install pillow) 해당 python으로 스크립트를 실행하거나, --allow-lossy를 전달하세요.
스크립트는 이 파일 옆의 scripts/ 디렉토리에 있습니다. 이 스킬의 폴더에서 실행하거나 전체 경로를 지정하세요.
노래 파일
노래 하나, 디렉토리 하나, 세 개의 파일:
<slug>/
<slug>.py 소스 데이터: 구조화된 데이터, 수동 편집 가능 (templates/song-template.py에서 시작)
<slug>.tab scripts/tabgen.py로 생성
<slug>.pdf 연주용 차트, scripts/chart2pdf.py가 <slug>.py에서 직접 생성
<slug>.py는 META / BARS / SECTIONS / CHORDS / LYRICS를 제공합니다. 반복되는 프레이즈는 한 번만 작성하고 재생되는 위치마다 스탬프처럼 찍습니다. 따라서 수정 사항이 모든 복사본에 적용됩니다. 반복을 독립적인 복사본으로 확장하지 마십시오.
LYRICS는 해당 마디 아래에 부르는 가사의 마디 번호를 매핑합니다. 가사는 소유자가 제공하거나 소스가 시각적으로 보여주는 내용(예: 탭 비디오의 화면 가사)에서 가져올 수 있습니다. 기억이나 웹 검색에서 가사를 만들어 내거나 채우지 마십시오. 어떤 소스도 단어를 보여주지 않으면 LYRICS = {}로 두고 소유자가 추가할 수 있다고 말하세요. 가사가 없는 노래도 깔끔하게 렌더링됩니다. 가사는 그대로 인쇄되며 모든 재생성에서 유지됩니다.
렌더링
python3 scripts/chart2pdf.py <slug>/<slug>.py -o <slug>/<slug>.pdf [--paper letter|a4]
python3 scripts/tabgen.py <slug>/<slug>.py <slug>/<slug>.tab --bars <1 if META slots == 16 else 3> --cut compact
PDF는 차트입니다. 온라인 탭 플레이어 스타일로, 한 줄에 여러 마디, 각 섹션이 시작되는 곳에 굵은 섹션 레이블, 반복 기호 사이에 한 번 그려지고 횟수(x4)가 표시된 반복 프레이즈, 이전 섹션을 반복하는 섹션은 한 줄로 축약(Chorus 2 = Chorus (bars 13-16)), CHORDS가 있는 마디 위에 코드 이름, 해당 마디 아래에 가사가 표시됩니다. 기본값은 US-Letter이며 최대 2페이지입니다. 탭 숫자는 9pt 이상으로 유지되고, 간격은 좁혀지며 반복은 글꼴 크기가 줄어들기 전에 축약됩니다. 그래도 맞지 않는 노래는 해당 노래 이름과 함께 거부됩니다. 페이지 수를 보고하세요.
비라틴 가사나 제목의 경우 Pillow가 필요합니다(위 참조). --collapse-sections는 참조 라인을 강제합니다.
긴, 한 마디 너비의 PDF는 여전히 사용 가능합니다: tabgen.py ... --cut compact 후 tab2pdf.py <slug>.tab -o <slug>-long.pdf. --cut compact는 텍스트 시트입니다. 반복 표기(축약된 프레이즈에 A-B xN 레이블)를 포함하는 유일한 컷입니다. --cut full은 디버깅용 뷰(모든 마디와 형식에 나열되지 않은 비트-룰러 행)이며 절대 전달물이 아닙니다. 출력물에는 전체 경로를 지정하세요.
텍스트 형식: 헤더 라인(제목, 아티스트, 키, 템포, 박자, 튜닝, 소스, 범례), 섹션별로 [Name - bars a-b . m:ss] 제목, 코드 행, 마디 번호 행, 리듬 행 R|, 네 개의 현 행 G D A E, 그 다음 주의 사항, 마지막으로 [Checked] 블록. 보표 라인은 77자로 고정되어 모든 노래가 동일한 축척으로 인쇄됩니다. 라인이 더 길면 시스템당 마디 수를 줄이세요.
소스로부터 노래 파일 만들기
말 그대로 따르세요. 이것이 스킬의 핵심입니다.
- 소스가 실제로 보여주는 것만 취하세요. 탭의 스크린샷이나 PDF는 읽을 수 있습니다. 녹음 링크는 읽을 수 없습니다: 오디오를 들을 수 없습니다. 노래 URL에서 제목, 템포 및 인쇄된 섹션 이름만 가져오고 그 외의 것은 가져오지 마세요. 노래에 대한 기억에서 마디를 절대 제공하지 마세요. 보이는 빈칸이 맞아 보이지만 실제로는 틀린 마디보다 낫습니다.
- 베이스 트랙만. 소스에 여러 악기가 표시되면 베이스를 가져오고 해당 트랙이 무엇인지 말하세요. 두 개의 베이스 트랙 또는 베이스가 중복된 경우: 묻고, 선택하지 마세요.
- 모든 반복을 교차 검증하고, 한 번만 인코딩하세요. 각 발생을 읽고 비교하세요. 일치하는 것이 가장 강력한 검증입니다. 불일치는 적어도 하나의 판독이 잘못되었음을 의미합니다. 발생이 일치하면: 한 번 인코딩하세요. 불일치하면: 그렇게 말하고, 각각의 횟수를 제공하고, 판독값을 추정치로 표시하세요. 어디에도 반복이 없는 마디는 교차 검증할 수 없습니다. 시트에 그렇게 명시하세요.
- 확인하지 않은 것은 절대 단언하지 마세요. "bars A-B와 동일"과 같은 주장은 데이터에서 생성된 것이지 직접 입력한 것이 아닙니다. 섹션 마디 범위는 경계에서 계산됩니다.
- 구조, 코드, 템포.
SECTIONS를 소스 자체 레이블로 채우세요. 각 마디에CHORDS항목을 제공하세요: 코드는 프렛이 어떤 현에 있는지 결정합니다(프렛 7은 E현에서 B, A현에서 E). 따라서tabgen.py는 현을 유도하고 프렛/코드 쌍이 어떤 현에서도 일치하지 않으면 오류를 발생시킵니다.META에 템포를 넣으세요. 섹션 타임스탬프는 템포에서 계산됩니다. - 수행하지 않은 작업을 보고하세요. 어떤 마디가 누락되었는지, 어떤 것이 추정치인지, 어떤 소스가 무엇을 제공했는지. 모든 전사를 이 정보로 끝내고, 깨끗한 상태 보고로 끝내지 마세요.
눈으로 읽은 리듬과 측정되지 않은 프렛은 알려진 약점입니다. CAVEATS에 그렇게 명시하세요.
제안
전사 후 또는 요청 시, 전사와 명확히 구분하여 세 가지 종류의 제안을 제공하세요: 연습(무엇을 먼저 연습할지), 음악적(진행이 무엇을 하는지), 편곡(단순화 또는 추가). 편곡 제안은 당신의 창작물이며, 소스가 말하는 것처럼 읽히지 않도록 절대 주의하세요.
확인
저장소의 tests/bass-tab/run.sh는 고정된 노래를 렌더링하고 기록된 기준선과 비교하며, 가상의 노래(섹션 레이블, 축약된 반복, 가사 정렬, 2페이지 제한)에 대한 차트를 확인합니다.