Перейти к основному содержанию

О треске («Crunchy audio»)

В основном MIDI в SS14 работает так: У нас есть x буферов длиной y каждый. Синтезирование/рендеринг MIDI происходит в другом потоке, в цикле. Мы заполняем столько буферов, сколько доступно на каждой итерации. Это означает, что всегда будет некоторая задержка при использовании MIDI-ввода. OpenAL воспроизводит буферы в реальном времени, пока есть хотя бы один буфер, заполненный данными. Но что произойдёт, если OpenAL будет воспроизводить буферы намного быстрее, чем мы можем их заполнять? Звук становится трескучим.

Пользовательские инструменты и вы

Любые soundfonts, найденные в Resources/MidiCustom, будут автоматически загружены в новые MIDI-рендереры. Это означает, что вы можете легко создавать свои собственные инструменты для использования в игре! Только помните, что нельзя использовать банк 0, так как он зарезервирован для General MIDI 1. В настоящее время у нас есть кастомный soundfont под названием space-station-14.sf2. В идеале вы должны добавлять новые инструменты в него, а не создавать новые soundfont’ы для добавления отдельных инструментов.

Список пользовательских инструментов

BankProgramName
001001Bike Horn
001002pAI Synth
001003Euphonium

Программы для редактирования soundfont’ов

Поведение загрузки soundfont’ов

Сам Robust поставляется только с крошечным встроенным fallback.sf2, который не подходит для воспроизведения разных инструментов. Soundfont’ы вместо этого автоматически загружаются из стандартных мест в операционной системе. В этом разделе будет описан точный процесс для целей отладки (и если вы хотите использовать пользовательский soundfont в качестве игрока). Благодаря библиотеке FluidSynth, Robust может загружать soundfont’ы в форматах .sf2, .sf3 и .dls. Загрузка soundfont’ов происходит в несколько этапов. Soundfont’ы, загруженные на более позднем этапе, могут заменять инструменты, загруженные из более ранних, если применимо.

Этап 0: встроенный soundfont

Soundfont /Midi/fallback.sf2, входящий в состав Robust, загружается раньше всего.

Этап 1: soundfont’ы операционной системы

Robust автоматически попытается загрузить soundfont из стандартного расположения в операционной системе. Пути к файлам следующие:
  • Windows: %SystemRoot%\system32\drivers\gm.dls
  • macOS: /System/Library/Components/CoreAudio.component/Contents/Resources/gs_instruments.dls
  • Linux (все пути перебираются по порядку; возможно, вам потребуется установить пакеты, специфичные для вашего дистрибутива):
    • /usr/share/soundfonts/default.sf2
    • /usr/share/soundfonts/default.dls
    • /usr/share/soundfonts/FluidR3_GM.sf2
    • /usr/share/soundfonts/FluidR3_GM2-2.sf2
    • /usr/share/soundfonts/freepats-general-midi.sf2
    • /usr/share/sounds/sf2/default.sf2
    • /usr/share/sounds/sf2/default.dls
    • /usr/share/sounds/sf2/FluidR3_GM.sf2
    • /usr/share/sounds/sf2/FluidR3_GM2-2.sf2
    • /usr/share/sounds/sf2/TimGM6mb.sf2

Этап 2: переменная окружения

Если установлена переменная окружения ROBUST_SOUNDFONT_OVERRIDE, Robust также загрузит её как soundfont.

Этап 3: soundfont’ы контента

Контент может предоставлять дополнительные soundfont’ы для загрузки, включая их в директорию ресурсов /Audio/MidiCustom/. Они будут автоматически загружены на этом этапе.

Этап 4: пользовательские soundfont’ы

Пользователи могут размещать дополнительные soundfont’ы в своей директории пользовательских данных, по пути /soundfonts/. Все soundfont’ы в этой директории (если она существует; по умолчанию она не создаётся) будут загружены.
Последнее изменение 21 июня 2026 г.