1. Produtos
  2.   Áudio
  3.   C++
  4.   JUCE
 
  

Biblioteca C++ Open Source para Aplicativos e Plugins de Áudio

API C++ Gratuita para Aplicativos e Plugins de Áudio. Aprenda como criar aplicativos de desktop, mobile e plugins de áudio multiplataforma com nosso guia de recursos principais e exemplos de código.

O que é JUCE?

Software de áudio moderno, como sintetizadores, estações de trabalho de áudio digital (DAWs) e ferramentas de processamento de som, requerem frameworks eficientes que simplifiquem tarefas complexas de programação de áudio. Um dos frameworks mais usados na indústria de desenvolvimento de áudio é o JUCE, uma biblioteca C++ de código aberto projetada para construir aplicações e plugins de áudio multiplataforma. Ele fornece aos desenvolvedores um conjunto completo de ferramentas para processamento de áudio, desenvolvimento de plugins, criação de interfaces gráficas e integração de hardware. Permite que os desenvolvedores escrevam código uma única vez e implantem aplicações em múltiplas plataformas, incluindo Windows, macOS, Linux, iOS e Android.

JUCE (Jules’ Utility Class Extensions) é um framework de aplicação C++ de código aberto usado para criar aplicações desktop e móveis, particularmente software de áudio e plugins. Ele fornece módulos reutilizáveis que simplificam tarefas como processamento de áudio, comunicação MIDI, criação de interfaces gráficas, desenvolvimento de plugins, manipulação de arquivos e rede, entre outros. O JUCE é amplamente utilizado por desenvolvedores e empresas de software de áudio para construir plugins VST, VST3, AU, AUv3, AAX e LV2, bem como aplicações independentes. Ele reduz significativamente a complexidade de construir aplicações de áudio. Em vez de escrever código específico para cada sistema operacional, os desenvolvedores podem usar a API unificada do JUCE para criar software multiplataforma.

Previous Next

Começando com JUCE

A maneira mais fácil de instalar o JUCE é usando o GitHub. Por favor, use o comando a seguir para a instalação completa.

Instalar JUCE via NuGet

 git clone https://github.com/juce-framework/JUCE.git 

Instalar JUCE via CMake

 cd JUCE cmake . -B build cmake --build build 

Processamento de Áudio e Suporte a DSP

O JUCE de código aberto fornece módulos integrados para processamento digital de sinais (DSP), permitindo que desenvolvedores criem efeitos de áudio, sintetizadores e processadores de som. O framework inclui ferramentas para filtros, osciladores, análise FFT e processamento de áudio em tempo real. Isso torna o JUCE ideal para criar ferramentas de produção musical e plugins de efeitos de áudio. Aqui está um exemplo de processamento de código para um buffer de áudio que reduz a amplitude de cada amostra. Essas operações são comumente usadas para implementar controle de ganho ou efeitos de áudio.

Como Processar um Buffer de Áudio e Reduzir a Amplitude via API C++?

 void processBlock(juce::AudioBuffer& buffer) { for (int channel = 0; channel < buffer.getNumChannels(); ++channel) { auto* samples = buffer.getWritePointer(channel);

for (int i = 0; i < buffer.getNumSamples(); ++i) samples[i] *= 0.5f; // reduzir volume } } 

Desenvolvimento de Plugins de Áudio via API C++

A biblioteca JUCE simplifica a criação de plugins de áudio profissionais. Os desenvolvedores podem criar plugins compatíveis com os principais padrões de áudio, como VST, VST3, AU, AUv3, AAX e LV2, usando um único framework. Esse recurso permite que os desenvolvedores distribuam seus plugins em várias DAWs sem reescrever o código. O código mostra um plugin de áudio simples que reduz o ganho do sinal em 20%. Em projetos reais, os desenvolvedores podem adicionar parâmetros, automação e algoritmos DSP complexos.

Como Criar um Plugin de Áudio Simples via API C++?

 class GainProcessor : public juce::AudioProcessor { public: void processBlock(juce::AudioBuffer& buffer, juce::MidiBuffer&) override { buffer.applyGain(0.8f); } }; 

Desenvolvimento Multiplataforma

Um dos recursos mais poderosos do JUCE é a capacidade de criar aplicações para múltiplas plataformas usando uma única base de código C++. Os desenvolvedores podem criar softwares que rodam no Windows, macOS, Linux, iOS e Android sem reescrever código específico de cada plataforma. Isso reduz drasticamente o tempo de desenvolvimento e garante comportamento consistente entre os sistemas operacionais. O exemplo a seguir cria uma aplicação JUCE simples que exibe uma janela de diálogo. Como o JUCE lida com a abstração de plataforma, o mesmo código funciona em vários sistemas operacionais.

Como Criar Aplicativos JUCE Multiplataforma via C++?


#include 

class HelloWorld  : public juce::JUCEApplication { public: const juce::String getApplicationName() override { return "Demo JUCE"; } const juce::String getApplicationVersion() override { return "1.0"; }

void initialise (const juce::String&) override { juce::AlertWindow::showMessageBoxAsync( juce::AlertWindow::InfoIcon, "Aplicativo JUCE", "Olá de um aplicativo JUCE multiplataforma!"); }

void shutdown() override {} };

START_JUCE_APPLICATION (HelloWorld) 

Integração de Dispositivos MIDI e Áudio

O JUCE também inclui APIs para interagir com dispositivos de áudio e controladores MIDI. Os desenvolvedores podem acessar microfones, alto-falantes, teclados MIDI e outros hardware diretamente através do framework. Isso é fundamental para aplicações como sintetizadores, DAWs e softwares de performance ao vivo. O código a seguir escuta mensagens MIDI recebidas e imprime o número da nota sempre que uma tecla MIDI é pressionada.

Como Escutar Mensagens MIDI Recebidas via API C++?

 void handleIncomingMidiMessage(juce::MidiInput*, const juce::MidiMessage& message) { if (message.isNoteOn()) { int note = message.getNoteNumber(); juce::Logger::writeToLog("Nota Ligada: " + juce::String(note)); } } 
 Português