HardwareHeaven.com

HardwareHeaven.com

Looking for the skin chooser?
 
 
  • Home

  • Hardware reviews

  • Articles

  • News

  • Tools

  • Gaming at HardwareHeaven

  • Forums

 

Go Back   HardwareHeaven.com > Forums > Hardware and Related Topics > kX Project Audio Driver Support Forum > In Russian


In Russian Discussion in the Russian Language

Reply
 
Thread Tools
Old Jun 26, 2008, 07:03 PM   #1
HardwareHeaven Junior Member
 
Join Date: Aug 2005
Posts: 24
Rep Power: 0
Maximilyan is on a distinguished road

Linux

как я понимаю, для линуха такой радости не будет. зато в алсе есть редактор дсп для креативных плат. вопрос такой: можно ли как-то перекомпилить по крайней мере эффекты под алсу? всё равно код-то должен быть один (ибо для проца звуковухи).
зы: что можно - это понятно, только как?
Maximilyan is offline   Reply With Quote


Old Jun 27, 2008, 04:29 AM   #2
h/h member-shmember
 
Join Date: Dec 2002
Location: Evil Empire
Posts: 2,640
Rep Power: 69
Max M. is just super!Max M. is just super!Max M. is just super!Max M. is just super!Max M. is just super!Max M. is just super!

ну чтобы совсем автоматом никак - надо либо в ручную сидеть и каждый переписывать (ну там кода-то в среднем 20-30 строчек на эффект)
- ну или проще всего написать конвертилку из одного формата в другой - но это само-собой надо понимать что-там к чему.
(бинарный-то код само-собой одинаковый - только он формируется и там и там на лету уже в в момент загрузки кода в DSP - а промежуточный код ("то во что компилится") разный - вот для этого промежуточного кода и можно написать конвертилку - на сегодня это будет самый простой вариант)

Ну и плюс ко всему - еще трудность - код для проца оно главное но не единственное - для большинства эффектов нужна еще и обвязка для расчета всяческих там коэффициентов/шмициффиентов и прочего (то что в kX делается через плагин дллку для микшера) - а вот в алсе ничего такого похожего нету (ну вернее эта часть там совсем в зародыше) - это тоже писать надо...
__________________
Max M. is offline   Reply With Quote
Old Jun 27, 2008, 11:14 AM Threadstarter Thread Starter   #3
HardwareHeaven Junior Member
 
Join Date: Aug 2005
Posts: 24
Rep Power: 0
Maximilyan is on a distinguished road

Quote:
Originally Posted by Max M. View Post
ну чтобы совсем автоматом никак - надо либо в ручную сидеть и каждый переписывать (ну там кода-то в среднем 20-30 строчек на эффект)
- ну или проще всего написать конвертилку из одного формата в другой - но это само-собой надо понимать что-там к чему.
(бинарный-то код само-собой одинаковый - только он формируется и там и там на лету уже в в момент загрузки кода в DSP - а промежуточный код ("то во что компилится") разный - вот для этого промежуточного кода и можно написать конвертилку - на сегодня это будет самый простой вариант)

Ну и плюс ко всему - еще трудность - код для проца оно главное но не единственное - для большинства эффектов нужна еще и обвязка для расчета всяческих там коэффициентов/шмициффиентов и прочего (то что в kX делается через плагин дллку для микшера) - а вот в алсе ничего такого похожего нету (ну вернее эта часть там совсем в зародыше) - это тоже писать надо...
Это-то всё ясно. Только тут идея ещё была: а если просто сделать дамп в винде, а в линухе его загрузить? У меня вот большая часть эффектов висит и я её не трогаю. Тоесть настроил один раз, и всё. Главное, что меня смущает, это то, что интерфейсы надо будет ко всему делать. Я в винде-то не разбирался как это всё пишется, а в линухе - и подавно.
Maximilyan is offline   Reply With Quote
Old Jun 27, 2008, 12:19 PM   #4
h/h member-shmember
 
