nano_ardule_midi_controller:ardule_microsd_midi_player
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| nano_ardule_midi_controller:ardule_microsd_midi_player [2025/10/28 17:25] – hyjeong | nano_ardule_midi_controller:ardule_microsd_midi_player [2025/11/11 22:46] (current) – [Ardule microSD MIDI Player] hyjeong | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Ardule microSD MIDI Player ====== | ====== Ardule microSD MIDI Player ====== | ||
| - | 2025년 10월 28일 본격 착수함. | + | 단순 MIDI 파일 재생 기능과 드럼 패턴 재생 기능을 전부 스케치에 올려서 아두이노 나노에 업로드하기에는 쉽지 않았다. 메모리가 부족하기 때문이다. 따라서 아두이노 나노에서는 단순 MIDI 파일 재생 기능을 제거한 뒤 드럼 패턴 플레이 기능을 넣어 보려고 노력 중이다. 메모리가 충분한 아두이노 나노 에브리에서는 달라질 수도 있을 것이라고 기대한다. 그러나 아두이노 나노 에브리에서는 SD카드를 사용하기가 까다롭다는 보고가 있어서 걱정스럽다. |
| + | |||
| + | 독립적인 드럼 플레이 기능 구현은 | ||
| + | |||
| + | 2025일 11월 3일 현재 아두이노 나노에서 **v1.2f_hotfix4**가 잘 작동 중이다. 이 버전은 마이크로SD카드의 /SONGS와 /DRUMS 폴더에 있는 INDEX.TXT 파일을 읽어서 그 안에 수록된 type 0 MIDI 파일을 재생한다. | ||
| + | |||
| + | 패턴 기반 드럼 재생을 위해 2-bar 단위의 드럼 패턴을 추출하는 파이썬 스크립트를 만들어서 테스트를 마쳤다. 드럼 패턴 파일(.mid)는 마이크로SD카드에 저장하여 둔다. 적당한 것을 고른 뒤 (무한) 반복재생하는 스케치를 업로드하여 테스트해 보면 반복이 시작되면서 약간의 지연이 느껴진다. 그대로는 사용하기 곤란하지만, | ||
| + | |||
| + | |||
| + | * {{ : | ||
| + | * {{ : | ||
| + | |||
| + | |||
| + | |||
| + | ===== MIDI 파일 단순 재생기 설계안 ===== | ||
| 1. MicroSD 카드의 최상위에는 DRUMS와 SONGS 폴더가 있음 | 1. MicroSD 카드의 최상위에는 DRUMS와 SONGS 폴더가 있음 | ||
| Line 7: | Line 21: | ||
| * 만약 INDEX.TXT 파일 내의 줄바꿈 문자를 인식하는데 문제 발생 소지가 있다면, 어떤 편집기를 써야 하는지(또는 후처리가 필요한지) 정확히 알려줄 것 | * 만약 INDEX.TXT 파일 내의 줄바꿈 문자를 인식하는데 문제 발생 소지가 있다면, 어떤 편집기를 써야 하는지(또는 후처리가 필요한지) 정확히 알려줄 것 | ||
| 2. 인코더를 돌려서 LCD에 표시된 DRUMS와 SONGS중 하나를 선택한 뒤 인코더 버튼(D4)를 클릭하여 진입 | 2. 인코더를 돌려서 LCD에 표시된 DRUMS와 SONGS중 하나를 선택한 뒤 인코더 버튼(D4)를 클릭하여 진입 | ||
| + | |||
| 3. 진입 후 해당 폴더내의 INDEX.TXT를 페이지 단위(16개 파일)로 읽어서 LCD에 표시 | 3. 진입 후 해당 폴더내의 INDEX.TXT를 페이지 단위(16개 파일)로 읽어서 LCD에 표시 | ||
| * 페이지를 바꾸려면 D7(+) 또는 D8(-) 버튼을 클릭 | * 페이지를 바꾸려면 D7(+) 또는 D8(-) 버튼을 클릭 | ||
| Line 23: | Line 38: | ||
| * 이 상태에서 D6(Stop/ | * 이 상태에서 D6(Stop/ | ||
| * 재생 중에 인코더 버튼(D4)를 길게 누르면 All notes off 메시지 전송 | * 재생 중에 인코더 버튼(D4)를 길게 누르면 All notes off 메시지 전송 | ||
| + | |||
| + | ==== 추가 기능 ==== | ||
| + | * MIDI IN 신호는 그대로 MIDI OUT으로 보냄. 채널 10으로 들어오는 것은 그대로 전송, 채널 1로 들어오는 것(예: 키보드 컨트롤러)은 채널 10으로 보냄. 드럼 전용 플레이어라서 그렇게 설계함. 멀티채널 재생이 필요하면 것은 SD카드에 MIDI 파일을 담아서 재생할 것. | ||
| + | |||
| + | ===== 2025년 10월 29일 요청 사항 ===== | ||
| + | |||
| + | - /DRUMS나 /SONGS 어디로 진입하든 MIDI 파일 로드 후 play 동작(A3, D6 버튼 클릭)에서는 차이가 없도록 해 줘. | ||
| + | - 단,/ | ||
| + | * A6: 드럼킷 선택 모드 진입(인코더를 돌려 드럼킷을 고름; LCD에서는 실제 드럼킷 이름을 표시할 것; 인코더 회전 후 일정 시간이 지나면 PC 명령으로 전송; 이전 모드 복귀는 D6 버튼; 따라서 드럼 연주 모드에서 인코더 버튼을 연속 눌러서 드럼킷 선택으로 진입하는 기능은 제거) | ||
| + | * (드럼 패턴 분석 후 반복 재생) D5 버튼은 드럼 MIDI 파일의 패턴 분석을 개시함. 즉, 2-bar마디 단위로 데이터를 잘라 분석하여 출현 빈도가 많은 것부터 번호를 붙여 나열함(1: | ||
| + | - 재생 중에는 A2 LED를 매 비트마다 점멸시켜 줘 | ||
| + | - D9 LED는 MIDI activity를 나타내 줘 | ||
| + | - A3과 D6을 동시에 누르면 SAM9703 도터보드를 리셋 | ||
| + | - 1~2 비트의 카운트인 지연(START_DELAY_BEATS) 기능 추가: 초반 note burst 현상 완화 | ||
nano_ardule_midi_controller/ardule_microsd_midi_player.1761639920.txt.gz · Last modified: by hyjeong
