Программный 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.
Доброго всем времени суток.
YAMAHA User, ничего не выйдет, т.к. 11025 это очень низкая ч.д. и такой звук вообще ни куда не годится, включая его последующую обработку, к тому же это не тот метод что бы открыть 8бит как 16.
Trancein, На счёт дитера понятно, и его действительно хорошо слышно по всему банку с семплами. Как удалось выяснить, движок софтсинта изменяет ч.д. семпла (скорость воспроизведения семпла), что бы озвучить определённую близлежащую зону (клавиш) от корневого семпла, тут у меня и возник такой вопрос, про не самый лучший семплер, а как работает семплер в железном Ymf-7x4 ?, известно что нибудь по нему? Как получаются довольно не плохо выраженные высокие частоты, из плохого по качеству банка 22050-8бит ?. ведь по сути и на практике, кроме применения увеличения разрядности к плохому по качеству банка, и ресемплинга с применением Polynome 2nd degrees интерполяции, больше ничего не помогло, т.е. приблизить качество данного банка софт-синтезатора к оригиналу (DB50XG, Ymf-7x4).
Выходит что Ymf-7x4 железная, звучит хуже чем SoftSynthesizer Ymf-724 44100\16бит ? Андрей, может у вас остались какие нибудь старые записи с этих карточек DB50XG и Ymf-724 в Wav (которые не жалко), а так же к ним и MIDI файлы, т.к. нигде нет возможности сравнить звук с "железкой", и спрашивать про это больше у некого :), а так хоть был бы наглядный пример в отличии и качестве звука между Soft-синтом, и железным Ymf-7x4, и если есть, то и с DB50XG.
Андрей, а мутная это как ? Звук у неё был с недостатком высоких, или сама по себе в общем глуховатая ?
Тут я пожалуй немного обьясню, дело в том что когда конвертируешь или обрабатываешь семпл, или группу последовательно обрабатываемых семплов, у них есть луп регионы, которые состоят из двух точек на определённый отрезок времени (начало и конец), и как правило в этих точках, что бы избежать щелчка при циклическом воспроизведении, они должны быть практически одинаковыми по громкости. Но вот если взять, и обработать семпл каким нибудь улучшайзером (даже эквалайзером), то эти точки (начало и конец луп региона) начинают отличатся по громкости друг от друга в том же отрезке времени семпла, из за чего становится слышен щелчок, при чём чем больше разность громкостей в этих точках, тем сильнее слышен сам щелчок, и в большинстве случаев после обработки семпла, от щелчка избавится не удастся, даже если выйти за рамки длины волны (если есть запас), т.к. изменяется после обработки и некоторая форма колебаний, из за чего луп регион приходится делать либо с нуля, либо из за короткого семпла это сделать вообще не возможно.
В случае с применением Polynome 2nd degrees интерполяции, не один луп регион нарушен не был, к примеру если у семпла байты в областях луп региона были : 03h-03h (Loop нач-кон), то после конвертации они остались либо без изменений, либо стали 04h-04h, а не 04h-36h как было при использовании многих методов.
DM, то что много претензий будет, это хорошо, т.к. можно будет понять где и что возможно не так в синте, однако хочу ещё сказать, что этот синт будет в чистом виде Стерео (со стерео семплов), и соответственно звук у него будет другой. Кстати, MSB, LSB (128 x 128 = 16384 банка) синт уже сразу поддерживает, только в эти банки нужно ещё что то присобачить что бы этим управлять. По поводу поддержки 8-ми леерного режима, со временем как я уже говорил расширю, просто сейчас нет в этом ни какой необходимости.
Wlad,
Любой семплер внутри применяет интерполяцию, потому что у него задача из любой частоты дискретизации сделать любую другую. Так что, ему не важно, что на входе, пусть даже 8 килогерц сеплы - будет в любом случае интерполяция. Наверняка, лучшие семплеры используют лучшие алгоритмы, плюс работают в изначально более высокой частоте, например 512 килогерц, а не используют напрямую линейную или квадратичную интерполяцию. Это нужно, чтобы избавиться от альясинга. В этом и «секрет», какой вы все ищите и ищите тут в обсуждениях, почему банк 11 килогерц хорошо звучит. Да потому что семплер не работает с отсчетами, а считает каждый отсчет в каждую единицу времени на основе интерполяции всегда. Пересчет банка в 44100 лишь увеличивает количество исходных данных для семплера и уменьшает артефакты альясинга.
Касаемо YMF-724. То там чип работал с очень плохой интерполяцией по-умолчанию даже при проигрывании 44100 wav файлов. Галочкой все это включалось и получалось получше. Напомню, в те времена все карточки работали в 48000, а музыка была только в 44100. Касаемо того, каков был алгоритм железного семплера, мне трудно сказать, я не помню, была ли вообще эта информация в даташитах. Но предполагаю, что из-за дешевости чипа, вряд ли туда сажали очень крутой семплер, скорей всего все было урезано. Лишь бы работало.
У меня нет исходных записей напрямую с 724, а те что есть, записаны в 44100 и потом слегка обработаны. Поэтому чистого сравнения сделать нельзя.
DB50 не имела высших частот вообще. Хотелось постоянно эквалайзером поднимать высшие частоты. К этому, конечно, привыкаешь. Насколько я сравнивал ее тогда с софтсинтезатором, софтсинтезатор таких проблем не имел. Но это было куча лет назад, подробностей не помню. Где-то на iXBT должна лежать моя статья по сравлнению. Отмечу только, что мутность не могу забыть - мне это сразу не понравилось, потому что я имел возможность сравнить звук с 724 напрямую. Правда, тогда еще не было PowerYMF и я сравнивал оригинальный звук 724.
Вы делаете неверные выводы. Ошибку нарушения начала и конца луп-региона услышать просто невозможно, если она в пределах +-1 отсчет. Эта ошибка типична при передискретизации. В видеопродакшене, например, вообще не заморачиваются при разрезании аудио, там щелчки при смене кадров почти не слышны. В нашем же случае щелчки будут на уровне -90db. Если допустить ошибку в 2 отсчета, то это все-равно -84 db. В-общем, отнимайте по 6 дб на каждый бит ошибки, прежде чем дойдете до реально слышимых ~ -50db. Еще наверняка слушали в миксе, при включенных эффектах, что маскирует слышимость.
Trancein писал:
Тут можно еще дополнить, может будет более понятней: потому что любая интерполяция, если сильно не придираться к терминам и определениям - это фильтр. А любой фильтр позволяет получить более высокие показатели именно на более высокой частоте дискретизации. Т.е. чем выше частота дискретизации - тем более качественный фильтр мы можем реализовать (в пределах разумного естественно). Вследствии чего - лучше решается проблема связаная с альясингом.
Wlad писал:
Я, кстати, так и предпологал, что по логике так и должно быть. Барабаны же адресуются через шестнадцать тысяч какой-то там банк и ничего нам не мешает сделать адресацию на какой-нибудь 12000 банк и потом привязать к нему какой-нибудь тембр. Только, к сожалению, Влад, толку от этого ноль без поддержки многолеерности (восемь слоев было бы в самый раз).
Ладно, попробуем пойти от противного:). Как в самой простой теореме, помните? Допустим две паралельные прямые пересекаются:)... Для начала пара цитат:
#809 Wlad писал:
Сергей Дадашьянц писал:
Отсюда вопрос. Влад, ваша усовершенствованная Yamaha для самоиграек будет поддерживать мегавойсы и суперартикуляции?
И еще вопрос к Trancein. Какое у вас мнение о ПСР-ках, самоиграйках (автоаранжировщиках). Отрицательное, положительное или вы к ним равнодушны?:)
Влад, меня тоже удивила эта строчка.
Насколько я помню, от DB50XG все кипятком, восторгались в общем. А жаловались на SW60XG, шумы на выходах и тд.
Так вот, поскольку DB50 была дочерней картой (устанавливалась на другую звуковую), то ее звучание сильно зависело от основной звуковой, с Turtle Beach Pinnacle звучала хорошо.
Trancein упоминает наверно об этой статье http://www.ixbt.com/multimedia/xitel_stormplatinum.html
DB50 с примерами звучания https://retrosoundcards.wordpress.com/2011/05/28/yamaha-db50xg/
Wlad, вот я и заметил что после чистки нарушилось то , что находится на октаву ниже или на полоктавы ниже. Но вы можете посмотреть то что я выкладывал , может и подправите )
Astemir, т.е. ваша Yamaha DB50XG стояла именно в Turtle Beach Pinnacle и не вызывала никаких нареканий?
Не всё так просто Trancein, в синтезаторе часто используются семплы в виде одного колебания (период), которые формируют осцилляторы, и таких в синте очень не мало, в первую очередь хочу обратить внимание именно на эти семплы, т.к. в них очень важна точность, и если сдвинуть +-1 отсчет, то в таких семплах щелчок всегда появляется (бывает и не очень выразительный, но это не правильно), а также если сдвинуть +-1 отсчет, не важно куда, то в этом случае ещё и изменяется тон зацикленного колебания (периода), т.к. оно становится короче или длинней на +-1 отсчет. Но и это ещё не всё, в этом синтезаторе очень часто используются семлы, которые проигрываются с начала, а луп регионы состоят также из одного колебания, но к счастью в Ymf-7x4 не так всё сложно, как например в 4мб банке. Так же я заметил что в банке Ymf-7x4, вместо одного колебания в семплах для осцилляторов, множество удлинили, сделав их из десятков, возможно как раз для того что бы и избежать ошибок при передискретизации, т.к. софтсинту 2мб и 4мб это ни к чему, поэтому у них осцилляторы и состоят в основном все из одного периода, похоже теперь ясно зачем так сделано, а я всё голову ломал. Также хочу добавить, что если из банка 22050-8бит сделать 22050-16бит, то семплы синтом читаются уже по два байта вместо одного, что также нарушает некоторые луп регионы, из за неточности счётчиков (START и LOOP регионов), т.к. встречаются в этих луп регионах как чётные так и нечётные значения, которые нужно делить на два.
Конечно нет, вначале в редакторе прослушиваю луп регион, зацикленный выделением от маркера к маркеру в Adobe Audition 10, потом уже в синтезаторе при выставленном эффекте Reverb=0 (Хорус по умолчанию при старте синта всегда=0), также настраиваю в реальном времени синт через память, т.е. открываю HEX редактор, открываю процесс, после нахожу нужную таблицу в памяти, и делаю нужные настройки в реальном времени, а также и сразу проверяю.
DM, Рано или поздно эта поддержка появится, так же это касается и барабанов. Хоть конечно времени у меня совсем сейчас мало, но я всё же изучаю понемногу многие инструменты, в том числе и засемплированные, что бы знать что к чему, т.к. когда играешь на синтезаторе, это одно, а вот когда создаёшь синтезатор, это уже совсем другое, и всё упирается в первую очередь в знания, причём даже некоторые тонкости играют важную роль в настройки инструмента.
DM, Пока сам не знаю, но если YAMAHA XG2006Le поддерживает мегавойсы и суперартикуляции, это значит что в ней есть соответствующий код для этой поддержки, в котором нужно будет разобраться, и тогда возможно получится добавить эти фишки в синт, но это будет скорее всего не просто, но возможно.
Astemir, спасибо за ссылки. Оказывается да, многое зависит от звуковой карты (в инете в обед порылся), мне как то один знакомый тоже говорил, что ему софтсинт (Ymf-724) больше нравится чем DB50XG которая у него была дочерней, на какой то дешёвой карточке (говорит вроде ESS). Другие наоборот, очень хвалят, однако сам я её не разу в живую не слышал, и решил что просто у людей разный вкус. Про SW60XG не раз слышал разговоры что она шумоватая, но качество звука всё же хвалят, а также говорят что с неё оказывается можно сделать как и с DB50XG, Stand-alone модуль.
Wlad писал:
Влад, что-то я не могу понять суть вашей проблемы. Вот взял я и сгенерировал в Adobe Audition синусоиду 440 Гц. (8 бит х 22050 Гц). Взял ровно один период и зациклил его. Затем сконвертировал этот период (loop) в 16 бит х 44100 Гц. Цикл, период (loop) как воспроизводился, так и воспроизводится. Никаких артефактов не заметил, единственное - это то, что в одном случае мы имеем 8 бит х 22050 Гц, а в другом 16 бит х 44100 Гц. Еще раз хочу уточнить - ровно один период. До и после этого периода информация отсутствует.
DM, проблем у меня ни с чем нет. Вот взяли и сгенерировали вы в Adobe Audition синусоиду 440 Гц. (8 бит х 22050 Гц), зациклили вы ровно один период, а вы уверены что теперь зацикленный вами период при воспроизведении в зацикленном виде, составляет ровно 440 Гц ?
Не то, что уверен - убежден. Причем на 200%. Можете сами пересчитать длительность периода, коль уж в программе засомневались. Если нигде не ошибетесь, то получите 50 семплов на частоте дискретизации 22050 Гц. И потом, Влад, можно же еще простым дедовским способом на слух - относительно камертона (нота Ля как раз 440 Гц).
Влад, хочу внести еще некоторую ясность и поддержать вашу мысль по поводу слышимых артефактов - когда изменяешь луп-регион всего лишь на один семпл(отсчет). Тут вы, видимо, в большинстве случаев будете правы и здесь я поддерживаю вашу точку зрения. Здесь нужно понимать, что все относительно. Нужно учитывать самый главный фактор - это частоту дискретизации. Одно дело когда у нас ЧД - 100кГц и другое дело, когда ЧД - 20кГц. Временной промежуток между двумя отсчетами будет разный. Еше нужно учитывать видимо и длину самого луп-региона. Если это 1-2 секунды - это одно, а если это всего 50 семплов (отсчетов), то совсем другое. И в случае когда мы имеем 50 семплов - может менятся и высота луп-региона (т.е. ноты в большинстве случаев). Когда у нас короткий луп-регион - нужно знать количество семплов (отсчетов) в периоде и тогда: ПЛЮС МИНУС ОДИН ОТСЧЕТ - КАРАЕТСЯ РАСТРЕЛОМ:). Т.е. когда мы имеем правильный (без всяких артефактов луп-регион) - мы можем конвертировать его на любую частоту и не заморачиваться на счет щелчков или еще чего-либо.
DM, все верно, одно дело когда у нас ЧД - 100кГц и другое дело, когда ЧД - 20кГц. (не успел написать), я просто пытаюсь сказать, что нельзя просто так взять, и из одного зацикленного периода отнять или прибавить отсчёт, т.к. появляется не только щелчок, но и нарушается полутон (в центах). Я обычно простым дедовским способом на слух так и делаю, запускаю в фоновом режиме сигнал к примеру те же 440 Гц, а потом из сгенерированного длинного сигнала, подбираю нужный мне период, т.к. не все периоды начинаются и заканчиваются с нужной громкостью и нужным полутоном (в центах), нужно подбирать из множества. Другое дело когда длинный семпл, в этом случае куда всё проще. Также у Андрея в оригинальном банке Extended (22050-16бит), наблюдаются часто эти нарушения, к примеру синусоида, когда банк был 22050-8бит, период синусоиды составлял нечётное количество байт, но и читался он синтезатором по одному байту в режиме 22050-8бит, а после конвертации банка в 22050-16бит, в этом режиме синтезатор читает семпл уже по два байта, и он не может читая по два байта семпл, считать корректно нечётное количество байт, именно по этой причине и получается +1 лишний отсчёт, что и приводит к щелчку (по свободней буду, выложу синт и примеры, что бы показать последствия +-1 отсчета в синтезаторе), именно поэтому у вас Андрей и появились щелчки в банке. Сейчас к счастью больше ничего конвертировать не нужно, сразу генерируешь 44100 или кратные 66150,88200,110250,132300,154350,176400,198450, и т.д., и без всяких проблем задействуешь синтезатором эти семплы.
Влад, я обычно стараюсь не спорить с хорошими людьми, а вы как раз из этой категории людей:), но зная ваш необидчевый и достаточно сдержанный характер - хочу немного позанудствовать, ради хорошего дела, чтобы не было разночтений по основным терминам и понятиям. Хочу акцентировать ваше внимание на том, что количество байт и количество отсчетов не всегда бывает одинаковым. Т.е. бывает, что на один отсчет приходится 1 байт, а бывает 4 или 8 - все зависит от формата. Но количество семплов (отсчетов) в одном и том же файле не зависимо от формата - ВСЕГДА ОДНО И ТО ЖЕ. И поэтому если при конвертации, когда у нас становится вдруг почему-то меньше или больше отсчетов в луп-регионе - виноваты либо неправильные настройки программы, либо какие-либо баги программы. Такого, в принципе, не должно быть. А если такое происходит, то нужно искать где мы ошиблись или где ошибается программа.
Самое главное забыл сказать :), что синтезатор работает в чистом виде 44100-8\16бит, счётчики регионов в этом случае работают по байтно, но из за снижения ч.д. при указании Root нот семплам на октаву выше, чтения семплов происходило в два раза медленней, и счётчики (Start и Loop) в этом случае работают по другому, и приходилось их высчитывать по другому, т.е. истинные отсчёты луп регионов нужно делить на два, вот тут и возникала такая сложность, что нечётные отсчёты на два не делятся. Андрей, может вы вспомните, что после того как вы конвертировали банк в 16-бит, в табличках вам приходилось умножать на два всего лишь поинты которые указывают на семплы (начало луп региона), а значения регионов оставались не тронутыми, и это при том, что банк увеличивался в размере ровно вдвое, а следовательно и семплы увеличивались в размере вдвое, а регионы остались не тронутыми (эти таблички легко можно сравнить).
Влад, ну может это у вас какой-то отдельный частный случай - не буду упорствовать. Я просто хотел заострить внимание на общем принципе, а с частными случаями можно при желании вникнуть и разобраться отдельно.
DM, хорошо, бог с ним, всё равно это уже пройденный этап, и к нему (к 22050) уже возврата нет, главное что в ч.д. 44100 и выше работает всё как нужно :).
Процитирую самого себя и дополню, чтобы кого-нибудь не сбить с толку:). Здесь нужно добавить, что с учетом пропорций между форматами. В том смысле, что когда мы конвертируем и увеличиваем частоту дискретизации вдвое, то пропорционально и увеличивается количество отсчетов. Т.е. если луп-регион состоял из 25 отсчетов с ЧД 22050, то при ЧД 44100 кол-во этих отсчетов должно пропорционально увеличится и стать 50, но никак не 49 или 51. Т.е. все пропорции сохраняются и никаких лишних отсчетов (семплов).
Wlad,
В банке такого - семпл длиной ровно в один период, - быть не должно.
Извините, у вас с математикой совсем плохо. Было 8 байтов, стало 8 сдвоенных байтов. Где лишнему отсчету взяться? Умножение на два смещения не приведет ни к каким изменениям. Все меняется. А щелчки не от того что вы там придумали про смещения, а от сложной обработки в спектральной области, изменяющей спектр и соответственно случайные смещения вверх или вниз по уровню.
Все же на этом месте я остановлюсь и только порекомендую Владу не в байтах ассемблера возиться, а свои знания в элементарной математике поднять и в практике работы с музыкой. А то уже пошли гадание на бубнах что да как.
Если вам очень хочется, то сами возьмите бумагу и ручку, нарисуйте байты и биты, умножьте на два, а потом уже стройте из себя гуру.
DM,
Совершенно верно.
Хорошо, что скажете по этому поводу : https://yadi.sk/d/1rbzjLPo3L6G2M где их много, и это только один фрагмент, который я взял из 4мб банка, т.к. в нём я задокументировал практически всё, а также установил маркеры, и уверяю вас, что в банке Ymf-724 их не меньше (просто я маркеры согласно таблицам не стал ставить, т.к. буду всё менять). Маркеры я ставил в Adobe Audition 6 и 10, в остальных программах не знаю, будут ли они отображаться.
С элементарной математикой к счастью у меня всё нормально, а вот за рекомендацию в практике работы с музыкой спасибо.
b>Trancein, мне очень не хотелось бы высказываться по поводу этих высокомерных слов.
В движке синта много всяких нюансов, например в 44100 есть одна особенность, если при 22050 поинты которые указывают на семплы (на начала луп регионов) имеют истинное значение, то при 44100 их уже нужно умножать на два, что бы получить правильную адресацию на семплы (т.е. 48756Ah это истнный адрес на семпл, но движку в 44100 нужно почему то 90EAD4h) , но к счастью с умножением не чётных чисел проблем нет, а при другой ч.д. значения регионов нужно делить на два (так работает движок), как например луп регион состоящий из 151 семпла поделить на два. Я некоторые вещи к сожалению на память не помню, но таких нюансов в движке не мало.
Wlad, о каком 44100 речь идет и ошибочных смещениях, когда PowerYMF работал на 22050? Крайне неприятно слушать различные мнения о том, что якобы в PowerYMF что-то работало неверно из-за технических ошибок и после того, как я запостил тут огромное количество технических постов и рекомендаций. Я все еще считаю, что ваши рассуждения о смещениях в банке являются технически неверными. В программировании есть такое явление, что когда человек полностью не понимает, как работает код, то он склонен создавать неправдоподобные идеи касаемо того, как якобы работает код. В последнее время вы допускаете все больше подобных высказываний. Ладно бы, касаемо вашего непонимания, что происходит с банком, но не трожьте PowerYMF.
Можете уверять все что угодно, но я, как автор электронной музыки, сделанной на основе PowerYMF, могу быть абсолютно уверенным, что мои модификации банка не приводили к проблемам, какие вы якобы находите в PowerYMF. Умножение смещений на два и чтение двух байт из банка не приводит к тем проблемам, какие якобы вы обнаружили. Умножение на два в коде чтения семпла не приводит к появлению или исчезновению лишних или отсутствующих семплов. Еще раз возвращаю вас к математике. Умножение целых чисел на 2, да и на любое другое число не приводит к дробным числам. Меняется лишь ширина считывания. Если что-то не так, то ищите ошибки в своем коде, а именно, почему у вас не пропатчен код вычисления луп-смещений.
Trancein, как я не хотел, так разговаривать с вами Trancein, однако придётся.
Trancein, причём здесь PowerYMF, и где вы эти слышите различные мнения о том, что якобы именно в PowerYMF что-то работало неверно из-за технических ошибок, не у себя ли в голове случаем ? я движок синтезатора имею ввиду.
Например использовать sfz ?, вот знаете, только не обижайтесь, глупее ничего не слышал, ни манёвров, ни добавить, в общем совершенно тупой инструмент, ну и зачем нужен такой редактор банка, от которого столько сложностей, кстати причём чем то напоминает ваш редактор в PowerYMF, где распаковал ~1000 файлов в единую кашу, и где что сам чёрт голову сломает, ведь куда проще согласно маленькой таблице, создать 255 папок, в которых будут находится наборы семплов для каждого инструмента со своими же конфигами. Другое дело когда полная свобода действий, захотел к примеру засемплированный рояль из 88 семплов, пожалуйста, и пофиг какая длина волны, плюс ещё стерео, да и вообще всё доступно, синтезируй любые патчи, размещай их в новых банках, для сомоиграйки отличный инструмент, а у вас по сути редактор для создания банка холтуры, и эту оценку вы сами по сути своему банку дали, даже не финализировав его исправив ошибки, но тут тоже как бы понятно, какой автор такой и банк.
Вы прям психиатр ! Причём здесь код, я не говорю не о каком коде. Код я сейчас понимаю достаточно, немного медленно правда, но для ускорения процесса использую дебаггер. Вы я так понял совсем дурака из меня сделать пытаетесь, вы сами то в коде разбираетесь ? или мните себя гением разработчиком, нет наверное гуру, хотя при этом предлагаете создать довольно дубовый редактор банка.
Знаете, меня всё мучает догадка, а вы случаем не помешались на своей PowerYMF, что то вы всё чаще стали её упоминать не с того не с сего, может вам действительно обратится куда нужно, а то когда нибудь, не дай бог конечно, забудите все слова, кроме этого PowerYMF.
И снова про неё, тут у меня как бы по немногу сомнения развеиваться начинают. Во первых я вам привёл неопровержимый факт того, где вы считаете что такого быть не должно ! И раз вы всё время даёте мне советы, пожалуй я и вам один дам, вы хотя бы с электронной музыки на классику иногда переходите что ли, говорят успокаивает, и нервы лечит. Во вторых, я вот всё ни как не могу понять, откуда вы берёте это, что я якобы копаюсь в PowerYMF, и всё время нахожу ошибки в ней ? У меня и карточки то 7x4 нет.
Вы кого то мне напоминаете, когда ему говорят одно, а он отвечает на совсем другое.
Wlad, по высказыванию Trancein-а , я могу его понять , ведь я тоже изначально считал что легче редактировать SoundFont-ы чем те таблицы которые есть. Оно для нас со стороны легче потому что есть такие инструменты как Awave Studio или Vienna SoundFont Studio и подобное всё таки с карточками от Creative со времён AWE32 многие успели познакомиться ) и вот для этой аудитории конечно легче и удобнее пользоваться привычным для неё редактором ) я вот не буду скрывать , мне например тоже было бы легче вам помочь в правке луп регионов еслиб банк был в SF2. Просто птому что я с SF2 больше занимался чем с форматом который в ямахе ) но тут каждому своё )
Trancein, нам с вами трудно понять Wlad-а потому что мы с вами привыкли к вот такому пострению банка https://yadi.sk/i/KfOzAWFh3L8Leb , это со времён SF2/DLS , а Владу пришлось расковырять весь банк ямахи который ещё и был зашифрован... пришлось его расшифровать и уже потом научить движок синтезатора читать сначала расшифрованный формат , а потом ещё как-то менять Ч/Д... так что тоже поймите человека )
Wlad писал:
YAMAHA User, ну то, что вы умеете наполнять свои посты "глубокомысленными умозаключениями" - это всем известный и неоспоримый факт. Я, например, уже настолько к этому привык, что даже не удивился. Вы не поможете мне разгадать загадку Влада? Кого он имел в виду в вышеприведенной мною цитате? На VEGa, вроде, не похоже. На вас... ну это было бы высшим проявлением кощунства - подумать про вас такое. Вы же у нас духовный коучер и наставник ствола на врагов ума и целомудрия. Человек-бубен, человек-рельс, мозг которого сдан еще при жизни в музей, от постов которого черные вражьи тучи глупцов и идиотов, мочатся себе в штаны не успев добежать до туалета. Хотелось бы узнать, что вы думаете по этому поводу, YAMAHA User? Есть у вас какое-нибудь свое мнение на этот счет?
DM, я вот хотел бы узнать зачем вы сразу сводите к наездам всё ? Я могу думать всё что угодно. И не могу исключать что Влад намекал на мои глупости потому что я правда по началу смыслил точно так же. Кстати , я так пока и не понимаю , почему апсемплинг сделан именно таким алгортмом без вычищения шума. Влад говорил что есть такие моменты в ьанеке когорые равны одному периоду , но судя по опыту сохранения с апсемплингом получаюютя интересные штуки. Если без фильра , то как бы это показать... прочем , покажу. Вот запись 22050/16 Stereo которая в WaveSour была апсемплирована до 44100/16 и которая потом была даунсемплирована ещё раз до 22050 и апсемплирована ещё раз до 44100. Как видите , спектрограмма даже между исхложными 22050/16 и даунсемплированными отличается... так же вы видите что частот в исходном варианте выше чем 11025 нету , потому что взяться им неоткуда... так же вы чётко видите , что в апсемплированном варианте pass 1 песть пустота как раз на отметке 10500-11900 и вдруг начинают появляться ВЧ там , где их быть не должно... при этом известно , что в записе этих ВЧ физически нет... значит , вот то что при апсемпле появилосьб выше 11025 надо резать шумодавом. Посмотрите что случается при конвертации из такого 44100 в 22050 , спектрограмма не совпадает с исходной... более того , посмотрите что случается в если из получившегося второго 22050 сконвертить в 44100... даже результаты конверсии в 44100 не совпадают... но в обоих случиях есть шум зеркальный ниженму регистру частот. Что мы видим на отметке выше 12КГц... вот этот мусор надо вычищать из результата ресемпла. Во всяком случаи у меня такой вывод напрашивается. Так что это единственное , в чём я расхожусь с Владом и Алексеем. Всё остальноре я не знаю и утверждать просто не могу. Кстати , я попробую WavPack-ом проделать то о чём подумал , может я всё таки прав. О результате отпишу.
Вот предмет спора https://yadi.sk/d/6svjPa7A3L8sAg
YAMAHA User писал:
YAMAHA User, мне кажется, что рамки небольшого блога VEGа стали давно уже тесными для вас. Пора переходить на другой уровень и к другой аудитории. О результатах, я думаю, вам надо сразу писать в Белый дом - официальную резиденцию президента США Дональда Трампа. Мне кажется, - это единственный человек, кто сможет вас понять. Потому как, говорят, что его одна извилина, которой он обладал, к настоящему моменту - уже окончательно выпрямилась. И теперь вы с ним в этом смысле - как братья близнецы. Советую не упускать свой шанс - плюнуть и забыть про блог VEGа. Ну не царское это дело, YAMAHA User, тусоваться в блоге у VEGа с вашими "способностями".
DM, да нет же , я просто хочу понять с какой целью нужно было поднимать дискретку с 22050 до 44100 коль и там и там ВЧ есть ) причём , как поаказывает практика при ресемпле точно таким же методом как применил Влад сделать точные копии прогнав сигнал туда сюда смеив дискретку несколько раз строго в два раза , как-то всё равно не выходит. Вот и хочу понять что не так.
ЧД и битность поднимали, чтобы можно было использовать путевые сэмплы, заодно избавиться от 8мибитного шума, о чем протерли здесь до дыр.
Alexys, ЧД если и поднимать , то надо это делать так чтоб не появлялся шум в зоне где не было изначально звука. Я так понимаю )
8-и битный шум к сожалению вычистить нельзя никак , это нужен очень мощный шумодав или полная переработка подчищенных ранее банков... И если уш целиться на капитальное избавление от паразитного шума , то смотреть на 24-ёх битные сэмплы , а не на 16-и битные. Поверьте , шум при 16-и битах всё же есть. Это я вам говорю как владелец Audigy RX который её может использовать и в 16-и битном и в 24-ёх битном режиме. Так что тут всё очень сложно. По хорошему Владу надо на основе моего подчищенного банка восстановить все инструменты с Loop циклами в которых только возможно это сделать , а остальную часть которую ну совсем не возможно использовать никак иначе , оставить такими какими они были до чистки банка от шума. Это очень трудоёмкая работа и я это осознаю. Если бы я мог помочь, я помог бы Владу. Но я не знаб как редактировать тот маленький tbl и что за что там отвечает.
О, да, полет мысли очень далек. А может Ваша карточка шумит просто потому что у нее на выходе операционник стоит ? А вообще, по хорошему Вам стоит больше не давать таких вот рекомендаций поскольку нами уже все сделано. И вот реально - никакого шума. И 24 бит, как видится, не надо.
YAMAHA User, зашифрованный банк расшифровал VEG, вернее будет сказать три банка, 2мб, 4мб, Ymf-724, и рискну предположить от S-Yxg20 (я его тоже расшифровывал, но ничего интересного в нём не нашёл, т.к. он довольно плохого качества), а также убрал всё не нужное с кода (антиотладочный код, хитрую привязку к компу, обращение к реестру и т.д. и т.п., почитайте Readme), как понял я, сам алгоритм шифрования не убран, а он включается или отключается, если в маленьком tbl файле по адресу 0x1Fh установлен 0 (включается), или 1 (отключается), это даёт возможность использовать синтом как расшифрованные банки, так и зашифрованные. Я же просто на основе VEGa работы, сделал свою модификацию как банка, так и движка, т.к. VEG по сути и выложил yamaha_syxg50_vsti_ext для экспериментов, за что ему ещё раз спасибо, чем я и воспользовался, а изобретать велосипед я не стал, да и зачем, если есть уже по сути прокаченый мопед. Я конечно планировал сделать то же самое, кроме INI файла, и добавить банк в DLL, но VEG сделал так, что лучше и не надо, вернее надо, но это если он конечно решит вернуться к этому проекту и добавить ещё несколько фишек в настройках :). (если мне не изменяет память, намёк вроде был :))
YAMAHA User, я вам скажу коротко и ясно, что бы вы больше не думали про луп регионы и спали спокойно. Нарушенных луп регионов в банке YmF-7x4 Final 44100-16bit Release https://yadi.sk/d/c08fJIF73J4KNx больше нет, всё давно исправлено, включая ошибки самой Yamahи, пользуйтесь.
DM, скажу честно как есть, уважаю таких людей с таким чувством юмора :).
По поводу ошибки которую описывал, я во всём разобрался, это действительно моя ошибка, но не умышленная, прошу меня простить если ввёл кого нибудь в заблуждение, я всегда признаю свои ошибки, и не доказываю что дважды два = пять. Произошло это следующим образом, после переустановки винды, я свои проекты и экспериментальные образцы переписал в другое место на другой диск, и уже поздно вечером я решил по рыться в коде синта, и т.к. образцов со схожими именами у меня очень много, я случайно переписал не тот синт, сам я был очень уставшим, и не заметил разницу в звуке, (тот кто очень много работает меня поймёт), в итоге я изучал синт без модифицированного мной движка с банком 44100-8бит, который читался движком как 22050-16бит, т.е. движок читал 8ми битный файл как 16-ти битный по два байта, (эту грубую ошибку я и допустил на ранних стадиях изучения синта, и в блоге вся эта инфа есть), и из за этого каждый второй байт нёс в себе не верную информацию для 16-ти битного формата, из за чего похоже и нарушались луп регионы, и т.к. с этим банком я работал раньше довольно долго, то принял эти отсчёты на данный момент за чистую монету по привычке (даже я бы сказал что был уверен), т.к. наверно "тысячу" раз производил расчёты по этому методу учась заменять семплы. Звук у синта, который работает таким вот методом, довольно не плохой, Astemir например считает что в этом банке лучше всего звучит Distortion гитара. При конвертации и замене семпла, часто была проблема с луп регионами, из за того что значения регионов в семплах всегда приходилось делить на два, т.к. в редакторе маркерами 44100-8бит отмечалось к примеру как 500 семплов в луп регионе, а движок в 22050-16бит читал эту информацию по два байта, и соответственно каждый второй байт становился вторым в 16-ти битном формате, и поэтому синт их понимал в реале 250, и если попадалось не чётное число семплов в луп регионе при замене семпла, то возникали проблемы со щелчком, и приходилось удлинять семпл до тех пор, пока не получится чётное количество семплов. Всё остальное, с умножением поинтера и т.д. всё верно.
Wlad, за авторство расшифровки извиняюсь. Я думал что расшифровано только которое SMP.
Но вот вопрос про глобальный уровень громкости остаётся открытым. Зачем уровень 0 имеет клиппинг на некоторых , специфичных композициях где Velocity и Volume слишком большие ?
Кстати , между прочем этот вариант звучит чище чем предыдущий.
Wlad,
Вы не можете держать себя в руках? Ну чтож, буду учитывать, что разговариваю с неуравновешенным хамом. Это ваш выбор - раскручивать конфликт, хамить, наезжать, обвинять. Никто вас за язык не держал.
Прокомментирую некоторые слова:
Все началось вот с этого сообщения:
Повторяю: именно поэтому у вас Андрей и появились щелчки в банке.
Вот это и есть то самое хамство, после которого я отметил вас как «гуру», взявшего на себя лавры винить других людей в том, в чем вы сами повинны. Это у вас появились щелчки в банке, потому что это вы так его сконвертировали. Я вообще не имею никакого отношения к софтсинтезатору и я не делал никакой банк для софтсинтезатора. Тот банк работал вообще на железной YMF-724, где все совсем иначе. И делался банк совсем иначе - отдельные звуки распаковывались отдельно и редактировались отдельно.
Но это ладно, обратите внимание на смысл вашего сообщения. Ваше высказывание смыслом имеет такое - я являюсь причиной щелчков, потому что я не учел что-то, что в вашем софтсинтезаторе побайтно считывается. Ерунда какая-то? А почему ерунда? Потому что это не у меня щелчки появились, а у вас они появились. Не надо было вообще трогать другого человека, считая, что у него что-то появлялось.
Можно было высказаться иначе, написав, что у вас появились щелчки при работе с другим банком, неся ответственность только за себя и не перекладывая ее на ни в чем не повинного человека. Если же у вас возникла идея, что щелчки появились бы и у другого человека, надо было ее подать как предположение, что мол, я вот порылся по банку, получил щелчки, и, предполагаю, что возможно, у вас на YMF-724 могли возникать аналогичные щелчки. Но это лишь предположение. А так, с ходу, с жару вешать на другого человека что-то - это как раз то, что и приводит к конфликтам.
У меня щелчки могли быть только в PowerYMF. Вот откуда появилось слово PowerYMF . Логику включите.
Потому что вы глупый человек, раз не видите преимуществ sfz и редакторов sfz. Глупый настолько, что решаетесь на основе первого попашегося ломанного софтсинтезатора создавать свой семплер, не зная про такие замечательные VST, как, например, TX16Wx. При этом распаковываете банк в единое месиво всех форм волны, в том числе и служебных, интерполируете это все, ломая звуки на стыке разных семплов, получая при этом щелчки и размышляя о нечетных делениях. Вам уже несколько человек сообщили, что при умножении на два и обратном делении на два никак не могут появиться ошибки округления.
Распаковка и запаковка семплов по-отдельности - единственно-корректный и очевидный способ удобной работы с банками, решающий те проблемы, какие вы уже имеете, а именно щелчки на стыке служебных форм волн, полуручная работа с банком, шумность и другие, какие вы пока еще не знаете. А «довольно дубовый редактор банка», такой, как например, TX16Wx, намного удобней ручной возни с байтами и битами в дебаггере бинарного кода. Но вы ж признали свою тупость, так что теперь не обижайтесь теперь - ваши слова были про тупость, вот и ловите.
А вы подумайте, какое отношение я имею к вашему банку, в котором вы имеете щелчки. И подумайте, какое отношение «нюансы» софтсинтезатора имеют к драйверам YMF-724, где все работало точно иначе.
Возвращаю вас обратно к тому что вы сами раскрутили: вы обнаружили щелчки, приняли идею, что во всем виновно изменение количества байт, выстроили забавную идею, что после увеличения этих байтов на два или четыре на границах луп-регионов появляются щелчки, вы упомянули, что это я повинен в этих щелчках, указывая на банк из PowerYMF. Вопрос на сообразительность, какое отношение PowerYMF банк имеет к слову PowerYMF? Может быть его автор повиннен в щелчках, возникающих в совсем другой сущности? Может быть вы некорректно его сконвертировали в свой банк и получили при этом свои щелчки? Нетрудно же догадаться, кто является причиной щелчков - я или другой человек?
А как мне вам еще показать, что щелчков у меня не было? Я ж за своим банком много лет просидел, используя его в музыке. Это у вас там щелчки имеются, после конвертации этого банка для своего софтсинтезатора. А оказывается, что вы YMF-724 и вовсе не имели. Так что ваши неопровержимые доказательства, оказывается, основываются на обыкновенной подмене фактов. Это у вас щелчки появились. А то, что щелчки были именно у меня, т.е. на драйвере YMF-724 с моим банком, у вас никаких доказательств нет и не может быть.
YAMAHA User,
Как я понимаю, Влад любит рыться в дебаггерах и высчитывать на калькуляторе смещения. Он, видимо, не музыкант и не может себе даже представлять сложности создания своих банков. Может быть человеку удобней в битах возиться, пусть и возится, игнорируя специализированные редакторы банков.
Вас я не понимаю, зачем вы влезли в этот проект? Есть же много качественных банков в sf2 или sfz.
Trancein
Т.е. Вы хотите сказать, что Ваш банк для "железной" YMF-724 будет работать иначе, чем для программной ? Предположу, что да, опять же, из-за разной интерполяции.
Кто в чем любит рыться- это его дело. Главное, чтобы выводы делались верные. Кому-то нравятся SF2, кому-то нет, хотя GIG, на мой взгляд, лучше. Хотя, там разница только в наличии описания различных настроек инструментов. В tbl-файле настроек Ямахи все то же самое, только представлено в коде и редактора нет соответствующего.
Trancein просто обыкновенный брехун, я это позже докажу на всё 100% (ему бы посетить сайт со сборником басней, думаю там он больше найдёт для себя полезной информации), но сейчас к сожалению пока нет времени, ответить ему. Софт движок это железный эмулятор, и таблицы синтов абсолютно идентичные, если у него в банке Extended (22050 16-бит) есть щелчки в луп регионах (а это неопровержимый факт !) и каким то чудесным образом эти щелчки пропадают на звуковой карте, то логично будет предположить, что если использовать банк без щелчков, то они там появятся (хотя это абсурд, что первое, что второе). Если честно, я представлял вас Trancein, другим человеком, а выясняется, что вы завравшийся выскочка с говнистым отливом !
Это вот знаешь Alexys, такой тип людей, которые преподносят себя так что они всё знают и умеют, но когда доходит до дела, то на выходе у них как правило получаются не что иное как не до деланные полуфабрикаты, за то мнят себя гениями всего к чему прикасаются.
Trancein, отвечу вам позже, а также предоставлю неопровержимые доказательства вашего не однократного вранья.
Wlad, меня всё таки расперает от одного желания ) опишиу его вам. Простите , что такой назойливый.
Вы когда с VEG-ом обсуждали структуру банков я уже не помню кто именно , но упоменялу что банк от S-XYG2006LE тоже расшифровать можно. А всё же , как бы вот те звуки апсемплить да в YMF-784 что ли вставить ? ) Хах... говорили так же что там ещё более накручено всё чем в простом S-YXG50 , но всё же ) мне там гитары нравятся да и ударные и басовые есть не плохие по тембру. Но он XG-Lite , а хчется это добро послушать в XG обычном с вариацией )
Trancein, я влез в этот проект случайно ) дело было вот как :
У меня была YAMAHA S-YXG50 с ломалкой , я её пользовал и вроде ничего , но когда я начал создавать свой синтпак , мне потребовалось вот эту ямаху ставить отдельно от синтпака ) , потом же вышел Roland Sound Canvas VA который тоже хотелось подружить именно с XP и поскольку ломалка от R2R не работала на системах ниже Vista , я искал где найти ломанную версию ) и вот случайно на old-games.ru скачал и попал сюда ) с old-games.ru конечно удалили , а Влад здесь доломал синт так что он и грузится быстрее )
Wlad, вот вы какие слова знаете: брехун выскочка говнистым вранья. Какие замечательные слова. Отлично характеризуют вас. Достаточно было немного тронуть вас, и понесло. Давайте-давайте, раскрывайтесь полнее. Пусть весь интернет узнает вас с этой новой для всех нас стороны.
Alexys,
У меня банки для 724 были изменены. Вместо 8-бит они стали 16-бит и были обработаны и перепакованы обратно. В Dance банке еще были изменены некоторые инструменты. То, что сделал Влад - он еще увеличил частоту дискретизации вдвое, добавив новые отсчеты, проведя итоговую интерполяцию. Так что банки совсем разные и должны звучать по-разному, хотя бы в части того, какие дополнительные искажения были внесены интерполяцией и изменениями констант. Насколько корректно при этом понимаются луп-регионы, трудно сказать, Влад сообщает, что там есть с этим проблемы. Могу поверить ему на слово и отмечу, что в звучании некоторых MIDI, действительно, если прислушаться и отключить эффекты, то можно обнаружить легкие щелчки. Были ли они там изначально или это и есть те самые проблемы с луп-регионами, не могу сказать. Меня лично устраивает качество для моих целей.
А касаемо разности звучания самого семплера, то тут очевидно. 724 выполняла требования к Microsoft DLS, по которому на вход для проигрывания семпла подается структура, очень похожая на структуру WAV файла с луп регионами, питчами и служебной информацией о формате. Так что чип должен изначально уметь проигрывать WAV в разных форматах с разной битностью и частотой дискретизации. Может быть, там были ограничения к перечню форматов, но уже не помню. Но 16 бит он нормально подхватил.
В софт-синтезаторе проигрывание семпла может быть совсем другим, с другими алгоритмами ресемплинга.
YAMAHA User,
Для этого нужно иметь распаковщик-запаковщик банка в отдельные семплы. Как я понимаю, такого пока не существует в природе.
Синт-пак : https://yadi.sk/d/YvBiGiyt3LAbfj
Исходники : https://yadi.sk/d/Xb7yOFYK3LAbv6
Trancein, MSDLS штука крайне топорная и от аппаратной реализации не зависит никак ) если ещё и учесть что в первом виде GM.dls практчиески все Loop-ы нарушены капитально (Майки поленились даже этот этап сделать по-человечески... поверьте , когда я переходил на XP и хотел иметь Virtual Sound Canvas 88 , мне ничего не оставалось кроме как ковырять этот чёртов GM.DLS) я его пересобрал так же , как Влад пересобрал апсемпленный банк от Ямахи ) и он тоже был в 2 раза больше у меня чем исходный. В YMF-724 TBL никак не были привязаны к такому топорью как MSDLS которое даже ревер и хорус по-людски не умеет.
Alexys, просмотрел внимательно патчи драйвера 724 и имеющиеся записи. Могу сказать совершенно точно, что чип проигрывал 16-битный банк аппаратно. Хак драйвера для битности заключался в изменении констант, чтобы правильно считать банк и расшифровать его. Точней, расшифровка была просто отключена и грузилось напрямую то, что считалось из файла банка. Также патчились смещения до начала семплов, чтобы верно указывать чипу адрес в памяти, начиная с какого нужно проигрывать семпл. Еще есть места, где чипу подавался формат семпла - там пропатчена константа формата с 8 бит до 16. Еще есть особенность - начало семпла должно было быть выравнено по границе 16 байт (аппаратные заморочки работы с памятью). В банке присутствуют странные ступеньки в конце семплов - это как раз паддинги, чтобы выровнять банк для чипа. На звучание не влияет, поскольку везде прописаны лупы. Были у нас проблемы с последним семплом, он проигрывался неверно. Работа драйвера заключалась в том, что он периодически вызывал чип, подкидывая ему адреса и питчи, дальше чип сам лез в банк и проигрывал его прямо из памяти.
После хака звучание стало чуть хуже. Это очевидно, ведь вместо плавной кривой апроксимации отсчетов семплера на вход стала подаваться ступенька. Это поправилось после ручной работы с семплами. Кстати, в банке присутствуют инструменты с разной частотой дискретизации, от 11 до 44 килогерц. Для верного проигрывания менялись константы питча (изменения скорости впоспроизведения).
Trancein, давайте решать, как мы поступим дальше. Мне не потребуется сильно много времени, что бы пролистать все свои исследования, а также создать множество примеров, где наглядно можно показать что щелчков в вашем банке довольно много (а также множество других ошибок в общем), и звуковая карта ни как сгладить их не сможет, это легко проверить, и т.к. я работаю непосредственно с компьютерным железом, через своих знакомых разыщу карточку Ymf, что бы окончательно поставить точку. Также я могу один в один, т.е. бит в бит собрать на софтдвижке ваш банк 22050-16 Extended, что бы также можно было убедится в нарушениях, и мн. др.. По этому предлагаю заключить между нами мир, пока дело не дошло до серьёзной войны, не знаю как вы, но я всегда довожу дело до конца, и не когда не перед чем не останавливаюсь, и поэтому очень не хочется что бы из за какой то мелочи пострадала наша репутация, по моему мы и так уже далеко зашли. Вы после стольких лет многого не помните, а у меня сейчас крайне напряжённое время и обстановка, хоть я человек достаточно спокойный и уравновешенный, и позволяю себе такие высказывания крайне редко.
Wlad, не занимайтесь ерундой. Достаточно лишь признать, что я никак не мог влиять на проигрывание лупов в софтсинтезаторе. Это же очевидно. Поэтому моей вины никакой нет в этом. Если у вас там есть какие-то проблемы со смещениями, то мне лично на это пофиг, в чем там эти смещения измеряются и какие ошибки округления, потому что повторяю, что когда я работал над PowerYMF, смещения лупов вообще ни на что не влияли. Да и там они, имхо, в отсчетах, а не в байтах или словах.
А те якобы нарушения, какие вы там видите и обосновываете странными манипуляциями с байтами и умноженияим - это не нарушения, а ручная работа с тысячами семплов вручную в аудиоредакторе. Я очень много времени убил, и разумеется, не везде точно правил лупы. Это было очень заморочно, хорошо что хоть аудиоредактор поддерживал создание и проигрывание этих лупов. А почему нужна была ручная работа с лупами? Потому что энхансер добавил лишние пики в случайных местах, в результате чего лупы все перестали играться чисто. Все нужно было править. Я не могу ручаться, что не накосячил в каких-то местах. Просто представьте, что вам надо больше тысячи семплов вручную править, и тогда поймете степень усталости и возможные места с ошибками.
Но это вообще не имеет никакого отношения к конфликту. Повторюсь, никаких байтов и смещений. Количество отсчетов никак не поменялось - изменилась лишь разрядность. Это у вас может появиться ошибка, из-за добавления лишних отсчетов и аппроксимации, дающая щелчки. Я же, когда работал с банком, вообще ничего не знал про про то, что через 16 лет кому-то придет в голову мой банк увеличивать еще в два раза.
PS. Поправка. Выравнивание семпов в банке по DWORD. И еще про частоту дискретизации. Семплы ударных записаны в 22 килогерц, но проигрываются на другой частоте. По этой причине все кажется, что звучит замечательно, и урезанная частота дискретизации не влияет особо на итоговоый тембр. И еще, для оптимизации скорости работы чипа, банк копировался трижды в памяти, с кратным урезанием количества семплов, т.е. некое предварительное ресемплирование в 2 и 4 раза. Качества это не добавляло, и допускаю, из-за этого 724 звучала хуже, чем то что я слышу с софтсинтезатора. Но для тех времен это было отличным решением, экономящее время доступа к памяти через PCI шину.
Trancein
На самом деле, Влад очень грамотный специалист. Никто кроме него не дошел до конца в анализе таблиц. Т.е. теперь с помощью его описания можно строить инструменты в синтезаторе с нуля, начиная от загрузки сэмплов и заканчивая... ну, не знаю, величиной Rate для вибрато, допустим. Т.е. все параметры он определил и описал.
Просто так вышло, что один недосказал, другой недопонял. Вы бы почитали блог от начала, там много чего полезного есть.
Вообще, на мой взгляд это Вам можно было бы больше с ним сотрудничать, чем, например, мне. Я вообще довольно далек от программных средств и систем анализа кодов.
И надо бы уточнить, о каких банках идет речь. Мы рассматривали все имеющиеся в доступности банки. Анализировали от S-YXG50 - оказался ерундой. от XG60. Рассматривали звук от PSR-ок, но нигде нету дампов от них. Остановились на YMF-724, который оказался наиболее качественным по звучанию и по тембрам инструментов.
Рассматривали и Ваш модернизированный банк, который тоже оказался по качеству исполнения не самым лучшим.
Решили пойти путем замены сэмплов и модификации инструментов. Для выполнения служебных операций потребовалось переконвертировать исходный банк в более высокий формат. Да, с этим Влад вообще разобрался в пять минут - просто подобрал нужный алгоритм интерполирования, при котором все поинты сохранились.
Вообще идея пошла от того, что звук у Ямах глухой, без ВЧ. Решили поднять ЧД. Конверченый банк стал звучать с ВЧ.
Из-за 8 битного в старом банке, дабы снизить уровень 8-битного шума инструменты были настроены своеобразно - релизы были короче сэмплов. Мы перенастроили. Точнее научились перенастраивать.
Что и как есть в банке, тут и объяснять нечего - сырой PCM, а вот что проигрывание в софт сэмплере другое, нежели в железном - это так быть не должно, иначе какой же он эмулятор, если не копирует свойства процессора.
Вот за это спасибо.
Вот это, кажется и является предметом возникшей тут дискуссии.
Ступеньки - да, это "разделители", скорее всего.
И в банке да, ЧД у сэмплов были разные, что тоже не есть хорошо.
Trancein, хорошо, ерундой так ерундой. Вот синтезатор с вашим оригинальным банком Extended (22050-16) https://yadi.sk/d/x5-Tn1ph3LB3LF , один в один, бит в бит. В папке Source находятся ваши таблицы с банком, если у вас возникнут сомнения что я что то изменил, то вы можете спокойно их сравнить с вашими оригиналами, и не забудьте это сделать и в tbl файле. Соответственно две таблицы (для барабанов и инструментов) находятся в файле EXTENDED.tbl, а банк остался с оригинальным названием (EXTENDED.YB0). Все остальные таблицы в EXTENDED.tbl взяты из драйвера Ymf 7x4, можете так же их сравнить. Надеюсь вы не станете утверждать что Ymf и эмулятор Ymf Softsynth, с идентичными таблицами и банком, будут по разному проигрывать лупы.
Давайте посмотрим, где же у нас есть нарушения луп регионов, что бы быть более точным, я буду указывать инструмент, и ноту на которой отчётливей этот щелчок слышен, и к тому же если тон довольно высокий, разумеется щелчка как правило в основном не заметно.
Итак :
70sPcOr1, DetPercOr, PercOrgan, PercOrgan2, Puff Organ - от C3 и выше
Rock organ - E4 и +-
Rotary organ - A3 и +-
Tango Accordion - Весь
Jazz Guit - Вся
Mello Guit - от D3 и +-
Finger Slap - Весь
Viola - от F4 заметнее всего
YangChin
Orch String 2 - сразу с G3 всё ястно
Tenor Sax - достаточно с C3 послушать и выше
и т.д. , но хочу обратить ещё внимание на то, что некоторые инструменты используют одни и те же семплы, как например первая строка с органами, именно по этому, я специально взял совершенно разные инструменты, которые находятся ниже, что бы конкретно показать пример. Хочу также добавить, что ни в каких других банках от YAMAHA, такого нет, не зависимо откуда он был взят, из софтсинта, или аппаратного драйвера любой версии.
Это все конечно хорошо, но снова возвращаю вас к исходному сообщению:
Вы тут построили теорию на пустом месте, высчитывая то, что на самом деле имеет другую природу. Если откроете семплы в wav редакторе, какой показывает лупы, и начнете двигать луп регионы вперед-назад и внимательно слушать щелчки, то куда бы вы не перемещали регионы, будет лишь меняться характер щелчков. Потому что нигде они не начинаются с одного и того же уровня.
Далее, если какие-то щелчки и проявились на каких-то особых частотах, то так и должно быть. Но природа тут не в байтах и смещениях, а в том, что Extended банк, насколько я помню, делался еще на конвертере первой версии, где вообще лупы не менялись нигде.
Trancein
Не совсем так. Про ноль забыли. Вообще, правильней будет стыки выставлять по максимуму основного периода, хотя и не всегда помогает. Если смещена фаза, то бесполезно.
Дополнение.
Правильный Extended банк, в котором я редактировал лупы, имеет размер 6669 килобайт. Он в полтора раза больше по размеру. Его дата создания 14.01.2002. По сети должны гулять разные версии банков. То, что я писал про редактирование лупов, относилось именно к этой версии. Вы отконвертировали старую версию. Если же качали ее с офиц сайта, то это была видимо моя ошибка, что я выложил старую версию.
Alexys, нулей достичь невозможно без изменения тембра (правки группы отсчетов, чтобы подобрать их друг к другу). На 8 бит, конечно, проще подогнать, там ошибка больше.
Trancein, хотите начать всё с начала ? не надоело ещё. Я уже описал природу этой случайной ошибки, вернитесь немного назад и почитайте её происхождение. Все люди совершают ошибки, абсолютно !
Также хочу вам кое что напомнить :
Также хотел сказать, дебаггер ни какого отношения к созданию и редактированию банка не имеет, я им пользуюсь только для изучения движка, всё таблицы синтезатора, т.е. весь tbl файл, я рассчитал в HEX редакторе, и отформатировал его в блокноте, там же и остальное доделал. Калькулятором пользуюсь только в качестве конвертера с дес. в шесн. представление, т.е. положение указателей на семплы и положение регионов согласно банку, с редактора копирую в калькулятор, перевожу в HEX, а после копирую результат в таблички которые имеют текстовой формат, далее копирую результат в конец нужной таблицы (ударные или инструменты), и привязываю к синтезатору новый инструмент, или заменённый.
Как на счёт того чтобы взглянуть на Правильный Extended банк, который имеет размер 6669 килобайт ? дадите посмотреть ?
Extended банк я качал с официального сайта, и Dance от туда же. Если надумаете поделится правильным Extended банком, я сделаю два синта, один оригиналом, а второй можно попробовать разными способами в 44100 сконвертировать, что бы постараться сохранить луп регионы без нарушений.
Wlad, да смысла в этом нет никакого. Ваш интерполированный банк по качеству должен быть все-равно лучше, хотя бы потому, что тембры не изменены моими «улучшайзерами». Да и сами можете сделать такой, если хотите, распаковав банк 724 в PowerYMF, получив вавки, в которых есть луп регионы и данные для семплеров (питч и т.п. параметры). Чистите после своей интерполяцией, правите лупы, где надо, или даже полностью подменяете семплы, потом пакуете обратно, получая банк для 724, выдираете таблицы, переносите обратно все в формат софтсинтезатора. Но сразу предупреждаю, что собиратель банка обратно упрощенный, он не учитывал то, что куча семплов там в банке одинаковые. Мы их распаковывали в отдельные вавки, а фирменный банк упакован так, что дублей нет. Вот и поэтому размер увеличился примерно в полтора раза.
Я просил конвертор, чтобы получить Dance Bank, в котором у меня свои MIDI сделаны. Чтобы пересвести заново. Никому другому он вряд ли нужен. Случайно на эту тему набрел, я искал ямаховский софтсинтезатор для этого проекта, потому что считал, что звучание 724 утеряно на всегда и нет смысла искать эмуляторы. А тут вы как раз обсуждали банк с 724.
На счёт дубляжа это я уже давно выяснил, правда в начале не мог понять почему так происходит, распаковываешь семплы, а после запаковки банк становился больше, делал разные выводы, но со временем просто догадался в чём дело (я даже здесь в блоге как то упоминал об этом). Как на мой взгляд, это по сути даже правильней будет, если редактировать или создавать новый банк, т.к. в родном всё перемешано в кашу (имеются с разных мест ссылки на один и тот же семпл), а в этом случае пусть лучше семплы дублируется и размер немного больше будет, за то порядок можно навести в банке. Но к сожалению этот метод очень сложный и не удобный, а тот метод к которому я привык, на много проще и удобней всё делать (как нибудь опишу), к тому же у меня уже всё подписано по именам, просто беру несколько конфигов (из которых состоит таблица) из которых состоит инструмент, и которые всегда идут по порядку, перевожу за несколько минут эти указатели и регионы с HEX в дес., и просто копирую их в редактор (Audition) в то место где вставляется цифра положение курсора, и на этих местах ставлю маркеры, в общем за несколько минут согласно табличкам ставлю маркеры с именами (указатели и регионы) на нужных мне семплах в банке, вот и всё.
Конвертер у меня написан в эмуляторе старого компьютера Вектор-06ц, на Ассемблере, который пересчитывает указатели на семплы, регионы, и конвертирует формат таблиц, т.к. они у меня теперь после модификации движка имеют немного другой формат, т.е. расширены.
Вот пример одного старого конфига из таблички инструментов, и нового :
остальное я всё делал в ручную, если вам нужен Dance Bank (не интерполированный) оригиналом как он у вас есть, т.е. 22050-16бит я могу этот синт вам сделать, это не сложно, или я что то не так понял ?, т.е. какой именно вас конвертер интересует ? (т.е. что он должен делать)
А причём здесь чётное/нечётное дискретных точек?
Если банк был апсемплирован "целиком" из непрерывного звукового файла, то не удивляйтесь, откуда взялись щелчки:
Перед маркером (конца цикл-региона или перед Старт-маркером) алгоритм апсемплирования решает, что нужно "добавить" новую точку, со значением между пердыдущей И СЛЕДУЮЩЕЙ точкой, стоящей ЗА МАРКЕРОМ, т.е. за пределами цикл-региона, а не его начала! Алгоритму пофиг, что этот регион синтезатором будет повторяться, он просто "подгоняет" значение новой пары байт к значению следующей пары байт, даже если они находятся за пределами цикл-региона! А сама пара байт (dword, т.к. 16 бит) помещается ПЕРЕД концом цикл-региона.
Сами маркеры никуда не сместились, только "лишняя пара байт" перед этими маркерами оказывается нелогичной по отношению к началу данного цикл-региона. Если какой-либо зацикленный сэмпл заканчивается не на 0, а где-нибудь в пределах -0.6, или +0.7, а следующий "сэмпл" начинается с нуля, то не удивляйтесь, что "в предпоследнем" кратковременно еле-заметно пропадает звук. Или наоборот, какой-либо сэмпл закончился на 0, а следующий начинается на +0.6, то "в предпоследнем" сэмлпе, когда он "затухнет", появится "микрощелчок".
Зачем вы возитесь с этим 22050? Оригинального звучания даже и близко не будет. Оставили б всё как есть... Всё-таки правильно ямаха поступила, что прикрутила обработку в реальном времени.
Насчёт sfz, я тоже думал, что это "недоделаный sf2", до тех пор, пока не увидел редактор sfZed. Скриншот (позже будет удалён)
В скрин вместил меню «Opcodes» и окно импорта sf2 (правда попадались "патчи", при которых возникало Access Violation at address...)
Можно ли как-нибудь эти "операционные коды" привинтить к ямахе? К примеру, таблицу для ударных, где указывается "сэмпл", "питч", значения фильтра, резонанса, панорамы, уровня, посыла на эффект... Ладно, это была просто попытка объединить sf2, sfZ и ямаху в одну кучу...
«G~Lí†ch»
Тоже непрально говорите. Причем здесь непрерывность файла ? Прерывистых данных не бывает, иначе это уже разные файлы.
Маркеры вообще не относятся к звуковым данным - это такие же ссылки на какие-то сэмплы, так же ка и в остальных структурах данных. Т.е. когда обрабатываются данные звука, то обработчик даже и не предполагает, что какие-то сэмплы уже указаны, где-то там, для чего-то.
Насчет 22кГц - никто и не возится. С чего Вы взяли ? Всё - щелчки, не щелчки, сэмплы, лупы, регионы, маркеры уже все давно решено и сделано. Мы просто сделали "обработку в реальном времени" в режиме offline и всё ! Те же самые звуки уже обработаны, как Вы хотите. Если б этих карточек валялось кучами, то конечно, не надо было бы ничего делать - ставь, да и все. Даже проще. Поэтому тут лучше пойти более сложным путем.
И вот разговоры об SF2 уже лишние тут. Сказано же, что ничего этого не будет. По крайней мере сейчас. Да и какой смысл, если все параметры этого формата полностью соблюдаются в таблицах настроек.
Вообще не понятен этот разговор о сторонних пакетах. Ямаха читает "сырой PCM" и таблицы настроек инструментов прилагаются в отдельном файле.
SF2 содержит В СЕБЕ все это - и сэмплы, и настройки.
Причем настройки совершенно одинаковые - Root note, Velocity, Loop Points, Sample Region, Layers, Pitch tone, Pitch fine, Instrument Volume, Instrument Pan и прочее, прочее. Могут быть Filter Cutoff, Filter Reso, Tremolo, Vibrato и также прочее в зависимости от "читалки" SF2.
Какой тогда смысл "прикручивать" SF2-пакеты к Ямахе, если все это уже есть ?
Было бы целесообразней распотрошить пакеты получше и выложить сведения здесь, чтоб можно было на их основе собрать такие же инструменты в Ямахе.