Audio File Player

AI와 함께 읽기
전체 문서 한 파일로 (llms-full.txt)
AudioFilePlayer #Audio #Node
Audio File Player

음성 파일을 불러와 재생하고, 그 스펙트럼에서 값을 추출하는 노드입니다. 파일은 노드로의 드래그 앤 드롭, “Choose Audio File” 버튼, 경로 입력란 중 어느 쪽으로도 지정할 수 있습니다. 지원 형식은 WAV / MP3 / OGG / AIF・AIFF이며, 그 외의 확장자는 불러오지 않습니다. 노드 위에는 파형・탐색바・재생 시간・Loop 토글이 나란히 표시됩니다(Loop는 기본값 ON).

분석

512빈 스펙트럼(Blackman-Harris 창)으로부터 다음을 계산합니다.

  • Level — 전체 빈의 피크 × Gain
  • Bass — 20200Hz, 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타입
Playbool
Gainfloat
Smoothingfloat
OnsetSensitivityfloat

출력 포트

Port ID타입
Levelfloat
Bassfloat
Midfloat
Treblefloat
Onsettrigger

스크립트에서 설정할 수 있는 멤버

경로타입
playInputbool
gainInputfloat
smoothingInputfloat
sensitivityInputfloat
currentFilePathstring
currentPlayingbool
currentLoopbool

Synapse Apps (스크립팅)

await synapse.modules.create({ type: "AudioFilePlayer" })