Table of Contents

Index File Single-Source, Category Display Reordering

작성일: 2026-01-13

1. 목적

Ardule Pattern Player는 INDEX.TXT를 단일 소스로 유지하면서도, 사용자가 버튼 입력으로 카테고리(장르) 목록의 표시 순서를 즉시 전환할 수 있게 한다.
이 설계는 SD 카드의 인덱스 파일을 재생성/수정하지 않고, 펌웨어 내부의 “표시용 순서”만 바꾸는 방식을 채택한다.


2. 범위


3. 핵심 원칙

  1. INDEX 파일은 하나(INDEX.TXT)만 유지한다.
  2. INDEX.TXT의 내용/정렬(알파벳 순 등)은 변경하지 않는다.
  3. 펌웨어는 INDEX.TXT를 스캔하여 장르별 집계 테이블을 만든다.
  4. 표시 순서 변경은 장르 25개 내외의 “표시용 인덱스 배열”만 정렬하여 처리한다.
  5. 표시 순서 변경은 즉시 반영되며, 별도의 파일 생성/저장은 없다.

4. 데이터 모델

4.1 장르 집계 테이블(실데이터)

펌웨어 내부에 장르별 정보를 다음과 같이 유지한다.

>first_pos는 장르 선택 후 패턴 리스트로 진입할 때 즉시 점프하기 위한 정보다.

4.2 표시용 순서 배열(정렬 대상)


5. 표시 순서 모드(카테고리 정렬 모드)

장르 표시 순서는 버튼(A6) 입력으로 다음 모드를 순환한다.

  1. A→Z : 장르 코드 알파벳 오름차순
  2. Z→A : 장르 코드 알파벳 내림차순
  3. N↓ : 패턴 개수 내림차순(많은 장르부터)
  4. N↑ : 패턴 개수 오름차순(적은 장르부터)

모드 전환 규칙:


6. LCD 표시 규칙

6.1 Line 2 왼쪽 모드 인디케이터

LCD Line2의 좌측 4칸 내외에 모드를 고정 표시한다.

예시(16×2 기준, 개념):

>N은 “패턴 개수(Number of patterns)”를 의미한다.
화살표는 “정렬 방향”을 의미한다.


7. 사용자 동작 흐름

7.1 장르 요약 화면에서

7.2 장르 진입(점프) 규칙


8. 구현 난이도 및 리소스 평가


9. 예외 및 정책

  1. 동일 count 장르의 tie-break
    • N↓/N↑에서 count가 같으면 2차 기준은 장르 코드(A→Z)로 정한다.
  2. 장르 수가 0인 항목
    • 정상적으로는 생성되지 않으나, 존재한다면 표시에서 제외하거나 최하단으로 보낸다(구현 선택).
  3. INDEX 스캔 실패/누락
    • 장르 테이블 생성 실패 시 기본 모드(A→Z)로 폴백하고 오류 메시지 표시(선택).

10. 기대 효과


11. 향후 확장(선택)

(단, 본 문서는 “INDEX 파일 하나 + 장르 표시 순서 변경”을 핵심 범위로 한다.)

Note: 장르별 집계후 알파벳 순서대로 표시되는 것은 현재의 기본 동작임