Автор Тема: обсуждение конвертерa музыки для Dune MIDI2DUNE [SMD]  (Прочитано 16625 раз)

0 Пользователей и 4 Гостей просматривают эту тему.

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
обсуждение конвертерa музыки для Dune MIDI2DUNE [SMD]
« Ответ #60 : 28 Октябрь 2016, 08:06:20 »
кароче не стал ничо переделывать... тупо добавил перерасчет длительности ноты. конечно это не четко теперь, как оно должно быть - но я вообще хоть что-то хоть раз делал правильно? :))) кароче для меня колхозника пойдет :)

значит проигрыватель теперь:
играет FM дорожки, за исключением некой специфической приблуды с 3 каналом. я даже думать об этом не хочу.
играет сэмплы. правда в одном моменте опять таки не совсем верно - с гномьими голосами, но это я думаю сделаю.
играет с динамическим перераспределением каналов PSG, но я где-то в массивах посадил косяк... и порой программа вылетает посреди песни :)

для проигрывателя значит осталось из нужного это динамическое перераспределение FM каналов, чтоб как в GEMS было. а то пока не играет аккорды (будучи в одной дорожке - пример в лунной сонате) и играет только 6 первых дорожек, игнорируя 7 и далее. но первоначально найти бы где косяк с массивами для PSG... где я там напортачил - ума не приложу...

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
обсуждение конвертерa музыки для Dune MIDI2DUNE [SMD]
« Ответ #61 : 30 Октябрь 2016, 15:58:27 »
кароче проигрыватель не получается... где-то косяк, а вот где - черт знает... его можно очень явно услышать в 004 треке. левый тудум... почему не звучит как надо - не понятно. уже и громкость и LFO крутил и даже сраный режим работы для 3 канала добавил - нифига... все равно тудум и все тут.
« Последнее редактирование: 05 Декабрь 2016, 23:39:46 от SeregaZ »

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
обсуждение конвертерa музыки для Dune MIDI2DUNE [SMD]
« Ответ #62 : 01 Ноябрь 2016, 21:20:29 »
нашелся косяк :) был скурен и обсмеян :) в итоге проигрыватель процентов на 70 звучит, как если бы мелодия в эмуляторе играла. динамические перераспределение каналов делать наверное небуду... накой оно если проигрыватель нужен был просто чтоб знать где какая мелодия лежит ну и может предпрослушка какая-то худо бедная... особенно соник танк стал стрелять ближе к оригиналу :) так что были еще дополнительно раздуплены парочка нюансов по GEMS - по модуляции.

теперь надо это все собрать воедино, чтоб то что уже сделано засунуть в одну программу и начать допиливать эти знания по модуляции и PSG инструментам к VGM конвертеру.

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
обсуждение конвертерa музыки для Dune MIDI2DUNE [SMD]
« Ответ #63 : 11 Ноябрь 2016, 11:03:57 »
мдем... опять затык и что-то я даже без идей. как родить алгоритм определения значений для PSG инструмента? :)))) вручную то я могу на глаз примерно выставить... но как программу научить это делать? :) учитывая что в любой момент нота может оборваться и до конца не доиграть, а так-же что сам инструмент может поменяться в течении проигрывания...


Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
обсуждение конвертерa музыки для Dune MIDI2DUNE [SMD]
« Ответ #64 : 05 Декабрь 2016, 16:19:05 »
эм... ранее предполагалось что запись идет со стереомикса. но тут я полагаю надо переключатель запилить? чтоб можно было выбрать микрофон или стереомикс для записи выбирать? просто это было так давно... что теперь понадобится целое исследование своего собственного кода чтоб разобраться. у меня так постоянно... беру старую какую-то работу, сижу разбираю и удивляюсь: это я написал? да я гений! :) что самое интересное второй раз врубится получается не всегда... видимо с годами тупею. а блин это еще нужна будет громкость для записи... так что еще куча неучтенных нюансов - всё надо проработать. и один фиг будет глючить :))))

****

а эта семплопанелька здорово продвинулась. даже попутно один зловредный вылет программы поборол :) правда не смог покамись решить красивый перерасчет длинны сразу, как только зеленые границы сэмпла мышкой таскаешь... перерасчитывает только после того, как хотя бы один раз плей нажать. что несколько будет не удобно :( так-же сэмплы на максимальной частоте в 10400 ограничены размером в 65535 килобайт, то есть 65535 / 10400 = 6.3 секунды. переключатель частоты на более низкую, а следовательно увеличение длительности сэмпла - делать будет дофига делов однако...

болванка в принципе готова... точнее процентов так на 80. завтра послезавтра наверное буду её пришивать к главному проекту.

п.с.: а у нас лупит дождь :) казалось были морозы и снег хорошо выпал - думал до нового года уже не растает и в коем то веке будет новый год со снегом - фиг там. тает и вот дождем еще все дотает окончательно... опять новый год в грязюке будет походу :)

***

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

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

***

уже собирал все в кучу... и на тебе. вылез очередной косяк в совершенно неожиданном месте. GEMS работает с нотами от $0284 до $04BF, а песня джокера подсовывает мне всякую пургу типа: $0721 и $01C8. ишак нюхал этого джокера... настроение чот упало.


***

кароче пока-что работает только перезапись сэмплов.

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

Добавлено позже:
список чего недоделано:
корректное определение сэмплов
PSG инструменты
PSG ноты
эффект слайдов (треки RRR например)
изменение темпа сейчас происходит через жопу. надо 2 раза пересохранять одно и то-же.
FM ноты, лежащие в не пределов нот 0 октавы убивают программу напрочь. (песня Джокера например)

посему VGM конвертацией лучше не пользоваться.