Join Date: Dec 2002
Location: Evil Empire
Posts: 2,640
Rep Power: 69
Max M. is just super!Max M. is just super!Max M. is just super!Max M. is just super!Max M. is just super!Max M. is just super!

>а если просто сделать дамп в винде, а в линухе его загрузить?

понимаешь какая штука... (так на вскидку даже и не соображу как объяснить-то)
код зависит от того в какое место он загружен
(и зависит от того что уже было загружено в DSP до этого момента)
то есть можно сделать дамп _всего_ что загружено в DSP и загрузить
- так как бы заработает (но толку особого не будет ибо код этот завязан будет на каиксовское-же назначения входов выходов в алсе они другие - чтобы заработал такой дамп алсовский драйвер должен в точности делать тоже что и kx
(ситуация в общем-то таже что и с обычным x86 кодом - бинарно тоже самое - а "окружение" разное - бинарный дамп "hello world!" для виндов не заработает в другой ос))

Или лучше другими словами даже - деление на эффекты оно чисто логическое
- для самого DSP все загруженные в данный момент эффекты/программы/модули просто один большой кусок кода, который драйвер формирует на лету (по мере того как загружаешь или выгружаешь те или иные эффекты и делаешь всякие соединения) - и там все зависят ото всех - нельзя взять дамп кусочка от каикс и загрузить его в окружающий код от алсы - потому что просто получится неправильный "большой кусок кода" который непойми чего делает...

Или еще по другому:
Грубо говоря если ты загружаешь два одинаковых эквалайзера - то в самом поцессоре это уже будут два разных кода (использущие разные регистры и прочее) - бинарно не одинаковые... поэтому просто так копировать дампы туда-сюда не получится
(даже из kx в kx)
__________________

Last edited by Max M.; Jun 27, 2008 at 12:29 PM.
Max M. is offline   Reply With Quote
Old Jun 27, 2008, 07:28 PM Threadstarter Thread Starter   #5
HardwareHeaven Junior Member
 
Join Date: Aug 2005
Posts: 24
Rep Power: 0
Maximilyan is on a distinguished road

Quote:
Originally Posted by Max M. View Post
можно сделать дамп _всего_ что загружено в DSP и загрузить
- так как бы заработает (но толку особого не будет ибо код этот завязан будет на каиксовское-же назначения входов выходов в алсе они другие - чтобы заработал такой дамп алсовский драйвер должен в точности делать тоже что и kx
(ситуация в общем-то таже что и с обычным x86 кодом - бинарно тоже самое - а "окружение" разное - бинарный дамп "hello world!" для виндов не заработает в другой ос))
Драсте. А com? Если его проавильно закинуть - должен работать хоть где... Экзешники - понятно, у них тот же PE надо перебивать, плюс АПИшные функции. Но ведь всё это можно собрать в кучу? То есть перебить заголовок и импортировать используемые функции в исполняемый файл. Другое дело, что может та же таблица прерываний не совпадать (сразу оговорюсь - в линухе прогал на САМОМ верхнем уровне). Тогда возникает вопрос, какие функции из Кха используют плагины. Я думал, что пишется чисто код для процессора + какой-то интерфейс для настроек.
Maximilyan is offline   Reply With Quote
Old Jun 28, 2008, 03:37 AM   #6
h/h member-shmember
 
Join Date: Dec 2002
Location: Evil Empire
Posts: 2,640
Rep Power: 69
Max M. is just super!Max M. is just super!Max M. is just super!Max M. is just super!Max M. is just super!Max M. is just super!

Ну а что com? вспомни как оно под обоими OS выполняется (фактически под вирутальной машиной, чисто в качестве одолжения от OS - типа кто не спрятался я не виноват (на досуге попробуй запустить com под MacOS например)) (ну не беря в расчет те комы что под голым bios - много-ли там сделаешь?) Ну и в любом случае, аналогии аналогиями, но все-же до определенного предела.

