WaveRT, однако, не может обеспечивать синхронизацию нескольких аудиоустройств и не поддерживает внешнее тактирование
Последняя цитата из викиной "статьи" ссылается на несуществующий документ (линк в студию, если не так, а то мне прям аж интересно стало, что такого там в своё время нейтив про WaveRT понаписал, если этот API вообще ничего общего с USB-картами не имеет). Очевидно, что цитата эта не имеет под собой никаких оснований, т.к. противоречит информации от первоисточника, т.е. от Microsoft:
A clock register is an optional but useful hardware feature for a WaveRT-compatible audio device. Audio application programs can use clock registers to synchronize audio streams in two or more independent audio devices that have separate and unsynchronized hardware clocks. Without clock registers, an application is unable to detect and compensate for the drift between the hardware clocks.
Иными словами, именно Clock Register - один из механизмов WaveRT, который позволяет синхронизировать между собой потоки с нескольких звуковых устройств и реализовать внешнее тактирование.
разрабатывать высокопроизводительные с низкой задержкой аудиоприложения и драйвера на МАКе программистам проще
всё относительно. Ещё раз, DPC - функционал ОС, который позволяет получать задержку МЕНЬШЕ, чем в ОС без него. Он для этого был специально разработан. Но за всё в этом мире надо платить. Этот же механизм является "дырой" в случае наличия в системе ущербных драйверов, "играющих" не по правилам. В таких случаях звуковой драйвер не успевает вовремя обновлять буфер с данными для воспроизведения/записи, т.к. процессор обрабатывает запрос, скажем, видеодрайвера дольше, чем длина звукового буфера. Если в системе такие "безответственные" драйверы отсутствуют, то ОС позволяет обрабатывать звуковые данные с минимальной возможной задержкой, которая разумеется ниже, чем в ОС без реализации DPC.
Это что касается высокой производительности и низкой задержки. Теперь, что касается "программистам проще". Модель WDM (и её эволюционное развитие WDF в Win 7+) в аудиочасти как раз-таки снимает максимум заморочек с разработчиков, т.к. предоставляет им уже готовый, работающий со всеми звуковыми картами одного типа Class драйвер. Не надо выдумывать архитектуру и прочее. Просто дописывается Miniport-драйвер, содержащий специфику работы с конкретной звуковой картой, по вполне чётким правилам. Ну и проверяете, чтоб получающийся драйвер сам не вёл себя "вызывающе" и не портил жизнь остальным, съедая весь ресурс DPC. Всё.
Программистам сложнее на уровне повыше, на уровне стыка музыкального ПО с драйвером, т.к. вариантов этих "стыков" за 20-30 лет существования ОС накопилось изрядное множество, поэтому разобраться и выбрать нужный действительно тяжело - слишком много информации, которая далеко не всегда собрана в одном месте. Тем не менее, Microsoft'у за это большой респект, т.к. обеспечили совместимость и облегчили жизнь разработчикам с точки зрения поддержки совместимости - приложения не нужно постоянно переписывать по первому чиху MS, чего совсем не скажешь об Apple.
В общем и целом, это не плохо и не хорошо. Это просто по-разному. В Windows вы имеет более гибкую и потенциально более быструю ОС, с многолетней совместимостью по версиям. В OS X вы имеете один API вместо 5, с которым по началу проще разобраться, который в целом ведёт себя предсказуемее, т.к. не зависит от внешних факторов, вроде чужих кривых драйверов, но который и не позволяет получить более короткой задержки. Что в общем Alf_Zetas очень лаконично выше и написал:
В этом и есть главное различие осей - под Виндой пользователь сам себе хозяин и решает сам, а на маке за пользователя всё решил Джопс - любой шаг в сторону или прыжок приравнивается к бегству с расстрелом на месте