aiXander/Realtime_PyAudio_FFT
Realtime audio analysis in Python to extract audio features from streaming audio and send them over OSC to any client app.
해결하는 문제
이 프로젝트는 라이브 오디오 입력(마이크 또는 사운드 카드 등)과 창의적인 애플리케이션 간의 저지연 브리지를 제공합니다. 비트 트리거, 주파수 대역, 템포와 같이 처리된 "즉시 사용 가능한" 오디오 데이터를 VJ 소프트웨어, 게임 엔진 또는 사용자 지정 스크립트와 같은 도구로 가져올 때, 해당 앱 내에서 복잡한 신호 처리 코드를 작성할 필요가 없도록 문제를 해결합니다.
작동 방식
서버는 원시 오디오를 캡처하고 NumPy와 SciPy를 사용하여 최적화된 워커 스레드에서 필터링, FFT 분석, 온셋 감지를 포함한 모든 무거운 신호 처리를 수행합니다. 그런 다음 이 데이터를 두 가지 방식으로 브로드캐스트합니다.
- OSC (Open Sound Control): 실시간 성능 도구를 위한 고속, 저지연 스트림.
- WebSockets: 브라우저 기반 UI에서 설정(대역 범위 또는 감도 등)을 제어하면서 데이터 업데이트를 수신할 수 있는 양방향 채널.
대상 사용자
비주얼이나 게임 로직을 라이브 오디오에 동기화해야 하는 크리에이티브 코더, VJ 및 개발자를 위해 설계되었습니다. Raspberry Pi와 같은 저전력 하드웨어에서도 빠르게 유지되는 "플러그 앤 플레이" 오디오 특징 소스를 원하는 TouchDesigner, Max/MSP, Unity 또는 p5.js 사용자에게 이상적입니다.
주요 특징
- 저지연: 8~15ms의 엔드투엔드 지연 시간을 목표로 합니다.
- 즉시 사용 가능한 특징: 자동 스케일링된 대역 에너지(저/중/고), 킥/스네어/하이햇을 위한 온셋 트리거, 계산된 BPM을 출력합니다.
- 브라우저 기반 제어: 필터를 조정하고, 프리셋을 저장하며, 실시간으로 설정을 전환할 수 있는 UI가 포함되어 있습니다.
- 효율성: 할당 없는 콜백과 벡터화된 C 최적화 경로를 사용하여 부하가 걸린 상태에서도 오디오 스레드가 안정적으로 유지되도록 합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트