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 округляются на реале...
|