Генератор сигналов для linux

нужны программы, изображающие звуковой генератор и осциллограф

А есть по Linux программки, изображающие звуковой генератор и осциллограф (с помощью звуковой карточки, естественно)? Ответы «есть», «нет» или «»google» не принимаются — хочется конкретную наводку.

Re: нужны программы, изображающие звуковой генератор и осциллограф

Звусовой генератор — cat /dev/hda1 > /dev/dsp

Осцилографф. А это как? «Изображающие осцилограф». Колонки должны тебе рассказать, что он из себя представляет?

Re: нужны программы, изображающие звуковой генератор и осциллограф

Re: нужны программы, изображающие звуковой генератор и осциллограф

Ну дык, очевидно же. Для особо бестолковых:

1) нужна программа, которая бы выводила синус (можно косинус) заданной частоты на выход звуковой платы.

2) и программа, которая бы брала сигнал с входа звуковой платы и рисовала бы его график на экране (имеется в виду экран монитора).

В виндах есть платный монстр под названием labwiew который может все это и еще много еще.

Re: нужны программы, изображающие звуковой генератор и осциллограф

sox -t nul /dev/null -t ossdsp /dev/dsp synth 50 sine 1000

Источник

Стерео «генератор тона» для Linux?

Есть ли что-то вроде стерео (отдельного левого и правого канала) генератора тона для Linux? Где вы можете установить громкость и тон / высоту звука для каждого канала, а также, предпочтительно, установить форму волны (синус, квадрат, пилообразная, . ) и инвертировать один канал (в отличие от другого).

Если нет, какие-нибудь идеи для хороших мест, чтобы начать делать один? Я предполагаю, что самым простым было бы адаптировать существующие программы, такие как синтезаторы . Но если это плохо работает, есть ли какие-либо библиотеки (например, SDL?), Которые можно использовать в качестве основы для такой программы?

Похоже, вы ищете Audacity, который является кроссплатформенным редактором аудио с открытым исходным кодом. Одной из его функций является возможность генерировать тоны. Это многодорожечный аудиоредактор, так что вы можете легко создать стерео тон.

В Generate меню вы можете создавать сигналы синусоидальной, пилообразной и прямоугольной формы с произвольной частотой, амплитудой и длиной без необходимости записи или дополнительных входных файлов.

Вы можете посмотреть на speaker-test , что (на машине Arch) я нахожу в пакете alsa-utils.

speaker-test -c2 -t sine при запуске от xterm, мне давали синусоидальные волны 440 Гц по 6 секунд каждый, чередуя левый и правый динамики. В xterm он дал некоторую информацию о том, какой динамик, по его мнению, он использует.

Согласно справочной странице, он может создавать синусоидальные волны произвольной частоты и розовый шум.

Имеет два канала с независимыми сигналами и фазу между ними. Каждый канал может делать эти типы сигналов:

Вы можете запустить его в режиме стерео, например так:

Поскольку /dev/dsp в большинстве современных дистрибутивов Linux это не рекомендуется, вам, вероятно, потребуется установить библиотеку совместимости. В дистрибутивах на основе Debian установите alsa-oss пакет и запустите его так:

Вы также можете попробовать это с PulseAudio OSS Wrapper:

FFmpeg

ffmpeg может сделать это, как обычно.

Создайте 5-секундный синусоидальный out.wav звуковой файл 1000 Гц :

Файл будет в 2 раза больше, и вместо ffprobe него будет указано, что он имеет . 2 channels 1 channel

Читайте также:  Windows двойным щелчком открывает свойства файла

Воспроизведите аудио в течение 5 секунд без создания файла:

Играй вечно, пока не сойдешь с ума

В другом разделе источников звука sunder документируются другие полезные алгоритмы генерации звука sine , например:

  • anoisesrc : шумы нескольких цветов, например, белый, розовый, коричневый
  • aevalsrc принимает произвольные математические выражения и поэтому должен иметь возможность создавать треугольные сигналы (выражение TODO)

Список используемой литературы:

Протестировано в Ubuntu 18.04, ffmpeg 3.4.6.

Пример создания аудио на минимальном С без дополнительных библиотек

Программа Saugns также может сделать это. (Это аудио генератор командной строки (в настоящее время), поддерживающий 8 типов волн и методы модуляции FM / PM / AM.)

Чтобы сгенерировать две стерео-разделенные волны 100 Гц, одну синусоидальную, одну треугольную и одну с инвертированной амплитудой, следующий скрипт можно вставить в файл и запустить через программу (как в ./saugns filename ):

