Reaper Asio Guard

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
19.913
113
62
Киев
Не знаю, может это только для меня и Володи Белова было откровение узнать, что оказывается фича Куба Asio Guard, которая существенно снижает нагрузку на ASIO при работе в Кубе, есть и в Рипере, только называется иначе и настраивается чуть по другому.
Ноги выросли вот из этой темы -
AMD Ryzen для DAW
И "пинок под зад", чтоб обратить на это внимание и разобраться дал @Dmitry Stepin, и подхватил вопрос @belovw.
Суть вопроса вот в чём -
При работе с проектами в Рипере мы часто замечаем как СИЛЬНО возрастает нагрузка на ASIO (RT CPU) если включить на треке Rec Arm.
Вот пример с одним треком и Дивой с пресетом из приведенной выше темы (где меряли пиписки интела и AMD) -
A_G01.gif
Видно как в первую очередь возрастает нагрузка на RT CPU.
И лично я понятия не имел до конца почему так происходило.
А вот теперь разобрался - есть такая замечательная в Рипере опция - Anticipative FX processing, в которой стоит по умолчанию Render-ahead = 200 ms -
2017-06-08_205742.png

И по сути выключение этой опции делает тоже самое с нагрузкой, что и включение на канале записи -
A_G02.gif
Т.е. те самые 200 ms при отключении записи на треке по сути меняют буфер с выставленного вами в драйвере ASIO на вот эти 200 ms.
И все жалобы, что вот нажал на плэй, а он стартует с запазданием и при стопе не сразу останавливается - вот эти 200 ms!
Опять-же, в этом легко можно убедиться, не снимая галочку с опции, а поставив буфер МЕНЬШЕ чем вы выставили в драйвере ASIO.
Вот у меня стоит 512 spl и это на моей RME - 10 ms.
Если ставлю больше 10 ms функция по прежнему работает нам на пользу и RT CPU минимально, ставлю хоть чуть меньше - тут же получаем эффект включения записи на треке -
A_G03.gif

Так что - если хотите более быстрой реакции Play/Stop при сведении в Рипере (когда нет дорожек с включённой записью) - смело меняйте этих 200 ms на величину ЧУТЬ большую, чем вы выставили в ASIO буфере - и фича Reaper ASIO Guard будет работать и реакция будет заметно быстрее.
PS: Ну и следите за тем, чтоб не оставалось на треке не нужного включения Rec Arm - отключайте запись на ВСЕХ треках при сведении, это сильно увеличит производительность Рипера!
 
Последнее редактирование:
смело меняйте этих 200 ms на величину ЧУТЬ большую, чем вы выставили в ASIO буфере - и фича Reaper ASIO Guard будет работать и реакция будет заметно быстрее.
Я поэскперментировал и пришел к предварительному заключению, что размер значения Render-Ahead нужно выставлять не менее значения суммы размера буфера и RT longest-block плюс небольшой запас.
Снимок экрана (37)_LI.jpg
 
Эта фича есть в Рипере достаточно давно, насколько помню раньше чем асио-гард.
[DOUBLEPOST=1496988132][/DOUBLEPOST]
I'm not sure what you're asking here, so I'll just describe a little of how REAPER moves data around for playback. Most of this is configurable, I'm just describing the defaults.

When REAPER reads from items on disk (i.e. WAV files etc), it buffers them ahead by 600ms (i.e. it tries to keep 600ms of data ready).

If you have the "fx render-ahead" mode on, REAPER will render each track (if it is not record monitoring or dependent on a track that is) up to 200ms ahead as well. This data is stored in a track cache.

