СОК

Среда разработки кроссплатформенных приложений на C++
JUCE (расширения служебных классов Жюля)
Оригинальный автор(ы)Джулиан Сторер
Первоначальный выпуск2004 ; 20 лет назад ( 2004 )
Стабильный релиз
7.0.12 / 15 апреля 2024 г. ; 6 месяцев назад [1] ( 2024-04-15 )
Репозиторий
  • github.com/juce-framework/JUCE
Написано вС++
Операционная системаКроссплатформенный
ТипБиблиотека разработки
ЛицензияGPL , коммерческая
Веб-сайтwww.juce.com

JUCE — это кроссплатформенный фреймворк приложений C++ с открытым исходным кодом , используемый для разработки настольных и мобильных приложений. JUCE используется, в частности, для своих библиотек GUI и подключаемых модулей . Он имеет двойную лицензию под GPLv3 и коммерческую лицензию. [2]

Цель JUCE — позволить писать программное обеспечение таким образом, чтобы один и тот же исходный код компилировался и работал одинаково на платформах Windows , macOS и Linux . Он поддерживает различные среды разработки и компиляторы.

История

JUCE появился в результате разделения базового кода C++ , разработанного Джулианом Сторером для создания графических и аудиовозможностей DAW Tracktion (теперь Waveform) . Впервые он был выпущен для публики в 2004 году. Он распространяется по двойной лицензии GPL /коммерческой лицензии.

В ноябре 2014 года компании JUCE и Raw Material Software были приобретены лондонским производителем оборудования ROLI за нераскрытую сумму. [3]

В апреле 2020 года было объявлено, что JUCE был продан компанией ROLI компании PACE Anti-Piracy Inc. [4]

Официальная поддержка

JUCE предназначен для использования абсолютно одинаково на разных платформах и компиляторах. Raw Material Software приводит следующий список платформ и компиляторов, поддержка которых официально подтверждена; другие могут работать, но официально не тестировались.

Поддерживаемые платформы

JUCE поддерживается на следующих платформах.

  • Windows Vista , 7 , 8 и 10
  • macOS версии 10.7 и более поздние
  • iOS версии 9 и более поздние
  • Ядро Linux серии 2.6 и более поздние
  • Android с использованием NDK-v5 и более поздних версий

Поддерживаемые компиляторы

Официально подтверждено, что JUCE корректно работает со следующими компиляторами.

  • GCC версии 5 и более поздние
  • LLVM - LLVM Clang версии 3.4 и более поздние
  • Microsoft Visual Studio — Visual C++ 2015 и более поздние версии

Функции

Как и многие другие фреймворки (например, Qt , wxWidgets , GTK и т. д.), JUCE содержит классы, предоставляющие ряд функций, которые охватывают элементы пользовательского интерфейса, графику, аудио, анализ XML и JSON , сетевые технологии , криптографию , многопоточность , интегрированный интерпретатор, имитирующий синтаксис ECMAScript , и различные другие часто используемые функции. Разработчики приложений, которым требуется несколько сторонних библиотек, могут, таким образом, объединить и использовать только библиотеку JUCE или, по крайней мере, сократить количество используемых ими сторонних библиотек. В этом случае первоначальным источником вдохновения был JDK Java , а JUCE был задуман как «нечто подобное для C++».

Примечательной особенностью JUCE по сравнению с другими подобными фреймворками является его большой набор аудиофункций; это связано с тем, что JUCE изначально разрабатывался как фреймворк для Tracktion , аудиосеквенсора, прежде чем был выделен в отдельный продукт. JUCE поддерживает аудиоустройства (такие как CoreAudio , ASIO , ALSA , JACK , WASAPI , DirectSound ) и воспроизведение MIDI , полифонические синтезаторы , встроенные ридеры для распространенных форматов аудиофайлов (таких как WAV , AIFF , FLAC , MP3 и Vorbis ), а также оболочки для создания различных типов аудиоплагинов, таких как эффекты и инструменты VST . Это привело к его широкому использованию в сообществе разработчиков аудио. [5]

JUCE поставляется с классами-оболочками для создания аудио- и браузерных плагинов. При создании аудиоплагина создается один двоичный файл, который поддерживает несколько форматов плагинов ( VST и VST3, RTAS , AAX, Audio Units ). Поскольку весь код, специфичный для платформы и формата, содержится в оболочке, пользователь может создавать VST/VST3/RTAS/AAX/AU для Mac и Windows из одной кодовой базы. Так как JUCE7 также возможно нацеливание и размещение плагинов LV2 . [6] Ранее это делалось с использованием различных форков. [7] [8]

Плагины браузера обрабатываются аналогичным образом: создается один двоичный файл, который функционирует и как плагин NPAPI , и как плагин ActiveX .

Инструменты

"Projucer" — это IDE- инструмент для создания и управления проектами JUCE. Когда файлы и настройки для проекта JUCE указаны, Projucer автоматически генерирует набор сторонних файлов проекта, чтобы проект можно было скомпилировать нативно на каждой целевой платформе. В настоящее время он может генерировать проекты Xcode , проекты Visual Studio , файлы Makefile Linux, сборки Android Ant и проекты CodeBlocks . Помимо предоставления способа управления файлами и настройками проекта, он также имеет редактор кода, интегрированный редактор GUI, мастера для создания новых проектов и файлов, а также механизм кодирования в реальном времени, полезный для проектирования пользовательского интерфейса.

История версий

  • Версия 1 - 2004 г.
  • Версия 4 — ноябрь 2015 г.
  • Версия 5 — апрель 2017 г.
  • Версия 6 — апрель 2020 г. — основные обновления включают добавление поддержки CMake для сборки проектов, переработку модуля DSP, внедрение поддержки VST3 в Linux и поддержку Clang для Windows, а также обновленные компоненты WebView в macOS/iOS и ряд других улучшений, специфичных для платформы.
  • Версия 7 — июнь 2022 г. — существенные обновления включают введение Audio Random Access (ARA) SDK и поддержку подключаемого модуля LV2, новые параметры рендеринга для macOS и iOS, аппаратно-синхронизированную отрисовку на разных платформах, обновленные API Android, обновленный AudioPlayHead и улучшенные функции доступности. [9]

Смотрите также

Ссылки

  1. Том Пул (15.04.2024). "7.0.12". github.com . Получено 15.05.2024 .
  2. ^ Лицензия JUCE, JUCE, 18 апреля 2022 г. , получено 18 апреля 2022 г.
  3. ^ "Производитель музыкального оборудования ROLI приобретает JUCE, ключевую структуру музыкальной индустрии". TechCrunch. 2014-11-18 . Получено 2016-03-19 .
  4. ^ "JUCE объявляет о приобретении компанией PACE | JUCE". juce.com . Архивировано из оригинала 2020-04-19 . Получено 2022-03-30 .
  5. ^ "Экосистема". Архивировано из оригинала 7 августа 2013 г. Получено 25 апреля 2017 г.
  6. ^ Заметки о выпуске JUCE7: https://github.com/juce-framework/JUCE/releases/tag/7.0.0
  7. ^ DPF-форк falkTX: https://github.com/DISTRHO/juce
  8. ^ Форк проекта KottV lv2-porting-project https://github.com/lv2-porting-project/JUCE
  9. ^ "JUCE/ChangeList.txt в master · juce-framework/JUCE". GitHub . Получено 2023-09-15 .
  • Официальный сайт
Взято с "https://en.wikipedia.org/w/index.php?title=JUCE&oldid=1256880829"