помогло бы решить эти проблемы создание самодельного гаджета для программы, где была бы страница в клетку и ноты в виде прямоугольников, как в Сонаре - миди редакторе. там вручную можно было бы допиливать трек, где автоматика слажала. так-же это был бы полноценный GEMS треккер. но мечты мечты... программирование, чувствую, не мое :)
« Последнее редактирование: 26 Декабрь 2016, 01:05:40 от SeregaZ »

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
обсуждение конвертерa музыки для Dune MIDI2DUNE [SMD]
« Ответ #65 : 11 Декабрь 2016, 15:31:48 »
планы на будущее обновление:
1. поправить ту ошибку о ins файле (в принципе в исходниках уже готово)
2. увеличить размер окна редактирования сэмпла. это позволит более мелким шагом двигать границы сэмпла. сейчас это чуть ли не килобайт чтоль... 1 килобайт на 1 пиксель. что очень много для таких мелких файлов.
3. сделать мини GEMS треккер для создания SFX типов звуков. то есть не мелодия, а SFX - спецэффекты - звуки выстрела там или еще чего. там занимается обычно всего 1 канал, поскольку предполагается что играет мелодия, а следовательно эти SFX не могут использовать все каналы, а только 1-2, чтобы у мелодии не съедались ноты. (пока-что собираю информацию у буржуев на тему как создать такое окно, как в Sonar - где можно было бы ноты таскать в екселевской таблице и менять как размер ноты, так и высоту. ну и если все получится, то будет даже не мини, а полноценный GEMS треккер. и видимо нужно будет создать функционал по тестированию и редактированию FM инструментов, как у Shiru в его VGM Music Maker'e. кстати он очень помог с прототипом PSG ядра, которое потом буржуйский товарищ wilbert помог конвертануть в мой недоязык, причем по моей просьбе им там было навешено дофига дополнительного функционала для ядра :) вышел просто эпический шедевр! что сделало возможным проигрывать все звуки выстрелов в редакторе, а так-же полноценно проигрывать мелодии.)
4. редактирование таблицы звуков. чтобы можно было новосозданный SFX записать в свободный слот из 99, а после указать его номер в таблице звуков, для организации последующего использования где-либо. например создание звукового оформления при выборе сардукаров или фрименов.

допиливание VGM и MIDI конвертирования пока будет отложено. сначала GEMS треккер. потом будет гораздо проще накладывать содержимое вгмок и мидишек на эту екселевскую таблицу треккера, что причем здорово поможет решить проблему со слайдами. создание же PSG инструментов видимо придется оставить на совесть самого пользователя. придумать автоматический алгоритм - пока даже не представляю как :) так-же видимо нужна будет отдельная кнопка "выборка для сэмплов". чтобы там можно было бы указывать паузу, которая будет маячить программе что типа один сэмпл тут закончился, а тут начался второй. сейчас там кошмар и ужас творится с определением сэмплов :)

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
обсуждение конвертерa музыки для Dune MIDI2DUNE [SMD]
« Ответ #66 : 13 Декабрь 2016, 19:23:26 »
мдем... ох и не легкая эта работа... тащить велосипед из болота. точнее изобретать велосипед :) взял буржуйский пример екселеподобной таблицы и заставляю её петь. с этими буржуями вообще анекдот... когда только начал работать над PSG - нашел какой-то там затухлый генератор тонов и подсунул ему в качестве входящих параметров VGM файл :) теперь вот ексель таблица поющая... но пока не очень получается... эх...


Оффлайн M3tro ™

  • Пользователь
  • Сообщений: 698
  • Пол: Мужской
  • I’m not afraid, and yall don’t be afraid either…
    • Facebook
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
[SMD] Koнвертер музыки для Dune MIDI2GEMS
« Ответ #67 : 15 Декабрь 2016, 08:56:52 »
2. увеличить размер окна редактирования сэмпла. это позволит более мелким шагом двигать границы сэмпла. сейчас это чуть ли не килобайт чтоль... 1 килобайт на 1 пиксель. что очень много для таких мелких файлов.
Так ведь необязательно само окно принудительно увеличивать до определённых статичных размеров. Можно же, я думаю, сделать это типа как, например, в Sony Vegas Pro, наведя курсор на окно с видео- и аудио-дорожками, крутишь колёсико, и меняется масштаб, так же оно вроде делается и в Audacity.

3. сделать мини GEMS треккер для создания SFX типов звуков.
3aдумка хороша =). Но с этим пунктом можешь сильно не торопиться, ибо на данный момент существует хороший метод от Razor.

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
обсуждение конвертерa музыки для Dune MIDI2DUNE [SMD]
« Ответ #68 : 15 Декабрь 2016, 15:33:09 »
конечно можно масштаб увеличить... добавив мне геморроя перелопачиванием сто тысяч строк кода :)))) тут я изобретал велосипед. готового окна с такими параметрами чтоб можно было левый и правый края таскать - нет. даже на нашем форуме по программированию ничего подсказать не смогли. пришлось все целиком выдумывать. сам удивляюсь что работает. однако все-таки шаг надо сделать "помягче", минимальной кровью это можно будет сделать увеличив размер окна и тогда один пиксель это будет не 1 килобайт скажем, а 500 байт.

мануал конечно хороший... однако редактор сэмплов почти все это делает автоматически :) нужно только добавить редактирование таблицы звуков, о которой кстати не сказано в мануале, а так-же возможность сохранить в пустую папку. размер 10500 меня тоже смущает. вроде согласно таблице там 10400 должно быть. плюс еще нюансы про файл инструмента, который ins. так что не все так однозначно :) да и треккер будет не столько для сэмплов, сколько можно будет использовать FM звуки. как этот мануал поможет подправить звук соник танка скажем? даже скажу больше - можно будет вставлять звуки выстрелов или еще какие эффекты из любой SMD игры. ну хорошо... практически из любой :) помня то сраное ограничение нот... но и там я думаю можно будет немного повышать тон и будет чуть чуть повыше, но в общем звук будет примерно тот-же.

***

вроде баги, где программа живет своей жизнью, отловил :) теперь надо со сроллбаром разобраться. после разобраться с шириной и длинной ячеек. по идее в окончательном варианте они должны быть раза в 2-3 тоньше наверное. и после нарисовать пианино слева.
« Последнее редактирование: 15 Декабрь 2016, 18:50:04 от SeregaZ »

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
обсуждение конвертерa музыки для Dune MIDI2DUNE [SMD]
« Ответ #69 : 17 Декабрь 2016, 17:23:13 »
чото ваще тоска... на дачу залезли... в очередной раз, почти добравшись до сокровищницы в гараже. надо вывозить срочно богатства. компьютер погнал... поставил танки чтоб новогоднюю халяву в виде прем танка 2 левела захапать, заблускринила видеокарта... стерва... вроде менял там конденсатор вздувшийся.. чо она еще хочет? кароче ваще душа не лежала программить. но вроде седня добил функционал редактирования положения нот на страничке в клетку. так что кому не лень - потестируйте :) особна интересует как поведет себя перемещение нот и увеличение длительности на всяких виндах 7 и 8 и 10. сейчас тут временно миди прикручено... поэтому на сам звук не обращать внимания. только само окошко тестить. двойной клик - ноту нарисовать. на ней-же двойной - удалить. передняя часть ноты - курсор поменяется - перемещение ноты, задняя часть ноты - курсор изменится - увеличение длительности. ноты не должны перекрывать друг друга и система должна стопорить мышку, до того как нота напорется на новую ноту. вот эту систему я отлаживал - чтоб без наложения было.

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

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
Re: обсуждение конвертерa музыки для Dune MIDI2DUNE [SMD]
« Ответ #70 : 26 Декабрь 2016, 01:08:29 »
треккер пока не готов, тут я эксперементировал с совмещением звука и картинки. попутно парочка косяков были выловлены... особенно говнянской была проблема, что путь каждый раз просило указать. это все Друпий виноват :) буржуйский товарищ, который библиотеку дополнительную для моего недоязыка создавал. вот он там бывает порет косяки...

программа чрезмерно раздулась в размере. раза в три. из-за песни блин...
« Последнее редактирование: 26 Декабрь 2016, 01:16:10 от SeregaZ »

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
обсуждение конвертерa музыки для Dune MIDI2DUNE [SMD]
« Ответ #71 : 30 Декабрь 2016, 15:26:21 »
ментатов вроде моргать научил, без передергивания картинки :) в "о программе" был отловлен косяк, из-за которого мелодия не стартовала и титры шли в тишине. вот набросал примерную болванку редактора FM инструментов. будет вызываться так-же, как сейчас меню сэмплов вызывается - правой на треках.



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

так-же инструменты будут доступны для редактирования и сохранения как из списка в правой части программы - это те инструменты, которые будут в треке. либо через меню - там планируется что можно будет загрузить как raw файл инструмента из любой другой папки, так и vgi файл - файл инструмента для VGM MM. y12, или как там правильно - тот дамп инструмента, что создает эмулятор KMOD - загрузить не сможет. я пока не в курсе какая там структура в этом файле дампа. бегло смотрел и чото там дофига размер файла. в подобном случае можно будет через жопу сделать - загрузить этот файл дампа в VGM MM, в нем же пересохранить как VGI - и его уже загрузить в редактор :)

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

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
обсуждение конвертерa музыки для Dune MIDI2DUNE [SMD]
« Ответ #72 : 03 Январь 2017, 17:00:43 »
прикрутил к FM редактору инструментов возможность загружать .y12 и .tfi виды инструментов... но... как оказалось .y12 не содержит информации о LFO, LFO Value, Ch3Mode, AMS, FMS, key on, а .tfi докучи еще не содержит AM.

в итоге эти инструменты будут звучать не совсем верно, а в плане упереть саунд эффект какого-то выстрела - вообще труба, так как многие эффекты юзают как раз Ch3Mode параметр. что самое интересное большинство параметров KMOD показывает, но почему не экспортит... хотя Ch3Mode даже и не показывает - там не видать значений. видимо осталось недоделанным так и висит с тех пор. ресурсы KMOD - 404, да впрочем я бы там и не смог бы ничего сделать - язык то другой совсем. сайт KMOD - 404, а я так хотел там зарегатся и покомпосировать мозг кому-нибудь :)

в итоге раз эти виды инструментов такие калеки и не содержат полную инфу, что надо для GEMS инструмента, то видимо придется использовать GYM логи. проблема заключается еще в том, что сам по себе этот GYM содержит кучу информации и найти там концы будет проблематично - так еще и некоторые игры не имеют возможности играть звуки в опциях. типа опций таких тупо не предусмотрено в игре. или же нет возможности отключить мелодию. в итоге записывать GYM придется с посторонними шумами. так что большой вопрос еще получится или нет прикрутить этот момент. ведь там лог еще растянут во времени, а не просто короткий дамп инструмента как KMOD делает. так что если кто-то может собрать новую версию KMOD - был бы очень рад :) с учетом моих пожеланий всмысле :) чтоб все параметры рожало, а не обрезки какие-то.


о GYM пока мысли следующие... насколько я помню там вроде пауза 1/60 секунды. (во мля... хотел вставить ссылку из избранного, но там почему-то статья из википедии не существует. но я ж вроде там что-то читал) предположим все-таки 1/60 секунды, тогда математика будет примерно следующей:
1 секунда в моем недоязыке это 1000 миллисекунд - delay(1000)
bpm для спецэффектов в GEMS по моему 150
150 bpm   = 60 sec
тогда 1 bpm = 0.4 sec
pause GYM 1 sec / 60 = 0.01666 sec (или 1000 / 60 = 16.6666 delay для моего недоязыка)
тогда 1 bpm будет содержать 24 пауз в GYM (24 x 0.0166 = 0.4)
24? совпадение? :)
Цитата
Длительности и задержки нот, отсчитываются в 1/24 такта


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

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
обсуждение конвертерa музыки для Dune MIDI2DUNE [SMD]
« Ответ #73 : 06 Январь 2017, 18:50:58 »
PSG инструмент редактор - готов и прикручен  :D

а идея с GYM парсером мне самому очень понравилась. сейчас уже парсит и даже проигрывает:



нужно сделать фильтры по каналам для него - чтобы экспортировать оттуда инструмент. в итоге чтоб спереть какой-то спецэффект, конечно при условии что он не использует сэмплы... и PSG, KMOD может даже и не понадобится. GYM гораздо грубее по времени, чем VGM - 1/60 секунды против 1/44100 сколько-то там у VGM, но зато это четкое разбитие на 1/60 по идее здорово облегчит процесс конвертации. и может даже мелодии тоже. хотя таблица уже на коротких GYM уже тупит. а если мелодию конвертить - программа закиснет наглухо тут-же :)

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

