Rating@Mail.ru
IPB
Etersoft - from Windows to Linux
Etersoft
решения для перехода
с Windows на Linux
Дружественные сайты: alv.me и Rus-Linux.net

Здравствуйте, гость ( Вход | Регистрация ) Поиск · 

 
Reply to this topic Start new topic
> В MIDI файлах играют не все инструменты
MiK13
bookmark
gyfbbdvkffmrljmmmwd
Oct 4 2017, в 01:07
Сообщение #1


Знаток линукса
Иконка группы

Сообщений: 518

Вставить имя   :   Цитата

ОС: Windows XP
Город: Minsk

Группа: Участники

Автор темы
Предисловие:
Племянник увлекается музыкой и у него возникла задача преобразовать MIDI в MP3. Решал эту задачу (в винде) конвертацией в реальном времени через звуковую карту.
Я нашёл какой-то онлайновый конвертер, но он даёт плохое качество (и 64 кбит/с).
Решил посмотреть, что есть в линуксе. Нашёл (и поставил) сначала timidity, а потом и редактор tuxguitar.
Сначала всё оказалось очень просто. Обе программы позволяют получить WAV файл (причём, очень быстро). Правда, оказалось, что tuxguitar полностью захватывает звук -- когда он работает mplayer просто зависает. Но это мелочь.
Но оказалось, что одни и те же midi-файды под виндой и в линуксе звучат по-разному.
Кроме того, на многих файлах, при проигрывании через timitidy выскакивают сообщения типа
Код
Drum set 14 is undefined
No instrument mapped to tone bank 0, program 50 - this instrument will not be heard
No instrument mapped to tone bank 0, program 51 - this instrument will not be heard
No instrument mapped to tone bank 0, program 52 - this instrument will not be heard
И в tuxguitar, часть инструментов играет, а часть нет. То есть, как я понимаю, не для всех инструментов в линуксе есть образцы звуков.
Поэтому у меня и возник вопрос, можно ли загрузить звуки тех инструментов, которые отсутствуют? И если да, то как это сделать?
И хотелось бы, чтобы инструменты в Linux и Windows совпадали.
Go to the top of the page
 
+Quote Post
Bizdelnick
bookmark
gyfbbdvkffmrljmmmwd
Oct 4 2017, в 12:29
Сообщение #2


grammatikführer
Иконка группы

Сообщений: 12811

Вставить имя   :   Цитата

ОС: Debian GNU/Linux
Город: Санкт-Петербург

Группа: Модераторы разделов

fluidsynth не пробовали?


--------------------
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Go to the top of the page
 
+Quote Post
Obscurus
bookmark
gyfbbdvkffmrljmmmwd
Oct 5 2017, в 10:52
Сообщение #3


Постоялец
Иконка группы

Сообщений: 159

Вставить имя   :   Цитата

Группа: Участники

Цитата
No instrument mapped to tone bank

Возможно некоторым трекам в файле не назначены инструменты. В Tuxguitar их можно поменять в свойствах дорожки.
Go to the top of the page
 
+Quote Post
MiK13
bookmark
gyfbbdvkffmrljmmmwd
Oct 6 2017, в 18:28
Сообщение #4


Знаток линукса
Иконка группы

Сообщений: 518

Вставить имя   :   Цитата

ОС: Windows XP
Город: Minsk

Группа: Участники

Автор темы
Цитата(Obscurus @ Oct 5 2017, в 10:52) *
Цитата
No instrument mapped to tone bank

Возможно некоторым трекам в файле не назначены инструменты. В Tuxguitar их можно поменять в свойствах дорожки.

Возможность поменять инструмент я нашёл. Но проблема в другом.
В tuxguitar можно для дорожки выбрать один из 128 инструментов. Например, первые 6 инструментов:
  1. Piano
  2. Bright Piano
  3. Electric Grand
  4. Honky Tonk Piano
  5. Electric Piano 1
  6. Electric Piano 2

