Linux에서 스테레오 "톤 생성기"?

Linux에서 스테레오 "톤 생성기"?

Linux에 스테레오(왼쪽 및 오른쪽 채널 별도) 오디오 생성기와 같은 것이 있습니까? 여기에서 각 채널의 볼륨과 피치/톤을 설정할 수 있으며 바람직하게는 파형(사인, 사각, 톱니...)을 설정하고 한 채널을 반전(다른 채널과 반대)할 수도 있습니다.

그렇지 않다면 만들기 시작하기에 좋은 곳이 있나요? 가장 쉬운 방법은 신디사이저와 같은 기존 프로그램을 적용하는 것입니다. 하지만 이것이 잘 작동하지 않으면 그러한 프로그램의 기반으로 사용할 수 있는 라이브러리(SDL과 같은?)가 있습니까?

답변1

찾고 있는 것 같군요.용감한이것은 크로스 플랫폼 오픈 소스 오디오 편집기입니다. 그 기능 중 하나는 톤을 생성할 수 있다는 것입니다. 멀티 트랙 오디오 편집기이므로 스테레오 톤을 쉽게 만들 수 있습니다.

메뉴 에서 Generate추가 입력 파일을 녹음하거나 요구하지 않고도 모든 주파수, 진폭 및 길이의 사인파, 톱니파 및 구형파 톤을 생성할 수 있습니다.

답변2

ffmpeg

평소처럼 ffmpeg로 할 수 있습니다.

2초 모노 1000Hz 사인 out.wav사운드 파일을 만듭니다.

sudo apt-get install ffmpeg
ffmpeg -f lavfi -i "sine=f=1000:d=2" out.wav

스테레오가 다음으로 변경되었습니다 -ac 2.

ffmpeg -f lavfi -i "sine=f=1000:d=2" -ac 2 out.wav

파일은 2 배 ffprobe더 커지고 2 channels.1 channel

왼쪽은 2초 동안 500Hz를 생성하고 오른쪽은 1000Hz를 생성합니다.https://stackoverflow.com/questions/59551013/how-to-generate-stereo-sine-wave-using-ffmpeg

ffmpeg -filter_complex '
sine=f=500[0];
sine=f=1000[1];
[0][1]amerge,atrim=end=2
' out.wav

파일을 생성하지 않고 2초 동안 1000Hz 재생:

ffplay -autoexit -nodisp -f lavfi -i 'sine=f=1000:d=2'

미쳐버릴 때까지 영원히 1000Hz를 재생하세요.

ffplay -nodisp -f lavfi -i "sine=f=1000"

두 채널에서 500Hz 및 1000Hz의 2초 믹스/오버레이 생성 관련 질문:https://stackoverflow.com/questions/14498539/how-to-overlay-downmix-two-audio-files-using-ffmpeg

ffplay -nodisp -autoexit -f lavfi -i '
sine=f=500[0];
sine=f=1000[1];
[0][1]amix=inputs=2, atrim=end=2
'

2초 동안 500Hz의 주파수를 생성한 다음 2초 동안 1000Hz의 주파수를 생성합니다.

ffplay -nodisp -autoexit -f lavfi -i '
sine=f=500:d=2[0];
sine=f=1000:d=2[1];
[0][1]concat=n=2:v=0:a=1
'

250Hz + 500Hz에서 2초, 1000Hz + 2000Hz에서 2초:

ffplay -nodisp -autoexit -f lavfi -i '
sine=f=250[0];
sine=f=500[1];
sine=f=1000[2];
sine=f=2000[3];
[0][1]amix=inputs=2, atrim=end=2[01];
[2][3]amix=inputs=2, atrim=end=2[23];
[01][23]concat=n=2:v=0:a=1[out];
'

10초 안에 0~20kHz의 주파수 스윕, 주요 질문:https://superuser.com/questions/1156429/how-to-generate-a-time-dependent-Frequency-wave/1156468#1156468

ffplay -autoexit -f lavfi -i "aevalsrc='sin(2000*t*2*PI*t)':d=10" 

문서:

다른 부분은 조각조각 찢어졌습니다오디오 소스또한 다음 sine과 같은 기타 유용한 사운드 생성 알고리즘도 문서화되어 있습니다.

  • anoisesrc: 흰색, 분홍색, 갈색 등 다양한 색상의 노이즈
  • aevalsrc모든 수학적 표현을 취하므로 삼각형 파형을 생성할 수 있어야 합니다(TODO 표현).

서지:

ffmpeg 6.0, Ubuntu 23.10에서 테스트되었습니다.

추가 라이브러리가 없는 최소 C 오디오 생성 예

재미로:https://stackoverflow.com/questions/732699/how-is-audio-represented-with-numbers-in-computers/36510894#36510894

답변3

speaker-testalsa-utils 패키지(Arch 시스템)에서 내가 찾은 내용을 살펴볼 수 있습니다 .

speaker-test -c2 -t sinexterm에서 실행하면 각각 약 6초의 440Hz 사인파가 왼쪽과 오른쪽 스피커를 번갈아 가며 나옵니다. xterm에서는 사용 중인 것으로 생각되는 스피커에 대한 일부 정보를 제공합니다.

매뉴얼 페이지에 따르면 임의 주파수의 사인파와 핑크 노이즈를 생성할 수 있습니다.

답변4

이것가시프로그램도 그렇게 할 수 있습니다. (지원하는 명령줄 오디오 생성기입니다.언어중앙 집중식 FM/PM 및 AM/RM 변조 기술을 포함하여 더 많은 유형의 오디오 생성이 포함됩니다. )

두 개의 스테레오로 분리된 100Hz 파동(사인 1개, 삼각형 1개, 역진폭 1개)을 생성하려면 다음 스크립트를 파일에 붙여넣고 프로그램을 실행할 수 있습니다(예: ./saugns filename).

Wsin f100 a0.5 t2 cL
Wtri f100 a(-0.5) t2 cR

이는 또한 한 줄의 코드로 직접 실행할 수 있을 만큼 짧습니다.

./saugns -e "Wsin f100 a0.5 t2 cL Wtri f100 a(-0.5) t2 cR"

s는 t시간을 초 단위로 지정합니다.

s c는 기본 채널 믹스를 변경하는 데 사용됩니다(C = 중앙)(L = 왼쪽 끝, R = 오른쪽 끝). "(-1.0)"부터 "1.0"까지의 숫자도 사용할 수 있습니다.그러한 가치.

이전 편집:저는 실제로 이 프로그램의 개발자입니다.

또한 진폭을 뒤집는 또 다른 방법(일부 파동 유형의 경우 sin) saw은 소문자를 사용하여 위상을 설정하는 것입니다 p. Added는 p0.5위상을 파동 주기의 50%(음의 절반)로 설정합니다. 또한 명명된 코사인 유형이 없으므로 p0.25사인을 코사인(또는 음수 코사인)으로 변환하는 방법은 다음과 같습니다.p0.75

관련 정보