Просмотр полной версии : Изменение темпа AY музыки
Aprisobal
24.07.2006, 01:33
Совсем не разбираюсь в плеерах AY музыки. Возможно ли в них реалтайм изменять темп? Конкретно плеер PT3. Самостоятельно нашел только то, куда(адрес плеера+$463/$464 (это LD A,3)) заносится значение темпа при инитиализации плеера, но просто изменение этого значения при проигрывании музыки ничего не меняет.
ну можно вызывать реже или чаще одного раза за инт например :)
SAM style
24.07.2006, 10:34
Я так как-то делал, причем не только с PT3, но еще и с PT2, ST, PSC и ASC. Вернусь с работы - покопаюсь, где там чего.
Проще, конечно, будет как Ronin предложил...
Aprisobal
24.07.2006, 14:01
Я так как-то делал, причем не только с PT3, но еще и с PT2, ST, PSC и ASC. Вернусь с работы - покопаюсь, где там чего.
Проще, конечно, будет как Ronin предложил...Да, проще, но музыка слишком быстро/медленно звучит, нежели изменять темп +-1 в редакторе.
Да, проще, но музыка слишком быстро/медленно звучит, нежели изменять темп +-1 в редакторе.
Иходники pt3 плеера в редакции Alon'a лежат в свободном доступе (вместе с pt3). Так же на сайте Сергея Бульбы ты можешь найти исходник его версии плеера, а также декомпиленые версии всяких pt2, Sqt, Stp и т.д.
проще, но музыка слишком быстро/медленно звучит, нежели изменять темп +-1 в редакторе.
Зато и более точно, ведь давно известно, что иногда музыканты пишут темы в инструментах, а в таком случае появляется жёсткая привязанность к темпу воспроизведения.. и если тупо изменять темп воспроизведения - звук в отдельных каналах поплывёт.. То же саое произойдёт при использоваини музыкантом команд-слайдов..
Опять же.. музыкант может собственноручно изменять скорость из модуля...
SAM style
24.07.2006, 21:29
Если оно ещё надо, то нашёл адреса для плейера PT3.69:
+#462 - тут базовое значение темпа
+#87d - это счетчик (съезжает до 0, потом туда пишется значение из +#462)
Для того, чтобы изменение скорости из модуля не влияло на задуманое, надо постоянно менять +#462 примерно так:
call PLAY
ld a,(player+#462)
sub n для ускорения или add a,n для замедления
; потом проверка, чтобы значение не вылезло за пределы 2-255
; (точно не помню, но слишком быстрый темп плейером вроде не переваривается)
ld (player+#462),aвот как-то так
можно еще перехватывать изменение темпа из модуля - меняется прогой на +#BFA:
ld a,(de)
inc de
ld (+#462),a
ret
Aprisobal
25.07.2006, 10:45
Для того, чтобы изменение скорости из модуля не влияло на задуманое, надо постоянно менять +#462 примерно так:Спасибо! Как раз то, что нужно.
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot