/dev/audio에 특정 톤을 보내는 방법은 무엇입니까?

/dev/audio에 특정 톤을 보내는 방법은 무엇입니까?

그런데 어떻게 똑같은 일을 할 수 있습니까? 무작위 소음/톤 대신 하나를 선택합니다.하나의가능한 모든 값 중 값을 선택하고cat 저것오디오 장치에 무기한 전송하시겠습니까(임의의 값 대신 동일한 값의 시퀀스 생성)?

이렇게 하면 일관된 단일 톤이 생성됩니다.

상호 작용

다른 값을 수동으로 시도할 수 있지만 가상의 "인터페이스"를 사용하면 원하는 값을 더 쉽게 선택/클릭할 수 있습니다.

  • 빈도(Hz) 예: 440
  • 진폭(0 - 1) 예를 들어 0.8

차라리아니요오디오 사용문서, file.wav, file.mp3, file.ogg 등과 같은 bash 스크립트와 기본 cli 애플리케이션(예 cat: file.mp3 padsp, file.ogg 등)만 있으면 됩니다.

답변1

sin수학( 특히)을 수행하고 숫자를 표준 출력에 문자로 쓰는 모든 것을 시도해 볼 수 있습니다 . 예를 들어:

awk --characters-as-bytes 'BEGIN { freq=2200; amp=0.3; for (i=0; i>=0; i++) { printf "%c", 127+ amp*(127.0*sin(2*3.14159265/44100*i*freq)); } }' | padsp tee /dev/audio > /dev/null

설정 방법에 따라 freq사이렌 소리처럼 들릴 수도 있습니다. 사용 사례에 따라 가지고 놀 수 있는 것일 수도 있습니다.

amp진폭은 최대 1.0까지 조정할 수 있습니다 .

저는 GNU awk를 사용하고 있으므로 --characters-as-bytes작동합니다. stdout에 쓸 때 문자가 UTF-8로 인코딩되는 것을 원하지 않습니다!

또한 시스템에 따라 기본 샘플링 속도가 다른 경우 44100을 48000 또는 다른 숫자로 바꿔야 할 수도 있습니다.

관련 정보