User Tools

Site Tools


nano_ardule_midi_controller:ardule_microsd_midi_player

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
nano_ardule_midi_controller:ardule_microsd_midi_player [2025/10/28 17:34] – [설계안] hyjeongnano_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일 본격 착수함. 하웨어 및 주변부 로 설정은 Nano Ardule MIDI Controller를 그대로 따름재 사용 인 아두이노 나노 호환 보드는 아두이노 나노 '에브리'로 바뀔 능성이 .+단순 MIDI 파일 재생 기능과 럼 패턴 재생 기능을 전부 스케치에 올려서 아두이노 나노에 업드하기에는 쉽지 않았다메모리가 부족하기 때문이다. 따라서 아두이노 나노에서는 단순 MIDI 파일 생 기능을 제거한 뒤 드럼 패턴 플레이 기능을 넣어 보려고 노력 이다. 메모리가 충분한 아두이노 나노 에브리에서는 달라질 수도 있을 것이라고 기대한다. 그러나 아두이노 나노 에브리에서는 SD카드를 사용하기가 까다롭다는 보고가 있어서 걱정스럽다
  
-===== 설계안 =====+독립적인 드럼 플레이 기능 구현은 2025년 10월 28일부터 본격 착수하였다. 하드웨어 및 주변부 회로 설정은 Nano Ardule MIDI Controller를 그대로 따른다. 현재 사용 중인 아두이노 나노 호환 보드는 앞서 언급했듯이 아두이노 나노 '에브리'로 바뀔 가능성이 있다. 
 + 
 +2025일 11월 3일 현재 아두이노 나노에서 **v1.2f_hotfix4**가 잘 작동 중이다. 이 버전은 마이크로SD카드의 /SONGS와 /DRUMS 폴더에 있는 INDEX.TXT 파일을 읽어서 그 안에 수록된 type 0 MIDI 파일을 재생한다. 
 + 
 +패턴 기반 드럼 재생을 위해 2-bar 단위의 드럼 패턴을 추출하는 파이썬 스크립트를 만들어서 테스트를 마쳤다. 드럼 패턴 파일(.mid)는 마이크로SD카드에 저장하여 둔다. 적당한 것을 고른 뒤 (무한) 반복재생하는 스케치를 업로드하여 테스트해 보면 반복이 시작되면서 약간의 지연이 느껴진다. 그대로는 사용하기 곤란하지만, 완전히 포기하기에도 아깝다. 
 + 
 + 
 +  * {{ :nano_ardule_midi_controller:20251110_nano_ardule_patternplay_phase1_summary.docx |}} - 지금까지의 실험 및 결론을 문서로 정리한 것. 아두이노 나노 에브리로 반드시 전환해야 한다는 논리는 여기에서 출발함. 
 +  * {{ :nano_ardule_midi_controller:ardule_v2.2_hardware_spec_kr_rev1.docx |}} 
 + 
 + 
 + 
 +===== MIDI 파일 단순 재생기 설계안 =====
  
 1. MicroSD 카드의 최상위에는 DRUMS와 SONGS 폴더가 있음 1. MicroSD 카드의 최상위에는 DRUMS와 SONGS 폴더가 있음
Line 30: Line 42:
    * MIDI IN 신호는 그대로 MIDI OUT으로 보냄. 채널 10으로 들어오는 것은 그대로 전송, 채널 1로 들어오는 것(예: 키보드 컨트롤러)은 채널 10으로 보냄. 드럼 전용 플레이어라서 그렇게 설계함. 멀티채널 재생이 필요하면 것은 SD카드에 MIDI 파일을 담아서 재생할 것.    * MIDI IN 신호는 그대로 MIDI OUT으로 보냄. 채널 10으로 들어오는 것은 그대로 전송, 채널 1로 들어오는 것(예: 키보드 컨트롤러)은 채널 10으로 보냄. 드럼 전용 플레이어라서 그렇게 설계함. 멀티채널 재생이 필요하면 것은 SD카드에 MIDI 파일을 담아서 재생할 것.
  
-===== Headline ===== +===== 2025년 10월 29일 요청 사항 =====
  
 +  - /DRUMS나 /SONGS 어디로 진입하든 MIDI 파일 로드 후 play 동작(A3, D6 버튼 클릭)에서는 차이가 없도록 해 줘.
 +  - 단,/DRUMS의 MIDI 파일을 선택했을 때에는 A6와 D5 버튼에 특별한 기능을 추가해 줘
 +    * A6: 드럼킷 선택 모드 진입(인코더를 돌려 드럼킷을 고름; LCD에서는 실제 드럼킷 이름을 표시할 것; 인코더 회전 후 일정 시간이 지나면 PC 명령으로 전송; 이전 모드 복귀는 D6 버튼; 따라서 드럼 연주 모드에서 인코더 버튼을 연속 눌러서 드럼킷 선택으로 진입하는 기능은 제거)
 +    * (드럼 패턴 분석 후 반복 재생) D5 버튼은 드럼 MIDI 파일의 패턴 분석을 개시함. 즉, 2-bar마디 단위로 데이터를 잘라 분석하여 출현 빈도가 많은 것부터 번호를 붙여 나열함(1: 12, 2: 10...). 만약 4마디 패턴이라면 2마디로 잘라서 2회 출현으로 간주함. 이를 '패턴 목록 및 빈도'라고 부르겠음. 인코더를 돌려 패턴 번호를 선택한 뒤 A3으로 재생 및 일시정지. D6을 클릭하면 다시 패턴 목록 및 빈도 화면으로 돌아감. 재생할 때에는 hihat count-in을 먼저 주되 카운트인 비트 수는 코드 내에서 2 또는 4 중에 선택하게 함.
 +  - 재생 중에는 A2 LED를 매 비트마다 점멸시켜 줘
 +  - D9 LED는 MIDI activity를 나타내 줘 
 +  - A3과 D6을 동시에 누르면 SAM9703 도터보드를 리셋 
 +  - 1~2 비트의 카운트인 지연(START_DELAY_BEATS) 기능 추가: 초반 note burst 현상 완화 
nano_ardule_midi_controller/ardule_microsd_midi_player.1761640461.txt.gz · Last modified: by hyjeong