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


тема: Как разделить музыку и звук выстрела для AY?



от: Константин Жуков
кому: All
дата: 05 Oct 2006
Hello, All

Допустим скомпилировал музыку в Sound Tracker PRO или в PRO Tracker. Hо при
проигрывании музыки по одному из каналов необходимо пропустить какой-либо
шумовой эффект. Можно ли заглушить один из каналов мелодии, чтобы он не мешал
эффекту?

от: Алексей Михеев
кому: All
дата: 05 Oct 2006
Hello, Jukov

Juk> Можно ли заглушить один из каналов мелодии, чтобы он не мешал
Juk> эффекту?

по всей видимости, придется модифицировать плеер.

от: Дмитрий Васильевич Терентьев
кому: All
дата: 05 Oct 2006
Hello, cyrax inc

почитай электронный журнал DejaVu номер 10 или 9 там эта тема хорошо раскрыта с
примерами и исходниками, а так же в наличии сборник звуков

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

пропатчить плеер - там в одном месте куча out'ов, маскируешь нужный канал и
выводишь свои данные, но не забывай, что частота шума и огибающей задаётся для
всех 3х каналов. сейчас придуман более прогрессивный метод - использование
TurboSound - один AY как и раньше играет музыку, а второй звуковые эффекты

от: Гаврилов Виталий
кому: All
дата: 06 Oct 2006
Hello, demon_zx

Одно время я даже эквалайзер для AY делал. Правда там без патчения плеера
обходилось- просто считывал данные, менял и тут же их записывал. Задержка
обработки сказывалась жутким треском. Подобный эффект можно заметить в игре
MortalCombat от Codebusters(?)- когда громкость притухает слышен треск.
Отсюда мораль- вместо out'ов надо прописать загрузку в переменные (13 штук), а
потом их обрабатывать после плеера и выводить пачкой. Можно получить полнейшую
власть над звуком:
-регулятор громкости
-смена раскладки каналов (разве что моно не сделаешь)
-эквалайзер (сомнительное счастье, но все же)
-pitch и прочие извращения над тональностью
-вывод своих звуков когда надо

от: Гаврилов Виталий
кому: All
дата: 06 Oct 2006
Hello, key-jee

А еще обнаружил в приложении к последнему InfoGuide архивчик sources.rar и в
нем исходник плеера pt2/pt3, где можно написать свою выводилку в порты- все
данные формируются в массиве. Автор- S.V.Bulba

от: Иван Петухов
кому: All
дата: 06 Oct 2006
Hello, Vitamin

В своё время siril/4d проапгрейдил пт3 плеер (не зная ни формата, ни умея
толком програмировать) добавив в него обработку именно данных из OUT
регистров.. В результате чего в нём повлялась функция смены на лету раскладок
стерео (можно было хоть один единственный канал во всех играть), заглушка любых
каналов, эквалайзер и смена громкостных табличек для эмуляции звучания AY на YM
и наоборот.. Так что ничего очень сложного в этом нет - было бы желание.

от: Александр Шушков
кому: All
дата: 07 Oct 2006
Hello, The Exploited

The> работать не будет

Что именно работать не будет? Плеер трогать не нужно. Hужно написать плеер
звуков.

от: Александр Шушков
кому: All
дата: 07 Oct 2006
Hello, newart

new> Это самое фиговое решение.
new> Ведь наверняка в игре будет возможность отключения эффектов, так вот
new> эффекты отключешь, а музыка по прежнему останется ущербной.
new> Пропатчить плеер это дело 5 минут, написать свой плеер эффектов дело
new> еще нескольких часов.

Кому чего...
Лучше заказать у профи универсальный плеер, который сможет еще и звуки
воспроизводить. Тогда не нужно будет каждый раз изобретать велосипед.

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

axo> Что именно работать не будет? Плеер трогать не нужно. Hужно написать
axo> плеер звуков.

патчить плеер - в любом случае. в оригинале он же все равно всегда, каждое
прерывание пишет все регистры в т.ч. и того канала, который не используется в
мелодии

от: Андрей Богданович
кому: All
дата: 09 Oct 2006
Hello, The Exploited

В зависимости от мелодии выбираешь канал в который лучше выводит звуки (чтобы
мелодия меньше искажалась), потом делаешь CALL player и выводишь аутами свои
эффекты. Предварительно глушить канал смысла особого не вижу, эффекты обычно
короткие и быстро проигрываются.

В коде выглядит это так:

на прерываниях:

CALL MUSIC
CALL SPLAY


Если нужно проиграть эффект делаем так:
LD HL,SOUND1
LD (SONG),HL

Код SPLAY;
┌─-; CODE ───
SPLAY LD HL,(SONG)
INC H
DEC H
RET Z
LD BC,#FFFD
LD A,4
OUT (C),A
LD B,#BF
LD A,(HL)
OUT (C),A
INC HL
LD B,#FF
LD A,5
OUT (C),A
LD B,#BF
LD A,(HL)
OUT (C),A
LD B,#FF
LD A,7
OUT (C),A
INC HL
IN A,(C)
AND #DB
OR (HL)
LD B,#BF
OUT (C),A
INC HL
LD A,#0A
LD B,#FF
OUT (C),A
LD B,#BF
LD A,(HL)
OUT (C),A
INC HL
LD (SONG),HL
LD A,(HL)
OR A
RET NZ
LD (SONG+1),A
(тут проверка включена ли музыка, если да, то Z)
RET Z
XOR A
LD BC,#FFFD
LD A,7
OUT (C),A
IN A,(C)
OR 36
LD B,#BF
OUT (C),A
RET
SONG DEFW 0
SOUND1 DEFB 180,10,32,10 ;ОДИH. КВ.
DEFB 180,10,32,11
DEFB 250,9,32,12
DEFB 250,9,32,13
DEFB 240,9,32,14
DEFB 240,9,32,15
DEFB 230,9,32,15
DEFB 230,9,32,15
DEFB 220,9,32,14
DEFB 220,9,32,13
DEFB 210,9,32,12
DEFB 210,9,32,11
DEFB 200,9,32,10
DEFB 200,9,32,8
DEFB 190,9,32,6
DEFB 190,9,32,5
DEFB 180,9,32,3
DEFB 180,9,32,2
DEFB 0

└── CODE ───

от: Знахарь
кому: All
дата: 18 Nov 2006
Hello, Spectre

вообще это верно... про велосипед... :(

от: Андрей Полиханенко
кому: All
дата: 19 Jan 2007
Hello, The Exploited

The> работать не будет

См. CSC:DejaVu. Там как раз 2-х канальная (2Hьюарт - не ущербная!) музыка с
эффектами на 3-м канале. Ух ты, все работает, надо же!.. :)




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

Похожие статьи:
Hовости - от LDIR'а.
Amiga - Amiga-клуб, вопросы и ответы.
"Дверь" - Зачем нужен модем ?..

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