JUCE
以C++架構,提供一套跨平台的開發環境,可開發出Windows、Mac、Linux、iOS、Android用的應用程式。
功能
- Compile code in real time, allowing to visualise the interface instantly
- Live coding environment for any type of code, including sound
- Live coding per component, allowing to test parts of your project individually
- Use in conjunction with any IDE
- Manipulate graphically the values of variables and literals with sliders and colour picker
In addition to this revolutionary live coding environment, the Projucer is also a cross-platform project management tool that can export platform-specific projects for your IDE:
- Manage your projects across all platforms
- C++ code editor
- Export Xcode projects for OSX and iOS
- Export Visual Studio projects up to VS2015
- Export Android Studio projects
- Create Linux makefiles
- Export Code::Blocks projects
更新介紹
Push Notifications
JUCE現在支持iOS和Android上的通知。可以從JUCE應用程序發送和接收本地通知,以及從Apple推送通知服務或Google Firebase接收遠程通知。用戶可以直接通過通知與JUCE應用程序進行交互,方法是按下通知中嵌入的按鈕或根據需要輸入文本響應。支持的平台包括iOS 10或更早版本,以及Android O或更早版本(低至Android 4.0.3 Ice Cream Sandwich)。隨附的演示應用程序展示了每個平台上本地通知的可用設置以及接收遠程通知。
CLion Exporter
Projucer現在包含一個CLion導出器,使JUCE用戶能夠在JetBrains最先進的C ++ IDE中編輯和編譯他們的項目。CLion導出器生成一個CMakeLists.txt,可以在MacOS,Windows和Linux上打開。
Analytics Module
JUCE 5.2包含一個新模塊,其中包含的類使您可以更輕鬆地從應用程序中收集分析。新的示例應用程序AnalyticsCollection說明瞭如何使用此新模塊將應用使用信息傳輸到Google Analytics。同時還支持同時登錄其他分析集合端點(如Firebase)。
Detailed list of new Features
Projucer
- Support for CMake exporter
- Support for JUCE apps sending analytics with various analytics backends
- Added a company copyright field to the project settings
- The Projucer will now automatically copy your plug-in files to the correct folders on Windows
- Added an option to set the debug information format for each build configuration to the VS exporter
- Added support for adding asm files to Android projects
- Added a link-time optimisation option to all exporters
- Added more thorough checking of pkg-config dependencies
- Added a device family option to the iOS exporter
- Added a "Header search paths" field to the project settings page that will be used for all exporters
- Live-build reliability and usability improvements
Audio/MIDI and Plug-Ins
- Added support for AUv2 Midi Effect plug-in hosting
- Added support for Atmos 7.0.2 and 7.1.2 Surround formats
- Added support for the OGG sub-format inside a WAV file
- Added support for querying the audio hardware on how many overruns/underruns occurred
- Enabled non-message thread creation of AudioProcessorValueTreeState
- Added a method MidiMessage::withTimeStamp, and some MidiMessageSequence unit-tests
- Added unique id property when creating virtual midi ports on macOS and iOS
- Added missing save state when the standalone app is closed
- Change MPEInstrument::voicesLock member from private to protected so that sub-classes can lock the voicedLock
- VST2: Added warnings if the plug-in version number cannot be displayed by Cubase's version encoding
- VST3: First add Midi controller changes and then add other midi events to ensure that all-notes off events occur before any note-on event with the same sampleOffset
- VST2: Ensured that the VST2 version number is encoded correctly for display in Cubase and when hosting VST2 plug-ins in JUCE
Mobile
- Support for push notifications
- Enable “scroll on drag” mode by default on Android and iOS
- Make sure nav bars get hidden when asking for full screen mode on Android
- Added support to specify a different interface orientation on iPad vs. iPhone
- Implement Process::hide on mobile platforms
- Added support for multi-touch drag and drop
- Added support for all marketing icons to the iOS exporter
Desktop
MacOS: In App Purchase feature is now available on Mac OS too
GUI, Graphics & OpenGL
- Improved the performance of 3D rendering when multiple OpenGL contexts are used at the same time
- Tweaked the rate at which EdgeTable grows its internal storage, to improve performance rendering large and complex paths
- Increased the contrast for selected text when using LookAndFeel_V4
- Added a parameter to Slider::setPopupDisplayEnabled() to set the timeout for displaying the popup display on mouse hover
- When calling repaint() without a MessageManagerLock, it now always asserts
- Added method Viewport::recreateScrollbars()
Cross platform
JUCE facilitates the management of projects running on several platforms. JUCE supports Windows, Mac OS, Linux, iOS and Android.
User Interface & Graphics
JUCE makes it easy to build a versatile UI that can run on any platform and integrate OpenGL. JUCE handles 2D rendering engines, image format handling and font functionality.
The Projucer
The Projucer is JUCE's project management tool, featuring the Instant Compilation Environment engine (the ICE engine), allowing to visualise instantly changes in the code.
Audio & plug-ins
Manage audio I/O, audio file reading and writing, and deploy all plugin formats. Build VST, VST3, AU, RTAS and AAX format plugins with ease, and host VST and AU plugins inside your own applications.
MIDI, MPE & OSC
JUCE provides full MIDI support, as well as the new Multidimensional Polyphonic Expression protocol, and Open Sound Control (OSC).
Complete API documentation and coding standards
Browse the API to discover more features covering XML & JSON, application utilities, networking, cryptography, and more. Read more about Jules’ coding standards.
macOS | Windows | Linux |
---|---|---|
10.9 or higher | 8.1 or higher | Ubuntu 16.04.3 LTS |
Xcode 7.3 or higher | Visual Studio 2015 or higher | Makefile |
64 Bit |
Open source projects may use JUCE for free.
Commercial releases using JUCE require JUCE Indie or JUCE Pro.
JUCE Indie
Professional JUCE licencing for independent developers
Revenue or funding limit $200k
Premium support X
JUCE Pro
Professional JUCE licencing for businesses and teams
Revenue or funding limit No limiit
Premium support Available