Важная информация

User Tag List

Страница 2 из 7 ПерваяПервая 123456 ... ПоследняяПоследняя
Показано с 11 по 20 из 65

Тема: Вот такая весчь:

  1. #11
    Veteran Аватар для GriV
    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Смысл такой:

    На входе имеется монофонический WAV. 16 bit и любой дискретизации
    На выходе имеется то что вы слышите.
    Кроме того имеется два процесса:
    1) Кодирующий
    2) Декодирующий

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

    Текст кодирующей программы на Pascal прикреплён.

    Есть очень хороший образчик (http://грив.рф/MY_SPECCY/baba.zip), когда удалось на целую минуту контент расстянуть...
    Вложения Вложения
    Последний раз редактировалось GriV; 10.08.2012 в 19:20.
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  2. #12
    Veteran Аватар для GriV
    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию И вот ещё,

    чисто теоретически (на самом деле просто ломает меня прогу писать) можно написать декодер-проигрыватель, который бы работал со средней частотой декодирования 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 кБайт на всё про всё...
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  3. #13
    Master Аватар для Surfin_Bird
    Регистрация
    03.02.2005
    Адрес
    г. Минск, Беларусь
    Сообщений
    863
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Офигенная вещь! РУЛЕЗ!

    Пропустил в своё время

    А что если сделать, чтобы с СД диска играло? Тогда можно будет такую частоту забадяжить?

  4. #14
    Guru Аватар для AAA
    Регистрация
    06.04.2005
    Адрес
    Земля, Москва, Марьино
    Сообщений
    21,509
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    16 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А это не чище звучит ?
    Демка польская, называлась MIX #2.
    Вложения Вложения
    • Тип файла: zip 1.ZIP (36.6 Кб, Просмотров: 384)

  5. #15
    Veteran Аватар для GriV
    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию нет не чище

    там просто подобрали сам исходный сэмпл, чтобы он получше звучал - но в целом звучание хуже. Я тут же просмотрел исходники - кто видел мою статью про звук на ZX и тоже посмотрит тот поймёт что там налицо недостатки - циклы на регистрах (DEC C JR NZ,$-1) ну и т.д.

    Мой же алгоритм даёт очень чистое звучание, при том что там таких жутких медленных конструкций нет вообще, там такт цикла составляет 1 nop (т.е. 4 такта).

    И ещё, в этой демке не указано каким способом пережимали это дело для спекка, вполне возможно что там использовали ущербный Error Diffusion, который однако кое-как но работает

    Счаз я над одним жутко быстрым алгоритмом работаю... но тут памяти просто под ноль не хватает... не знаю что делать... Самплы выложу как нить...
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  6. #16
    Veteran Аватар для GriV
    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Surfin' Bird
    Офигенная вещь! РУЛЕЗ!


    Цитата Сообщение от Surfin' Bird
    Пропустил в своё время

    А что если сделать, чтобы с СД диска играло? Тогда можно будет такую частоту забадяжить?
    Не понял, ещё раз как с CD?
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  7. #16
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #17
    Master Аватар для Surfin_Bird
    Регистрация
    03.02.2005
    Адрес
    г. Минск, Беларусь
    Сообщений
    863
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от GriV
    Не понял, ещё раз как с CD?
    Ну, я про это:
    Цитата Сообщение от GriV
    чисто теоретически (на самом деле просто ломает меня прогу писать) можно написать декодер-проигрыватель, который бы работал со средней частотой декодирования 233,333 Гц = 233 кГц - это почти что винилка (спектрум по качеству приближается к винилке... CD-audio отдыхает ), соответсвенно можно и кодер на паскале переписать, однако вот здесь такой есть расчёт - 1) Это непакующий кодер 2) В связи с этим его время работы для всей 256кБайт памяти скорпиона есть чтото около 8-9 секунд .
    Насколько понял, то проблема в том, что памяти слишком мало? А что если с CD подгружать всё время?

  9. #18
    Veteran Аватар для GriV
    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Surfin' Bird
    Ну, я про это:

    Насколько понял, то проблема в том, что памяти слишком мало? А что если с CD подгружать всё время?
    Если это можно сделать без участия проца... )) то пожалста, тока как такое без участия проца можно сделать ума не приложу ))

    Если кто на реальном спекке запускал, заметят, что там вначале идёт треть диска в память - это почти 30 секунд - потом только начинается вопроизведение - те же 30 секунд в первом сампле и минута во втором...

    Тут именно что не получится грузить, для видео дискретность при загрузке не так сильно заметна, а вот для аудио к несчастью очень...
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  10. #19
    Veteran Аватар для GriV
    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Unhappy

    Цитата Сообщение от Surfin' Bird
    Ну, я про это:

    Насколько понял, то проблема в том, что памяти слишком мало? А что если с CD подгружать всё время?
    Ещё есть такой вариант, что имеются какие то данные которые подаются в порт - чтобы их без управления (по крайней мере постоянного) можно было их оттуда снимать (простой командой IN A,(port)), так тоже можно - так даже будет прощё - потому что работать с таким потом удобней - не надо за границами памяти следить - а прога на прерываниях репает опрос клавиатуры - тогда вообще класс. Но сомнительно чтобы всё было так просто...
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  11. #20
    Banned Аватар для Orionsoft
    Регистрация
    04.04.2005
    Адрес
    Санкт-Петербург
    Сообщений
    975
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    GriV ты молодец !

Страница 2 из 7 ПерваяПервая 123456 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •