Разработка и ромхакинг > Ромхакинг
обсуждение конвертерa музыки для Dune MIDI2DUNE [SMD]
<< < (4/7) > >>
SeregaZ:
кароче не стал ничо переделывать... тупо добавил перерасчет длительности ноты. конечно это не четко теперь, как оно должно быть - но я вообще хоть что-то хоть раз делал правильно? :))) кароче для меня колхозника пойдет :)

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

для проигрывателя значит осталось из нужного это динамическое перераспределение FM каналов, чтоб как в GEMS было. а то пока не играет аккорды (будучи в одной дорожке - пример в лунной сонате) и играет только 6 первых дорожек, игнорируя 7 и далее. но первоначально найти бы где косяк с массивами для PSG... где я там напортачил - ума не приложу...
SeregaZ:
кароче проигрыватель не получается... где-то косяк, а вот где - черт знает... его можно очень явно услышать в 004 треке. левый тудум... почему не звучит как надо - не понятно. уже и громкость и LFO крутил и даже сраный режим работы для 3 канала добавил - нифига... все равно тудум и все тут.
SeregaZ:
нашелся косяк :) был скурен и обсмеян :) в итоге проигрыватель процентов на 70 звучит, как если бы мелодия в эмуляторе играла. динамические перераспределение каналов делать наверное небуду... накой оно если проигрыватель нужен был просто чтоб знать где какая мелодия лежит ну и может предпрослушка какая-то худо бедная... особенно соник танк стал стрелять ближе к оригиналу :) так что были еще дополнительно раздуплены парочка нюансов по GEMS - по модуляции.

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

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

****

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

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

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

***

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

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

***

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


***

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

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

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

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

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


помогло бы решить эти проблемы создание самодельного гаджета для программы, где была бы страница в клетку и ноты в виде прямоугольников, как в Сонаре - миди редакторе. там вручную можно было бы допиливать трек, где автоматика слажала. так-же это был бы полноценный GEMS треккер. но мечты мечты... программирование, чувствую, не мое :)
SeregaZ:
планы на будущее обновление:
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:
мдем... ох и не легкая эта работа... тащить велосипед из болота. точнее изобретать велосипед :) взял буржуйский пример екселеподобной таблицы и заставляю её петь. с этими буржуями вообще анекдот... когда только начал работать над PSG - нашел какой-то там затухлый генератор тонов и подсунул ему в качестве входящих параметров VGM файл :) теперь вот ексель таблица поющая... но пока не очень получается... эх...

M3tro ™:

--- Цитата: SeregaZ от 11 Декабрь 2016, 15:31:48 ---2. увеличить размер окна редактирования сэмпла. это позволит более мелким шагом двигать границы сэмпла. сейчас это чуть ли не килобайт чтоль... 1 килобайт на 1 пиксель. что очень много для таких мелких файлов.

--- Конец цитаты ---
Так ведь необязательно само окно принудительно увеличивать до определённых статичных размеров. Можно же, я думаю, сделать это типа как, например, в Sony Vegas Pro, наведя курсор на окно с видео- и аудио-дорожками, крутишь колёсико, и меняется масштаб, так же оно вроде делается и в Audacity.


--- Цитата: SeregaZ от 11 Декабрь 2016, 15:31:48 ---3. сделать мини GEMS треккер для создания SFX типов звуков.

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

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

***

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

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

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



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

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

так-же в новом обновлении, я надеюсь, будет окончательно побежден момент с сохранением пути до эмулятора. сейчас этот путь по идее должен был использоваться для запуска тестировочного рома-GEMS проигрывателя шелла, но я думаю добавить кнопку "скомпилировать ром игры" - типа нажал на неё, игра собралась и сразу-же запустилась в эмуляторе. правда место было только под 6 кнопок и они уже все заняты. так-что думаю увеличить поле программы вправо, и рисовать кнопки в столбик. там места будет куда больше, чем 6 кнопок внизу. посмотрим еще кароче...
SeregaZ:
прикрутил к 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:
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:
страдая запоем... эээ... творческим кризисом никак не мог засесть за ваяние обновки, а надо было. потому как там имелись некоторые недочеты. но и новую версию тоже не совсем можно выпускать, ибо она требует файл в сборщике из 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.
SeregaZ:
план по запиливанию онлайн датабазы по GEMS несколько тормознулся... сраные программисты порой делали модификации драйвера и соответственно или их нельзя распаковать, или распакует - но например сэмплы играть не может. Mortal Kombat 3 тому пример. буржуйские товарищи конечно как могли помогли запилить функцию проигрывания... с шипением с горем пополам играет. но при помещении подобных сэмплов в дюну - там шипения становится в разы больше. в движке мортала были какие-то изменения на эту сэмплопроигрывательную тему. в результате треки из мортала использовать в Дюне не получится. можно конечно сделать что-то перезаписи - но там будет дичайшая потеря качества звучания.
SeregaZ:
это была эпическая ночь :) я как Колумб открывал америку для себя. как оказалось модификация 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:



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

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

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

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

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

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

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

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

Перейти к полной версии