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

Drivers for sound cards
  • А какой формат 100% должен проигрываться?

    Посмотрел я исходники ядра, где функции Sound Blaster, и не нашел там инициализации карточки. Это делается очень просто. Можно сразу определить правильно ли указанный базовый порт и, заодно, определить версию карточки. Если захотеть, можно даже перебрать все возможные адреса базового порта, тогда в настройках его не надо будет указывать. Я не совсем понимаю, как всунуть инициализацию в ядро, поэтому пока написал маленькую программку под ДОС (лежит здесь: http://e-al.narod.ru/sbinit.htm).

    Было бы неплохо, если в настройках МеОС после указания базового порта, сразу проверялось наличие карточки и выводиоись сообщение найдена она или нет и ее версия.
  • Первый контроллер DMA может работать с памятью после первого мегабайта? Он ведь работает с 20-битными адресами, а в sb16.inc буффер находится за пределами первого мегабайта.

    Code: Select all

    DMAPage          equ   0x2A
    SB16Buffer       equ   0x2A0000 
    
    Еще интересную вещь заметил. Если запустить настройку устройств, а затем SoundBlaster, то в окне настроек строка "MIDI: ROLAND MPU-401 BASE", превратится в

    Code: Select all

    @H        ND MPU-401 BASE".
    
  • Привет народ! Давненько у Вас тут не прогуливался ;)...
    Тема то родная на сей момент, т.к. произвожу смертельную схватку с AC97 кодеками не не на жизнь. Скажу сразу с высоты сего дзена и изрядно высушенных мозгов, что многие высказывания по поводу AC97 некорректны... Даю материал профессионального класса он сам скажет за себя
    http://www.ferra.ru/online/multimedia/20876/
    Итак, вкурив эту статью по самые...э-э-э-э... наконец понимаешь, что AC97 это не карта и не звук и не интерфейс программера. Хотя его можно назвать "внутренним" интерфейсом (я имею ввиду AC-Link )
    между чипсетом южного моста и содека AC97 стандарта.
    К стати сам стандарт, коль уж подчевать...
    http://www.nondot.org/sabre/os/files/So ... onv2.1.pdf
    Да так вот сначала надо поиметь PCI доступ к той функции ЮЖНОГО моста, которая отвечает за это дело, как PCI! Т.е. VIA686 Dev7 Func 5, VIA8233/8235 Dev11h Func 5, а вот IntelЫ балуются как функция Dev 31 Func 5 (ICH0...ICH7). Вот там вычитываются уже БАЗОВЫЕ порты для общения с кодеком AC97 по интерфейсу AC97. Исходя из базы работа с кодеком может быть представлять из себя уже чистые IN EAX, DX; OUT...
    программа-ИСХОДНИК послужившая прототипом к плееру Поддубного (только для Intel!)
    http://www.programmersheaven.com/UserUp ... /23237.zip
    Cуперский проект мирового класса по звуку
    http://www.alsa-project.org/
    попутно почитать рекомендую это (не рассматривать применительно AC97!)
    http://www.ferra.ru/online/supply/17758/
    Успехов!
  • Про ковокс ничего нету :) А последняя статья интересная, у нас была давно идея спектрометр мессбауэровский с звуковой карты запустить, но все както сошло на нет с появлением новых недорогих плат на плисах и пиках.
  • Хочу поделить с вами одним нехорошим глюком,который я уже давно наблюдаю.
    С тех пор,как у меня заработала шина PCI(третий дистрибутив Колибри) я слушаю музыку в Колибри через плеер AC'97 .У меня есть целая папка в которой 2 гигабайта WAV файлов.Испльзуя SYSXTRE я запускаю музыкальные файлы.Ну так вот,давно заметил,что иногда при повторном щелчке на WAV файле(даже после того как WAV файл прослушан,а AC'97 плеер выключен) операционная система замирает.Тоесть:на экране все обездвиживается,клавиатура не работает,мышь не работает(при этом не мигает индикатор жесткого диска).Только перезагрузка через RESET спасает ситуацию.Самое удивительное,что иногда глюк легко повторим,а иногда раз 10 запустишь один и тот же WAV файл прежде чем он появиться.

    Такой глюк возможен только тогда,когда операционная система не возвращается из обработки системного прерывания(я проверял).И приложение,которое является его причиной - это AC'97 WAV плеер.Нужно только понять какая системная функция допускает невозврат.
  • ealex, сорри за задержку. Завтра постараюсь отправить.
    Wildwest
    Зарегистрирован: 18.05.2005
    Сообщения: 160
    Добавлено: Sat Aug 20, 2005 2:30 pm Заголовок сообщения:
    Марату про звуковые карты
    ftp://tirion.ivanco.net/devel/hard/Sound/
  • Странно,на мою тему ноль эмоций...............
  • andrew_programmer
    Ещё не вечер :)
    У меня ещё хуже (ALC650, ICH4): при "горячей" перезагрузке в Менует система подвисает сразу же после попытки запуска плеера, при "холодной" всё в порядке.
  • Запустил звуковушку ESS ES1868 в Колибри! Для этого пришлось до загрузки Колибри запустить досовский драйвер для карточки. Этот же трюк не прошел с Avance Logic ALS4000, она секунду играет и вешает систему.
  • andrew_programmer wrote:иногда при повторном щелчке на WAV файле(даже после того как WAV файл прослушан,а AC'97 плеер выключен) операционная система замирает.Тоесть:на экране все обездвиживается,клавиатура не работает,мышь не работает(при этом не мигает индикатор жесткого диска).Только перезагрузка через RESET спасает ситуацию.Самое удивительное,что иногда глюк легко повторим,а иногда раз 10 запустишь один и тот же WAV файл прежде чем он появиться.
    Такой глюк возможен только тогда,когда операционная система не возвращается из обработки системного прерывания(я проверял).И приложение,которое является его причиной - это AC'97 WAV плеер.Нужно только понять какая системная функция допускает невозврат.
    Скорее всего АППАРАТНОЕ прерывание от кодека остается непогашенным! И далее происходит это в кольце, что и глушит систему. Несмотря на то, что прога не умеет ЕГО испльзовать, это не говорит еще о том, что IRQ не поступает на PIC... Существует общее правило: что ПЕРЕД закрытием программы нужно всегда гамотно "загасить железяку" в соответствии с её прихотями и правилами! Как там в проге-плеере не помню, её статус-зародыш и давно просит доработки, но все симптомы говорят об этом. Т.е. нужно просмотреть доки (исходники, например что ссылал или MPXPLAY, там проще разбираться, да и Intel поддержка AC97 проще и "приятнее" VIA) на предмет CLOSE CODEC AC97! Там обязательно должен быть финт с портами(ну точно скажу, что адрес дескриптора таблицы PCM out надо нулить...), дабы не только остановить проигрывание PCM данных посредством DMA, но и предотсварить их в дальнейшем + возможен доп. RESET кодека для верности. Дело в том, что звук то работает АППАРАТНО и раз проинив ему задачу где брать данные, выдавать + например, в кольце (спец бит). Звук будет крутиться вечно, естественно выбирая САМ(!) из памяти (DMA32) данные без участия проца или проги... Т.е. можно вообще проц остановить... Наряду с этим вернее всего что то гасится, а что то осталось, да еще в тени, т.к. и не подозревается, что оно включалось... ;)
  • VaStaNi,раз ты так хорошо разбираешься в AC'97 чипсетах,то почемубы тебе не доработать плеер и сделать драйвер для AC'97 чипсетов?
  • andrew_programmer, я к данной системе уже давно отношусь лишь созерцательно. Но мне интересно наблюдать за творениями, ходом творческого процесса, тем, направлений, а также успехами и неудачами ребят, отношениями с забугоным "коллегам"... ну и жизненные выводы соответствующие для себя. Вместе с тем я всегда открыт и повернут лицом к людям, которым хоть чем нибудь могу помочь и это распространяется на многие места инета. В данный момент упорно и максимально с профессиональной точки зрения решаю аппаратно-дровные вопросы архитектуры АТ машин (естественно для моего проекта оси). Считаю, что в этом направлении работ (а он многообразный и сложный) НИ ОДИН RU ПРОЕКТ ОС НЕ МОЖЕТ ПОХВАСТАТЬ ХОТЬ ЧЕМ-ЛИБО! И не только RU. В плане данной системы лишь код драйвера Ethernet, говорит о том, что там творил профессионал. А на счет понятия драйвера - никогда не соглашусь с тем, что драйвер и приложение это одно и тоже. Можно конечно и так обзывать, но драйвером оно от этого не станет. Т.к. драйвер это прежде всего стратегия, пересечение технологий, принципов взаимодействия, а результат - не столько сама поддержка той или иной железки, сколько производительность системы, её потенциал... Но это отдельная очень большущая тема разговора, проектирования.
  • А как насчёт драйвера звука для Covox? Я почти написал свой, но возможно кто-то сможет написать быстрее меня. Ведь есть люди, которые более глубже знакомы с ядром чем я.
  • Hater
    До тебя никто о написании драйвера для этого устройства не заявлял.
    К тому же мало у кого оно есть.
    Но ты пиши. Так как:
    1) Кому ни будь, все равно это понадобится. В первую очередь тебе.
    2) Ты получишь свой личный не за какие коврижки не покупаемый опыт, богатство которого у тебя никто и никогда не сможет отнять (кроме смерти).
  • Who is online

    Users browsing this forum: Bing [Bot] and 7 guests