А технические характеристики где можно посмотреть?
А свист убрать можно?
сделано на 5+
А технические характеристики где можно посмотреть?
А свист убрать можно?
сделано на 5+
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Ну да, здорово! Не было бы свиста - то вообще бы цены не было бы.
Мтерия - Информация - Мhера
На входе имеется монофонический WAV. 16 bit и любой дискретизации
На выходе имеется то что вы слышите.
Кроме того имеется два процесса:
1) Кодирующий
2) Декодирующий
Кодирующий процесс представляет собой программы на pascal (под ДОС... хехе..) который оосуществляет преобразование. Практически указано слабое место метода кодирования: чем точнее он кодирует тем больше (по экспоненте причём) размер конечного файла (для спекка). Используется алгоритм ШИМ для эмуляции уровней громкости, в связи с этим некоторые композиции ПРИНЦИПИАЛЬНО невозможно адекватно закодировать (пример брал - Benny Benassi - Hit My Heart), в общем если взять и сделать сонограмму, то те композиции которые имеют чёткие группы звуковых частот будут очень хорошо кодироваться и наоборот.
В самом кодере указываются все параметры: в % от исходного файла что надо кодировать, допустимая ошибка абослютная и допустимая относительная (тоже в %). Из-за принципа моделирования громкости НЕВОЗМОЖНО избавиться от шипения, оно всегда будет в той или иной мере (для большего конечного файла менее заметно, для меньшего - более). После работы программа даёт три результата: конечный файл, файл проверки (тоже 16 bit wav, но то что должно было бы быть услышано если раскодировать конечный файл в WAV.), так же величину ошибки кодирования. Программа кодирования универсальна - её можно (посредтсвом встроенных констант) подогнать под любой алгоритм декодирования. Указанные константы суть представляют собой тактовые промежутки (длины циклов обработки). Я отсылал описание звуковых циклов в ZX Time и 3aRulem так что там должно быть (или будет по крайней мере).
Если надо приватом или мылом могу отослать, чтобы было понятно какие циклы считаются в тактах и каким образом.
Текст кодирующей программы на Pascal прикреплён.
Есть очень хороший образчик (http://грив.рф/MY_SPECCY/baba.zip), когда удалось на целую минуту контент расстянуть...
чисто теоретически (на самом деле просто ломает меня прогу писать) можно написать декодер-проигрыватель, который бы работал со средней частотой декодирования 233,333 Гц = 233 кГц - это почти что винилка (спектрум по качеству приближается к винилке... CD-audio отдыхает), соответсвенно можно и кодер на паскале переписать, однако вот здесь такой есть расчёт - 1) Это непакующий кодер 2) В связи с этим его время работы для всей 256кБайт памяти скорпиона есть чтото около 8-9 секунд
.
Поэтому чисто практически нет смысла его улучшать в этом направлении (скорость воспроизведения), так как хоть технически обеспечивается идеальное звучание, практически этот подход просто неприменим...
P.S. Общая структура декодера-проигрывателя:
(с) GriV
предустановки: С = 254 (порт вывода), D = 0 (значение)
осуществляется переход на процедуры
Out (С),С
Out (С),С
Out (С),С
Out (С),С
Out (С),С
Out (С),С
Out (С),С
Out (С),С
Ret
для значения ячейки памяти = 0
Out (С),D
Out (С),С
Out (С),С
Out (С),С
Out (С),С
Out (С),С
Out (С),С
Out (С),С
Ret
для значения ячейки памяти = 1
и т.д.
Out (С),D
Out (С),D
Out (С),D
Out (С),D
Out (С),D
Out (С),D
Out (С),D
Out (С),D
Ret
для значения ячейки памяти = 255.
Менеджер распределения прыжков для указанной конструкции я думаю написать сможет каждый...
P.P.S. Размер одной такой конструкции = 2*8+1 = 17 байт, всего таких 256 конструкций + (приблизительно) 200 байт на менеджер прыжков и загрузчик... Итого около 4,5 кБайт на всё про всё...
Офигенная вещь! РУЛЕЗ!
Пропустил в своё время
А что если сделать, чтобы с СД диска играло? Тогда можно будет такую частоту забадяжить?
Ну, я про это:Сообщение от GriV
Насколько понял, то проблема в том, что памяти слишком мало? А что если с CD подгружать всё время?Сообщение от GriV
Если это можно сделать без участия проца...Сообщение от Surfin' Bird
)) то пожалста, тока как такое без участия проца можно сделать ума не приложу
))
Если кто на реальном спекке запускал, заметят, что там вначале идёт треть диска в память - это почти 30 секунд - потом только начинается вопроизведение - те же 30 секунд в первом сампле и минута во втором...
Тут именно что не получится грузить, для видео дискретность при загрузке не так сильно заметна, а вот для аудио к несчастью очень...
Ещё есть такой вариант, что имеются какие то данные которые подаются в порт - чтобы их без управления (по крайней мере постоянного) можно было их оттуда снимать (простой командой IN A,(port)), так тоже можно - так даже будет прощё - потому что работать с таким потом удобней - не надо за границами памяти следить - а прога на прерываниях репает опрос клавиатуры - тогда вообще класс. Но сомнительно чтобы всё было так просто...Сообщение от Surfin' Bird
GriV ты молодец !![]()
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)