>Я думал, что пишется чисто код для процессора + какой-то интерфейс для настроек.

ну так и есть. я когда писал "чтобы заработал такой дамп алсовский драйвер должен в точности делать тоже что и kx" - не имел ввиду настройки (эта отдельная история) - а чисто вот причины по которым даже бинарный дамп DSP целиком (продолжая аналогии "дамп целиком" как-раз типа com и получается) толком не заработает (не беря в расчет настройки вообще - допустим настроил что надо и больше трогать ничего не нужно). Код в DSP он же не "вещь в себе"
- он же не в вакууме работает.
Во первых - разные входы/выходы из в DSP - физические совпадают само-собой (они не программируются) - то бишь к примеру выход на Line-Out это тот же самый регистр и там и там - ту все ОК, а вот скажем каналы запись/воспроизведение уже зависят от драйвера
- и они разные и там и там. Ну к счастью Wave 0/1 на самом деле совпадут - так что если много не хотеть - а только скажем просто послушать стерео запиcь - тут более менее ОК.
Поехали дальше - "разные уровни" - скажем тот же сигнал при воспр того стерео файла что сверху приходит в дсп под каиксом с уровнем 0.25 (именно этот уровень считается (в каиксе) за 0dB, не суть важно почему). Так вот - я сейчас на вскидку не помню - но допустим в Алсе стандартным уровнем в DSP считается 1.0 - вот и приехали - играть будет но жутко зашкаливать (это легко исправляется - там сям подпатчить - просто это лишь один из примеров - см. ниже)
Дальше, после того как ты загрузил дамп - надо следить чтобы никто (драйвер, утилиты) не лез в DSP там чего-нибудь менять - они ж без понятия что там загружено.
Ну драйвер (альсовский имеется ввиду) - насколько я помню после загрузки изначального кода в дсп больше не лезет - а вот микшеры уже всё кирдык (в лучшем случает не дадут никакого эффекта, в худшем попортят ключевые значения в дампе - получишь треск/тишину/что-нибудь-этакое)
(ну то что с этой историей с дампом ты даже громкость не сможешь поменять - я даже не упоминаю - это само-собой).

Это все мелкие проблемы - потихонечку полегонечку решаются - тут подпатчтить, там подпатчить, можно для дампа на бумажке выписать ключевые регистры - скажем хотя бы тот что регулирует мастер уровень и накидать маленькую утилитку чтобы это крутить (не беда что для разных дампов это все в разных местах может сидеть - то бишь новый дамп -> новая утилитка ) - и так далее и так далее (а я упомянул только те затыки что сразу в голову приходят а сколько еще таких мелочей будет.. о) ну не суть ->
Я то к чему веду - я ж не о том что вариант с дампами в принципе невозможен - вполне себе возможен - но я клоню к тому что даже такой максимально ограниченый подход c "дампом всего" тоже требует кучи мелких левых действий - и в какой-то момент сложность этого (изначально тупикового) метода становится выше сложности "нормального" метода (с разделением на подпрограммы в промежуточном формате) - при это разбираться-то с потрохами так или иначе надо - ну загарузил ты дамп и опс - ничего не произошло - где будешь затык искать?
При том что с дампами ты сидишь на самом низком уровне с черным ящиком на руках.
Вот и вся история.

