JUCE (Jules’ Utility Class Extensions) ist ein plattformübergreifendes C++ Framework zur Entwicklung von Audioanwendungen, Plug-ins, grafischen Benutzeroberflächen (GUIs) und anderen Multimediaprogrammen. Es wurde ursprünglich von Jules Storer entwickelt und ist heute ein wichtiger Bestandteil der Musiktechnologie-Industrie. Es bietet umfangreiche Unterstützung für: * [[VST|VST, VST3]], [[AU]], [[AAX]] und [[LV2]] Plug-in Formate * Echtzeit-Audioverarbeitung * MIDI-Verarbeitung * GUI-Komponenten * OpenGL-Unterstützung * Netzwerk- und Dateioperationen * Unit Testing * WebView (in bestimmten Plattformen) * Drag & Drop, Layoutsysteme, Skins, LookAndFeel JUCE wird von zahlreichen bekannten Firmen und Projekten verwendet, darunter: * Ableton * Arturia * Native Instruments * KORG * Focusrite * iZotope * Tracktion Engine * Surge Synth Team (z. B. Surge XT) =====Installation===== Downloads auf der [[https://juce.com/download/|Website]]. Selbst kompilieren git clone https://github.com/juce-framework/JUCE.git cd JUCE mkdir build && cd build cmake .. =====Code===== class MyAudioProcessor : public juce::AudioProcessor { public: MyAudioProcessor() {} ~MyAudioProcessor() override {} void prepareToPlay(double sampleRate, int samplesPerBlock) override {} void releaseResources() override {} void processBlock(juce::AudioBuffer& buffer, juce::MidiBuffer&) override { for (int channel = 0; channel < buffer.getNumChannels(); ++channel) buffer.clear(channel, 0, buffer.getNumSamples()); } // Weitere notwendige Überschreibungen: juce::AudioProcessorEditor* createEditor() override { return nullptr; } bool hasEditor() const override { return false; } const juce::String getName() const override { return "MyPlugin"; } // Weitere Metadaten... }; =====Links===== * [[https://juce.com/|Homepage]] * [[https://www.youtube.com/watch?v=G4A5T3y5bJM|FreeCodeCamp Tutorial | Youtube]]