кароче резюме: 1 в 1 все-таки не совсем выйдет сделать, из-за потерь на этой самой грубости 1/60 секунды, а потом будут вторые потери, когда будет конвертация сколько-то 1/60 = 1 delay в GEMS. вот если бы темп GEMS можно было бы увеличивать до бесконечности... но увы. он от 40 до 295, а для спецэффектов и вовсе жестко ограничен 150.

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

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
страдая запоем... эээ... творческим кризисом никак не мог засесть за ваяние обновки, а надо было. потому как там имелись некоторые недочеты. но и новую версию тоже не совсем можно выпускать, ибо она требует файл в сборщике из 82 версии. без него не показывает иконки, потому как в том файле таблица палитры.

в этой версии подправлен редактор сэмплов. как оказалось на всяких виндах 7 и выше со стереомикса запись не происходит. там с микрофона какое-то шипение записывает. печаль и тоска кароче. но зато теперь можно не записывать, а импортировать заранее подготовленные сэмплы. то есть в каком-либо мощном аудиоредакторе подрезаем чо надо, сохраняем в хорошем качестве wav или ogg - и потом импортируем в редактор, а он уже конвертирует с помощью bass.dll в нужный нам формат и дописывает везде куда что надо (входящий сэмпл должен быть не более 200 килобайт, а выходящий следует подрезать до максимально GEMS возможных 65 килобайт). правда теперь нужна эта самая bass.dll - будучи вшитая внутри ехе файла она капризничала, как разбалованная девка и не шла на поводу. форумы, в количестве пяти штук где я энту тему поднимал - результата не дали :) на одном только что один старый хороший товарищ обмолвился что когда-нибудь возможно засядет.

еще добавил волшебную кнопку внизу редактора для сборки рома. добавил опции для редактора с галками. добавил мелкий визуальный бонус в титры.

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


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

потом в опциях есть момент по сборке gems intro и game. то есть сборка работает как: если ты стоишь на окошке редактора звуков - при нажатии сборке соберутся и game и intro в любом случае. а ежели ты лазишь в танках или заводах, то система думает что музыку ты не правил, а следовательно она её и не будет собирать. поэтому в опциях насильные флаги есть - типа в любом случае собирать и game и intro.

так-же в опциях есть галка для сборки 128 рома. то есть без галки собирать и запускать будет 64. а с галкой 128.
« Последнее редактирование: 07 Июль 2017, 18:38:44 от SeregaZ »

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
план по запиливанию онлайн датабазы по GEMS несколько тормознулся... сраные программисты порой делали модификации драйвера и соответственно или их нельзя распаковать, или распакует - но например сэмплы играть не может. Mortal Kombat 3 тому пример. буржуйские товарищи конечно как могли помогли запилить функцию проигрывания... с шипением с горем пополам играет. но при помещении подобных сэмплов в дюну - там шипения становится в разы больше. в движке мортала были какие-то изменения на эту сэмплопроигрывательную тему. в результате треки из мортала использовать в Дюне не получится. можно конечно сделать что-то перезаписи - но там будет дичайшая потеря качества звучания.

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
это была эпическая ночь :) я как Колумб открывал америку для себя. как оказалось модификация GEMS для MK3 позволяла использовать 4битный DPCM и 8битный LPCM. что такое LPCM я не знаю... даже думать не хочется, а вот DPCM пришлось буржуям попарится, чтоб втолковать в мою пустую голову что-же это такое :)


теперь я попытаюсь изложить.

4 бит информации это очень маленький диапазон от 0 до 15 получается. всего 16 значений. естественно что при проигрывании у меня было шипение и пердение, хоть и слышались сэмплы среди этой какофонии. как оказалось эти значения от 0 до 15 надо было не брать как сами по себе значения и писать в файл, а надо было брать это значение и использовать его как номер к таблице значений. ValleyBell дал ссылку на асм файл для MK3 http://vgmrips.net/misc/MK3_DACME.asm где эта самая таблица и жила:
Цитата
dc.b    00H, 01H, 03H, 07H, 0DH, 15H, 1FH, 2BH
dc.b   -00H,-01H,-03H,-07H,-0DH,-15H,-1FH,-2BH
я радостный переписал код, начал брать значения из таблицы... запустил код, уже предвкушаю хорошее качество звучания, запускаю демонстрационный файл... и феееейл! :) кто-ж знал что надо было слушать товарищей-буржуев внимательней :) они мне говорили про какую-то дельту... а я пропустил мимо ушей.

так что система оказалась замудренней. надо было брать не только значение из таблицы но и прибавлять его к этой самой дельте. то есть когда сэмпл только начинается - эта дельта равна $80. берем значит 4битное значение из сэмпла скажем 3 там было, по этому значению сходим в массив за значением таблицы из 3 ячейки массива, и потом $80 + это значение из таблицы то есть $07 в данном случае = $87 получилось. вот его пишем в файл. берем последующее 4битное значение, так-же в таблицу - скажем оно было 5, значит это значение из таблицы $15. вот берем ту старую дельту $87 и прибавляем $15 = $9C. пишем этот $9C в файл. дальше уже к $9C прибавлять новое значение из таблицы и так далее до конца сэмпла. в итоге из 4битного DPCM мы получаем 8битный PCM.

так-что теперь можно будет загружать сэмплы или треки из МК3 в дюну :) уже предвижу у сардукаров юнита-императора с именем Шао Кан, который ходит по песку и орет: донт мейк ми лаух!


а? чего? LPCM? да ну его...

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля



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

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
чот я зазря конвертацию мортала в редактор прикрутил :) можно было сразу архив конвертануть из 4 бит в 8 и раздавать его уже таким. а в целом в принципе готово :) завтра наверное проверю на 7 или 8 винде, залью первые архивы и попробую как скачиваться и распаковываться будет. на XP вроде без проблем.

Добавлено позже:
ах даааа... антивирусы будут не в восторге :) тестовая болванка уже верещала пятком тухлых антивирусов. а общий проект наверное вообще заверещит.

и кстати! скоро юбилей! почти 50 тысяч строчек кода :) половина конечно просто пустые строки, чтоб код удобнее читать было и тем неменее 50!

Добавлено позже:
а тут на форуме ваще архивы GEMS то можно будет размещать? я планирую во вложении и потом чтоб редактор качал отсюда в локальное хранилище.

