Программный 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.
Trancein, добро пожаловать! По поводу табличек с описанием всех семплов достаточно подробно отписывался Wlad, посмотрите в районе этого комментария разговор. Также в yamaha_syxg50_tbl_exploded.7z вы можете найти небольшой скрипт для разборки маленького tbl-файла (с параметрами инструментов) на блоки данных, из которых он состоит. Я хотел сделать более детальную разборку этого файла и файла семплов, представление их в виде FASM-файла для возможности удобного редактирования и последующей сборки, но пока что совсем нет времени этим заниматься (занят по другим задачам). Так что если вы сделаете свой инструмент для этих целей — это будет просто замечательно.
VEG, обещать ничего не могу, у самого со временем туго. Случайно наткнулся на обсуждения и увидел про 7x4. Наверное, указанных ссылок будет достаточно.
Немного кишков из нашего кода (может быть, кто-нибудь быстрее сделает конвертор wav):
Вот еще недостающие макросы:
Wlad, и так я выяснил какая минимаольная версия XP подходит XP SP2 для 1.0.3.
Доброго вам времени суток Андрей Ревво, как же приятно видеть вас здесь, по сути первопроходца в изучении синтезатора YAMAHA. Что касается Dance Bank и Extended банков, я решил сделать их специально для вас в знак уважения, конвертировав их сразу в 44100-16bit, Dance bank - https://yadi.sk/d/Xfe637Tj3KkZy8 и Extended bank - https://yadi.sk/d/NNpBCCgE3Kka3X правда извините что поправлю вас, но у вас банки не 44100-16, а 22050-16 (всё же столько времени прошло). В 44100-16, я конвертировал в редакторе Wavosaur (http://www.wavosaur.com/), с применением интерполяции Polynome 2nd degrees (в меню Process\Rasample), это единственный пока известный способ, который идеально подошёл для конвертирования всего банка, и при этом не нарушив ни одного луп региона в инструментах, также в папках этих синтезаторов, я вложил по два Wav файла, один oreg, ваш банк один в один, только заголовок прикручен через Awave Studio, а второй 44100, который конвертирован с 22050 в 44100 с применением Polynome 2nd degrees интерполяции. Если захотите конвертировать банк другим методом, то после конвертации oreg в 44100, нужно у полученного Wav файла (44100-16) отрезать заголовок, а потом при помощи любого редактора ресурсов, в DLL заменить данные в YMF-724-SMP (в RC Data), и всё. Если вдруг понадобится вам Vsti с внешними банками, я могу вам их сделать, это быстро, или можно их с DLL вытащить (делал одним DLL для удобства).
Что касается частоты дискретизации банка, то он может быть 44100 и кратные, вот пример синтезатора на основе одного инструмента из одного семпла, который я синтезировал в 176400-16 (для низких октав) Fase SAW - https://yadi.sk/d/ravDuiju3KkeTT и заставил синтезатор с ним работать (Семпл прилагается), а если сделать программу которая разбирает на составляющие банк, а потом собирает, то в таком банке могут находится семплы с разной ч.д. (в железных аналогах так и делается Yamahой). Если вы действительно согласитесь написать такую программу (совместно), которая разбирает и собирает банк на составляющие, можете полностью на меня рассчитывать, не осталось уже таких мест в банке YAMAHA которые мне были бы не известны, и я готов поделится абсолютно всей информацией. В движке синтезатора, я также внёс кое какие изменения, которые расширяют возможности синтезатора, например : счётчики Start и Loop регионов (длина волны) расширил на один байт, т.е. раньше они были двухбайтными FFFFh = 65535кб, а теперь трёхбайтными, и длина теперь = 16777215мб (FFFFFFh), также я расширил и поинтер (указатель на семплы), который раньше был трёхбайтным, и позволял иметь размер банка не более 16мб, а теперь он стал четырёхбайтным, и размер банка может быть размером не более 1,5гб, в общем теперь есть где развернуться, а также перенести или создать свой синтезатор с нуля, чем по сути я сейчас и занимаюсь. Кстати, если интересно, я недавно создал банк для пробы, на основе живого засемплированного рояля (Fazioli Grand), который состоит из 88 семплов (семпл на каждую клавишу). Fazioli Grand - https://yadi.sk/d/S2Da_zOQ3KkegU
Что касается замены звуков, может вы просто уже не помните, но родные банки YAMAHA в формате Unsigned (беззнаковый), а у вас банк Signed (со знаком), т.е. без модификации кода не обойтись (если конечно в драйвере не предусмотрено так, что при переключении в 16бит, семплы читались сразу в Signed). В Vsti, при чтении всегда Unsigned (не важно 8 бит или 16), движок конвертировал его на лету в Signed, из за чего я в начале сильно запутался из за этого (хотя VEG мне неоднократно говорил или 8бит, или 16бит читается семпл, в зависимости от кода в таблице (80h=8bit 00h=16bit)), т.к. Unsigned 16бит я в глаза до этого ни когда не видел, и многие другие тоже (думали что только 8бит такой формат бывает). Также ещё шифрование банка, ведь одно дело вытащить его из памяти (хотя он и там XOR ом шифруется по крайней мере в Vsti (и 2006Le тоже)), другое дело заставить драйвер читать расшифрованный банк, выходит всё же код модифицировать нужно, или всё же у драйверного образца есть такая функция читать не зашифрованный банк ? (где то читал), а так же спросить хотел, где то когда то я читал, что карточки Ymf-7x4 умеют читать вроде DLS или SF2 банки, т.е. есть якобы такая поддержка, но только вроде как не реализована она была, слышали что нибудь по этому поводу ? я почему решил спросить, т.к. вы единственный человек который занимался этими карточками в плотную, и продвинулись дальше всех в этом направлении, и по этому больше у неукого поинтересоваться.
Если быть честным, я и не догадывался, и в мыслях даже не было, что Extended Bank сделан вами в ручную, всё думал каким же таким улучшайзером обработан банк, а оказывается ручным. Кстати, что касается нарушенных луп регионов, то сейчас их исправить гораздо проще, банк открывается одним файлом, и согласно задокументированным таблицам всё это сводится, если нужно, также могу показать как это делается. Общаемся мы с ребятами по поводу синтезатора, и не только, в программе ooVoo (https://www.oovoo.com/download-oovoo), мой ID : wlad0000114 присоединяйтесь.
Wlad, огромное спасибо! Не ожидал такого быстрого результата. Теперь старые MIDI проигрываются правильно. А как именно конвертировалось? У вас уже есть программы для этого?
Насчет написания конвертора, есть идея. Раз вам известно про формат распределения семплов по MIDI нотам, то самый простой способ, чтобы не возиться с редакторами - это распаковать банк в sfz - это wav файлы + текстовый, довольно простой формат. Эти семплы легко и руками менять и в VST редакторах можно отредактировать. Разумеется, количество wav и разбивку семплов изменить будет нельзя, но полностью распаковать в sfz возможно. Это значительно упросит редактирование банков, поскольку VSTi редакторов sfz полно. Но опять же, вынужден сообщить, что времени у меня сейчас совсем мизер, а такие вещи быстро не пишутся.
Правда, не совсем понимаю смысла этого проекта - при наличии секвенсора и VSTi можно писать любую музыку, не прибегая к XG, да и в XG это муторно все - помню как приходилось подбирать звуки в XG редакторе. Если же хочется собрать свой банк для прослушивания чужих MIDI, то у вас годы уйдут, чтобы балансировать звуки. Ведь тут подбирать надо не просто семплы, а чтобы они и между собой уживались. Эта проблема существует и с коммерческими семплами - мало кому удается подобрать даже комплект ударных, чтобы звучало везде хорошо.
Уже до вас делали SF2 GM банки с разной степенью сбалансированности, я помню их десятки перебирал, все были плохи - то там вылезало, то там. Ямаховские банки все же сделаны проф музыкантами, так что, на том что уже есть - а именно на банке от 7x4, можно остановиться. Немного качество хуже, чем при проигрывании MIDI через SF2, но все это легко перевешивается эффектами XG.
Это маркетинговая информация. Просто сам чип аппаратно мог играть DLS, он под это разрабатывался и в даташитах про это писалось. По сути драйвер чипу на вход давал область памяти, в точности соответствующуя wav формату, и он сам его ресемплил в нужную ноту. Там внутри аппаратный семплер, работающий независимо от процессора. Его просто расширили до XG, добавив эффекты. Кстати, когда я купил 724, у меня был Pentium 66. Он не мог играть все эффекты - не хватало скорости процессора, поэтому в настройках драйвера были три галочки, где можно было выключить эффект-процессор частично или полностью. А PowerYMF возникла как - там в реестре было много параметров, где можно было включить заблокированные фичи драйвера. Из заблокировали не от того что захотели спрятать, а просто компы тогда были очень слабыми и чтобы себе техподдержку не забить возвратом карт, они вырубили все жрущие процессор фичи. Все же аппаратный синт, несмотря на свою аппартность, занимал шину данных, деля ее с процессором. От этого комп тормозил. Потенциально они могли туда любой банк всунуть любого размера, но 2-х гигабайтный был компромиссом. Расширенный банк 4 гигабайта уже приводил к проблемам с некоторыми устройствами. Это не маркетинг, а увы, ограничения тех времен.
Еще видел тут в теме вы цитировали мой FAQ, где писалось, что WDM драйвера для карты и XG MIDI не совместимы. Поясню в чем дело. Был ранее формат драйвера VxD - на нем изначально сделали карту. Потом нужна была поддержка новых версий Windows, и по-быстрому драйвера переделали под требования WDM, но по пути что-то потеряли или сломали. И в итоге MIDI проигрывались с щелчками и искажениями. Еще уровень ревера был настолько завышен, что практически ни одну MIDI нельзя было нормально слушать. А звучание 724 на VxD было очень похоже на DB50XG. Только DB50 мутная карточка была. Правда, большая часть всех XG MIDI писалось для нее. Некоторые различия были, но не столь существенные. Лишь некоторые MIDI игрались не очень хорошо на 7x4. Лучшим был DB1000XG, я слышал как он звучит. В те времена это было как сейчас Motif и сравнимые.
В wav редакторе это правилось на раз визуально ползунком, потому что PowerYMF распаковывал все семплы в отдельные wav, в которых были зашиты все нужные параметры лупа. И обратно при редактировании все обратно писалось в банк. Не помню, чем я пользовался, наверное Sound Forge. Единственная проблема - там этих файлов больше тысячи, замучишься искать где какой звук. Приходилось делать специальные мидюшки, где подряд игрались все звуки. Так и искал где какой инструмент. Вручную перебирать все тысячи очень долго, да и еще в банке звуки в перемешку.
В интернете есть относительно неплохо отсемплированная YAMAHA PSR-S900 от KievSamples, там семплы уже посвежее и Стерео -
можно сделать синт, на основе XG движка 724 и звукового банка S900. То, что есть сейчас, S-YXG50 и YMF724, это звук совсем уже старых PSR-ок (1996г), PSR-S900 (2007г) звучит явно лучше, а по сбалансировности и тембрально это Ямаха. В идеале, найти все же дамп, и с более свежей модели.
Возможности движка XG по управлению синтезом достаточно обширны, и если удастся сделать хороший редактор банка, то можно будет создавать синты на основе различных библиотек, в сети есть, например, отсемплированный Кетрон.
Astemir, с точки зрения юзера, понимаю, мидюшки будут звучить с лучшим качеством. Правда изначальный звук распадется, ведь исходники явно не с PSR-S900. Даже чуть один семпл чуть измени и звук будет уже другим, задумка автора развеется другим тембром. Я уже давно XG не смотрел, не в курсе подо что сейчас их делают, если и делают. А в мое время в интернете было сотни а то и тысячи очень качественных XG MIDI, написанных для DB50. Потом появилась масса с YMF7x4. Ценность XG была в том, что написанное в одном месте, почти так же звучало на совместимом устройстве, а весило мизер, что легко качалось через слабый интернет.
А сейчас какой в этом смысл, если уже есть почти честные 16 бит? Если сравнить то, что я слышу с софтового синтезатора YMF7x4 и тем, что у меня сброшенно в wav через SP-DIFF из аппаратной 7x4 - небо и земля по качеству!
С точки зрения создания музыки свои специальные банки, да и еще через MIDI - вещь очень неудобная. Возня с SysEx не сравнится никак с тем что сейчас дает VSTi. Я знаю человека, кто фанател от классической музыки и он сам проигрывал чужие MIDI через VSTi синтезаторы, семплеры и эффекты. Но и эффекты у него были топовые. То что софтсинтезатор синтезирует - это уровень прошлого века. Сейчас ревера, даже бесплатные, - такие, что полное ощущение нахождения в помещении с мельчайшими регулировками и ранних отражений и материала стен и т.п. - это ничто по сравнению с XG-шным, где регулировать то почти и нечего. А еще можно добавлять огромное количество эффектов самых разных, любых, даже используя чужие MIDI, если не писать самому. И не думать, как бы три XG эффекта совместить между собой на всех дорожках. Свобода творчества и качества. Не говорю уже про мультелеерные семплы ударных и фортепиано в несколько гигабайт, какие принципиально невозможны через софтсинтезатор, но легко делаются в VST.
При минимальном знакомстве с секвенсорами и vst, любому сейчас доступно сделать себе flac из любой скаченной мидюшки.
А то что уже отсемплировано - наверняка доступно уже в sfz или в других форматах, не надо даже возиться. Ну ладно, это я слишком много критики навел. Просто не понимаю - очень нишевая область, нужная единицам фанатам, когда рядом практически без труда есть область, дающая больше возможностей и с минимумом труда. А если есть и талант в саунд-дизайне, можно даже заработать под библиотеки пресетов.
Wlad, насколько я помню , YMF-724 поддерживали DLS по средствам Microsoft Synthesizer , что интересно , если слушать демку этого синтезатора по вызову DXDiag и тестировать именно Microsoft Synthesizer - звук там очень даже серьёзный , а вот если использовать Microsoft GS Wavetable Synth - звука там нет никакого )
Trancein, я вообще после Roland SoundCanvas VA почти ничего не слушаю в играх ) ямаха это чисто для совместимости. Я замечал что XG даже среди софтосинтов разный. Чего стоит послушать ямаховскую же композицию SitarXG )
Вот примеры того как может отличаться DLS в двух майковских синтах :
https://yadi.sk/d/3xnfEgk73Kmebx
https://yadi.sk/d/6zcJMrFp3KmeeB
Причём каждая вторая запись это то , через что реально можно слушать , а вот что из себя представляет каждая первая и как её задействовать - без понятия.
Trancein, не за что, этот результат является также и вашей заслугой, и к тому же благодаря вашим работам, мне удалось на ранних стадиях изучения Ymf-724 (S-YXG50) получить некоторую важную информацию касающуюся синта, и прошу меня простить за то, что нагло рылся в коде вашей программе PowerYmf), и выкладывал здесь его модифик, т.к. приходилось собирать информацию по сути с миру по нитке, которой абсолютно ни где нет, и поэтому приходилось идти на разные меры что бы не смотря не на что, добиться желаемой цели, надеюсь вы на меня не держите зла.
Конвертировал я сам банк (Waverom) таким образом, в Wavosaur, открыл оригинал https://yadi.sk/d/b1FawoJW3Ey8pD (dsxgwave 22050-8бит, который расшифровал VEG, и поделился), далее использовал Bit deph converter, но Dithering я не использовал, т.к. никогда им не пользовался, хоть и информации всякой много в нете, но всё же побаивался что нибудь напортить, и из за некоторых сомнений не стал его применять, т.к. разницу в звуке я не заметил. Далее как я уже описал выше, из 22050-16 в 44100-16, я конвертировал с применением интерполяции Polynome 2nd degrees, хотя до этого столько всего перепробовал, но результат не радовал. Если известен какой нибудь более эффективный метод конвертации банка Waverom (особенно из 8-бит в 16), то можно попробовать, это не сложно, я в деле конвертации не профи, возможно даже получится добиться более высокого результата.
Что касается конвертации таблиц, то конвертер я писал на эмуляторе старого компьютера на assemblerе (К580Вм80) Вектор 06ц, там же и конвертировал (отдельно таблицы маленькие), т.к. от среды программирования я очень сильно отстал, писал раньше исключительно COM файлы (8080 и 8086) только на ассемблере, и с этим проблем никогда не испытывал, но после огромного перерыва, теперь толком не могу организовать программу в новой среде, т.к. всё сильно изменилось, и примеров достойных практически не найти, хотя бы на тот же Flat Assembler.
По поводу всего остального, всё опишу буквально на днях, а также как с легкостью можно найти все нужные семплы (выложу таблицы), что бы с лёгкостью подправить луп и т.п., а сейчас к сожалению очень много работы у меня (на трёх работах сейчас), даже нет возможности всё рассказать. Что касается данного проекта, то он нацелен в первую очередь на самоиграйки, т.к. у SF2 напрочь отсутствует функционал в отличие от легко доступных некоторых контроллеров XG, а самоиграйки сейчас довольно достойные можно найти.
Wlad, общий метод повышения разрядности: интерполяция. Указанный метод Polynome 2nd degrees, насколько я понял, это квадратичная интерполяция. Подходит достаточно хорошо, но надо понимать, что могут появиться щелчки, за счет случайного выхода за пределы 0 db. Если это так, то надо опустить общий уровень всех звуков на 0.1...1 db. Либо использовать финальный лимитер, но осторожно, большинство лимитеров окрашивают звучание, что может привести к разбалансировке банка.
Методов же повышения частоты дискретизации может быть множество. В основном, все основывается на том, что появляются ступеньки, какие дают цифровой шум. С точки зрения звука это напоминает жесткое звучание пилы. Т.е., если ничего не предпринимать, то итоговый звук приобретает жесткость.
Чтобы от нее избавиться, проделывается две операции. Сначала фильтрация верхних частот, чтобы срезать пики интерполяции и убрать большую часть цифрового шума. Но если у вас есть инструмент квадратичной интерполяции, то он подойдет вместо фильтра. Если таких методов нет, то достаточно использовать цифровой фильтр с жесткой крутизной спада, крутизну и частоту подбирать на слух. Лучше линейно-фазовые фильтры, чтобы не размыть звук по времени.
Далее надо добавить отсутствующие частоты. Для этого можно использовать плагины добавления гармоник. Лучше разные, потому что под разные звуки подходят разные. Средние частоты не трогать, иначе яркость инструмента вырастет, что повлечет за собой его выделение в миксе из других и несбалансированности.
Самая большая проблема заключается в том, что в банке может быть подмешен шум дитера. Для 8 бит этот шум очень существенный. Я слышал его в выложенных вавках. После повышения разрядности он становится лишь помехой и добавляет грязь в звук. Его можно очистить шумодавами. Но пользоваться этим надо аккуратно, потому что бесплатные и дешевые шумодавы часто резко вырезают частоты, из-за чего звук получается похожим на звук сильно пожатого mp3. Я предпочитаю Voxengo Redunoise. Он стоит недорого и дает возможность подбирать практически любые параметры для разных частот отдельно. Если же шумодавом не пользоваться, то после всех этих операций получится шум в средних частотах, дающий резкое звучание.
Специальные приемы: синтезированные перкуссии изначально делались синтами с использованием белого шума, так что можно этот шум просто подмешать. Еще гармоники можно создать ревером со слышимым хвостом и обрезанными низкими и средними частотами. Получится равномерное полушипение. Но аккуратно, чтобы на разнице ревер не был слышен. Напомню, что цель - добавить недостающие частоты, а не изменить звучание. В целом, ревер может быть неплохим способом получения недостающих гармоник, но пользоваться аккуратно и только в пределах верхних частот.
В целом, звучание должно быть чуть ярче, чем оригинал 8-бит, но не жесткое. И, после всех этих операций надо будет корректировать положение луп-фрагмента. Разумеется, эти методы, если работать с банком целиком, обязательно приведут к изменению лупа и возможных щелчков.
Еще отмечу, что вы экспериментировали с параметрами фильтров CutOff по-умолчанию, и подняли их немного. Делать это не рекомендую. Поскольку в XG очень часто для создания особого звучания это используется, может получиться двойное наложение, в итоге звук будет слишком визжащий. Да и в целом звучание всего получится пластмассовым и приглушенным, мягковатым, несмотря на кажущее повышение верхних частот. Если банк обрабатывать с методами восстановления битности и частоты дискретизации, то лучше все оставить как было.
Вычистил насмерть https://yadi.sk/d/hxJyyrGM3KphQJ можете задействовать часть сэмплов которая пригодна )
Доброго дня.
Как я уже говорил ранее, новый проект нацелен в основном на самоиграйки, очень люблю играть в живую с использованием автоаккомпанемента, поэтому и хочу сделать хороший синт для этого. Сейчас достойных альтернатив нет, если только не рассматривать GM модули, которые быстро приедаются из за ограниченного выбора инструментов, и т.д., а SF2 и DLS даже рассматривать не хочу, т.к. постоянно в этом формате слышу неприятные призвуки, которые появляются при замедлении воспроизведения семпла к примеру на октаву (в Yamahe такого нет), эти же призвуки можно услышать в старом Roland VSC, поэтому и был сделан такой выбор. Что касается написания музыки на нём, то лично мне это не к чему (хотя записывать в хорошем качестве сыгранное конечно иногда буду), я для таких целей использую FL Studio 12, в нём в основном есть всё что нужно, включая добавление новых Vsti. По поводу того что годы уйдут на этот синт, конечно вы правы, да и куда мне торопится, ведь если хочешь хорошую и сбалансированную вещь сделать, в первую очередь то что нужно сделать, так это не торопится, т.к. именно из за этого и получаются самые грубые ошибки (много раз наступал на эти грабли)). Балансировать инструменты я немного научился, однако придётся ещё много над этим работать. Кстати, в самой Yamahе, в конфигах в которых синтезируются готовые инструменты, присутствуют некоторые настройки, которые применяются именно для этого.
К сожалению, пока больше написать не могу, из за сильного ограничения по времени :(
Wlad, у меня к вам просьба так сказать от лица всех old-games-ов )
С тех пор как вышел SCVA 1.0.6 который облачный - он загружается СУЩЕСТВЕННО быстрее...
НО он НЕ совместим с XP совсем , в то время как SCVA 1.0.3 совместим с XP начиная с SP2.
Будучи автором SynthPack-а я заинтересован в максимальной совместимости с максимальным числом ОС... потому что это означает , что такой SynthPack могут использовать большее число людей. И я вас прошу , вам в Roland Sound Canvas VA уже ломать ничего не надо. Просто добейте версию 1.0.3 до такого же быстрого запуска как 1.0.6 / 1.0.7 / 1.1... я уверен , очень многие вам будут благодарны. Ведь сейчас происходит абсурд , люди ставят x64 версии ОС только потому что SCVA версий 1.0.7 и новее корректно работают только в этих ОС... а это потребность апгрейда , как минимум наращивания памяти. Я понимаю , вам для ускорения запуска 1.0.3 надо неделю или чуть больше , но оно того стоит ) люди вам будут благодарны )
Всех Приветствую !
Trancein, Вы справедливо заметили, что любой ресемплинг - это интерполяция. К счастью, Влад нашел один из методов интерполирования, который идеально подошел для конвертации банка YMF-724. Нет сомнения в том, что именно этот метод был применен для конвертирования этого банка в формат 22050 Гц, 8 бит. Подтверждением этому был тот факт, что байты данных сохранились полностью, т.е. алгоритм прошел "шаг-в-шаг". А этот банк был намеренно ухудшен по качеству, иначе какой смысл ему быть в 22050 Гц, 8 бит, ведь можно было оставить и 44100 Гц, 16 бит - устройство воспроизведения сэмплов не требует большой мощности процессора, не тратит ресурс на пересчет.
Да, ограничениями были малый объем ROM для банка и низкая вычислительная способность процессора.
Конечно, все это компенсировалось с помощью процессора аудиокарты, который как раз и представляет собой устройство воспроизведения со встроенной интерполяцией, где, возможно и был зашит тот самый алгоритм квадратичного интерполирования, отчего и появилась возможность хранить данные в худшем формате.
Насчет балансировки инструментов имеется проблема только в трудности правки байтов в конфигурационных данных. Специальной программы для этого у нас нет в наличии. Как Вы обратили внимание на LP Filter Cutoff - верно, это самая тонкая из всех настроек и поэтому ее нужно настраивать очень скрупулезно. (в старый настройках значение Reso было почти всегда в 10h, т.е. в 16, что составляет, если я не ошибаюсь +18 dB. Хотя, скорее всего ошибаюсь, потому что это очень много. (взято по формуле 20 десятичных логарифмов от 8-ми, потому что 128 и 16 отличаются в 8 раз.)).
При смене сэмплов, Влад старается не выделять тембр при помощи Резонатора ( Reso), в чем я ему помогаю.
YAMAHA User, как появится свободное время, обязательно посмотрю, и постараюсь с этим разобраться, я хоть и редко с этим синтезатором работаю, однако такая долгая загрузка лично меня раздражает (воровство в 15 секунд личной жизни (времени) некомпетентными разработчиками). Интересно, а зарегистрированный VSC VA 1.0.3 также долго регистрацию при запуске проверяет ? (я вроде слышал что такой же долгий старт у синта)
Мной как то были замечены пару областей где вроде было такое, т.е. где то ~0,1дб выше нуля, но я к сожалению не помню, то ли это в эксперименталных банках такое было, то ли в готовом уже где то попадалось, однако щелчков в готовом банке (724) пока замечено не было. Я к сожалению и забыл про это совсем, хорошо что вы об этом заговорили, теперь обязательно всё внимательно перепроверю, и если такое хоть где то обнаружится, то всё переделаю с нуля, и обновлю все три синта в самое ближайшее время, а также опишу как всё сделал.
К счастью Dithering при конвертации банка можно вообще отключить (снять галочку), я так и поступил. Есть ещё при конвертации разрядности одна функция - Process quantization (Квантование), но разницу в звуке что с ней что без неё, абсолютно ни какой не заметил, поэтому не стал использовать.
Не совсем так, контроллеры барабанов Res и Cut в конечном итоге были выставлены все по умолчанию, в синтезаторе для каждого барабана это : CutOff = 7Fh и Reso - 10h, однако некоторые из них были зачем то подрезаны CutOff фильтром (например Snare M), а некоторые мало того что подрезанные CutOff, так ещё и поднят Reso, из за чего был неприятный призвук, и по сути из за этих подрезаний, многие говорили о том что в синтезаторе YAMAHA плохой ударник, однако после того как все барабаны были выставлены по умолчанию (их там не много), многие это сразу заметили и были только положительные отзывы, отрицательного ещё не разу не получал. Заметил я разницу случайно, как то копаясь в S-YXG50 4мб и YMF-724 (если не изменяет память), на одном синте один барабан звучал более или менее приятно, а на другом задушен и отдавал резонансом, мне эта разница не понравилась, и я стал выяснять в чём причина, и обнаружил разные настройки Reso и CutOff в барабанах (это можно легко сравнить, запустить два синта, и по очерди перебрать все барабаны Standart kit). Trancein, если хотите, я вам восстановлю родные значения барабанов, и вы сможете сравнить разницу, только скажите в каком именно синтезаторе это сделать ?.
Wlad,
Значит смотрите какая ерунда получается :
Если поставить SCVA (не VSC-VA) это я просто поправляю потому что VSC это совсем другой продукт и качеством сэмплов никогда не отличался. Он содержал 80-90% сэмплов от SC-55 и то порезаного качества +10-20% уникальных сэмплов от SC-88/SC-88 Pro и тоже сильно порезанного качества.
Так вот SCVA ставится по структуре :
PF\Roland
\Activator
\Sound Canvas VA
В папке Activator лежит следующее дерево :
Adobe AIR (папка)
META-INF (папка)
Activator.exe
ActivatorRoland.swf
mac.swf
mimetype
win.swf
И сам Roland сначала запускает или пытается запустить Activator.exe который проверяет активацию , он вжидает время потому что нужно время на проверку активации и только потом грузится основная часть синтезатора и выгружает Activator.exe. Поскольку в вашей версии этого уже не надо , то надо найти ту часть кода которая всё же тормозит загрузку.
Тут надо добавтьть , что если активировать SCVA через R2R активатор , а затем полность стереть папку Activator - то синт НЕ загружается... но если в VBSEdit скомпилировать пустышку и назвать её activator.exe и положить по пути Program Files\Roland\Activatro - синтезатор будет загружаться с той же задержкой как и сейчас.
Что касается ямах , ВСЕХ от оригинальной до вашей с уже расшифрованным банком... не могли бы вы сделать человеческий уровень громоксти ? Практически всегда приходится делать одно и то же действие , устанавливать уровень грмокости как -5dB. Если вам не трудно , сделайте то что сейчас является значением -5dB значением поумолчанию присвоив ему значение 0dB , а вот значения выше 0 dB расширьте на эти самые 5 dB то есть если кому нужен клиппинг - пожалуйста.
Alexys писал:
Alexys, ещё пару таких выводов и вы станете достойным конкурентом YAMAHA User. Я только хотел немного уточнить некоторые детали. Какие байты сохранились полностью? Те, к которым можно применить правильную интерполяцию от которой "воскресает" невостановимая информация или те, которые можно трактовать как 8 и 16 битные одновременно - главное знать как их правильно считать?
Ну тут понятно, что абсурд. Вы и сами не скрываете своих сомнений. Любопытно откуда цифра 128 взялась?
ooVoo обновилась, как теперь пользоваться непонятно) Alexys, куда там теперь нажимать для переписки? И где история сообщений? АН
DM,
не стоит позволять себе колкости там, где Вы также не уверены в своих знаниях. Вместо того, чтобы спросить нормально, Вы делаете неверные выводы. Если Вы не поняли моих слов, то кто Вам в этом виноват.
Влад действительно наткнулся на нужный алгоритм интерполяции, понимаете ? Это же колоссальная удача, которая избавила от перелопачивания банка в поисках нужных поинтеров, будь то точки циклов или старта.
Какие байты сохранились полностью? Имелись в виду байты, возникшие при ресэмплинге, где увеличивается ЧД и битность в два раза. Как известно, при увеличении ЧД в два раза между двумя соседними отсчетами появится еще один (не два, не три). Это и есть дополнительный сэмпл. А значение этого отсчета увеличивается еще в 256 раз, т.е. оно становится в максимуме 65536.
Так вот появившиеся байты имели такие значения, что точки циклов не изменились ни по длительности, ни по амплитуде.
Те, к которым можно применить правильную интерполяцию от которой "воскресает" невостановимая информация или те, которые можно трактовать как 8 и 16 битные одновременно - главное знать как их правильно считать? Смотря что считать невосстановимой информацией. Если высокочастотные составляющие, то да, они появились. Причем спектр звука сэмплов этого банка стал достаточно приятным на слух.
Трактовать тут ничего не надо, разумеется 8 и 16 бит это разное количество данных. Чем больше данных за один отсчет, тем более точно описание ресурса, будь то звук, картинка или видеоряд. Благодаря алгоритмам сглаживания (интерполирования) можно иметь оптимальное качество ресурса при меньшем количестве данных, т.е. меньшем размере файла.
Вот именно главное - правильно пересчитать !
Ну тут понятно, что абсурд. Вы и сами не скрываете своих сомнений. Любопытно откуда цифра 128 взялась? Почему абсурд ? Я сомневаюсь только в варианте построенного фильтра и системе отсчета, принятой в нем. Или Вам не известно, что уровень резонанса считается в децибелах со знаком + ? А что значений всего 128, Вам тоже не известно ? Нигде в описаниях не сказано, какая система отсчета в фильтре Ямахи, возможно от 0 до +, допустим 12 или 18. Где 0 - 0, 127 - +12dB. Возможно от -12 до +12, где 0 - -12 dB, 63 - 0dB, 127 - +12dB. Для эквалайзера показано 12dB. В любом случае уровень амплитуды при прослушивании увеличивается, если увеличивать значения от 0 до 127. А считать через логарифм... ну, извините, высшая математика.
Просто поражает тот факт, как может человек нахватавшийся верхушек и окончательно в них запутавшись, еще и оценивать кого-то по поводу уверенности в своих знаниях? Не собираюсь вас ни в чем переубеждать, со временем, я думаю, многие ваши заблуждения развеятся. Время оно, знаете, и раны лечит и делает нас умнее. Если, конечно, к этому есть стремление. Не всех, конечно, делает умнее, но будем надеяться, что это не в вашем случае.
DM,
Вам что лекцию по теории фильтров Энного порядка прочитать ? Какие еще верхушки ? Я с этим каждодневно работаю ! Верхушки это у Вас. Лечить Вас, похоже, надо. Или Вы считаете, что цифровые "устройства" работают совершенно иначе, чем аналоговые ? В них есть какое-то чудо, которое делает все как надо ? Да нет, физика рулит в любом случае.
Если есть что сказать по существу - говорите, не стесняйтесь, а то получается односторонний разговор по теме.
DM,
Мне очень жаль , что у вас в кучу и кони и люди и наезды.
Понимаете , я НЕ скрываю что очень многого не знаю... некоторые участники здесь знают намного больше меня , некоторые участники которые здесь чисто теоретически знают больше меня , некоторые сюда заходят просто почтитать , а некоторые заходят с готовностью помочь. Если вы посмотрите , я пишу не в тему уже не так много и если это и делаю , то только если замечаю какой косяк. В основном я очень благодарен VEG-у и WLAD-у за ту работу которую они проделали и делают. К огромному сожаплению , я не могу помочь ни в плане программирования , ни в материальном плане этим людям. Но я всё же отслеживаю изменения и мы обсуждаем как и что меняется. Вы же почему-то чужие ошибки воспринимаете очень агрессивно.
Wlad,
Тут есть такая мысля , возможно не правильная (поправьте если оно так)
И так RAW файлы можно открыть по-разному... можно открыть как 22050/8 , а можно и как 11025/16... так вот мысля в том , что в банке всё таки есть немного шума от 8-и битности... может есть резон расшифрованный банк открыть не как 22050/8 , а как 11025/16 и уже вот отсюда делать интерполяцию ? Что ы получим ? Мы получим чистый звук без грязных сэмплов.
Wlad, я тут копал RAW-ку и пришёл к очень интересному выводу. Из результата работы с этой композицией https://yadi.sk/d/pfaWTjHz3KsfZV , я пришёл к уникальному вывод.
RAW можно открыть либо как 22050/16 либо как 11025/16... скорость чтения сэмплов будет одинаковая , с той разницей что в 11025 будет в два раза меньше ВЧ , но шумовая полка будет в два раза выше. Однако можно обойти и ЭТО ограничение и достать ВЧ до 44100/16.. что надо сделать ? Если идти в лоб , то 22050/8 и 44100/16 отличаются СТРОГО В 4 РАЗА по объёму данных... в два раза по битности и ещё в два раза по сэмплам... вы пошли по методу ресемплирования. Но можно пойти хитрее.
Если открыть ваш файл 22050/8 и сделать из него квадро файл как 22050/8 4 канала - то вы сможете отрыть его как 44100/16 причём и шумовая полка будет малая и и с сэмплами всё будет порядок )
Если вам не трудно , поделитесь именно исходным банком 22050/8 , попробую его улучшить )
Попробовал привести уровень в божеский вид , попробуйте погоняйте https://yadi.sk/d/txgM7Ivn3Ksg5z
Alexys писал:
Кто за что, а Alexys за оскорбления - вынуждая снова меня защищаться. Вот ведь воистину тысячу раз был прав, тот кто придумал афоризм: "если не могут атаковать мысль - атакуют мыслителя". Что, Alexys, захотелось самолюбие потешить? Люди с пониженным уровнем IQ подняли свой мощный праведный голос против аргументов отнюдь не лишенных здравого смысла. Будучи предельно бездарным и деинтеллектуализированным персонажем, вы еще и умудряетесь усугуБЛЯТЬ весь этот набор инфантильности - абсолютно ничем не подкрепленной манией собственного величия. Даже не задумываясь о том, что принижаете IQ блога VEGa, этим своим наивно-псевдоинтеллектуальным флером. И еще вот о чем подумалось: в различных мифологиях существует множество богов. Есть Клио - богиня истории. Есть Афина - богиня мудрости. Но нет богини глупости. Вот за вами, Alexys, стоит именно она.
P.S. VEG, тысячу извинений, т.к. знаю, что вас не особо радуют такого рода посты, но вот вынудили. Думаю, Alexys хватит ума не отвечать на мою защиту.
Принимайте мой вклад : https://yadi.sk/d/cMv9W9m53KstTd в этой версии НЕТ клиппинга совсем при том , что уровень 0dB. Как я это сделал ?
SoundForge 5.0 открыл SMP файл как RAW 44100/16 Signed @ Mono. Сохранил результат там же как Wave 44100/16 Mono , открыл получившийся файл и сохранил как RAW 44100/16 Signed @ Mono. И как видимте никакого клиппинга не осталось , а уровень максимальный.
А здесь https://yadi.sk/d/uq2xNoME3KsvnV практически полностью вычищен 8-и битный шум. Во всяком случаи звучит почти как исходные 16... правда надо бы мааааалость поработать с луп регионами. Они слегка нарушены в некоторых инструментах. Что интересно , общий тембр не пострадал , исчез только шум.
Обнаружил баг который проявляется ИСКЛЮЧИТЕЛЬНО в режиме GS https://yadi.sk/d/kk9gIdJY3KtDM9 , причём баг повторяется и на той версии которая S-YXG50 с TBL банками.
Таки почти чистые 16 бит БЕЗ шума получить я смог. Не хнаю оцените или нет и если оцените , то как именно ) , тем не менее выкладываю )
https://yadi.sk/d/qOa9KIsd3KtUS2 , Влад , если есть огрехи после чистки , подправьте пожалуйста ) в целом банк получился чистейшим )
Так было : https://yadi.sk/i/wO4N9yUs3KtWAA
Так стало : https://yadi.sk/i/sjfsCBME3KtWB3
Wlad, за Roland Sound Canvas VA спасибо большое ) всё как хотел )
Прошу отписать как вам моя работа по вычищение от 8-и битного шума ) я понимаю , что вам теперь придётся чуть-чуть ретушировать луп регионы , но это на мой взгляд лучшее что можно было сделать для улучшения звучания того банка который есть. ВЧ не пострадали , просто исчезли шумы лишние как слышу ) для меня самое трудное было сохранить ударные. Потому что когда я чистил от шума , я сталкивался с такой ерундовиной что исчезали щётки и шепящие звуки.
Wlad
Всё таки после чистки появились небольшие недочёты в Loop регионах. Надеюсь что моя почти суточная работа не пропадёт и вы сможете довести до ума.
YAMAHA User,
> для меня самое трудное было сохранить ударные. Потому что когда я чистил от шума , я сталкивался с такой ерундовиной что исчезали щётки и шепящие звуки
Перкуссии нельзя шумодавить, там самый смысл в верхних частотах.
Я как раз про это и писал - что при шумоподавлении надо подходить к каждому инструменту индивидуально. И не использовать шумодавы, встроенные в бесплатные и даже платные аудио редакторы. У них качество настолько низкое, по сравнению с платными инструментами, что даже и пробовать нет смысла. Так что прошу забить на этот труд, пока нет нормального распаковщика семплов и опыта работы с шумодавами вообще. Да и убить звук очень просто, не имея опыта.
> если хотите, я вам восстановлю родные значения барабанов, и вы сможете сравнить разницу, только скажите в каком именно синтезаторе это сделать
Это можно оценить и на других инструментах. В XG очень активно используются эти фильтры самими музыкантами, особенно если пишется электронная музыка. Возможности сравнить у меня сейчас нет. Идея вот в чем - накачайте разных мидюшек разных стилей (подойдет и мой набор из PYMF) и там сравнивайте, насколько отличается звучание, не отдает ли звуком как из "ведра".
Касаемо дискуссии насчет фильтров и децибелов. Я после XG длительное время искал подобный по звучанию фильтр. Только совсем недавно стали появляться такие же по качеству в VST. Почему я ценил ямаховский? Потому что он не превращал в кашу звук и не имел неприятных призвуков при экстремальных звучаниях. Так что разговоры о децибелах бессмысленны, поскольку звучание одного и того же фильтра может быть совершенно разным в разной реализации. И все зависит от тембра, стиля, вкуса автора. А сколько там конкретно децибел - не важно. В музыке цифры почти ни о чем не говорят - надо слушать.
> К счастью Dithering при конвертации банка можно вообще отключить (снять галочку), я так и поступил.
Я имел ввиду дитер, уже имеющийся в 8-битовом банке. Он должен быть очень хорошо слышимым. А после конвертации в 8 бит можно его добавить или нет - это не играет никакой роли. Потому что это все все-равно ресемплируется, и не самым лучшим семплером, да и еще на основе 8 бит банка, где уже и так все убито, что можно.
> а SF2 и DLS даже рассматривать не хочу
Рассматривайте ASIO + топовые VSTi. Семплы нужны только живых инструментов. И по своременному уровню качества, семплы меньше 100 мегабайт - мусор.
Все-равно вы делаете бессмысленную работу. С тем же успехом вы могли бы собирать семплы для VST семплеров, имея уже все необходимое.
Еще отмечу такой эффект - длительная игра на низкокачесвтенном инструменте типа софтсинтезатора напрочь убивает чувствительность к качеству. Я вот длительное время, пока не купил качественные мониторы, считал, что у меня приличный набор перкуссий. После покупки мониторов 95% всего что у меня было, пришлось выкинуть.
Trancein писал:
Trancein, мне немного неловко перед вами (да и не только перед вами). Подумал, что вот в кои-то веке появился в блоге у VEGа интересный человек, а я тут начал борьбу с глупостью:)). Там ведь фильтры и децибелы, вообще, дело сотое. Первое, что вызывает недоумение (хотя это еще мягко сказано) - это какие-то байты которые сохранились, ну и далее в похожем стиле. Затем человек предлагает прочитать лекцию по фильтрам, одновременно делая такие заявления:
Alexys писал:
Так и хочется спросить у этого человека, а вы слышали про БИХ и КИХ фильтры? А пробовали ли вы программировать КИХ фильтры с достаточно большим затуханием, и пробовали ли вы реализовать это в аналоговой форме?...
Я думаю, что человек просто хотел пообщаться с вами, но не знал под каким предлогом это сделать. Ну так ты напиши просто, что добро пожаловать, приятно когда появляются новые интересные люди и далее какие-то вопросы, если они есть. И ни у кого не было бы никаких претензий... Ну да ладно, давайте про что-нибудь более интересное:).
Trancein, хочу поинтересоваться вы на C/C++ программируете? Паскаль, если я ничего не напутал, вы вроде знаете, подумал, что может и с чем-нибудь другим приходилось иметь дело? И еще хотел спросить: вы ПСР-ки (автоаранжировщики) в своем творчестве используете? Только я программные имею в виду. Спросил так, на всякий случай - вдруг у нас в чем-нибудь интересы пересекутся.
Trancein, в том и дело что нету разницы ) , зато разница есть при понижении тонов некоторых инструментов (нарушение луп регионов). Дело тут в том , что почему я примениш шумодав и довольно качественный (проверил что ещё чуть-чуть подкруути и уже сразу пропадают перкусии) , поскольку был взят за основу банк 22050/8 , то следоательно даже при идеальном апсемплинге звуков с частотой выше 11 КГц там быть не должно... если они есть - это шум от ресемплера. А то , как был распределён шум - даёт понять что ресемплинг был сделапн не качественно. Собственно , я заметил разниу только на одной композиции и понял что надо править луп регионы ) композиция эта в игре Comanche Maximum Overkill если выбрать что-то из Operation Overload миссию Jocker's Wind и в ней сделать аборт то есть автопроигрыш.... так вот в этом случаи если вслушаться в звучание , особенно по окончанию этой как бы траурной композиции - там слышны нарушения луп регионов и я полагаю что это на всех инструментах так сделалось , но не более ) поэтому и выложил на суд результат своей работы. Не понравится - я не заставляю использовать именно это.
Слушайте, DM, я не пытаюсь тут понравиться или не понравится кому-то ! От слова СОВСЕМ ! В отличие от Вас ! Или Вы считаете, что Ваши знания дают Вам право смотреть свысока ? Ну, так мне нетрудно подучиться, если я чего-то не знаю. Или Ваше "P.S. VEG, тысячу извинений, т.к. знаю, что вас не особо радуют такого рода посты, но вот вынудили. Думаю, Alexys хватит ума не отвечать на мою защиту." как-то меня остановит ?
Нет уж, разберемся здесь, раз Вы не захотели перейти в личное общение.
В посте с номером 814 я написал насчет алгоритма интерполяции и фильтров, где сначала отрагировав на фразу Trancein о ресемплинге
где я ответил
Где я ошибся ??? Влад действительно нашел именно тот метод, при котором сохранились loop-points !! Это может говорить только об одном - конверсия банка в 8 битный формат происходила именно этим методом ! Если применить другие методы, то точки сдвигаются и действительно появляются щелчки при прослушивании инструментов. Хочу также подчеркнуть, что сам по себе ресемплинг может происходить и без интерполяции.
Далее на фразу
я ответил
и т.д.
Мы действительно настраивали резонанс очень долго и муторно. Из фразы Trancein не понятно, какой именно банк он смотрел, но мы чаще убавляли значение резонанса, чем прибавляли. Т.е. старались не выделять из спектра какой-либо определенной полосы.
И тут Вы, DM, в посте 817, начинаете стёб по поводу восстановленых байтов и значений децибел, указывая, что у меня пониженый IQ.
Чего непонятно то ? Еще раз повторяю, если взять банк в формате 8-бит 22кГц и переконвертировать его в 16 - 44, то восстановленые (правильней - добавленые) значения байт будут совпадать с теми байтами, которые могли бы быть в исходном банке, который был в 16 - 44. Да, можно взять, копировать файл банка, а потом сравнивать, и как ни странно - да, байты будут совпадать один в один. Но мы то конвертили, тет пропускали через алгоритм преобразования и "мозайка" из точек "loop-points" была такой же, как в исходном.
По поводу значений фильтра вообще странно, неужели я и здесь ошибся ? Цифр там действительно 128, я почти каждую руками пощупал.
Далее в посте 818 пишет Астемир по поводу программы Уву. На что я отвечу, что у меня ВСЁ, на XP больше не тянет !! Но ради нее я семерку ставить не буду !
В посте 819 я отвечаю DM, на что в следующем, 820 посте ответ несет только нравоучительные нотки в формате такого же стёба.
Так вот, DM, не Вы ли первый атаковали "мыслителя" ? Забыли только еще Зевса с Гераклом приписать для пущей пыльности. Я вообще-то Гефеста люблю, а про Прометей фильм делаю. Корабль такой. На "На Пали" лежит.
А уж в посте 826 реверансы вообще зашкаливают - всю пыль собрали шляпой.
Так вот глупости ищите в своей голове, понятно ?
Мы также не виноваты в том, что настраивать инструменты приходится с помощью фильтра, встроенного в инструменты этого синтезатора. Или мы о разных фильтрах говорим ? По крайней мере, я понял, кто о каких фильтрах говорил.
Вот и надо было сразу спрашивать, а не болтовню разводить ! В общую описательную среду не вникал, но фильтры Баттерворта, как частный вид конструировал аналоговыми схемами. Программировать не пробовал, потому что я не программист.
Ну, вот здесь Вы явно перегибаете палочку то. Могу ведь и послать куда-нить подальше.
Таким образом я общения не начинаю. Я заметил, что Trancein делает не совсем корректные замечания и дал свой ответ. Никаких вопросов к нему у меня не было. Еще раз повторюсь, этот синтезатор и иже с ними мне не интересен, но я помогаю Владу тем, что знаю о синтезаторах и звуке.
Вот и писали бы ему в личку !
Alexys,
Это невозможно. Если исходный звук был в формате 44100 Гц и 16 бит, потом его преобразовали в 22050 Гц 8 бит, то по сути из исходного сигнала удалён каждый второй семпл (значение амплитуды в данный отсчёт времени), поскольку частота дискретизации понижена в 2 раза; также в два раза понижена точность значений семплов (с 16 бит до 8 бит), то есть если изначально амплитуда была представлена числом от 0 до 65535, то после уменьшения разрядности вдвое мы получим число от 0 до 255. Младшие 8 бит каждого семпла также будут утеряны. Удалённая информация будет потеряна навсегда. Её невозможно достоверно восстановить в исходном виде никаким методом. Ни удалённые семплы, ни младшие 8 бит оставшихся семплов. Никакая математика не позволит это сделать. Вычислить какие-то новые значения можно — но вероятность того, что все они совпадут с исходными, бесконечно стремится к нулю.
Единственное исключение — это случай, когда 44100/16 на самом деле было получено из 22050/8 (то есть недостающая информация изначально была получена каким-то методом интерполяции), затем это 44100/16 было обратно приведено к 22050/8. После этого можно ожидать, что если мы опять возьмём этот 22050/8, и преобразуем тем же методом обратно в 44100/16, то оно совпадёт с тем 44100/16, которое было получено в первый раз. Потому что исходный звук был в формате 22050/8. И то мы должны использовать такой алгоритм понижения разрядности и частоты дискретизации, чтобы после 22050/8 → 44100/16 → 22050/8 мы получили то же самое, что у нас и было (самый наивный алгоритм с простым отбросом лишней информации даст требуемый результат). Если же исходный звук был в формате 44100/16, вы никаким образом не сможете достоверно восстановить исходные данные из версии в формате 22050/8.
Просто пример. Представим, у нас есть звук в формате 44100/16 (моно). Префикс 0x я использую для представления 16-ричных чисел. Для простоты, будем считать что в нём было всего 4 семпла:
0x5521 0x5458 0x5311 0x5201
Делаем 22050/16:
0x5521 0x5311
Делаем 22050/8:
0x55 0x53
А теперь пытаемся преобразовать это обратно в 22050/16:
0x55=85
85/255=0.3333333333333333
0.3333333333333333*65535=21845
21845=0x5555
Аналогично поступим с семплом 0x53. Получим:
0x5555 0x5353
Дальше преобразуем обратно в 44100/16:
0x5555 - (0x5555 - 0x5353) / 2 = 0x5454 (простейшая интерполяция между 0x5555 и 0x5353).
Итого:
0x5555 0x5454 0x5353
Сравниваем с исходными семплами:
0x5521 0x5458 0x5311 0x5201
Не очень то и похоже.
VEG
А почему не могло быть намеренно создано 22-8 для того, чтобы с помощью алгоритма контроллера делать обратно в 44-16 ?
Ведь всех смущает тот факт, что синт работает в 44-16, а банк у него 22-8. Значит хитрость и состояла в том, чтобы применять какой-то метод восстановления.
Получается, что Влад ошибался ? Почему тогда Loop-points и прочие маркированные места сохранились относительно исходного и, соответственно, не появилось щелчков ?
По сути просто исключение каждого второго байта (или каждого первого) из последовательности. Но ведь ни одна программа не делает ресемплинга совсем без "усреднения". Возможно, только Wavosaur, его не проверял. Но, как раз Wavosaur и дала такой результат, который нашел Влад. Вообще, это похоже на линейную интерполяцию (т.е. без сглаживания), какую позволяет сделать, например MODTracker, будучи модульным сэмплером.
Alexys,
Я бы сказал, что банк там с семплами с разными частотами дискретизации и разрядностями. Я уже писал об этом ранее (касательно банка S-YXG50):
Использовали низкую частоту дискретизации и разрядность потому что память и другие ресурсы компьютеров того времени были сильно ограничены. Дальше видимо это как-то кодом обрабатывали, чтобы оно звучало прилично и не глухо.
VEG,
Даже в этом случаи вы не сможете восстановить даже исходные 22050/8... потому что когда вы даунсемплите из 44100/16 в 22050/8 - вы теряете часть информации.... если предположить , что исходный файл был 22050/8 , то тогда :
22050/8->44100/16 пройдёт без потерь , так же пройдёт без потерь 22050/8->44100/8 , так же пройдёт без потерь 22050/8->22050/16
НО:
Если вы засемплировали 22050/8 в 44100/16 и потом делаете обратное преобразование из 44100/16 в 22050/8 как бы да , вам терять нечего ведь этой информации в 44100/16 нет.
ОДНАКО :
Когда вы это сделаете , вы потеряете ещё раз часть информации. Если есть сомнения , запишите что нибудь в Wav файл 22050/8 и потом проведите ресемплинг 22050/8->44100/16->22050/8 вы увидите , что первый и третий файлы побитно НЕ совпадут ни за что ан свете.
YAMAHA User, я упомянул об этом тут:
Если использовать простейшую целочисленную интерполяцию, которую я показал в своём примере, то после преобразования 22050/8 → 44100/16 → 22050/8 получится тот же результат. В общем, тут всё зависит от алгоритма. Но это редкий частный случай, который следовало упомянуть для полноты картины.
VEG, не получится ) потому что это возможно только в одном случаи :
Вы преобразовываете из 22050/8 в 44100/16 , а затем вы берёте эти 44100/16 , восспроизводите и записываете по линейному входу в те же 22050/8... но вот таким методом врядли кто делает интерпляцию. А все иные методы приводят к потере младших бит и как следствие к ухудшению качества звучания.
YAMAHA User, вы точно понимаете о чём говорите? Если вы возьмёте за исходные семплы 0x55 0x53, и будете их сколь угодно раз преобразовывать 22050/8 → 44100/16 → 22050/8 с использованием простейшего целочисленного алгоритма (пример вычислений я привёл выше), вы всегда будете получать те же значения. Здесь не будет потери информации, потому что при преобразовании 22050/8 → 44100/16 будут добавлены лишь интерполированные данные, которые потом и будут отброшены при преобразовании 44100/16 → 22050/8.
VEG, ну окей ) я сейчас вам пришлю и вы попробуете )
Вот попробуйте погоняйте туда сюда : https://yadi.sk/d/pfaWTjHz3KsfZV , это можно открыть либо как 44100/8 либо как 22050/8 Stereo. Unsigned , попробуйте перегнать её из 22050/8 в 44100 и обратно по вашему меторду. Если первый и третий файлы получатся точной копией как было при открытии RAW-ки как 22050/8 Stereo - рсскажите как это было сделано )
Вот чтоб особо не доказывать : https://yadi.sk/d/J2P2O3Rs3KxgKE
Исходный который orig это файл который получился из RAW с параметрами извлечения 22050/8 Stereo Unsigned , THEME44.wav апсемплинг в WaveSour , делался по схеме сначала повышаем разрядность с 8 до 16 бит , потом повышаем дискретку с 22050 до 44100 , THEME22 - даунсемплинг из полученного апсемплированного файла... делался по схеме : сначала понижаем дискретку с 44100 до 22050 и уже потом понижаем разрядность с 16 до 8 бит. Все операции делались тем же алгоритмом который применял Влад )
А вот так работает качественный ресемплер в Windows 7 https://yadi.sk/d/oiW5RQWV3Kxghz исходный всё тот же 22050/8 , на выходе 48000/16.
YAMAHA User, я не собираюсь специально для вас писать программу, которая реализует именно этот наивный алгоритм. Это будет пустой тратой времени, ибо результат и так очевиден. Тут нет никакой высшей математики. Сразу видно, что при повышении разрядности и частоты дискретизаации оригинальные биты остаются в исходном виде, а недостающие — интерполируются. При обратной операции отбрасываются именно эти сгенерированные биты. Исходные биты не изменяются. Тут в принципе нечего обсуждать.
VEG, Ну вы хотя бы прослушайте что дал Wavesour когда я делал апсемплинг и обратный даунсемплинг ) если разница для вас не заметна , тогда могу сказать что при конверсии из 22050/8 в 44100/16 и обратно - разница колосальная )
Вот смотрите спектрограмы :
WaveSour 2nd Degres https://yadi.sk/i/0Rgh703z3Kxhf8
Windows 7 с обновлённым SRC как в Windfows 8 https://yadi.sk/i/CUJSzHnC3Kxhfi
Как видите , у WaveSour тупо появляется шум которого нет у Windows 7 с новым SRC , а это значит что преобразовывать банк в нём вообще смысла не имело никакого.
YAMAHA User, у меня складывается впечатление, что вы намеренно нарываетесь на грубость, упорно игнорируя написанное.
Я несколько раз упомянул, что это касается не любого алгоритма, а исключительно одного единственного простейшего алгоритма преобразования, который я тут же и описал. Вы, очевидно, используете совсем другой алгоритм.
Если бы читали внимательно комментарии здесь, то увидели бы моё замечание, что Wavosaur изменяет звук даже если просто открыть его и сразу же сохранить, не внося никаких изменений. Скорее всего потому, что эта программа (для простоты обработки) любой загруженный файл хранит в памяти в формате float32, и на преобразовании int16 → float32 → int16 младшие биты у некоторых семплов изменяются.
Сами устроили себе проблему, сами героически её решаете. Я не писал про любой ресемплер. Я привёл конкретный алгоритм и указал, что при использовании именно его при преобразовании 22050/8 → 44100/16 → 22050/8 будут получаться те же данные. Любые другие алгоритмы тут никаким боком, и непонятно, к чему эти ваши 5 копеек про совершенно другие алгоритмы, когда речи про них и близко не шло.
VEG, ну не до такой же степени чтоб при обратном преобразовании возникало слишком много шума ? ) Я просто к тому , что алгоритм 2nd Degres не совсем точен как здесь подуамали ) здесь посчитали , что этим алгоритмом можно гонять туда сюда хоть тысячу раз и всегда будет точннейшее восстановление звука. Но это не так к сожалению.
YAMAHA User,
Я ни разу не писал ничего про алгоритм 2nd Degrees. Вы когда общаетесь с человеком — будьте добры, читайте что он вам пишет и отвечайте на написанное, а не то что вы сами себе придумали.
Вах, сколько уже понаписали !
VEG, отвечаю еще только на Ваш пост 829.
Все верно ! Так вот, если считать через соотношение, где 85/255, то и 21845/65535 будет иметь такое же значение, в данном случае - 0.33333. (Я только не пойму, почему Вы берете 255, а не 256, также как и 65535, а не 65536.)
Странно, но при преобразовании в 16, где я брал 256 и 65536 бит все числа стали
0х5500, 0х5400, 0х5300, 0х5200
Вам не странным тот факт, что значения стали более округленными ?
А если отсчеты 0х5555 и 0х5353 уже заранее известны, то и 0х5454 легко будет найдена.
Может быть такое, что эти числа заранее известны ?
В общем, возможно, что "маркированные точки" расставляли уже для 22-8 формата, отчего и восстановление не дает потерь длительностей и амплитуд.
Yamaha User
Вы говорите совсем не о том. Ну, вообще не касаемо нашего разговора. Хотите толком знать ? Свяжитесь со мной, в чем проблема ? Ругать не буду сильно. Если Вы есть на old-games, то я там под тем же ником. Пожалуйста, не пишите здесь всякой ерунды, забиваете ведь блог своими "экспериментами" !
VEG, я ммел ввиду что здесь Alexys писал про 2nd Degress )
Если я не прав - докажите пожалуйста ) , но я точно знаю что даунсемплить даже тем же алгоритмом которым апсемплили без потерь невозможно. Можно приблизиться к исходному , но не получить исходный.
Alexys, я там есть , сейчас напишу вам )
Alexys,
Потому что это максимальные значения для 8 и 16 битных целых чисел соответственно. 255 делим на 255 — получаем единицу. Затем единицу умножаем на 65535 — и получаем ровно максимально возможное значение для 16-битного числа.
В принципе, все эти умножения не нужны, на самом деле можно просто сделать x << 8 + x (то есть по сути продублировать один байт дважды) и получить тот же результат :)
Ваше изменение алгоритма некорректно. Чтобы это стало очевидно — возьмите 8-битный семпл с максимально возможной амплитудой 0xFF. После преобразования в 16 бит должно получиться максимально возможное 0xFFFF, но выходит:
0xFF=255
255/256=0.99609375
0.99609375*65536=65280
65280=0xFF00
То есть у вас максимально возможная амплитуда внезапно перестала быть таковой, что является ошибкой.
YAMAHA User,
Это верно для большинства алгоритмов, кроме самого наивного, который был описан тут, и о чём я уже наверное в пятый раз пытаюсь вам сказать.
VEG, с этим всё ясно) Напишите лучше скрипт по сборке-разборке звукового банка для Влада, что ли) Ну, пожалуйста))
VEG
Ясно. Я как обычно взял количество значений, а не сами значения.
Astemir, последний раз VEG отвечал на этот вопрос здесь #801. Видимо, не заметили из-за переизбытка бредовых постов:).
А куда вы так торопитесь? Ну, допустим, что VEG сейчас возьмет и быстро сделает, то что обещал и Влад быстро соберет банк. Все равно к этому банку будет много претензий. Он не будет поддерживать весь диапазон MSB, LSB контроллеров (128 x 128 = 16384 банка). Он не будет поддерживать 8-ми леерный режим, а это значит, что про поддержку части моделей Ямах и Коргов - нужно будет забыть. И еще есть претензии к расколотой версии vAranger2 (v 1.16 - по-моему) ограниченный диапазон MSB, LSB контроллеров. А последнию версию vAranger2 вряд ли когда, говорят, расколят. Кстати, Astemir, вот интересно, кто законным путем приобретает vAranger2 - с какими банками/библиотеками они его используют? Ничего не слышали про это? Насколько мне известно, последний vAranger2, по-моему, поддерживает все последние Тайросы и Корги.
DM vAranger2 v 1.16 используют в основном с GM звуковым модулем Ketron, раньше с SD2 (SD4), сейчас с SD1000, дополняют им свои Тайросы. vAranger2 v 1.17 работает с USB-донглом, эмулятор сделать можно, но для этого нужен экземпляр ключа.
Помимо vAranger2, есть аналоги LiveArranger и Live-Styler 10, 11.
LS10 работает стабильно, сохраняет соло пресеты с установками, но редактор стилей недоступен. Это некритично, потому что есть редактор CASM Edit, в котором можно и перемикшировать стиль, и программы сменить, и секцию CASM подправить при необходимости.
Но LS капризный. Там много начинаний у разработчика, много чего напихано, и это иногда мешает и сбивает с толку при настройке его.
НО всё-же он стоит того, чтобы с ним заморочиться на какое-то время.
И нужно убрать галочку эмуляции мегавойсов, это от старых версий LS и может мешать нормальной работе программ чендж.
Уже LS9 и LS10 - это лучшие плэйеры для ямаха стилей, с прекрасно отточенным MIDI движком, с удобным перформером пресетов.
Распознают все (даже самые замороченные) типы аккордов, очень корректно читают CASM.
Вот именно последнее обстоятельство определило мой выбор между vArranger2 и Live-Styler в сторону последнего, даже при том что у меня простаивает Ketron SD4.
vAranger2 - CASM кетроновских стилей не понимает, точнее он по своему интерпретирует эту секцию, что сказывается на звучании.
Ямаха стили vAranger2 пытается адаптировать к модулю SD2 заменяя мегавоисы патернами SD2 в левой - нижней и правой - верхней частях перфомансов.
LS же секцию CASM - в стилях Ямах читает со всеми их тонкостями и нюансами. К тому же есть прекрасный редактор CASM для этих стилей, и библиотеку можно набить под конкретный синт. модуль просто шикарную.
Из звуковых модулей можно еще Yamaha Motif XS или ES взять расширяются картами серии PLG с другими типами синтеза или Roland Integra-7.
Влад, загляни в почту.
Astemir, спасибо за информацию. В этой ветке блога один раз появлялся Сергей Дадашьянц - один из авторов банка Ketron SD-2 для VSampler3. Он тоже положительно отзывался про Live-Styler, правда версию он указывал 15, которая не "расколота". Только вот причем там путь через SF2 - я не понял. SF2 - неплохой формат, который поддерживает многолеерность (максимально 127, по-моему), но, к сожалению, у него тоже проблемы с полным диапазоном MSB, LSB контроллеров (128 x 128 = 16384 банка).
Astemir, давайте вместе прикинем, что нам не хватает для "полного счастья":)? Вот допустим, мы с вами захотели чтобы у нас была возможность работать со стилями любого Тайроса, Корга, Роланда и Кетрона. По-моему, для этого нужны Live-Styler 15, Varranger2 v.1.17 ну и про звуковой модуль я уже писал. Меня интересует ваше мнение на этот счет. Вдруг я что-то упустил из виду или недоразобрался.