2012-01-03 4 views
4

Есть ли возможность генерировать звуки в C#? Я имею в виду не только звуковой сигнал, либо открыть и воспроизвести волновой файл. Я имею в виду построение сигнала с использованием различных видов волн (sin, saw и т. Д.) И их параметров (частоты, амплитуды и т. Д.)Синтез звука с C#

+1

Что-то вроде этого? http://channel9.msdn.com/coding4fun/articles/Generating-Sound-Waves-with-C-Wave-Oscillators –

ответ

8

Отъезд NAudio на код.

NAudio - это библиотека аудио и MIDI с открытым исходным кодом, содержащая десятки полезных аудио связанных классов, предназначенных для ускорения разработки связанных с аудио утилитами в .NET. Он находится в разработке с 2001 года и вырос до широкого спектра функций. Хотя некоторые части библиотеки являются относительно новыми и неполными, более зрелые функции прошли тщательное тестирование и могут быть быстро использованы для добавления аудио-возможностей в существующее приложение .NET.

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

+0

Спасибо! Я проверю его источники. –

4

Это сообщение в блоге, которое я написал о how to create a sine wave with NAudio. Очевидно, что это всего лишь первый шаг к созданию полномасштабного синтезатора, так как вы также захотите создать другие формы сигнала, конверты ADSR, фильтры и т. Д., Но это должно по крайней мере начать.

+0

Спасибо, статья очень полезна! –

0

Я настоятельно рекомендую вам посмотреть на платформу VST .Net. Это позволит вам создавать собственные VST в .Net. Если вы хотите сделать синтез, вы, вероятно, обнаружите, что проще создать VST и разместить его в своем DAW по выбору, а не создавать однократное приложение. Это связано с тем, что если вы создаете VST, вам не нужно беспокоиться о работе с драйверами аудиоинтерфейса или ASIO и т. Д. https://vstnet.codeplex.com/

Кроме того, вам также понадобится набор элементов управления для пользовательского интерфейса. Стандартные средства Windows Forms или WPF могут делать трюк, но энтузиасты синтезатора обычно любят видеть хорошо скомпилированные элементы управления. Недавно я выпустил эти элементы управления, которые ведут себя как обычные элементы управления WPF, но предназначены для синтеза: https://bitbucket.org/MelbourneDeveloper/vst-controls-.net/

Смежные вопросы