Об этом проекте

Anklang — приложение цифрового синтеза аудио, предназначенное для создания и композиции музыки в реальном времени, а также другого аудиоматериала. Это переработка нескольких прежних аудиопроектов двух основных авторов, направленная на создание целостного, надёжного объединения для композиции и интерактивного создания синтезированной музыки. Проект можно собрать на Linux, клонировав репозиторий и выполнив `make`. Однако проще загрузить один из автономных релизных сборок AppImage, сделать его исполняемым и запустить. ## Разработка ### Дорожная карта По мере роста проекта дорожная карта была перенесена в [ROADMAP.md](ROADMAP.md). ### Структура проекта - `ase/` — исходники бэкенда C++23 (`*.c`, `*.h`, `*.cc`, `*.hh`) - `ase/api.hh` — публичный API для IPC между бэкендом и фронтендом - `trkn/` — исходники вендоров (tracktion_engine, JUCE) - `ui/` — веб-интерфейс (Vite, Tailwind, SolidJS) - `jsonipc/` — IPC для JSON-сообщений между бэкендом и браузером ### Сборка и тестирование - Сборка: `make` - Запуск всех тестов: `make check` - Запуск конкретного теста: `make check-<test_name>` (например, `make check-string_funcs`) - Прямой запуск теста: `out/lib/AnklangSynthEngine --test <test_name>` - Список доступных тестов: `out/lib/AnklangSynthEngine --list-tests` ### Рекомендации по тестированию - Для нового кода требуются соответствующие тесты - Избегайте тестов того, что уже гарантирует система типов - Используйте только методы, доступные в интерфейсе (расширяйте файлы `*.hh` при необходимости) ## Лицензия Это приложение, включая аудиодвижок, лицензировано под [MPL-2.0](https://github.com/tim-janik/anklang/blob/trunk/LICENSE). Однако плагины, которые могут использоваться с этим приложением или загружаться через пакеты расширений, могут подпадать под другие условия лицензирования, такие как GPLv3 или проприетарные лицензии.