Then, when the time comes to mix a buffer (the size determined by the audio hardware), the audio thread gets to just go mix down all of the pre-rendered tracks (or if they aren't already rendered, render them).

Is this helpful?
smile.gif


-Justin
https://www.gearslutz.com/board/q-justin-frankel-designer-reaper/119731-buffers-latency-reaper.html
 
Последнее редактирование:
@Oliver_Cray, да. Но могли бы сделать её автоматом перестраиваемую под установленную в драйвере звук карты задержку. Зачем 200 ms?
А руками поставишь меньше и забудешь, на тяжёлом проекте поставишь больше буфер, а он из-за этого не сработает.
 
Последнее редактирование:
@Коля Ефремов, так это от задач, от сложности проекта и обработок в нём и от мощности вашего компа и качества драйверов вашей аудио карты зависит.
Если вы не используете комп для живой игры - то ставьте минимально возможный, контролируя нагрузку (ну вот тот самый RT CPU, чтоб он не поднимался выше 60%).
 
Последнее редактирование:
A media buffer size как рекомендуете выставлять?
Я пробовал ставить 500000 миллисекунд - 500 секунд. После закрытия настроек и повторного открытия - значения медиа буфер сайз составлял 6000 мс. Видимо это максимально допустимое значение этого параметра. Так и оставил.
 
  • Like
Реакции: alex vladimiroff
я правильно понимаю? если у меня при 512 в буфере Микшера аудиокарты показывает 11мс, то в обсуждаемом поле Рипера я должен поставить цифру 15 ?
 


Здравствуйте, правильно ли я понимаю что Anticipative FX processing при отключении арма на запись просто переключает задержку на указанное значение, например 200 мс, поэтому и получается такая "разница"?
 
@Oliver_Cray, да. Но могли бы сделать её автоматом перестраиваемую под установленную в драйвере звук карты задержку. Зачем 200 ms?
А руками поставишь меньше и забудешь, на тяжёлом проекте поставишь больше буфер, а он из-за этого не сработает.
Александр теперь появилась такая фукция GetAudioDeviceInfo а это самое значение Render- Ahead есть в reaper.ini - workbufmsex можно соорудить скрипт и поставть его в фукцию скажем на пробел и вуаля автоматически.
 
  • Like
Реакции: Furqat
@incubator, потом гляну... спасибо за идею.
По большому счёту можно было бы организовать вообще автоматическое выставление параметров буфера ASIO и этого тоже в зависимости от реальной ситуации в проекте - чтоб наверняка не было ни каких артефактов....
Тоже посмотрю как это можно было бы сделать.... не уверен, что в API достаточно для этого данных.
 
@Aleksandr Oleynik, можете поделиться настройками reaper'а, я как-то целый день потратил особой разницы не заметил.
Увидел у вас, что вы выставляете 10 потоков вместо autodetect, и в поведении 4 ядра. А в диспетчере задач распределяете нагрузку?
Сколько ядер выставляете в настройках контакта. Вот у меня 8 ядер 16 потоков(отключение гиперсрэдинга только увеличило нагрузку на cpu и RT CPU), как лучше распределить нагрузку?
Ещё вопрос, если проект начал кряхтеть при arm rec, исправить ситуацию может только повышение буфера или есть ещё какие-то возможности?
У UA есть помощники, не помню как они называются quad core, octa core. Они помогут при работе с контактом, или они созданы обслуживать только свои плагины? И есть ли альтернатива, многоядерные DSP звуковые карты?
 
  • Like
Реакции: Furqat
@Лукьян,
Ua только для своих плагинов ) карт которые грузят в себя VST не существует и не будет ..
На форуме уже сто раз обсасывалось , на нагрузку проца на малых задержках влияет не количество ядер , а скорость на ядро )..
так что даже если у вас 16 ядер , на 3600 мгц , то 4 ядерный проц с 5 ггц , на малых задержках будет производительнее ..
 
  • Like
