Список изменений

Версия 1.0.0 (23.05.2026)

  • Интеграция с Windows (winres): Внедрена нативная сборка ресурсов Windows с помощью winres. Исполняемый файл теперь компилируется со встроенной иконкой высокого разрешения icon.ico.
  • Системный трей: Разработан парсер ICO-файлов в setup.rs, извлекающий заготовки максимального разрешения прямо из бинарных ресурсов для корректного и сглаженного отображения иконки в системном трее.
  • Анализатор спектра (БПФ): Разработан асинхронный анализатор спектрограммы высокого разрешения на базе БПФ (FFT) с окном Ханна. Отрисовка и спектральная анимация выполняются через кастомный WGSL-шейдер в реальном времени.
  • Стабильность кроссфейда: Исправлен баг в cubeb_host.rs: флаг конца трека (track_eof) теперь корректно разделен на логический конец декодирования (decoder_eof) и физическое опустошение кольцевого буфера. Это предотвращает преждевременное переключение треков во время активного кроссфейда.
  • Опции UI: Добавлена информационная вкладка «О программе» в меню настроек.
  • Доработки верстки: Оптимизирован размер кнопок A-B лупинга до 20x20 пикселей, добавлены текстовые лейблы для всех основных слайдеров DSP-тракта.

Версия 0.9.0 (21.05.2026)

  • 3D-виртуализатор HRTF: Разработан модуль Hrtf3DVirtualizer для имитации трехмерной акустической сцены при прослушивании в наушниках: Mid/Side декомпозиция, пиковый фильтр на 3 кГц для симуляции резонанса ушного канала, режекторный фильтр на 6.5 кГц для выноса вокала вперед, эмуляция ранних отражений (0.9 мс, -15.5 дБ), режекторный срез на 8 кГц для Side, моделирование задержки ITD (0.28 мс) и акустической тени головы.
  • DynamicsPre (Входная динамика): Реализован блок фильтрации неслышимого инфрабаса (20 Гц HPF Линквица-Райли 4-го порядка) для разгрузки усилителей, срез ультразвука (22 кГц LPF) и блок автоматической регулировки усиления (AGC) с медленным RMS-детектором (целевой уровень -16 dBFS).
  • DynamicsPost (Выходной лимитер): Разработан упреждающий пиковый лимитер (Look-ahead) с буфером задержки 2 мс (атака 0.5 мс, спад 50 мс) для предотвращения цифрового клиппинга на выходе.
  • A-B Лупинг: Реализована функция циклического воспроизведения отрезка A-B с возможностью визуального фиксирования точек начала и конца петли на интерактивном вейвформе.
  • Кривые громкости: Добавлены логарифмическая и гибридная кривые масштабирования аппаратной громкости.

Версия 0.8.0 (20.05.2026)

  • SoundUP RT — Басовый резонатор: Выделяет низкие частоты ниже 100 Гц с помощью фильтра Линквица-Райли 4-го порядка и генерирует субгармоники методом нелинейной сатурации ADAA-tanh для придания плотности басу.
  • SoundUP RT — Декоррелятор Хааса: Расширяет стереобазу путем задержки высокочастотных компонентов (выше 800 Гц) в одном из каналов на 1.2 мс.
  • SoundUP RT — Модуль ATR: Находит резкие атаки и транзиенты в СЧ/ВЧ-спектре (около 6.5 кГц) с помощью быстрой и медленной огибающих, динамически акцентируя их фазу нарастания.
  • SoundUP RT — Эксайтер ВЧ: Извлекает гармоники из полосы 4.5 кГц, генерирует четные и нечетные обертоны выше 11 кГц с помощью полиномиального синтеза и подмешивает розовый шум для воссоздания «воздушной» текстуры (фильтр Баттерворта 16–36 кГц).
  • SoundUP RT — Ленточный сатуратор: Эмулирует мягкое насыщение магнитной ленты на Mid-канале с регулировкой уровня перегрузки.
  • Интерфейс SoundUP RT: В меню настроек добавлен блок «SoundUP RT» со слайдерами регулировки интенсивности для всех пяти модулей.
  • Панель управления: На главную панель управления плеера добавлена кнопка активации будущего реалтайм-спектроанализатора.

