ZXNet эхоконференция «music.zx»


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



от: Surfin' Bird
кому: All
дата: 08 Nov 2005
Hello, GriV

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

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

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

от: alexeenko
кому: All
дата: 09 Nov 2005
Hello, Corpsegrinder

А это не чище звучит ?
Демка польская, называлась MIX #2.

Файл: 1.ZIP http://zx.pk.ru/attachment.php?attachmentid=1909

от: Surfin' Bird
кому: All
дата: 12 Nov 2005
Hello, GriV

Gri> Hе понял, ещё раз как с CD?

Hу, я про это:

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

Hасколько понял, то проблема в том, что памяти слишком мало? А что если с CD
подгружать всё время?

от: Valery Grigoriev
кому: All
дата: 12 Nov 2005
Hello, Surfin' Bird

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

;)

Sur> Пропустил в своё время:(
Sur>
Sur> А что если сделать, чтобы с СД диска играло? Тогда можно будет такую
Sur> частоту забадяжить?

Hе понял, ещё раз как с CD?

от: Valery Grigoriev
кому: All
дата: 12 Nov 2005
Hello, Surfin' Bird

Sur> Hу, я про это:
Sur>
Sur> Hасколько понял, то проблема в том, что памяти слишком мало? А что
Sur> если с CD подгружать всё время?

Если это можно сделать без участия проца... ;))) то пожалста, тока как такое
без участия проца можно сделать ума не приложу ;)))

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

Тут именно что не получится грузить, для видео дискретность при загрузке не так
сильно заметна, а вот для аудио к несчастью очень...

от: Valery Grigoriev
кому: All
дата: 12 Nov 2005
Hello, Surfin' Bird

Sur> Hу, я про это:
Sur>
Sur> Hасколько понял, то проблема в том, что памяти слишком мало? А что
Sur> если с CD подгружать всё время?

Ещё есть такой вариант, что имеются какие то данные которые подаются в порт -
чтобы их без управления (по крайней мере постоянного) можно было их оттуда
снимать (простой командой IN A,(port)), так тоже можно - так даже будет прощё -
потому что работать с таким потом удобней - не надо за границами памяти следить
- а прога на прерываниях репает опрос клавиатуры - тогда вообще класс. Hо
сомнительно чтобы всё было так просто...

от: Orionsoft
кому: All
дата: 12 Nov 2005
Hello, GriV

GriV ты молодец ! :)

от: Сергей Данилов
кому: All
дата: 14 Nov 2005
Hello, CityAceE

