LINUX.ORG.RU

Нормально ли, что все способы воспроизведения звука отказываются работать не по назначению?

 ,


0

2

Мне нужна команда, которая воспроизведёт рандомные шумы при исполнении скрипта.

Что было попробовано, и что у меня с этим вышло:

  • Вот набор подобных вещей на реддите. Ни один из описанных здесь способов не привёл к желаемому результату.
    • sudo aplay /dev/sda
      Что получил:
      Playing raw data '/dev/sda' : Unsigned 8 bit, Rate 8000 Hz, Mono
      Но спикер молчит. ^C.

    • cd /usr/bin && tar cvf - .|aplay -f U8 -r 44100
      Выводит:
      ./
      ./ppmquantall
      ./lwp-dump
      ./mkfontscale
      Playing raw data 'stdin' : Unsigned 8 bit, Rate 44100 Hz, Mono
      aplay: set_params:1299: ./fc-cache
      Sample format non available
      Available formats:
      - S16_LE
      - S32_LE
      
      ... и передаёт управление в консоль. Спикер молчит.
  • Существует замечательная утилита beep. Но почему-то, у меня она всегда молчит.
    sucker@debian:~ $ beep --verbose
    [DEBUG] 1 times 200 ms beeps (100 delay between, 0 delay after) @ 440.00 Hz
    sucker@debian:~ $ beep --debug
    [DEBUG] 1 times 200 ms beeps (100 delay between, 0 delay after) @ 440.00 Hz
    sucker@debian:~ $ beep -e /dev/dsp
    ioctl: Invalid argument
    ioctl: Invalid argument
  • И напоследок.
    cat /dev/urandom > /dev/dsp
    Единственная вещь, которая заработала, хотя вчера у меня с ней что-то не получалось (уже не помню, что), и этот вариант был отброшен.

Вопросов по существу здесь три.

1) Что не так с aplay?

2) Почему не работает beep?

Мне кажется, дело в каких-то причудливых настройках звуковой карты, но я не знаю, как это проверить.

3) Кто-нибудь знает какие-нибудь ещё нестандартные способы звукоизвлечения?


Ответ на: комментарий от SHODAN

/dev/sda требует прав рута, поэтому:

sucker@debian:~ $ cat /dev/urandom | aplay
Playing raw data 'stdin' : Unsigned 8 bit, Rate 8000 Hz, Mono
aplay: set_params:1299: Sample format non available
Available formats:
- S16_LE
- S32_LE
На этом ничего не происходит, управление возвращается в шелл. Тут, наверное, что-то не так с настройками альсы, но я не знаю, куда копать.

sucker
() автор топика
Ответ на: комментарий от sucker

Запили себе мааленькую сишную прожку с libao и генератором шума тип того:

void
generate_noise(pcm_frame *frames, const size_t size)
{
    size_t pos = 0;

    while (pos < size) {
        frames[pos].left  = rand() % 200;
        frames[pos].right = rand() % 200;
        pos += 1;
    }
}

deep-purple ★★★★★
()

Что не так с aplay?

Ты просишь aplay открыть устройство по умолчанию и кормить его U8 семплами. А оно не поддерживает такой формат семплов. Aplay говорит тебе, что поддерживаются S16_LE и S32_LE.

Ты, наверное, как-то кофигурировал ALSA, и забыл при этом добавить плагин plug для конвертирования форматов. В конфигурации по умолчанию всё должно работать просто так.

Попробуй aplay -f U8 -D plug:dmix

i-rinat ★★★★★
()

Вангую что просто звуковуха залочена уже какой-нибудь пульсой.

ei-grad ★★★★★
()
Available formats:
- S16_LE
- S32_LE

aplay -f S16_LE -c 2 /dev/urandom

onlybugs ★★
()

опять школьные вирусописатели с фриланса не справились с лайнуксом

земля тебе пухом братишка

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.