Âm thanh nổi máy phát âm thanh nổi cứng cho linux?


13

Có thứ gì đó giống như trình tạo âm thanh nổi (riêng rẽ trái và kênh phải) cho Linux không? Nơi bạn có thể đặt âm lượng và âm / cao độ cho từng kênh và tốt nhất là đặt dạng sóng (hình sin, hình vuông, răng cưa, ...) và đảo ngược một kênh (trái ngược với kênh khác).

Nếu không, bất kỳ ý tưởng cho một nơi tốt để bắt đầu để làm cho một? Tôi đoán đơn giản nhất là điều chỉnh các chương trình hiện có như synths ... Nhưng nếu nó hoạt động kém, có thư viện nào (như SDL không?) Có thể được sử dụng làm cơ sở cho một chương trình như vậy không?


Bạn có thể hoàn thành nó với sox.
Renan

Câu trả lời:


15

Có vẻ như bạn đang tìm kiếm Audacity mà là một nền tảng mã nguồn mở biên tập âm thanh. Một trong những tính năng của nó là cho phép bạn tạo âm báo. Đây là trình chỉnh sửa âm thanh đa track, vì vậy bạn có thể dễ dàng tạo âm thanh nổi.

Trong Generatemenu, bạn có thể tạo các âm dạng sóng Sine, Sawtooth và Square có tần số, biên độ và độ dài tùy ý mà không cần ghi hoặc cần thêm tệp đầu vào.


Nhưng nó có thể tạo ra âm "từ không"? Và tôi không có ý định ghi lại và phát lại bất cứ thứ gì, chỉ tạo ra hai âm hơi khác nhau (một cho mỗi kênh) "vĩnh cửu".
Baard Kopperud

1
@BaardKopperud Vâng, tôi đã cập nhật câu trả lời của mình để làm rõ.
j883376

8

Bạn có thể nhìn vào speaker-test, cái mà (trên máy Arch) tôi tìm thấy trong gói alsa-utils.

speaker-test -c2 -t sinechạy từ một xterm, cho tôi một sóng hình sin 440 Hz trong khoảng 6 giây mỗi lần, xen kẽ các loa trái và phải. Trong xterm, nó đã cung cấp một số thông tin về loa mà nó nghĩ nó đang sử dụng.

Theo trang người đàn ông, nó có thể tạo ra các sóng hình sin có tần số tùy ý và nhiễu hồng.


1
speaker-test -c2 -t sine -f 440sẽ bổ sung cho ví dụ của bạn bằng cách đưa ra tham số tần số. Cảm ơn.
christian

4

Các siggenchương trình nên làm các trick.

ảnh chụp màn hình của siggen

Nó có hai kênh với các tín hiệu độc lập và một pha giữa chúng. Mỗi kênh có thể thực hiện các loại tín hiệu sau:

  • sin
  • cô sin
  • Quảng trường
  • Tam giác
  • răng cưa
  • mạch đập
  • tiếng ồn

Bạn có thể chạy nó trong chế độ âm thanh nổi như thế này:

$ siggen -2

/dev/dspkhông được dùng trong hầu hết các bản Linux hiện đại, nên có lẽ bạn sẽ cần phải cài đặt thư viện tương thích. Trên các bản phân phối dựa trên Debian , hãy cài đặt alsa-ossgói và chạy nó như thế này:

$ aoss siggen -2

Bạn cũng có thể dùng thử với Trình bao gói OSS của PulseAudio:

$ padsp siggen -2

Tôi nhận được: [siggen] Lỗi đầu vào / đầu ra: / dev / dsp
Ole Tange

Hừm. Liệu trình bao bọc PulseAudio OSS có giúp ích gì không?
Nathaniel M. Beaver

Vâng. Nó đã làm việc.
Ole Tange

1

Các saugns chương trình cũng có thể làm điều đó. (Đây là trình tạo âm thanh dòng lệnh (hiện tại) hỗ trợ 8 loại sóng và kỹ thuật điều chế FM / PM / AM.)

Để tạo hai sóng 100 Hz được phân tách bằng âm thanh nổi, một hình sin và một hình tam giác và một hình có biên độ đảo ngược, tập lệnh sau có thể được dán vào một tệp và chạy qua chương trình (như trong ./saugns filename):

Osin f100 a0.5 t2 P0
Otri f100 a(-0.5) t2 P1

Các ts chỉ định thời gian, tính bằng giây.

Các Ps dành cho panning cho mỗi giọng nói (0,0 = trái, 1,0 = phải). Điều này có thể được thay đổi thành một cái gì đó khác với Pcác phiên bản trong tương lai; tệp README mô tả cú pháp hiện tại.

