TRIGGERED
Цитата
Запись звука ведь по сути ничто иное, как запись напряжения на катушке микрофона, умноженная на некий коэффицент
Во-первых, это зависит от микрофона.
Во-вторых, ты сосешь хуи.
Цитата
Уверен, что можно найти таблицу соответствия между звуком и получаемыми значениями напряжения.
Сделаю страшную подсказку: эта формула 16.35*2A/12 где A - порядковый номер ноты начиная с C0. ( http://www.phy.mtu.e.../notefreqs.html)
Это все учитывая, что у нас равномерно темперированная система.
Нота A4 имеет частоту 440 гц, нота A3, например, 220 гг, A2 110 гц и так далее.
Есть только одна маленькая проблема: реальные инструменты (с тех, с которых записывают) выдают не идеальные волновые формы, а суперпозицию огромного числа волн. Если ещё аппроксимировать какая одна нота была воспроизведена на инструменте можно (то есть всего одна нота, что слабо реально если у тебя не электронный инструмент и/или идеальные условия), то вот несколько нот невозможно в принципе, потому что существует несколько способов их получить.
Если у тебя, допустим, есть число 15, то я тебе могу в натуральных числах написать огроменное количество разных способов его получить используя только неповторяющиеся натуральные числа и операцию сложения.
Так вот тут натуральные числа (что не имеет в данном смысле реального смысла) это для нас будут частоты волн (амплитуду и фазу брать не будем), а сложение - суперпозиция.
Если у нас есть конечная волна, например, частотой 440 гц, то я могу представить её как суперпозицию многих волн, причем вариантов бесконечно много (поскольку частота всегда положительна и является действительной).
Твоё преобразование Фурье действительно тебе позволит получить набор синусоидальных волн, которые в результате суперпозиции выдадут тебе конечную волну.
Только есть одна МААААЛЕНЬКАЯ проблема: в большинстве своем эти волны не будут соответствовать никакой ноте. То есть совсем.
Тебе нужно ограничить множество возможных частот до множества, где An = 16.35*2n/12 , где 0 <= n <= 123 и и теперь проблема становится гораздо веселее.
Даже если ты сможешь применить преобразование Фурье на твою конечную волну при таких условиях, это отнюдь не гарантирует, что конечная волна (нота) получилась именно таким образом. Не забывай, что преобразование Фурье не та вещь, которую ты применяешь, чтобы решить такую задачу. Суть его состоит как раз в том, чтобы некоторую периодическую функцию представить как сумму некоторого количества синусоидальных функций. Действительно ли эта волна получилась в результате сложения этих волн невозможно определить.
А, ещё есть проблема дискретизации: данные хранятся в цифровом формате, тогда как микрофон - аналоговое устройство (почти всегда). Твоя функция не будет непрерывной. Проблему можно исправить интерполяцией, но это не то, что нужно.
