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

Libreria C++ open source per app audio & Plug-ins

API C++ gratuita per app audio e plugin. Scopri come creare app desktop, Mobile, e plugin audio multipiattaforma con la nostra guida alle funzionalità chiave e agli esempi di codice.

Cos'è JUCE?

Il software audio moderno, come sintetizzatori, workstation audio digitali (DAW) e strumenti di elaborazione del suono, richiede framework efficienti che semplificano compiti complessi di programmazione audio. Uno dei framework più utilizzati nell'industria dello sviluppo audio è JUCE, una libreria C++ open-source progettata per costruire applicazioni e plugin audio multipiattaforma. Fornisce agli sviluppatori un toolkit completo per l'elaborazione audio, lo sviluppo di plugin, la creazione di interfacce grafiche e l'integrazione hardware. Consente agli sviluppatori di scrivere il codice una sola volta e distribuire le applicazioni su più piattaforme, tra cui Windows, macOS, Linux, iOS e Android.

JUCE (Jules’ Utility Class Extensions) è un framework applicativo C++ open-source utilizzato per creare applicazioni desktop e mobile, in particolare software audio e plugin. Fornisce moduli riutilizzabili che semplificano attività come l'elaborazione audio, la comunicazione MIDI, la creazione di interfacce grafiche, lo sviluppo di plugin, la gestione dei file e la rete, ecc. JUCE è ampiamente usato da sviluppatori e aziende di software audio per costruire plugin VST, VST3, AU, AUv3, AAX e LV2, nonché applicazioni autonome. Riduce significativamente la complessità della creazione di applicazioni audio. Invece di scrivere codice specifico per ogni sistema operativo, gli sviluppatori possono utilizzare l'API unificata di JUCE per costruire software multipiattaforma.

Previous Next

Iniziare con JUCE

Il modo più semplice per installare JUCE è utilizzare GitHub. Si prega di usare il comando seguente per un'installazione completa.

Installa JUCE da NuGet

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

Installa JUCE tramite CMake

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

Elaborazione audio e supporto DSP

Il JUCE open source fornisce moduli integrati per l'elaborazione digitale del segnale (DSP), consentendo agli sviluppatori di creare effetti audio, sintetizzatori e processori di suono. Il framework include strumenti per filtri, oscillatori, analisi FFT e elaborazione audio in tempo reale. Questo rende JUCE ideale per creare strumenti di produzione musicale e plugin di effetti audio. Ecco un esempio di elaborazione del codice per un buffer audio che riduce l'ampiezza di ogni campione. Tali operazioni sono comunemente usate per implementare il controllo del guadagno o effetti audio.

Come elaborare un buffer audio e ridurre l'ampiezza tramite l'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; // riduci il volume } } 

Sviluppo di plugin audio tramite API C++

La libreria JUCE semplifica la creazione di plugin audio professionali. Gli sviluppatori possono costruire plugin compatibili con i principali standard audio come VST, VST3, AU, AUv3, AAX e LV2 utilizzando un unico framework. Questa funzionalità consente agli sviluppatori di distribuire i loro plugin su molte DAW senza riscrivere il codice. Il codice mostra un semplice plugin audio che riduce il guadagno del segnale del 20%. Nei progetti reali, gli sviluppatori possono aggiungere parametri, automazione e algoritmi DSP complessi.

Come creare un semplice plugin audio tramite l'API C++?

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

Sviluppo multipiattaforma

Una delle funzionalità più potenti di JUCE è la sua capacità di creare applicazioni per più piattaforme utilizzando un unico codice C++. Gli sviluppatori possono creare software che gira su Windows, macOS, Linux, iOS e Android senza riscrivere codice specifico per la piattaforma. Questo riduce drasticamente i tempi di sviluppo e garantisce un comportamento coerente su tutti i sistemi operativi. L'esempio seguente crea una semplice applicazione JUCE che mostra una finestra di dialogo. Poiché JUCE gestisce l'astrazione della piattaforma, lo stesso codice funziona su più sistemi operativi.

Come creare app JUCE multipiattaforma tramite 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", "Ciao da un'applicazione JUCE multipiattaforma!"); }

void shutdown() override {} };

START_JUCE_APPLICATION (HelloWorld) 

Integrazione di dispositivi MIDI e audio

JUCE include anche API per interagire con dispositivi audio e controller MIDI. Gli sviluppatori possono accedere a microfoni, altoparlanti, tastiere MIDI e altro hardware direttamente tramite il framework. Questo è fondamentale per applicazioni come sintetizzatori, DAW e software per performance dal vivo. Il codice seguente ascolta i messaggi MIDI in ingresso e stampa il numero della nota ogni volta che viene premuto un tasto MIDI.

Come ascoltare i messaggi MIDI in arrivo tramite l'API C++?

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