Как передать определенный тон в /dev/audio?

Просто запустите сервер VNC из Интернета или чего-то подобного (xinetd, systemd,... ).

При получении сетевого подключения запустите его с опцией -inetdи любыми другими опциями, которые вы хотите (геометрия, аутентификация,... ),

/usr/bin/Xvnc -inetd...
2
28.03.2020, 03:16
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работает. Вы не хотите, чтобы символы были закодированы в UTF -8 при записи на стандартный вывод!

Кроме того, в зависимости от вашей системы вы можете заменить 44100 на 48000 или другое число, если частота дискретизации по умолчанию отличается.

3
19.03.2021, 02:32

Теги

Похожие вопросы