Это относится к моим давним экспериментам с гармонией. Теория очень проста - я предположил что гармоничными являются любые созвучия в которых частоты тонов соотносятся как гармоники. Т.е. как целые числа, обычно не большие. В это предположение например хорошо вписываются обычные мажорное и минорное трезвучие. Например рассмотрим мажорное трезвучие - к примеру это ноты до, ми, соль. Рассмотрим частоты этих нот:
до - 523.25 Гц
ми- 659.26 Гц
соль - 783.99 Гц
Эти три частоты очень близки к 4,5 и 6 гармонике. Чтобы убедиться в этом рассмотрим такие их соотношения
до/до*4=523.25/523.25*4=4
ми/до*4=659.26/523.25*4=5.04
соль/до*4=783.99/523.25*4=5.99
Как видим, если принять ноту до как 4-ю гармонику то нота ми очень близка к 5-й, а нота соль к 6-й.
И на самом деле если взять любые классические гармоничные созвучия все они так или иначе впишутся в это же правило - соотношение их частот будет близко к соотношениям тех или иных небольших целых чисел.
А значит зная правило мы можем вывести любые гармоничные созвучия без необходимости их запоминать, а так же вероятно можем получить новые, которых возможно нет в классической теории музыки.
Эксперименты с этими закономерностями показали что на самом деле не все целочисленные соотношения частот звучат понастоящему красиво а только соотношения небольших чисел - до 7-ми примерно. А чтобы получить более высокие тона (ведь в музыке используюется широкий диапазон частот) можно дополнительно домножать эти числа один или более раз на 2, 3 и 5 (это я определил эмпирически - именно при таких числах получаются красивые созвучия).
Т.е. говоря по простому красиво звучат любые созвучия частоты которых соотносятся как числа полученные если умножить целое число до 7-ми включительно на ряд множителей 1,2,3 и 5 в любых количествах и комбинациях.
И собственно это правило я и реализовал в вышеприведенной программке
Также есть недостаток, программа под Windows 7 щёлкает очень громко.
Ну и нет вывода результата в WAV-файл.
Смотри как мы можем поступить. У меня нет времени писать эту программку в законченом виде (занят сейчас другими задачами) но я могу сделать DLL-ку в которой реализую основные функции, а уже ты и любой желающий может подключить эту DLL-ку к своей программе (не обязательно на Delphi, можно и на C++) и использовать эти функции чтобы оформить это в любой желаемом виде, в конкретное приложение.
Я могу в DLL-ке выложить функции генерации звука, вывода на звуковую карту и сохранения в файл. А уже оконный интерфейс сам напишешь. Идет такой расклад?