|
|||||||
| In Russian Discussion in the Russian Language |
![]() |
|
|
Thread Tools |
|
|
#1 | |
|
DriverHeaven Newbie
Join Date: Mar 2007
Posts: 8
Rep Power: 0 ![]() |
Частичный обход MasterVolume - ЛЕГКО!!!
Доброго времени суток!
Необходима помощь в простом вопросе. Хочу сделать чтобы на моей SB Live 5.1(emu10k) на одном из выходов всегда бы было 100% громкости и регулировка MasterVolume его не затрагивала (нужно для выхода звука на телек). Я попытался просто подправить код epilog в DSP, но при компиляции получил error S100: unknown character '(' На форуме прочел: Quote:
Можно ли мой вопрос решить стандартными средствами DSP не прибегая к написании на с++ собственных плагинов? Last edited by serg_ssa; Mar 16, 2007 at 12:20 PM. Reason: сам догадайся |
|
|
|
|
|
|
#2 |
|
h/h member-shmember
Join Date: Dec 2002
Location: Evil Empire
Posts: 2,640
Rep Power: 69 ![]() ![]() ![]() ![]() ![]() ![]() |
>Можно ли мой вопрос решить стандартными средствами DSP
ну... как вариант: отказаться от использования master в принципе (то есть оставить его по дефолту и забыть что такой вообще существует). а уровни крутить соответсвенно повесив перед эпилогом отдельные регуляторы в любой нужной конфигурации Last edited by Max M.; Mar 14, 2007 at 05:55 PM. |
|
|
|
|
|
#3 |
|
DriverHeaven Newbie
Join Date: Feb 2007
Location: Ukraine
Posts: 6
Rep Power: 0 ![]() |
Можно. Например так - вместо стандартного Epilog`а повесь k1lt из набора PRO FX - у тебя вообще мастер секция пустая будет :-) Назначь соответствующие выхода, а входа скоммутируй как тебе надо например через MX6. Это как вариант можно и по другому исхитрится. Пробуй, в конце концов всегда можно сбросить настройки и вернутся в стандарт... :-)
|
|
|
|
|
|
|
|
|
DriverHeaven Newbie
Join Date: Mar 2007
Posts: 8
Rep Power: 0 ![]() |
Quote:
![]() Проблема в том, что у меня мультимедийная клава, с которой громкость всегда все и меняли. А колонки у меня Sven (большие такие с регулятором громкости на тыльной стороне правой колоноки) и расположены сверху в труднодоступном месте. Поэтому сейчас в игрухах громкость регулировать не получается ПРОСТО НИКАК!!! ((((( Нужно срочно что-то делать либо менять k1lt на epilog, чего не очень охота. ЗЫ. Достал VC6. Demo откомпилировал. Думаю ее подправить так, чтобы регулировала только выходы (для начала только Anog Rear) в соответствии с уровнем MasterL и MasterR. Те хочу чтобы основной микшер системы был завязан на Demo. Возможно ли сие?
__________________
<NULL> |
|
|
|
|
|
|
#5 |
|
h/h member-shmember
Join Date: Dec 2002
Location: Evil Empire
Posts: 2,640
Rep Power: 69 ![]() ![]() ![]() ![]() ![]() ![]() |
>Те хочу чтобы основной микшер системы был завязан на Demo. Возможно ли сие?
нет. тебе надо именно взять исходники эпилога и править его (можно просто вытащить его в отдельную папку и компилировать в отделную дллку по типу демо) >чтобы регулировала только выходы (для начала только Anog Rear) в >соответствии с уровнем MasterL и MasterR Не, мастер уровень регулируется напрямую драйвером - тебе соответсвенно надо найти в коде эпилога о место где этот мастер уровень применяется к тому выходу (da_epilog.cpp) который ты хочешь переделать и заменить там MasterL/MasterR на 0x7FFFFFFF. |
|
|
|
|
|
|
|
|
DriverHeaven Newbie
Join Date: Mar 2007
Posts: 8
Rep Power: 0 ![]() |
Quote:
Code:
#define EPILOG_SOURCE
#include "legacy/prepare.h"
begin_microcode("epilog");
#include "da_epilog.cpp"
end_microcode();
#include "legacy/process.h"
begin_microcode("epilog");
#include "da_epilog.cpp"
Это и понятно, ведь не обрабатывается код в da_epilog.cpp Code:
control_gpr(MasterL,0x7fffffff,"MasterL");
input(out0,"out0");
control_gpr(out0vol,0x20000000,"out0vol");
OP(MACS,tmpl,C_0,out0,out0vol);
OP(MACS,tmpl,C_0,tmpl,MasterL);
OP(MACINTS,KX_OUT(0),C_0,tmpl,C_10);
Эти макросы бы каким-то образом получить, чтобы понять каким собственно образом происходит общение плагина с драйвером для регулирования уровня системного миксера. Можно конечно и в плагине отслеживать сообщения MM_MIXM_LINE_CHANGE / MM_MIXM_CONTROL_CHANGE и вызывать GetVolume, SetVolume и т.п. Но это уже будет совсем "НЕ АЙС"
__________________
<NULL> |
|
|
|
|
|
|
|
|
DriverHeaven Newbie
Join Date: Mar 2007
Posts: 8
Rep Power: 0 ![]() |
Свершилось!
Оказалось что прикрутить миксер системы можно ооочень просто, причем на любой плагин со слайдерами! В консоле KX есть команда ma, которая за это и отвечает. (спасибо Russ!) Я на свой 4-х канальный регулятор (стоит перед k1lt) повесил регулировку двух стеревыходов через системный миксер, а два остальных выхода регулируются только через плагин (что мне и было нужно). Всем громаднейший респект и спасибо форуму за поддержку!!!
__________________
<NULL> |
|
|
|
|
|
#8 |
|
h/h member-shmember
Join Date: Dec 2002
Location: Evil Empire
Posts: 2,640
Rep Power: 69 ![]() ![]() ![]() ![]() ![]() ![]() |
>В консоле KX есть команда ma, которая за это и отвечает. (спасибо Russ!)
ага, я как-раз вчера вспомнил - не успел написать... ![]() кстати - они, эти настройки через ma, сохраянются при перезагрузке? |
|
|
|
|
|
|
|
DriverHeaven Newbie
Join Date: Mar 2007
Posts: 8
Rep Power: 0 ![]() |
Нет не сохраняются, но это просто решается запуском при автозагрузке коммандного файла вместо стандартного ярлычка kxmixer.exe
Code:
kxmixer.exe --startup --once kxctrl.exe -ma 0 stVol vol1 vol2 0x7FFFFFFF kxctrl.exe -ma 4 demo volL1 volR1 0x7FFFFFFF start kxmixer.exe Одно неудобство при этом всеже имеется, но это относится также и ко всем другим плагинам. Вопрос в синхронизации регистров микрокода и контролов плагина. Напр. происходит изменения одного из регистров в микрокоде (значения уровня громкости или параметра "DOO" как в k1lt), вызванного вне диалога плагина. В этом случае соответствующие слайдеры диалога плагина свое значение не меняют. Но при этом его меняют если диалог закрыть и снова открыть. Сейчас пытаюсь победить через событие ON_WM_TIMER
__________________
<NULL> |
|
|
|
|
|
#10 |
|
h/h member-shmember
Join Date: Dec 2002
Location: Evil Empire
Posts: 2,640
Rep Power: 69 ![]() ![]() ![]() ![]() ![]() ![]() |
>вопрос в синхронизации регистров микрокода и контролов плагина.
ну это естественно |
|
|
|
![]() |
| Thread Tools | |
|
|