Автор Тема: (Sega Genesis) Вопрос по оцифровке музыки и речи из WAV в VGM формат  (Прочитано 900 раз)

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

Оффлайн ivan228747

  • Пользователь
  • Сообщений: 5
    • Просмотр профиля
Всем здравствуйте, кто читает данную тему. Хочу создать демо с картинкой и оцифрованным звуком (я знаю как конвертировать midi музыку с помощью VST плагина Genny через LMMS), использую для этого VGM_PLAY V3.42. Заранее прошу извинить меня в незнании некоторых аспектов, я в теме ромхакинга ноль. У меня вопрос к знающим людям. Как можно оцифровать звук с расширением WAV в VGM, к примеру речь или музыку. Если я правильно понимаю, то подобный тип звука, который мне нужен, проигрывается через процессор Z80, а чип YM2612 поддерживает только синтезатор, т.е. midi (сами понимаете, при переводе WAV в midi получается каша, речь не разобрать). Т.е. конвертеры, которые я находил, мне непонятны как человеку, не разбирающегося в программировании, сайт convertio.co отказывается работать. Простыми словами, мне нужен результат, представленный фразами юнитов в Дюне 2 (особенно создание хака от Lipetsk(а) с русской озвучкой) и песней "Священная война" в игре Танки 2011. Если кто знает, можете посоветовать программы для оцифровки звука в VGM или объясните как это можно сделать иным способом. Прикреплю ссылки с желаемым результатом. Спасибо
https://www.youtube.com/watch?v=TMSkaTG6sLM&t=26s

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5128
    • Просмотр профиля
В SGDK можно сунуть WAV и он у тебя в роме играет (простой код для воспроизведения). Я делал простую галерею: суёшь картинки и WAV, на выходе ром с переключением картинок и WAV аудио. Ещё делал конвертер видео в ром, но он хуже существующих демок и не доделал до полной автономности.

Оффлайн ivan228747

  • Пользователь
  • Сообщений: 5
    • Просмотр профиля
Привет. Если будет возможность, можешь скинуть прогу которая добавляет картинки и WAV в ром и ту, которая конвертирует видео в ром, будет интересно поиграться. Так к слову, смотрел канал MatteusBeus Retro Sega Game Dev, вместе с оцифровкой звука заинтересовала тематика создания видео как на Sega CD :-). Насчет SGDK, да нужно посмотреть, но пока для меня это мягко говоря необычно, говорю как абсолютный ноль в программировании.

Оффлайн lupus

  • Пользователь
  • Сообщений: 3828
  • Пол: Мужской
  • man with no face
    • ВКонтакте
    • Просмотр профиля
Sharpnull, в играх, сделанных на SGDK звук в сыром wav или используется какое-то сжатие?
И существует ли софт, способный найти звуковые файлы в роме, чтобы можно было заменить потом, хотя бы рукамм?

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5128
    • Просмотр профиля
Вот проект для картинок + WAV на фоне, нужно будет ставить SGDK, Python 3 и к нему Pillow, всё в readme.txt, давно его писал. Предполагается, что человек умеет менять переменные среды и открывать командную строку от администратора. Проверил в SGDK 1.80, работает. Сегодня добавил сортировку палитры по светлости чтобы самый тёмный был цветом фона, так лучше при использовании 16 цветов, можно отдельно 15 цветов для картинки и фон - чёрный.

lupus, в SGDK (как написано в bin/rescomp.txt) есть несколько форматов в зависимости от Z80 драйвера:
* PCM - один канал 8 бит signed от 8КГц до 32КГц, весит много и качество не очень при 8КГц, но у меня отдельная сборка для него (full_build_8000hz.bat), т. к. при 8КГц у него размер меньше следующего драйвера.
* 2ADPCM - 4 бита и фиксированные 22050Гц, неплохой звук и размер поэтому у меня по умолчанию.
* Остальные 4PCM и XGM не использовал в этом проекте, у 4PCM фиксированные 16КГц, а у XGM видимо для эффектов (PCM SFX) на 14КГц при воспроизведении XGM музыки.
Аудио не должно сжиматься, поэтому PCM лежит в роме как есть после преобразования к 8 бита и можно открыть в аудио редакторе, только ADPCM сжато. Например, для 8000Гц в Audicity импортировать как Signed 8-bit PCM, 1 канал, 8000Гц и воспроизвести пока не услышишь звук, внизу вкл. отображение текущего положения в сэмплах, что и равно байтам в роме.

