Итак, обо всем по порядку.
Что значит "идеальных"?
Идеальный тон (он же чистый тон) - сигнал, звуковое давление которого описывается синусоидальной функцией времени с постоянной амплитудой ("то, что называют чистым звуком"). На практике производится генератором. В музыке отдельно за редким исключением не применяется.
За высоту звука - отвечает частота его колебаний (то что называют "чистым" звуком). А то что называется его окраской или тембром, т.е. то, что позволяет нам идентифицировать источники или принадлежность звука (есть еще оч.красивое слово - оберЪтона) ) - в данном случае неинтересно.
За высоту звука, строго говоря, отвечает частота основного тона этого звука (если этот звук представляет собой тональный сигнал). Если звуковой сигнал нетональный, то никакого основного тона нет, нет и определенной высоты тоже.
На счет того, что остальное неинтересно, не уверен. Но об этом позже.
Есть еще одна , весьма известная, для вас, подозреваю, особенно близкая и понятная, штука - резонанс. Так в чем проблема?
Да, знакомая. Для данной задачи, однако, в чистом виде не сильно полезная. Есть гораздо более интересная вещь - преобразование Фурье. На входе имеем отрывок сигнала очень короткой длительности (несколько миллисекунд). Полагаем, что в течение этого отрывка сигнал стационарный (в смысле, не изменяется). Применяем к этому отрывку преобразование Фурье, получаем спектр отрывка. Все сигналы и спектры, конечно же, дискретны по уровню и по времени.
Теперь о том, что же все-таки не так.
Наш музыкальный файл состоит из исходных звуков муз. инструментов и голосов (ну, предположим), которые были записаны, обработаны, смикшированы. Потом итоговый микс прошел мастеринг. Каждый из исходных звуков может иметь разную природу - быть тональным или шумовым сигналом или созвучием (несколько тонов без выраженного основного тона, например, колокол). Если обработка каждого сигнала линейная (например, увеличение громкости трека) - то на выходе мы не получим новых частотных составляющих, если нелинейная (например, многие гитарные эффекты) - то, соответственно, получим их. Затем при микшировании (если считать эту операцию просто суммированием) все эти спектры смешаются в один - в спектр музыкального сигнала. В нем будут одновременно основные тоны тональных сигналов, их обертоны (если быть точнее, полные спектры тональных сигналов), продукты нелинейной обработки, спектры шумовых сигналов и созвучий. Это только в общих чертах, еще можно учесть всякое разное - амплитудную модуляцию (изменение громкости звучания инструмента), частотную модуляцию (вибрато, тремоло-рычаг и прочее), которые расширяют спектр индивидуальных инструментов; нелинейные искажения, возникающие при кодировании в mp3.
Пример спектра реального отрезка mp3-файла длительностью 24 мс - во вложении.
И еще одно замечание. Если, как было сказано, учитывать только основные тона (будем считать, что нам удалось их как-то опознать в спектре), то мы получим только ноты. Причем все сразу, без привязки к инструменту, т.е. вся партитура на одном нотном стане. Что тоже "не айс". Полученное в результате при проигрывании через миди-движок может звучать, мягко говоря, странно. И скорее всего действительно пригодно только для фрагмента с одним звучащим инструментом.