# Turtle Castle — оригинальная музыка и чиптюн

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

## Игровые файлы

Оригинальные треки из первоначальной версии проекта сохранены под прежними
именами:

- `day_1.mp3` … `day_4.mp3`;
- `night_1.mp3` … `night_4.mp3`.

Новые чиптюн-треки лежат рядом, но имеют следующие свободные номера:

| Исходник Strudel | Игровой MP3 | Характер | Тональный центр | Луп | MP3 |
|---|---|---|---|---:|---:|
| `day_1_shellbound_morning.strudel.js` | `day_5.mp3` | главная дневная тема | D major | 45 с | 90 с |
| `day_2_mosswork_market.strudel.js` | `day_6.mp3` | стройка и торговля | G major / E minor | 45 с | 90 с |
| `day_3_rampart_blueprint.strudel.js` | `day_7.mp3` | механическая инженерная тема | A dorian | 45 с | 90 с |
| `day_4_sunlit_carapace.strudel.js` | `day_8.mp3` | героическая светлая тема | F lydian | 45 с | 90 с |
| `night_1_crystal_siege.strudel.js` | `night_5.mp3` | первая атака | E minor | 30 с | 60 с |
| `night_2_four_lane_alarm.strudel.js` | `night_6.mp3` | тревога с разных направлений | C# minor | 30 с | 60 с |
| `night_4_last_wall_standing.strudel.js` | `night_7.mp3` | кульминационная оборона | F minor | 30 с | 60 с |

Новый `night_3` исключён по музыкальному решению и игрой не загружается.
В слоте `night_3.mp3` снова находится первоначальная версия именно `night_3`.

## Ротация в игре

- Днём оригинальный и чиптюн-наборы выбираются с весами `1:1`.
- Обычной ночью веса оригинального и чиптюн-наборов равны `3:1`.
- На большой четырёхсторонней волне веса меняются на `1:3`, поэтому новый
  чиптюн звучит заметно чаще.
- Внутри каждого набора работает отдельная перемешиваемая очередь без
  непосредственного повтора одного трека.

Большая волна определяется тем же игровым признаком
`NightWavePlan::has_all_four_lanes()`, который уже включает красную тревогу
ночных глаз. Музыка не влияет на состав, размер или сложность волны.

## Устройство чиптюна

Каждый исходник использует четыре Game Boy-подобных голоса:

1. `Pulse 1` — основная мелодия.
2. `Pulse 2` — ответ, контрмелодия или арпеджио.
3. `Wave` — бас через `triangle`.
4. `Noise` — ударные через фильтрованный `white`.

Композиции не транскрибируют `STAPLE R — Spiral (8-bit Ver.)`, а используют
только общие приёмы энергичного 8-битного чиптюна.

Во всех активных исходниках стоит `setcpm(120 / 4)`: один цикл длится две
секунды. Дневная форма занимает `22.5` цикла (45 секунд), ночная — `15`
циклов (30 секунд). Игровые MP3 содержат по два круга, чтобы кроссфейд
длительностью `1.8` секунды не попадал в конец файла.

## Экспорт

1. Откройте нужный `.strudel.js` в Strudel и запустите весь файл.
2. Экспортируйте WAV с частотой `48000` Гц и выключенным
   `Multi Channel Orbits`.
3. Для дневного трека задайте Start cycle `0`, End cycle `45`.
4. Для ночного трека задайте Start cycle `0`, End cycle `30`.
5. Кодируйте в stereo MP3, `48 kHz`, `256 kbps CBR`; пик после декодирования
   должен оставаться не выше `-1 dBFS`.

Исходники автономны и не требуют внешних сэмплов.
