• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток! Спешите принять участие в конкурсе "Таинственные миры" 2024!
    Ждем именно вас!

    Ссылка на конкурсную тему - тык

Важно Нарезаем готовую композицию в формат DirectMusic для Готики 1/2

Статус
В этой теме нельзя размещать новые ответы.

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.160
Благодарности
6.141
Баллы
1.565
Небольшое вступление

Данная статья представляет из себя простую пошаговую инструкцию, без дополнительных объяснений и «научных» терминов :)
Более детальную информацию по работе с DMP можно найти здесь: http://basilio58.worldofgothic.ru/Sound.htm
Наша цель - заставить звучать в Готике готовый музыкальный трек. Для создания трека в формате Direct Music (DM) я буду использовать Direct Music Producer (DMP) - говнопрограмма от мелкомягкого Билли :) Музыку писать в ней чудовищно неудобно, но для нарезки прокатит, кто знает более удобный софт - сообщите, оч. интересно посмотреть


Еще замечание - формат DM поддерживает воспроизведение звуковых файлов непосредственно из сегмента (sqt). Однако движок в Готике старый и такие файлы не воспроизводит, посему, как сказал Ильич, мы пойдем другим путем. Будем создавать псевдосэмплы в DLS коллекции и проигрывать их из сегмента. Надеюсь, в Г3 будет реализован другой подход к музыке :)

Софт - помимо DMP нам понадобится SoundForge или что-то подобное, для нарезки wav файлов. Формат wav файлов - 16 бит, частота по желанию, лучше 44-48khz

Простое преобразование готового стереотрека

Создаем DLS коллекцию
Если ваш трек представляет из себя MP3 файл, его необходимо преобразовать в wav файл. Сделать это можно, открыв ваш MP3 файл в Sound Forge, затем сохранив его в wav формате. Еще вариант - использовать

Код:
lame.exe --decode infile.mp3 outfile.wav

Теперь нужно разбить ваш стереотрек на каналы, т.е. левый и правый.

Откройте ваш трек в SoundForge. Нажмите Alt+Enter, выберите закладку Format. В Channels укажите mono. Нажмите Ok. Укажите Left Channel. Теперь файл у вас будет содержать только левый моно канал. Сохраните файл, например с именем introL.wav То же самое повторите для правого канала.

Теперь у вас есть 2 файла, содержащие левый и правый каналы. Если вы пишите музыку сами, то можете производить рендер композиции сразу в раздельные монофайлы, чтобы не париться с SoundForge.

Запустите DMP. Измените настройки MIDI/Performance options - SampleRate - 44 или 48khz, в зависимости от вашего трека, дабы слышать без потерь в качестве. Default Audiopath - укажите Standard Stereo, т.е. «сухой» звук без эффектов, т.к. ваш трек уже готов для нормального прослушивания.

Создайте новый проект File→New→Project. В проекте по правой кнопке мыши создайте DLS коллекцию - New→DLS Collection. Назовите ее как-нибудь. В папке Waves вашей коллекции по правой кнопке мыши кликните insert Wave, выделите ваши wav файлы. Теперь эта папка содержит 2 сэмпла, представляющие собой ваш трек.

Кликните 2 раза мышью в сэмпл. В окне справа отобразится его графическое представление. Нажмите правую кнопку мыши над картинкой. Выберите Properties→Compression/Streaming, в Type укажите формат (MPEG Layer-3), Attributes - степень сжатия сэмпла - дело вкуса. Поставьте галочку в Compressed - сэмпл сжат. Важное замечание! Если использовать в игре DLS коллекции со сжатыми сэмплами, то при переходе с одной музыкальной темы на другую, будут «тормоза», т.к. перед воспроизведением сжатые сэмплы распаковываются и на это уходит какое-то время.

В папке Instruments вашей коллекции создайте новый инструмент - Insert instrument. Назовите как-нибудь ваш инструмент, к примеру IntroLeft. Кликните в него 2 раза, в окне справа появятся его свойства. В папке regions будет по умолчанию определен один регион. Выделите его. В окне справа в закладке Region-Wave выберите ваш сэмпл для левого анала. В Note Range укажите C0-C0. Root укажите C0. Теперь при нажатии на ноту C0 должен звучать указанный вами файл, т.е. вы привязали ваш сэмпл для левого канала к ноте C0 инструмента IntroLeft.

Аналогично, создайте новый инструмент для правого канала, назовите его IntroRight, укажите все свойства, как описано выше. Wave - укажите сэмпл для правого канала.

Важное замечание! В свойстве Patch вашего инструмента указывайте уникальный номер, дабы избежать конфликтов между инструментами в вашем проекте.

Поздравляю! На этом создание DLS коллекции завершено. Подведем итог, ваша DLS коллекция содержит 2 сэмпла, с двумя инструментами для левого и правого каналов, в каждом из которых определено всего по одной ноте C0. Создаем стиль

Кликните правой кнопкой мыши над папкой с вашим проектом. Выберите New→Style. В папке Bands два раза кликните в Band1. Можете переименовать, например именем вашего трека. В окне справа будет список каналов. Удалите все каналы, кроме 1-го и 2-го.

Выделите 1-й канал. Нажмите F11. Поставьте галочку в Instrument. Нажмите на ставшую активной кнопку инструмента. Укажите Other DLS. В списке DLS Collection выберите созданную вами коллекцию. Укажите инструмент для левого канала. Нажмите Ок. Укажите Vol=127, Pan=L64. Теперь 1-й канал будет воспроизводить левый канал вашего трека.

Аналогично настройте 2-й канал. Укажите инструмент для правого канала. Pan=R64

В папке Pattern щелкните 2 раза на Pattern1. В верхней панели инструментов укажите темп вашего произведения (по умолчанию там стоит 120). По правой кнопке мыши вызовите свойства вашего паттерна (Properties). Нажмите кнопку Length, укажите длину вашего трека. Если лень считать - поставьте, к примеру, 20, потом на слух подгоните.

В правой части экрана раскройте окошко Pattern Part (оно свернуто по умолчанию). Part1 по умолчанию, уже привязана к левому каналу. Ткните мышью в ноту C0 в сетку. Нажмите Insert. У вас появится нота. Мышью можно растянуть ее на нужную длину и задать ее громкость или же задать эти параметры цифровым вводом через свойства этой ноты (Properties). Громкость (Velocity) лучше указать на максимум = 127. Теперь, если нажать кнопку Play, у вас зазвучит ваш трек только в левом канале.

По правой кнопке мыши создайте новую часть паттерна (Add Pattern Part(s)). Укажите для нее 2-й канал. Нажмите Create New Part. Аналогично введите новую ноту C0 и ее параметры.

Теперь, при нажатии Play, должен зазвучать ваш исходный трек. Осталось только подогнать длину нот и паттерна, - но это уже дело техники :)

Создаем сегмент
Кликните правой кнопкой мыши над папкой с вашим проектом. Выберите New→Segment. Укажите его длину. Добавьте следующие дорожки в ваш сегмент: Band Track, Style Track, Tempo Track, Groove Track.

Из вашего стиля, перетащите мышью band в дорожку Bands сегмента. Сам стиль так же перенесите мышью в дорожку Styles. В дорожке Tempo выделите темп, нажмите F11, укажите темп вашего произведения.

Кликните мышью в дорожку Grooves. Нажмите Insert. Закройте окошко свойств Groove.

В левой части окна по правой кнопке мыши вызовите свойства вашего сегмента - Properties. Здесь можно изменить его длину - Length, в закладке Loop установите галочку Infinite, т.е. зациклить произведение в бесконечный цикл.

Все, преобразование композиции в формат DM завершено, осталось только выполнить экспорт из вашего проекта в DLS/STY/SQT.

Настройка MusicInst.d

Код:
// Глобальные настройки
instance MUSICSYSCONFIG(C_MUSICSYS_CFG)
{
volume = 1;
bitresolution = 16;
globalreverbenabled = 0;
// отключаем ревер, попутно экономим ресурсы компьютера
reverbbuffersize = 0;
// ну и буфер его нам теперь не нужен
samplerate = 48000;
// хотя мои треки записаны в 48000, надо проверить на картах,
// где нет поддержки 48000 (у SBLive! и т.д. родная частота 48000)
numchannels = 2;
// каналов хватит 2-х, поскольку стерео
};
// теперь определение тем будет выглядеть так
instance MOD_DAY_STD(C_MUSICTHEME_STANDARD)
{
file = "melancholy.sgt";
transtype = TRANSITION_TYPE_NONE;
transsubtype = TRANSITION_SUB_TYPE_MEASURE;
};
// т.е. настройка ревера больше не нужна,
// аналогично все другие места, где присутствует ревер
// Обращаю внимание на то, что эти настройки нужны
// только для НАШЕЙ музыки, т.е. при нарезке MP3 в DLS,
// если писать музыку нормальным способом, как в
// оригинальной готике, то ревер и количество каналов убирать нельзя


Автор - Странник aka Wanderer. (Не знаю, он ли это)
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу