У меня установлен Timidity++ со звуковыми шрифтами FluidSynth. Как заставить Timidity воспроизводить любые MIDI-данные, сопоставляя все инструменты с синусоидальным инструментом (патч 81, банк 2, в соответствии с General MIDI Level 2 )?
Я пробовал, например, это в конфигурационном файле Timidity:
map gm2 0 19 2 81
Но он не использовал синусоидальный инструмент для конкретного MIDI-файла, который я воспроизводил (банк 0, патч 19 = инструмент «церковный орган» в этом конкретном файле).
Хм, я ничего не могу map
сделать, так что без изучения исходного кода, кто знает. Однако! Если у вас есть файл звукового шрифта, записи конфигурации bank
и , похоже, делают свое дело с помощью следующего :number
~/share/timidity/timidity.cfg
dir /home/jdoe/share/timidity/inst
bank 0
0 %font tabla_drums.sf2 0 0
1 %font tabla_drums.sf2 0 0
...
127 %font tabla_drums.sf2 0 0
Где /home/jdoe/share/timitidy/inst
каталог содержит для этого примера tabla_drums.sf2
файл SoundFont. Это отображает тестовые MIDI-файлы для использования табла-барабанов через:
% timidity --config-file=~/share/timidity/timidity.cfg foo.midi
Однако с помощью lspatch.pl
скрипта в дереве исходного кода timidity и sf_list
скрипта MIDI::SoundFont
модуля perl я не могу найти ни шаблонов патча 81 банка 2, ни записей звукового шрифта, поэтому я не уверен, что это могло бы предоставить, поскольку это не похоже присутствует в timidity 2.13.2, ни через звуковой шрифт GeneralUser_GS_1.43-FluidSynth... (если есть файл паттерна с синусоидой, то number
конфигурация будет работать примерно так 0 blah.pat
и так для всех номеров патчей.)
Другим вариантом было бы отредактировать MIDI и изменить любые patch_change
события для использования определенного инструмента, но это больше работы, и также могут быть события выбора банка, которые также нуждаются в фильтрации.
Опираясь на ответ Трига :
Загрузите Sine Wave.sf2 и поместите его /usr/share/sounds/sf2/
(или куда угодно, где находится ваш каталог звуковых шрифтов). Добавить в timidity.cfg
(или соответствующий файл, который он использует trysource
):
81 %font "Sine Wave.sf2" 2 81 amp=100 pan=0
Из timidity.cfg
справочной страницы:
номер %font file bank prog [клавиша] [опции]
номер %sample file [опции]Указывает, что номер программы MIDI в текущем банке тембров или наборе ударных должен воспроизводиться с использованием файла патча. Если файл SoundFont, конкретный инструмент с банком , прогой и ключом выводится в формате числа %font . Если файл представляет собой линейные семпловые данные AIFF или WAV, номер программы MIDI указывается в формате числа %sample .
Если вы хотите переназначить:
map MapID1 из-банка из-проги в-банка в-прогу
Существующий тон назначается как тон GS/XG для каждой карты. gm2 , sc55 , sc88 , sc88pro , sc8850, xg и xgsfx64 могут быть указаны как MapID1 .
добавлять
map gm2 0 19 2 81
к timidity.cfg
тоже.
Тем не менее, я попробовал это и timidity
все еще играл оригинальный миди с инструментом Square Lead (банк 0, патч 81), а не Sine Wave (банк 2, патч 81).
Кроме того, Musescore может редактировать MIDI-файлы и легко менять голос на «Sine Wave». См. « Использование пользовательских SoundFonts в MuseScore ».