Primary sound driver что это
В данной статье описан процесс написания простейшего драйвера, который выводит скан-коды нажатых клавиш.
Также в данной статье описан процесс настройки рабочего места для написания драйверов.
Если Вам интересно, прошу под кат.
Подготовка стенда
Установка необходимого ПО для написания простейшего драйвера
- Windows DDK (Driver Development Kit);
- VMware Workstation или Virtual Box;
- Windows XP;
- Visual Studio 2005;
- DDKWizard;
- KmdManager
- DebugView;
Настройка рабочего места
Установка DDK
Установка предельно проста. Единственное на что необходимо обратить внимание — это диалог, в котором Вам предлагается выбрать компоненты, которые будут установлены. Настоятельно рекомендую отметить всю документацию и примеры.
Установка и настройка Microsoft® Visual Studio 2005
Установка Microsoft® Visual Studio 2005 ничем не сложнее установки DDK. Если Вы будете использовать её только для написания драйверов, то когда инсталлятор спросит какие компоненты необходимо установить, выберите только Visual C++.
Далее можно установить Visual Assist X. С помощью этой программы (аддона) можно будет легко настроить подсказки для удобного написания драйверов.
После установки Visual Assist X в Visual Studio 2005 появится новое меню VAssistX. Далее в этом меню: Visual Assist X Options -> Projects -> C/C++ Directories -> Platform: Custom, Show Directories for: Stable include files . Нажимаем Ins или на иконку добавить новую директорию и в появившейся строке, если у вас Windows XP вписываем %WXPBASE%\inc\ddk\wxp .
Установка и настройка DDKWizard
- Создать системные (рекомендуется) или пользовательские переменные со следующими именами и значением, которое соответствует пути к DDK
Версия DDK Имя переменной Путь по умолчанию Windows XP DDK WXPBASE C:\WINDDK\2600 Windows 2003 Server DDK WNETBASE C:\WINDDK\3790.1830 Windows Vista/Windows 2008 Server WDK WLHBASE Windows 7/Windows 2008 Server R2 WDK W7BASE
Например, если я использую Windows XP DDK, то я должен создать переменную WXPBASE со значением, которое соответствует пути к DDK. Так как я не изменял путь установки, то значение у меня будет C:\WINDDK\2600. - Скопируйте скачанный скрипт ddkbuild.cmd, например, в папку с DDK. У меня это C:\WINDDK\.
- Добавьте в конец системной переменной Path путь к скрипту ddkbuild.cmd.
Установка необходимого ПО для запуска драйверов
- DebugView (link) — это утилитка, которая позволяет просматривать отладочный вывод как режима пользователя так и режима ядра.
- KmdManager (link) — утилита динамической загрузки/выгрузки драйверов
Постановка задачи
Задача: написать драйвер, который будет выводить в дебаг скан-коды нажатых клавиш и их комбинаций.
Немного теории
- драйверы классов;
- минидрайверы;
- функциональные драйверы;
- фильтрующие драйверы.
Необязательно определять все возожные функции в своем драйвере, но он обязательно должен содержать DriverEntry и AddDevice .
IRP — это структура, которая используется драйверами для обмена данными.
- верхние фильтрующие драйверы;
- нижние фильтрующие драйверы.
Отличия между верхними и нижними фильтрующими драйверами
Через верхние фильтрующие драйверы проходят все запросы, а это значит, что они могут изменять и/или фильтровать информацию, идущую к функциональному драйверу, ну и далее, возможно, к устройству.
Пример использования верхних фильтрующих драйверов:
Фильтр-хук драйвер, который устанавливает свою хук-функцию для системного драйвера IpFilterDirver, для отслеживания и фильтрации траффика. Такие драйверы используются в брандмауэрах.
Через нижние фильтрующие драйверы проходит меньше запросов потому что большинство запросов выполняет и завершает функциональный драйвер.
Проблемы синхронизации
В драйвере, который мы будем писать, есть несколько «проблемных» секций. Для нашего драйвера вполне достаточно использования ассемблерных вставок:
Префикс lock позволяет безопасно выполнить идущую за ним команду. Она блокирует остальные процессоры, пока выполняется команда.
Экшен
Для начала необходимо включить заголовочные файлы «ntddk.h», «ntddkbd.h»
Также необходимо описать структуру DEVICE_EXTENSION
Объект pLowerDO это объект устройства, который находится ниже нас в стеке. Он нужен нам для того чтобы знать кому дальше отправлять IRP-пакеты.
Еще для работы нашего драйвера нам нужна переменная, в которой будет храниться количество не завершенных запросов.
Начнем с функции, которая является главной точкой входа нашего драйвера.
theDriverObject – объект драйвера, содержит указатели на все необходимые операционной системе функции, которые мы должны будем инициализировать.
ustrRegistryPath – имя раздела в реестре, где хранится информация о данном драйвере.
Для начала необходимо объявить и обнулить переменные:
Далее, как я и писал выше, нужно инициализировать указатели на функции
Функция DispatchRead будет обрабатывать запросы на чтение. Она будет вызываться, когда нажата или отпущена клавиша клавиатуры.
Функция DriverUnload вызывается, когда драйвер уже не нужен и его можно выгрузить из памяти, или когда пользователь сам выгружает драйвер. В данной функции должна производиться «зачистка», т.е. освобождаться ресурсы, которые использовались драйвером, завершаться все незавершенные запросы и т.д.
Функция DispatchThru это функция-заглушка. Все что она делает это передача IRP-пакета следующему драйверу (драйверу который находится под нашим в стеке, т.е. pLowerDO из DEVICE_EXTENSION ).
Далее мы вызываем нашу функцию, для создания и установки нашего устройства в стек устройств:
Эту функцию я опишу чуть ниже.
Возвращаем status , в котором, если функция InstallFilter завершилась удачей, хранится значение STATUS_SUCCESS .
Переходим к функции InstallFilter . Вот её прототип:
Эта функция создает объект устройства, настраивает его и включает в стек устройств поверх \\Device\\KeyboardClass0
pKeyboardDevice – это объект устройсва, которое мы должны создать.
Вызываем IoCreateDevice для создания нового устройства
- Первый аргумент это объект драйвера, который мы получили как параметр функции InstallFilter. Он передается в IoCreateDevice для того чтобы установить связь между нашим драйвером и новым устройством.
- Третий параметр это имя устройства
- Четвертый параметр это тип устройства
- Пятый параметр это флаги, которые обычно устанавливаются для запоминающих устройств.
- Шестой параметр описывает можно ли открывать манипуляторы устройства в количестве больше одного. Если FALSE можно открыть только один манипулятор. Иначе можно открыть любое количество манипуляторов.
- Седьмой параметр это память, в которой будем сохранен созданный объект устройства.
Флаги, которые мы устанавливаем для нашего устройства, должны быть эквивалентными флагам устройства, поверх которого мы включаемся в стек.
Далее мы должны выполнить преобразования имени устройства, которое мы включаем в стек.
Функция IoAttachDevice внедряет наше устройство в стек. В pdx->pLowerDO будет храниться объект следующего (нижнего) устройства.
Далее разберем функцию DispatchRead с прототипом:
Данная функция будет вызываться операционной системой при нажатии или отпускании клавиши клавиатуры
Увеличиваем счетчик незавершенных запросов
Перед тем как передать запрос следующему драйверу мы должны настроить указатель стека для драйвера. IoCopyCurrentIrpStackLocationToNext копирует участок памяти, который принадлежит текущему драйверу, в область памяти следующего драйвера.
Когда запрос идет вниз по стеку в нем еще нет нужных нам данных, поэтому мы должны задать функцию, которая вызовется, когда запрос будет идти вверх по стеку с нужными нам данными.
где ReadCompletionRoutine наша функция.
Передаем IRP следующему драйверу:
Теперь разберем функцию, которая будет вызываться каждый раз при завершении IRP . Прототип:
Структура PKEYBOARD_INPUT_DATA используется для описания нажатой клавиши.
Проверяем, удачно завершен запрос или нет
Чтобы достать структуру KEYBOARD_INPUT_DATA нужно обратиться к системному буферу IRP -пакета.
Узнаем количество клавиш
И выводим каждую клавишу:
И не забываем уменьшать количество не обработанных запросов
Возвращаем статус запроса
Разберем функцию завершения работы. Прототип:
Извлекаем устройство из стека:
Проверяем есть незавершенные запросы или нет. Если мы выгрузим драйвер без этой проверки, при первом нажатии на клавишу после выгрузки будет БСоД.
Как запустить драйвер и просмотреть отладочную информацию
Для запуска драйвера я использовал утилиту KmdManager. Для просмотра отладочной информации использовалась утилита DbgView.
P. S. Статью писал давно, ещё на третьем курсе, сейчас уже почти ничего не помню. Но если есть вопросы, постараюсь ответить.
P. P. S. Прошу обратить внимание на комментарии, в частности на этот
Какой драйвер выбрать в настройках foobar? (СКРИНШОТ)
Описание: У вас проблемы с foobar2000 и вам необходима помощь? Спрашивайте здесь!
Правила раздела: Одна тема — один вопрос или группа связанных вопросов. Обязательно формируйте внятный заголовок, максимально отражающий суть. Подробно описывайте проблему. Не забывайте указать версию плеера, название сборки, по возможности добавить скриншоты проблемы.
Caspersky74 » 01.04.2018, 15:37
Подскажите пожалуйста, какой лучше драйвер выбрать для наилучшего звучания без потерь в обход ОС?
Музыка в flac.
Плеер Foobar 2000 v1.3.5
Овцеухов » 01.04.2018, 15:40
Caspersky74 » 01.04.2018, 15:52
А что такое WASAPI (push)? Я просто где-то читал, что его надо выставлять, а ASIO это для записи звука в основном.
Вот закрались сомнения.
Sadovnik Muller » 01.04.2018, 17:07
Yurii » 01.04.2018, 17:47
Тогда и у меня вопрос к Вам Уважаемый .
В чём отличие WASAPI (event) динамики Creative(SB X - FI)
от WASAPI (push) динамики Creative(SB X - FI)
postED » 01.04.2018, 19:52
Обратите внимание: у WASAPI exclusive существует два режима буферизации — Event и Push. Первый режим является технически более совершенным и лучше совместим с USB устройствами. Однако, режим event поддерживается не всеми звуковыми картами. Таким образом, предпочтительным является режим event. Если же воспроизведение в нем работать отказывается, необходимо переключиться на режим push.
Caspersky74 , WASAPI в целом предпочтительнее ASIO - поддержка ASIO есть не везде, а если и есть, то нередко с ней возникают проблемы из-за косячных драйверов к звуковухе.
Caspersky74 » 01.04.2018, 22:49
Sadovnik Muller: Можно и последний пункт выбрать. Как лучше конкретно вам, кроме вас решить никто не может.
Мне лучше чтобы был наиболее максимально качественный звук без искажений.
postED: WASAPI в целом предпочтительнее ASIO - поддержка ASIO есть не везде, а если и есть, то нередко с ней возникают проблемы из-за косячных драйверов к звуковухе.
Sadovnik Muller » 01.04.2018, 22:59
vladj » 01.04.2018, 23:52
Эта звуковая аппаратно не поддерживает ASIO, что-бы её продолжали покупать производители заделали драйвер, аналог WASAPI. обход виндового микшера где гордо красуется в настройках словечко ASIO. ну и естественнно некоторые на это "покупаются"
Caspersky74 » 02.04.2018, 01:21
vladj , Ого, благодарю за пояснение! Выходит, что разницы нет, если это как бы "ASIO" аналог WASAPI?
Сейчас попробую описать, что услышал на различных треках c разной разрядностью, сравнивая между собой ASIO и WASAPI. Наушники Audio-technica ATH-A900X. Сомнительное конечно занятие описывать звук, но все же.
У ASIO звук показался более мягким, глубоким и на высоких кристальным, чувствуется сцена.
На WASAPI звук проходит как бы через электронную пленку, и из-за этого менее динамичен, и однозначно кажется более плоским.
Вывод: по звучанию однозначно мне ближе - ASIO.
megane68 » 02.04.2018, 02:31
Влад, ты задрал уже. Сколько раз объяснять, что нет никакой АППАРАТНОЙ поддержки ASIO. ASIO - это протокол передачи аудио- потока в обход микшера Windows, который реализуется с помощью ПРОГРАММНОГО драйвера.
За два года, после того как тебе это объяснили, не можешь изучить вопрос покопавшись в интернете и перестать наконец пудрить мозги пользователям.
Добавлено спустя 2 минуты 16 секунд:
Sadovnik Muller ,
у WASAPI exclusive существует два режима буферизации — Event и Push. Первый режим является технически более совершенным и лучше совместим с USB устройствами. Однако, режим event поддерживается не всеми звуковыми картами. Таким образом, предпочтительным является режим event. Если же воспроизведение в нем работать отказывается, необходимо переключиться на режим push.
Добавлено спустя 4 минуты 11 секунд:
Caspersky74: У ASIO звук показался более мягким, глубоким и на высоких кристальным, чувствуется сцена.
На WASAPI звук проходит как бы через электронную пленку, и из-за этого менее динамичен, и однозначно кажется более плоским.
Вывод: по звучанию однозначно мне ближе - ASIO.
У Вас неправильный вывод, если Вы говорите о WASAPI Exclusive (Event или Push).
Никакой разницы в звуке при выводе через эти режимы и ASIO нет и не может быть. Все три режима предоставляют побитово точную и следовательно идентичную передачу аудио- потока.
vladj » 02.04.2018, 11:01
Ну да, по твоему производители лгут когда пишут об аппаратной (железной) поддержке в их устройствах ASIO. Оказывается (по твоему) что они не озабочены прямыми физическими линиями внутри звуковой платы, которые позволяют вообще обойти все микшеры ? Изучать вопрос в инете. делать мне больше нечего что-ли ? Не поддерживали ранее мои старые звуковые карты ASIO, я и не дёргался понапрасну пытаясь игратся с суррогатами типа ASIO4ALL.
Поддерживает сейчас мой цап SMSL аппаратно ASIO, вот тут я могу воспользоватся плагином в фубаре для вывода по этому интерфейсу. но всё-равно предпочитаю WASAPI. При выводе например звука по HDMI на ресивер и речи не может быть о интерфейсе ASIO, все микшеры-цапы внутри компа обходятся стороной. Сырой звук принимается цапом ресивера и в нём обрабатывается. Но никто не озабочен при этом отсутствием ASIO.
Caspersky74 , ты озаботился "правильным " выводом звука и указал даже тип наушников. НО. карта у тебя внешняя или писяйная ? Если писяйная, то нельзя просто втыкать наушники в её линейный выход, который не рассчитан на такую низкоомную нагрузку, а усилителя для наушников в этой карте нет, с отдельным джеком для них. По поводу отличия звука при твоих тестах. ну это нужно рядом с тобой сидеть и смотреть что там и как настроено. или с десяток скринов от тебя буквально по всем настройкам начиная с винды и кончая настройками звуковой карты.
По совету megane68 , я пошел в инет и что там вижу. "Микширование в драйвере может быть программным, а может аппаратным. Особенно забавно выглядят попытки аудиофилов в качестве источника ставить профессиональный интерфейс для «качественной цифры», где цифра выдается после аппаратного микширования. Впрочем, некоторым отмикшированный звук нравится больше оригинального … чище, прозрачнее и душевней…" и "Исключительно от того, как был написан драйвер, будет происходить микширование финального потока до ЦАП", а драйвер у нас кто написал для креатива ? Правильно. они сами написали относительно недавно, потому как пользователя начитавшись в инете стали искать карты с поддержкой ASIO. Оно вам надо было, мы сделали "поддержку" ASIO. не аппаратно "железными" линиями в самой плате карты, а только программно, драйвером. Выбрось этот креатив (который больше заточен под игрушки с его кристаллайзеом "улучшающим " звучание) и подбери нормальную звуковую, которая аппаратно "железно" поддерживает ASIO (хоть megane68 и пишет, что нет такого вообще). Вот тогда будешь сравнивать и напишешь нам есть-ли отличия.
megane68 » 05.04.2018, 11:16
vladj: Ну да, по твоему производители лгут когда пишут об аппаратной (железной) поддержке в их устройствах ASIO.
Причём нагло!
Максимум, что можно сделать аппаратно - буфер в памяти самой карты.
Добавлено спустя 12 минут 32 секунды:
vladj: Оказывается (по твоему) что они не озабочены прямыми физическими линиями внутри звуковой платы, которые позволяют вообще обойти все микшеры ?
А зачем им это? Ну например мультимедийным картам? В них зачастую сами производители свои эффекты добавляют.
ASIO же был сделан для профессиональных музыкантов, чтобы избежать задержек воспроизведения. Например, возьмите миди клавиатуру подключенную по USB и попробуйте что-нибудь слабать через DS или WASAPI общего режима. Врядли что-то получится, потому как слышать звук Вы будете через полсекунды после нажатия на клавиши.
А уж побитовая идентичность врядли кого тогда интересовала, тем более, что в то время микшер Windows мог её обеспечить.
И да, не цитируйте безграммотных идиотов.
megane68 » 09.04.2018, 21:40
vladj , кстати, Влад. Из всего написанного, мне стало понятно, что Вы не понимаете, что микшер Windows нельзя обойти никакими аппаратными средствами, ибо мостом между программным обеспечением и аппаратным девайсом, то есть ОС и железом, соответственно, всегда является ПО (Программное обеспечение), в "лице" так называемого драйвера. И не важно какой он, WDM, ASIO, WASAPI или ещё какой-то из доселе непридуманных.
Via » 09.06.2018, 01:56
Звуковая карта E-MU 1616m PCI
Естественно с поддержкой ASIO.
Используется для записи.
Выбираю в Foobar драйвер E-MU ASIO
Звука нет.
Где копать?
vladj » 09.06.2018, 12:16
MeinHerz » 10.06.2018, 11:51
Мне кажется, по личному восприятию, что ни один из способов не имеет преимуществ качества выводимого звука. Все зависит только от аппаратной части и качества аудио-файла. Если звуковуха ноутбучная пищалка, то стоит прикупить внешнюю, где, опять же аппаратно, можно регулировать параметры выводимого звука. Все остальное самообман. Но все равно, я бы посоветовал WASAPI (event), по крайней мере не будут слышны системные звуки.
vladj » 10.06.2018, 19:49
Он пишет, что ему для записи. хотя какая разница. ASIO нужен только для игры на подключенных инструментах, а если просто запись контента, то задержки на так уж и важны. Почти все, кто юзает железки с аппаратным ASIO, уверяют, что по WASAPI хуже звучит, но лично мне с WASAPI проще и не хуже (хотя цап поддерживает аппаратный ASIO. Если начать вести речь о звуке тяжёлом в видеофайлах,через HDMI, то там вообще нет этого "трындежа" про ASIO.
Via » 10.06.2018, 20:06
Вшитая звуковая отключена в BIOS
В диспетчере устройств из звука только E-MU
Никаких асио4олл не ставилось никогда,
ибо есть хорошее аппаратное ASIO,
Видео - Intel HD вшитое в процессор,
т.е. нет никаких хвостов от nvidia.
Тачка собиралась под звукозапись.
В Cubase, где я пишусь, свожу и мастерю,
мне приходилось переназначать выходные порты:
вместо 1 и 2 (по-умолчанию)
Выставлены 15 и 16 порт, т.е. реальные порты выхода
звуковухи.
У меня такое ощущение, что здесь тоже что-то подобное должно быть.
Но где?
Если не настрою, то буду прослушивать, как и раньше через Windows Media Player (
---------------------
Записываю живой бас, гитары, вокал.
По midi - vst барабаны, синтезаторы, духовые и т.д.
Above left shows the Windows Audio Options with the FL Studio ASIO 'ASIO' driver selected, above right the macOS Core Audio 'Built-in Output' driver. If your Audio Interface has its own ASIO/Core Audio drivers, use them.
A word about Soundcards, Audio Interfaces & Drivers
Soundcard: The term 'soundcard' is used rather loosely, you may have a soundcard in your PC, a chip on your motherboard or it may be an external device connected by USB/FireWire/Bluetooth. The term Audio Interface is better used. An audio device is any device that makes the sound you hear from your PC speakers. Audio Interface Driver: The driver is the software interface between the operating system (OS) and the audio device hardware. The driver tells the OS, and so FL Studio, what inputs/outputs the interface has and what sample rates it can support. In the case of Windows, ASIO drivers are faster and more efficient than Primary Sound Driver drivers.
Options
Audio Input / Output
-
Device - A drop-down menu used to select the audio device (output/input device) to be used by FL Studio. The list will show installed audio device drivers. If you have more than one audio device installed, the Output menu can be used to switch between them (press F10 to open the settings panel).
- Windows - If you want to use a single input and output from two devices, then select FL Studio ASIO and choose separate Input and Outputs as shown below. If you want to use simultaneous inputs or outputs from several devices, select ASIO4ALL, open the Driver and Activate multiple inputs/outputs across devices.
- macOS - Open the Utilities folder and Aggregate audio devices. Then select the Aggregated device in Device list.
- Windows - Right-Click your volume control icon on the Windows task-bar, select 'Recording devices' or 'Playback devices' and select the audio device then 'Set as default' then select 'Properties > Advanced' and select a 24 bit 44100 Hz option if available OR 16 bit 44100 Hz if not. If you have an custom ASIO driver for your device the Bit depth settings may also be adjustable from there.
- macOS - Open Audio MIDI Setup (you can find it in Utilities, inside the Applications folder). For your selected audio device, on the right side of the Audio Devices window, set the Format: 44100 Hz / 2ch-24 Bit Integer.
Windows: Audio Properties
- Buffer Length - To change the buffer length, click on the 'Show ASIO panel' button below this readout. The buffer stores audio data before it's sent to your audio device. This allows FL Studio to even out momentary spikes in CPU load when processing that can be slower than 'real-time'. Longer buffers lower CPU load and reduce audio glitches. However with longer buffers the delay between playing a MIDI keyboard or tweaking a control in FL Studio and hearing it is at least equal to this setting (in ms). The ideal buffer is the smallest your computer can manage without causing the buffer underrun count to increase (techniques for optimizing the buffer are described here). A good target with ASIO drivers is 10 to 20 ms (440 to 880 samples).
- Clock Source - Some audio cards provide external clock source which can fix sync/output problems. However, most cards work properly with the default "Internal" source selected.
- Show ASIO Panel - Opens the ASIO driver settings panel, use this to change latency settings. Settings between 1-4 ms without underruns are 'cutting edge', 5-10 ms are excellent and 11-20 ms are good. 10 ms (441 samples) is a good target.
- Mix in buffer switch - Output audio is mixed in ASIO's 'buffer switch'. The option allows some audio devices to reach lower latencies. NOTE: When used the underrun counter is bypassed and buffer underruns may be more audible.
- Triple buffer - Can reduce audible underruns when close to 100% CPU load with some ASIO drivers. Triple buffering is most useful when mixing under high CPU load and with some audio device drivers known to crash when they receive too many buffer underruns (e.g. Tascam US122). NOTE: Triple buffering doubles the latency compared to what is set in the ASIO driver (see the 'Status' information just below the Device Driver menu). Good drivers trigger the buffer at the start of the latency period, and so FL Studio has the whole buffer latency period available to process audio. Poorly written drivers may trigger the buffer late in the period and so effectively lower the buffer time available, leading to underruns. The triple buffer option works one buffer unit behind, and prepares audio for the next buffer period at each cycle. This doubles the latency, but that ensures that there will be enough time to process each buffer unit.
FL Studio ASIO
FL Studio ASIO has the advantage of being fully multi-client on most machines. This will allow you to hear the audio from FL Studio and other applications (such as YouTube, SoundCloud etc) at the same time.
-
Input / Output - When this is set to [Default input] or [Default output], FL Studio will use the default Windows Input (Recording) and Output (Playback) device, as set and shown below. The [Default input] and [Default output] are decided by the 'Default Device' for Playback [Default output] and Recording [Default input] set on the Windows Sound Control Panel (Right-click the Windows speaker icon and choose 'Open Sound settings > Sound control panel'). You can also click this control and specifically select other inputs and outputs from the audio devices installed on your computer. If you need to aggregate multiple inputs and or outputs from multiple audio devices use ASIO4ALL.
Older Windows
NOTE: While your experience may vary, in situations where low latency performance is critical, we recommend you preference drivers in this order - Native ASIO driver > ASIO4ALLv2 > FL Studio ASIO. A Native ASIO driver is one that comes from the manufacturer of your audio device.
Primary Sound Driver Properties
- Buffer Length - This slider controls the audio buffer length. The buffer stores audio data before it's sent to your audio device. This allows FL Studio to even out momentary spikes in CPU load when processing that can be slower than 'real-time'. Longer buffers lower CPU load and reduce audio glitches. However with longer buffers the delay between playing a MIDI keyboard or tweaking a control in FL Studio and hearing it is at least equal to this setting (in ms). The ideal buffer is the smallest your computer can manage without causing the buffer underrun count to increase (techniques for optimizing the buffer are described here). A good target with Primary sound drivers is 20-50 ms (880 to 2205 ms).
- Offset - This option can improve driver performance under Windows Vista. The default 0% option is off.
- Use Polling - Polling is a technique for managing Primary Sound Driver's audio buffer, which usually allows much smaller buffer without underruns. On some PC-s, however, it can have the opposite effect.
- Use Hardware Buffer - Uses the hardware audio buffer of 'Primary Sound Driver' enabled sound cards.
- Use 32-Bit Buffer - Uses a 32-Bit floating-point buffer. Only works with Windows XP or above.
macOS: Audio Properties
- Buffer Length - This slider controls the audio buffer length. The buffer stores audio data before it's sent to your audio device. This allows FL Studio to even out momentary spikes in CPU load when processing that can be slower than 'real-time'. Longer buffers lower CPU load and reduce audio glitches. However with longer buffers the delay between playing a MIDI keyboard or tweaking a control in FL Studio and hearing it is at least equal to this setting (in ms). A good target with 'Built-in Audio' is 10 ms (441 samples) if you are playing a MIDI controller and 20 ms (880 samples) if you are not.
- System audio settings - From the Finder, search 'Utilities'. Open the Utilities folder and then the application 'Audio MIDI Setup'. From here you can make adjustments to the Audio settings for your Mac. The Built-in Output and Built-in Microphone are the default macOS Output and Input respectively.
Audio Processing Thread
- Priority - Sets the priority of the audio mixing thread. Higher = more CPU devoted to the audio mixing thread, but increases the risk of lockups/freezing when CPU demands become high. Lower = greater risk of buffer underruns. Adjust this (in combination with the buffer settings) if you have problems with lockups and/or buffer underruns.
- Safe overloads - Off: The audio mixing thread is given a very high priority, so that the user interface doesn't cause hiccups in the audio engine. When the audio mixing thread is using all the CPU, it may leave nothing to the Graphical User Interface (GUI), which will then appear frozen. On (default): 'Safe overloads' adapts the mixer priority when CPU overloads occur, leaving a little CPU to run the GUI, so that you can sill interact with FL and minimize the CPU usage.
- Underruns are only a problem if you hear glitches and clicks during live-playback. The total count does not matter if you don't hear them. You will see the count increase loading projects and plugins, this is normal and does not indicate a problem!
- If you hear glitches in rendered audio this is not an underrun, it's likely a plugin behaving badly.
- Some options and some audio-driver related underruns, can bypass the underrun counter. It's possible to can hear clicks and glitches in live audio, without the count increasing, and it is still an underrun. Although it could also be a plugin behaving badly, something to check.
Plugin output
- Slave Tempo - On: FL Studio will synchronize with the tempo of the host.
- Record Automation - When turned on, remote control messages (MIDI) from the host will be recorded during recording sessions.
Playback tracking
- Playback tracking source:
- Driver - The audio driver is used for playback position. NOTE: If your audio interface has a manufacturer-supplied driver, you should select it in the Device menu and use 'Driver' mode for optimal performance.
- Hybrid - Driver/Mixer hybrid position. This option can be effective to fix visual jitter of the playhead or timing errors to solve audio/video timing problems that can happen with some audio devices.
- Mixer (default) - The Mixer position is used. This works acceptably when the buffer latency is around 10ms (441 samples), or less, to solve audio/video timing problems that can happen with some audio devices. NOTE: If you are using a 3rd party Audio Interface, prefer 'Driver' mode.
- Input quantizing under the control of the Global Snap setting
- Latency compensation due to the Mixer menu > Disk recording> Latency compensation setting
OR if the playhead position and other visuals don't align with the audio, use the slider to add positive or negative offset to realign the Play & record position. This is a global change to all tracks.
Foobar2000 — это мощный проигрыватель для ПК с простым, понятным интерфейсом и довольно гибким меню настроек. Собственно, именно последние, а также удобство использования, делают данный продукт столь популярным и востребованным в первую очередь среди опытных пользователей и ценителей высококачественного аудио. Для новичков его освоение тоже не станет сложной задачей, особенно после ознакомления с настоящей статьей, которая будет посвящена настройке Foobar2000.
Настройка плеера Фубар2000
Foobar2000 поддерживает все актуальные форматы аудио, но чаще всего его используют для прослушивания Lossless (WAV, FLAC, ALAC), так как его возможности позволяют выжать максимум качества из этих файлов, а точнее, попросту не урезать его, как это делают большинство проигрывателей. Далее мы подробно расскажем о том, как настроить данный аудиоплеер на качественное и чистое воспроизведение, но не забудем и о его внешнем преобразовании.
Шаг 1: Установка
Скачав данный аудиоплеер (для этого воспользуйтесь ссылкой выше), установите его на ПК. Сделать это не сложнее, чем с любой другой программой — просто следуйте пошаговой инструкции Мастера установки.
Шаг 2: Предварительная настройка
Запустив проигрыватель впервые, вы увидите окно быстрых настроек (Quick Appearance Setup), в котором можно выбрать один из 9 стандартных вариантов оформления. Это далеко не самый обязательный этап, так как настройки внешнего вида всегда можно изменить в меню View → Layout → Quick Setup. Тем не менее, выполнив этот пункт, вы уже сделаете Foobar2000 не таким примитивным. Определившись с базовыми параметрами, нажмите «ОК» для закрытия окна и перехода далее.
Шаг 3: Настройка воспроизведения
Если в вашем компьютере установлена качественная аудиокарта (или таковая подключена к нему), поддерживающая технологию ASIO, рекомендуем загрузить для нее и плеера специальный драйвер, который обеспечит оптимальное качество вывода звукового сигнала через данный модуль.
-
Скачав этот маленький файл, поместите его в папку «Components», расположенную по следующему пути (если место установки программы по умолчанию не менялось):
C:\Program Files (x86)\foobar200\components
Как ни странно, но столь простая мелочь действительно способна преобразить качество воспроизведения звука в Foobar2000. При этом владельцам интегрированных звуковых карт либо устройств, не поддерживающих ASIO, тоже не стоит отчаиваться. Лучшим решением в таком случае будет воспроизведение музыки в обход системного микшера. Для этого нужен программный компонент Kernel Streaming Support.
Шаг 4: Настройка для воспроизведения SACD
Традиционные CD-диски, обеспечивающие качественное звучание аудиозаписей без сжатия и искажений, уже не так популярны. На смену им медленно, но уверенно приходит формат SACD. Он гарантированно обеспечивает более высокое качество воспроизведения, даря надежду на то, что в современном цифровом мире у Hi-Fi-аудио все же есть будущее. Используя Foobar2000, парочку сторонних плагинов и цифро-аналоговый преобразователь, можно превратить компьютер в качественную систему проигрывания DSD-аудио — формата, в котором хранятся записи на SACD.
Прежде чем приступить к настройке и установке, необходимо отметить, что воспроизведение аудиозаписей в DSD на компьютере невозможно без их PCM-декодирования. К сожалению, это далеко не лучшим образом сказывается на качестве звучания. Чтобы устранить этот недостаток, была разработана технология DoP (DSD over PCM), главный принцип которой — это представление однобитного фрейма (frame) в виде совокупности мультибитных блоков, понятных для ПК. Это и позволяет избежать проблем, связанных с точностью PCM-перекодирования, что называется, на лету. На изображении ниже показана схема, по которой работает DoP.
Примечание: Данный метод настройки Foobar2000 подойдет только для тех пользователей, имеющих в своем распоряжении специальное оборудование — DSD-ЦАП, который и будет обрабатывать DSD-поток (в нашем случае это уже DoP-поток), поступающий с накопителя.
Итак, приступим к настройке.
- Убедитесь в том, что ваш DSD-ЦАП подключен к ПК и в системе установлено программное обеспечение, необходимое для его корректной работы (данный софт всегда можно скачать с официального сайта производителя оборудования).
- Воспользовавшись представленной ниже ссылкой, скачайте и установите программный компонент, необходимый для воспроизведения SACD. Делается это точно так же, как и с модулем ASIO Support, который мы помещали в корневую папку плеера и запускали.
Дважды кликните по foo_dsd_asio, чтобы открыть его настройки. Выставьте параметры так, как это показано на следующем изображении:
Шаг 5: Изменение фона и расположения блоков
Стандартными средствами Foobar2000 можно настроить не только его цветовую схему, но и фон, а также отображение блоков. Для таких целей в программе предусмотрено три схемы, каждая из которых основана на разных компонентах.
Default user Interface — это то, что встроено в оболочку проигрывателя. Помимо этой схемы отображения есть еще две: PanelsUI и ColumnsUI. Однако прежде чем перейти к изменению этих параметров, нужно определиться с тем, сколько схем (окон) вам действительно необходимо в основном окне Foobar2000. Давайте вместе прикинем, что вы точно хотите видеть и всегда держать перед собой — это явно окно с альбомом/исполнителем, обложка альбома, возможно, плейлист, а остальное уже опционально. Выбрать наиболее подходящее количество схем можно в настройках проигрывателя: View → Layout → Quick Setup.
Следующее, что нам нужно сделать — активировать режим редактирования: View → Layout → Enable Layout Editing. Появится небольшое окно с подсказкой:
Кликнув правой кнопкой мышки на любой из панелей, вы увидите специальное меню, с помощью которого можно отредактировать блоки. Это поможет еще больше кастомизировать внешний вид Foobar2000.
Дополнительно: Установка сторонних скинов
Для начала стоит отметить, что скинов или тем, как таковых, для Foobar2000 нет. Все что распространяется под данным обозначением, представляет собой готовые конфигурации, содержащие в составе наборы плагинов и файлы конфигурации. Эти компоненты импортируются в плеер.
Если у вас установлена последняя версия программы, настоятельно рекомендуем использовать темы, основанные на ColumnsUI, так как это гарантирует наилучшую совместимость компонентов. Большой выбор тем оформления представлен в официальном блоге разработчиков плеера.
К сожалению, не существует единого механизма установки «скинов», как и любых других плагинов. В первую очередь все зависит от компонентов, входящих в состав того или иного дополнения. Мы рассмотрим данный процесс на примере одной из самых популярных тем оформления для Foobar2000 — Br3tt.
-
Для начала распакуйте содержимое архива со шрифтами (третья, последняя ссылка выше) и поместите его по следующему адресу
Примечание: Копировать необходимо сами файлы, а не архив и не папку, в которой они находятся.
C:\Program Files (x86)\foobar2000\foobar2000skins\xchange )
Выполните импорт, открыв соответствующий файл конфигурации в программе.
Например, с помощью данной оболочки можно загружать из сети тексты песен, получать биографию и фото исполнителей. Сам подход к размещению блоков в окне программы тоже заметно изменился, но главное то, что теперь можно самостоятельно выбирать размер и расположение тех или иных элементов, скрывать лишние, добавлять необходимые. Некоторые изменения можно вносить непосредственно в окне программы, некоторые в настройках, которые, к слову, стали теперь заметно шире.
Заключение
На этом все, теперь вы знаете, как настроить Foobar2000. Несмотря на кажущуюся простоту, данный аудиоплеер представляет собою весьма многофункциональный продукт, в котором практически каждый параметр можно изменить и адаптировать под себя. Приятного пользования и удовольствия от прослушивания любимой музыки.
Мы рады, что смогли помочь Вам в решении проблемы.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Forum rules
POSTS HERE ARE PRIVATE. INSTRUCTIONS BELOW:ALL posts made in this forum are 'Private' so that only you and staff can see them. This allows sharing of personal data, projects and other information. Posts are generally made public after they are marked 'Solved' AND there was no personal data contained in them. If you don't want your post made public let the team know.
We know it's frustrating when things don't work. However, please help us to help you by following these suggestions:
- Update - Before trying anything else. Download and install the latest version of FL Studio from here. Your bug may be fixed already!
- Update plugins - If you are using 3rd party plugins. Look at crash logs for their names. Install the latest version for any you spot. See also Plugins Behaving Badly
- Simple clear explanation - Explain what you are doing, or trying to do, and exactly what is happening.
- Specific information - a) FL Studio version & build number, b) what you are doing and what happens exactly, c) step-by-step instructions how reproduce the problem.
- Screenshots - Another great way to demonstrate issues. Get a free screenshot app here. Include images using the 'Attachments' tab, at the bottom of the post edit window.
- A video - The best way of demonstrating many issues. Windows 10 includes an integrated screen recorder, see here OR get a free free recorder here. Include mp4 videos to your post from the 'Attachments' tab, at the bottom of the post edit window.
- Use English - Google Translate your post. Short simple sentences in your original language translate best. We are happy to work this way, no need to worry.
Primary Sound Driver vs. ASIO4ALL
Question about the differences between these two drivers. I run into a problem when I select the ASIO4ALL driver while simultaneously trying to listen to a youtube video, like a tutorial or something. It seems ASIO4ALL can't allow FL Studio and Google Chrome (or Itunes) to share the driver, thus I can only hear audio from one application - usually whatever is opened first. However, when I select the Primary Sound Driver, this is not a problem as I can keep everything open, and can still here the audio from all applications. Why does ASIO4ALL have this limitation? I've attached a JPEG showing what my options look like in the ASIO panel in Audio Settings.
My end goal is to use the ASIO4ALL driver for FL Studio, but still be able to toggle freely between (and still hear) other audio producing applications. So is it possible to select the ASIO4ALL driver for FL Studio, and route Chrome or Itunes to the Primary so they don't conflict? Or is there an better way to do this? I have to note that I really don't understand the ins and outs of how audio is handled. I just bought a soundcard and stuck into the PCI slot, end of story. Beyond that my knowledge leaves much to be desired. On a side note, I do have a set of speakers and monitors. I was contemplating sticking the monitors into the audio out of my dedicated soundcard (for FL), and the speakers into the mobo audio out (for Itunes or youtube), but this is just me sticking things into different places and hoping they work.
Читайте также:
- Изменить направление текста в таблице автокад
- Открывать ссылки на внешние приложения в браузере что это
- 1 какой уровень модели открытых систем реализует сетевой адаптер вместе с драйвером
- Antispy что это за программа на андроид
- Определите соответствие вкладок excel по их назначению соедините элементы попарно