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

Notices

Reply
 
LinkBack Thread Tools Display Modes
Old Jun 26, 2008, 01:03 PM   #1 (permalink)
Maximilyan
DriverHeaven Newbie
 
Join Date: Aug 2005
Posts: 15
Maximilyan is on a distinguished road

Linux

как я понимаю, для линуха такой радости не будет. зато в алсе есть редактор дсп для креативных плат. вопрос такой: можно ли как-то перекомпилить по крайней мере эффекты под алсу? всё равно код-то должен быть один (ибо для проца звуковухи).
зы: что можно - это понятно, только как?
Maximilyan is offline   Reply With Quote
Old Jun 26, 2008, 10:29 PM   #2 (permalink)
Max M.
d/h member-shmember
 
Max M.'s Avatar
 
Join Date: Dec 2002
Location: from the edge of the deep green sea
Posts: 2,170
Max M. is on a distinguished road

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

Ну и плюс ко всему - еще трудность - код для проца оно главное но не единственное - для большинства эффектов нужна еще и обвязка для расчета всяческих там коэффициентов/шмициффиентов и прочего (то что в kX делается через плагин дллку для микшера) - а вот в алсе ничего такого похожего нету (ну вернее эта часть там совсем в зародыше) - это тоже писать надо...
__________________
Max M. is offline   Reply With Quote
Old Jun 27, 2008, 05:14 AM   #3 (permalink)
Maximilyan
DriverHeaven Newbie
 
Join Date: Aug 2005
Posts: 15
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, 06:19 AM   #4 (permalink)
Max M.
d/h member-shmember
 
Max M.'s Avatar
 
Join Date: Dec 2002
Location: from the edge of the deep green sea
Posts: 2,170
Max M. is on a distinguished road

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

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

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

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

Last edited by Max M.; Jun 27, 2008 at 06:29 AM.
Max M. is offline   Reply With Quote
Old Jun 27, 2008, 01:28 PM   #5 (permalink)
Maximilyan
DriverHeaven Newbie
 
Join Date: Aug 2005
Posts: 15
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 27, 2008, 09:37 PM   #6 (permalink)
Max M.
d/h member-shmember
 
Max M.'s Avatar
 
Join Date: Dec 2002
Location: from the edge of the deep green sea
Posts: 2,170
Max M. is on a distinguished road

Ну а что 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 04:54 AM.
Max M. is offline   Reply With Quote
Old Jun 29, 2008, 03:13 PM   #7 (permalink)
Maximilyan
DriverHeaven Newbie
 
Join Date: Aug 2005
Posts: 15
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, 08:08 AM   #8 (permalink)
Max M.
d/h member-shmember
 
Max M.'s Avatar
 
Join Date: Dec 2002
Location: from the edge of the deep green sea
Posts: 2,170
Max M. is on a distinguished road

я тут решил себе присвоить удовольствие от написания конвертилки
бинарик и исходнички тут: k2a Download
потом, как будет время - напишу что к чему, ну и коментарии какие...
__________________
Max M. is offline   Reply With Quote
Old Jul 1, 2008, 01:12 PM   #9 (permalink)
Maximilyan
DriverHeaven Newbie
 
Join Date: Aug 2005
Posts: 15
Maximilyan is on a distinguished road

Quote:
Originally Posted by Max M. View Post
я тут решил себе присвоить удовольствие от написания конвертилки
Нехороший человек . Я даже ещё и не начинал... Ща посмотрим, что где есть...
Maximilyan is offline   Reply With Quote
Old Jul 1, 2008, 01:21 PM   #10 (permalink)
Maximilyan
DriverHeaven Newbie
 
Join Date: Aug 2005
Posts: 15
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

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Linux And All The Choices - Information To Help DasFox Linux Operating Systems 3 Apr 8, 2007 06:21 PM
Starting off with Linux: Where to get it, what you need to start off with it md5 Linux Operating Systems 1 Sep 6, 2005 03:39 PM
Random Freezing simonau Linux Radeon Display Drivers 0 Apr 19, 2005 04:13 AM
Novell Releases First Commercial Linux Featuring 2.6 Kernel Driver 7 News 0 Mar 18, 2004 04:07 AM
Heavy hitters to dominate LinuxWorld Zardon News 0 Jan 20, 2003 04:41 PM




 

 
Powered by: vBulletin
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Artwork by Allan 'Zardon' Campbell, vBulletin implementation by Craig '5320' Humphreys based on original artwork by Ratchet.

All times are GMT -5. The time now is 12:25 AM. Copyright ©2008 DriverHeaven.net