Repository navigation
picovave 8ef886a8 — 마스터 볼륨 구현 (FM-1 & SMK-37 Pro)
picovave — M-Vave SMK-37 Pro 및 FM-1(AC791N/WL82)에서 PICO-8 카트를 실행하는 펌웨어 패키지입니다.
이 릴리스의 빌드 태그는 8ef886a8 입니다(기기가 --ask 에 보고하는 값).
설치물 (Firmware Packages)
• SMK-37 Pro용: picovave-smk37.fwsc (또는 picovave.fwsc) — 651,271 B
• sha256: ec2782c9f5c6c33d075dca7ce069333367208b1667974811e069270362f5acd5
• 대상 기기: M-Vave SMK-37 Pro (SMK-37 Pro_700)
• FM-1용: picovave-fm1.fwsc — 610,115 B
• sha256: beb8f9d0c2faf74367272568025771f35bf9088cea7c53439d221d683b749fe3
• 대상 기기: M-Vave FM-1 (FM-1_900)
주요 변경 사항
• FM-1 마스터 볼륨 (MASTER 노브) 연동:
• FM-1의 전면 MASTER 볼륨 노브는 하드웨어 앰프 직결이 아닌 SoC PB6 (SARADC 채널 4) 포텐셔미터입니다.
• HAL 드라이버 fm1_adc.h 를 추가하고 프레임 루프에서 논블로킹 방식으로 PB6 전압을 샘플링합니다.
• 청각 특성에 맞춘 자승 법칙(Square-law / Audio taper) 곡선 및 IIR 지퍼 노이즈 스무딩 필터를 적용하여 부드럽고 자연스럽게 볼륨이 조절됩니다.
• 최소 회전 시 완전 음소거(Mute), 최대 회전 시 100% 게인 클램핑.
• SMK-37 Pro 마스터 볼륨 (Knob 1 엔코더) 연동:
• SMK-37 Pro 전면 상단의 Knob 1 (Encoder 0) 으로 마스터 볼륨을 32단계(스텝당 128단위)로 가감 제어합니다.
• 초경량 오디오 DSP & FPS 0% 영향:
• ALNK0 I2S DMA ISR에서 단일 사이클 32비트 하드웨어 정수 곱셈(int32_t)으로 게인을 적용하여 CPU 사용률 0.027% 미만, 게임 프레임레이트(30 FPS) 저하 전혀 없음.
• 메모리 아레나 불변식 준수 (0 바이트 드리프트):
• 볼륨 변수를 .noinit 섹션에 배치하여 .data/.bss 크기 변화가 전혀 없으며, SMK-37 Pro의 415,696 B 아레나 불변식을 100% 동일하게 유지합니다.
• 카트 리로드/업로드 등 소프트 리부트 시에도 설정한 볼륨이 유지됩니다.