Audio File Player
음성 파일을 불러와 재생하고, 그 스펙트럼에서 값을 추출하는 노드입니다. 파일은 노드로의 드래그 앤 드롭, “Choose Audio File” 버튼, 경로 입력란 중 어느 쪽으로도 지정할 수 있습니다. 지원 형식은 WAV / MP3 / OGG / AIF・AIFF이며, 그 외의 확장자는 불러오지 않습니다. 노드 위에는 파형・탐색바・재생 시간・Loop 토글이 나란히 표시됩니다(Loop는 기본값 ON).
분석
512빈 스펙트럼(Blackman-Harris 창)으로부터 다음을 계산합니다.
- Level — 전체 빈의 피크 × Gain
- Bass — 20
200Hz, Mid — 2002000Hz, Treble — 2000~8000Hz의 평균 × Gain - Onset — 스펙트럴 플럭스가 최근 43프레임의 평균 × (1 + OnsetSensitivity) + 0.01을 초과하면 발생합니다. 불응기 0.1초
파라미터
- Gain — 음수 값은 0으로 취급(기본값 1)
- Smoothing — 값이 떨어지는 시정수(초). 최소 0.001로 클램프, 기본값 0.25. 상승은 즉시 이루어지며, 하강만 이 시정수로 감쇠합니다
- OnsetSensitivity — 음수 값은 0으로 취급(기본값 1)
정지 중・종단에서는 Level / Bass / Mid / Treble을 한 번 0으로 되돌립니다. 이렇게 하지 않으면 소리를 멈춘 뒤에도 다운스트림이 마지막 값으로 계속 움직입니다.
불러오기에 실패한 파일을 지정하면 이전 음원은 정지・폐기됩니다(UI와 경로는 새 파일을 가리키므로, 이전 소리가 계속 울리지 않도록 하기 위함입니다). 파형 표시는 ffmpeg에 의존하는 보조 표시이며, 생성에 실패해도 재생 자체는 계속됩니다.
입력 포트
| Port ID | 타입 |
|---|---|
Play | bool |
Gain | float |
Smoothing | float |
OnsetSensitivity | float |
출력 포트
| Port ID | 타입 |
|---|---|
Level | float |
Bass | float |
Mid | float |
Treble | float |
Onset | trigger |
스크립트에서 설정할 수 있는 멤버
| 경로 | 타입 |
|---|---|
playInput | bool |
gainInput | float |
smoothingInput | float |
sensitivityInput | float |
currentFilePath | string |
currentPlaying | bool |
currentLoop | bool |
Synapse Apps (스크립팅)
await synapse.modules.create({ type: "AudioFilePlayer" })