1. Productos
  2.   Audio
  3.   C++
  4.   JUCE
 
  

Biblioteca C++ de código abierto para aplicaciones de audio y plugins

API C++ gratuita para aplicaciones de audio y plugins. Aprende cómo crear aplicaciones de escritorio, móviles y plugins de audio multiplataforma con nuestra guía de características clave y ejemplos de código.

¿Qué es JUCE?

El software de audio moderno, como sintetizadores, estaciones de trabajo de audio digital (DAW) y herramientas de procesamiento de sonido, requiere marcos eficientes que simplifiquen tareas complejas de programación de audio. Uno de los marcos más utilizados en la industria del desarrollo de audio es JUCE, una biblioteca C++ de código abierto diseñada para crear aplicaciones y plugins de audio multiplataforma. Proporciona a los desarrolladores un conjunto completo de herramientas para el procesamiento de audio, desarrollo de plugins, creación de interfaces gráficas y integración de hardware. Permite a los desarrolladores escribir código una sola vez y desplegar aplicaciones en múltiples plataformas, incluyendo Windows, macOS, Linux, iOS y Android.

JUCE (Jules’ Utility Class Extensions) es un marco de aplicación C++ de código abierto utilizado para crear aplicaciones de escritorio y móviles, particularmente software y plugins de audio. Proporciona módulos reutilizables que simplifican tareas como el procesamiento de audio, la comunicación MIDI, la creación de interfaces gráficas, el desarrollo de plugins, la gestión de archivos y la conectividad de red, entre otros. JUCE es ampliamente utilizado por desarrolladores y empresas de software de audio para crear plugins VST, VST3, AU, AUv3, AAX y LV2, así como aplicaciones independientes. Reduce significativamente la complejidad de crear aplicaciones de audio. En lugar de escribir código específico para cada sistema operativo, los desarrolladores pueden usar la API unificada de JUCE para crear software multiplataforma.

Previous Next

Comenzando con JUCE

La forma más fácil de instalar JUCE es usando GitHub. Por favor, utilice el siguiente comando para una instalación completa.

Instalar JUCE desde NuGet

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

Instalar JUCE mediante CMake

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

Procesamiento de audio y soporte DSP

El JUCE de código abierto ofrece módulos integrados para el procesamiento digital de señales (DSP), lo que permite a los desarrolladores crear efectos de audio, sintetizadores y procesadores de sonido. El framework incluye herramientas para filtros, osciladores, análisis FFT y procesamiento de audio en tiempo real. Esto hace que JUCE sea ideal para crear herramientas de producción musical y plugins de efectos de audio. Aquí hay un ejemplo de código que procesa un búfer de audio y reduce la amplitud de cada muestra. Estas operaciones se utilizan comúnmente para implementar control de ganancia o efectos de audio.

¿Cómo procesar un búfer de audio y reducir la amplitud mediante la API de 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; // reduce volume } } 

Desarrollo de plugins de audio mediante API C++

La biblioteca JUCE simplifica la creación de plugins de audio profesionales. Los desarrolladores pueden crear plugins compatibles con los principales estándares de audio como VST, VST3, AU, AUv3, AAX y LV2 usando un único framework. Esta característica permite a los desarrolladores distribuir sus plugins en muchos DAW sin reescribir el código. El código muestra un plugin de audio simple que reduce la ganancia de la señal en un 20%. En proyectos reales, los desarrolladores pueden añadir parámetros, automatización y algoritmos DSP complejos.

¿Cómo crear un plugin de audio sencillo mediante la API de C++?

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

Desarrollo multiplataforma

Una de las características más potentes de JUCE es su capacidad para crear aplicaciones para múltiples plataformas usando una única base de código C++. Los desarrolladores pueden crear software que se ejecute en Windows, macOS, Linux, iOS y Android sin reescribir código específico de cada plataforma. Esto reduce drásticamente el tiempo de desarrollo y garantiza un comportamiento consistente en todos los sistemas operativos. El siguiente ejemplo crea una aplicación JUCE simple que muestra una ventana de diálogo. Debido a que JUCE gestiona la abstracción de la plataforma, el mismo código funciona en múltiples sistemas operativos.

¿Cómo crear aplicaciones JUCE multiplataforma mediante C++?


#include 

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

void initialise (const juce::String&) override { juce::AlertWindow::showMessageBoxAsync( juce::AlertWindow::InfoIcon, "JUCE App", "Hello from a cross-platform JUCE application!"); }

void shutdown() override {} };

START_JUCE_APPLICATION (HelloWorld) 

Integración de dispositivos MIDI y de audio

JUCE también incluye APIs para interactuar con dispositivos de audio y controladores MIDI. Los desarrolladores pueden acceder a micrófonos, altavoces, teclados MIDI y otro hardware directamente a través del framework. Esto es fundamental para aplicaciones como sintetizadores, DAW y software de actuación en vivo. El siguiente código escucha mensajes MIDI entrantes y muestra el número de nota cada vez que se pulsa una tecla MIDI.

¿Cómo escuchar mensajes MIDI entrantes mediante la API de C++?

 void handleIncomingMidiMessage(juce::MidiInput*, const juce::MidiMessage& message) { if (message.isNoteOn()) { int note = message.getNoteNumber(); juce::Logger::writeToLog("Nota On: " + juce::String(note)); } } 
 Español