User Tools

Site Tools


nano_ardule_midi_controller:scripts

This is an old revision of the document!


스크립트 모음(전처리 툴체인)

챗GPT로 만든 갖가지 스크립트를 여기에 모았다. 드럼 연주 정보가 담긴 type 0 MIDI 파일을 2 마디 단위로 끊어서 별도의 .MID 파일로 저장하고, 이를 바탕으로 ADT 및 ADP 파일을 만든다. 마이크로SD카드에 담길 파일은 ADP 파일과 Arr 파일이다.

보안 때문에 파이썬 스크립트를 그대로 업로드하지 못하므로, 확장자를 .py에서 .txt로 바꾸어서 업로드하였다.

# 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

사용 가이드

파이썬 스크립트

아, 귀찮아라. 일단 zip으로 압축하여 업로드한다. tools-20251104.zip

nano_ardule_midi_controller/scripts.1762243916.txt.gz · Last modified: by hyjeong