Yamaha S-YXG50 Portable VSTi v1.0.0 [2016/04/25] (MIDI-синтезатор)

Программный 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.

  1. Установите Falcosoft VSTi MIDI Driver.
  2. Если у вас Windows 8 и новее, также установите Coolsoft MIDI Mapper.
  3. Скопируйте syxg50.dll из yamaha_syxg50_vsti.7z в любой каталог.
  4. Откройте настройки VSTi MIDI Driver, нажмите кнопку Load VSTi и выберите syxg50.dll.
  5. Откройте MIDI Mapper и выберите VST MIDI synth в выпадающем списке Default MIDI synth.
  6. Готово! 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 без установки драйверов в систему, что более надёжно.

  1. Скачайте и установите плагин foo_midi с сайта foobar2000.
  2. Создайте в каталоге foobar2000 подкаталог с именем vsti и скопируйте в него файл syxg50.dll из yamaha_syxg50_vsti.7z.
  3. Откройте в плеере настройки, Advanced → Playback → MIDI Decoder → VSTi search patch, укажите в этом поле полный путь до созданного вами подкаталога vsti, после чего примените изменения и перезайдите в окно настроек.
  4. Перейдите в Playback → Input → MIDI synthesizer host. В выпадающем списке plug-in выберите Yamaha S-YXG50, примените изменения.
  5. Готово! Теперь 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.
  1. #1
    Wlad

    Доброго времени суток уважаемый автор модификации Yamaha S-YXG50 Portable
    что хочу сказать , сделано всё отлично ты молодец !!!
    Я тоже у своего такого же VSTi убрал не нужный код только ещё и Microsoft овское го-но
    оттуда удалил (Убралось довольно много ненужного кода и данных) только вот не догодался в DLL
    банки всунуть .

    Я вот никак не могу заставить читать банки 16bit ,патчи работают правильно но искажены (Понимает только до 44100/8bit)
    Банки высокого качества имеются 22050 16bit и т.д (4.835.036 байт и разумеется таблицы к ним которые находятся в Sxgbin21.tbl)
    а при конвертировании в 44100/8bit работает всё отлично и качество супер , только вот появляется небольшой шум.

    Я всё это к чему - если автор желает разобраться чтобы Yamaha понимала 44100/16 я бы всунул в неё лучший банк и разумеется со
    всеми поделился.

    Кстати чуть не забыл Банк 4Мб это полная л-жа сравните ударные , особенно тарелки , они сильно икажены а 2Мб банке все инструменты чище !!!
    а то все почему то думают раз 4мб значит лучше.
    всё это потому как выяснелось 22050/8 - это инструменты а 44100/8 - разумеется ударные (склеены в один файл) а движок с 16 битами почемуто
    искажает звук.

    p.s. За граматику простите, залил клаву

  2. #2
    Wlad

    Вот мой нормальный банк с движком синта автора.
    Банк почти 5mb (4.83) и качество намного лучше (Нет завалов на высоких частотах)

    Файл : Mu50Ext.dll
    Ссылка : [удалена]

    а это мой модифицированый движок синта Yamaha S-YXG50
    Ссылка : [удалена]

    Залил через MediaGet, ссылка доступна по их правилам 30 дней
    т.к. не знаю через что можно нормально залить (Не пользуюсь).

    P.S. Если этому синту пристроить васококачественный банк XG
    то на врядли ему найдётся достойный конкурент !!!

  3. #3
    VEG Автор

    Wlad, любопытно. Но MediaGet больше похож на сайт, который распространяет малвари, о чём прямо намекает невозможность скачать файл без запуска их exe-файла. По этой причине удалил ваши ссылки. Просьба загрузить на любой другой адекватный файлообменник. Можете тот же https://disk.yandex.ru/ использовать.

    Я тоже у своего такого же VSTi убрал не нужный код только ещё и Microsoft овское го-но
    оттуда удалил (Убралось довольно много ненужного кода и данных) только вот не догодался в DLL
    банки всунуть .

    Не пойму о чём именно речь. Я в коде удалил весь антиотладочный код, весь код проверки серийного номера и чтения необходимых для этого данных из реестра, весь код триального режима с изменением громкости каждые 30 секунд. О каком Microsoft-овском коде идёт речь и действительно ли он там не нужен?

  4. #4
    Wlad

    Прошу прощения за MediaGet похоже вы правы.

    Вот ссылка на Vsti с новым банком :

    https://yadi.sk/d/DpmvvPt8rXoEt

    надеюсь я всё правильно сделал (первый раз заливаю)
    и прошу не судить за то что свой скин воткнул и окно About удалил,
    т.к. делал только для себя.

    Я в первый раз вижу только на этом сайте серьёзный подход к Yamaha S-YXG50,
    поэтому решил поделится YXG Acompaniator (ом) который сделал из OMB v10.0
    чисто для себя. (предназначается в первую очередь автору Yamaha portable)

    Вот ссылка : https://yadi.sk/d/Snbr6g9GrXqYQ

    Вначале ставим патч из папки __Patch (Это системные файлы в основном Visul basic)
    без Visul basicа не работает !
    Файл YXG.exe нужно поставить в режим совместимости с Windows XP иначе при выходе зависает! (у меня на Win7 x64)
    Запускаем файл, в нашем случае это To-XG.exe и выставляем порт в меню Setting\MIDI Out и All chanell (у меня это MIDI Yoke 4),
    а на Yamahe такой же ставим вход и клавишами с F1 по F12 управляем аккомпаниментом !
    Рекомендую ещё зайти в меню Settings\Folders и указать где находятся стили и тд. и тп.
    Файлы To-HiperC.exe, To-Luxonix.exe, To-VSC88Pro.exe,To-XG2006Le.exe при запуске автоматически изменяют петчи программы
    на соответствующий инструмент!

    Если бы я знал Visual basic, то переписал бы эту программу на Flat Assebler и синт встроил бы в саму программу.

    Что касается моего синта то вот ссылка :
    https://yadi.sk/d/ISdWZdCdrXtt3

    XG50-Vsti.dll - Убран не нужный код
    XG50.dll - Убран не нужный код и много чего ещё (делался исключительно для SaviHost) возможно я немного перестарался
    но работает без глюков.

    По поводу кода Microsoft.
    Я всю жизнь писал программы на Ассемблере, то есть, то что ты написал то и откомпилировал (так и должно быть),
    а в случае Microsoft C или C++ компилятор в программу вносит ещё и свой код с данными
    типа : H:mm:ss dddd, MMMM dd, yyyy M/d/yy PM AM December November October September August July June April March February January Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan Saturday Friday Thursday Wednesday Tuesday Monday Sunday Sat Fri Thu Wed Tue Mon Sun
    скорее всего это касается : Microsoft Visual C++ Runtime Library.

    И есть ещё у меня знакомый програмист тоже в основном на Ассемблере пишет программы но иногда и на C++,
    так он после написания на C++ программы , бывает ругается на то что типа в файлах C++ компилятор
    добавляет нечто своё и не всегда нужное (реально дотошный человек, чуть ли не байты и циклы считает ).

    Может я и не прав по поводу кода Microsoft но прошу обратить внимание на XG50.dll (как я уже писал, возможно немного перестарался
    но с SaviHost работает без проблем)

    Есть ещё одна просьба уважаемый VEG, не могли бы вы расшифровать банки у Yamaha 2006Le т.к. у меня есть подозрения что этот самый банк, ни что иное как урезанный банк SW1000XG 20mb (или вроде MU100 ), а значит его звучание можно либо улучшить , либо убрать ограничения в виде Lite и прикрутить Full банк, если это возможно конечно на уровне кода (Если движок не Lite).
    Судя по звучанию звук = 44100/16 и это отличная возможность сделать качественный синт (пусть даже и Lite) !

    P.S. Если допустил какие то ошибки , не судите строго, я обязателно исправлю, просто времени сейчас совсем в обрез , минуты считаю и клавиатуру как на зло случайно залил, очень тяжело печатать, новую заказал ,а её аж через неделю привезут и с подсветкой , а ещё прошу автора меня простить за то что свой скин поторопился воткнул.

    С уважением Wlad

    Вот ещё ссылки :
    Yamaha midi player - это делал для себя MidRadio со встроеным синтом и моим скином (сейчас используется движок синта автора , а банк мой)
    https://yadi.sk/d/4j7PJi-UrXzav

    Yamaha XG Player - Это старый добрый Yamaha плеер v4, теперь работает в Win 7 x64 со сменными скинами !
    https://yadi.sk/d/A9FTVZssrXze8

  5. #5
    Wlad

    Да совсем забыл, вот синт Yamaha S-YXG50 с банком 22050/16 бит
    из за 16 бит получаются вот такие искажения звука.

    Ссылка : https://yadi.sk/d/LmI1EuWsrY6yV

    Если удастся научить движок понимать 16 бит то я могу
    создать банки 44100/16 без всяких завалов по верхам,
    ну и низким уровнем шума разумеется.

  6. #6
    Wlad

    Вот полуфинальная версия банка 44100-8бит (Сравните качество звука с оригиналом S-YXG-50)

    https://yadi.sk/d/SAEHP2_VrqDcG

    С конфигурацией семплов почти разобрался,
    в файлах sxgbin21.tbl и sxgbin41.tbl находятся таблицы с 2164 до 44E5 это patchs samples и с 1f266 до конца, это Loops.

    Есть такая программа Power YMF v2.0.1 которую я модифицировал для работы с банками, а
    также в папке с программой есть такая библиотека a10.dll, которая конструирует и деконструирует банки Yamaha.
    (В таблице експорта : Construct и Deconstruct)
    Но к сожалению эта прога на мой взгляд с банками работает не совсем корректно, т.е.
    распаковывает что-то лишнее, а потом ещё и запаковывает, и при всём этом размер банка увиличивается.
    как я пока понял, это лишние инструменты в виде синусоидальных коротких сигналов.

    Если вдруг понадобится модифик Power YMF v2.0.1
    https://yadi.sk/d/qqeSJS1NrqGco

    Да и ещё, конвертировать банки лучше всего подойдёт программа Awave Studio !
    открываем расшифрованный банк (к примеру Sxgwave4.tbl ) и нажимаем OK
    далее во вкладке Source снимаем галочку Signed ,а в окне Source data type ставим PCM 8-bit
    и нажимаем применить (обязательно) Если в окне Source data type поставим PCM 16-bit, то
    те семплы которые были в виде шумов становятся видимыми. (после любых манипуляций не забываем нажимать ПРИМЕНИТЬ)

    После всеэтого сохраняем файл, во втором окне правой кнопкой мышы выбираем Save selected waveform as...
    и сохраняем в виде : WAV - Microsoft wave file и обязателно внизу в Data format: ставим PCM 8-bit !

    В итоге результат : к оригинальному банку RAW пибавляется тупо заголовок WAV и всё , а данные RAW остаются не изменными !

    Если вдруг понадобится Awave studio v10.6
    https://yadi.sk/d/MI6fdQr7rqM8Q

    Очень хотелось бы сделать из этой игрушки настоящий профессиональный синтезатор !
    Осталось только научить переваривать синт 16bit и разобраться с конструктором банков.

  7. #7
    VEG Автор

    Wlad, извиняюсь, что не отвечаю по теме. Увы, сейчас полностью занят другим проектом, так что вернусь к этой теме позднее.

    а в случае Microsoft C или C++ компилятор в программу вносит ещё и свой код с данными

    Это называется CRT (C RunTime), этот код обеспечивает работу всех стандартных функций в языке. Если пишешь на C++, не обязательно статически линковать CRT. При желании можно использовать внешний msvcrt.dll, или же вообще отказаться от CRT, то есть в результирующий бинарник попадёт только код, написанный программистом, и ни каплей больше :) В последнем случае, правда, перестанет работать большое количество стандартных функций и некоторые возможности языка, но можно написать собственную реализацию нужных функций из состава CRT. В общем, при желании на C/C++ можно писать программы, которые не будут содержать CRT, и для маленьких программ это может быть и имеет какой-то смысл. Если же программа достаточно большая, то нет смысла отказываться от CRT и от всех удобств, а лишние 50 килобайт кода погоды не сделают. Одна нормальная иконка со всеми нужными размерами для этой программы будет столько весить :) Как-то так.

    А вообще было бы неплохо разобрать и как-то задокументировать формат tbl-файлов. Если какие-то нужные данные захардкожены в syxg50.dll, я их могу достаточно просто вынести наружу, немного расширив ещё раз формат tbl-файлов.

    Я немного начал это дело ковырять, но остановился на самом раннем этапе. Разобранные файлы тут: http://veg.by/files/midisynth/yamaha_syxg50_tbl_exploded.7z

    Там маленький tbl-файл состоит из 17 блоков. Начиная со смещения 0x20 идёт 17 int32, которые задают размер каждого блока, и сразу за последним интом по смещению 0x64 идут данные первого блока.

    Там в архиве также приведены файлы из ранних версий syxg50 и syxg100, где не было маленького tbl-файла с параметрами, а все эти данные находились в ресурсах файла sxgxg.dll. Разбивки на 17 блоков не было, данные хранились в гораздо более раздробленном виде. Причём при переезде во внешний tbl-файл эти данные в некоторых местах немного изменились.

    Что за данные я не разбирался. Только для sxgbin21.tbl начал искать соответствия с данными из sxgxg.dll ранней версии, то есть к имени файла добавил имя точной копии или максимально похожих данных из ресурсов sxgxg.dll. 4 блок данных оказался сборкой почти всех 256-байтных ресурсов из sxgxg.dll, поэтому в подкаталоге sxgbin21/04 можно увидеть раздельно этот блок, разбитый на 256-байтные фрагменты, номер фрагмента в расширении, и имя соответствующего ресурса в sxgxg.dll в имени.

    Наверняка вы это уже и сами раскопали, но если нет, то может пригодится :)

  8. #8
    Wlad

    Благодарю по поводу CRT (C RunTime) , я так и думал и на это прямо намекает :
    Microsoft Visual C++ Runtime Library строка в теле проги.
    (Просто C++ не владею)

    Также благодарю за разобранные файлы, сейчас их и изучаю.

    По поводу задокументировать формат tbl, я полностью поддерживаю
    и если нужна моя помощь, можете на меня расчитывать !

    Также хотел у вас узнать, вернетесь ли вы к этому проекту чтобы закончить его,
    и довести дело до конца с банками ?
    Если да, то дайте знать когда займётесь им снова, а я в свою очередь помогу чем смогу,
    если конечно нужно.

    Вот недавно нарыл банки от Yamaha PSR-520 и сейчас их изучаю.

    Ещё у меня к вам неболшая просьба уважаемый VEG, подскажите пожалуйста (очень нужно) по каким адресам в коде находятся установки
    полифонии и Output level по умолчанию при запуске синта, а то времени всё меньше и меньше,
    а сделать хочется всё больше и больше. (Нужно для эксперементов с банками, особенно Output level)

    Похоже банки у синта специально были ухудшены качеством звучания, причём ударные одним алгоритмом эквалайзера, а инструменты
    другим и это ещё не всё, громкость некоторых семплов превышает 0db т.е. много отсекается вершин семпла, что приводит к
    искажению и невыразительности звука!

    Хорошо хоть можно легко прикрутить EXTENDED банк из програмы Power YMF, вначале исправить качество, отредактировать, ну а после
    конвертировать в 8бит т.к. 16 бит вроде как движок синта не понимает. (EXTENDED банк = 22050-16bit конвертируется в 44100-8бит при этом
    к счастью размер сохраняется один в один)
    8-bit редактироавть нет смысла т.к. появляется довольно сильный паразитный шум!

    Работаю сейчас над новым банком (Готов проблизительно на 30%), и громкость семплов не превышает -1db , качество не сравнить!

    Да чуть не забыл, как вам идея того чтобы установки полифонии и Output level вынести в файл : syxg50.ini,
    На мой взгляд иногда эти настройки могут оказаться очень полезными, особенно при создании нового банка.

    ------
    Вобщем, успехов и удачи вам VEG в нынешнем проекте, и если вернётесь к этому проекту, пишите, буду ждать!

  9. #10
    VEG Автор

    Также хотел у вас узнать, вернетесь ли вы к этому проекту чтобы закончить его, и довести дело до конца с банками ?
    Если да, то дайте знать когда займётесь им снова, а я в свою очередь помогу чем смогу, если конечно нужно.

    Вообще меня сюда случайно занесло. Мне из детства запомнилось, что после переустановки ОС с 98 на XP или замены аудиокарты (потому что я и ОС менял, и аудиокарту мне меняли из-за каких-то проблем) все MIDI (включая те, что в играх) внезапно стали воспроизводиться ужасно. Я не понимал в чём дело, и со временем решил, что мне просто показалось, что раньше было лучше. Но я помню, как я игрался с Yamaha XG Studio (там под музычку микросхемки такие ползают, почему-то запомнилось). И вот совсем недавно нашлись некоторые мои старые MIDI, и мне вспомнились эти две буквы XG. Погуглил, посмотрел. И тут я понял, почему у меня 15 лет назад вдруг MIDI стало так плохо играть. Я тогда мелкий был, и со всех дисков, что у меня были на руках (а было их немного, так что изучалось всё детально), я ставил всё подряд. Например, на диске с драйверами к видео нашлась классная игрушка Future Cop (Demo). Хоть это и демка, стала она одной из моих любимейших игр :) Видимо, диск с драйверами к аудио постигла та же участь. Возможно, в аудиокарте использовался какой-то ямаховский чип, поэтому там был набор софта от Yamaha. Оттуда у меня взялся и Yamaha XG Studio, и игрушка DemonStar, которая (достоверно известно) часто шла вместе с драйверами Yamaha (потому что там было MIDI с использованием XG). Видимо где-то тут же я заодно поставил и программный синтезатор, или даже была аппаратная поддержка ямаховским чипом на аудиокарте. Всё указывает на это. 15 лет спустя загадка разгадана :)

    Вот исходя из этого я и захотел в своём foobar2000 иметь возможность слушать MIDI с использованием подобного синтезатора. Ну а чтобы не иметь каждый раз гемор с установкой, решил сделать портабельную версию. Изначально планировалось только это, просто потом немножко увлёкся и сделал немножко больше, заодно решил банки зашить в ресурсы.

    То есть в принципе почти всё что я хотел изначально уже сделано. Однако, возможно будет когда-нибудь время ещё поковыряться в этом проекте, но ничего не обещаю. Но вообще люди спрашивали, можно ли редактировать банки, так что ваша работа в этом направлении будет интересна любителям этого синтезатора :)

    Ещё у меня к вам неболшая просьба уважаемый VEG, подскажите пожалуйста (очень нужно) по каким адресам в коде находятся установки полифонии и Output level по умолчанию при запуске синта

    Установка полифонии и громкости (101 по умолчанию) при старте: 0x10030514 (посмотрите код). Полифония устанавливается по адресам: 0x10003891, 0x10030C57. Плюс где-то рядом ищите установку громкости по умолчанию при сбросе по кнопке «Defaults».

  10. #11
    Wlad

    Большое спасибо уважаемый VEG, вы мне очень помогли.

  11. #12
    Wlad

    Оказывается S-YXG50 Vsti это очень интересный Японский монстр, которого многие недооценивают!
    Как выяснилось это именно банки управляют движком синта , а не движок банками!
    Чтобы управлять банками , достаточно две таблицы из кучи склеенных таблиц и я в этом вощем разобрался.
    На днях почти закончил банк 8мб и он отлично работает! (ударные пока не закончил, там опять японская подножка )
    За основу взят банк 4мб и преобразован с 22050-8 в 44100-8 , а моя цель 48000-16 и даже с этими изменениями синтезатор стал звучать
    как настоящий оркестр ,честно говоря я даже был в шоке от запуска старых игр , мне казалось что музыканты сидят передо мной!!!

    Трудно себе представить как будет звучать в 48000 16ит (Это конечная цель!!!)

    Теперь у меня к вам Женя небольшая просьба, вот узнаю всё больше и больше и стараюсь сделать тоже самое
    (Довести синт до совершенства и оно того стоит вот увидите) , но вот столкнулся с маленькой неприятностью, я всегда писал программы для
    преобразованию таблиц на Ассемблере в Dos и ползовался Int 21h,а теперь API ,я с ним очень редко сталкиваюсь.
    Винт с досовским набором на днях безвозвратно здох ,а в API я не пишу.

    Не могли бы вы написать програмульку (желательно в Flat assemblere)

    --ОТРЫТЬ ФАЙЛ в БУФЕР
    --СЛОЖИТЬ 255 байт в БУФЕРе
    --СОХРАНИТЬ вФАЙЛ из БУФЕРА

    БУФЕР RB 255

    Типа чего-то этого , а то из за такой мелочи зашёл в тупик.
    Вообщем нужно открыть файл в память там умножить 1250 значения и сохранить обратно.

    За ранее болшое спасибо, я в долгу не останусь.

  12. #13
    VEG Автор

    Wlad, просто замечательно, что вы продвигаетесь по этому проекту.

    Не понял, что именно вы хотите сделать с файлом? И почему бы эту программу не написать просто на C?

  13. #14
    Wlad

    На C не когда не работал всегда был гурман Assemblera, в начале KP580ВМ80 (8080) а потом 8086
    80386 я в армии пропустил и потехоньку я стал забывать прелести программирования.
    Вобщем дошло до того что я запустил Flat assm на днях и не знаю как открыть файл с диска в массив
    чтобы его отредактировать а потом сохранить ))).
    С Дизасемом и Дампом я дружил практически всегда (с детства), вот у меня и получается
    (как в том анекдоте про чукчу) читать могу а писать нет (чукча не читатель! - чукча писатель!) а у меня наоборот.

    Вот что я выяснил :

    В файле sxgbin41.tbl
    2164h-3EEBh - Это какбы патчи семплов. С адреса 2174h - (три байта) с шагом 1Eh (30) (до следуущего нужного значения)
    252 значения с шагом 1Eh, которые указывают размер каждого семпла в банке, до 3EEBh (Это конец таблицы).

    Далее в файле с адреса : 1F26Fh - До конца файла , также три байта значение, Шаг 10h (16) до следующего значения, и это и есть уже
    сами инструменты их аж 1098, и сдесь же помоему LOOP значение гдето рядом (до него сейчас и пытаюсь добраться (очень важное значение
    для сведения циклов)).

    Я умножил эти значения на два, и у меня стал банк в два раза больше пропатчен. (умножал в wincalc!)
    далее заходим в Awave studio и открываем sxgwave4.tbl и тупо присабачиваем ему заголовок wav файла 22050-8 (это родное).
    Заходим а Audition и преобразуем в начале 44100-16 , прм эквалайзер и тд и тп. а потом уже в 44100-8 и
    сохраняем. В HEX редакторе удаляем заголовок Wav файла 00 по 2Bh и Банк готов.

    Как видим размер в двое, это 22050 в 44100 , а я ещё знаю как и 16 бит прикрутить!
    синт отлично сейчас работает кроме пока ударных (скоро закончу)

    Вот пробный образец MU50 8mb : https://yadi.sk/d/HIR2H1dZsZ6WA

    Вообщем нужна программа которая бы расчитывала размер банка в зависимости от частоты дискретезации по заданым
    адресам указаные выше. (умножала на нужные значения, значения таблицы)
    Например : 24000,44100,48000,88200, Ну и самому задать! (Нужно ещё ограничение банка подсчитать)

    Если для вас не составит труда написать эту програмульку на Ассемблере
    то вы внесёте неоценимый вклад в развитии проекта и в будущем тоже.

    Вобщем мы могли бы обьеденится знаниями и талантами и помоч друг другу , мне всвою очередь нужен хороший синт
    и достижение цели 48000-16, ну а вам его людям подарить (я знаю многие мечтают о таком), тк я не частый гость в интернете .
    Как только закончу с ударными, сразу выложу лучший синт.

    -------------
    Вот встал вопрос, на сколько нужно умножить значения банка чтобы получить заветные 480000 (студийный звук Yamaha 90х годов)
    -------------

    Кстати я тоже жил в Белорусии, с рождения и до 15 лет в г Могилеве (рядом с Д.к. химволокно), а теперь в Росии г Волжский.
    Скучаю по Природе и по лесу.

    Да и кстати Женя, по поводу громкости по умолчанию синта,
    ---------------------------
    Установка полифонии и громкости (101 по умолчанию) при старте: 0x10030514 (посмотрите код). Полифония устанавливается по адресам: 0x10003891, 0x10030C57. Плюс где-то рядом ищите установку громкости по умолчанию при сбросе по кнопке «Defaults».
    ---------------------------
    да вы правы , я нашел рядом значения, но увы ,к сожалению не работает (показывает 6db а на самом деле 0db).
    весь синт перерыл так и не понял в чём дело.

  14. #15
    Wlad

    Выяснил что движок работает по профилю : MU128 (в коде имеется это имя)
    прошу обратить внимание на характеристики по ссылке: http://www.muzoborudovanie.ru/equip/studio/module/mu128.php
    а значит и банки не выше MU128 можно легко прикрутить, единственным препятствием может стать
    расшифровка банка алгоритмом S-Yxg50.

    Скажите Женя а у вас случайно дампов нету от каких нибудь : MU50 MU100 MU128 ?

  15. #16
    Wlad

    Забыл также указать что банки например : PSR-630 и тд и тп тоже совместимы с этим движком . (до поколения MU128)
    а MU1000 или SW1000XG и предположительно PSR-1000 , это новое поколение движка со Стереофоническое сэмплированием AWM2,
    эти банки уже относятся к движку Yamaha2006LE , а следовательно и банки 2006LE с SW1000XG или MU1000 уверен подойдут к софт движку,
    если конечно сам движок не Lite.

    Как я уже говорил что это банки управляют движком , а не движок банками и алгоритм расшифровки должен быть такой же.
    вот и есть такая мысль , если иметь несколько банков например Yamaha PSR 740 и PSR 630 (которые ниже поколения MU128)
    ведь можно сделать несколько проф синтезаторов в одном (да хоть и все) и слушать любой Midi от Yamaha да и не толко слушать,
    качество банков можно еще и повысить (нужно только сложить значения которые уже известны).
    Всё конечно зависит от успешности поиска банков от Yamaha PSR и MU100. (лучше конечно родной MU128).

    Иногда складывается такое впечатление, что движок это эмулятор железного синта, а банки это и есть флешка с конфигами и звуками.
    Так что если вдруг где нибудь на банки или дампы наткнётесь дайте пожалуйста знать, я с ними с удовольствием поработаю.

    Хотелось бы создать такую программу , которая бы с легко расширялась в возможностях благодаря полученному опыту,
    по изменению значений в таблице, и очень хочу чтобы она превратилась постепенно в полноценный редактор банков Yamaha,
    если конечно с программой поможете. (можно только на первой стадии)

    Останавливаться пока не планирую , хочу одним словом сделать с нее версию "MAXIMUS", максимально из нее выжать качества и
    возможностей и размер банка, вначале 48000 а потом и выше , при этом я хочу использовать только оригинальные банки для улучшения частоты и
    битности, не вставляя ничего своего чтобы сохранить оригинальность инструмента .

  16. #17
    Wlad

    Вот вспомнил про записи.

    Установка громкости :
    (Default=65)
    30528 (3052B)
    30C58 (30C5E)

    Установка полифонии :
    (Default=80)
    388E (3891)
    30518 (3051B)
    30C55 (30C57)

    Похоже на то что одного значения не хватает. (как раз на громкость)
    В районе 388Eh я не обнаружил не каких значений = 65

  17. #18
    Wlad

    Согласно таблицы банка 4мб, максимальный размер этого банка вроде 16.777.215 мб.

    Как насчёт помощи в написании проги на ASMе ?
    Мне всего лишь нужно открыть файл , считать его в зарезервированную область памяти, там умножить или прибавить
    трёх байтные значения с фиксированным шагом (например 30), ну и сохранить обратно.

    У меня проблема только с файловыми ... ,а с остальным я справлюсь.

    Help please.

  18. #19
    VEG Автор

    Wlad, человек с форума vogons.org с ником OzOnE прислал мне в личку дампы микросхем NEC XR385, который по сути является обычным Yamaha DB60XG, который в свою очередь родственник DB50XG, ну и в этом духе. Не изучал их содержимое. Вы можете скачать их тут (и если хотите, можете связаться с автором дампа на указанном форуме, он тоже весьма увлечён вопросом).

    Что касается чтения и записи файла — писать это на асме — это использование инструмента не по назначению. То есть, конечно, можно написать всё что нужно на FASM + пачка вызовов WinAPI, но это пустая трата времени намного эффективнее это делается другими инструментами. Если вы никогда не писали на C/С++ — уверяю вас, если вы осилили ассемблер, то с простым кодом на C/C++ у вас не возникнет проблем. Например, вот здесь вы можете ознакомиться с функциями работы с файлами, которые доступны в стандартной библиотеке C (такой код можно будет скомпилировать под любую ОС). Если боитесь лишнего машинного кода — то C/C++ может работать без стандартной библиотеки, её можно отключить и в этом случае нужно использовать только функции WinAPI. WinAPI функции для работы с файлами описаны на MSDN. Эти же функции нужно использовать в том случае, если вы пишете на FASM под Windows.

  19. #20
    Wlad

    Спасибо за дампы, немного изучил таблицы и сэмплы.
    Таблицы очень похожи по структуре , а одна вообще подходит в Softsynth (это patch samples),
    банки прослушал, сразу можно услышать что это Yamaha, только вот воспроизводятся с искажением и каким то
    повторным эхо (видимо это опять Yamahовские штучки (позже разберусь)).

    По поводу инфы спасибо но нет времени на это , а дальше времени будет ещё меньше,
    проще высчитывать вручную как в старое доброе время.

    Очень надеялся, что хотя бы какой нибудь пример чирканёте на скорую руку.
    ну и если вам не интерестно, продолжу тогда в гордом одиночистве заканчивать проект пока я к нему совсем не остыл, и
    не буду вас больше беспокоить своей "инфой".

    С уважением Wlad

  20. #21
    VEG Автор

    Wlad, я в принципе дал вам всю нужную информацию.

    Если использовать стандартную библиотеку C, то рабочие примеры нужного кода можно взять прямо в документации. Пример как прочитать целиком файл в буфер есть в документации к функции fread. Пример как записать данные из буфера обратно в файл есть в документации к функции fwrite. Эти примеры будут собираться и работать с использованием любых компиляторов C/C++. Вам остаётся скопировать эти два примера в один общий код, и между чтением и сохранением добавить нужные вам преобразования.

    Готовые примеры кода чтения и записи файлов с использованием WinAPI тоже есть в MSDN. Если вы хотите писать именно на FASM — то вам придётся писать аналогичный код с использованием этих же функций WinAPI. Я сам такой код на FASM быстро не напишу, потому что в принципе на ассемблере нельзя что-то «быстро набросать», это совсем для другого инструмент. А для быстрого написания кода как раз и были придуманы высокоуровневые языки.

    Я ни в коем случае не хочу вас обидеть. Просто я сам даже для себя не стал бы писать такую программу на ассемблере. Я использую ассемблер для создания качественных патчей потому что это необходимость. Я даже больше скажу: я никогда не создавал программы под Windows целиком на ассемблере. Ни разу не было в этом обоснованной необходимости. Обычно для создания чего-то нового я использую другие языки (C/C++/C#/PHP/JS), в зависимости от задачи.

  21. #22
    Wlad

    Вы Женя меня не обидели, просто как я уже писал выше , у меня случился большой перерыв
    в программировании и я немного отстал. (с файловыми операциями и подобными функциями)
    И вот как кого нибудь попросишь какой-нибудь простой пример написать с файлами, все мне тут-же
    подсовывают (кроме вас) этот пример Hello Wrld (непонятно зачем) и ещё всякую всячину кроме нужного.
    (я короче больше запутался чем понял)

    К Yamaha S-YXG50 Vsti я как-бы давно остыл, ещё в 2013 году, когда также как и вы убрал оттуда
    весь не нужный код и даже немного больше ;) , но вы ещё ко всему этому много нужного добавили,
    и самое главное расшифровали банки, именно это и послужило новым толчком в развитии проекта, с
    целью добиться максимального качества учитывая ограничения движка по размеру банка, и
    при всём этом сохранить оригинальность инструмента.

    По сути дела и нужен патч в виде простого калькулятора, допустим пишем умножить на 2, и
    значения в файле умножаются на 2 , теперь банк вместо 4мб стал 8мб (был 22050 стал 44100),
    прибавляем ещё к этим значениям F3Ch и получаем вместо 44100 нужные 48000.

    Напомню что значения всегда находятся в одном и том-же месте и со строго фиксированным шагом.

  22. #23
    Wlad 2

    Здравствуйте.
    YXG50 Portable VSTi работает на все 100%. Спасибо!
    В связи с этим событием возникла мысль сделать портейбл версию Ямаховского секвенсора XGwksST .
    Подскажите, какой программой лучше это сделать?
    В результате получится в связке с Вашей ВСТ-шкой полностью мобильная миди-станция.

  23. #24
    VEG Автор

    Wlad,

    И вот как кого нибудь попросишь какой-нибудь простой пример написать с файлами, все мне тут-же
    подсовывают (кроме вас) этот пример Hello Wrld (непонятно зачем) и ещё всякую всячину кроме нужного.
    (я короче больше запутался чем понял)

    По приведённым мной ссылкам есть пример чтения файла целиком в буфер и пример записи данных из буфера в файл. Их можно объединить таким образом. Я там в комментариях указал место, где нужно изменять массив buffer. Приведённый код читает myfile.in в буфер, и сохраняет содержимое буфера в myfile.out. Между этими моментами содержимое буфера можно как угодно изменять.

    По сути дела и нужен патч в виде простого калькулятора, допустим пишем умножить на 2, и
    значения в файле умножаются на 2 , теперь банк вместо 4мб стал 8мб (был 22050 стал 44100),
    прибавляем ещё к этим значениям F3Ch и получаем вместо 44100 нужные 48000.

    Если честно, не понял, что именно вы задумали. Вы хотите из сэмплов с низкой частотой дискретизации получить сэмплы с более высокой частотой дискретизации? Это, конечно, можно сделать, но это не улучшит качество. После кодирования звука с низкой частотой дискретизации восстановить качество звука невозможно, даже если потом частоту дискретизации обратно поднять, так как информация о высокочастотных гармониках в звуке будет уже удалена. То есть по сути получится либо тот же звук, либо звук, который «допилен» каким-нибудь синтетическим «улучшайзером», но это не будет оригинальным качеством.

    Wlad 2, похоже, что вы не тот Wlad, который писал ранее. Вы зря выбрали такой ник, это приводит к путанице.

    В связи с этим событием возникла мысль сделать портейбл версию Ямаховского секвенсора XGwksST .
    Подскажите, какой программой лучше это сделать?

    IDA Pro + FASM. Но без навыков реверс-инжиниринга и программирования тут не обойтись.

  24. #25
    Wlad

    Здравствуйте женя,

    Я как бы с вами согласен, НО, вот почти готовый синтезатор 2mb версия, теперь он стал 4мб,
    оцените качество звучания, и что вы скажете по этому поводу, и найдёте ли отличия в
    качестве и оригинальности инструмента.

    ---------
    https://yadi.sk/d/oFXe-yeQt34aH
    ---------

    В этой версии синтезатора готово всё кроме синосоидальной формы т.е. пару инструментов отсутствуют и всё.
    (В выходной день планирую закончить )

    Большое вам спасибо за пример уважаемый евгений, обязательно с этим разберусь.

  25. #26
    Wlad 2

    Wlad, спасибо за работу. Послушал Ваш вариант синтезатора. Мне, кажется звучание хуже оригинала. Нету объёма, низких частот, звучит тише. Я думаю, что эти эксперименты нужно проводить создавая новый банк. В интернете есть засемплированные более новые Ямаховские синтезаторы (psr S-910, Tyros 2, Motif). Вот бы из этих семплов сделать новые банки на основе этого синтезатора. Если это возможно, поменять сами звуковые файлы, создать новые списки инструментов. Ну и нужен интерфейс (окно) для выбора звуков на каждую миди дорожку. Может можно как-то прикрутить сам ямаховский плеер от софтовой Yamaha_SoftSynthesizer_S-YXG50_4.23.14. Этот плеер на вин 7 ставиться, работает и видит миди порты.

  26. #27
    Wlad

    Wlad 2,

    Я низы специально на эквалайзере подрезал что бы убрать сильные завалы на верхах (особенно ударных),
    а тише звучит потому что при ресемплировании некоторые семплы получаются выше 0db (вощем отсекаются)
    и поэтому приходится жертвовать немного громкостью ради качества. (громкость в самом синте можно поставить до +6дб)

    Сейчас пока приходится работать в наушниках Philips SHP 6000 , позже подключу муз. центр, может и правда что упустил.

    Если известны ссылки где можно скачать засемплированный psr S-910 с удовольствием посмотрю,
    может оно того и стоит создать новый банк.

    Для создания нового банка потребуется помощь в написании программы, вы случайно проги не пишите Wlad 2?
    т.к. потребуется много времени и сил. (одному очень долго)
    короче нужен прогамист!

    Что касается окна к синту , и если такое создавать то лучше всего подойдёт копия программы MU128.
    там и котегории и эквалайзеры и тд. и тп. (сдампить бы где нибуть MU128 и заэмулировать программу управления синтом)

  27. #28
    Wlad 2

    Wlad, я ошибся засемплированна YAMAHA PSR-S900, вот ссылка
    http://rutracker.org/forum/viewtopic.php?t=5101809
    Проги не пишу, я в этом мало что понимаю, но если какая другая помощь с семплами, то помогу.

    На счёт интерфейса. Можете глянуть Xgedit95, там тоже все "потроха" - настройки отображены.
    ссылка https://yadi.sk/d/29osi78Tt3qyo

  28. #29
    Wlad

    По поводу прозрачности звука у синта я разобрался, там опять был японский костыль , вощем как всё исправлю
    тогда и выложу.

  29. #30
    Wlad 2

    Wlad, насколько я понимаю, вав файл там один (в синтезаторе)? Я имею ввиду весь набор инструментов.

  30. #31
    Wlad

    Да, одним файлом склеены последовательно семплы, вот WAV двухмегабайтного синта :
    https://yadi.sk/d/ocQqPlbet6h8S
    и две таблицы к этому WAV , одна отвечатет за расположение семплов и лупы, а другая за
    конфигурацию самих инструментов (тональностей), и есть ещё третья, которая похожа на SYSex, она вощем
    отвечает за сам синтез. (огибающие, фильтра и тд. и тп.)

    По поводу Xgedit95 даже не знаю, очень уж он не удобен.
    Вообще у меня вроде весь софт есть , который управляет YAMAHой XG, Это и XGClint, и XGPad (который имеет калькулятор
    эффектов в зависимости от темпа)

    ---------------
    XGPad 1.66 https://yadi.sk/d/0BnqQ_KJt6jho
    XGClint https://yadi.sk/d/wk5y0Wket6jmu
    XG Control Plus https://yadi.sk/d/3NPIJzXit6jtc
    ---------------
    Все они имеют как как преимущества так и недостатки. (я пользуюсь XGClint, там можно включить вирт. клавиатуру
    и клавишами с F1 по F8 менять октавы, а также доступ абсолютно ко всему)

    Wlad2 по поводу семплов, есть прога модифик PowerYMF , она умеет распаковывать и запаковывать банки YAMAHA XG,
    только вот распаковывает слишком много WAVек ,а потом еще и запаковывает, в итоге банк получается болше размера, НО,
    в конце каждого WAV имеетсются метаданные которые и служат описанием семпла (значение LOOP),
    не могли бы вы Wlad 2 Взглянуть на файл : tab11054.wav
    https://yadi.sk/d/qcNGKS0at6nEH

    Автор PowerYMF писал что при помощи его программы можно создать свой банк, при этом в WAVках нужно звуковым редактором
    создать LOOP область, но каким не знаю (просто не сталкивался ни разу), единственный редактор который я в нете нарыл, создаёт
    похожие мета данные в конце WAV это Wavosaur.

    То есть нужно выяснить Только ли значение LOOP в редакторе устанавливаются, может там ещё конфигурируется и тональность,
    и от какой до какой ноты звучать этому семплу .
    Вобщем моя цель, это выяснить где находятся значения LOOP согласно таблицы к каждому семплу ,(Размер семпла значения уже известны)
    и чтобы это выяснить , нужно поиграться с Wav редактором со значением LOOP, и модификом PowerYMF.

  31. #32
    Wlad 2

    Wlad, после выходных, а может в воскресенье, как получиться, посмотрю всё, что Вы просили.
    Ссылка на двух мегабайтный ВАВ не работает, проверьте ссылку.

  32. #33
    Wlad

    Прошу меня простить Wlad 2, вчера несколко дел делал одновременно и вот в итоге допустил ошибку.

    банк 2mb Sxgwave2 : https://yadi.sk/d/ebtslB9Tt6jhK
    банк 4mb Sxgwave4 : https://yadi.sk/d/DKJghz9Rt7HCK

    вобщем из за вчерашней не внимательности и занятости забыл выразить основную мысль,
    нужно найти ЛООПы в таблице и значения разделений семплов (со вторым думаю будет не сложно разобраться)
    и тогда можно будет смело подменять родные семплы на свои.

  33. #34
    Wlad

    Здравствуйте Veg,

    да я из низкой частоты дискретизации (22050-8) получаю более высокую, (44100-16 для редактирования)
    при этом хоть файл и 44100-16 , по коду всё равно видно что это те же 22050-8, (в HEX видно что это те же данные разделённые через нули)
    а вот если применить эквалайзер к примеру в Adobe Audition, то данные у же приобретают представление в 16
    бит, и при этом отсутствует неизбежный паразитный 8ми битный шум.
    Также можно к 16ти битному файлу применить разные фильтра, (например шумоподавитель) или заменить какие-нибудь семплы.
    И наконец после всех манипуляций с файлом сохраняем его как 44100-8бит, отрезаем заголовок WAV (и смотрим в конце файла
    нет ли там каких нибудь метаданных, если есть то и их удаляем) и банк готов.

  34. #35
    Wlad

    Доброго времени суток.

    Выкладываю законченную версию синтезатора S-YXG50 Extended

    -------------
    https://yadi.sk/d/5ky2zTT8tFMsA
    -------------

    Это драйверный банк был размером 2.417.445мб, (сейчас 4.834.890мб)
    чуть болше двухмегобайтного синта. (у него банк 2.092.994мб)
    Взят он был вместе с таблицами из программы Power YMF и конвертирован
    под софтсинтезатор.

  35. #36
    Wlad 2

    Wlad, послушал последний вариант банка.
    Звучит лучше, только заметил по высоким (скрипки), вроде идут искажения.

    Теперь про семплы банков, что Вы выкладывали.
    Есть вопросы.
    1. Это точно весь набор семплов? Там встречаются какие-то шумы, где, видимо, должны быть звуки.
    2. Семплы в моно. Если их заменять на более качественные, то в каком формате и с какой частотой дискретизации?
    3. Какие ограничения по другим параметрам (объём банка, длина семлов и т.д.)?

  36. #37
    Wlad

    Приветствую Wlad 2,

    сам по себе банк взят с Power YMF, т.е. с драйверов звуковых карт Yamaha 7x4, да и звучит
    немного по другому, но зато 44100-8 (где-то я заметил ударные немного отличаются) так что это вроде как нормально.
    (у банка 4мб, ударные (особенно тарелки) так-же искажены (это сделано специально, в виде ухудшайзера для народа))

    По поводу набора семплов, да все семплы находятся в одном файле и склеены последовательно, а в
    файле банка 4мб, склеены некоторые семплы в 16бит, т.е. куски не родного формата 8бит.
    (т.е. в 8-ми битном файле присутствуют 16-и битные фрагменты данных)
    именно из-за этих типа 16-ти бит получается искажения звука. (шум)
    Что-бы увидеть ударные, нужно у WAV отрезать заголовок и при помощи AWAVE Studio открыть
    файл как 22050-16 бит. (Если нужно могу выложить файл и с ударными)

    Семплы все в моно формате, только потом они звучат согласно таблицам как угодно.
    Заменить семплы на более качественные не проблемма, но нужно знать чем создаётся область
    LOOP в WAV файле, (То что я просил у вас посмотреть выше) иначе нарушится LOOP инструмента.

    Если будите редактировать родной 4-х или 2-х мб банк, то сохранять нужно в 22050-8бит.

    Ограничения банка по моим расчётам, вроде как 16.777.215мб, частота дискретизации
    48000 (Пробывал 88200 но звук не понравился), ну а семплы ещё не считал.

    Все инструменты и семплы сконфигурированы в двух таблицах.(сейчас собираю все
    данные в одну кучу, чтобы чтобы расшифровать эти таблицы, ну а потом задокументировать.

    P.S. Я так-же как и вы хочу создать свой банк, и разумнее всего его создавать сразу в 48000-8бит,
    (в 48000-16 бит редактировать, а потом конвертировать в 48000-8)
    осталось только разобраться до конца в таблицах.

  37. #38
    Wlad

    Здравствуйте уважаемый VEG,

    Я детальней изучил дампы DB60XG и вот что выяснилось,

    В маленьком архиве где хранятся таблицы, вобщем этот файл фрагментирован в виде защиты,
    от меняподобных, но я всётаки восстановил несколько таблиц, и таблицы инструментов тоже.
    Что касается банка то тут всё немного сложней, семплы там встречаются то 12 бит то 16 бит , вобщем
    разношерстный банк получается, но могу сказать одно , не знаю как DB50XG, но этот банк
    с софтсинтезаторами как драйверными так и Vsti ничего общего не имеет ! (кроме таблиц)

    Я вроде где то читал что на аппаратных (или полуаппаратных) звуковых картах используется АЦП
    12 бит или 18 бит или 24 бит, и скорее всего семплы подогнаны ближе к этим значениям.
    После обьединения двух файлов в один (этот файл разбит на 2 rom) он стал размером 4.194.304 мб,
    ну и после эксперементов сразу стало ясно что этот банк более высокого качества чем софтсинт.
    (есть предположение что возможно дампы были сделаны с ошибками)

  38. #39
    Wlad

    Прошу прощения, допустил ошибку в синтезаторе, ссылку перезалил от 2016/07/13 в 10:36,
    теперь всё как надо.

    YAMAHA S-YXG50 Extended (DSXG 4.61mb)
    =================
    https://yadi.sk/d/5ky2zTT8tFMsA
    =================

  39. #40
    Wlad 2

    Приветствую,VEG и Wlad. Занялся созданием портейбл версии секвенсора YAMAHA SQ01, включив в сборку выложенную тут S-YXG50 Portable VSTi. Всё делал на виртуальной машине при помощи программы Cameyo (http://www.cameyo.com). И, всё заработало без глюков. Но вот одна засада появилась. После переноса готового экзешника из виртуалки в основную ОС, касперский его сразу уничтожает, пишет вот что -

    ;HEUR:Trojan.Win32.Generic; Троянская программа.

    Как это победить? Подскажите, пожалуйста.
    В других прогах для создания портейбл, ничего не вышло.

  40. #41
    Wlad

    По моему в касперском можно имя файла добавить в исключения, это вроде где-то в настройках,
    точно не помню. (очень давно не пользуюсь)

  41. #42
    Wlad

    Приветствую Wlad 2 , где можно скачать YAMAHA SQ01, не поделишся ссылкой,
    а то найти ни где не могу , и прога поддерживает XG ?

  42. #43
    Wlad 2

    https://yadi.sk/d/5L1IbJnqsYpEb
    https://yadi.sk/d/deECmAi0tUcQ3
    https://yadi.sk/d/YikhMHRnsYeN9

    Wlad, выкладываю ссылки на YAMAHA SQ01, XGworks ST и папку YAMAHA из Program Files (там эти две проги уже после инсталяции).
    Я делал так :
    1. Устанавливал XGworks ST, он триальный (если Він7, то вуставить совместимость с ХР.
    2. Устанавливал YAMAHA SQ01, она бесплатная, но нету тех плагинов, что у XGworks ST . Интерфейс у них почти один в один.
    3. Для XGworks ST есть офф. абдейт, он в папке YAMAHA. Из этой папки копируем и заменяем все файлы в установленной дирректори.
    В папку Vstplugins ложим Yamaha S-YXG50 Portable VSTi v1.0.0 с этого сайта, лишнее убираем. Думаю, что разберётесь.

    В итоге работает полнофункциональные две проги с работающими плагинами.
    Там есть следующие плагины - ARTiC (автоартикуляци миди треков), AudioMixer, AutoArranger (работа со стилями, автоаранжировка мелодии), ChordWindow (для гитары), MidiJob ( квантайз, транспозе, миди дилей и т.д.), MidiMixer, PBWindow (авто питчь, для флейт, гитар и т.д., готовые пресеты), Staff (нотный редактор), SynthRack (для загрузки ВСТ синтов), XGEditor (полный Хжи эдитор), Vtsr (напевать голосом мелодию, а он переведёт в МИДИ), это единственный плагин, который остаётся триальным, так как абдейта на него не было.

    Может у вас получится сделать портейбл этих прог.

  43. #44
    Wlad

    Пасибо большое Wlad 2, перечисли пожалуйста какие ограничения входят в триальную XGworks ST,
    у меня вроде будет скоро свободное время, и я могу помочь убрать не нужные ограничения.

    -------------------------------
    На несколько шагов я приблизился к расшифровке таблиц банка, знаю теперь где LOOP, и многие
    значения тоже стали ясны, осталось изучить третью таблицу, и можно будет не только банки создавать,
    но и сами инструменты!
    Хочу после изучения синта, убрать GS инструменты и расширить XG. (Вроде как у SW1000XG)

  44. #45
    Wlad 2

    Прветствую, Wlad.
    В XGworks ST всё ограничено по триальному сроку - 30 дней. Но если заменяешь dll-ки и сам экзешник из офф. абдейта, то всё работает, кроме Vtsr ( на него не было абдейта). И я не смог добиться ,чтоб сохраняло в мр3, в ВАВ сохраняет. Там ещё, что-то с нотным набором не всё в порядке, но это не критично. Хотя сам нотный редактор вполне хорош (учитывая размер и год выпуска проги).
    Yamaha S-YXG50 Portable VSTi работает с XGworks ST идеально. Я ещё использую более новый ямаховский синт SGP2, он поновее, но не полный набор звуков и тоже не требует установки.

    Про новый банк к S-YXG50. Там, конечно много возни, но как интересно! Сам ВАВ семплами можно подготовить просто по аналогии, заменяя вавки своими, хотя работы там тьма. Можно попробовать одну установку ударных и пару тембров (пиано, бас..) заменить и посмотреть, как будет работать.
    А где там в S-YXG50 звуки GS ? Мне всегда казалось, что ямаха подставляет свои звуки, подгоняя по названиям банков под роланд.
    Успехов!

  45. #46
    Wlad

    Доброго времени суток Wlad 2, Выяснил я какой может размер банка и семпла. (Если интересно)

    Значения которые указывают на нужный семпл в банке, трёхбайтное,
    то есть максимальное это : 0FFFFFFh = 16.777.215 мб, а так же там есть
    ещё два значения: LOOP - 2 байта, и указатель начала воспроизведения
    семпла, также 2 байта, т.е. 0FFFFh (65536).

    2------------------1--------------------3
    !------------------!--------------------!

    1- Это основное значение которое указывает на семпл в банке (Начало Loop семпла) - Значение 3 байта 0FFFFFFh = (16.777.215мб)
    2- Смещение которое указывает на начало воспроизведение семпла. - Значение 2 байта 0FFFFh (65536кб)
    3- Смещение которое указывает LOOP зону. (зацикленное воспроизведение от 1 до 3) Значение 2 байта 0FFFFh (65536кб)

    Следовательно семпл может быть размером 128 килобайт, для 48000-8бит Моно это довольно не плохо.

    Я как-то сравнивал таблицы из разных синтов, и пришёл к выводу что таблицы можно расширить и
    при этом увеличивается банк и размер семплов тоже.

    Надеюсь я удовлетворил ваше любопытство Wlad 2, если что ещё интересует, спрашивайте, помогу чем смогу.

  46. #47
    Wlad

    Вот создал свой первый инструмент на движке синта,
    он только один при запуске синта, а остальные инструменты отсутствуют.
    Делал вместо пианино и использовал только один семпл на все клавиши.

    Вот пример: https://yadi.sk/d/bcKpfnEbtiWcH

  47. #48
    Wlad 2

    Здравствуйте, Wlad. Послушал, значит можно потихоньку лепить новый банк? А трёхслойный звук (для изменения окраски по велосити) возможно сделать?

  48. #49
    Wlad

    Здравствуйте Wlad 2. Новый банк потихоньку лепить можно , например в конец
    старого банка добавлять новые семплы, а старые очищать. (чтобы избежать путаницы)
    Также пробывал 48000-8 создать инструмент, вообщем звучит как надо.

    На счёт трёхслойного инструмента пока не знаю, двухслойный точно можно,
    дело в том что как я уже говорил ранее, есть третья (Главная) таблица в синте,
    которая отвечает за сам синтез, например : за количество слоёв, эффекты,огибающие,
    и тд. и тп.

    С главной таблицей пока не разобрался, (времени нет) так поверхностно покопался,
    но уже знаю где находится байт отвечающий за транспозу инструмента, и что инструмент
    может состоять как из одного семпла, так и из нескольких семплов.

    Если честно, то чем больше я разбираюсь с синтом, тем больше начинаю понимать
    что в нем есть ещё один DSP, который независим от пользовательского,
    и используется только для уже созданных инструментов, и ещё там присутствуют
    разные огибающие : Velocity , Cutoff , Reso , Pan и многое другое.

    Вобщем как чего-нибудь интересного раскопаю, сразу отпишусь.

    Да Wlad 2 чуть не забыл, есть такая программа XG-Wizard 2.01, она похожа на XG-Edit,
    только по новее будет, может эта информация вам пригодится.

  49. #50
    Wlad 2

    Интересно было бы взглянуть на XG-Wizard 2.01. Если есть, то поделитесь.

Комментарии временно закрыты.