1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Программный синтезатор Yamaha S-YXG50 (MIDI XG/GS)

Тема в разделе "Мастерская", создана пользователем VEG, 10 апр 2016.

  1. VEG

    VEG

    Регистрация:
    3 авг 2006
    Сообщения:
    631
    VSTi-версия MIDI-синтезатора Yamaha S-YXG50. Полезно для старых игр с музыкой в MIDI, а также для прослушивания обычных MIDI-файлов. С этим синтезатором многие MIDI реально приятно слушать :)

    Страница проекта: http://veg.by/ru/projects/syxg50/
    Релиз: http://veg.by/files/midisynth/yamaha_syxg50_vsti.7z

    Использовать можно при помощи плагина foo_midi в foobar2000 (мне этот вариант больше всего нравится). Или при помощи специальных драйверов можно установить глобально в системе. Более подробно опишу позднее. В принципе, инструкции гуглятся. Просто в случае с пропатченной версией не нужно устанавливать S-YXG50 — достаточно просто извлечь файлы в любую директорию.
     
    Последнее редактирование: 25 апр 2016
    AndyFox, Menkau_ra, dsp2003 и 7 другим нравится это.
  2.  
  3. VEG

    VEG

    Регистрация:
    3 авг 2006
    Сообщения:
    631
    Занялся патчингом Yamaha S-YXG50. Это софтварный MIDI-синтезатор от Yamaha. Есть мнение, что он родственник плат DB50XG, SW60XG, MU10 и MU50. Также встретил инфу, что все они основаны на железе синтезатора Yamaha QS300, и якобы в этом синтезаторе WAVE ROM был большего размера, то есть лучшего качества:
    Ищу дампы ROM (PRG и WAVE) всех этих железяк. Если кто может помочь — буду признателен. Очень вероятно, что S-YXG50 использует WAVE ROM одной из этих железяк, и его можно научить использовать другие.

    Также известен софтварный S-YXG2006LE. Возможно, он тоже использует формат одного из синтезаторов того времени. Мне один китаец прислал дамп WAVE ROM от гораздо более нового Yamaha PSR-S650 (2011 года), и очень похоже на то, что там используется развитие того же формата, что использовался в 2006 году в S-YXG2006LE (или в синтезаторах того времени).

    Что интересного удалось нарыть. SGP.DLL из Yamaha MidRadio 6 содержит полную версию движка Yamaha S-YXG50. В нём отключена поддержка Full XG, поддерживается только XGLite V2, но на самом деле это искусственное ограничение, и правкой одного байта SGP.DLL превращается в полноценный S-YXG50 с поддержкой Full XG.

    SGP2.DLL (S-YXG2006LE) из MidRadio 7 тоже ограничен XGLite, и вероятно, что там ограничение тоже искусственное. Судя по коду, S-YXG2006LE явно является развитием S-YXG50, наверняка для внутреннего пользования они поддерживают PC версию своего движка в актуальном состоянии, просто к обычным людям просочилось только две версии движка. В общем, они достаточно сильно отличаются, и пока что найти как включить Full XG в S-YXG2006 не получилось. Может быть, там и вовсе этого нет, никто не мешал Yamaha за почти десяток лет выпилить эту возможность из самого движка :)

    В общем, если у кого есть идеи где можно взять дампы WAVE ROM и PRG ROM синтезаторов, которые могут быть родственниками S-YXG50 и S-YXG2006, эта инфа может оказаться очень полезной. Вдруг получится задействовать wave table лучшего качества? :)

    UPD. Нашёл сервис-мануал для QS300. Я хоть и не железячник, но микросхемы на схемах отличу :)
    aveg.by_z_2016_04_10_17_32_27_000e70b1.png
    Как видно, здесь два WAVE ROM по 16M каждая. Других WAVE ROM нет. То что имеются в виду мегабайты я сомневаюсь. Скорее всего это мегабиты, тем более что для количества памяти в микросхемах обычно указывают именно мегабиты. Получается 32/8=4мегабайт. Хм, выходит что про 8 мегабайт WAVE ROM соврал кто-то, кого я процитировал ранее?

    В любом случае дампы очень интересны. Хотя бы для того, чтобы выяснить степень родства. В самих wavetable файлах S-YXG50 есть прямое упоминание: MU50 2MB V2.0, то есть возможно это дамп WAVE ROM этого устройства. И возможно, существует более новая и лучшая версия (в железе). Правда, внутри S-YXG50 есть ещё упоминание MU128, но это скорее уже относится к используемому движку. Исследуемая VSTi-версия была выпущена в 2003 году, то есть на 8 лет позднее времени, когда появились железные прародители. То есть программный код движка может включать и плюшки более новых синтезаторов. Например, там есть скрытая настройка Process, которая как-то влияет на вывод (генерируемые звуковые данные изменяются), но я не могу понять, улучшаются они, ухудшаются, или вообще что с ними происходит :) По умолчанию эта настройка была выключена.

    UPD2. Попытался найти сервис-мануал для MU50, но нашлось только за деньги и уже продано. Однако, там есть фотография интересующей части.

    Видно плохо, но вижу сходства. MU50:
    aveg.by_z_2016_04_10_18_06_13_4b98cd3d.jpg
    QS300:
    aveg.by_z_2016_04_10_18_08_07_83ecbdeb.jpg
    --- добавлено 10 апр 2016, предыдущее сообщение размещено: 10 апр 2016 ---
    Был бы ещё интересен и проект по портировании WDM версии этого синтезатора под Windows Vista+. Однако, для этого мне пришлось бы детально изучать соответствующие API драйверов и что там изменилось, что сломало совместимость. Есть ещё вариант написать новый драйвер поверх SDP.DLL (голая версия VSTi движка без GUI и лишних зависимостей). Однако, этот проект не планируется настолько масштабным. VSTi версия покрывает большинство задач. Разве что наверное глобально в систему не очень удобно устанавливать, если нужно.
    --- добавлено 10 апр 2016 ---
    Ещё любопытно, что SXGWAVE2.TBL и SXGWAVE4.TBL были зашифрованы для каких-то целей. S-YXG50.DLL расшифровывает их при загрузке. Причём расшифрованные версии сжимаются гораздо лучше (потому что зашифрованные данные больше похожи на белый шум, слишком высокая энтропия), так что в ближайшем обновлении я заменю зашифрованные версии файлов на расшифрованные, что значительно уменьшит объём архива, и немножко уменьшит время загрузки. В расшифрованном варианте, как я понимаю, звук хранится в формате, который Yamaha называет AWM2 (Advanced Wave Memory 2). Если слушать их как PCM, то сквозь адский шум можно услышать очертания звуков. Значит этот AWM2 достаточно простой формат сжатия, и если задаться целью, можно разобраться с ним.
    --- добавлено 10 апр 2016 ---
    Также ищу старые версии софтварной драйверной версии S-YXG50 (и его вариаций) до 2000 года, чем старше — тем лучше. В интернете и на сайте Yamaha мне пока что попадаются только файлы последних версий. Но есть явные указания на то, что он уже был как минимум в начале 1998 года, а может и раньше. Хочу посмотреть как там выглядят эти wavetable файлы.
     
    Последнее редактирование: 10 апр 2016
    AndyFox, Corak, dsp2003 и 2 другим нравится это.
  4. VEG

    VEG

    Регистрация:
    3 авг 2006
    Сообщения:
    631
    Покопался я по archive.org... Этот сайт верный друг олд-геймера и вообще любителей старого ПО :) Уже не раз там выкачивал древние версии программ, которые больше нигде не достанешь.

    В общем ранние версии софтварных синтезаторов используют тот же зашифрованный внешний файл со звуковыми данными (SXGWAVE4.TBL и т.д.), но об этом было легко догадаться по датам файлов — они были созданы в 1996 году. Интересен второй файл, который содержит параметры различных звуков (какой участок сэмпла взять и воспроизвести и т.д., как я понимаю). Дата его модификации была в 2000 году. В ранних версиях синтезатора данные этого файла хранились в ресурсах 16-разрядной DLL sxgxg.dll:
    aveg.by_z_2016_04_11_09_02_19_0c94fb7d.png
    Пришлось искать 32-разрядную винду, чтобы запустить в ней 16-разрядный Borland Resource Workshop, потому что современные редакторы ресурсов не понимают ресурсы у 16-разрядных исполняемых файлов :)

    Как видно, тут у каждой секции данных есть своё имя, то есть если когда-нибудь заниматься полным реверсом формата данных, используемых этим синтезатором, то файлы из старых версий подскажут, какие из данных параметры каких инструментов задают. Нашёл я этот файл как раз по кусочку нового *.tbl файла с параметрами из более новых версий.

    Также обнаружилось, что 3 версия S-YXG20 имеет внешний банк из двух файлов с сэмплами объёмом 1.5 мегабайта. Причём они подходят к S-YXG50, просто качество плохое. Файл с сэмплами был создан тоже в 1996 году, а файл с параметрами в новом формате — в 2000. В общем всё так же, как и с аналогичными файлами из самого S-YXG50.

    Также нашёл редкие вариации синтезатора, такие как S-YXG70 (это одновременно S-YXG20 и S-YXG50 для игрушки Final Fantasy 7, S-YXG20 включается на насыщенных сценах, чтобы ресурсов меньше потреблять), S-YXG/DM (версия из Final Fantasy 8, умеет помимо стандартного набора инструментов воспроизводить инструменты из DLS файла, что является плагином-расширением для S-YXG50), S-YXG100 (Plus, PVL; предлагает для S-YXG50 плагины-расширения VL и SG, первый позволяет генерировать новые инструменты, второй позволяет синтезировать голос на японском, причём это реально плагины — они идут в качестве отдельных файлов). Увы, все эти фишечки не были портированы на Windows XP, и остались доступными только под Windows 9x. Хотя возможно это было политическим решением, и эти штуки на самом деле есть где-то в последней доступной версии движка. Правда, там так много всяких параметров, и достаточно путанный код, что искать эти параметры можно вечность. А с учётом того, что эти плагины для S-YXG50 были во внешних файлах (как бы отдельно от движка S-YXG50), высока вероятность, что их не интегрировали в код последней S-YXG, и они действительно остались недоступными.
    --- добавлено 11 апр 2016, предыдущее сообщение размещено: 11 апр 2016 ---
    Вообще забавно, но я нахожу гораздо больше общего между S-YXG50 VSTi и S-YXG2006LE VSTi, чем между S-YXG50 VSTi и драйверной Win9x версией S-YXG50, потому что последняя почти вся 16-разрядная и такое впечатление что там совсем другой движок, возможно его переписали где-то в процессе. То есть пока что я не наткнулся на два участка одного и того же кода в этих двух разных версиях. Такое впечатление, что два совсем разных проекта. Хотя, может быть не там ищу =)
     
    AndyFox, dsp2003, nop и 2 другим нравится это.
  5. VEG

    VEG

    Регистрация:
    3 авг 2006
    Сообщения:
    631
    Поставил S-YXG100 PolyVL на Windows 98 в виртуалке, послушал. Звучит хорошо. Очень жаль, что Yamaha решила не портировать это дело под Windows XP и не выпускала его в виде VSTi. Для 98 винды это реализовано в виде VxD драйверов. Сам синтезатор, и его дополнения (PVL, VL, SG, DM) — это отдельные VxD драйвера, каждый больше мегабайта, которые как-то взаимодействуют друг с другом. Вряд ли такое возможно за разумное время портировать без исходников. С нуля написать новое наверное проще :)

    Думаю в итоге сделаю S-YXG50 одним файлом (зашью в ресурсы расшифрованные 4MB wavetable файлы). С ним так и управляться проще будет, и загружаться он будет быстрее (потому что не будет необходимости при загрузке сразу читать весь wavetable, все данные exe-файла проецируются на оперативную память, а считываются только при непосредственном обращении к данным). И на этом данный мини-проект можно будет остановить :)

    Но если у кого есть возможность получить дампы микросхем из железяк, о которых я писал в предыдущем сообщении — обязательно пишите! Интересно же поизучать, что там.
     
    Последнее редактирование: 11 апр 2016
    AndyFox, Verok, Menkau_ra и 2 другим нравится это.
  6. VEG

    VEG

    Регистрация:
    3 авг 2006
    Сообщения:
    631
    http://veg.by/files/midisynth/yamaha_syxg50_vsti.7z

    Теперь звуковые данные наилучшего качества (4 мегабайтный банк) зашиты в расшифрованном виде в SYXG50.DLL. То есть теперь этот один файл совершенно самодостаточен. При необходимости можно удалить из ресурсов эти данные, и в таком случае автоматически будут искаться файлы в текущей директории плагина. Задать внешний файл можно и без удаления зашитых вариантов из ресурсов, через ini-файл.

    Также я научил SYXG50.DLL понимать несколько вариантов wavetable: из двух файлов/из одного общего файла, зашифрованные звуковые данные/оригинальные звуковые данные. При нормальном использовании понятно, что это не пригодится. Но если вдруг кто-нибудь будет исследовать этот движок дальше, возможность загружать незашифрованные звуковые данные из внешнего файла будет полезна.

    Для S-YXG50 существует всего два официальных звуковых банка: 2MB и 4MB. Причём VSTi версия всегда шла только с 4MB версией. Также я нашёл относительно совместимый 1.5 мегабайтный банк от S-YXG20. Но он ужасного качества (22050кГц частота максимальная дискретизации). Возможно, выложу все эти варианты отдельным архивом для экспериментов.

    Ещё начал патчить SGP.DLL, который по сути полноценный S-YXG50, просто без GUI. Для случаев когда он будет использоваться просто как декодер, наверное это будет уместно. Хотя там экономия всего 300 килобайт :) Но зато импорты только из kernel32.dll, вряд ли там когда-нибудь что-нибудь сломается. Будет работать всегда и везде :)
     
    Последнее редактирование: 15 апр 2016
    AndyFox и dsp2003 нравится это.
  7. QBSP

    QBSP

    Регистрация:
    18 июл 2015
    Сообщения:
    293
    Не хочу расстраивать, но всё уже давно сделано кем-то до тебя.
    http://m.friendfeed-media.com/622954a1c011f90266852fdf30893847fd489cb0

    И я послушал как звучит этот синтезатор. По современным меркам он морально устарел и звучанием своим не радует. Проще поставить BASSMIDI Driver и кормить его звуковыми шрифтами, которых существует немерено и на любой вкус, есть даже воссоздающие звучание S-YXG50, если уж очень нужно.
     
    AndyFox нравится это.
  8. VEG

    VEG

    Регистрация:
    3 авг 2006
    Сообщения:
    631
    @QBSP, вы читали невнимательно. Я писал выше про этот SGP.DLL. Приведённая вами инструкция бредовая. Там просят принудительно поставить зачем-то WDM-драйвер S-YXG50, после чего предлагают использовать SGP.DLL VSTi, которому никакие драйвера не нужны. Похоже, что автор толком не понимал, что делает, поэтому на всякий случай написал всё что он делал, потому что что именно заработало он не понял :)

    А вообще да, существует пропатченный SGP.DLL из MidRadio 6, но:
    — он не умеет Full XG (только XG Lite v2), я его уже пропатчил для поддержки Full XG, но пока что не выкладывал;
    — вместе с SGP.DLL идёт лишь двухмегабайтный звуковой банк;
    — также в нём нет GUI;
    — и он состоит не из одного файла.

    Сравните на SGP.DLL и моём yamaha_syxg50_vsti.7z вот эту композицию, например. Разницу будет сложно не заметить.

    Существует и полноценный пропатченный S-YXG50.DLL, но:
    — он требует установки, он смотрит свои ключики в реестре;
    — он состоит не из одного файла.

    Так что нет, вы меня совсем не расстроили. Перед тем, как браться за разработку патча, я конечно же погуглил существующие решения, и ни одно решение меня не устроило.
    --- добавлено 15 апр 2016, предыдущее сообщение размещено: 15 апр 2016 ---
    Да, это я тоже смотрел. Но не видел ни одного звукового шрифта, который умел полноценный XG. На том же полковнике можете послушать разницу между S-YXG50 и звуковым шрифтом, который у вас косит под SYXG50 или под DB50XG.
    --- добавлено 15 апр 2016 ---
    Звуковой банк тут действительно олдскульный, 1995 года (судя по всему, из железного Yamaha MU50). Но по крайней мере он звучит сбалансированно, и поддерживает почти все используемые на PC расширения MIDI (умеет GM, GM2, GS и XG; только PVL и SG остались в S-YXG100 под Windows 98). Толку от современных звуковых шрифтов, если они адекватно воспроизводят далеко не все MIDI из 90-х? У S-YXG50 покрытие будет порядка 99%.
     
    Последнее редактирование: 25 апр 2016
    AndyFox, dsp2003, nop и ещё 1-му нравится это.
  9. QBSP

    QBSP

    Регистрация:
    18 июл 2015
    Сообщения:
    293
    Арргх! Мои уши! Какой ужасный трек, один из худших, что мне доводилось слышать...

    Насчёт звуковых шрифтов, я же написал, что существует огромное множество на любой вкус. Надо знать, где искать и более того, надо знать, чем их тестировать. Не нубовскими треками, какой-то школотой слепленными непонятно из чего, а многоголосыми со множеством инструментов играющих параллельно. Многие midi композиторы используют синтезатор SC-88 и в мире существует звуковой шрифт с его звучанием, но он платный. Зато ему есть множество альтернатив с потрясающим звучанием и также с поддержкой различных дополнительных расширений. А все эти допотопные программные синтезаторы эры 90-х откровенное фуфло, мягко говоря.

    Вот для примера как звучит хороший звуковой шрифт.
    http://rghost.ru/6fNQpJRvC
     
    AndyFox нравится это.
  10. VEG

    VEG

    Регистрация:
    3 авг 2006
    Сообщения:
    631
    @QBSP, на вкус и цвет, конечно же, но даже любопытно стало, как же у вас зазвучал полковник. Можете записать то что у вас воспроизводится?
     
    dsp2003 нравится это.
  11. Antr00plasm

    Antr00plasm

    Регистрация:
    6 окт 2009
    Сообщения:
    1.719
    Надо выкладывать тогда не только в Оге, а еще в миди формате, чтобы мы сравнить могли, как оно там и здесь звучит. А то выложил два непонятных файла. Ценитель блин пришел. Кстати, под 98м какой программой можно записать звук с ямаховского синтезатора для сравнения.
     
  12. VEG

    VEG

    Регистрация:
    3 авг 2006
    Сообщения:
    631
    Под современными ОС вывод VSTi можно сразу конвертировать в любой формат в foobar2000 (после настройки), да и скорее всего в любом другом плеере, который умеет играть MIDI через VSTi и кодировать звук из поддерживаемых форматов. Но foobar2000 скорее всего не заработает на Windows 98. Там видимо какой-то свой софт был для VSTi в те времена.
    --- добавлено 15 апр 2016, предыдущее сообщение размещено: 15 апр 2016 ---
    @Mikrygin, а вообще на 98 винду можно поставить драйверную версию S-YXG50 или даже S-YXG100-PVL, который покруче будет. Правда, как это дело записывать я тоже не в курсе. У меня на виртуалке под Windows 98 крутится S-YXG100-PVL :)
    --- добавлено 15 апр 2016 ---
    На офсайте Yamaha PVL версию S-YXG100 уже не найти, но в интернете есть ещё где её скачать:
    http://vetusware.com/download/S-YXG100 PVL 1.11.49/?id=12545 — версия с крэком и инструкцией как поставить 4-мегабайтный wavetable.
    http://erpman1.tripod.com/download.html (внизу страницы) — ссылки на оригинальный инсталлятор триальной версии, там же неофициальный апдейт.
    Работает отлично на виртуалке под Windows 98 SE.
    --- добавлено 15 апр 2016 ---
    К слову, чего я вообще взялся за этот синтезатор. Мне из детства запомнилось, что после переустановки ОС с 98 на XP или замены аудиокарты (потому что я и ОС менял, и аудиокарту мне меняли из-за каких-то проблем) все MIDI (включая те, что в играх) внезапно стали воспроизводиться ужасно. Я не понимал в чём дело, и со временем решил, что мне просто показалось, что раньше было лучше. Но я помню, как я игрался с Yamaha XG Studio (там под музычку микросхемки такие ползают, почему-то запомнилось). И вот совсем недавно нашлись некоторые мои старые MIDI, и мне вспомнились эти две буквы XG. Погуглил, посмотрел. И тут я понял, почему у меня 15 лет назад вдруг MIDI стало так плохо играть. Я тогда мелкий был, и со всех дисков, что у меня были на руках (а было их немного, так что изучалось всё детально), я ставил всё подряд. Например, на диске с драйверами к видео нашлась классная игрушка Future Cop (Demo). Хоть это и демка, стала она одной из моих любимейших игр :) Видимо, диск с драйверами к аудио постигла та же участь. Возможно, в аудиокарте использовался какой-то ямаховский чип, поэтому там был набор софта от Yamaha. Оттуда у меня взялся и Yamaha XG Studio, и игрушка DemonStar, которая (достоверно известно) часто шла вместе с драйверами Yamaha (потому что там было MIDI с использованием XG). Видимо где-то тут же я заодно поставил и программный синтезатор, или даже была аппаратная поддержка ямаховским чипом на аудиокарте. Всё указывает на это. 15 лет спустя загадка разгадана :)
    --- добавлено 15 апр 2016 ---
    @Mikrygin, http://www.hermannseib.com/english/vsthost.htm
    Скорее всего этой софтиной можно слепить нужное (она умеет и Windows 98, там есть версия на страничке). Играть миди через VSTi она умеет (это я проверил уже), можно делать целые цепочки из VSTi инструментов. Полагаю, там же должен быть элемент для записи вывода на диск.
    --- добавлено 16 апр 2016 ---
    Кстати, если кто сидит на Windows XP. Yamaha выпускала (как я понимаю) бесплатную WDM-версию этого синтезатора для Windows XP.
    Доступно для скачивания прямо с серверов Microsoft Windows Update:
    http://www.download.windowsupdate.com/msdownload/update/v3-19990518/cabpool/1403848.cab — 4MB wavetable (лучше качество).
    http://www.download.windowsupdate.com/msdownload/update/v3-19990518/cabpool/1415885.cab — 2MB wavetable (хуже качество).
    Ну вот почему они не предустановили его по умолчанию в ОС? :(

    Для Windows 98 драйвер был VxD (и его никак не завести на современных ОС, только если специальный враппер для него писать), и на сколько я знаю, бесплатной полноценной версии не выходило.
     
    Последнее редактирование: 16 апр 2016
    dsp2003 нравится это.
  13. Antr00plasm

    Antr00plasm

    Регистрация:
    6 окт 2009
    Сообщения:
    1.719
    На счет Demonstar не знал, что там XG,надо попробовать - я хочу сравнить звук своей "железной" ямахи и получившейся твоей. Заодно интересно было бы сравнить с железной же Sb audigy, там же вроде нет хардварного синтезатора в отл от ямахи, там два программных. Но например в Dos играх звучание ямахи мне нравится больше, (хотя на аудиджи можно поиграться soundfontами). Мне в детстве кстати довелось послушать миди на SB16 после своего SB awe - я не поверил, что это одна и та же композиция играет, как-будто половину инструментов убрали, так что про миди я быстро понял, что оно от синтеза звуковухи зависит).

    З.Ы. Кстати сравнивал не так давно звучание миди на программном синтезаторе, sb audigy, тем что идет в комплекте с драйверами, и стандартным майкрософтовским, кроме того что на MS почему-то громкость выше, разницы особо не заметил. А вот разница между хардварным ямаховским и стандартным мне лично видна сразу, фиг знает может дело вкуса...
     
  14. VEG

    VEG

    Регистрация:
    3 авг 2006
    Сообщения:
    631
    @Mikrygin, а какая у вас железная ямаха? :) Какой там объём WAVE ROM? Я послушал в интернете записи разных железных синтезаторов Yamaha из 90-х, и судя по всему, для стандартных звуков Yamaha много лет использовала один и тот же банк звуков (возможно, в разном качестве), а отличия были в основном за счёт всяких расширений типа VL, которые добавляли новые инструменты, но старые не меняли. Yamaha везде указывает, что там AWE2 wavetable synthesis — полагаю, что имеется в виду как раз формат WAVE ROM или сумма WAVE ROM плюс таблицы с параметрами инструментов, которые используют этот WAVE ROM. Таблицы с параметрами инструментов скорее всего будут зашиты в PRG ROM, и их нужно будет искать среди остального кода. А вот WAVE ROM там в сыром виде в виде отдельной микросхемы. Было бы интересно найти дампы железяки тех времён с большим объёмом WAVE ROM, чем 4МБ. Вдруг можно будет пристроить к S-YXG50 и остальному семейству :)

    Как я писал, у меня есть дамп 64MB WAVE ROM нового синтезатора 2010 года, но там судя по всему всё слишком поменялось, и по крайней мере заголовок файла больше похож на таблицы S-YXG2006LE (та же метка), но шифрование используется другое. Китаец, что мне его прислал, сказал что исследовал код и кода дешифровки там не было, то есть DSP процессор сам скорее всего декодирует это дело на лету, во время воспроизведения. Я ещё попробую применить к ему алгоритм расшифровки из S-YXG2006LE, посмотрим что там получится. Алгоритм шифрования WAVE в S-YXG50 (который был записан и зашифрован в 1996 году!) сохранился и в S-YXG2006LE, но в последнем добавился ещё один уровень шифрования поверх того, что было в S-YXG50. То есть то что было в S-YXG50 было просто расширено. Возможно, Yamaha не особо заморачивалась, и везде долгое время использовала одно и то же шифрование, и в софтварных реализациях сделала дешифровку именно с использованием того алгоритма, что у них тогда всюду использовался. Об этом может говорить то, что они заранее зашифровали все WAVE банки в 1996 году, но некоторые из них попали в люди годами позднее (4MB версия). Этот же алгоритм использовался и в S-YXG20.

    Движок софтварного синтезатора они достаточно сильно переделывали в 2000 году. До этого момента содержимое маленького tbl файла с параметрами было зашито в ресурсы 16-разрядного DLL-файла sxgxg.dll. Причём если в sxgbin41.tbl хранится 17 блоков с данными (немножко я разобрал всё же формат), в ресурсах sxgxg.dll было гораздо больше блоков и у них были имена:
    [​IMG]

    Скорее всего просто некоторые из этих данных были объединены в общие блоки по какому-то признаку, или же какую-то часть зашили в код движка. Было бы интересно сравнить содержимое этих данных в SXGXG.DLL и в SXGBIN41.TBL. Yamaha вообще была не особо любителем менять уже созданные файлы, тот же SXGWAVE4.TBL не изменялся с 1996 года на протяжении всего времени жизни программного синтезатора. SXGBIN41.TBL после обновления движка в 2000 году тоже не изменялся. Но при переносе данных из SXGXG.DLL в SXGBIN41.TBL они вполне могли что-то изменить, любопытно было бы сравнить звучание старых версий драйверов с SXGXG.DLL и более новых с SXGBIN41.TBL.

    Что касается непонятной опции Process в ini-файле. Скорее всего это какой-то постпроцессинг, который отключили, потому что он в раза два замедлял работу синтезатора. Правда, различие на слух всё равно не улавливаю. Разница видна только при двоичном сравнении отрендерённых WAV с Process равным 1 или 0.
    --- добавлено 16 апр 2016, предыдущее сообщение размещено: 16 апр 2016 ---
    Додумался я заглянуть в драйвера одной из аудиокарт на Yamaha YMF740 (в комплекте с которыми как раз и шёл и DemonStar, и XG Studio, так что очень вероятно, что 15 лет назад у меня были именно эти драйвера, и скорее всего железяка тоже). И я там среди прочих файлов обнаружил YDSXG.DAT 1998 года размером 2.5 мегабайта, формат которого совпадает с SXGWAVE*.TBL файлами из программного синтезатора! Там применяется то же шифрование и т.д. Соответствующего файла с таблицами параметров инструментов не вижу, возможно оно где-то зашито внутри прошивки (скорее всего YDSXG.SYS, как показал беглый просмотр). Но это вообще новый вектор для копания — найти много разных драйверов Yamaha и искать интересности там :)
    --- добавлено 16 апр 2016 ---
    Собственно эта цитата из вики и заставила меня заглянуть в драйвера. Судя по всему, этот чип умел брать любой звуковой банк из оперативной памяти, и у него нет серьёзных ограничений на характеристики банка. Тут же пишут, что были инструменты для полного изменения качества и даже набора инструментов. Тут два варианта: либо используются DLS файлы, как в расширении S-YXG/DM, и это не очень интересно для S-YXG50 (по крайней мере пока не нашлась в нём скрытая функция загрузки инструментов из DLS-файлов); либо же там генерили файлы именно в формате YDSXG.DAT. Будем разбираться.
    --- добавлено 16 апр 2016 ---
    И да, это ещё один факт, который подталкивает к мысли, что в железных WAVE ROM будет использоваться тот же формат и то же шифрование.
    --- добавлено 16 апр 2016 ---
    В более новых драйверах (для WDM, Windows XP) этот файл зовётся уже dsxgwave.tbl, но содержимое не изменяется.
    https://web.archive.org/web/20100508002446/http://www.yohng.com/powerymf/
    Судя по всему, эта программа оперирует как раз с этим «звуковым шрифтом». По крайней мере в FAQ упоминается YDXG.DAT и то что данная программа позволяет удобно им управлять (и некоторыми другими фишками).
    --- добавлено 16 апр 2016 ---
    Сайт автора всё ещё работает: http://www.trancein.com/articles/power-ymf/
    awww.trancein.com_articles_power_ymf_pymf.gif
    Если у кого есть аудиокарты на этих чипах, можете поиграться :)
     
    AndyFox и dsp2003 нравится это.
  15. Antr00plasm

    Antr00plasm

    Регистрация:
    6 окт 2009
    Сообщения:
    1.719
    У меня на Ymf-724 карта, прочитал "YMF724 - 2х канальный звук, SP/DIF Out, 64 голоса MIDI, 73 аудиопотока, YMF740 - урезанная версия чипа 724 (только 32 голоса MIDI, 48 аудиопотоков, нет SP/DIF Out) ". То есть почти то же что и Ymf740. Переключусь потом на другой системник покопаюсь в ней).
     
  16. VEG

    VEG

    Регистрация:
    3 авг 2006
    Сообщения:
    631
    @Mikrygin, там несколько файлов идёт вместе с предлагаемыми автором Power YMF звуковыми банками. Если не сложно, посмотрите на боевой системе, куда какие данные эта программа помещает. Также посмотрите редактор банков, какие файлы он хочет получить на вход :)
    --- добавлено 16 апр 2016, предыдущее сообщение размещено: 16 апр 2016 ---
    Попробовал подсунуть этот DSXGWAVE.TBL вместе с одним из TBL-файлом от других банков — играет, но звуки все перемешаны. То есть формат звука тот, но нужно как-то получить ещё соответствующий TBL-файл с параметрами какие инструменты как играть. Возможно, соответствующие таблицы Power YMF где-то патчит, чтобы использовать свои банки.
     
  17. Antr00plasm

    Antr00plasm

    Регистрация:
    6 окт 2009
    Сообщения:
    1.719
    Ок, попробую
     
  18. Alexys

    Alexys

    Регистрация:
    20 янв 2014
    Сообщения:
    322
    Приветствую ! Пользую VST-плагин S-YXG-50 до сих пор при работе с музыкой. Хорошо подходит к созданию композиций для игр. Могу много чего объяснить, если нужно. Кстати банк в VST точно такой же, как и в WDM. В Винду его внедрить не могли, потому что нет соответствующего драйвера (а скорее всего лицензии) и в винде уже синтезатор "Програмный синтезатор звуковой" - обычный синтезатор формата GM0, GM1 (General Midi) с банком C:\WINDOWS\system32\drivers\gm.dls где ВСЕ сэмплы в 22кГц, моно качестве.
    Если вытаскивали из банка Ямахи сэмплы, поделитесь, пожалуйста. Кстати, не разбирались, как в этом синтезаторе реализуются эффекты (т.е. хорус, реверберация, дилэй) ?
     
  19. VEG

    VEG

    Регистрация:
    3 авг 2006
    Сообщения:
    631
    @Alexys, тут в ямаховском синтезаторе тоже частота дискретизации семплов очень низкая, и они 8-битные. Видно, какая-то пост-обработка многое решает.

    Если драйвера нет, на что же я тогда привёл ссылки?
    Разрешила же Yamaha компанни Microsoft разместить у себя бесплатную WDM-версию синтезатора для XP. Почему бы не договориться, чтобы его встроить в систему? :)
    --- добавлено 16 апр 2016, предыдущее сообщение размещено: 16 апр 2016 ---
    Нда, паранойя Yamaha по поводу звукового банка меня удивляет. Оказалось, что оно при старте хоть и расшифровывало WAVE ROM, но сразу же примитивным XOR каждый байт обратно «зашифровывало», а потом на лету непосредственно при каждом воспроизведении семплов делает последнюю пару лишних операций для получения оригинального значения семпла. Сделано видимо для того, чтобы просто дампом памяти после загрузки нельзя было достать целиком расшифрованный WAVE ROM.

    Хорошо что ресурсы у старых компьютеров были ограничены, а то они бы там прикрутили гораздо круче шифрование :) Интересно, от чего это вообще «защита»: от воровства семплов, или от их модификации фанатами?

    Сейчас изучаю соответствующий код, там много разных функций работает с этим WAVE ROM, и в каждой свой код с нужной парой операций. Даже не знаю, оставить уже как есть, или заморочиться и сделать поддержку действительно полностью расшифрованного банка.
     
    Последнее редактирование: 16 апр 2016
  20. Alexys

    Alexys

    Регистрация:
    20 янв 2014
    Сообщения:
    322
    - Но врядли меньше 22 кГц. Может не кратные, т.е. не 44100, 22050, 11025, а, например, 18342 или 23560 Гц ? Пост-обработки там нет, если сам звук некачественный, то никакая обработка не поможет, все сразу выводится на каналы через эффекты.
    Я понял, я имел в виду встроенный в систему синтюк, идущий с Виндами по умолчанию.
    Еще бы Ямаха не разрешила !!:D
    - бесплатную ??:blink:
    Я может что-то не то имею в виду, но у меня установлен S-YXG50 еще и отдельной "игрушкой". Т.е. имеется сам синтезатор и плеер к нему. И все это дело имеет происхождение с 2001 года, врядли тогда еще задумывались о порте синта только на XP. Синт встроен в систему, а значит WDM. И другие плееры и секвенсоры его видят. Но WDM имеет колоссальную задержку воспроизведения и его трудно использовать для работы.
     
  21. VEG

    VEG

    Регистрация:
    3 авг 2006
    Сообщения:
    631
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление