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.

JUCE
Logótipo
JUCE
Versão estável 7.0.12 (15 de abril de 2024; há 2 meses)
Escrito em C++
Gênero(s) biblioteca de software
Licença GNU General Public License
Página oficial www.juce.com
Repositório github.com/juce-framework/JUCE

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

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:

[2]

Apoio oficial

editar

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

JUCE suporta as seguintes plataformas.

Compiladores suportados

editar

JUCE está oficialmente confirmado para funcionar corretamente com os seguintes compiladores.

Características

editar

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

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

Referências

  1. 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 
  2. «JUCE has been acquired by ROLI! | JUCE C++ Library». Juce.com. 18 de novembro de 2014. Consultado em 19 de março de 2016 
  3. «Ecosystem». Consultado em 25 de abril de 2017. Arquivado do original em 7 de agosto de 2013 

Ligações externas

editar