Звук

Тема в разделе "WASM.NT.KERNEL", создана пользователем Novi4ek, 15 янв 2008.

  1. Novi4ek

    Novi4ek New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2007
    Сообщения:
    317
    Где можно почитать/посмотреть примеры работы с вводом/выводом звука в драйвере? Чтиво какое-нибудь не очень сухое..
     
  2. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    Вот пример работы со звуком
    http://www.wasm.ru/article.php?article=drvw2k03

    А вообще советую весь цикл почитать
     
  3. Novi4ek

    Novi4ek New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2007
    Сообщения:
    317
    Мне нужна работа со звуковой картой
     
  4. FatMoon

    FatMoon New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2002
    Сообщения:
    954
    Адрес:
    Russia
    Novi4ek
    под вин нет никакой работы со звуковой картой. Есть создание в памяти некоторого массива с частотами/длительностями, в форматах wav или midi - и потом проигрывание их штатными средствами, через АПИ. Я могу ошибаться (поскольку ни разу это не делал), но вроде бы так :))

    Драйвер - значит надо с Интела мануал по AC'97 или чему-то подобному, там порты, управляющие команды, и прочая-прочая, как раз для драйверописателей. Есть еще подозрение, что для разных звуковых карт разные порты и/или управляющие команды... Логично, что для других звуковых карт надо искать мануалы на сайтах производителей.
    25275101.pdf Intel® 82801EB (ICH5) I/O 82801ER (ICH5R), and 82801DB (ICH4) Controller Hub: AC ’97 Programmers Reference Manual (PRM)

    Содержание:
    1. Introduction
    2. Overview
    3. Intel® ICH5 AC ’97 Controller Theory of Operation
    - 3.1 Intel® ICH5 AC ’97 Initialization
    - 3.2 DMA Engines
    - 3.3 Channel Arbitration
    - 3.4 Data Buffers
    - 3.5 Multiple Codec/Driver Support
    - 3.6 Power Management
    4. Surround Audio Support
    - 4.1 Determine Codec’s Audio Channels
    - 4.2 Enabling Intel® ICH5 AC ’97 Controller Audio Channels
    5. 20-Bits PCM Support
    6. Independent S-P/DIF Output Capability
    7. Support for Double Rate Audio
    8. Independent Input Channels Capability
    9. Intel® ICH5 AC ’97 Modem Driver
     
  5. Novi4ek

    Novi4ek New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2007
    Сообщения:
    317
    я же не собираюсь писать драйвер звуковой платы, я просто хочу работать со звуком в реальном времени с минимальной задержкой между тем временем когда я захотел подать/считать звук и тем временем когда это собственно произойдет (из драйвера). Разве нельзя это как-то сделать, используя уже существующий драйвер звуковой платы?
     
  6. drmad

    drmad New Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    332
    Адрес:
    Russia
    Novi4ek

    Время реакции человеческого мозга на изменение внешней информации - порядка 0.2 сек. Поэтому желание гонятьяся за микросекундами выглядит немножко забавно, если не...

    А нет ли, случайно, желания использовать саундбластер в качестве измерительной карточки, ы?
     
  7. Novi4ek

    Novi4ek New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2007
    Сообщения:
    317
    Ребят, ну зачем этот оффтоп? Я написал то что меня интересует, зачем мне это надо разговор дела не касается.

    Я кстати нашел форум, целиком и полностью посвященный тематике звука в ядре виндоус. если кому интересно могу дать ссылку.
     
  8. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    ссылку в студию!
     
  9. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Novi4ek
    Ещё вроде SI умеет играть звук в ядре. Но ни когда этим сильно не интересовался, юзер мода вполне хватало. Ссылку давай, посмотрим. Может замутим дровину - плейер. Ну а в реальном времени играть звук в винде - это перебор. Современные карты играют его без CPU, через DMA, загрузкой в свою память. А софтварный звук совсем устарел.
     
  10. bugaga

    bugaga New Member

    Публикаций:
    0
    Регистрация:
    1 июл 2007
    Сообщения:
    361
    В открытой библиотеке PortAudio www.portaudio.com , есть фронт-енд сквозного канала (ввод/вывод), использующий KS (kernel streaming). Сия технология, замороченая на COM/WDM/GUID (и прочие мракосаксонские вкусности), использует вызовы DeviceIOControl для прямого доступа к WDM дровам, (коих там целый легион)...

    Кой какая дока есть в KS-Sample (гуглиться на сайте негрософта)
    Пример генерирует только звук, и иногда BSOD :)
     
  11. drmad

    drmad New Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    332
    Адрес:
    Russia
    Это совсем не оффтоп. Звуковые карты и чипы имеют стандартную систему команд и программируются через порты. Быстрей этого просто ничего нет.

    Отсюда и возникло: _зачем_ нужно решать задачу, и корректо ли вообще поставлен вопрос. Тем более, что речь уже пошла про "ядро", "драйвера", "библиотеки", "сквозные каналы" и т.п.
     
  12. Novi4ek

    Novi4ek New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2007
    Сообщения:
    317
    А насколько это вообще хорошо, работать с картой непосредственно через dma/прерывания и т.д. в ОС windows? Нельзя ли добиться схожей производительности, используя какие-то ядерные интерфейсы, которые предлагает microsoft для разработчиков драйверов?
     
  13. Vov4ick

    Vov4ick Владимир

    Публикаций:
    0
    Регистрация:
    8 окт 2006
    Сообщения:
    581
    Адрес:
    МО
    Что ты вообще понимаешь под производительностью звуковой карты?
    У подавляющего большинства карт "производительность" - 44100 отсчётов в секунду по 16 бит по 2(4,5,8... ненужное зачеркнуть) канала(ов). Разгону не поддаётся :derisive:
    Нужна большая частота - паяешь свою плату на сверхбыстродействующем ЦАП, вставляешь в шину и гонишь сигнал хоть с максимальной частотой 600+ МГц (или какая сейчас самая крутая частота шины)
    Для работы со звуком в винде имеется API. Для прямой рабоы с чем-либо нужно найти на него документацию. Соответственно нужны доки по шине\чипсету и собственно устройству, с которым нужно работать.
    Если допустить, что звуковая карта Sound-blaster совместимая (но мне кажется, что её ещё нужно поставить в этот режим) то программировать её несложно и документации по этому делу навалом, в том числе и на руском языке.
     
  14. Novi4ek

    Novi4ek New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2007
    Сообщения:
    317
    Параметры карты меня устраивают, меня интересует скорость общения с ней из драйвера. Это я и понимаю под производительностью.

    Видел я и документацию по программированию саунд бластера и совместимых карт, а теперь плз см. выше...
     
  15. Novi4ek

    Novi4ek New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2007
    Сообщения:
    317
    А как определить какое irq и базовый порт использует звуковая карта?
     
  16. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Novi4ek
    А в чем собственно проблема качаем DDK и разбираемся.

    Можно, берешь и используешь. Только смысла нет. Человеческое ухо не заметит задержки даже если ты будешь подовать команды из приложения.
     
  17. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    Novi4ek
    Сам себе противоречишь
    Вначале заявляешь
    Код (Text):
    1. работы с вводом/выводом звука в драйвере?
    То бишь нужен драйвер
    Далее пишешь
    Код (Text):
    1. я же не собираюсь писать драйвер звуковой платы, я просто хочу работать со звуком в реальном времени...
    То есть хочешь не написав ни строчки ядерного кода работать в реал таймс ... (извинине , ну не бред ли... )
    Далее тебе предложили юзать готовые дрова и даже обращения к дровам средствами API - так нет же... не то.

    Далее мега тупость
    Код (Text):
    1. меня интересует скорость общения с ней из драйвера.
    Вот это как раз и не должно тебя интересовать, так как тебе ж он не нужен (свой драйвер то , сам так сказал что не хочешь писать)
    А готовые написаны грамотными людьми. И скорость общения из драйвера - ну она будет такой, что можно 5 звуковух сразу юзать... (раз уж из приложения можно нормально контроллировать)

    ИМХО не шаришь...
     
  18. Novi4ek

    Novi4ek New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2007
    Сообщения:
    317
    TermoSINteZ, мне ненужен драйвер звуковой карты, мне нужно общение с ним из моего драйвера, что тут непонятного?\

    >>ИМХО не шаришь...

    Это следует из моего ника.
    --------------------------------------------

    А как определить какое irq и базовый порт использует звуковая карта?
     
  19. Badland

    Badland New Member

    Публикаций:
    0
    Регистрация:
    23 дек 2007
    Сообщения:
    6
    Хм... по теме вопрос возник.
    Звучать спикером умею:)) А вот де почитать про то, как заставить звуковуху проиграть определенную частоту при определенной длительности ? :) Драйвер мне не надо :-0 Юзер мода надеюсь будет достаточно ? :)
    вроде ф-ии BOOL Beep( DWORD dwFreq, DWORD dwDuration); ?
    Хм.. и вот еще в добавок... желательно чтобы можно было одновременно играть несколько частот :)
     
  20. Novi4ek

    Novi4ek New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2007
    Сообщения:
    317
    >>А вот де почитать про то, как заставить звуковуху проиграть определенную частоту при определенной длительности?
    waveOut***
    >>Юзер мода надеюсь будет достаточно ?

    Да, но зачем писать в этой теме?..