Page 33 of 66

Re: sound, SB, AC97 и другое

Posted: Thu May 08, 2008 11:09 am
by Nable
to Serge
В последнем твоём последнем посте пункт 2 - ответ на мой вопрос и на твой же пункт 1.
Кстати разгадка возможностей SB по частоте оказалась простой - дело в том, что моя карточка OPTi16 не определяется в DOS и Колибри (будет время - пофиксю, сейчас не до того), только в винде, и я использую ESS1869, которая не SB16 (что соответствует DSP v4 и выше), а SBPro (DSP v3.1). Если есть SB16, то частота задаётся напрямую - т.е. мы записываем ровно ту частоту, которая нужна, далее уже проблемы самого DSP, как он это будет переваривать, в случае с более старыми, т.е. например SBPro, частота задаётся с помощью так называемых Time Constants, считается эта константа так:
(65536-256000000/(Rate*Channels))shr 8, или после упрощения
256-1000000/(Rate*Channels), где Rate - частота, Channels - 2 или 1 если соответственно стерео или моно, это я всё к тому, что если сказано, что карточка в любом режиме умеет 44кГц, то значит в стерео она должна принимать пары байтов с частотой 44кГц, значит в моно (я ведь для упрощения в задачи сначало в моно режиме воспроизвожу) она может принимать аж с частотой 88кГц. Это так для интереса.
Что куда важней - я скачал последнее ядро с SVN'а - ведь в нём ты пофиксил баг, а оно не грузится - ошибка в данных начального загрузчика, пересобрал из исходников - те же дела. В принципе у меня такое уже бывало с ядром 600каким-то, но 769 работает нормально. Гружу с помощью MTLDR, взятого из дистра 0710 из img образа в корне диска.

Re: sound, SB, AC97 и другое

Posted: Thu May 08, 2008 4:04 pm
by Serge
Я не пользуюсь MTLDR. Гружу ядро с флешки (эмуляция FD).

Re: sound, SB, AC97 и другое

Posted: Thu May 08, 2008 10:49 pm
by shurf
Nable
Что куда важней - я скачал последнее ядро с SVN'а - ведь в нём ты пофиксил баг, а оно не грузится - ошибка в данных начального загрузчика, пересобрал из исходников - те же дела.
Я правил код загрузчика в релизе 795. Загрузку с помощью MTLDR не проверял. Проверю.

Re: sound, SB, AC97 и другое

Posted: Sat May 10, 2008 6:22 pm
by Nable
Забейте на загрузку - этот баг проявляется только если я из под Колибри копирую новое ядро на рамдиск и затем перезапускаю ядро (Ctrl+Alt+F12, Home), да и то не всегда.

Re: sound, SB, AC97 и другое

Posted: Tue May 20, 2008 3:04 pm
by Nable
to Serge
Я наконец-то раздобыл SB16, но для 16битного звука нужен 16битный DMA канал. БИОС назначил канал 5, использую его - карта долю секунды хрюкает, после чего система виснет. Я предполагаю, что дело в ядре, не так ли? Как это обойти? 8 бит - не вариант, драйвер не успевает преобразовать 16бит от микшера.

Re: sound, SB, AC97 и другое

Posted: Tue May 20, 2008 6:14 pm
by Serge
Надо смотреть код.

Re: sound, SB, AC97 и другое

Posted: Thu May 29, 2008 2:14 pm
by Nable
to Serge
Hi! I've finally found time to go into Internet!
Here is my fully working version of the driver! In this first release only SB16 and newer cards are supported, SBPro and SB2.0 support would be added later (if I'll time).
Serge, test this at your machine first, please. It works on my real computer, but I didn't tested it anywhere else, so I am counting on you. If you find it working - then say this to other users, please.

In the archive:
kernel.mnt - my patched kernel that doesn't reserve IRQ5
sndblstr.txt - it is the best of all documentation for SB cards
s*.zip - C sources (not my) that I used to look at real code that makes SB work
Nable\Readme.txt - my small readme
Nable\SOUND - compiled driver. Rename it to sound.obj and put to /sys/drivers
Nable\*.asm,*.inc - my source code. I don't pretend for anything. But I think that it'll better if I'll modify this code if needed, not everybody. If many people modify the same code at the same time it's becoming difficult to understand how does it work.

Re: sound, SB, AC97 и другое

Posted: Fri May 30, 2008 1:19 pm
by Leency
У меня не заработало, но возможно (скорее всего) моя система вообще не поддерживает SB.
Характеристики моего компа у меня в профиле.

Re: sound, SB, AC97 и другое

Posted: Fri May 30, 2008 3:29 pm
by Serge
Nable

Работает !

Железа у меня нет, проверял в Qemu и VirtualPC. В Qemu звук идёт с треском хотя загрузка проца 20-30% наверное это проблема с эмуляцией.
В VirtualPC звук почти отличный. Тестовая mp3 загрузила проц на 5%. Жаль что в остальном VPC глючный.

Re: sound, SB, AC97 и другое

Posted: Fri May 30, 2008 4:36 pm
by Serge
Подправленый плеер. Предыдущий иногда "проглатывал" конец файла.

Re: sound, SB, AC97 и другое

Posted: Fri May 30, 2008 10:53 pm
by Serge
Nable

Все здорово работает. Надо ещё сделать MASTERVOLUME. Громкость задаётся как в DirectSound (затухание в сотых dB от -10000 то есть -100dB полная тишина до 0 - максимальная громкость). Как я понял в SB 16 уровней громкости, только неясно где максимум: 0 или 15.

Re: sound, SB, AC97 и другое

Posted: Sat May 31, 2008 10:55 am
by Nable
Leency
На твоём компе не может быть SB карты - это ISA устройство, а слоты расширения ISA есть только вплоть до i686. Я правда читал про чипсеты, эмулирующие SB, но сейчас таких не делают.

Serge
Понял, т.е. sb_master_vol=((int)((MASTERVOLUME+10000)/10000*16)) and 0xF.
Максимум - 15. Есть такой момент, что у SB встроенный миксер, поэтому кроме

Re: sound, SB, AC97 и другое

Posted: Sat May 31, 2008 1:00 pm
by DmitrySokolowsky
К сожалению, у меня система с этим ядром при запуске перезагружается...

Re: sound, SB, AC97 и другое

Posted: Sat May 31, 2008 2:29 pm
by Serge
Nable

Надо умножать на 15 иначе при максимуме сбросится в ноль.

Re: sound, SB, AC97 и другое

Posted: Sat May 31, 2008 4:55 pm
by Nable
Serge
Да я и сам понял, что на 15, только очень спешил, даже до конца пост не дописал. А сказать я тогда хотел следующее - master volume это конечно хорошо, но что делать с остальными регистрами миксера - pcm out volume, aux volume, cd volume...