Добавлено позже:

Добавлено позже:

скачивать GEMS архивы отсюда не нужно - они скачиваются и распаковываются редактором в свою папку. просто ежели скачать отсюда вручную - будет не совсем понятно что с этими файлами делать, а вручную их подсовывать редактору не удобно. поэтому предусмотрен функционал по которому редактор скачивает их сам куда нужно, распаковывает, умеет проигрывать и умеет заменять треки в дюне.
« Последнее редактирование: 21 Июль 2017, 00:29:14 от SeregaZ »

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
еще GEMS архивы треков.

процесс причем затягивает: распаковываешь, потом слушаешь что-ж ты там нараспаковал :)
« Последнее редактирование: 09 Июль 2017, 23:14:00 от SeregaZ »

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
в новой версии всего два изменения... даж стремно как-то на эту обновку тратить целую букву в названии :)

DUE 0.6h
  • поправлен функционал загрузки списка онлайн базы. (ранее он загружался не полностью)
  • в окне прослушки треков из архива добавлено срабатывание клавиши Enter для запуска мелодии или спецэффекта. (двойной клик запарывает после пары десятков прослушиваний)
« Последнее редактирование: 09 Июль 2017, 16:53:09 от SeregaZ »

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
тут в основном те игры, которые с наскока GEMSScan'ом не брались и не распаковывались, но попался на глаза архив в посте Метро с адресами и пошло дело активнее :)

и тем не менее все еще остались вопросы по:
Zero Tolerance - там по видимому 2 банка звуков, так как в первом только музыка 8 папок или сколько-то там, а выстрелы и прочее где?
WWF Arcade - опять таки там видимо 2 банка, так как в распакованном виде нет сэмплов с произношением имен персонажей.
Comix Zone&Ooze - частично там сэмплы в неком ADPCM - никто не знает что с этим делать :)
« Последнее редактирование: 27 Июль 2017, 06:26:09 от SeregaZ »

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
хостинг со списком вроде раздуплился и редактор теперь может загрузить список. однако я думаю все-таки в новой версии редактора перенести этот самый список на другой хостинг. тоже бесплатный и непутевый :) но по моему немецкий. на котором сейчас кажись белорусский.

еще хотелось бы исправить дллку для звука, но в этом языке программирования - Visual Studio 6 - я не шарю :) среду хоть и поставил, но что в ней искать - не понятно. косяка два штуки: при инициализации чипов если указать, что мне надо 2 штуки - вместо увеличения количества чипов происходит, по всей видимости, повышение частоты первого. звуки становятся писклявее. второй - если PCM сэмпл имел в начале файла тишину, то библиотека его играть не будет. там типа "умная" библиотека, если типа там тишина идет, то и играть не буду, даже если потом данные пошли - но библиотека уже интерес к файлу потеряла. вот ей бы втолковать что играть все равно надо, чтоб даже если весь сэмпл тишина - пока размер файла не проигран - играть.
« Последнее редактирование: 24 Июль 2017, 15:00:19 от SeregaZ »

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
ну видимо на этом все :)

умаялся как Малдер гонятся в поисках истины :) это был интересный опыт, куча интересных идей, куча наработок было собрано в одну кучу, куча людей была замучена расспросами... но, к сожалению, опоздал я... лет на 5 :) теперь уже никого не достать в сети для расспросов...

да и сам начал тупеть с возрастом. всего-то несколько месяцев назад пилил болванки редактора большой и малой иконки, редактора карт, GEMS треккера... тут решил их доработать и прикрутить наконец в основной проект... и не могу раздуплить свой собственный код :))))) вроде бы вызов редактора по кликам на иконках сделал... рисует и большую и малую, хотя еще без сохранения и начал редактор палитры прикручивать чтоб сохраняло сразу обоих и палитру и рисунок... начал и все... смотрю в код - вижу фигу :) что уж тут говорить про допилку вообще чужого кода на чужом языке с той непутевой дллкой для звука... так что видимо 0.7 версия не выйдет. в ней было задумано чуток допиливание проигрывание треков - ведь сейчас играет только 6 штук, но в песне то может их до 16 по моему. вот я их и хотел играть их используя второй чип в дллке, но, напомню, при инициализации второго чипа почему-то портится звучание в сторону повышения тональности звука. эту ошибку я найти не смог в этом сраном visual studio. так-же не решил проблему с ADPCM для проигрывания малой части сэмплов комикс зон и ooze, не решил проблему с поиском и распаковкой вторых банков GEMS для Flashback, Zero Tolerance, WWF Arcade. поэтому не добавлял некоторые из этих игр в онлайн базу, хотя они распакованы давно. так же распакованы всякие спортивные NFL типа игры - не стал добавлять. мелодии там хоть и есть, но совсем мало - основные звуки это сэмплы драк, столкновений, да команд судей. потом еще в моем коде для звука было пару моментов, которые выбивали программу - тоже поправил.

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

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
обсуждение конвертерa музыки для Dune MIDI2DUNE [SMD]
« Ответ #84 : 14 Январь 2018, 20:09:30 »
оказывается я совсем забыл добавить еще несколько игр, которые были распакованы - но в базу добавить недоходили руки :) надо сие безобразие исправить.

ах да! ежели кто умеет распаковывать GEMS банки, а особна те случаи, где два банка типа Flashback, WWF Arcade, Zero Tolerance... и что-то там еще - присылайте эти распакованные архивы! был бы рад добавить эти игры тоже в базу. сейчас по моему только Flashback добавлен - но там только мелодии. спецэффектов нет. из-за этого архив этой игры не полный.

Comix Zone и Ooze присылать не нужно. они есть распакованные, но добавлять их в базу не хотелось бы - так как там GEMS был чуть модифицированный и поддерживал 4 битный ADPCM. для MK3 то мне втолковали как сделать конвертацию из 4 бит DPCM в обычные 8 бит PCM. то есть сейчас MK3 в базе подготовлена для импорта в Dune и все сэмплы будут работать. (точно такая-же мк3шная система была в сэмплах Punisher - он тоже был конвертанут и теперь сэмплы оттуда совместимы с Dune). а вот комиксзонный ADPCM - без понятия что там нужно к чему прибавить, где разделить, а где маслом смазать чтоб конвертануть в обычные 8 бит. так что эти две игры так и висят с тех времен недопиленные :)
« Последнее редактирование: 15 Январь 2018, 23:01:09 от SeregaZ »

