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

Open source C++ bibliotheek voor audio‑apps & plug‑ins

Gratis C++ API voor audio‑apps en plug‑ins. Leer hoe je cross‑platform desktop-, mobiele en audio‑plugin‑apps kunt bouwen met onze gids over belangrijke functies en code‑voorbeelden.

Wat is JUCE?

Moderne audiosoftware zoals synthesizers, digitale audio‑werkstations (DAW’s) en geluidsverwerkingstools vereisen efficiënte frameworks die complexe audio‑programmeertaken vereenvoudigen. Een van de meest gebruikte frameworks in de audio‑ontwikkelingsindustrie is JUCE, een open‑source C++‑bibliotheek ontworpen voor het bouwen van cross‑platform audio‑applicaties en plugins. Het biedt ontwikkelaars een complete toolkit voor audio‑verwerking, plugin‑ontwikkeling, GUI‑creatie en hardware‑integratie. Het stelt ontwikkelaars in staat om code één keer te schrijven en toepassingen uit te rollen op meerdere platforms, waaronder Windows, macOS, Linux, iOS en Android.

JUCE (Jules’ Utility Class Extensions) is een open‑source C++‑applicatieframework dat wordt gebruikt om desktop‑ en mobiele applicaties te bouwen, met name audiosoftware en plugins. Het biedt herbruikbare modules die taken vereenvoudigen zoals audio‑verwerking, MIDI‑communicatie, GUI‑creatie, plugin‑ontwikkeling, bestandsbeheer en netwerken, enzovoort. JUCE wordt veel gebruikt door ontwikkelaars en audio‑softwarebedrijven om VST-, VST3-, AU-, AUv3-, AAX- en LV2‑plugins te bouwen, evenals zelfstandige applicaties. Het vermindert de complexiteit van het bouwen van audio‑applicaties aanzienlijk. In plaats van platform‑specifieke code voor elk besturingssysteem te schrijven, kunnen ontwikkelaars de uniforme API van JUCE gebruiken om cross‑platform software te bouwen.

Previous Next

Aan de slag met JUCE

De eenvoudigste manier om JUCE te installeren is via GitHub. Gebruik alstublieft het volgende commando voor een volledige installatie.

Installeer JUCE via NuGet

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

Installeer JUCE via CMake

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

Audioverwerking en DSP-ondersteuning

De open‑source JUCE biedt ingebouwde modules voor digitale signaalverwerking (DSP), waardoor ontwikkelaars audio‑effecten, synthesizers en geluidsverwerkers kunnen bouwen. Het framework bevat tools voor filters, oscillatoren, FFT‑analyse en realtime audiobewerking. Dit maakt JUCE ideaal voor het creëren van muziekproductietools en audio‑effectplug‑ins. Hier is een code‑verwerkingsvoorbeeld voor een audiobuffer dat de amplitude van elke sample verlaagt. Dergelijke bewerkingen worden vaak gebruikt om gain‑regeling of audio‑effecten te implementeren.

Hoe verwerk je een audiobuffer en verminder je de amplitude via de C++-API?

 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; // volume verlagen } } 

Audio‑plug‑in ontwikkeling via C++ API

De JUCE‑bibliotheek vereenvoudigt het maken van professionele audio‑plug‑ins. Ontwikkelaars kunnen plug‑ins bouwen die compatibel zijn met belangrijke audiostandaarden zoals VST, VST3, AU, AUv3, AAX en LV2, met behulp van één framework. Deze functie stelt ontwikkelaars in staat hun plug‑ins te distribueren over vele DAW’s zonder de code opnieuw te schrijven. De code toont een eenvoudige audio‑plug‑in die de signaalgain met 20 % verlaagt. In echte projecten kunnen ontwikkelaars parameters, automatisering en complexe DSP‑algoritmen toevoegen.

Hoe maak je een eenvoudige audioplugin via de C++-API?

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

Cross‑platform ontwikkeling

Een van de krachtigste functies van JUCE is het vermogen om applicaties voor meerdere platforms te bouwen met één enkele C++‑codebase. Ontwikkelaars kunnen software maken die draait op Windows, macOS, Linux, iOS en Android zonder platform‑specifieke code opnieuw te schrijven. Dit verkort de ontwikkelingstijd aanzienlijk en zorgt voor consistent gedrag over besturingssystemen heen. Het volgende voorbeeld maakt een eenvoudige JUCE‑applicatie die een dialoogvenster weergeeft. Omdat JUCE de platformabstractie afhandelt, werkt dezelfde code op meerdere besturingssystemen.

Hoe maak je cross-platform JUCE-apps via 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", "Hallo van een cross-platform JUCE-toepassing!"); }

void shutdown() override {} };

START_JUCE_APPLICATION (HelloWorld) 

MIDI- en audioapparaatintegratie

JUCE bevat ook API’s voor interactie met audio‑apparaten en MIDI‑controllers. Ontwikkelaars kunnen via het framework direct toegang krijgen tot microfoons, luidsprekers, MIDI‑toetsenborden en andere hardware. Dit is cruciaal voor toepassingen zoals synthesizers, DAW’s en live‑performancesoftware. De onderstaande code luistert naar binnenkomende MIDI‑berichten en print het noten‑nummer telkens wanneer een MIDI‑toets wordt ingedrukt.

Hoe luister je naar binnenkomende MIDI-berichten via de C++-API?

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