А в файле /etc/timidity/freepats.cfg в разделе bank 0 Также есть список инструментов.Вот первые пять:
Код
0      Tone_000/000_Acoustic_Grand_Piano.pat amp=120 pan=center
1      Tone_000/001_Acoustic_Brite_Piano.pat
2      Tone_000/002_Electric_Grand_Piano.pat
4      Tone_000/004_Electric_Piano_1_Rhodes.pat
5      Tone_000/005_Electric_Piano_2_Chorused_Yamaha_DX.pat
Имена похожи, но после Tone_000/002_Electric_Grand_Piano.pat идёт сразу Tone_000/004_Electric_Piano_1_Rhodes.pat. То есть ссылка на Honky Tonk Piano отсутствует. Соответственно нет и файла в каталоге /usr/share/midi/freepats/Tone_000. Поэтому, если выбрать этот инструмент, он звучать не будет.
И вообще, образцы есть только для 72 инструментов. То есть образцы звучания 56 инструментов отсутствуют.
Поэтому у меня и возник вопрос: где можно найти недостающие инструменты? Может быть их можно взять из винды?

P.S. Раз образцы звучания инструментов находятся в файлах *.pat, то постараюсь поискать эти файлы в винде.
Go to the top of the page
 
+Quote Post
Bizdelnick
bookmark
gyfbbdvkffmrljmmmwd
Oct 6 2017, в 18:46
Сообщение #5


grammatikführer
Иконка группы

Сообщений: 12811

Вставить имя   :   Цитата

ОС: Debian GNU/Linux
Город: Санкт-Петербург

Группа: Модераторы разделов

Цитата(MiK13 @ 6th October 2017 - в 18:28) *
где можно найти недостающие инструменты?

Пакеты *-soundfont* — это не то?


--------------------
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Go to the top of the page
 
+Quote Post
ormorph
bookmark
gyfbbdvkffmrljmmmwd
Oct 6 2017, в 21:25
Сообщение #6


Бывалый
Иконка группы

Сообщений: 478

Вставить имя   :   Цитата

ОС: Gentoo

Группа: Участники

MiK13 вам же Bizdelnick Уже предлагал fluidsynth использовать, он так же как и timidity, может использоваться в качестве midi секвенсера, так же если он собран с поддержкой sndfile, то можно и конвертировать midi в wav. Качество звучания зависит от подобранных банков звуков. Благо что готовых банков в формате SF2 полно в интернете.

Примеры:

конвертирование midi в wav.
Код
$ fluidsynth -F outfile.wav filebank.sf2 file.mid

Запуск midi секвенсера с выводом звука в pulseaudio, делается под пользователем.
Код
$ fluidsynth -a pulseaudio -c2 -R0 -C0 -i -l -s /usr/share/sounds/sf2/FluidR3_GM.sf2

Если надо вывод в alsa, то поменять pulseaudio на alsa, это уже делается под пользователем root.
Так же для audacious есть плагин для проигрывания midi через fluidsynth. там нужно только банк звука выставить в гуе.
Вот пример с конвертированного файла через fluidsynth и lame, в mp3 тыц, использовался банк:
'084.0mg All In One Gm V1.1 Bank.sf2'

Зы: через fluidsynth звук на много лучше timidity.
Go to the top of the page
 
+Quote Post
Bizdelnick
bookmark
gyfbbdvkffmrljmmmwd
Oct 6 2017, в 22:58
Сообщение #7


grammatikführer
Иконка группы

Сообщений: 12811

Вставить имя   :   Цитата

ОС: Debian GNU/Linux
Город: Санкт-Петербург

Группа: Модераторы разделов

Скачал на пробу штук несколько файлов, установил timidity и fluid-soundfont-gm. По умолчанию используется freepats, за это отвечает строка
Код
source /etc/timidity/freepats.cfg
в /etc/timidity/timidity.cfg. Можно её закомментировать и раскомментировать
Код
source /etc/timidity/fluidr3_gm.cfg
чтобы использовался fluid-soundfont-gm. В обоих случаях ошибок о нехватке инструментов у меня не было.


--------------------
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Go to the top of the page
 
+Quote Post
Bizdelnick
bookmark
gyfbbdvkffmrljmmmwd
Oct 6 2017, в 23:12
Сообщение #8


grammatikführer
Иконка группы

Сообщений: 12811

Вставить имя   :   Цитата

ОС: Debian GNU/Linux
Город: Санкт-Петербург

Группа: Модераторы разделов

Если посмотреть содержимое fluidr3_gm.cfg, можно увидеть, что там присутствуют и drumset 14, и bank 0 с 0 по 127 полностью.


