Touhou Patch Center:BGM modding/ru-prereform

Для игръ Team Shanghai Alice
(Взято прямо изъ Discord)

​Поддерживаемые​ форматы, отъ наивысшаго до наинизшаго пріоритета
Въ идеалѣ, вы получили вашу модифицированную музыку въ форматѣ безъ потерь, а поддержка FLAC позволяетъ вамъ предоставить ​её​ напрямую къ вашимъ игрокамъ. На данный моментъ лучшій компромиссный варіантъ между сжатіемъ и качествомъ звука. Ограничено 16 битами. Используйте это только когда у васъ нѣтъ другого выбора и ваша модифицированная музыка настолько неясна/стара, что просто никогда не выпускалась въ другомъ форматѣ. Наиболѣе сложный форматъ для правильнаго ​циклированія​, также его нельзя воспроизвести въ ≥TH07.
 * FLAC (.flac)
 * Ogg Vorbis (.ogg)
 * MP3 (.mp3)

​Эти​ форматы совмѣстимы со всѣми ​шутерами​ ZUNа, поддерживаемыми thcrap (th06-th17).

[https://discord.thpatch.net/ Еще форматы? Поговорите со мной!] (Nmlgc)

Наложеніе ​патчей​

 * При наложеніи нѣсколькихъ ​патчей​ для музыки, пріоритетъ оцѣнивается въ порядкѣ каждаго ​патча​ передъ переходомъ къ слѣдующему. Это означаетъ, что MP3 изъ болѣе высокаго ​патча​ въ наложеніи всегда будетъ имѣть пріоритетъ надъ FLAC изъ болѣе низко расположеннаго ​патча​.
 * Файлы цикла всегда должны быть въ томъ же ​патче​ и имѣть такой же форматъ, что и вводный файлъ.

Какъ назвать ваши файлы
Посмотрите на столбецъ data filename въ спискѣ музыки Splashman'а, а также thcrap_log.txt (Ctrl-F для flac > ogg > mp3), чтобы убѣдиться, что вы правильно назвали файлы.

Расположеніе файловъ
Вы можете положить файлы въ корневую директорію ​патча​ или специфичную для каждой игры поддиректорію. Обычно вамъ слѣдуетъ выбрать корень ​патча​ – プレイヤーズスコア это th10_17 въ TH10–TH12, и th128_08 въ ≥TH12.8, размѣстивъ оба этихъ файла въ корневую директорію ​патча​ вы покроете ​всѣ​ ​этѣ​ (и ​послѣдующія​) игры. Но вы всё еще можете использовать специфичную для каждой игры поддиректорію если вы хотите ​отдѣльныя​ очки игрока для нѣкоторыхъ игръ, даже въ дополненіе къ помѣщенію стандартнаго файла въ корневую директорію ​патча​.

Также, для согласованности съ послѣдующими играми модификаціи BGM для TH06 не идутъ въ отдѣльную поддиректорію bgm/, вопреки тому что ​оригинальные​ файлы могутъ предложить.

Для самихъ ​патчей я рекомендую такое расположеніе если вы предоставляете одновременно музыку съ потерями качества и безъ:
 * _base: ​Модифицированныя изображенія и содержимое Музыкальной комнаты, всѣ музыкальныя дорожки ​доступныя только въ форматѣ MP3. Зависитъ отъ base_tsa
 * : Исходныя музыкальныя дорожки безъ потерь ​конвертированныя въ Vorbis. Зависитъ отъ _base
 * _lossless: Исходныя дорожки безъ потерь. Зависитъ отъ _base

Зацикливаніе
Каждая оригинальная дорожка можетъ быть представлена двумя ​аудіофайлами​ въ ​патче​: Файломъ вступленія использующимъ такое же названіе какъ и оригиналъ, и ​опціональнымъ​ файломъ зацикливанія съ .loop передъ расширеніемъ. Напримѣръ, для модификаціи главнаго меню TH06 въ форматѣ Ogg Vorbis, это будутъ th06_01.ogg и th06_01.loop.ogg.

Зацикливаніе управляется внутри путемъ простой перемотки файла играющаго сейчасъ сразу послѣ того какъ онъ заканчивается. ​Любыя​ значенія зацикливанія изъ игры или модификаціи точки зацикливанія игнорируются.

Это значитъ что вы можете пропустить файлъ .loop, вмѣстить всю дорожку въ "файлъ вступленія", и thcrap просто зациклитъ его.

Если у васъ ​есть​ ​исходные​ файлы безъ потерь, вы скорѣе всего захотите разрѣзать ихъ на два передъ конвертированіемъ результата въ Vorbis, въ случаѣ если вы хотите предоставить ​патчъ​ съ потерями.

Если по какой-то причинѣ вы не хотите зацикливать дорожку и она должна замѣняться другой сразу послѣ окончанія: Это эквивалентно "зацикливанію короткаго фрагмента тишины". Вставка ровно 4 секундъ тишины въ необходимый файлъ .loop будетъ лучшимъ рѣшеніемъ.

Какъ зацикливать файлы MP3
Для своего перваго MP3 дважды провѣрьте поддерживаетъ ли ​аудіоредакторъ​ который вы хотите использовать расширеніе LAME для сплошного MP3. (GoldWave v6.35 и Audacity 2.3.0 не поддерживаютъ.) Чтобы сдѣлать это ​сконвертируйте​ MP3 въ FLAC или WAV используя что-то что поддерживаетъ (Я использовалъ foobar2000 v1.4), и провѣрьте показываетъ ли вашъ редакторъ такое же количество тишины въ началѣ какъ и въ FLAC/WAV.

Если онъ не поддерживаетъ, всегда конвертируйте въ файлъ FLAC/WAV чтобы "примѣнить" удаленіе предварительнаго разрыва, и используйте этотъ конвертированный файлъ чтобы опредѣлить начало/конецъ цикла. (Послѣ того какъ циклъ заработаетъ, этотъ файлъ безъ потерь можно удалить.) Затѣмъ используйте pcutmp3 въ командной строкѣ дабы сдѣлать точную обрѣзку.

Да, къ сожалѣнію для этого вамъ потребуется Java. Нѣтъ, mp3DirectCut не будетъ работать.

java -jar pcutmp3.jar --crop 1:0-123,1:123-456 "C:\путь\къ\оригиналу.mp3" гдѣ 123 означаетъ начало цикла, и 456 означаетъ конецъ цикла.

Оговорки и ошибки ZUN'а
Вы можете пріобрѣсти исправленія для всѣхъ изъ нихъ! Пожалуйста обратитесь къ Nmlgc если вы заинтересованы!


 * TH06 это единственная игра гдѣ модификаціи BGM могутъ имѣть любую частоту дискретизаціи, глубину битовъ, и количество каналовъ.


 * TH06: Производительность при смѣнѣ дорожекъ можетъ быть немного улучшена.


 * TH09: Убѣдитесь что ваша модифицированная BGM главнаго экрана имѣетъ какъ минимумъ 0.3 секунды тишины въ началѣ. По какой-то причинѣ игра постоянно хочетъ играть тему главнаго экрана нѣкоторое количество времени до переключенія на настоящую тему бесѣды въ началѣ уровня. :zun:


 * TH11: Похожая ошибка, но съ темой 6 уровня: Игра начинаетъ играть нѣсколько миллисекундъ темы 6 уровня сразу послѣ входа на уровень, затѣмъ останавливаетъ ​ее, и продолжаетъ лишь спустя около 4.9 секундъ.


 * TH13: Performance when switching to the trance tracks and back could be improved a bit.

Touhou BGM changing for dummies
A simplified step-by-step tutorial

1.Open your thcrap folder and create a new folder. Name it as you wish.

2.Create a new folder within that new folder that you just created and name it if you feel like doing it.

3.Insert your audio file in the folder (the folder inside the folder) IMPORTANT You must use the correct naming scheme otherwise the game won't read it correctly. Use for naming.

4.Make sure the audio file is in .flac format, with 44100Hz sample rate and 16-bit sound depth. Audacity is a recommended program for all those tasks.

5.Go into the following location (still in thcrap folder, NOT THCRAP INSIDE GAME FOLDER) thcrap -> config and open the js file containing game data you wish to edit. The following file starts with '{   "console": false, "dat_dump": false, "patches": [ { IMPORTANT' Keep in mind how you named your game configuration (ex. if you want to replace an audio track in IN, make you are editing IN game configuration)

6.Add this line into the .js file :

}, { "archive": "*insert name of the folder/insert the name of the folder"

and make sure after everything is done that it's ended with:

} ] }

7. Run your game and it should be working.

''Note: In future games, the sampling rate might not be required to be 44100Hz and 16bit sound depth but I cannot confirm this statement. ''

'Still not working? Mail me (ratchet12663@gmail.com) or find me on reddit (u/d12trg)'

For Tasofighters (TH13.5, TH14.5, TH15.5)
From VasteelXolotl's AoCF Wiki Page

The above link includes example music replacement packs.

Music replacements are fully client-side and do not affect netplay in any way. You also don't actually touch the game's files, as this is a "softmod" through thcrap.

1) Setup
Make a new folder under thcrap's "repos" directory. Name it whatever you want, I just went with "bgm155" for simplicity.

In that folder, make another called "th155", then under that one make "data", then "bgm". Go back to the main thcrap folder, then go into the "config" folder. Somewhere in there should be a .js file named after your default configuration. If you haven't messed with anything when installing the english patch, it should be "en.js". Copy and paste it. Rename the copy to "bgm155.js". Open it in a text editor of your choice. The opened file should look similar to this

https://cdn.discordapp.com/attachments/475336678379356172/658734848982253579/1.PNG

Add your patch to this. Throw it in after all the other ones to prevent any issues. Make the file look more or less like this and save it.

https://cdn.discordapp.com/attachments/475336678379356172/658734850970484736/2.PNG Now find your th155 thcrap shortcut (in the main thcrap folder) and once again copy-paste it. Rename it to something convenient. Right click it and click Properties, then go into the Shortcut tab in the window that shows up. At the end of the Target field, change "en.js" to "bgm155.js". Press OK. You've got everything set up. Neat.