Версия 0.7.0 (16.05.2026)

  • Изменение темпа и тона: Разработан блок изменения высоты тона и темпа (TimeStretchEngine) с алгоритмами WSOLA, Phase Vocoder и Resampling (Pitch Linked).
  • Ревербератор Шредера: Реализован пространственный ревербератор SchroederReverb на базе сети гребенчатых и всепропускающих фильтров Шредера с регулировкой размера виртуальной комнаты.
  • Crossfeed: Добавлен блок Crossfeed (подмешивание каналов с задержкой в 320 мкс для симуляции акустических систем при прослушивании в наушниках).
  • Тонкая коррекция сигнала: Создан блок тонкой коррекции сигнала (SignalCorrector), поддерживающий регулировку смещения таймингов (Time Alignment) в миллисекундах, поканальную инверсию фазы и моно-сведение (Downmix).
  • Редактор кривых Безье: Внедрена поддержка интерактивного редактора геометрических кривых Безье для процессов Fade-In и Fade-Out. Пользователь может визуально настраивать форму спада и нарастания громкости на координатной сетке, а логарифмический интерполятор на лету рассчитывает громкость при микшировании.
  • Умный Shuffle: Реализован усовершенствованный алгоритм случайного воспроизведения («Перемешивание + Алгоритмическая аппроксимация случайности»), который перетасовывает плейлист и страхует слушателя от повторов на стыках циклов, закрепляя текущий трек на нулевом индексе.
  • Быстрые настройки DSP (Quick DSP): На панель управления добавлен вызов окна быстрых настроек DSP («Quick DSP Settings») с физическими слайдерами скорости, тональности, темпа, реверберации, кроссфида и баланса.

Версия 0.6.0 (13.05.2026)

  • Аудио-бэкенд Cubeb: Низкоуровневый аудиодвижок CPAL полностью заменен на мультимедийную библиотеку Cubeb для более стабильного вывода под Windows (поддерживаются WASAPI Shared, WASAPI Exclusive и ASIо-драйверы).
  • Выбор аудиоустройств: Реализована функция сканирования и выбора физических звуковых устройств вывода (audio_device).
  • Бесшовный Crossfade: Полностью переписан декодирующий поток (decoder.rs). Внедрена поддержка бесшовного смешивания треков (Crossfade) при переходе. Аудиодвижок теперь может одновременно декодировать и микшировать несколько аудиопотоков в рамках одной структуры DecStream со своим шагом затухания/нарастания громкости.
  • Кастомизация скругления: Добавлен слайдер кастомизации скругления элементов интерфейса (параметр ui_rounding в настройках).
  • Светлая тема: Разработана светлая тема оформления Light Pearl.

Версия 0.5.0 (11.05.2026)

  • Ресемплер: Внедрен алгоритм ресемплирования (StreamResampler) с поддержкой линейной интерполяции, кубического сплайна Эрмита и оконного 16-точечного Sinc-фильтра с окном Ланцоша для реалтайм-сглаживания.
  • Дизеринг: Разработан блок дизеринга (Ditherer) с алгоритмами Triangular (TPDF), Shaped (фильтрация ошибок) и NS5 (Noise Shaping 5-го порядка) для вывода звука в 16- и 24-битном режимах.
  • DSD-модуляция: Реализован симулятор 5-порядочного Sigma-Delta модулятора (SDM) для преобразования PCM-потока в DSD.
  • 32-bit Float архитектура: Сигнальный тракт полностью переведен на высокоточную 32-bit Float архитектуру.
  • Автосогласование параметров: Реализовано автоматическое согласование частоты дискретизации (Sample Rate Negotiation) и размера аппаратного буфера с аудиокартой.
  • Экран настроек: Разработан новый экран настроек («Settings UI») со сложной боковой иерархической структурой категорий и интерактивным блоком технической документации («Documentation Box»), выводящим детальное описание каждого выбранного параметра.
  • Монитор потока: Внедрен системный монитор потока аудиодвижка (Info Monitor), показывающий текущий API, частоту, задержку буфера, режим дизеринга и лимитера в реальном времени.

Версия 0.4.0 (10.05.2026)

  • Прилипание окна (Aero Snap): Разработан механизм, благодаря которому при перетаскивании кастомного окна плеера близко к границам экрана оно автоматически примагничивается к краям рабочего стола.
  • Рекурсивный перенос плейлистов: Добавлена функция рекурсивного переноса плейлистов между категориями (ChangePlaylistCategory). При смене категории у родительского плейлиста все вложенные дочерние структуры также автоматически переносятся в новую категорию в базе данных.
  • Контроль дубликатов: Улучшены проверки безопасности при импорте файлов перетаскиванием для исключения дублирования путей в БД.
  • Исправление ошибок воспроизведения: Исправлен баг интерфейса, из-за которого нажатие на кнопку Play/Pause при определенных условиях могло быть ложно интерпретировано как сигнал к полной остановке воспроизведения (StopPlayback).

Версия 0.3.0 (07.05.2026)

  • Вертикальное меню: Редактор БД переведен на вертикальную схему меню: вкладки перенесены в боковой сайдбар. Текст вкладок рендерится вертикально благодаря новому режиму Mode 3u в шейдере, позволяющему накладывать сгенерированную текстуру текста на повернутые полигоны.
  • Рендеринг обложек: Интегрирован алгоритм ресайза изображений Lanczos3 (image_proc.rs), позволивший реализовать поддержку обложек плейлистов (хранятся в виде PNG/JPG/WEBP прямо в BLOB-поле базы данных).
  • Предпросмотр обложек: Добавлена отрисовка обложек в плеере, а также мини-предпросмотр обложки во всплывающем окне при наведении курсора на плейлист в редакторе.
  • Drag-and-Drop: Реализован механизм перетаскивания файлов из проводника ОС напрямую в окно плеера. При перетаскивании программа асинхронно считывает метаданные, добавляет записи в глобальную базу треков и привязывает их к активному плейлисту.
  • Сводка импорта: Добавлено всплывающее информационное окно со сводкой импорта (DnD Summary), показывающее количество успешно добавленных и пропущенных файлов.
  • Фильтрация плейлистов: В Редакторе БД добавлен выпадающий список для фильтрации плейлистов по категориям.
  • Фильтрация отсутствующих: Добавлен быстрый фильтр треков по статусу «Отсутствует на диске».