--------------------
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Go to the top of the page
 
+Quote Post
ormorph
bookmark
gyfbbdvkffmrljmmmwd
Oct 7 2017, в 08:54
Сообщение #9


Бывалый
Иконка группы

Сообщений: 478

Вставить имя   :   Цитата

ОС: Gentoo

Группа: Участники

Вообще я бы сказал что стандартный набор звуков gm.dls в винде, в качестве звуков просто ужасен.
Старенький CT8MGM.SF2 от Creative SB, на много лучше будет звучать. Ну и то, что в том что в том не все звуки присутствуют...
Вот с этого сайта можно скачать банки инструментов, там есть сжатые форматы, которые еще нужно будет конвертировать в sf2. Под linux sfArk можно конвертировать с помощью sfarkxtc. Расширение sfpack, можно конвертировать с помощью программы SFPACK, там на сайте есть для виндовс, но под wine она идет хорошо.
Ну и вот еще ссылка на одну из страниц того же сайта тыц.

Зы: лично мне больше всего понравились банки GMR Basico1.1 и OmegaGMGS2
Go to the top of the page
 
+Quote Post
ormorph
bookmark
gyfbbdvkffmrljmmmwd
Oct 7 2017, в 11:12
Сообщение #10


Бывалый
Иконка группы

Сообщений: 478

Вставить имя   :   Цитата

ОС: Gentoo

Группа: Участники

Еще добавлю несколько строк.
Загрузка нескольких банков звуков SF2 в fluidyinth:
Создается файл в котором прописывается загрузка банков допустим ~/.fluidyinth/fluidyinth.conf:
Код
load "/путь/file1.sf2"
load "/путь/file2.sf2"

Затем на месте где обычно прописывается file.sf2 подключаем этот конфиг ключиком -f. В результате можно подобрать инструменты для наилучшего звучания и конвертации, вроде еще порядок загрузки файлов влияет...
пример:
Код
$ fluidsynth -F file.wav -f ~/.fluidyinth/fluidyinth.conf file.mid

Так же есть еще графический midi секвенсор -> Гуй для fluidsynth qsynth, он использует библиотеки fluidsynth, так же может загружать несколько банков.
Например с Rosegarden qsynth работает норм.
Go to the top of the page
 
+Quote Post
MiK13
bookmark
gyfbbdvkffmrljmmmwd
Oct 8 2017, в 01:13
Сообщение #11


Знаток линукса
Иконка группы

Сообщений: 518

Вставить имя   :   Цитата

ОС: Windows XP
Город: Minsk

Группа: Участники

Автор темы
Цитата(Bizdelnick @ Oct 6 2017, в 22:58) *
Скачал на пробу штук несколько файлов, установил timidity и fluid-soundfont-gm. По умолчанию используется freepats, за это отвечает строка
Код
source /etc/timidity/freepats.cfg
в /etc/timidity/timidity.cfg. Можно её закомментировать и раскомментировать
Код
source /etc/timidity/fluidr3_gm.cfg
чтобы использовался fluid-soundfont-gm. В обоих случаях ошибок о нехватке инструментов у меня не было.

Спасибо. Сделал то, что Вы посоветовали. И проблема решилась. Правда, не до конца.
То есть сообщения об отсутствии инструментов не появляются. И играют, похоже, все инструменты.
Но вот в tuxguitar ничего не изменилось. Те инструменты, которые не играли, так и не стали играть.
Хотя если мелодию с этим "неиграющим" инструментом экспортировать в формате MIDI, то timidity её проигрывает. Причём, с тембром близким к заданному. Я проверил 9, которые не звучат -- все звучат. Правда, 4 из них почему-то только в правом канале.

Когда написал этот текст, вспомнил, что tuxguitar работает через timidity, который запущен как сервис. А я его не перезапускал.
Выдал service timidity restart и всё стало звучать.
А с дополнительными банками звуков я как-нибудь потом постараюсь разобраться. Как будет время.
А работа с midi нужна, в основном, для племянника. Пытаюсь его соблазнить перейти на Linux :-)
Go to the top of the page
 
+Quote Post

 Reply to this topic Start new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 21st October 2017 - в 03:33




Rating@Mail.ru