2) Actually replacing music
Each theme has 3 files - two .ogg files (one of which is simply just the music to play in-game, and the other is a 20-second preview for the stage select) and an .sfl file containing loop metadata for the in-game theme.

Rename them to fit AoCF's file names. For convenience, here they are.

Remember all those folders you made? Go down to the "bgm" folder and place the files you want there. Boom, you did it.

3) Changing in-game music titles
So you changed Marisa's theme to the objectively superior one, switched Nitori's theme to Aya's or something else entirely. There's one small problem, though - the music title doesn't match. You wanna fix that? Sure you do, or else it'll keep bugging you for all eternity. In the "bgm" folder, make a new file called "bgm.csv.jdiff". Open it in a text editor of your choice. Remember the numbers in brackets in the other paste? They'll come in handy now. Open a curly bracket in the first line. In the second line, type in the number of the theme you want to change in quotes, then a colon and another curly bracket, e.g "2": { In the next line, type in "7": "[track title]" If you want to change the name of the arranger/composer as well, you can do it as such in the next line: "8": "[composer name]" Afterwards, close the curly bracket in the next line with }. Repeat the above as many times as necessary, then add another }. You're done. Here's my jdiff file, if you need a reference

https://cdn.discordapp.com/attachments/475336678379356172/475367273134293022/jdiff.PNG

4) Custom loop points
Use Egor's .sfl loop tool.