В t s указать время, в секундах.

В P ы предназначены для голоса за панорамирование (0.0 = влево, 1.0 = право). Это может быть изменено на что-то другое, чем P в будущих версиях; файл README описывает текущий синтаксис.

Редактировать: я действительно разработчик программы.

Кроме того, альтернативный способ переключения амплитуды (для некоторых типов волн, например, sin но не saw ), состоит в установке фазы с использованием строчных букв p . Добавление p0.5 устанавливает фазу до 50% волнового цикла (отрицательная половина). Кроме того, поскольку нет названного типа косинуса, p0.25 есть способ превратить синус в косинус (или p0.75 для отрицательного косинуса).

Возможно, вы ищете Гнаурал .

Вы можете легко синтезировать тоны с SoX. Были некоторые камни преткновения, но я в конце концов смог разобраться.

У меня были проблемы с сопряжением SoX с PulseAudio, поэтому я просто передаю sox необработанные данные paplay .

Конвейер утомителен, поэтому я создал скрипт:

remix Эффект используется только для отправки результата на определенный канал. Он намного мощнее, но здесь мы используем только основные функции. В этом примере у нас есть шестиканальное устройство, и мы посылаем тональный сигнал на третий канал.

Первоначально я создал устройство ALSA, обертывающее устройство PulseAudio, но затем обнаружил, что невозможно управлять сопоставлением каналов с помощью ALSA, и поэтому случайные каналы смешивались вместе в зависимости от того, как моя пользовательская карта каналов отличалась от стандартной ALSA. Вот почему у меня —no-remix —no-remap в paplay выше; Я просто хочу упорядочить необработанный канал для команды sox.

Я хотел бы, чтобы аудио материал в Linux имел лучшую документацию и отчеты об ошибках.

Возможно, вас заинтересует ответ, который я недавно опубликовал и который показывает, как настроить эквалайзер PulseAudio из командной строки .

Источник

Sound Card Signal Generator

Пришлось тут свой усилитель поковырять, а кроме осцилографа под рукой ничего нет. Нужен просто генератор через sb.
Все что нагуглил либо очень страшное, либо древнее и работает только через oss. Либо 99% — win.
Соответственно чтоб можно было интерактивно через морду менять частоту и желательно форму.
Если на qt и через pulseaudio то вообще торт.
Есть у нас варианты?

Audacity не катит?

Сойдет. Но из пушки по воробьям — жестоко. 🙂
Да и жаль что частоту в реалтайме менять не нашел.

Есть ещё sfxr, но оно немного не для того предназначено, хотя тоже генератор.

В alsa есть эмуляция OSS. А работает оно все через OSS потому, что «чистая alsa» — жуткое уродище. Код для OSS займет десяток строчек, а для ALSA — сотню.

Читайте также:  Kali linux backdoor windows

Вот тебе простейшая синусоида:

Да, можно самому ничего не писать, если тебе тупые сигналы только нужны: используй sox.

padsp спасет отца русской звукозаписи

octave жесть еще больше.
Audacity устроил.
Пищит как нужно. Разбираться пару минут.

В alsa есть эмуляция OSS. А работает оно все через OSS потому, что «чистая alsa» — жуткое уродище. Код для OSS займет десяток строчек, а для ALSA — сотню.

Есть. Но в убунте видимо оно не включено в ядре, а пересобирать влом.
Есть конечно padsp, но уже не нужно.
ps: А все-таки жаль что нет простого с нормальной мордой генератора, осцилографа через карту.
Это конечно г., но вот в моем случае, на пример, подошло бы.

Но в убунте видимо оно не включено в ядре

Это не говно ли поцтеринговское часом?

А все-таки жаль что нет простого с нормальной мордой генератора, осцилографа через карту.

Дык, оно делается за полчаса! Хочешь — напиши, да выложи в открытый доступ. А возможно, и есть такое…

И вообще, ты почему sox не посмотрел?

Да, можно самому ничего не писать, если тебе тупые сигналы только нужны: используй sox.

Так все устраивало. Просто хотелось 21-го века с кнопками-ручками и мышкой. 🙂

Это не говно ли поцтеринговское часом?
Оно самое. От пульса.

Я говорю. Нет их уже.
Хм. А вот mixer есть.

Дык, не хрен бубунтой пользоваться. Поставь уже какой-нибудь дистрибутив линукса себе.

