Пятница, 19.04.2024, 03:44
Вы вошли как Гость | Группа "Гости" | RSS

Главная | минимизация задержки звука | Регистрация | Вход
Меню сайта
Форма входа
Календарь
«  Апрель 2024  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930
Архив записей
Статистика
NoteTrainer PRO

Минимизация задержки звука

Если ваша модель синтезатора не оснащена тон-генератором или вы хотите использовать программные синтезаторы, то скорее всего столкнетесь с тем, что звучание извлекаемой ноты будет начинаться не сразу после нажатия на соответствующую клавишу, а с некоторым запаздыванием. Этот феномен (так называемая латентность), обусловлен спецификой работы звуковой подсистемы Windows и для устранения этого эффекта потребуется скачать и установить на компьютер несколько утилит.

Самое основное - это драйвер ASIO4ALL. Он позволит передавать данные звуковой карте не пользуясь интерфейсами Windows MME (MultiMedia Extensions), которые и создают задержку. Скачать его можно с официального сайта или (копия версии 2.13).

Что бы воспользоваться этим драйвером нам будет нужна еще одна программа, которая заменит собой встроенный в Windows стандартный синтезатор "Microsoft GS Wavetable Synth". Различных программных синтезаторов существует довольно много и экспериментировать с ними можно до самой пенсии. Поэтому в качестве синтезатора воспользуемся каким-нибудь бесплатным VST-инструментом и программой-оболочкой для его запуска (vst-хостом).

Самое простое VST-фортепиано, бесплатное и совсем без настроек - это наверное "4Front Piano". Можно скачать отсюда, или поискать в интернете что-нибудь другое среди сотни тысяч миллиардов бесплатных VST-инструментов. Динамически загружаемую библиотеку из распакованного архива "4Front Piano.dll" лучше всего переместить/скопировать в каталог "C:\Program Files (x86)\VstPlugins", тогда доступ к этому инструменту появится и у других программ поддерживающих VST-расширения.

Бесплатным VST-хостом нам послужит программа VSTHost. Вот ссылка на 32-битную версию, но на сайте её автора есть и 64-битный вариант (но для нее вероятно потребуются и 64-битные VST-инструменты). Архив нужно распаковать и запустить "vsthost.exe". Если "4Front Piano.dll" была перенесена в папку VstPlugins, то этот инструмент можно будет открыть через меню File->PlugIns... :

меню File->PlugIns...

Если же копировать .dll'ку вы поленились, то придется указать программе-хосту путь к ней через меню File->New PlugIn... (Ctrl+N)

По умолчанию VSTHost автоматически подключает открываемые расширения (если стоит галочка в File->PlugIn Auto-Connect), поэтому после успешного обнаружения и добавления в программу 4Front Piano, вы увидите что-то вроде этого:

добавление расширения

Этого должно быть достаточно, что бы услышать звучание выбранного вами VST-инструмента. Для этого в меню "View->Keyboard Bar" включите отображение виртуальной клавиатуры и понажимайте на нее мышкой:

виртуальная клавиатура

Осталось настроить перенаправление MIDI-сообщений из NoteTrainer'а в программу VSTHost, где они будут озвучиваться. Сделать это можно с помощью "виртуального кабеля" - программы-драйвера эмулирующей виртуальный MIDI-порт. Сначала я установил Midi Yoke, и она даже заработала, но потом нашел поновее: loopMIDI. После инсталляции и запуска появляется вот такое окно, в котором нужно ввести названия и создать пару виртуальных MIDI-портов:

окно loopMIDI

Что бы VSTHost знал, какие MIDI-команды он должен воспроизводить, нужно указать ему устройство MIDI-ввода. Делается это в меню "Devices->MIDI...". После создания двух виртуальных-портов вы должны увидеть их названия в этом окне настроек:

виртуальные MIDI-порты

Выбрав порт (1) окно можно закрыть, нажав "ОК".

Не смотря на все проделанные манипуляции звук по-прежнему выводится через Windows MME. Вполне возможно, что скорость VST-синтезатора вас вполне устроит и его задержки будут несущественными (или, по крайней мере, гораздо меньше задержек от "Microsoft GS Wavetable Synth"). Если же "заикание" все равно заметно, то стоит попробовать изменить MME на ASIO. Сделать это можно в меню "Devices->Wave...", выбрав в поле "Output Port" значение "ASIO: ASIO4ALL v2":

вывод звука через ASIO-драйвер

И теперь, если запустить NoteTrainer (или другую программу такого типа, например Synthesia), и выбрать в качестве выходного MIDI-устройства созданный нами виртуальный порт, то вводимые ноты будут озвучены в VSTHost'е через ASIO4ALL-драйвер. Главное не назначать один и тот же порт в качестве входного и выходного устройства. Если для воспроизведения-MIDI используется порт (1), то для ввода обязательно нужно выбрать что нибудь другое:

вывод звука через ASIO-драйвер
Бесплатный конструктор сайтов - uCozCopyright MyCorp © 2024