Версия 0.2.0 (05.05.2026)

  • Расширение метаданных: В базу данных (tracks) добавлены новые поля: год выпуска (release_date), исполнитель (artist) и оригинальный заголовок (tag_title).
  • Автоматический парсинг тегов: Реализован фоновый парсинг метаданных и тегов (исполнитель, название, год) при добавлении аудиофайлов через Symphonia.
  • Редактирование тегов: Добавлена возможность просмотра и детального редактирования тегов и дополнительной информации о треках непосредственно в плеере через выпадающее подменю свойств трека.
  • Система локализации: Реализована полноценная система локализации. Созданы внешние файлы ресурсов локализации для русского (ru-RU.loc) и английского (en-US.loc) языков.
  • Сохранение сессии: Плеер автоматически записывает в settings.json и восстанавливает при запуске последний открытый плейлист, выбранный трек и точную позицию воспроизведения.
  • Редактор БД: Интерфейс разделен на три вкладки («Категории», «Плейлисты», «Треки») вместо перегруженного общего экрана.
  • Валидация файлов: Разработан инструмент поиска и сканирования физически отсутствующих файлов на диске с маркировкой записей в БД тегом [Отсутствует].
  • Файловая структура: Внедрен переключатель отображения файловой структуры: треки в базе можно просматривать плоским списком либо в виде дерева папок.
  • Сортировка: Добавлены фильтры для сортировки треков по алфавиту и дате выпуска.
  • Переназначение путей: Добавлена возможность переназначения пути к файлу для записей в БД.

Версия 0.1.0 (03.05.2026)

  • Базовая архитектура и хранение данных: Разработана библиотека core_db для работы с базой данных music.db на SQLite (используется драйвер rusqlite с бандлингом).
  • Реляторная схема БД: Реализована схема данных, включающая таблицы: categories (группировка плейлистов с сортировкой порядка), playlists (иерархические древовидные связи parent_id, каскадное удаление и JSON-настройки), tracks (метаданные аудиозаписей, относительные пути и длительность) и playlist_tracks (назначение треков в плейлисты с настраиваемым порядком track_order).
  • Рекурсивные запросы: Реализован рекурсивный CTE-запрос для автоматического получения всех треков из выбранного плейлиста и всех его дочерних подплейлистов.
  • Аудиовывод: Реализован кроссплатформенный аудиовывод на CPAL с использованием асинхронного кольцевого буфера ringbuf без блокировок.
  • Декодирование аудио: Интегрирован декодер symphonia для чтения популярных форматов аудио: MP3, FLAC, WAV, OGG, OPUS, M4A.
  • Многопоточный тракт: Создан многопоточный сигнальный тракт: основной аудиопоток декодируется в фоновом потоке, а микширование фоновых звуков (Ambient-каналы) происходит в отдельном выделенном потоке.
  • Эквалайзер: Реализован 12-полосный параметрический эквалайзер на каскаде биквадратных пиковых фильтров (частоты от 16 Гц до 16 кГц).
  • Soundgoodizer: Внедрен процессор динамической обработки Soundgoodizer: многополосный кроссовер на базе фильтров Линквица-Райли 4-го порядка (разделение на Low/Mid/High на частотах 250 Гц и 4000 Гц) с независимыми компрессорами и нелинейной сатурацией в четырех режимах (A, B, C, D).
  • Мягкий клиппинг: Добавлен алгоритм мягкого ограничения амплитуды (Soft Clip) через гиперболический тангенс (tanh) на выходе микшера.
  • Аппаратный рендер: Разработан аппаратный рендер интерфейса на базе WGPU (v25) и оконного фреймворка winit. Текст отрисовывается через библиотеку glyphon.
  • Эффекты интерфейса: Написан кастомный графический шейдер (shader.wgsl), поддерживающий скругление углов примитивов и эффект размытия заднего плана (Glassmorphism) на основе псевдослучайного шума (interleaved gradient noise) и многопроходной выборки текстуры бэкбуфера.
  • Кастомное окно: Создан кастомный оконный интерфейс без системных рамок с возможностью перетаскивания за верхнюю панель, кнопками сворачивания и закрытия.
  • Интеграция с системой: Добавлена поддержка иконки в трее (tray-icon) и контекстного меню (muda).
  • Экраны приложения: Созданы два экрана: «Плеер» (воспроизведение, список треков с интерактивным волновым спектром для перемотки) и «Редактор БД» (инструменты наполнения базы данных).