Да все-равно с большего оно все одинаково.
А gentoo не хочу. Нервы уже не те.

Debian? С него же бубунту сперли. Разницы не заметишь на первый взгляд, а качество будет выше во много крат!

Но в линупсе чорная камсоль, а человеку работать нужно.

Источник

Stereo «tone-generator» for linux?

Is there something like a stereo (separate left-and right-channel) tone-generator for Linux? Where you can set volume and tone/pitch for each channel, and preferably also set the wave-form (sine, square, sawtooth, . ) and invert one channel (as opposed to the other).

If not, any ideas for a good places to start to make one? I guess the simplest would be to adapt existing programs like synths. But if that work poorly, are there any libraries (like SDL?) that can be used as bases for such a program?

7 Answers 7

It sounds like you’re looking for Audacity which is a cross-platform open source audio editor. One of its features is to allow you to generate tones. It’s a multi-track audio editor, so you can easily create a stereo tone.

Under the Generate menu, you’re able to create Sine, Sawtooth, and Square waveform tones of arbitrary frequency, amplitude, and length without the need for recording or needing additional input files.

ffmpeg

ffmpeg can do it, as usual.

Create a 5 seconds mono 1000Hz sinusoidal out.wav sound file:

Stereo instead with -ac 2 :

The file will be 2x as large, and ffprobe will say it has 2 channels instead of 1 channel .

Play the audio for 5 seconds without creating a file:

Play forever until you go mad:

The other section sunder Audio sources document other useful sound generation algorithms in addition to sine , e.g.:

  • anoisesrc : noises of several colors, e.g. white, pink, brown
  • aevalsrc takes arbitrary mathematical expressions, and should therefore be able to produce triangular waveforms (TODO expression)
Читайте также:  Как восстановить windows при помощи ключа windows

Tested in Ubuntu 18.04, ffmpeg 3.4.6.

Minimal C audio generation example without extra libraries

You might look at speaker-test , which (on an Arch machine) I find in alsa-utils package.

speaker-test -c2 -t sine run from an xterm, gave me a 440 Hz sine wave for about 6 seconds each, alternating left and right speakers. In the xterm, it gave some information about which speaker it thought it was using.

According to the man page, it can do sine waves of arbitrary frequency and pink noise.

The siggen program should do the trick.

It has two channels with independent signals and a phase between them. Each channel can do these signal types:

You can run it in stereo mode like this:

Note that this relies on /dev/dsp which was provided by OSS. OSS was superseded by ALSA and deprecated around 2006, so you will probably need to install a compatibility library. On Debian-based distros, install the alsa-oss package and run it like this:

You can also try it with the PulseAudio OSS Wrapper which is provided with the pulseaudio-utils package:

The saugns program can also do it. (It is a command-line audio generator (currently) supporting 8 wave types and FM/PM/AM modulation techniques.)

To generate two stereo-separated 100 Hz waves, one a sine and one a triangle, and one with inverted amplitude, the following script can be pasted into a file and ran through the program (as in ./saugns filename ):

The t s specify time, in seconds.

The P s are for per-voice panning (0.0 = left, 1.0 = right). This may be changed to something other than P in future versions; the README file describes the current syntax.

Edit: I’m indeed the developer of the program.

Also, an alternative way of flipping the amplitude (for some wave types, e.g. sin but not saw ), is to set the phase using a lowercase p . Adding p0.5 sets phase to 50% of the wave cycle (negative half). Further, as there’s no named cosine type, p0.25 is the way to turn sine into cosine (or p0.75 for negative cosine).

You might be looking for Gnaural.

You can easily synthesize tones with SoX. There were some stumbling blocks but I was eventually able to figure it out.

I had trouble interfacing SoX with PulseAudio so I just pipe sox raw data into paplay .

The pipeline is tedious so I created a script:

The remix effect is just used to send the result to a specific channel. It is much more powerful but we only use the basic functionality here. In this example we have a six-channel device and we’re sending a tone to the third channel.

I originally created an ALSA device wrapping the PulseAudio device, but then I found that it is impossible to control the channel mapping using ALSA, and so random channels were getting mixed together according to how my custom channel-map differed from the ALSA default. This is why I have —no-remix —no-remap in paplay above; I just want the raw channel ordering for the sox command.

I kind of wish that audio stuff on Linux had better documentation and error reporting.

You may be interested in an answer I posted recently showing how to set the PulseAudio Equalizer from the command-line.

Источник

Оцените статью