Реакции: Лукьян
@Лукьян, настройка системы на максимальную производительность - не простая задача, и начинать её нужно с ПУНКТА №1 - настройки Винды, с отключения всех не нужных для работы со звуком процессов - тут LatencyMon в помощь, хотя очень часто реально мешающий процесс найти очень сложно.... И не радуйтесь, если LatencyMon вам после теста напишет, что ваша система пригодна для РиалТайм аудио - нужно запустить LatencyMon минимум на час при работающем тяжёлом проекте Рипера в петле - и смотреть самую большую величину DSP которая вылезет и какой это процесс и на сколько эта величина больше всех прочих. В среднем - если выскочившая за час величина DPC любого процесса больше чем половина выставленной вами задержки - будут дропауты и настройки Рипера по барабану! Ну вот если вы поставили 32 spl буфер - это для 48 kHz = 0,67 ms - и если за час работы LatensyMon с запущенным проектом DPC вывалится более 0,35 мс - Рипер можете и не тюнинговать.
Если винда отстроенна, тогда следующий этап это настройка Рипера.
Пункт №2 Рипер имеет гору всяких настроек без каких либо понятных описаний что и на что влияет - и познакомившись с этими настройками наверное глубже всех - я понимаю, что и сам производитель не знает до конца КАК та или иная настройка повлияет на конкретную систему пользователя, особенно если пуект №1 не сделан - хоть обкрутись, толку не будет ни какого.
Обычные настройки такие -
В Audio reading/processing threads нужно ставить кол-во визических ядер (а авто детект, при включенном гипертрэйдинге поставит общее кол-во, вместе с виртуальными и это не правильно - и в кавычках с права от установки это написано). Т.е. если у вас i9-9900k - то ставить тут нужно 8, а не 16!
Должна быть включена галочка на Allow live FX multiprocessing - и если гипертрейдинг включён - то ставите тут для указанного выше проца - 16. Как это ни странно, но я эксперементировал с этим числом и получал меньшую загрузку RT CPU устанавливая тут вместо 16, например 24 или 22 - но это вот имеет отношение к тому, что процесс работы Рипера на экстремально низких буферах очень сложный, да и мы нашли ошибку в работе этого процессинга в Рипере, о чём обязательно напишем Джастину!
Вреден или полезен Гипертрейдинг?
Я заметил, что с каой-то версии бэтки Рипера в конце прошлого года, на не критически маленьких задержках, гипертрейдинг стал давать небольшой прирост производительности. Но на малых задержках - менее 1 мс на вход и столько-же на выход - по прежнему гипертрейдинг или бесполезен или вреден, во всяком случаи пока Джастин не исправит код (@Rst7 нашёл баг, а вернее упрощённый подход к обработки тредов в Рипере и связан он с тем, что у планировщика задач винды минимальное время, которым он оперирует - 1 мс, а процессы риалтайм аудио ЗНАЧИТЕЛЬНО меньшими величинами оперируют - вот и засымает процессинг Рипера периодически и тупо пропускает часть нужной обработки, что приводит к дропаутам - но это всё уже высший пилотаж, а как правило у пользователей даже Пункт №1 не настроен!!!!!).
В общем @Zerocool всё верно написал - при маленьких буферах (маленьких для конкретного проца, для его мощности) - важно не кол-во ядер, а частота одного ядра, но и это не до конца верно и зависит от сложности проекта и его роутинга!!!!!! Чем больше в вашем проекте последовательной обработки (ну вот когда на треке пару плагинов, потом этот трек в какой-то под группе и на ней обработка, потом эта подгруппа в группе и на ней обработка, а потом ещё всё в каком-то Пре Мастере - и там обработка - то тут ТРУБА!!! сколько бы у вас ядер не было, эта вот цепочка от входа до выхода будет обробатываться ОДНИМ (а в Студио Ван так вообще все входные треки с записью и мониторингом обрабатываются одним ядром всегда).
Behavior лучше ставить - Automatic
Thread priority трогать не нужно - эту настройку нужно делать Above Normal - если Рипер запустили от администратора (это отдельная тема для тюнига, но после того как Джастин исправит упрощённый алгоритм работы тредов в Рипере).

Ещё вопрос, если проект начал кряхтеть при arm rec, исправить ситуацию может только повышение буфера или есть ещё какие-то возможности?
:) :) :) - зависит от того, выполнен ли качественно Пункт №1, если нет - то что б вы в Рипере не крутили, а толку будет ноль или близко к нулю.
А так - я выше всё написал.

У UA есть помощники, не помню как они называются quad core, octa core. Они помогут при работе с контактом, или они созданы обслуживать только свои плагины? И есть ли альтернатива, многоядерные DSP звуковые карты?
Это всё от лукавого вообще! Давно против всяких DSP - DSP UAD-а, это только хардверный ключь от взлома плагинов, ни чему они не помогают, а при малых задержках в проекте - МЕШАЮТ!
ну и естественно - это костыль только для UAD-овс ких плагинов.
 
Последнее редактирование:
ОК, раз уж тут столько понаписал, вот ещё -
Два скриншота работы Рипера с нашей звуковой картой iPAudioPro с буфером 16 spl на 48 kHz - т.е. задержка входа 0,33 мс (не путать с раундтрипом, общая задержка естественно больше и считается не просто).

HT.png

No HT.png

Видно, что включении HT ни чего не даёт! (спасибо, не портит)
И тут вот ещё одно место, куда нужно смотреть анализируя "здоровье" вашей системы -
RT longest-block с включённой опцией hold - зациклить проект, в котором с два десятка треков и есть штук пять треков на запись с мониторингом, ну и нагружен он плагинами так, чтобы RT CPU было как минимум между 30 и 40%.
И смотреть - если первая цифра в дроби сильно выше второй - будут артефакты, но беда в том, что ни один производитель Аудио Девайсов вам этой информации НЕ ДАСТ, хотя может.
У нас вот есть такой мониторинг - Statistics, где много нужной для отладки инфы, но главное это UND - это андераны - дропауты (пропуски информации в потоке на выход). если там стоит 000 (нули) - ВСЁ СУППЕР.
С другими картами это увидеть нельзя, только услышать...