Оффлайн M3tro ™

  • Пользователь
  • Сообщений: 698
  • Пол: Мужской
  • I’m not afraid, and yall don’t be afraid either…
    • Facebook
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
[SMD] обсуждение конвертерa музыки для Dune MIDI2GEMS
« Ответ #85 : 17 Январь 2018, 11:13:00 »
Со мной тут недавече поделился очень интересным видосом Metalslayer777 (a.k.a. Metalslayer) о том, как делали музыку на Genesis/MegaDrive в 1994ом году. Видос на английском, но главная его особенность в том, что там есть русские субтитры (и написаны они, кстати, довольно неплохо, за исключением очепятки на 6:29 "вкючения" и потери пары запятых).
В общем, самый годный #retro_based_content :thumbup:.
Жаль только, что автор не упомянул про музен из Doom Troopers и Dune2TBFA :unsure:.
Я не знаю, SeregaZ, может ты смотрел его уже. Посмотреть интересно, хоть там подробно не рассказано как работать с такими программами, но зато есть несколько ссылок в описании. Может они чем-то помогут прогрессу.



Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
обсуждение конвертерa музыки для Dune MIDI2DUNE [SMD]
« Ответ #86 : 17 Январь 2018, 14:25:26 »
да, я там в комментариях отметился - когда заметил в видео фрагмент DOS GEMS с большим списком инструментов. автор ответил где их выковырять. выковырял. надо дорассортировать и добавить в MIDI2GEMS - думаю качество инструментов там чуть лучше будет, нежели у меня были. ну еще второй вариант добавления инструментов - это брать мидишные каверы от музыкантов на сегавские игры, которые звучат довольно близко. на ту-же дюну помница очень хорошие мидишки есть. смотреть какие инструменты в мидишке были выбраны и соответственно им выковыривать из игр FM инструменты. но это вагон нудной ручной работы :)
« Последнее редактирование: 21 Январь 2018, 00:00:37 от SeregaZ »

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
обсуждение конвертерa музыки для Dune MIDI2DUNE [SMD]
« Ответ #87 : 31 Январь 2018, 03:02:15 »
видимо надо переименовать тему в "Нытье горе-разработчика" :)

на днях мне дико понравились две песни в дефлемаске. настолько дико, что захотелось их конвертануть в GEMS. в итоге размер моих хотелок увеличился и стал вообще километровым:
midi2gems
vgm2gems
gems tracker
deflemask2gems

как оказалось этот самый дефлемаск конвертить куда проще, нежели vgm. хотя конечно тоже свои подводные камни имеются. например bpm - хрен его знает как он расчитывается. вручную ляпать разве что... впрочем в vgm тоже нет понятия bpm.

так-же вручную пришлось делать создание инструмента PSG. автоматику я все не представляю как родить. и помимо автоматики есть еще камни - а именно в сраном дефлемаске понятие PSG инструмент это массив громкостей, где например плавно громкость снижается. в GEMS инструменте там хоть инструкции - планы как эта громкость должна снижаться, а здесь же просто громкости и думай сам... блин... затык то здесь в чем: в GEMS есть момент, когда ты клавишу отпустил и есть инструкции как громкость себя поведет. плавно затухнет или обрубится моментально. в дефлемаске просто скажем 5 громкостей и все на этом. нота может быть мелкой, а может там три целых ноты по длительности. юзеры ленивые - в файлах дефлемаска не лепят OFF команды... итак дескать сойдет. и как это втолковать гемсу? и как самому раздуплить? вот сейчас конвертит - сплошное хрипение 4 шумового канала PSG. песню ничерта не слышно :) потому что там длительность должна быть видимо как минимальная нота. тыц тыц тыц по тарелке. но там-же есть долгий тарелочный удар. что теперь это тоже вручную переделывать? хоца то чтоб однокликово  :'(

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

еще один затык: в дефлемаске при использовании специального режима 3 канала можно разбить этот самый 3 канал на 4 плохоньких независимых и пиликать в каждом свою партию. типа полифония... кааааак это втолковать гемсу? :))) да никак. в гемсе одна команда keyon. не получится воспроизвести эту фиговину из дефлемаска. вручную выкидывать 3 дорожки разве что и обрабатывать только первую.



посему пишу тебе, товарищ, который по глупости решит пойти по моим стопам, создавая эти конветеры - бросай это гиблое дело пока не поздно! спрашивать не у кого, а сам дефлемаск кривой добезобразия. и форум там тухлый. по людски то как делать - если пишешь в спецификации, что в файле дефлемаска для сеги может быть 02 или 12 - то и должно быть $02 или $12. но когда там $42... когда создаешь эффект включения проигрывания сэмплов $1701 - то надо делать условие, что вводить его можно только в 6 канале FM, а не где попало и при этом дефлемаск будет слушаться этого гдепопального эффекта. когда создаешь инструменты - создавай по человечески. иначе инструмент номер 1 и им можно играть в 1 канале PSG, а захотел этот же номер присобачил к 4 каналу. но это же ясен пень, что разные инструменты должны быть. почему сраный дефлемаск не делает ограничение? соберусь с гугл транслейтером и напишу проклятия на форуме дефлемаска... хотя бестолку. ведь форум там дохлый. но уж больно много этих самых проклятий у меня накопилось за эти дни.



