Как создать звук с нуля С#
Я пытаюсь создать виртуальный пианино на С# и хочу, чтобы создать масштаб музыкальных нот с нуля.
Я знаю, что я могу просто найти или создать кучу WAV файлов, 1 для каждой заметки, но это создаст слишком много места на жестком диске пользователя и не будет очень интуитивным для меня в будущем.
Итак, есть способ создать правильный звук - например, B flat, в С# без использования .wav файла, все в коде thorugh С#, а если нет, есть ли способ сделать это на другом языке - С++.
Спасибо, я попытался сделать это как можно более ясным.
Ответы
Ответ 1
Я думаю, это похоже на то, что вы должны начать:
http://blogs.msdn.com/b/dawate/archive/2009/06/24/intro-to-audio-programming-part-3-synthesizing-simple-wave-audio-using-c.aspx
EDIT: Я должен добавить, что генерация звуков без образцов .wav и эмулирование фортепиано противоречат друг другу.
Если вы хотите получить "настоящий" звук фортепьяно, лучше всего работать с образцами (удерживайте их в памяти, если вы не хотите держать их в файловой системе). Если вы просто хотите простой способ испускать точные заметки (которые не звучат как настоящий пианино), то делать это программно - это путь!
Ответ 2
Если вы хотите эмулировать пианино, у вас есть только два варианта, один из которых - использовать образцы, а другой - физическое моделирование. Физическое моделирование требует некоторых довольно продвинутых знаний о DSP (фильтрация, свертка и т.д.), А пианино было бы сложным инструментом для решения, но это делалось с помощью Pianoteq
В отношении образцов, чтобы создать рояль, который находится где-нибудь рядом с убедительным аналогом, в идеале вам потребуется больше одного образца на заметку для разных скоростей с кроссфейдами между ними, но вы, вероятно, можете избежать использования образца по ограниченному диапазон заметок для уменьшения общего количества образцов.
Ответ 3
Возможно, вы захотите взглянуть на MIDI.
Там API окон можно обернуть на С++, а затем вывести управляемый интерфейс, который вы можете использовать на С#.
Ответ 4
Может быть, использование библиотеки MIDI могло бы помочь? Я не в этом разбираюсь, но если вы не хотите использовать аудиофайлы, это единственное, что приходит мне на ум. Там вопрос об этом здесь.
Ответ 5
Здесь вы найдете статью, включающую источник о том, как создавать звук фортепьяно с нуля, по крайней мере, для одной ноты Octave музыкальных нот (она расширяема).