Сообщение Re[17]: Что такое realtime? от 09.01.2025 11:43
Изменено 09.01.2025 11:46 vdimas
Re[17]: Что такое realtime?
Здравствуйте, Евгений Музыченко, Вы писали:
V>>Тут переключения контекстов могут отожрать до 95% всех тиков, если каждый источник обрабатывается отдельным потоком ОС.
ЕМ>Какой смысл для каждого источника создавать поток? Выделенный поток имеет смысл, если он работает с источником бОльшую часть времени. Если же он преимущественно спит, то такое раздувание количества потоков и является основной причиной затыков.
Вопрос был про стоимость переключений контекстов — я привёл известный сценарий, показывающий эту стоимость.
V>>Никак не отвыкну от привычки думать, что софт, требующий хоть какую-то эффективность, и должен писаться "квалифицированными кадрами". ))
ЕМ>Мне тоже сложно думать иначе, но подход "возьмите молоток побольше" уже давно преобладает везде, кроме совсем уж критичных участков. И даже там изо всех сил пытаются упрощать и послаблять.
ОК.
Но в теме о реалтайме это оффтоп, ИМХО.
V>>А далее будет работать охрененно вылизанные подкапотные вещи использованной либы — кодеки/фильтры, источники и приёмники сигналов и т.д.
ЕМ>И кто ж их охрененно-то вылижет?
Разработчики в этой области, вестимо.
Область-то специфическая. ))
ЕМ>Да, кто-то и посейчас тщательно следит за использованием ресурсов, но большинство ж, сидя на топовом железе, вообще ни разу не тестирует свои поделия на более слабом. "У меня работает — значит, и у других будет".
Да ну не...
DirectShow, DirectSound или всякие speex вылизаны очень даже неплохо.
Оно ж всё вылизывалось еще для техники 90-х как по общей архитектуре (путям прохождения/обработки данных), так и по публичному АПИ, суть которого сводится к конфигурированию/настройке общего графа устройств + обработчиков.
ЕМ>Кстати, тот же DirectShow можно считать достаточно оптимальным лишь для типовой потоковой обработки, не требующей особой динамики. При попытке собрать таким образом какой-нибудь блок эффектов для гитары сразу станет грустно.
Ес-но, из блоков DirectShow блок эффектов не собирают. ))
Подход был отродясь другой — весь блок эффектов представляет из себя один узел фильтра DirectShow.
Задача этого фильтра — обработать порцию данных по входу, положив результат по выходу.
Примитивнейшее и эффективное АПИ.
ЕМ>Именно поэтому и родили в свое время предельно упрощенный и аскетичный ASIO.
Э, нет! ))
ASIO — это дыра не через софтовый драйвер, а через нагромождения в железе.
Ведь основные фильтры/микшеры/массивы_микрофонов и прочие приблуды живут в DSP звуковых микросхем, поэтому ASIO был придуман, чтобы обойти именно этот аппаратно-программный конвейер, получив данные прямо от, считай АЦП (или из пакетов USB 3.0) и отправив их обратно в буфер ЦАП (или прямо в буфер пакетов USB 3.0), минуя всяческую обработку ср-вами ОС и драйвера, как оно есть для ЛЮБЫХ подключенных звуковых устройств.
Не зря ASIO — это опциональная фича драйвера конкретной звуковой микросхемы или платы (в т.ч. внешней).
И не зря эта фича достаточно редка в "обычном" железе.
Устройства ввода и вывода в полноценном ASIO захватываются в исключительном режиме и не доступны аудио-системе Windows, т.е. ползунок громкости и прочие вещи на них не влияют.
Это как бы параллельная вселенная, не связанная с подсистемой аудио виндов, оно может крутиться независимо друг от друга, что я и делал — проигрывал музыку заднего фона обычными проигрывателями Windows, а гитару подключаль через внешнюю USB-картейку по входу и выходу, и далее на выходе простой микшер, куда подключен обычный звуковой выход компа и звуковой выход внешней картейки, а с микшера уже на усилок.
V>>Тут переключения контекстов могут отожрать до 95% всех тиков, если каждый источник обрабатывается отдельным потоком ОС.
ЕМ>Какой смысл для каждого источника создавать поток? Выделенный поток имеет смысл, если он работает с источником бОльшую часть времени. Если же он преимущественно спит, то такое раздувание количества потоков и является основной причиной затыков.
Вопрос был про стоимость переключений контекстов — я привёл известный сценарий, показывающий эту стоимость.
V>>Никак не отвыкну от привычки думать, что софт, требующий хоть какую-то эффективность, и должен писаться "квалифицированными кадрами". ))
ЕМ>Мне тоже сложно думать иначе, но подход "возьмите молоток побольше" уже давно преобладает везде, кроме совсем уж критичных участков. И даже там изо всех сил пытаются упрощать и послаблять.
ОК.
Но в теме о реалтайме это оффтоп, ИМХО.
V>>А далее будет работать охрененно вылизанные подкапотные вещи использованной либы — кодеки/фильтры, источники и приёмники сигналов и т.д.
ЕМ>И кто ж их охрененно-то вылижет?
Разработчики в этой области, вестимо.
Область-то специфическая. ))
ЕМ>Да, кто-то и посейчас тщательно следит за использованием ресурсов, но большинство ж, сидя на топовом железе, вообще ни разу не тестирует свои поделия на более слабом. "У меня работает — значит, и у других будет".
Да ну не...
DirectShow, DirectSound или всякие speex вылизаны очень даже неплохо.
Оно ж всё вылизывалось еще для техники 90-х как по общей архитектуре (путям прохождения/обработки данных), так и по публичному АПИ, суть которого сводится к конфигурированию/настройке общего графа устройств + обработчиков.
ЕМ>Кстати, тот же DirectShow можно считать достаточно оптимальным лишь для типовой потоковой обработки, не требующей особой динамики. При попытке собрать таким образом какой-нибудь блок эффектов для гитары сразу станет грустно.
Ес-но, из блоков DirectShow блок эффектов не собирают. ))
Подход был отродясь другой — весь блок эффектов представляет из себя один узел фильтра DirectShow.
Задача этого фильтра — обработать порцию данных по входу, положив результат по выходу.
Примитивнейшее и эффективное АПИ.
ЕМ>Именно поэтому и родили в свое время предельно упрощенный и аскетичный ASIO.
Э, нет! ))
ASIO — это дыра не через софтовый драйвер, а через нагромождения в железе.
Ведь основные фильтры/микшеры/массивы_микрофонов и прочие приблуды живут в DSP звуковых микросхем, поэтому ASIO был придуман, чтобы обойти именно этот аппаратно-программный конвейер, получив данные прямо от, считай АЦП (или из пакетов USB 3.0) и отправив их обратно в буфер ЦАП (или прямо в буфер пакетов USB 3.0), минуя всяческую обработку ср-вами ОС и драйвера, как оно есть для ЛЮБЫХ подключенных звуковых устройств.
Не зря ASIO — это опциональная фича драйвера конкретной звуковой микросхемы или платы (в т.ч. внешней).
И не зря эта фича достаточно редка в "обычном" железе.
Устройства ввода и вывода в полноценном ASIO захватываются в исключительном режиме и не доступны аудио-системе Windows, т.е. ползунок громкости и прочие вещи на них не влияют.
Это как бы параллельная вселенная, не связанная с подсистемой аудио виндов, оно может крутиться независимо друг от друга, что я и делал — проигрывал музыку заднего фона обычными проигрывателями Windows, а гитару подключаль через внешнюю USB-картейку по входу и выходу, и далее на выходе простой микшер, куда подключен обычный звуковой выход компа и звуковой выход внешней картейки, а с микшера уже на усилок.
Re[17]: Что такое realtime?
Здравствуйте, Евгений Музыченко, Вы писали:
V>>Тут переключения контекстов могут отожрать до 95% всех тиков, если каждый источник обрабатывается отдельным потоком ОС.
ЕМ>Какой смысл для каждого источника создавать поток? Выделенный поток имеет смысл, если он работает с источником бОльшую часть времени. Если же он преимущественно спит, то такое раздувание количества потоков и является основной причиной затыков.
Вопрос был про стоимость переключений контекстов — я привёл известный сценарий, показывающий эту стоимость.
V>>Никак не отвыкну от привычки думать, что софт, требующий хоть какую-то эффективность, и должен писаться "квалифицированными кадрами". ))
ЕМ>Мне тоже сложно думать иначе, но подход "возьмите молоток побольше" уже давно преобладает везде, кроме совсем уж критичных участков. И даже там изо всех сил пытаются упрощать и послаблять.
ОК.
Но в теме о реалтайме это оффтоп, ИМХО.
V>>А далее будет работать охрененно вылизанные подкапотные вещи использованной либы — кодеки/фильтры, источники и приёмники сигналов и т.д.
ЕМ>И кто ж их охрененно-то вылижет?
Разработчики в этой области, вестимо.
Область-то специфическая. ))
ЕМ>Да, кто-то и посейчас тщательно следит за использованием ресурсов, но большинство ж, сидя на топовом железе, вообще ни разу не тестирует свои поделия на более слабом. "У меня работает — значит, и у других будет".
Да ну не...
DirectShow, DirectSound или всякие speex вылизаны очень даже неплохо.
Оно ж всё вылизывалось еще для техники 90-х как по общей архитектуре (путям прохождения/обработки данных), так и по публичному АПИ, суть которого сводится к конфигурированию/настройке общего графа устройств + обработчиков.
ЕМ>Кстати, тот же DirectShow можно считать достаточно оптимальным лишь для типовой потоковой обработки, не требующей особой динамики. При попытке собрать таким образом какой-нибудь блок эффектов для гитары сразу станет грустно.
Ес-но, из блоков DirectShow блок эффектов не собирают. ))
Подход был отродясь другой — весь блок эффектов представляет из себя один узел фильтра DirectShow.
Задача этого фильтра — обработать порцию данных по входу, положив результат по выходу.
Примитивнейшее и эффективное АПИ.
И уж прояви себя через эффективный матан между входом и выходом! ))
ЕМ>Именно поэтому и родили в свое время предельно упрощенный и аскетичный ASIO.
Э, нет! ))
ASIO — это дыра не через софтовый драйвер, а через нагромождения в железе.
Ведь основные фильтры/микшеры/массивы_микрофонов и прочие приблуды живут в DSP звуковых микросхем, поэтому ASIO был придуман, чтобы обойти именно этот аппаратно-программный конвейер, получив данные прямо от, считай АЦП (или из пакетов USB 3.0) и отправив их обратно в буфер ЦАП (или прямо в буфер пакетов USB 3.0), минуя всяческую обработку ср-вами ОС и драйвера, как оно есть для ЛЮБЫХ подключенных звуковых устройств.
Не зря ASIO — это опциональная фича драйвера конкретной звуковой микросхемы или платы (в т.ч. внешней).
И не зря эта фича достаточно редка в "обычном" железе.
Устройства ввода и вывода в полноценном ASIO захватываются в исключительном режиме и не доступны аудио-системе Windows, т.е. ползунок громкости и прочие вещи на них не влияют.
Это как бы параллельная вселенная, не связанная с подсистемой аудио виндов, оно может крутиться независимо друг от друга, что я и делал — проигрывал музыку заднего фона обычными проигрывателями Windows, а гитару подключаль через внешнюю USB-картейку по входу и выходу, и далее на выходе простой микшер, куда подключен обычный звуковой выход компа и звуковой выход внешней картейки, а с микшера уже на усилок.
V>>Тут переключения контекстов могут отожрать до 95% всех тиков, если каждый источник обрабатывается отдельным потоком ОС.
ЕМ>Какой смысл для каждого источника создавать поток? Выделенный поток имеет смысл, если он работает с источником бОльшую часть времени. Если же он преимущественно спит, то такое раздувание количества потоков и является основной причиной затыков.
Вопрос был про стоимость переключений контекстов — я привёл известный сценарий, показывающий эту стоимость.
V>>Никак не отвыкну от привычки думать, что софт, требующий хоть какую-то эффективность, и должен писаться "квалифицированными кадрами". ))
ЕМ>Мне тоже сложно думать иначе, но подход "возьмите молоток побольше" уже давно преобладает везде, кроме совсем уж критичных участков. И даже там изо всех сил пытаются упрощать и послаблять.
ОК.
Но в теме о реалтайме это оффтоп, ИМХО.
V>>А далее будет работать охрененно вылизанные подкапотные вещи использованной либы — кодеки/фильтры, источники и приёмники сигналов и т.д.
ЕМ>И кто ж их охрененно-то вылижет?
Разработчики в этой области, вестимо.
Область-то специфическая. ))
ЕМ>Да, кто-то и посейчас тщательно следит за использованием ресурсов, но большинство ж, сидя на топовом железе, вообще ни разу не тестирует свои поделия на более слабом. "У меня работает — значит, и у других будет".
Да ну не...
DirectShow, DirectSound или всякие speex вылизаны очень даже неплохо.
Оно ж всё вылизывалось еще для техники 90-х как по общей архитектуре (путям прохождения/обработки данных), так и по публичному АПИ, суть которого сводится к конфигурированию/настройке общего графа устройств + обработчиков.
ЕМ>Кстати, тот же DirectShow можно считать достаточно оптимальным лишь для типовой потоковой обработки, не требующей особой динамики. При попытке собрать таким образом какой-нибудь блок эффектов для гитары сразу станет грустно.
Ес-но, из блоков DirectShow блок эффектов не собирают. ))
Подход был отродясь другой — весь блок эффектов представляет из себя один узел фильтра DirectShow.
Задача этого фильтра — обработать порцию данных по входу, положив результат по выходу.
Примитивнейшее и эффективное АПИ.
И уж прояви себя через эффективный матан между входом и выходом! ))
ЕМ>Именно поэтому и родили в свое время предельно упрощенный и аскетичный ASIO.
Э, нет! ))
ASIO — это дыра не через софтовый драйвер, а через нагромождения в железе.
Ведь основные фильтры/микшеры/массивы_микрофонов и прочие приблуды живут в DSP звуковых микросхем, поэтому ASIO был придуман, чтобы обойти именно этот аппаратно-программный конвейер, получив данные прямо от, считай АЦП (или из пакетов USB 3.0) и отправив их обратно в буфер ЦАП (или прямо в буфер пакетов USB 3.0), минуя всяческую обработку ср-вами ОС и драйвера, как оно есть для ЛЮБЫХ подключенных звуковых устройств.
Не зря ASIO — это опциональная фича драйвера конкретной звуковой микросхемы или платы (в т.ч. внешней).
И не зря эта фича достаточно редка в "обычном" железе.
Устройства ввода и вывода в полноценном ASIO захватываются в исключительном режиме и не доступны аудио-системе Windows, т.е. ползунок громкости и прочие вещи на них не влияют.
Это как бы параллельная вселенная, не связанная с подсистемой аудио виндов, оно может крутиться независимо друг от друга, что я и делал — проигрывал музыку заднего фона обычными проигрывателями Windows, а гитару подключаль через внешнюю USB-картейку по входу и выходу, и далее на выходе простой микшер, куда подключен обычный звуковой выход компа и звуковой выход внешней картейки, а с микшера уже на усилок.