Программный MIDI-синтезатор для Windows, который работает как VSTi-плагин. Поддерживает расширения Yamaha XG и Roland GS, что является уникальной особенностью S-YXG50. Был частью пакета Yamaha SOL2. Yamaha прекратила поддержку данного программного синтезатора в 2003 году, поэтому была создана переносимая версия этого VSTi, не требующая установки и ключей в реестре. Используется встроенная в ресурсы DLL-файла официальная 4MB-версия wavetable, лучше которого для S-YXG50 не выпускалось.
Скачать: yamaha_syxg50_vsti.7z (3.0MB).
Что нового в этом патче?
- Не требуется установка. SYXG50.DLL теперь всегда читает файлы из своей директории.
- Файлы таблиц звуковых данных расшифрованы и сохранены в ресурсах DLL-файла.
- Если же их удалить из ресурсов, то VSTi будет искать их в своей директории (SXGBIN41.TBL, SXGWAVE4.TBL).
- Полностью удалён антиотладочный код, код проверки серийного номера и код trial-режима.
- Скрытые настройки читаются из ini-файла с именем, аналогичным имени dll-файла, но с расширением ini.
- По умолчанию лимит полифонии равен 128.
- Более частые обновления информации в GUI.
- Кнопка Help будет спрятана, если нет файла SYXG.CHM.
- Мета-информация VST находится в ресурсах (String Table), поэтому при необходимости её можно легко изменить.
- GUI может быть выключено и ресурсы GUI могут быть удалены, в результате чего этот VSTi будет работать как SGP.DLL.
Этот патч никак не влияет на синтез звука оригинального VSTi. Это было протестировано на сотнях MIDI-файлов, чтобы убедиться, что вывод побитово идентичен оригинальному S-YXG50 VSTi с теми же настройками.
Как использовать
Для проигрывания MIDI при помощи этого синтезатора необходимо настроить какой-нибудь VST-хост. В качестве него может выступать ваш любимый плеер, только нужно найти соответствующий плагин. В качестве примера ниже приведено несколько инструкций. Для проверки корректности настройки послушайте bi2_polkovnik.mid (35KB) — он должен звучать идентично записи bi2_polkovnik_syxg50.ogg (2.0MB).
VSTi MIDI Driver (как системный MIDI-синтезатор)
VSTi MIDI Driver позволяет использовать любой VSTi как глобальный системный MIDI-синтезатор. В данном случае каждая игра или MIDI-плеер, которые используют стандартный системный MIDI-синтезатор, будут использовать Yamaha S-YXG50 VSTi.
- Установите Falcosoft VSTi MIDI Driver.
- Если у вас Windows 8 и новее, также установите Coolsoft MIDI Mapper.
- Скопируйте syxg50.dll из yamaha_syxg50_vsti.7z в любой каталог.
- Откройте настройки VSTi MIDI Driver, нажмите кнопку Load VSTi и выберите syxg50.dll.
- Откройте MIDI Mapper и выберите VST MIDI synth в выпадающем списке Default MIDI synth.
- Готово! Yamaha S-YXG50 VSTi будет использоваться как системный MIDI-синтезатор по умолчанию.
Yamaha S-YXG50 WDM (официальный драйвер только для Windows XP)
VSTi MIDI Driver поддерживает Windows XP/Vista/7+, но на Windows XP лучше использовать официальный Yamaha S-YXG50 WDM-драйвер, который можно скачать с серверов Microsoft Windows Update: 4MB-версия (лучше качество, расходует больше ресурсов), 2MB-версия (хуже качество, расходует меньше ресурсов). Установка этого WDM-драйвера производится вручную при помощи мастера установки оборудования в панели управления. Не забудьте выбрать Yamaha S-YXG50 как синтезатор MIDI по умолчанию в системных настройках звука. Когда используется Yamaha S-YXG50 WDM, в VSTi версии этого синтезатора нет необходимости.
foobar2000 (лучший плеер для тех, кто влюблён в музыку)
foobar2000 не использует системный MIDI-синтезатор, но это не является недостатком. Это позволяет использовать Yamaha S-YXG50 VSTi без установки драйверов в систему, что более надёжно.
- Скачайте и установите плагин foo_midi с сайта foobar2000.
- Создайте в каталоге foobar2000 подкаталог с именем vsti и скопируйте в него файл syxg50.dll из yamaha_syxg50_vsti.7z.
- Откройте в плеере настройки, Advanced → Playback → MIDI Decoder → VSTi search patch, укажите в этом поле полный путь до созданного вами подкаталога vsti, после чего примените изменения и перезайдите в окно настроек.
- Перейдите в Playback → Input → MIDI synthesizer host. В выпадающем списке plug-in выберите Yamaha S-YXG50, примените изменения.
- Готово! Теперь MIDI в foobar2000 будут воспроизводиться при помощи Yamaha S-YXG50.
Ссылки
- yamaha_syxg50_vsti.7z (3.0MB) — версия со встроенным 4MB wavetable, для обычного использования.
- yamaha_syxg50_vsti_ext.7z (4.0MB) — версия с внешними 2MB и 4MB wavetable, для экспериментов.
- bi2_polkovnik.mid (35KB) и bi2_polkovnik_syxg50.ogg (2.0MB) — MIDI и пример его корректного звучания для проверки корректности настроек вашего плеера и работоспособности самого VSTi.
Вот, это ВЕЩЬ !! Особенно радуют формирователи огибающей ! Настолько грамотной и простой схемы даже представить трудно !
http://blog.atemp.ru/ritm-2/
http://www.modularsynth.ru/wp-content/uploads/2013/06/ritm_2_schematics_hires.png
VEG
О, за ссылку на сервис мануал MU100, спасибо. Вот фото в высоком разрешении платы MU100
http://www.ym2149.com/midi/mu100_pcb_partside.jpg
маркировка вроде совпадает (буквы sx - xs перепутаны)
ic zip psb
ic34 sx518b0.ic34 xs518a0
ic35 sx743b0.ic35 xs743a0
ic36 xt445a0-828.ic36 xt445a0-828
ic37 xt461a0-829.ic37 xt461a0-829
ic11 xt71420.ic11 xt71420
xu50720.ic11 модификация?
Сергей, там на фотке тоже видно ROM-микросхемы, дампов которых нет в архиве: IC38, IC39. Также объёмы двух имеющихся дампов микросхем не совпадают с объёмами указанными на схеме (на схеме объём скорее всего в мегабитах).
VEG
Да, я видел: что есть, то есть, другого в интернете нет.
Если посмотреть файлы (только байты нужно переставить - в файлах сначала идет младший байт, потом старший):
xt461a0-829.ic37 (High data?) и xt445a0-828.ic36 (Low data?) - очень похоже на сэмплы
sx743b0.ic35 и sx518b0.ic34 - управляющие таблицы
Если все это сконвертировать, получиться банк на 32Mb (ну или не получится).
Впрочем, это только мои предположения. Чтобы это выяснить нужно желание, время, знания, силы.
Так, попался файлик в просторах интернета, решил сюда выложить, может кому пригодится.
Wlad, то есть надежда на dsxgwave.tbl всё-таки есть?
Ещё было бы здорово для 2MB банка сделать отдельный VST в форме ещё одной dll.
Тогда выбирать банк можно было бы копированием одного из двух dll-файлов в папку vst-плагинов.
Любым редактором ресурсов просто замените два соответствующих файла в ресурсах dll-файла.
Влад, Евгений, а чем вы смотрите содержимое файлов ? Например, как видно, что это таблица конфигов, а другое - таблица сэмплов. Откуда это становится понятным ?
VEG, хотелось бы в первую очередь поблагодарить за выложенный файл. Таблицы менял только две, это конфиги семплов
барабанов DRW_STRUCTURE.BIN,и конфиги семплов инструментов WF_STRUCTURE.BIN,а остальные таблицы были от S-YXG50,
т.е. эти наборы конфигов указывают синтезатору где и какие семплы находятся, а также каким семплам на каких
клавишах звучать. Сейчас же буду использовать все таблицы с файла YDSXG.VXD v1040 (см.ниже), с банком ydsxg.dat, он же
dsxgwave.tbl размером 2.417.445 mb, что бы создать по сути клон YMF7x4. Все таблицы YDSXG.VXD вынес уже наружу,
не нашёл пока только самую маленькую, это та которая отвечает за SFX звуки в барабанах, видимо сильно отличается от
той что в S-YXG50. После того как закончу, выложу отдельно таблицы, VXD файл, и укажу адреса таблиц в файле, чтобы
ни у кого не было сомнений, что это клон YMF724.
---
Все таблицы и банки, всех семейств софтсинтезаторов кроме XG2006Le, включая драйверных, а также таблицы и банки в
драйверах к звуковым картам Yamaha 724,740,744,754, до звуковой платы SW1000XG, абсолютно совместимы между собой, т.е.
можно драйверные таблицы и банк перенести, по сути на эмулятор железного синтезатора, которым на данный момент
и является сам движок S-YXG50 Vsti, а также который на данный момент работает по профилю S-YXG50, профилем по сути,
является сам банк, который разбит на две составляющие части, WAVEROM и Tab файл, другими словами, это можно смело
назвать как DAT и INI файл, к эмулятору железного сита.
---
Раньше в драйверных версиях софтсинтов, а также в драйверах YMF7x4, в DLL,VXD, и SYS файлах, было на много больше
фрагментов таблиц для синта, примером тому служат таблицы которые вы VEG вытаскивали из 16 бит драйвера, а после,
YAMAHA составила эти таблицы по категориям (пример в S-YXG50 Vsti), т.е. стало таблиц на много меньше, всего 17 штук,
что стало на много удобней для их изучения, а вот куда остальные таблицы подевались, которых нет в S-YXG50 Vsti,
вот это уже интересно.
Данные в файле ds1.sys, а также в YDSXG.VXD, и др., это и есть таблицы синтезатора, которые не что иное, как массивы
захардкоженных данных в коде, которые за частую просто идут друг за другом, а иногда раскиданы как попало, и где попало,
но все они представляют один и тот же взаимозаменяемый формат.
Беглым взглядом сразу узнаю первую таблицу в ds1.sys, с 16FD00h по 17419Fh, это WF_STRUCTURE (конфиги семплов
инструментов, вслед за ней DRW_STRUCTURE, конфиги семплов барабанов (174A08h-176529).
Что касается sxgxg.dll, то так и есть, это таблицы синта, которые захардкожены в код, которые я и хочу отделить, и собрать
на их основе синт YMF7x4, таблицы хочу взять с драйвера YMF724 v1040, т.к. есть информация что это последняя известная
версия для качественного MIDI. Увидеть это можно здесь : http://forum.ru-board.com/topic.cgi?forum=81&topic=0792&start=21
Оттуда отрывок:
2.12. В чём отличие драйверов разных версий друг от друга?
VXD:
1031: меньше стал загружаться процессор.
1040: появилась поддержка EAX2.0 и DirectX7. Последняя известная версия для качественного MIDI
2018,2019: практически ничем не отличаются и не отличаюься от 2020.
2020: последняя известная VXD версия.
WDM:
2000: начиная с этой версии про качество XG MIDI можно забыть.
2228: появилась поддержка DirectX8.
5244: официальные WindowsXP драйвера.
5245: исправлен глюк с Windows 2000.
т.е. есть из чего выбрать.
Сами же драйвера брал здесь : https://driver.ru/?V=Yamaha&S=3
К стати чуть не забыл, файл SXGDMWV2.TBL, скорее всего просто переименован из sxgwave2.tbl, мы уже не раз встречали
одни и те же банки под разными названиями. А вот SXGMASYS.TBL, который размером 108 байт, стал мне интересен ещё
тогда когда вы выложили yamaha_syxg50_tbl_exploded.7z, я сразу обратил на эти файлы внимание, т.к. меня заинтересовал код
по адресу 0Dh, который равен 08h,а так, затрудняюсь даже предположительно сказать что это за данные, т.к. я также
не нашёл их в VSTi версии синта, в общем время покажет.
Не много погодя, как появится немного больше времени, я опишу каждую таблицу, из 17ти штук, что они из себя представляют,
а также их назначения, для того чтобы постараться описать картину в целом.
Сергей, спасибо огромное за дампы !
Меня тяжело чем то удивить, но это случилось, и спешу сразу обрадовать, что семплы в банках не зашифрованы!, похоже на то
что их нужно конвертировать в правильный формат. Также Aleksander намекал что то про ресемплинг. Идеи есть?
mu100-font.bin - Шрифт устройства.
sx518b0.ic34 - Семплы
sx743b0.ic35 - Семплы
xt445a0-828.ic36 - Семплы
xt461a0-829.ic37 - Семплы
xt71420.ic11 - Прошивка с таблицами, похоже управление первой парой WAVEROM.
xu50720.ic11 - Прошивка с таблицами, похоже управление второй парой WAVEROM.
Сами прошивки очень и очень похожи друг на друга, и даже кодом, я бы назвал их смело "братиками".
Вот, конвертировал дампы на скорую руку, что бы что то можно было услышать.: https://yadi.sk/d/oI3Gd6Rm3DhYad
Здесь описание серий и поколений Yamaha MUxxxx. https://en.wikipedia.org/wiki/Yamaha_MU-series
Кстати, хотел поблагодарить Aleksanderа (вдруг зайдёт на эту страничку), за то, что напомнил про Vsampler, это отличный
инструмент для создания петель, а то раньше часами приходилось сидеть, из за чего часто переходил в EDISON, который
в FL Studio.
Alexys, прикольный, но старый аппарат, и даже схема есть, интересно, а музыку в фильме "кавказская пленница", на нём играли,
а то звук очень уж похож.
Олег, синт на основе YMF724 обязательно соберу, что бы пополнить коллекцию ещё одной разновидностью данного синта.
Alexys, я работаю в Total Commandere 8.51a, и при открытии файла клавишей F3, можно многое разглядеть, в первую очередь
отличия, и типы данных таблиц. Также нужно учесть, чтобы в меню вид, стоял ASCII (Кодировка DOS) по умолчанию, а также
шрифт в ASCII, стоял Terminal 14 OEM/DOS, я для быстрого просмотра пользуюсь этим.
В картинках : https://yadi.sk/d/eX4TrXnd3Di7wc
Буфер обмена01.png ,02, 03 и 04, это как у меня настроен просмоторщик (Lister), а на остальных скринах примеры того,
как выглядят разные структуры таблиц.
Влад, пасиб, добрый человек !! TC пользуюсь вместо эксплорера. Жаль не смыслю в этих козябликах.
Alexys, тебе и не нужно в них смыслить, тебе нужно их только видеть, как эти данные выглядят и различаются, а там,
если будешь часто ними работать или просматривать, они тебе примелькаются со временем, и будешь их видеть везде,
где они только используются.
Вы можете сделать чтобы FASM на вход получал исходные файлы драйвера и asm-файл, внутри которого при помощи инструкции
file
могут подключаться нужные фрагменты из исходных файлов. Например, вот эта инструкция вставит 4 байта начиная со смещения 12 из файла inbin/ds1.sys:file 'inbin/ds1.sys':12,4
. Таким образом, исходник будет сам документировать откуда что взято. Можно ещё и комментарии добавить в этот же asm-файл при желании.Структуру, в которой хранятся все сегменты данных, тоже можно легко описать на FASM, включая автоматическое вычисление размеров сегментов, которые там перечисляются в заголовке. Если хотите, я могу тоже пример-заготовку написать.
Что касается той таблички что не удаётся найти — может быть в последних версиях драйвера будет проще найти, и она подскажет где смотреть в старом драйвере?
Как вы смотрите размеры встроенных в код массивов данных (таблиц)? Дизассемблируете и ищете где есть указатели на какие-то следующие данные, которые находятся следом за нужной вам табличкой? Или эти таблички всегда имеют строго фиксированный размер? Судя по объёмам sxgbin21.tbl и sxgbin41.tbl, размеры у табличек могут быть всё же разными.
Кстати, а почему YMF724? По идее YMF754 ведь усовершенствованная версия первой? Или у них общие драйвера?
Вы не встречали подробного описания, что именно понимается как ухудшение MIDI на более новых драйверах? На вики нашёл:
Может быть, отсутствие Sondius-XG и понимается как ухудшение в последних драйверах после версии 1040? Если так, то S-YXG50 его тоже не сможет, потому что у Sondius-XG был совершенно отдельный движок, не связанный с AWM2. В Sondius-XG звук синтезировался без участия семплов, он был также встроен в S-YXG100, и соответствующий код Yamaha ни разу не портировала на ОС новее Windows 98. Но всё остальное похоже что можно реализовать на базе S-YXG50. Что касается Sondius-XG — его использование я видел только в демо для S-YXG100 PVL, то есть похоже что оно особо не использовалось. По крайней мере было бы круто получить аутентичное звучание YMF7x4 для обычных MIDI и обычного XG.
У меня, к слову, тоже была аудиокарта на YMF7x4 (в детстве), и именно желание получить сходное звучание и побудило меня пропатчить S-YXG50 для удобного использования в плеере. Год назад я на самом деле ещё не знал о существовании программного синтезатора Yamaha S-YXG50. Когда гуглил варианты как получить «то звучание» наткнулся на S-YXG50, послушал, и столько лет спустя мне показалось что звучит так же или по крайней мере очень похоже.
Что касается SXGMASYS.TBL. Глянул немного в код драйвера где используется этот файл. Он там после чтения расшифровывается. Позднее попробую получить расшифрованную версию файла, может быть станет понятнее что за он.
Здравствуйте VEG.
По поводу FASM понятно, спасибо, я именно это и хотел как то спросить, т.е. использовать в проекте отдельные WAV файлы,
в которых бы при компиляции банка, пропускались бы их заголовки.
Было бы не плохо посмотреть на пример-заготовку, хочу так же добавить, что в папке sxgwave2_v1.00.1_syxg100, таблица
BANK0_PCT.BIN (таблица распределения инстр. по банкам), как и многие другие, абсолютно идентичны тем которые находятся
в Ds1.sys, а также в YDSXG.VXD, и возможно в остальных драйверных образцах тоже, т.е. пример проще будет написать на
этой таблице, т.к. эта копия часто встречается в DLL, и не содержит лишних нулей в конце.
В общем, если вопросы какие то будут, или помощь с таблицами, всегда рад буду помочь.
Таблицы ищу вручную, т.к. по опыту уже знаю, какая как выглядит, как начинается и заканчивается, а размеры таблиц часто
отличаются друг от друга. На ассемблере писал только COM файлы (в общем Org 0000, и дальше.), а сейчас со всем этим
испытываю не малые трудности, например в любом дебаггере, не могу найти таблицы синта в памяти, что бы на нужном значении
поставить брэкпоинт (наверно из за Savihostа), по сути, нужно расширить пару счётчиков на один байт, и банк можно уже
начинать собирать, т.к. теперь нет жёстких ограничений, с которыми я столкнулся когда создавал новые инструменты,
из-за чего страдало качество звука.
Почему YMF724?, слышал от двух знакомых, что в остальных платах вроде, то эффекты по уровням завышены были, то качество
ухудшилось, то ещё чего то там не так, но я всё же вчера стал грешить на драйвера, и распаковал вроде как последний
драйвер v5.12.01.5244 (DS-XG For YMF724,740,744,754), и обнаружил в файле Ds1.sys (2.765.568мб), идентичность многих
таблиц с sxgwave2_v1.00.1_syxg100 (все не успел проверить), но к сожалению некоторые оказались в запутанном порядке,
и отличались размерами от S-YXG50Vsti, в общем я импортировал в синт 8 таблиц, но у меня заработал только General MIDI,
на слух я сразу определил, что таблицы инструментов и банков, нужно прикручивать в другом порядке.
Про Sondius-XG, могу сказать только одно, я бы его охарактеризовал скорее как примочку к синту, это как к SW1000XG с PLG,
http://www.ixbt.com/multimedia/yamaha-sw1000xg.html (PLG в конце статьи)
Да и не велика потеря, всё равно под PVL в основном идут одни демки, лично на мой взгляд, затраченный труд такого масштаба,
что бы создать в синт такую примочку, не оправдает себя, проще теперь в самом синте эти инструменты сделать, а так да,
бесспорно было бы круто. Также если мне не изменяет память, то в каком то драйверном (ых) синте, я встречал вроде три разные
примочки, и вроде две из них имели что то общее с буквой S.
SXGMASYS.TBL, интересно.
Wlad, обновил yamaha_syxg50_tbl_exploded.7z, в подкаталоги wdm* добавил расшифрованные версии этих 108-байтовых файлов. Судя по тому, что там образовались строки с именами файлов, файлы расшифрованы правильно. Очень похоже на то, что это что-то типа ini-файла — например, указывает какой tbl-файл использовать. Там рядом в коде вижу опциональную проверку каких-то дат и времени в зависимости от одного бита в этом файле (видимо он включает и выключает триальный режим). Видимо из-за того что тут хранится информация о триальном периоде, этот файл и был зашифрован. Возможно, его предполагалось использовать в роли ключа на легальную копию. Точного назначения всех двоичных данных в этом файле я не установил, но судя по всему, ничего полезного именно для S-YXG50 VSTi в нём нет.
Вообще по идее можно написать макрос который будет парсить формат нужного файла целиком и будет извлекать нужные данные. Но я обычно стараюсь ограничиваться сохранением файлов в нормализованном виде, чтобы нужные мне данные всегда были по фиксированным смещениям, и чтобы их можно было просто вставить в исходнике по смещению блока и его размеру.
Я имел в виду, что я сделал бы шаблон для автоматической сборки всех 17 секций (чтобы размеры секций в заголовке автоматом менялись при изменении количества данных в секции). Сделаю и опубликую немного позднее.
UPD. В архив yamaha_syxg50_tbl_exploded.7z добавил пример автоматической сборки sxgbin41.tbl из его кусков при помощи FASM. Между метками сейчас подключаются внешние файлы целиком при помощи инструкции file, но так как я показывал выше можно подключать нужные фрагменты из ds1.sys и т.д., указывая смещение и объём данных, которые нужно взять из этих файлов. При необходимости между метками root_* можно написать и более сложные конструкции. Можно вставить все необходимые данные при помощи инструкций db, dw и dd. Если в одной части файла нужно сослаться на другую — можно использовать метки. Рекомендую для меток внутри секций использовать локальные метки, начинающиеся с точки. Таким образом можно будет получать смещение внутри секции простым и понятным вычитанием типа
dd root_01.my_label - root_01
. Это пригодится если вы захотите полностью разобрать и оформить в виде asm-файла все оригинальные таблицы. То есть любое место где там в таблицах есть отсылка на какие-то данные в другой таблице — вы можете вот таким образом, с использованием простых вычислений, сослаться на нужные данные без хардкода. После чего если вы будете вставлять новые данные в произвольные места — все ссылки автоматом будут пересчитаны, что удобно.Кстати, файл с семплами можно дописать в конец маленького файла (в root_17) и тоже собирать его из кучи маленьких файлов. Только чтобы синтезатор брал семплы из того же файла где и параметры нужно заголовок чуть подправить (в readme описана такая возможность). Этот подход позволит ссылаться на смещения и внутри семплов тоже. То есть можно подключить каждый семпл отдельно, проставить каждому семплу метки, и сослаться на эти семплы из таблиц где это нужно. Появится возможность при желании добавлять новые семплы хоть в середину WAVE ROM — при пересборке FASM в таком случае пересчитает все ссылки на семплы автоматом. Потом уже после сборки при помощи FASM можно будет легко разделить этот файл обратно на два, если вам больше нравится два раздельных файла.
VEG, большое спасибо, всё понятно, разобрался сразу, буду экспериментировать с DSXG.
В общем, перекопал большое количество разного софта, и пришёл к выводу, что лучше IDA Pro и FASMа, на вряд ли что то
лучше для себя найду, и больше всего восхищает тот факт, что FASM написан сам на себе (на предыдущей версии самого себя).
Может кому пригодится.
Если в связке VST MIDI Driver + syxg50_vsti на 64-битной виндовс миди играют на пол тона выше чем должно быть, то из папки
C:\Windows\SysWOW64\vstmididrv удалите файл basswasapi.dll.
У меня заработало корректно.
Wlad 2, если есть проблемы с VST MIDI Driver, то лучше написать об этом автору, пока он поддерживает эту софтину. Чем больше ему пишут по её поводу — тем больше у него мотивации развивать её дальше. Например, этому драйверу сейчас очень не хватает поддержки воспроизведения MIDI в 64-разрядных программах, хотя технических преград тут нет (и то что сам VSTi 32-битный не будет мешать). Я писал автору об этом, но судя по всему, на это больше никто не жаловался.
И да, сам Yamaha S-YXG50 будет воспроизводить звук с неправильным тоном в случае если он работает с неподдерживаемой частотой дискретизации. Также хоть поддержка частоты дискретизаци 96kHz и заявлена, с ней имеются проблемы при воспроизведении некоторых XG-эффектов (на Полковнике из статьи хорошо слышно). Я проверил на оригинальном VSTi — там идентичная проблема.
В отдалённой перспективе я хочу глянуть код, связанный с частотами дискретизации — вдруг получится понять откуда растут ноги у проблемы с эффектами на 96kHz и получится добавить поддержку других частот дискретизации.
В общем лучше всего всегда использовать 48kHz или 44.1kHz. Для VST MIDI Driver видимо частота дискретизации вывода определяется через частоту дискретизации, которая установлена в настройках микшера для текущего аудиовыхода. Но я не уверен в этом, хорошо бы уточнить у автора или проверить экспериментально.
Да, пожалуй так и есть.
Всем привет.
Закончил наконец софтсинтезатор Ymf 7x4 : https://yadi.sk/d/iZewmD1R3Dvt5d
Это полный аналог Ymf 7x4, все таблицы импортированы из Ds1.sys, последней версии драйвера v5.12.1.5244, под все Ymf 7x4,
кроме четырёх маленьких таблиц, которые почему то везде отсутствуют, (видимо задаются на уровне кода) т.е. указывают
ударным установкам где им находится, т.е. что Stand kit = 0, Stand kit = 1 и т.д., и всё, в общем эту мелочь доделывал в ручную
(это ни как не нарушает стандарт , т.к. у всего данного семейства барабанные установки распределены по патчам абсолютно
идентично).
Инструменты действительно некоторые немного отличаются, хотя бы взять пианино bank0 patch0, который отличается
затуханием, а некоторые яркостью, ударные звучат также лучше, чем к примеру у 4мб банка.
Таблица семплов для инструментов у Ymf 7x4 оказались немного большего размера, а таблицы готовых инструментов,
отличаются настройками, такими как Velocity, Mod, Cutoff, Reso, и мн.др.
Так же в архив добавил софтсинт Ymf 7x4 одним Dll файлом, для удобства, файл находится в папке : Dll - full in 1, и скин подписан
что это Ymf7x4, что бы избежать путаницы.
VEG, Все таблицы, и ASM файл, которые я использовал при сборке банка находятся в папке Compile, а те которые выдрал из
Ds1.sys, находятся в папке Polu final, файлы =12 Bank 0 pct Part 1 и =12 (No point) Part 2 для импорта в S-YXG50 нужно склеить,
а все оставшиеся при желании можно сравнить как с Ds1.sys таблицами, так и с Ymf7x4.tbl, что бы убедится что таблицы именно
из Ds1.sys, кроме таблички=08-banki XG sfx, которую пришлось переделывать, (и 00,01,02 из папки Compile).
В папке Src находятся файлы из sxgwave2_v1.00.1_syxg100, которые идентичны файлам из Ds1.sys, использовались для сравнения
с драйвером (Ymf 7x4) и S-YXG50, а также в этой папке есть ещё папка All Drums tabl, в которой есть файл Info.txt, в нём указаны
адреса таблиц ударных в Ds1.sys и ещё трёх таблиц, в общем все таблицы барабанных установок во всех версиях синтов,
абсолютно идентичны (это маленькие файлы типа GM_ROOM.BIN, GS_ELEC.BIN, и тд.).
Также хотел добавить, что перебрал несколько версий драйверов DSXG, и драйверных софтсинтов, и выяснил, что их таблицы
абсолютно идентичны. (все версии не просматривал)
Также хотел бы ещё раз вас поблагодарить VEG, за написанную прогу, т.к. она помогла сэкономить много времени, и прошу
простить за немного не удобное расположение ресурсов, если нужно сделать так чтобы были указаны конкретные адреса,
где и откуда, и как нибудь ещё, я могу позже этим заняться если надо, а то у меня сейчас со временем совсем туго стало,
и поэтому пришлось собирать пропуская некоторые записи, что бы сэкономить хоть как то немного времени.
Если хотите, то можете добавить новый банк в свою сборку, т.к. это официальный драйверный образец, который отличается
от софт аналогов немного звучанием, а так вроде, по сути тот же софтсинтезатор, только написан для железки, а также у него
используются все таблицы инструментов, в отличие от S-YXG50, которая просто присутствует в синте но не используется.
Олег, то ли это звучание инструментов, которое имелось ввиду в виде отличия от S-YXG50 ?
Если кто нибудь обнаружит ошибку обязательно сообщайте.
Поздравляю Wlad , всё работает! Эффекты воспроизводит, контроллеры читаются. По звуку - S-YXG50 Portable VSTi звучит всё же объёмнее, или показалось?
Банк меньше весит, но на слух трудно сказать.
Получается и MU 100 уже можно собрать, ведь исходники есть?
Wlad:
Отлично. Но вы же сразу делали на базе другой версии драйвера, более старой. Верно? Сравнивали там таблички с последней версией — одинаковые, или отличаются?
Недостающие таблицы можно попробовать поискать проанализировав код в IDA. То есть посмотреть как эти таблички используются в VSTi и попробовать найти похожий код в драйвере. Это конечно при условии, что там код вообще похож =) Так, идея на будущее — посравнивать.
Wlad 2:
Судя по всему, приведённый дамп не полный. Плюс он немного странный — объёмы некоторых ROM не совпадают с теми, что указаны на схеме. Плюс далеко не факт, что там таблицы параметров хранились в совместимом формате.
Wlad, огромное спасибо за вашу работу!
По сравнению с 2MB и 4MB банками всё (инструменты, баланс партий, и т.п.) стало звучать гораздо ближе к оригиналу.
Есть некоторые тонкости: например, чувствительность панорамы, или посторонний призвук у Orchestra Hit, или несколько мутный ревербератор, но очень может быть, что оно именно так и было у YMF724. Дело в том, что тогда я слушал их через маленькие пластиковые колонки, и они могли скрывать недостатки в звуке. Кроме того, есть вероятность, что я вносил некоторые изменения, чтобы заставить их лучше звучать на ES1868 с аппаратным WaveTable-синтезатором, а потом на SBLive. Но в любом случае, адаптировать композиции под эту версию будет гораздо проще, чем под 4МБ банк.
Было бы неплохо найти кого-нибудь с ретро-компьютером и карточкой на YMF724 и попросить записать как на ней воспроизводятся какие-нибудь MIDI (как GM, так и с использованием XG), после чего будет возможность объективно сравнивать, не опираясь на воспоминания (ведь они обманчивы).
Воспроизвёл одну из композиций через шесть синтезаторов: http://lcfilter.ru/aboutme/music/
Конкретно эта звучит практически одинаково со всеми тремя банками S-YXG50.
Но самое странное, что правильнее всего она звучит на синтезаторе от Майкрософта!
И ещё интересно, как сильно отличается звук Yamaha PSR от S-YXG50: такое ощущение, что некоторые диапазоны частот сильно задраны, чтобы взаимодействовали с собственными резонансами пластмассового корпуса. И получается, что этот синтезатор звучит гораздо лучше через встроенные динамики, чем в записи с линейного выхода.
Доброго всем дня !
Wlad 2, прослушал на софтсинте YmF7x4 множество XG композиций, лично на мой взгляд, синт стал звучать более
сбалансировано, звук стал более естественным и выразительным, и нет таких завалов на верхах как у софтсинтов 2мб и 4мб,
также в софт синтах некоторые инструменты сильно режут слух. На своей звуковой карте, софтсинты я бы охарактеризовал
как глуховатые бубнелки, из за множества завалов по верхам, особенно ударных, а 7x4 синт, звучит на мой взгляд вполне
себе сносно.
У каждого человека уникальный слух, также как и уникален каждый человек, поэтому и нравы у всех разные, так что какой
из них лучше, мне кажется решит для себя сам, главное что бы выбор был.
По поводу железных адаптаций скажу одно, нужны дампы, дело в том что у дампа NEC XR385, который ранее выкладывал VEG
(вроде аналог DB50XG), идентичные таблицы, кроме одной, это таблица конечных инструментов, т.е. в середине каждого
конфига прописано сокращённое имя инструмента, и такое наблюдается на всех железных дампах (MU100), видимо нужно для
вывода на экран названия инструмента, а так по сути, думаю что это не проблема подогнать таблицу под софтсинт, вырезав
имена, и т.д., в общем проблема скорее найти сами дампы, чем их адаптировать.
По поводу размера банка также скажу, это ничего не значит, здесь в 2,4мб всего лишь расширили длину волны для осцилляторов,
и вроде бы всё, здесь главное как настроен сам инструмент по умолчанию (какие настройки контроллеров он использует).
А так же, все инструменты в софт YmF7x4 перенастроены по другому.
VEG, дело в том что я не помню с какой версии драйверов брал таблички, и поэтому с driver.ru скачал вроде все имеющиеся,
и даже Labway XWave 6000 (744B-754), проверил только ключевые таблицы, это конфиги семплов (барабанов и инструментов),
и конфиги конечных инструментов, все таблички оказались идентичными.
Если есть интерес можно попробывать, что нужно сделать?
Олег, многое зависит от звуковой карты и от акустики, до этого у меня стояла звуковуха SB Audigy, и меня как бы устраивал
звук, но вот когда установил более качественную Xonar DX, то уже конкретно стал слышать где и какие отличия есть в звуке,
а до этого на Audigy трудно было где то уловить разницу. По поводу софт YmF7x4 синта, рад что вам понравился, я на нём
начал прослушивать MIDI файлы ночью, когда более тихая атмосфера, и если честно я был немного удивлён
сбалансированностью инструментов, т.е. если раньше на софтсинте при прослушке миди файлов приходилось держать руку на
клавишах громкости на клавиатуре, из за некоторых режущих слух инструментов, или выпирающих, то теперь это приходится
делать на много реже.
Олег, если я перехожу по ссылке с музыкой, то имена синтов присутствуют, а сами проигрыватели исчезают спустя ~секунду,
или у меня одного так?
Alexys, хотелось бы услышать твоё мнение по поводу софтсинта YmF7x4, что можешь сказать? , и что скажешь про баланс
инструментов? ,а также про их качество?.
Alexys, сейчас у меня к сожалению мало времени, и по этому не могу быстрей закончить описание таблицы, а так же
схематическое представление данного синта, но могу выложить HEX редактор, которым пользуюсь сам, и составить инструкцию,
как отрегулировать к примеру тон Snare M (и др.) самостоятельно, а также могу показать всё в картинках, чтобы было ещё проще.
Влад, отпишусь насчет синта позже, время жмет. Так, вроде, он нормальный, особой разницы я не заметил. Подробно по инструментам не изучал. надо слушать. насчет редактирования - не торопись, ты и так занят. Пытаюсь ковырять дампы MU100. Вот нарыл человекочитаемое в файле xt71420.ic11
Посмотрите внимательно - одна из таблиц барабанов. Буквы в названиях перевернуты. Это шифр ?
uSdr ouMet uSdr opOne iHQ hWpiS al p cSarct h H cSarct h L iFgnreS an plCci koNsi etMnr mlCci ktMnr meBll eS qlCci k LeS qlCci k HrBsu haT p rBsu hwSri lrBsu hlSpa eRevsryCbmlanSra eoRll iHQ 2 nSSrpnEyclrttScisk iKkc3 pOneiRSmoh tiKkcG ta e cKGktaHeaeyviSedS itkc nSraNeioys2 aHdnC al p nSraNeioys3 oTEmeltcor1 iHH-talCsodeoTEmeltcor2 iHH-taP delaoTEmeltcor3 iHH-taO ep noTEmeltcor4 oTEmeltcor5 rCsaChmyab1loTEmeltcor6 iRedyCbmla1 hCnise eyC miRedC myC puaTbmuoiren pSalhsyCbmlaoCbwle l rCsaChmyab2liVrbsaal p iRedyCbmla2 oBgn o H oBgn o L oCgn a HuMetoCgn a HpOneoCgn a L iTbmla e H iTbmla e L gAgo o H gAgo o L aCabas aMarac s aSbmWaihtsHlaSbmWaihtsLluGri ohSro tuGri ooLgn lCvase oWdoB olkcH oWdoB olkcL cSarct h H 2cSarct h L 2rTaigneluMetrTaignelpOnehSkare iJgnelB lesleBllT er e
Alexys, это не шифр. Просто особенность хранения информации — 16-битные слова с обратным порядком байт. Надо просто в файле поменять чётные и нечётные байты местами, и всё станет корректно.
Что касается YMF7x4 — вижу, что в интернете люди упоминают, что он может звучать более сбалансированно, нежели S-YXG50. Вот тут много информации по этим аудиокартам: https://www.vogons.org/viewtopic.php?f=46&t=48133
Позднее отпишусь там и попрошу владельцев записать какие-нибудь примеры, где особенно слышна разница, чтобы было с чем сравнивать и была возможность убедиться, что S-YXG50 корректно воспроизводит звук с использованием таблиц от YMF7x4.
YMF-7x4 vs DB50XG vs SoftSynthesizer S-YXG100 - http://www.ixbt.com/multimedia/ymf7x4-db50xg-syxg100.html
Плохо, что когда сравнивают с S-YXG50/S-YXG100, забывают указать размер использованного банка. Большинство версий этих синтезаторов по умолчанию шло с 2-мегабайтным банком, так что скорее всего сравнивали с ним.
Похоже что вы правы VEG, так оно и есть, но,, DSXG по сути тоже самое что и 2мб версия банк, только у 2,4 банка у осцилляторов
используется не одно колебание в цикле, а восемь и намного больше абсолютно одинаковых, что соответственно и увеличивает
размер банка, как на мой взгляд, похоже это сделано из маркетинговых соображений, так как это не имеет ни какого смысла.
Интересно, что по этому поводу скажет Alexys? , Wlad 2 ? и Сергей?
Вот пример трёх склеенных фрагментов, т.е. фрагменты улучшайзеров для банка 2,4мб : https://yadi.sk/d/HL9_N-aa3E5WMB
Что касается 4мб банка, это также чистой воды маркетинг, но,, я практически уверен, нет, я даже это знаю, что есть его железный
аналог, но при импорте составляющих железного синта в эмулятор Vsti, немного расстроили настройки самих инструментов,
что бы он не звучал как железный, это Cuttof, Resonator, огибающие, и т.д., т.е. в общем сделали его другим (не в лучшую сторону),
это хорошо заметно при сравнении трёх разных имеющихся таблиц.
В общем послушал я в сравнении. Сравнивал старый, обычный и YMF-банк. Разница есть, но она малозаметна. слушал мелодии. В них, в основном, и заметно - инструменты в YMF звучат как бы чуть глуше и, соответственно, тише. Это связано с тем, что действительно убрана излишняя яркость. Отсюда и кажущаяся сбалансированность. Хотя так должно было быть изначально сделано в синте. Скорей всего это сделано уже на выходе самого микшера. Если в нем есть эквалайзер, который скрыт, то достаточно было подвинуть вниз одну "ручку" на 2-3 дБ на частоте примерно 5-6 кГц. Ну, может быть перебрали по частотам, почистили сами сэмплы, но это намного более трудоемко. В общем, однозначного ответа нет. Далее сделал нотный тест, где в дорожках каждый такт переключаются программы. При дефолтном банке все инструменты в обоих синтах были абсолютно идентичны друг другу по звуку. Навскидку взял два разных банка по одному инструменту - разницы тоже нет. Т.е. делаю вывод, что сэмплы в банках обоих синтов идентичны друг другу, возможно кое-где слегка подправлены настройки огибающих в инструментах.
Вообще, по большому счету говоря мы переходим к толкотне воды в ступе. Я не думаю, что найдется в этих всех банках что-то интересное. Например, в тех композициях, что выложил Олег наиболее понравился звук именно барабанов железного синта PSR-E323. Потому что он железный, за деньги куплен. Звук этих барабанно-шумовых ни с чем не сравнить. Сразу заметно, когда играет хардовый.
Было бы намного лучше и правильней, если бы мы занялись функционалом и, возможно, созданием своих "генераторов" сэмплов. Лично у меня достаточно знаний по функционалу, не хватает знаний по программированию.
Alexys, да, ты прав, нужно двигаться дальше, но всё же, в PSR-E323 отчётливо слышны как барабаны, так и инструменты,
другого поколения AWM, аналогичны поколению XG2006Le (по басу и барабанам сразу можно узнать).
Олег, не могли бы вы добавить записанный файл на XG2006Le, так же для сравнения?
XG2006Le - это VST? А где его можно найти?
Wlad, плееры вероятно исчезают потому что браузер не поддерживает mp3 внутри тега audio.
Можно попробовать другим браузером или в этом же сохранить на диск и воспроизводить оттуда.
Спрошу дурацкий вопрос. А версия с YMF724 не может по какой-либо причине внезапно заработать как S-YXG50? Я когда её загрузил, попробовал все 5 композиций по очереди, и какие-то отличия были заметны вроде бы во всех, а в самой проблемной - сильно заметны. Сейчас пытаюсь проделать то же самое, но вот эта самая проблемная сейчас звучит в обоих случаях одинаково плохо :( Попробовал с ещё одной - разница между 2MB и YMF724 почти неотличима, а вот с 4MB заметна только если знать, где искать.
Yamaha S-YXG2006LE Vsti - https://yadi.sk/d/DSQahfje3E5ykV
Олег, версия с YMF724 не может ни как звучать как S-YXG50, т.к. у неё свои настройки в инструментах, они по звуку практически
одинаковые, но отличий всё равно не мало, т.к. я при сравнении запускал два синта одновременно, а потом уже их сравнивал
перебирая по очереди инструменты.
Влад, пасиб за 2006-ую. Загрузил, послушал. Восклицаю: да что ж это такое !! :))) Они по звуку будут хоть чуть-чуть отличаться ? Везде одно и то же. В общем, все стандартно. Не, может так и должно быть и я, не понимая сути, хочу слишком многого, но палки-с-елками, сколько можно мусолить одни и те же сэмплы ! :))) Ну, хотя б проблемные: гитары, аккордеон получше справили. Где хорошее пиццикато, где Вокс, где, в конце концов Техно-хит ?! Даже Тимпани, как был, так и есть.
Но буду серьезным: почему-то не отображается в Кубэйсе интерфейс 2006-го. Его не видно и в самой проге. Окошко кривовато.
Alexys, у S-YXG2006LE нет интерфейса. Он был выдран из Yamaha MidRadio Player 7, где использовался только для проигрывания музыки. Официально никогда не выпускался как самостоятельный продукт. Звук у него сильно отличается от S-YXG50, не знаю почему вы не слышите разницы. Правда, нет полной поддержки XG (возможно, её можно активировать, но я с наскоку не нашёл как).
А, понятно насчет интерфейса. В синте да, настройки заметно другие, но сами инструменты легко узнаются. Кстати, только что обнаружил, что на команды SysEx не откликается.
У кого какие мысли вообще по всему этому поводу ? Будем вносить историческую справедливость ?
Лично моё мнение таково Alexys, нужно собирать свой синтезатор !, из отборнейших семплов, т.к. это сейчас не проблема,
по сути, у нас есть всё что нужно, движок и информация! На днях уже точно освобожусь, и продолжу документировать всё
остальное, но одному делать всё это довольно не легко, и долго, так как после документации, мне придётся ещё лезть и в
движок синта, чтобы расширить хотя бы один программный счётчик, на один байт, это нужно для того чтобы увеличить размер
банка с 16мб, ~до 1.5гб, но это так же займёт много времени, т.к. я был программист старой среды, это было давно, и я
долго этим не занимался, а в новой среде много чего не до понимаю, и поэтому придётся со всем этим разбираться.
Но,, можно всем нам пробовать попросить VEGа помочь с этим, т.к. VEG имеет опыт, и среди нас является на данный момент
единственным действующим программистом, что помогло бы распараллелить эту задачу, и тем самым ещё сильнее мотивировать
всех нас на создание данного синта (меня уж точно), и изменить его историю. VEG, не знаю как все, но я всё же спрошу, поможете
с программной частью?, по сути там ничего сложного нет, и я понимаю что мало пока информации, но, я могу создать для
удобства синт, с одним семплом и с одним конфигом, где используется данный счётчик, и в деталях всё описать, а также
в картинках, чтобы было всё максимально удобно, понятно и просто. Вы же хотите изменить Мир ?, и вот это, один из реальных
шансов что то для этого сделать, подумайте над этим, ведь не каждый день встретишь такие непростые и интересные проекты,
которые направлены в первую очередь на общее благо, в общем решать вам.
Вот и я о том же. Как бы ни пафосно звучало, но это действительно такая ВЕЩЬ, которая интересует и собирает много людей. Просто потому что нет ей реальной полноценной альтернативы. Предлагаю просто взглянуть трезво на все это и оценить, справимся ли мы с этой задачей. Правильно взвесить свои силы, пообщаться и прикинуть, какой можно составить план для создания и реализации нашего "проекта". Возможно, что ничего особо и придумывать и не придется, а сделать простенько, но сердито.
Насчет сэмплов ты прав, их полно. Правда, я, например, не знаю ни их стандартов, ни характеристик, ни норм на параметры. Кроме слуха определений больше нет. Но надо искать.
Насчет програмной среды, мне бы только методы объяснили, тогда тоже бы что-то внес. Тем более в свете всего этого понимаю, что пора браться за собственные фильтры и синтезаторы. Например, тот же DrumSynth поковырять.
Не скрою, что и у меня надежда на Евгения.
Но все, конечно, по интересу, желанию и свободному времени.
Да, новые звуки, это хорошо. Но...Что бы прослушать так как надо вагоны XG midi нужен именно ямаховский качественный синт. Лично меня он устраивает полностью под мои задачи. Вот сделать бы MU 100, или подставить его сэмлы в sxg 50.
А для других целей полно софтовых сэмплеров и библиотек к ним.
Добавлю (Остапа понесло). XG - это целая философия и многие музыканты в мире до сих пор не забывают этот стандарт. На базе этого стандарта нужно учить детей, как создавать музыку. А то они загоняют сэмпл или луп в композицию, где всё в куче (бочка + бас), и понятия не имеют, что такое бас гитара и её разновидности, и в каком диапазоне она играет. Кроме того, sxg 50 очень грамотно звучит в нотных редакторах (Finale). Все нюансы - тремоло, лиги и т.д. передаёт так как нужно.
Wlad 2, вторым постом Вы ответили на вопросы, возникшие в первом ! :))
Кстати, во-первых, ничто не мешает использовать банки из какого угодно синта, в том числе и из MU100. Где так и обозначить - MU100 Voices and Drums. А во-вторых, стандарт XG и сам является расширеным от General MIDI, а значит можно и даже нужно конкретно указать на различия в этих стандартах и, соответственно, банках. Кроме того, стандарт TG-300, указанный в S-YXG-50, никак не отличается от самого XG по звуку. А кто знает, как он звучит на самом деле ?? Какие у него банки и наборы сэмплов ? Я клоню к тому, что много существующей музыки создано на совершенно других базах.
Добавил для сравнения версию с S-YXG2006LE.
Олег, а можно саму мидишку послушать ?
Alexys ,
"Я клоню к тому, что много существующей музыки создано на совершенно других базах".
Все эти другие базы (синты и пр.) были созданы гораздо позже, и так или иначе под впечатлением ямаховских аналогов.
Ничего там нового нет.
Но и ямаха не стояла на месте. Я уже писал, что в идеале нужен банк под Мотив - там все современные звуки, и под Тайрос, чтоб использовать базу стилей для самаграя в связке с One Man Band 11. Хотя концепция монотонных стилей, конечно устарела. Тут напрашивается введение формата паттернов с готовыми мелодическими и гармоническими ходами, но управляемых как стиль - аккордами. Попытки такие у ямахи были (Ymaha DJXII), но почему-то не реализовались.
Wlad 2, что-то я не уловил сути, что Вы имели в виду ? Мы не можем однозначно говорить под каким впечатлением какие базы создавались. Есть ведь еще много синтов других производителей.
Что значит монотонные стили ?
А паттерны здесь к чему ? Или под паттернами Вы не подразумеваете секвенций ?