для правильного конвертера нужно:
1. библиотеку-эмулятор YM2612 + точно такую-же, но для SN76489, в которые шлешь по таймеру регистры, а они поют. чтоб на лету слышать как будут звучать те или иные инструменты и ноты.
2. нужен ром GEMS проигрыватель шелла для тестирования итоговых результатов. (хотя там еще под вопросом проблема с командой громкости для PSG) и нужен ромхак этого рома, чтобы можно было стартовать мелодию сразу при запуске рома - экономит время :) казалось бы мелочь, но после пары сотен перепроверок и отладок начинает надоедать обязательное тырканье старта ноты.
3. нужно уметь читать GYM логи, записанные в эмуляторах. а лучше сделать парсер и смотреть наглядно как во времени изменяются регистры. очень полезно в отладке. там видно как ведут себя громкости для PSG при тех или иных значениях параметров в инструментах. видно как ведет себя частота ноты при модуляциях - слайдах в мелодиях.
4. нужна bass.dll и её производные миксер и енкодер чтоль... дополнительные библиотеки для создания системы конветрации различных по частоте PCM сэмплов. в vgm нет понятия частота сэмпла. я там велосипед изобрел по расчету частоты. и частота эта может быть весьма разнообразная. а нам надо четкий ступенчатый формат от 10.4k для топового качества и до 5k сколько-то там. всего 5 ступеней. так-же дефлемаск там с десяток вариантов по частоте сэмпла может быть. все это дело надо будет конвертировать до 10.4k. не говоря уже про отдельный импорт какого-то самодельного сэмпла из аудиоредактора.
5. нужно знать спецификацию midi, vgm и дефлемаска. насчет vgm music maker'а не очень уверен а есть ли там комьюнити музыкантов, делающих музыку на нем до сих пор? просто инструменты для него не очень подходят для GEMS - там многие параметры отсутствуют. дефлемаск то вроде еще обновляется. vgm mm - уже нет. давнооо забросил его товарищ Shiru :)
6. для midi2gems - нужны инструменты с худо бедно подобным по звучанию с мидишными инструментами на компьютере. тут поможет досовская GEMS утилита, так как там есть небольшой пак инструментов. надо только рассортировать. второй путь - собирать каверы музыкантов на популярные игры, которые они пишут в миди. а после просто брать инструменты из соответствющих песен игр и сопоставлять с теми, какие музыканты выбирали в миди для этой песни. инструменты из дефлемаска в принципе тоже подойдут.
7. нужно понимание как эти самые инструменты устроены. для чего в FM всякие detune, attack... так-же понимание того, как построены инструменты PSG в GEMS. понимание как работает модуляция в GEMS.
8. поскольку с bpm проблема как в VGM так и в дефлемаске - тут бы помог алгоритм из диджейских программ, которые автоматически определяют это самое количество ударов в минуту в песнях. как это делается - хрен его знает :) но этот механизм очень бы помог при конвертации с правильным определением bpm.

проходить этот путь мне было интересно :) правдами и неправдами выуживаешь информацию, по крупицам складываешь в мозаику. с улыбкой вспоминаю как решал проблему с PSG. как формируется звук - я не имею нималейшего понятия :) смотрел всевозможные исходники... но видел фигу. и тут на форуме моего недоязыка попадается пример с генератором тонов - задача уж очень похожая. товарищи-буржуи были в мягком шоке, когда я засунул в этот генератор тонов таймер и по этому таймеру долбил значения частот из какой-то игры - из vgm файла, где была записана как раз песня для PSG. в левом канале играла одна дорожка песни, в правом другая :))) зато, увидя сей перфоманс, попался хороший буржуйский товарищ, который разбирается в этом звуковом вопросе. и когда поймал в сети Shiru и выпытывал у него все про PSG и когда получил код для флешки для браузера с этим ядром чипа - как раз таки этот буржуйский товарищ полностью и переделывал этот код под наш язык. получилась просто замечательная библиотека :) можно включить два ядра, балансы каналов левый правый - вышло еще круче, чем у Shiru в оригинале было :)

вторая библиотека ym2612 - тоже в принципе была использована мною не по назначению... а давший её другой буржуйский товарищ, хоть и помог оооооочень сильно с пониманием как работает GEMS, а так-же регистры, DPCM и тд и тп - все равно на него очень сильно обиделся :( ну не понимаю я эти всякие музыкальные фиговины... я ж менеджер! а не программист :) - очень хотел чтоб он подсказал где в этой его библиотеке ошибка - а именно при активации 2 чипа: оба играют с завышенными частотами - а мне уж очень надо 2 этих самых чипа. воспроизвести гемсовское динамическое перераспределение занятости 6 каналов чипа FM - мне сложновато. я хотел проигрывать первые 6 дорожек в распакованной GEMS песне - то есть дорожки в CODE файле - на первом чипе, а с 7 по 12 на втором. в этом случае динамическое распределение не нужно, а играть будет мелодию более полно :) это был бы выход из ситуации малой кровью... но "ой, я деловая колбаса, мне некогда. это старая библиотека. я её больше не поддерживаю. бла бла бла бла бла..." ох и крепко я на него обиделся. надо то опытным глазом посмотреть где косяк и все. мож знак умножить не в том месте елки палки... уж очень хотелось мне, чтоб проигрывало CODE файлы у меня более близко к оригиналу :)

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

пойду напялю пижаму - ибо холодрыга, включу какихнить там автомахинаторов и спать. завтра буду думать как с этим PSG воевать. сегодня уже ничего в голову не приходит. и еще слайды - эффекты из дефлемаска. и видимо надо будет еще редактор модуляции замострячить... а то редактор FM и PSG инструментов есть, редактор сэмплов есть - а модуляции нету :) не порядок. а еще я GYM парсер сегодня маленько доделывал. поскольку для PGS регистр всегда один и тот-же - $FF - а все команды скрываются в параметре, который шлется в этот самый регистр - то сделал более наглядную расшифровку, чтоб было видно что здесь выставляется нота, а здесь выставляется громкость - сам ненарадуюсь как здорово получилось :) для отладки самый цвет! и надо бы еще GEMS архивы еще 80 игр дозалить на форум. итого там 180 по моему в итоге распакованных :) онлайн GEMS база была афигенской идеей :) в перспективе помимо Дюны этой базой можно будет пользоваться и для других GEMS игр. а еще хоца раздел кастом-конвертации, где были бы удачно конвертированные мелодии из vgm, дефлемаска или midi.

***

обещанные GEMS архивы для редактора.
« Последнее редактирование: 07 Февраль 2018, 21:26:58 от SeregaZ »

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
обсуждение конвертерa музыки для Dune MIDI2DUNE [SMD]
« Ответ #88 : 02 Февраль 2018, 19:11:32 »
что-то я как-то не очень доволен результатом с редактором модуляции.