Chỉnh sửa: Tôi thực sự là nhà phát triển của chương trình.

Ngoài ra, một cách khác để lật biên độ (đối với một số loại sóng, ví dụ sinnhưng không saw), là đặt pha bằng chữ thường p. Thêm p0.5bộ pha vào 50% chu kỳ sóng (nửa âm). Hơn nữa, vì không có loại cosin được đặt tên, p0.25là cách để biến sin thành cosin (hoặc p0.75cho cosin âm).


Xin chào Joel. Chào mừng bạn đến với Unix & Linux . Tôi đã đánh giá cao câu trả lời của bạn vì đây là một bài viết đầu tiên tuyệt vời. Tôi nghĩ rằng tôi đã đề cập rằng nếu bạn là người duy trì hoặc phát triển dự án, thì đó là thông lệ tiêu chuẩn để tiết lộ thông tin này. Mặc dù không thực sự là vấn đề đối với phần mềm GPL, nhưng đáng để biết về unix.stackexchange.com/help/promotion Đối với phần mềm Free / Libre hữu ích, tôi tưởng tượng rằng bạn sẽ có nhiều khả năng được nâng cấp trên trang web này nếu người dùng biết Bạn là một trong những nhà phát triển đằng sau dự án.
Anthony G - công lý cho Monica

1

ffmpeg

ffmpeg có thể làm điều đó, như thường lệ.

Tạo một out.wavtệp âm thanh hình sin đơn 1000 giây :

sudo apt-get install ffmpeg
ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" out.wav

Âm thanh nổi thay thế:

ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" -ac 2 out.wav

Các tập tin sẽ lớn gấp 2 lần và ffprobesẽ nói nó có 2 channelsthay vì 1 channel.

Phát âm thanh trong 5 giây mà không tạo tệp:

ffplay -f lavfi -i "sine=frequency=1000:duration=5" -autoexit -nodisp

Chơi mãi cho đến khi bạn phát điên:

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

Tài liệu:

Phần khác sunder Nguồn âm thanh ghi lại các thuật toán tạo âm thanh hữu ích khác sine, ví dụ:

  • anoisesrc: tiếng ồn của một số màu, ví dụ như trắng, hồng, nâu
  • aevalsrc có các biểu thức toán học tùy ý và do đó có thể tạo ra dạng sóng tam giác (biểu thức TODO)

Thư mục:

Đã thử nghiệm trong Ubuntu 18.04, ffmpeg 3.4.6.

Ví dụ tạo âm thanh C tối thiểu mà không cần thêm thư viện

Chỉ để cho vui: /programming/732699/how-is-audio-represented-with-numbers-in-computers/36510894#36510894



0

Bạn có thể dễ dàng tổng hợp các tông màu với SoX. Có một số vấp ngã nhưng cuối cùng tôi đã có thể tìm ra nó.

Tôi gặp sự cố khi kết nối SoX với PulseAudio vì vậy tôi chỉ chuyển soxdữ liệu thô vào paplay.

Các đường ống là tẻ nhạt vì vậy tôi đã tạo ra một kịch bản:

$ cat sox-paplay
#!/bin/bash
: ${HZ:=44100}
: ${NCHAN:=6}
: ${SINK:=mysink}
sox -c $NCHAN -n -t raw -r $HZ -L -b 16 - "$@" | paplay --no-remix --no-remap --raw -v -p --rate $HZ -d $SINK --channels $NCHAN

ví dụ

sox-paplay synth sine 1000 gain -5 remix -m 0 0 1 0 0 0

Các remixtác dụng chỉ được sử dụng để gửi kết quả đến một kênh cụ thể. Nó mạnh hơn nhiều nhưng chúng tôi chỉ sử dụng các chức năng cơ bản ở đây. Trong ví dụ này, chúng tôi có một thiết bị sáu kênh và chúng tôi đang gửi âm báo đến kênh thứ ba.

Ban đầu tôi đã tạo một thiết bị ALSA bao bọc thiết bị PulseAudio, nhưng sau đó tôi thấy rằng không thể kiểm soát ánh xạ kênh bằng ALSA và do đó các kênh ngẫu nhiên được trộn lẫn với nhau theo cách bản đồ kênh tùy chỉnh của tôi khác với mặc định ALSA. Đây là lý do tại sao tôi có --no-remix --no-remappaplaytrên; Tôi chỉ muốn thứ tự kênh thô cho lệnh sox.

Tôi mong muốn rằng các công cụ âm thanh trên Linux có tài liệu và báo cáo lỗi tốt hơn.

Bạn có thể quan tâm đến câu trả lời tôi đã đăng gần đây cho thấy cách đặt Bộ cân bằng PulseAudio từ dòng lệnh .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.