На входе имеется монофонический WAV. 16 bit и любой дискретизации
На выходе имеется то что вы слышите.
Кроме того имеется два процесса:
1) Кодирующий
2) Декодирующий
Кодирующий процесс представляет собой программы на pascal (под ДОС... хехе..) который оосуществляет преобразование. Практически указано слабое место метода кодирования: чем точнее он кодирует тем больше (по экспоненте причём) размер конечного файла (для спекка). Используется алгоритм ШИМ для эмуляции уровней громкости, в связи с этим некоторые композиции ПРИНЦИПИАЛЬНО невозможно адекватно закодировать (пример брал - Benny Benassi - Hit My Heart), в общем если взять и сделать сонограмму, то те композиции которые имеют чёткие группы звуковых частот будут очень хорошо кодироваться и наоборот.
В самом кодере указываются все параметры: в % от исходного файла что надо кодировать, допустимая ошибка абослютная и допустимая относительная (тоже в %). Из-за принципа моделирования громкости НЕВОЗМОЖНО избавиться от шипения, оно всегда будет в той или иной мере (для большего конечного файла менее заметно, для меньшего - более). После работы программа даёт три результата: конечный файл, файл проверки (тоже 16 bit wav, но то что должно было бы быть услышано если раскодировать конечный файл в WAV.), так же величину ошибки кодирования. Программа кодирования универсальна - её можно (посредтсвом встроенных констант) подогнать под любой алгоритм декодирования. Указанные константы суть представляют собой тактовые промежутки (длины циклов обработки). Я отсылал описание звуковых циклов в ZX Time и 3aRulem так что там должно быть (или будет по крайней мере).
Если надо приватом или мылом могу отослать, чтобы было понятно какие циклы считаются в тактах и каким образом.
Текст кодирующей программы на Pascal прикреплён.
Есть очень хороший образчик (http://грив.рф/MY_SPECCY/baba.zip), когда удалось на целую минуту контент расстянуть...