User Tools

Site Tools


nano_ardule_midi_controller:scripts

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
nano_ardule_midi_controller:scripts [2025/11/04 14:44] – created hyjeongnano_ardule_midi_controller:scripts [2025/11/04 17:25] (current) hyjeong
Line 1: Line 1:
-====== 스크립트 ======+====== 스크립트 모음(전처리 툴체인) ====== 
 +챗GPT로 만든 갖가지 스크립트를 여기에 모았다. 드럼 연주 정보가 담긴 type 0 MIDI 파일을 2 마디 단위로 끊어서 별도의 .MID 파일로 저장하고, 이를 바탕으로 ADT 및 ADP 파일을 만든다. 마이크로SD카드에 담길 파일은 ADP 파일과 Arr 파일이다.
  
 +보안 때문에 파이썬 스크립트를 그대로 업로드하지 못하므로, 확장자를 .py에서 .txt로 바꾸어서 업로드하였다. 다음은  Windows PowerShell 환경의 작업 프로세스 사례이다.
 +
 +<code>
 +
 +# README_v2.txt 
 +
 +PC/
 + ├─01_input_MID/ # 입력 MIDI 파일
 + ├─ MID/            # 2마디 MIDI 세그먼트들 (straight)
 + ├─ MID_TRIP/     # 2마디 MIDI 세그먼트들 (triplet)
 + ├─ ADT/            # 변환된 ADT (백업/편집용)
 + ├─ SD/
 + │   ├─ PATTERNS/   # 최종 ADP만 (장치가 읽을 폴더)
 + │   ├─ SONGS/      # ARR/APT (곡 구성)
 + │   └─ SYSTEM/     # INDEX.TXT, SETTINGS.CFG ...
 + └─ tools/          # midi2adt.py, adt2adp.py, mkindex.py, arr_make.py
 +
 +(주의사항) 01_input_MID/ 폴더에 있는 MIDI 파일에 대해 같은 위치에 2-bar pattern 파일이 생성된다. 만들어진 뒤에는 전부 옮겨라. 그래야 straight|triplet에 대해서 순차적으로 작업할 수 있다.
 +
 +# 0) 깨끗이 시작 (선택)
 +Remove-Item -Recurse -Force .\ADT, .\SD  -ErrorAction SilentlyContinue
 +New-Item -ItemType Directory -Force .\ADT, .\SD\PATTERNS, .\SD\SONGS, .\SD\SYSTEM | Out-Null
 +
 +# 1) 사전 분석(Subdivision Analysis에서 grid가 triplet과 straight 중 무엇인지 확인)
 +python.exe .\tools\mid2report_integrated.py .\01_input_MID\6ROCK.MID
 +python.exe .\tools\mid2report_integrated.py .\01_input_MID\6FUNK.MID
 +python.exe .\tools\mid2report_integrated.py .\01_input_MID\6BLUES.MID # triplet
 +
 +#1) Type 0 MIDI file을 2 bar 단위로 분할
 +# 01_input_MID/ 하위에서 파일을 생성한 뒤 straight인 경우 MID/로 올김
 +python.exe .\tools\split_drums_2bar_save_v4a.py .\01_input_MID\6ROCK.MID
 +python.exe .\tools\split_drums_2bar_save_v4a.py .\01_input_MID\6FUNK.MID
 +mv .\01_test\???_P???.MID .\MID
 +
 +#2) MIDI → ADT (기본: 32스텝/GRID=16)
 +python .\tools\mid2adt.py --in-dir .\MID --out-dir .\ADT --recursive
 +
 +#  (optional) 트리플렛 세트가 있다면:
 +python.exe .\tools\split_drums_2bar_save_v4a.py .\01_input_MID\6BLUES.MID
 +mv .\01_input_MID\BLU_P???.MID .\MID_TRIP
 +python .\tools\mid2adt.py --in-dir .\MID_TRIP --out-dir .\ADT --grid 16T --length 48 --recursive
 +
 +# 4) ADT → ADP
 +python .\tools\adt2adp.py --in-dir .\ADT --out-dir .\SD\PATTERNS --recursive --overwrite
 +
 +# 5) INDEX.TXT 생성
 +python .\tools\mkindex.py --patterns .\SD\PATTERNS --out .\SD\SYSTEM\INDEX.TXT
 +
 +# 6) (선택) ARR 만들기
 +# CSV (한 줄: PatternName,Repeat), 예: RCK_P001,4
 +python .\tools\arr_make.py --title "Rock Demo" --tempo 120 --in .\lists\rock_demo.csv --out .\SD\SONGS\ROCK_DEMO.ARR
 +
 +
 +</code>
 +
 +===== 사용 가이드 =====
 +
 +  * {{ :nano_ardule_midi_controller:readme.txt |}}
 +  * {{ :nano_ardule_midi_controller:nanoardule_toolchain_guide_v22.docx |}}
 +  * {{ :nano_ardule_midi_controller:nanoardule_toolchain_guide_v22_kr.docx |}}
 +  * {{ :nano_ardule_midi_controller:v4a_genre_recognition_table.docx |}}
 +
 +===== 파이썬 스크립트 =====
 +
 +아, 귀찮아라. 일단 zip으로 압축하여 업로드한다. {{ :nano_ardule_midi_controller:tools-20251104.zip |}}
 +
 +작업 디렉토리 그대로 묶음 {{ :nano_ardule_midi_controller:ardule-python_v2.zip |}}
  
nano_ardule_midi_controller/scripts.1762235083.txt.gz · Last modified: by hyjeong