- Triforce는 Apple Silicon 노트북의 마이크 배열을 macOS 밖에서도 활용하기 위한 Rust 기반 적응형 빔포머임
- 지원 대상은 M1/M2 MacBook Air·Pro 13", M2 MacBook Air 15", M1/M2 Pro·Max MacBook Pro 14"·16"로 한정됨
- 해당 기기들의 삼각형 또는 직선 마이크 배열은 빔포밍 없이는 너무 민감하고 전방위적이라 원하는 신호 분리가 어려움
- 의존성은 Cargo.lock에 명시된 crate 외에 LV2만 필요하도록 최소화하려는 구조임
- 현재 구현은 Apple 구현을 능가한다고 기대하기 어렵고, SIMD/NEON 부재로 광대역 분해와 스테레오 출력은 지원하지 않음
Apple Silicon 마이크 배열을 위한 빔포머
- Triforce는 Apple Silicon 노트북의 마이크 배열을 위한 Minimum Variance Distortionless Response 적응형 빔포머를 구현함
- 지원 기기는 다음과 같음
- MacBook Pro 13" (M1/M2)
- MacBook Air 13" (M1/M2)
- MacBook Pro 14" (M1 Pro/Max, M2 Pro/Max)
- MacBook Pro 16" (M1 Pro/Max, M2 Pro/Max)
- MacBook Air 15" (M2)
- 대상 노트북의 마이크 배열은 삼각형 또는 직선 형태로 배치돼 있음
- 이 배열은 빔포밍 없이 쓰면 너무 민감하고 전방위적으로 동작해 유용성이 떨어지며, macOS 밖에서 활용하려면 빔포머가 필요함
- Cargo.lock에 지정된 crate 외에 추가로 필요한 의존성은 LV2임
구현 상태와 알려진 한계
- DSP와 광대역 적응형 빔포밍 관련 접근 가능한 문헌을 찾기 어려워, 현재 구현은 학부 1학년 수준의 공학 수학과 여러 웹페이지·PDF에서 얻은 원리를 바탕으로 한 시도임
- Apple의 구현보다 성능이 좋을 것으로 기대하기는 어려우며, 개선 패치는 환영됨
- 알려진 한계는 다음과 같음
- nalgebra는 명시적 SIMD 최적화를 하지 않고 LLVM 자동 벡터화에 의존해 행렬 수학 루틴의 성능과 효율이 좋지 않음
- SIMD/NEON 지원 없이는 실시간 오디오 플러그인에 너무 느려서 광대역 분해를 하지 않음
- 출력은 모노만 지원하며, 가짜 스테레오 출력을 위한 추가 행렬 처리는 계산량이 너무 큼
- crates.io 통계상 전체 다운로드 수는 4,247회, 게시된 버전은 7개임