JUCE
Versão estável | 7.0.12 (15 de abril de 2024 | )
Escrito em | C++ |
Gênero(s) | biblioteca de software |
Licença | GNU General Public License |
Página oficial | www |
Repositório | github |
JUCE é uma estrutura de aplicação específica de código aberto e multiplataforma, escrita em C++ e utilizada para o desenvolvimento de aplicações móveis e de ambiente de trabalho. O JUCE é utilizado em particular pelas suas bibliotecas GUI e plug-in.
O objetivo do JUCE é permitir que o software seja escrito de forma a que o mesmo código-fonte seja compilado e executado de forma idêntica nas plataformas Windows, MacOS e Linux. Suporta vários ambientes de desenvolvimento e compiladores, tais como GCC, Xcode e Code::Blocks.
História
[editar | editar código-fonte]JUCE foi o resultado de uma divisão do código C++ subjacente desenvolvido por Julian Storer para criar as capacidades de áudio e gráficos da DAW do Tracktion (atualmente Waveform). Foi lançado ao público pela primeira vez em 2004. Está coberto por uma licença GPL/comercial dupla.
A JUCE e a Raw Material Software foram adquiridas em novembro de 2014 pelo fabricante de hardware ROLI, com sede em Londres, por um montante não revelado.[1] Como parte da aquisição, o fundador da JUCE, Jules Storer, juntou-se à ROLI como diretor de arquitetura de software e editor-chefe da JUCE. Jules anunciou aos utilizadores da JUCE que:
“ | "... num futuro próximo, continuarei a ser eu a escrever ou a aprovar cada linha de código que entra na biblioteca. Espero que, dentro de alguns anos, tenhamos uma equipa de grandes programadores que estejam a produzir código que corresponda perfeitamente à qualidade e ao estilo da base de código JUCE. | ” |
Apoio oficial
[editar | editar código-fonte]JUCE foi projetado para ser usado exatamente da mesma forma em múltiplas plataformas e compiladores. A Raw Material Software oferece a seguinte lista de plataformas e compiladores nos quais o suporte está oficialmente confirmado; outros podem funcionar, mas não foram oficialmente testados.
Plataformas suportadas
[editar | editar código-fonte]JUCE suporta as seguintes plataformas.
- Windows Vista, 7, 8 e 10.
- MacOS versões 10.7 e posteriores.
- iOS Versões 9 e posteriores.
- Kernel Linux séries 2.6 e posteriores.
- Android usando NDK-v5 e posterior.
Compiladores suportados
[editar | editar código-fonte]JUCE está oficialmente confirmado para funcionar corretamente com os seguintes compiladores.
- GCC Versões 5 e posteriores.
- LLVM - LLVM Clang versões 3.4 e posteriores
- Microsoft Visual Studio - Visual C++ 2015 e posteriores.
- MinGW.
Características
[editar | editar código-fonte]Como muitos outros frameworks (por exemplo, Qt, wxWidgets, GTK+, etc.), JUCE contém classes que fornecem uma gama de funções que cobrem elementos da interface do usuário, gráficos, áudio, XML e JSON, rede, criptografia, multi-threading, um interpretador integrado que imita a sintaxe ECMAScript e vários outros recursos comumente usados. Os programadores de aplicações que necessitam de várias bibliotecas de terceiros podem, por conseguinte, consolidar e utilizar apenas a biblioteca JUCE ou, pelo menos, reduzir o número de bibliotecas de terceiros que utilizam. Neste caso, a inspiração original foi o JDK de Java e a JUCE pretendia ser “algo semelhante para C++”.
Uma caraterística notável do JUCE em comparação com outros frameworks similares é seu grande conjunto de recursos de áudio; isso porque o JUCE foi originalmente desenvolvido como um framework para o Tracktion, um sequenciador de áudio, antes de ser dividido em um produto independente. JUCE tem suporte para dispositivos de áudio (como CoreAudio, ASIO, ALSA, JACK, WASAPI, DirectSound) e reprodução de MIDI, sintetizadores polifônicos, leitores embutidos para formatos de arquivos de áudio (como WAV, AIFF, FLAC, Mp3 e Vorbis), bem como wrappers para criar vários tipos de plug-ins de áudio, como instrumentos e efeitos VST. Isso levou ao seu uso generalizado na comunidade de desenvolvimento de áudio.[3]
JUCE vem com classes contentoras para criar plugins de áudio e de browser. Ao construir um plugin de áudio, é produzido um único binário que suporta múltiplos formatos de plugin (VST & VST3, RTAS, AAX, Audio Units). Como todo o código específico da plataforma e do formato está contido no contentor, um utilizador pode construir VST / VST3 / RTAS / AAX / AU para Mac e Windows a partir de uma única base de código.
Os plug-ins de navegador são tratados de forma semelhante: é produzido um único binário que funciona como um plug-in NPAPI e um plug-in ActiveX.
Ferramentas
[editar | editar código-fonte]O “Projucer” é uma ferramenta IDE para criar e gerir projectos JUCE. Quando os ficheiros e as configurações tiverem sido especificados para um projeto JUCE, o Projucer gera automaticamente uma coleção de ficheiros de projeto de terceiros para permitir que o projeto seja compilado nativamente em cada plataforma de destino. Atualmente, pode gerar projectos Xcode, projectos Visual Studio, Linux Makefiles, Android Ant builds e CodeBlocks. Além de fornecer uma forma de gerir os ficheiros e as definições de um projeto, também possui um editor de código, um editor de GUI integrado, assistentes para criar novos projectos e ficheiros e um motor de codificação em tempo real útil para a conceção da interface do utilizador.
Ver também
[editar | editar código-fonte]Referências
- ↑ Butcher, Mike (18 de novembro de 2014). «Music Hardware Maker ROLI Acquires JUCE, A Key Music Industry Framework». TechCrunch (em inglês). Consultado em 7 de junho de 2024
- ↑ «JUCE has been acquired by ROLI! | JUCE C++ Library». Juce.com. 18 de novembro de 2014. Consultado em 19 de março de 2016
- ↑ «Ecosystem». Consultado em 25 de abril de 2017. Arquivado do original em 7 de agosto de 2013