PS: На скринах результат работы пропатченного при помощи нашего ASIO драйвера Рипера, на не пропатченном были бы 100% дропауты на этой задержке в этом проекте.
И такие-же патчи, увы, нужно делать и под каждую другую DAW и они разные, хотя и плюс-минус решают близкие проблемы....
Кстати, если при гипертрейдинге я в ASIO нашем включаю для Рипера не использовать нулевое ядро - результат ЧУТЬ-ЧУТЬ лучше, чем при выключенном гипертрейдинге...., а в Кубейсе он категорически лучше с такими опциями, чем без них....
На моей отстроенной Win 10 системе и с пропатченным нашим ASIO Рипером этот вот проект на 18 треков, из которых 9 стоит на запись и мониторинг (т.е. проект для Лайва) с 44 FX (это барабанная сэссия), работает на раундтрип (от AD до DA) задержке = 1 милисекунде и с нагрузкой на RT CPU (ASIO) до 67%!!!!
 
Последнее редактирование:
@Aleksandr Oleynik, Вы просто потрясающе со всем этим освоились. Если вдруг решите сделать платный видеокурс с наглядной настройкой системы и рипера, можете поставить меня первым в очередь.
 
  • Like
Реакции: Fedor Tkachev и Furqat
@MSerg, он не очень поможет, и уж точно от меня платным не будет ни когда!

Я чем дальше тем больше считаю, что помочь сможет только продажа отстроенных Аппаратно-Програмных комплексов.
Но беда в том, что их создание очень трудоёмкий процесс и чтоб его хоть как то окупить, взяв на работу пару толковых инженеров и обучив их, прийдётся ставит не маленький ценик....

PS: Кстати, я сейчас такой делаю для группы своего сына - это будет 4U туровый кейс в котором будет комп на i9-9900K + наш аудио девайс на 16 входов и 8 выходов+ свич на подключение по PoE ещё 8 девайсов внешних по Ethernet + Wi-Fi точка для Ремоутов.
На какой задержке можно будет готовить барабанный сэт в лайве я уже выше показал :)
 
Последнее редактирование:
@Aleksandr Oleynik, ну или было бы здорово просто оформить как-то маршрутную карту. «Начинаем с этого», «если результат А, то идём сюда, если результат Б, идём другим путём».

У меня есть папка, физическая, пластиковая, и в ней маршрутная карта с чек-листами для переустановки моих компьютеров с нуля со всем необходимым софтом и утилитами. И эту папку можно дать ассистенту, чтобы он бултыхался с компьютером несколько дней, пока я занимаюсь другими делами. И я с удовольствием включил бы туда отдельный чеклист с подобными тестами и настройками. Я помню, что я смотрел задержки в latencyMon, и с отключением сетевой карты и они сильно уменьшились. Но мне очень не просто выделить время на глубокое изучение вопроса и я знаю слишком мало обо всём этом, чтобы составить точную инструкцию и с уверенностью вложить её в папку как стандартный этап. Если Вы можете с этим делом помочь, то это было бы очень полезно не только мне.
 
  • Like
Реакции: fractala
@Aleksandr Oleynik, этот бы ваш мануал по тонкой настройке аудио рипера куда нибудь в топик и закрепить. Отличная работа!
ps: Очень хочется еще увидеть аналогичный faq по настройке рипера под mac os. (Тут я понимаю пункт первый с настройкой OS и диагностикой задержек латенси монитором мимо, и остается только настройка самого рипера)
 
@MSerg, @fractala, для реально серьёзной отстройки с чётким и понятным результатом НЕ ВОЗМОЖНО сделать ни какого чеклиста.
У Майкрософта сотни сервисов, которые могут влиять на ещё сотню разных конфигов железа по разному. Прикиньте число сочетаний - мне жизни не хватит, чтоб составить весь чеклист.
Ну и потом, без очень не простого в работе и понимания инструментария от самого Майкрасота, который разыскал @Zerocool вы ни чего не найдёте и не настроите!

Именно по этой причине все мои советы в не умелых руках принесут очень не очевидный результат. Я ведь ВСЁ это давно уже выложил в FAQ Рипера (ну почти всё, есть ещё по разным веткам инфа) - и что, от этого вопросов стало меньше?

Вижу только один путь - покупка отстроенного аппаратно-програмного комплекса, это если нужно ехать....
А если хочется шашечки (понимания глубокого) - то ....., бросайте работу и терпение и труд всё перетрут...
Я ни сколько не считаю себя каким то особенным, да и не мои всё это достижения - без @Rst7 ни чего бы я с Рипером не сделал, да и с Виндой тоже не сделал, без найденного @Zerocool -ом инструментария, который опять-же не я, а Дмитрий смог понять....
 