То бишь я все-равно думаю что (с какой нуля не начинай) - как писал выше "для этого промежуточного кода и можно написать конвертилку - на сегодня это будет самый простой вариант"
(возвращаясь к аналогиям "промежуточный код" - это аля PE/ELF - только намного проще
- каиксовский это вообще C++ текст с массивами - см. da_***.cpp файлы в SDK)
И грузить все это дело стандартными средствами драйвера.
А для тех же "настроек" вполне для начала (чтобы попроще) подойдет промежуточный метод как-раз с дампами (хотя опять с оговорками что это не для любого плагина) - типа kx тебе скидывает текущие значения регистров для текущих настроек для каждого отдельного плагина уже в нормальном "логическом" формате (то есть один-к-одному прописывающемуся в какиксовский же "промежуточный код") - и после конвертации получаешь уже готовый эффект в нормальном формате где эти самый настройки уже вшиты (и дальше открыт путь к углублению/усилению/расширению возможностей)
(кстати в точности по такому ("код в нормальном формате, настройки дампом") методу работают "CLEAX*Reverb" эффекты в kX (в посл версиях) - это изначально не более чем бинарный дамп ревера из креативовского драйра - но код уже сконверченный в каиксовский промформат и с "пресетами" сделанными как просто массивы значений регистров для таких-то и таких-то настроек)

А бинарный дамп кода это не намного проще и тупик полный на самом деле.
(Ну на счет "не проще" - можешь попробовать - для начала надо писать бинарную дампилку для kx и бинарную грузилку для для alsa - просто примерно понять на каком уровне придется вникнуть - функции для этого всего есть и там и там - только не жди что это будет функция аля give_me_nice_binary_dump_of_everything_in_dsp() )

Как-то так вот примерно...
__________________

Last edited by Max M.; Jun 28, 2008 at 10:54 AM.
Max M. is offline   Reply With Quote
Old Jun 29, 2008, 09:13 PM Threadstarter Thread Starter   #7
HardwareHeaven Junior Member
 
Join Date: Aug 2005
Posts: 24
Rep Power: 0
Maximilyan is on a distinguished road

Quote:
Originally Posted by Max M. View Post
Ну а что com? вспомни как оно под обоими OS выполняется (фактически под вирутальной машиной, чисто в качестве одолжения от OS - типа кто не спрятался я не виноват (на досуге попробуй запустить com под MacOS например)) (ну не беря в расчет те комы что под голым bios - много-ли там сделаешь?) Ну и в любом случае, аналогии аналогиями, но все-же до определенного предела.
А плагины используют функции драйвера/операционки ?

Quote:
Originally Posted by Max M. View Post
Во первых - разные входы/выходы из в DSP - физические совпадают само-собой (они не программируются) - то бишь к примеру выход на Line-Out это тот же самый регистр и там и там - ту все ОК, а вот скажем каналы запись/воспроизведение уже зависят от драйвера
- и они разные и там и там.
Даже не подумал бы... %).

Quote:
Originally Posted by Max M. View Post
Поехали дальше - "разные уровни" - скажем тот же сигнал при воспр того стерео файла что сверху приходит в дсп под каиксом с уровнем 0.25 (именно этот уровень считается (в каиксе) за 0dB, не суть важно почему). Так вот - я сейчас на вскидку не помню - но допустим в Алсе стандартным уровнем в DSP считается 1.0 - вот и приехали - играть будет но жутко зашкаливать (это легко исправляется - там сям подпатчить - просто это лишь один из примеров - см. ниже)
Дальше, после того как ты загрузил дамп - надо следить чтобы никто (драйвер, утилиты) не лез в DSP там чего-нибудь менять - они ж без понятия что там загружено.
Ну драйвер (альсовский имеется ввиду) - насколько я помню после загрузки изначального кода в дсп больше не лезет - а вот микшеры уже всё кирдык (в лучшем случает не дадут никакого эффекта, в худшем попортят ключевые значения в дампе - получишь треск/тишину/что-нибудь-этакое)
(ну то что с этой историей с дампом ты даже громкость не сможешь поменять - я даже не упоминаю - это само-собой).
Ну это всё ясно (особенно в свете предыдущего абзаца ).

Quote:
Originally Posted by Max M. View Post
Это все мелкие проблемы - потихонечку полегонечку решаются - тут подпатчтить, там подпатчить
Потом ещё два (дцать ) раза подпатчить... Проще будет переписать плагин...

