var result = new List<short>(take);
stream.Seek(2 * skip, SeekOrigin.Begin);
using(var reader = new BinaryReader(stream)) {
using(var stream = File.OpenRead(path))
static IList<short> LoadPcm(string path, long skip, int take) {
Как я обещал в самом начале, вникать в математические дебри я тут не буду, а просто воспользуюсь библиотекой MathNet.Numerics :
FFT принимает на вход PCM-данные, то есть массив значений амплитуды на дискретной сетке. На выходе дает массив такой же длины, но элементами массива являются данные об амплитуде и фазе элементарных синусоид на определенных частотах.
Преобразование Фурье переводит осциллограмму в спектрограмму. Как правило, при обработке дискретных сигналов используется быстрое преобразование Фурье (БПФ, Fast Fourier Transform, FFT) — я буду использовать сокращение FFT, оно мне почему-то больше нравится.
Если для вас эти слова вообще пустой звук, то можно обратиться к источнику .
Фурье, ДПФ, FFT и т.п.
На картинке (на нее можно нажать) видно, что звук как бы состоит из нескольких переплетающихся волн. Их-то и предстоит «выщепить».
Возьмем тот же звук, который я рассматривал в :
Аддитивным синтезом сгенерирую звук гитары, и, может быть, даже сыграю им небольшой музыкальный фрагмент.
Используя какую-нибудь интерполяцию приближу закон убывания амплитуд и попробую найти какие-нибудь закономерности. Вдруг они есть?
С помощью дискретного преобразования Фурье (ДПФ) я соберу статистику об амплитудах гармоник. Обсужу интерпретацию результатов ДПФ.
Эта статья — продолжение моего , где я, вооружившись Adobe Audition, разбирал на мелкие запчасти запись звучания моей гитары. Там я все делал на глазок, а теперь хочу с помощью точных расчетов проследить характеры звучания нескольких первых гармоник, попробовать их приблизить более-менее простыми функциями и на основании полученных данных синтезировать гитарный звук.
О чем пойдет речь
Несмотря на страшное академическое название, тут не будет интегралов и всяких этих «из последней жуткой формулы совершенно очевидно, что». Тут будет несколько цветастых графиков, немного кода на C# и мои попытки доходчиво объяснить сложные вещи.
Вариант номер три
Фурье-анализ и аддитивный синтез звука струны акустической гитары — edren-baton
Комментариев нет:
Отправить комментарий