Оффлайн lupus

  • Пользователь
  • Сообщений: 3828
  • Пол: Мужской
  • man with no face
    • ВКонтакте
    • Просмотр профиля
Sharpnull, а заголовки какие-то есть?
Я думаю русскую озвучку впихнуть в Life on Mars.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5128
    • Просмотр профиля
lupus, SGDK вроде не делает заголовков, потому что в коде указывается частота и размер для PCM драйвера: SND_startPlay_PCM(music_pcm, sizeof(music_pcm), SOUND_RATE_8000, SOUND_PAN_CENTER, TRUE);, где music_pcm - массив const u8 music_pcm[];, а у других драйверов фиксированная частота и больше не знаю зачем заголовок. Функция вида SND_startPlay_PCM() передаёт параметры в Z80 драйвер, так что можно найти её и перехватывать адреса на аудио. Стоит учитывать, что PCM выровнено до 256 байт, а ADPCM до 128 байт.

Оффлайн ivan228747

  • Пользователь
  • Сообщений: 5
    • Просмотр профиля
Sharpnull, Хорошо, сложно, но попробую разобраться. Отдельно благодарю за подробное описание в инструкции. Как правильно понял, что на данный момент нет программ с графической оболочкой, способных самостоятельно конвертировать видео и WAV файлы, к примеру VGM Player, который сам собирает ром из VGM музыки и картинки, причем картинку можно загружать любую, прога сама подгоняет цвета под палитру Genesis. Главное, чтобы нашелся человек, который сможет сделать подобный проект в графической оболочке, получился бы VGM Player на стероидах с возможностью конвертации WAV в VGM и видео в FMV. А то смотрю MatteusBeus Retro Sega Game Dev у него там Akira FMV, Sonic Mania FMV и т.д. и не одного гайда, как сделать подобное демо, спросил автора как это устроено, пока что ответа нет.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5128
    • Просмотр профиля
Akira FMV, Sonic Mania FMV
Полная ерунда, единственный смысл в этих демо показать как конкретный человек может что-то сделать. В данном случае используется сжатие, по тайлам и/или по предыдущим кадрам, потому что несжатым не влезет в 4МиБ: 184*104*0.5*2 (байтов на 2 слоя для 1 кадра 31 цвет) * 7.5 FPS * 80 секунд = 11МиБ только на графику. Если конечно он не использовал маппер, в котором можно до 128МиБ, что не спортивно.
Как правильно понял, что на данный момент нет программ с графической оболочкой, способных самостоятельно конвертировать видео и WAV файлы
Как и с галерей картинок это тупость, потому что WAV плохой получается, с VGM хотя бы понятно, там слушают звук от конкретного чипа. Есть галерея картинок для NES, где специально сделана каждая картинка с добавлением цветов через спрайты. В моей галерее 16 цветов, можно сделать 31, но будет упираться в кол-во VRAM в некоторых картинках. Поэтому всё индивидуально.

UPD: Из полезного я делал на основе галереи тест изображения - обычные разноцветные и с полосками картинки. Был уже такой тест, но там какая-то проблема с совместимостью была.
« Последнее редактирование: 26 Май 2023, 15:17:42 от Sharpnull »

Оффлайн Nik Pi

  • Пользователь
  • Сообщений: 149
    • Просмотр профиля
Можно WAV файл с правильной герцовкой сделать в VGM через Deflemask. Быстро и не должно вызвать трудностей.

Оффлайн ivan228747

  • Пользователь
  • Сообщений: 5
    • Просмотр профиля
Nik Pi, Вот именно такой результат мне и был нужен. Есть возможность записать видос или пошагово объяснить, как это сделано? Повторюсь, можешь как первокласснику, т.к. я на данный момент полностью непосвященный человек.
Качал Deflemask с этого сайта: https://www.deflemask.com/get_legacy/

Оффлайн Nik Pi

  • Пользователь
  • Сообщений: 149
    • Просмотр профиля
Смотри, тут всё просто:
Во-первых, тебе стоит подготовить свой файл. В идеале- вав файл с частотой 22050-32000 герц. Более высокое качество он не кушает, или кушает, но играет либо слишком быстро, либо слишком медленно. Думаю, такие параметры можно задать в каком-нибудь онлайн-конвертере, вроде этого: https://online-audio-converter.com/ru/
Затем открываешь дефлемаск и видишь это:

Красным выделено то- куда жмакать. Потом когда нажал- вылезет это:

Красным выделено то- куда жмакать. Потом когда нажал- выбираешь свой вав файл. Когда выбрал, будет
это:

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

И НЕ ЗАБУДЬ НАБРАТЬ ЦИФРАМИ ТО, ЧТО ВЫДЕЛЕНО КРАСНЫМ!!!! БЕЗ ЭТОГО- СЕМПЛ НЕ БУДЕТ ВОСПРОИЗВОДИТЬСЯ!!!!!

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

И запомни; семплы ставь ТОЛЬКО НА ШЕСТОЙ КАНАЛ. ДРУГИЕ КАНАЛЫ СЕМПЛЫ ИГРАТЬ НЕ БУДУТ.

Желаю удачи  ;)

Оффлайн Starscream666

  • Пользователь
  • Сообщений: 2
    • Просмотр профиля
Приветствую (Если тема ещё актуальна)  :hi:
Пару месяцев назад я заинтересовался записью музыки на картридж Sega Genesis, и возможно ли впихунть туда песню со словами, целиком. Я для начала быстро разобрался с конвертацией midi файлов в vgm (по средствам программы midi2vgm, так скажем всё в один клик), а потом создал ром через программу VGM_PLAY V3.42. Результат, то что и хотелось, просто изображение на бэкграунде и музыка. Но всё же хотелось видеть полноценную песню со словами. Набрёл на данный форум, посмотрел инструкцию по конвертации через DefleMask (Инструкция крайне полезная, большой респект :thumbup: ), но вопросы остались и результат тоже не очень, да и Дэфлмаск ведёт себя странно. Решил я конвертировать песню (продолжительность 3 минуты), через Adobe Audition из mp3 файла преобразовал трэк в формат wav и занизил там же герцовку до 32000, в дэфлмаск создал сэмпл по инструкции, что бы вся композиция проигрывалась полностью, я увеличил Base Time, Rows до 208 (чисто под эту песню посчитал) и Pattern Matrix, всё чики-пуки, трэк играет от начала до конца.
Собственно Дэфлмаск это всё отказывается сохранять, после нажатия Save VGM ничего не происходит, просто виснет походу. Попробовал сохранить просто без увеличения строк и паттернов, небольшой кусочек песни, сохраняет, но VGM весит почти 6мб. Так вот, возможно делаю что-то не так или нет смысла пытаться конвертировать песню большую, или стоит как то уменьшит размер исходного wav файла? Буду признателен если найдётся ответ.
« Последнее редактирование: 18 Январь 2024, 18:07:15 от Starscream666 »

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2536
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
попробуйте эту самую герцовку снизить еще больше. до 11khz. и я вот не помню может ли дефлемаск 8битные сэмплы... или там только 16 минимально. приставке надо 8битные.

Оффлайн Starscream666

  • Пользователь
  • Сообщений: 2
    • Просмотр профиля
 :cool: Спасибо за подсказку, при конвертации файла из mp3 в wav, указал битрейт 8бит и герцовку снизил до 11kHz, что на выходе дало файл wav минимального размера, так сказать "зашакалил" нормально. А вот с DefleMask у меня походу проблемы, возможно оперативки не хватает, ноут слабый. При смене параметра, например Base Time, программа просто не сохраняет трэк в VGM. Но удалось перехитрить, подобрал нужные параметры, не трогая Base Time и быстренько сохранил трэк. Потом попробовал создать ром через VGM_PLAY V3.42, композиция подгрузилась, изображение встало. На эмуляторе Ром запускается, песня длительностью 3:09 воспроизводится полностью. Потом протестирую на реальной консольке.