PDA

Просмотр полной версии : Как управлять проигрыванием музыки?



kotsoft
24.09.2010, 18:39
Есть необходимость управлять плейером при проигрывании из своей программы. т.е. получать информацию о номере проигрываемого паттерна-позиции, в нужный момент подставлять нужный паттерн, зацикливать до окончания каког-либо процесса и т.п. Помниться раньше во многих демах это видел.
У кого есть какие соображения по этому поводу?

psb
24.09.2010, 19:29
надо хакать конкретный плеер и патчить.
есть другой вариант: разложить на OUT'ы и зацикливать как угодно (хотя бы ту часть разложить, что надо циклить). но это тоже так или иначе хакинг и патчинг плеера.

jerri
24.09.2010, 23:01
Есть необходимость управлять плейером при проигрывании из своей программы. т.е. получать информацию о номере проигрываемого паттерна-позиции, в нужный момент подставлять нужный паттерн, зацикливать до окончания каког-либо процесса и т.п. Помниться раньше во многих демах это видел.
У кого есть какие соображения по этому поводу?

это сложно
можно просто цифры посчитать для разных моментов и их уже использовать

Vitamin
24.09.2010, 23:28
У кого есть какие соображения по этому поводу?
Берешь исходники плеера нужной версии, анализируешь, вставляешь нужный код. А потом играешь им откомпилированные музоны без плеера.
В некоторых плеерах данные не сразу отсылаются в регистры, а накапливаются в буфере, что дает дополнительное пространство для творчества:)

Destr
25.09.2010, 08:50
А я делал так:
1. Заводим счётчик (который тикает каждый фрейм, т.е. 1/50 секунды или как там схемотехника/эмуль построен)
2. Ловим нужный момент
3. Жестко давим плеер (ну скажем вместо CALL start+5 подпихиваем свой ADR)
4. Потихоньку разбираемся что к чему (программно, т.е. до этого нужно выяснить как плеер работает, конечно)
5. Возвращаем управление.

Изврат?
Ага!
Но работает!
:)

Из минусов - нужно знать ассемблер, не сильно крепко, но достат.кол.
Из плюсов: Ой как можно извращатся (правда это никому не упало, это только самому потешится)

P.S.S. А я тут про TS ещё увидел...
Там тоже непаханое поле экспериментов...

kotsoft
26.09.2010, 18:54
Хм... я думал есть готовое решение... Тогда надо будет ковырять. А плейер от Vortex - трекера естественно интересует)

jerri
27.09.2010, 09:33
Есть же исходники вроде

Vitamin
27.09.2010, 10:59
Хм... я думал есть готовое решение...
Что ты подразумеваешь под "готовым решением"? Вкрячивание в стандартный плеер фич по продвинутому управлению треком в ущерб размеру/скорости работы? 99.99% пользователей плеера этого не оценят.

kotsoft
27.09.2010, 11:21
2jerri: Вот я и спрашиваю, может у кого есть уже правленные исходники.

Вкрячивание в стандартный плеер фич по продвинутому управлению треком в ущерб размеру/скорости работы? 99.99% пользователей плеера этого не оценят.
Блин, на этом форуме что не напиши, все в штыки. Я завел этот топик с одной целью, чтобы узнать, нет ли у народа готового исправленного плейера, ибо во многих демах это уже использовалось. Конечно я могу сейчас сесть, ковырять исходники, патчить-крячить, но зачем тратить время на изобретание велосипеда, если, возможно, уже есть готовое решение. Ну раз нет, извиняйте, топик можно закрыть...

Vitamin
27.09.2010, 11:22
Блин, на этом форуме что не напиши, все в штыки. Я завел этот топик с одной целью, чтобы узнать, нет ли у народа готового исправленного плейера, ибо во многих демах это уже использовалось. Конечно я могу сейчас сесть, ковырять исходники, патчить-крячить, но зачем тратить время на изобретание велосипеда, если, возможно, уже есть готовое решение. Ну раз нет, извиняйте, топик можно закрыть...
Не надо закрывать. Напишешь- выложи сюда:) Можно (нужно!) даже в первый пост.

kotsoft
27.09.2010, 11:23
Окей, договорились)

Sinus
28.09.2010, 14:48
паттерны не зацикливал, но в своих интрошках последних использовал получение текущиего паттерна или какой сэмпл на каком канале играет.

тупо беру бульбовский плеер в исходнике (который pt3/vt), там даже в него влазить не надо особо, всё можно получить из переменных плеера.

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

GM BIT
28.09.2010, 17:40
какой сэмпл на каком канале играет
Подскажи где искать

Vitamin
28.09.2010, 18:46
Подскажи где искать
При входе в метку PD_SAM в аккумуляторе содержится номер семпла.
IX+12 соотвецно равна ChanA/ChanB/ChanC

VNN_KCS
28.09.2010, 21:47
Подскажи где искать
Может и балбес, но никогда не лазил в плеер. Просто делал задержки и всего делов. Ведь не сложно и просто. Да, согласен, что именно при воспроизведении чего-о надо сделать что-то. Но если посидеть и подобрать, то можно. Примитив, но просто.

GM BIT
29.09.2010, 05:06
to Vitamin: выложи сюда исходник плеера

---------- Post added at 05:06 ---------- Previous post was at 05:03 ----------


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

Vitamin
29.09.2010, 09:30
to Vitamin: выложи сюда исходник плеера
http://bulba.untergrund.net/PTxTools.7z

GM BIT
30.09.2010, 12:05
to Vitamin: Подскажи где искать номер позиции-патерна

Vitamin
30.09.2010, 13:04
to Vitamin: Подскажи где искать номер позиции-патерна
{CrPsPtr}-(ModAddr+200) - текущая позиция (из содержимого CrPsPtr отнять адрес компиляции плеера, увеличенный на 200)
Соответственно, {{CrPsPtr}} - текущий паттерн.

GM BIT
30.09.2010, 16:33
CrPsPtr DW 0 - тобишь там адрес памяти патерна а не номер?

Vitamin
30.09.2010, 16:54
CrPsPtr DW 0 - тобишь там адрес памяти патерна а не номер?
Там хранится адрес ячейки, в которой находится номер текущего паттерна. Например:



Positions db 4,3,2,3,255 ;список позиций, живет внутри модуля по смещению 200.
..
CrPsPtr dw Positions+1 ; Pos - 1, Pat = 3