Аннотация:
В отличие от MS DOS, термин "низкоуровневое" в Windows означает не манипуляцию регистрами, прерываниями и каналами DMA, а просто самый элементарный уровень сервиса, обычно предоставляемого непосредственно драйвером устройства. В нашем случае таким устройством обычно является звуковой адаптер (карта), хотя Windows совершенно безразлично, откуда драйвер берет вводимый звук и куда девает звук выводимый. Существует, например, драйвер для вывода произвольного звука на встроенный динамик (PC Speaker), а также виртуальные драйверы, которые просто перенаправляют звуковые потоки другим драйверам или программам.
Re[4]: Низкоуровневое программирование звука в Windows
Здравствуйте, Ash-2, Вы писали:
A2>Я считал, что DirectSound — надстройка над "низкоуровневыми функциями" (+ программная эмуляция)
Ну да. Это такой весьма удачный интерфейс, практически один-в-один повторяющий организацию аппаратуры, и в то же время — вполне себе высокоуровневый. Программная эмуляция там используется только в режимах совместимости, когда аппаратура что-то не поддерживает (смешивание, например).
A2>а) ресурсов надо больше A2>б) быстродействие ниже (намного или нет — не важно).
Когда DirectSound только начинался, действительно было мало поддерживающих его драйверов, и для таких устройств он эмулировался поверх MME. В 98/2k и выше ситуация обратная: практически все драйверы сделаны в стандарте WDM, уровень DirectSound находится непосредственно над ним, а вот MME уже сделан достаточно криво, и его эффективность может быть существенно ниже, чем в 95/NT4.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: Низкоуровневое программирование звука в Windows
Здравствуйте, Ash-2, Вы писали:
A2>Только, что-то меня настораживает "нестабильность" версий DirectX: A2>- части то сливаются, то вроде бы планируется обратный процесс;
В DirectSound ничего не менялось уже много лет. Появился только DirectSound 2.0, в котором некоторые функции расширены, но его использовать никто не заставляет — для задач, которым хватает MME, базового DS хватит по уши.
A2>- если я пишу изначально для 8-ой версии (vc7.1), то будет ли это работать на предыдущих (у них ведь и интерфейсы постоянно меняются).
Обратной совместимости никогда не гарантировалось. Выберите минимально подходящую версию, и используйте ее.
A2>не было ли проблем с сопровождением программ (написанных лет 5-7 назад) из-за DirectX'а?
Не надо путать DirectSound и DirectX, в котором есть еще много чего Я не встречал ни одной программы, грамотно использующей DirectSound образца 97-98 годов, с которой на последующих версиях возникали бы проблемы. А проблем из-за кривизны определенных версий DirectX никто не отменял, равно как и проблемы кривизны определенных сервиспаков
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Низкоуровневое программирование звука в Windows
От:
Аноним
Дата:
14.07.03 08:07
Оценка:
Перевод MSDN и не более.
Re: Низкоуровневое программирование звука в Windows
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, swamp, Вы писали:
S>>Очень интересно, что означает отрицательная амплитуда? S>> Это в каком смысле?
А>В классическом. Отрицательное амплитудное значение.
Все-таки мне непонятно как это может быть. Мне почему-то казалось, что с точки физики амплитуда всегда положительная величина (как например сила или что-нибудь в этом роде). Что знак у амплитуды обозначает с "бытовой" точки зрения?
Sincerely yours,
Andrew Simontsev.
Re[4]: Низкоуровневое программирование звука в Windows
Здравствуйте, swamp, Вы писали:
S> мне почему-то казалось, что с точки физики амплитуда S> всегда положительная величина (как например сила или S> что-нибудь в этом роде).
Если говорить предельно строго, как излагается в теории периодических колебаний, то амплитуда — действительно положительная величина, обозначающая МАКСИМАЛЬНЫЙ размах от нуля. Но в электро- и радиотехнике вполне устоялось основное значение термина "амплитуда" в смысле мгновенной, текущей величины. Часто используется выражение "максимальная амплитуда", хотя, с точки зрения физики, это просто "амплитуда". А мгновенное амплитудное значением может быть и положительным, и отрицательным.
Re[2]: Низкоуровневое программирование звука в Windows
Здравствуйте, Аноним, Вы писали:
А>Перевод MSDN и не более.
Хм, а какие из известных Вам книг/статей о ДОКУМЕНТИРОВАННЫХ функциях программных систем не являются переводом (точнее — пересказом) документации производителя? Иначе говоря, что есть "более"?
Re: Низкоуровневое программирование звука в Windows
Хотелось бы услышать комментарии к следующей задаче:
нужно воспроизводить короткие звуковые файлы (< 1мин), форматы — PCM, MP3 и д.р. ОС от Win2k и выше. Так же очень желательно: задействовать минимум ресурсов и высокое быстродействие.
Было выбрано именно "Низкоуровневое программирование..." (waveOutxxxx),
ОДНАКО немного мучает вопрос: а может быть стоило воспользоваться DirectSound?
Что Вы думаете?
Заранее СПАСИБО!
Re[2]: Низкоуровневое программирование звука в Windows
Здравствуйте, Ash-2, Вы писали:
A2>ОС от Win2k и выше. Так же очень желательно: задействовать минимум ресурсов и высокое быстродействие. A2>Было выбрано именно "Низкоуровневое программирование..." (waveOutxxxx), A2>ОДНАКО немного мучает вопрос: а может быть стоило воспользоваться DirectSound?
Безусловно, при таких условиях однозначно показан DirectSound.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Низкоуровневое программирование звука в Windows
Здравствуйте, emusic, Вы писали:
>Безусловно, при таких условиях однозначно показан DirectSound.
Опа...
А можно пару слов почему? (т.к. я еще имею возможность переделать)
Я считал, что DirectSound — надстройка над "низкоуровневыми функциями" (+ программная эмуляция), т.о.:
а) ресурсов надо больше
б) быстродействие ниже (намного или нет — не важно).
Re[5]: Низкоуровневое программирование звука в Windows
Еще один вопрос
E>В 98/2k и выше ситуация обратная: практически все драйверы сделаны в стандарте WDM, уровень DirectSound находится непосредственно над ним, а вот MME уже сделан достаточно криво, и его эффективность может быть существенно ниже, чем в 95/NT4.
Вы меня почти убедили, что надо переписать под DirectSound.
Только, что-то меня настораживает "нестабильность" версий DirectX:
— части то сливаются, то вроде бы планируется обратный процесс;
— если я пишу изначально для 8-ой версии (vc7.1), то будет ли это работать на предыдущих (у них ведь и интерфейсы постоянно меняются).
Собственно вопрос:
не было ли проблем с сопровождением программ (написанных лет 5-7 назад) из-за DirectX'а?