Я добавил в FAQ некоторые мысли из этого топика....
Думаете вопросы закончаться или все смогут отстроить Рипер на максимальную производительность?
 
@Zerocool, Да, я знаю, я стараюсь сперва читать, потом вопросы задавать. И не зря, т.к. то, что сейчас посоветовал@Aleksandr Oleynik, отличается от скриншота настроек, который в FAQ. Знаю, что все советы полученные от Александра - это, в том числе, и ваша заслуга, спасибо вам всем за вашу работу.
На рипер форуме читал о настройке системы, там правда всего 10 мин советовали тестировать latencyMon, надо будет попробовать час. А так самые большие нагрузки даёт Nvidia - 0,15 - 0,2(понял, что нужно на ati поменять) и сетевушка.
Я просто не использую настолько экстремально низкие задержки, мне 128samples хватает, если гитары писать, а если с миди клавы, то и 256 нормально. У меня просто от большого количества дорожек пустых (600 )и роутинга Rt Cpu показывает значение 17,5%, когда нажимаю arm rec, то это значение поднимается до 30%-34%, и не сильно зависит от количества дорожек, могу и 8 одновременно поставить на запись, поднимется до 37%, это если писать библиотеки. А вот если например гитару с Bias FX, то нагрузка на Rt растёт пропорционально кол-ву треков с arm rec, что-то +15%, но у меня всего 2 канала на звуковой карте и пишу, я как правило 1. Если, например, играет примерно 70 дорог с контактами из 20 инстанций (просто playback) нагрузка rt может до 45 -50% доходить, если нажать arm rec появ-ся треск, помогает только увеличение буфера, причём не в 2 раза, а как правило в четыре.
@Aleksandr Oleynik, @Zerocool, насколько сильно отличаются dsp ESI Juli@ и RME HDSP PCIe в плане производительности, или в моём случае это не имеет значения?
 
@Лукьян, производительность звуковой карты вообще ни как не влияет на производительность системы.
Тем более DSP этих карт. DSP там либо для каких то FX, либо для внутренних микшеров (тотал микс у RME).
Влияет как написаны драйвера, какой буфер (из-за криворукости програмистов) производитель поставил в самой карте дополнительный, который и не показывает пользователю (у RME PCI-Ex карт на частоте 48 kHz он - 24 сэмпла и поменять вы его не можете. У других карт ещё выше. И даже некоторые DAW ставят в тракт доп буфер, который вы поменять не можете).
У разных звуковых карт на одной и той же частоте разная реальная задержка по этой причине, в которую вы упрётесь, как в стену, чтоб вы в компе не оптимизировали.
Почему все советуют RME - да потому что (пока мы не сделали с Димой iPAudioPro :) ) у них лучшие драйвера и самые низкие задержки в индустрии.

PS: По поводу кол-ва дорожек и включения записи на треках -
Если нет ни каких обработок на треках, то все равно и процессор и ASIO грузятся математикой суммирования. Да, это совсем не большая нагрузка, но она есть.
Понятно, что основную нагрузку создают плагины - и тут опять на первый план выходят корявые руки програмистов - ну вот сравнить хотябы Overload последний и Баяс - я бы програмистов позитивгрид сжёг на костре публично.
И если на каждом треке стоит по какому то EQ не жручему, то что есть он там, что его нет - для процессора не сильно важно и по этому нагрузка не будет сильно возрастать от колличества треков с этим EQ.
А вот с Баясом всё будет печально - он может и целое ядро отожрать один - ну и сколько у вас там ядер? 6? - вот шесть треков с включенной записью и Баясом и будет предел возможностей вашего компа, ну а програмисты позитивов будут гореть в аду.
 
Последнее редактирование:
@Aleksandr Oleynik, Спасибо, уже успел пообщаться с грамотным человеком, он мне то же самое объяснил.
Желаю вам успехов с вашей iPAudioPro. Она планируется для широкого круга людей или limited edition?

П.С. Только, если я правильно понял, на windows всё-равно не может быть настоящего real time, как не крути.
 
  • Like
Реакции: Fedor Tkachev
П.С. Только, если я правильно понял, на windows всё-равно не может быть настоящего real time, как не крути.
Его не может быть нигде! Если только не изобретут путешествия во времени....
Если вы имеете в виду тот факт, что Виндовс не является операционкой Реального Времени - то это немного другое!

Для Аудио - всё, что быстрее одного сэмпла - Реальное Время!
 
  • Like
Реакции: Fedor Tkachev
Получается программа DPC Latency Checker совсем вышла из доверия?
 

Вложения

  • 1.jpg
    1.jpg
    74,3 KB · Просмотры: 684
Последнее редактирование:

Сейчас просматривают