Quote:
Originally Posted by Max M. View Post
Я то к чему веду - я ж не о том что вариант с дампами в принципе невозможен - вполне себе возможен - но я клоню к тому что даже такой максимально ограниченый подход c "дампом всего" тоже требует кучи мелких левых действий - и в какой-то момент сложность этого (изначально тупикового) метода становится выше сложности "нормального" метода (с разделением на подпрограммы в промежуточном формате) - при это разбираться-то с потрохами так или иначе надо - ну загарузил ты дамп и опс - ничего не произошло - где будешь затык искать?
При том что с дампами ты сидишь на самом низком уровне с черным ящиком на руках.
Вот и вся история.

То бишь я все-равно думаю что (с какой нуля не начинай) - как писал выше "для этого промежуточного кода и можно написать конвертилку - на сегодня это будет самый простой вариант"
(возвращаясь к аналогиям "промежуточный код" - это аля PE/ELF - только намного проще
- каиксовский это вообще C++ текст с массивами - см. da_***.cpp файлы в SDK)
И грузить все это дело стандартными средствами драйвера.
А для тех же "настроек" вполне для начала (чтобы попроще) подойдет промежуточный метод как-раз с дампами (хотя опять с оговорками что это не для любого плагина) - типа kx тебе скидывает текущие значения регистров для текущих настроек для каждого отдельного плагина уже в нормальном "логическом" формате (то есть один-к-одному прописывающемуся в какиксовский же "промежуточный код") - и после конвертации получаешь уже готовый эффект в нормальном формате где эти самый настройки уже вшиты (и дальше открыт путь к углублению/усилению/расширению возможностей)
(кстати в точности по такому ("код в нормальном формате, настройки дампом") методу работают "CLEAX*Reverb" эффекты в kX (в посл версиях) - это изначально не более чем бинарный дамп ревера из креативовского драйра - но код уже сконверченный в каиксовский промформат и с "пресетами" сделанными как просто массивы значений регистров для таких-то и таких-то настроек)

А бинарный дамп кода это не намного проще и тупик полный на самом деле.
(Ну на счет "не проще" - можешь попробовать - для начала надо писать бинарную дампилку для kx и бинарную грузилку для для alsa - просто примерно понять на каком уровне придется вникнуть - функции для этого всего есть и там и там - только не жди что это будет функция аля give_me_nice_binary_dump_of_everything_in_dsp() )

Как-то так вот примерно...
Ну-ну.... ясно. Буду копать в другом направлении. Всем спасибо, особенно тов. Max M.
Maximilyan is offline   Reply With Quote
Old Jul 1, 2008, 02:08 PM   #8
h/h member-shmember
 
Join Date: Dec 2002
Location: Evil Empire
Posts: 2,640
Rep Power: 69
Max M. is just super!Max M. is just super!Max M. is just super!Max M. is just super!Max M. is just super!Max M. is just super!

я тут решил себе присвоить удовольствие от написания конвертилки
бинарик и исходнички тут: k2a Download
потом, как будет время - напишу что к чему, ну и коментарии какие...
__________________
Max M. is offline   Reply With Quote
Old Jul 1, 2008, 07:12 PM Threadstarter Thread Starter   #9
HardwareHeaven Junior Member
 
Join Date: Aug 2005
Posts: 24
Rep Power: 0
Maximilyan is on a distinguished road

Quote:
Originally Posted by Max M. View Post
я тут решил себе присвоить удовольствие от написания конвертилки
Нехороший человек . Я даже ещё и не начинал... Ща посмотрим, что где есть...
Maximilyan is offline   Reply With Quote
Old Jul 1, 2008, 07:21 PM Threadstarter Thread Starter   #10
HardwareHeaven Junior Member
 
Join Date: Aug 2005
Posts: 24
Rep Power: 0
Maximilyan is on a distinguished road

Гыыыы.... код-то прямо...

Quote:
Originally Posted by Max M. View Post
аля give_me_nice_binary_dump_of_everything_in_dsp() )

Maximilyan is offline   Reply With Quote
Reply

Thread Tools