1. Termékek
  2.   Hang
  3.   C++
  4.   JUCE
 
  

Nyílt forráskódú C++ könyvtár hangalkalmazásokhoz & pluginekhez

Ingyenes C++ API hangalkalmazásokhoz és pluginekhez. Tanulja meg, hogyan építsen keresztplatformos asztali, mobil és audio plugin alkalmazásokat útmutatónkkal a kulcsfontosságú funkciókról és kódról.

Mi az a JUCE?

A modern audio szoftverek, mint a szintetizátorok, digitális audio munkaállomások (DAW-ok) és hangfeldolgozó eszközök hatékony keretrendszereket igényelnek, amelyek egyszerűsítik a komplex audio programozási feladatokat. Az audio fejlesztés iparágában a legszélesebb körben használt keretrendszerek egyike a JUCE, egy nyílt forráskódú C++ könyvtár, amely keresztplatformos audio alkalmazások és pluginek építésére lett tervezve. Teljes eszköztárat biztosít a fejlesztőknek az audio feldolgozáshoz, plugin fejlesztéshez, GUI létrehozáshoz és hardverintegrációhoz. Lehetővé teszi, hogy a fejlesztők egyszer írjanak kódot, és azt több platformon, köztük Windows, macOS, Linux, iOS és Android rendszereken telepítsék.

A JUCE (Jules' Utility Class Extensions) egy nyílt forráskódú C++ alkalmazáskeretrendszer, amely asztali és mobil alkalmazások, különösen audio szoftverek és pluginek építésére szolgál. Újrahasználható modulokat biztosít, amelyek egyszerűsítik az olyan feladatokat, mint az audio feldolgozás, MIDI kommunikáció, GUI létrehozás, plugin fejlesztés, fájlkezelés és hálózatépítés stb. A JUCE-et széles körben használják fejlesztők és audio szoftvercégek VST, VST3, AU, AUv3, AAX és LV2 pluginek, valamint önálló alkalmazások építésére. Jelentősen csökkenti az audio alkalmazások fejlesztésének bonyolultságát. Ahelyett, hogy minden operációs rendszerhez platformspecifikus kódot írnának, a fejlesztők a JUCE egységes API-ját használhatják keresztplatformos szoftverek építéséhez.

Previous Next

A JUCE használatának megkezdése

A JUCE legkönnyebb telepítési módja a GitHub használata. Kérjük, használja a következő parancsot a teljes telepítéshez.

JUCE telepítése a NuGetből

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

JUCE telepítése CMake-en keresztül

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

Audio feldolgozás és DSP támogatás

A nyílt forráskódú JUCE beépített modulokat biztosít a digitális jelfeldolgozáshoz (DSP), lehetővé téve a fejlesztők számára, hogy audioeffekteket, szintetizátorokat és hangprocesszorokat építsenek. A keretrendszer szűrők, oszcillátorok, FFT elemzés és valós idejű audiofeldolgozás eszközeit tartalmazza. Ez a JUCE-t ideálissá teszi zenei produkciós eszközök és audioeffekt pluginek létrehozásához. Itt egy kódfeldolgozási példa egy audio bufferhez, amely csökkenti minden mintavétel amplitúdóját. Az ilyen műveleteket gyakran használják jelerősítés vagy audioeffektek megvalósításához.

Hogyan dolgozzuk fel egy audio puffert és csökkentsük az amplitúdót C++ API-n keresztül?

 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; // csökkentse a hangerőt } } 

Audio plugin fejlesztés C++ API-val

A JUCE könyvtár egyszerűsíti a professzionális audio pluginek létrehozását. A fejlesztők egyetlen keretrendszerrel építhetnek olyan plugineket, amelyek kompatibilisek a főbb audio szabványokkal, mint a VST, VST3, AU, AUv3, AAX és LV2. Ez a funkció lehetővé teszi a fejlesztők számára, hogy plugineiket számos DAW-ban terjesszék anélkül, hogy újraírnák a kódot. A kód egy egyszerű audio plugint mutat, amely a jel erősítését 20%-kal csökkenti. Valós projektekben a fejlesztők paramétereket, automatizálást és összetett DSP algoritmusokat adhatnak hozzá.

Hogyan hozzunk létre egy egyszerű audio plugint C++ API-n keresztül?

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

Keresztplatformos fejlesztés

A JUCE egyik legnagyobb ereje, hogy egyetlen C++ kódbázissal képes több platformra alkalmazásokat építeni. A fejlesztők olyan szoftvert hozhatnak létre, amely Windows, macOS, Linux, iOS és Android rendszereken fut, anélkül, hogy platformspecifikus kódot írnának újra. Ez jelentősen csökkenti a fejlesztési időt, és biztosítja a viselkedés konzisztenciáját az operációs rendszerek között. Az alábbi példa egy egyszerű JUCE alkalmazást hoz létre, amely egy párbeszédablakot jelenít meg. Mivel a JUCE kezeli a platform absztrakciót, ugyanaz a kód több operációs rendszeren is működik.

Hogyan hozzunk létre keresztplatformos JUCE alkalmazásokat C++-on keresztül?


#include 

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

void initialise (const juce::String&) override { juce::AlertWindow::showMessageBoxAsync( juce::AlertWindow::InfoIcon, "JUCE Alkalmazás", "Üdvözlet egy többplatformos JUCE alkalmazásból!"); }

void shutdown() override {} };

START_JUCE_APPLICATION (HelloWorld) 

MIDI és audio eszköz integráció

A JUCE emellett API-kat is tartalmaz az audio eszközökkel és MIDI vezérlőkkel való interakcióhoz. A fejlesztők a keretrendszeren keresztül közvetlenül hozzáférhetnek mikrofonokhoz, hangszórókhoz, MIDI billentyűzetekhez és egyéb hardverekhez. Ez kritikus olyan alkalmazásoknál, mint a szintetizátorok, DAW-ok és élő előadások szoftverei. Az alábbi kód figyeli a bejövő MIDI üzeneteket, és kiírja a hangszámot, amikor egy MIDI billentyűt lenyomnak.

Hogyan hallgassuk a bejövő MIDI üzeneteket C++ API-n keresztül?

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