Еще в Born Dead 2 [http://trd.speccy.cz/press/borndead/BORN_02.ZIP] было про
это, с демонстрацией.

от: Valery Grigoriev
кому: All
дата: 17 Nov 2005
Hello, GriV

P.P.S. Hе хочу забегать вперёд... но я почти закончил ещё более
производительный алгоритм, правда я пока семплы не сделал для него - собрал
только декодер. Когда кодер соберу и отлажу выложу... по всем замашкам это
будет просто отличное звучание... У меня была в разработке более
производительная в смысле скорости (почти в 1,5 раза быстрей!) схема,
аналогичная приведённой двумя постами выше, однако 4-5 секунд звучания (на 256
кб!) я думаю мало кого устроят - просто невозможно отличить уровень звучания от
предыдущего варианта - поэтому я даже не стал её развивать.

от: Марк Антонов
кому: All
дата: 09 Oct 2006
Hello, GriV

Респект. здраво.
но можно попробовать замутить загрузку с HDD в реалтайм - будет не сильно
отличаться от переключения банков (анрил кстати умеет мулить хдд).
а если извратиться то и одновременно с загрузкой с флопа! (вариант -
кэш+турбомод)

от: TomCaT
кому: All
дата: 09 Oct 2006
Hello, The Exploited

нет, руль безвопросный. Особенно, когда памяти 1м.

А если скорость работы с хардом действительно несмертельна для звука, то
результат мог бы выйти убойный наповал. Hо тут все тки DMA нужОн, наверное...

от: Марк Антонов
кому: All
дата: 28 Oct 2006
Hello, TomCaT

не качаются

от: Рустам Тимербаев
кому: All
дата: 29 Oct 2006
Hello, The Exploited

Угу, не качаются. Проверь.

от: яковлев антон
кому: All
дата: 29 Oct 2006
Hello, The Exploited

угу, ссылки сдохли... :(

от: Valery Grigoriev
кому: All
дата: 10 Nov 2006
Hello, Savage

Виноват, но не я.
Моё доменное имя дурит - вроде регистрацию прошёл, почта ходит (MX запись
работает) а NS почему-то не резолвится. Заменяйте указанные ссылки вместо
http://say.da.ru/ на http://grivalera.da.ru/

P.S. Вроде исправлял и так и эдак, не понятно почему не работает. При тех же
настройках grivalera.da.ru работает...

P.P.S. Через сутки после этого сообщения должно всё работать по приведённым
адресам, кажется нашёл я причину того, что линки глючат...

от: Valery Grigoriev
кому: All
дата: 11 Nov 2006
Hello, Orionsoft

Сейчас витает у меня одна идея... скорей похожая на бред.
Смысл такой - самая "дибильная" команда во всех кодерах - это переход на
следующий цикл вывода.

Т.е. Либо оно выглядит так:
Out (c),X
Ret - аж целых десять тактов при 12 вывода

либо
Out (c),X
.. - здесь какие то вычисления для перехода, что по определению больше или
равно 4 тактам
Jp (HL) - ещё 4 такта, итого 8

Вот я долго думал как избавиться - и пришёл к единственному выводу - это просто
убрать Ret.

:-D

Теперь вывод звука идёт без Ret!

А для этого программа кодер генерирует готовый Z80 код - т.е. команды типа Out
(c),X NOP и прочие для забивки тактами для тактовых промежутков:

Out (c),d ; подъём динамика
Nop ; задержка 4 такта, пока не займёт нужное положение
Out (c),c ; опускание
Inc hl ; пауза 6 тактов, hl вообще никак не используется - только регистры С и
D пользуются популярностью
Out (с),d ; здесь сразу после подъёма должно идти опускание без паузы
Out (c),c ; оно и есть
Nop
Nop ; пауза 8 тактов на опускание
Out (c),d ; очередной подъём
и т.д. - именно такое будет генерировать программа кодер

Единственное, что меня сдерживает - что этот код будет жутко неоптимальный -
около 2-3 секунд проигрывания на всё тело в памяти около 1 метра - зато он
будет максимально точный. Кроме того, в отличие от предыдущих версий он имеет
возможность (по крайней мере теоретически) распаковываться после загрузки, т.е.
фактически полный диск займёт около 20-30 секунд звучания, после каждой
отгрузки будет распаковка в память и само проигрывание.

Ага, чуть не забыл
Фишка в том, что почти все предыдущие (кроме песни бабы яги) самплы были в
постоянным размером цикла, тут нет. Тут раземр цикла непостоянен, зато очень

Т.е. дискретность следующая:
Первый вывод в порт, поэтому само собой длина при длительности размера цикла
равной 1 равна 12 тактам - Out (c),X
Длительность цикла при размере 2 - 16 тактов - Out (c),X и Nop
и далее идёт добавление под два такта -
3 размер - 18 тактов
4 - 20
5 - 22
6 - 24 и т.д., причём так как генерируется готовый код, то ограничений по
размеру цикла нет - хоть 493859836986й размер ((((((-; Огромные промежутки (они
возможны только теоретически, практически они просто не встречаются) можно
кодировать даже командами циклов типа ld b,12 djnz $

от: Марк Антонов
кому: All
дата: 11 Feb 2007
Hello, GriV

далеко не у всех такты по М1 округляются на реале...




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Вступление - я обращаюсь К Вам с голубого экрана Вашего телевизора или видео монитора!
Застрял ? - Описание игры "Venturama".
Софт - глюки Monster Commander.
Письма читателей - Первые отклики читателей о журнале: Роман Рублаченко, Вячеслав Садоненко, Impetus Led.
От автора - проходит лето...

В этот день...   21 декабря