Skip to content

Каркас модульного синтеза для создания свободных кроссплатформенных DAW и других свбодных программ.

License

Notifications You must be signed in to change notification settings

Seriy-MLGamer/Modularis_Core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Модулярис Ядро

Полный логотип Модулярис Ядро

Это свободный каркас модульного синтеза для создания свободных цифровых рабочих аудиостанций (DAW) и других свободных программ. На нём основана свободная модульная DAW Модулярис. Каркас обладает полной кроссплатформенностью между мобильными и стационарными устройствами, поддерживает различные языки программирования.

Суть каркаса

Свобода

Целью разработки этого каркаса является обеспечение доступности музыкального творчества для пользователей самых различных устройств. При проектировании архитектуры каркаса уделяется внимание её гибкости и расширяемости для возможности написания самых различных программ на основе этого каркаса. Свободная лицензия позволяет пользователям получить пользу от естественных свойств информации: возможность использовать каркас в любых целях, изучать и изменять его работу, делиться каркасом.

Модульный синтез

Синтезаторы, эффекты и инструменты управления ими являются модулями, к которым можно подключать другие модули на их входные и выходные порты. Это является более эффективной и гибкой архитектурой для написания музыки по сравнению с многодорожечной архитектурой. Архитектура модульного синтеза обладает большим потенциалом производительности, многопоточности и экономии памяти.

Возможности

Встраивайте в свои программы!

Каркас Модулярис Ядро можно использовать в качестве проигрывателя произведений, сделанных в программах на основе этого каркаса. С этими произведениями можно взаимодействовать запрограммированным вами способом.

Создавайте свои DAW!

Архитектура каркаса Модулярис Ядро позволяет создавать самые разные музыкальные редакторы, будь то секвенсорный DAW, модульный синтезатор, трекер или даже драм-машина!

Программируйте музыку!

С помощью каркаса Модулярис Ядро возможно написание музыки без использования DAW. Выберите язык программирования из поддерживаемых каркасом, создайте объект класса Modularis, объекты модулей, соедините их между собой, настройте их и выводите звук!

Поключайте плагины! (пока этого нет)

Каркас Модулярис Ядро поддерживает плагины VST3 и LV2, а также собственную гибкую и расширяемую систему плагинов.

Сохраняйте свои произведения в файлы! (этого пока тоже нет)

Каркас Модулярис Ядро реализует расширяемый формат файла проекта Модулярис, основанный на JSON для возможности ручного редактирования (на всякий случай). В файле содержится информация о настройках и соединениях модулей, плюс в нём может содержаться информация для DAW, в котором был создан проект (или что-то другое). Есть возможность создания как лёгкого файла с внешними зависимостями от плагинов, сэмплов или чего-то ещё, так и тяжёлого, но портативного файла со встроенными зависимостями.

Лицензия

Модулярис Ядро - свободное ПО: вы можете перераспространять его и/или изменять его на условиях Стандартной общественной лицензии GNU в том виде, в каком она была опубликована Фондом свободного программного обеспечения; либо версии 3 лицензии, либо (по вашему выбору) любой более поздней версии.

ПО Модулярис Ядро распространяется в надежде, что оно будет полезно, но БЕЗО ВСЯКИХ ГАРАНТИЙ; даже без неявной гарантии ТОВАРНОГО ВИДА или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННЫХ ЦЕЛЕЙ. Подробнее см. в Стандартной общественной лицензии GNU.

Вы должны были получить копию Стандартной общественной лицензии GNU вместе с этим ПО. Если это не так, см. https://www.gnu.org/licenses/.

Стандартная общественная лицензия GNU версии 3

С использованием каркаса Модулярис Ядро возможно создание только только свободного программного обеспечения на условиях Стандартной общественной лицензии GNU.

Всё только продолжается! Каркас расширяется!

Модулярис Ядро 0.0.0pre-alpha-raw

Каркас переписан на C и теперь поддерживает 2 языка программирования: C и C++. Поддержка C++ осуществляется через языковую привязку - Модулярис Ядро С++.

Содержание каркаса на данный момент осталось тем же.

Содержание каркаса

  • Modularis

Возможен однопоточный синтез звука. Есть режим "ленивое обновление" - модули, не подключенные прямо или косвенно к модулю Output, не обновляются. Формат системного звукового фрейма - 32-битное число с плавающей точкой.

Модули

Инструменты управления

  • Sequencer

Возможно полифоническое проигрывание нот с фиксированными частотой и динамикой.

Синтезаторы

  • Oscillator

Возможно полифоническое проигрывание звука с фиксированной огибающей одного из 4 видов волн: синусоидального 0, треугольного 1, пилообразного 2, прямоугольного 3.

Порты

  • Note

Порт для передачи нот.

  • Sound

Порт для передачи одного канала звуковой волны.

Контроллеры

  • Integer_controller
  • Real_controller

Системные

  • Ports_folder

Группа портов, которую можно подключать к другим портам и группам и отключать от них как единое целое.

Теперь вы знаете о возможностях каркаса на данный момент. Самое время их испытать!

Инструкция по сборке, упаковке и тестированию

Зависимости

Перед началом следующих процедур необходимо установить данные сборочные зависимости:

  • CMake

GNU/Linux

  • GCC (рекомендуется; работоспособность Clang не проверена);
  • Make (или подобная программа, если заработает);

Windows

  • mingw32-w64 GCC (рекомендуется; работоспособность компилятора Visual Studio не проверена);
  • mingw32-w64 Make (или подобная программа, если заработает);

Настройка

Перед началом следующих процедур вы можете настроить их в файле "configuration.cmake". Подсказки по настройке в файле.

Затем сгенерируйте файл сборки с помощью следующих команд:

Bash

$ mkdir out
$ cd out
$ cmake .. -G "Unix Makefiles"

CMD

>mkdir out
>cd out
>cmake .. -G "MinGW Makefiles"

Сборка

Выполняется с помощью следующей команды:

Bash

$ make

CMD

>mingw32-make

Установка

Данная команда выполнит установку каркаса:

Bash

$ make install

CMD

>mingw32-make install

Удаление

Данная команда выполнит удаление каркаса из папки установки:

Bash

$ make uninstall

CMD

>mingw32-make uninstall

Упаковка

Упаковка производится с помощью утилиты CPack - части CMake. Чтобы в GNU/Linux файлы пакета имели правильные права, рекомендуется производить упаковку со сборкой от имени суперпользователя:

Bash

$ sudo cpack

CMD

>cpack

Тестирование

После вышеперечисленных процедур можно протестировать каркас, собрав и запустив тестовые программы, использующие этот каркас, одна из которых написана на C, а другая - на C++. В них находится мой небольшой трек.

Для этого сначала установите каркас. Затем установите библиотеку SDL2. После этого в папке "test" выполните следующую команду, если хотите протестировать C:

Bash

$ ./test-c

CMD

>test-c

Либо выполните следующую команду, если хотите протестировать C++:

Bash

$ ./test-cpp

CMD

>test-cpp

Эти сценарии сборки рассчитаны на работу с компилятором GCC. Но, возможно, ручная компиляция теста другим комиплятором с подобными аргументами компиляции не составит большого труда.

При тестировании в Windows убедитесь, что файлы статических и динамических библиотек SDL2 находятся в папке "test" либо библиотека SDL2 добавлена в переменные среды PATH (<корневая папка SDL2>\bin), CPATH (<корневая папка SDL2>\include) и LIBRARY_PATH (<корневая папка SDL2>\lib).

Приятного использования этого каркаса!

About

Каркас модульного синтеза для создания свободных кроссплатформенных DAW и других свбодных программ.

Topics

Resources

License

Stars

Watchers

Forks