да и с проигрыванием модуляции тоже есть проблема. сейчас у меня проигрывает только FM инструменты и только в случае, если параметр модуляции был выставлен до ноты. но в мелодиях часто встречаются особые случаи, которые мой CODE-проигрыватель не умеет играть :)

в кратце теория заключается в следующем:
есть CODE-файл с примерно таким содержанием:
SECTION HEADER
 dc.b 1
 dc.t channel_0

 SECTION CODE
channel_0:
 delay 0
 volume 0
 sfx
 priority 120
 patch patch_06
 duration 48
 delay 2
 note $30
 delay 58
 modulation modulation_0C
 delay 0
 stop 30
 eos

dc.b 1 - количество дорожек в песне. в данном случае 1 штука.
channel_0: - объявление этой первой дорожки. дальше идут команды для неё до команды...
eos - конец дорожки.

delay 0 - пауза между какими-то двумя событиями. тут надо пояснить более развернуто. об этом ниже.
volume 0 - громкость. то есть максимальная. хотя по идее громкость от 1 до 127. а тут 0... эм... ну да ладно.
sfx - флаг спецэффекта. то есть это не мелодия. говорит нам что темп - bpm - данной "мелодии" 150. в нормальных мелодиях нет этого параметра. там указывается tempo x, где x может быть от 40 до 295 по моему. или до 255. склерос... сволочь.
priority 120 - важность дорожки. поясняю: в дюне когда червяк жрет твоих юнитов слышен звук "аааам". то есть когда он уже сожрал. повод для беспокойства и сигнал что надо прятать харвестеры... но бывает так, что червяк жрет, но звука нет. вот проблема как раз в этой команде приоритета. то есть GEMS может проигрывать только один DAC-сэмпл, то есть wav'ку. то есть обеда червяка не было слышно из-за того, что в этот-же момент какой-то юнит орал тебе по рации: "слушаю, выполняю". его сэмпл занял 6 канал чипа и червяковому просто негде играть. вот червяк и "промолчал". это в случае если приоритет у обоих сэмплов был одинаковый. но ежели взять и влепить больший приоритет червяку, то сколько бы ты не тыркал юнитов - червяковый "ааам!" будет все равно слышен, так как имея больший приоритет он заткнет на полуслове всякие "слушаю, выполняю" и начнет проигрывать свое "аааам!".
patch patch_06 - выставление инструмента 06 в данную дорожку для проигрывания.
duration 48 - длительность ноты, когда ты нажал на клавишу пианино и держишь эту клавишу нажатой в течении 48 раз по 1/24 ноты. то есть 48*24 = 2 целые ноты.

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

это играть проще всего.

но в данном случае - дюрейшн больше, чем делей. шо такое? у меня паника! как это играть? мамаааааааа....

так вот вместе с модуляцией:
modulation modulation_0C - старт модуляции.
это будет выглядеть примерно так:


схема конечно не совсем точная :) ибо дюрейшин - 48 изначально меньше, чем делей 58+2. но общий принцип в данном случае такой, что когда стартует нота, то две 1/24 ноты нота играет стандартно. и начиная со времени 3/24 эта нота начинает менять частоту согласно файлу модуляции и модулирует так до отжатия ноты. потом значит будет пауза несколько 1/24 тиков и потом система готова проигрывать следующую ноту. если она конечно была. но у нас спецэффект - последующих нот нет.

так-же с помощью этого delay 0 - можно играть аккорды, как в лунной сонате Джима Червяка. там получается одна дорожка будет занимать 2 канала чипа. оба эти случая я в своем проигрывателе не предусмотрел и играть у меня будет не верно. нужно пилить динамическое перераспределения занятости каналов.  :'(

в принципе решить все эти проблемы помогло бы расковыривание одной хитрой программы - GEMSPlay :) она правда играет сразу банки, а не отдельно по 1 песне. но ежели бы её расковырять и из консольного приложения вылепить из неё dll'ку - было бы замечательно :)
« Последнее редактирование: 08 Февраль 2018, 22:13:33 от SeregaZ »

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2498
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
обсуждение конвертерa музыки для Dune MIDI2DUNE [SMD]
« Ответ #89 : 03 Февраль 2018, 23:45:41 »
проклинаю дефлемаск... опять :) дошла очередь до разбора эффектов в дефлемаске и сразу-же первый встретился в песне: 0309.

в описании сказано, что данный эффект регулирует скорость слайда от предыдущей ноты до этой новой, на которой был объявлен эффект. типа была нота ДО, играла себе три тика, тут пошла нота МИ с этим эффектом. это означает что с этого момента нота ДО должна начать перетекать в МИ с заданной скоростью 09.

как это отловить то? б*...

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

потом было решено объявлять модуляцию не в середине - в середине было бы правильней - а в начале ноты. просто до этого момента начала перехода, то есть слайда, в новую ноту надо в файле модуляции указать значение модуляции как ноль. типа 3 тика нота до без модуляции, значит в файле модуляции должно быть 03 00 00.

хорошо, начало не модулирует. дальше то что делать? мозг сломать можно... по моему от ноты до ноты там возможен параметр питча 255. типа нота ДО + питч 255 = ДО диез. хотя тут я не уверен... но по моему 255 (помню что шелл там что-то объяснял что в одних случаях 255, а в других 127... надо было слушать внимательней). так вот идея возникла такая: ((старая нота - новая нота) * 255) / 9. (девятка это параметр скорости из эффекта в файле дефлемаска.) таким образом мы получаем второй сегмент файла модуляции :) количество тиков и параметр скорости - 9 - он был известен заранее. теория вышла хорошая. но пробежавшись глазами по треку заметил еще более замудреную ноту с модуляцией - там 3 ноты - стартовая и плюс одна с модуляцией и плюс вторая с модуляцией. шерсть на жопе уже чует что её скоро начнут рвать...

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

и это все только про один эффект в дефлемаске :) а ведь там еще их несколько... каждый раз мне вешаться? за что мне такое горе :)

в редакторе модуляций решил добавить сетку нот при изменении масштабирования картинки по высоте. но все равно это не так информативно, как я хотел бы. надо будет думать еще.
« Последнее редактирование: 18 Февраль 2018, 21:07:28 от SeregaZ »