Atvērtā koda C++ bibliotēka audio lietotnēm & spraudņiem
Bezmaksas C++ API audio lietotnēm un spraudņiem. Uzziniet, kā izveidot daudzplatformas darbvirsmas, mobilo un audio spraudņu lietotnes, izmantojot mūsu ceļvedi par galvenajām funkcijām un koda piemēriem.
Kas ir JUCE?
Mūsdienīga audio programmatūra, piemēram, sintezatori, digitālās audio darba stacijas (DAW) un skaņas apstrādes rīki, prasa efektīvas struktūras, kas vienkāršo sarežģītus audio programmēšanas uzdevumus. Viens no visplašāk izmantotajiem struktūrām audio izstrādes nozarē ir JUCE, atvērtā koda C++ bibliotēka, kas paredzēta daudzplatformu audio lietojumprogrammu un spraudņu izveidei. Tā nodrošina izstrādātājiem pilnīgu rīkkopu audio apstrādei, spraudņu izstrādei, GUI veidošanai un aparatūras integrācijai. Tā ļauj izstrādātājiem uzrakstīt kodu vienreiz un izvietot lietojumprogrammas vairākās platformās, tostarp Windows, macOS, Linux, iOS un Android.
JUCE (Jules’ Utility Class Extensions) ir atvērtā koda C++ lietojumprogrammu struktūra, ko izmanto, lai izveidotu darbvirsmas un mobilo ierīču lietojumprogrammas, īpaši audio programmatūru un spraudņus. Tā nodrošina atkārtoti lietojamus moduļus, kas vienkāršo uzdevumus, piemēram, audio apstrādi, MIDI komunikāciju, GUI veidošanu, spraudņu izstrādi, failu apstrādi un tīklu savienojumus utt. JUCE plaši izmanto izstrādātāji un audio programmatūras uzņēmumi, lai izveidotu VST, VST3, AU, AUv3, AAX un LV2 spraudņus, kā arī atsevišķas lietojumprogrammas. Tā būtiski samazina audio lietojumprogrammu izveides sarežģītību. Tā vietā, lai katrai operētājsistēmai rakstītu platformas specifisku kodu, izstrādātāji var izmantot JUCE vienoto API, lai izveidotu daudzplatformu programmatūru.
Sākums ar JUCE
Visvienkāršākais veids, kā instalēt JUCE, ir izmantot GitHub. Lūdzu, izmantojiet šādu komandu pilnīgai instalācijai.
Instalēt JUCE no NuGet
git clone https://github.com/juce-framework/JUCE.git Instalēt JUCE caur CMake
cd JUCE cmake . -B build cmake --build build Audio apstrāde un DSP atbalsts
Atvērtā koda JUCE nodrošina iebūvētas moduļus digitālās signālu apstrādes (DSP) jomā, ļaujot izstrādātājiem veidot audio efektus, sintezatorus un skaņas procesorus. Framework ietver rīkus filtriem, oscilatoriem, FFT analīzei un reāllaika audio apstrādei. Tas padara JUCE par ideālu rīku mūzikas ražošanas instrumentu un audio efektu spraudņu izveidei. Šeit ir koda apstrādes piemērs audio buferim, kas samazina katras parauga amplitūdu. Šādas operācijas parasti tiek izmantotas, lai īstenotu signāla stiprinājuma kontroli vai audio efektus.
Kā apstrādāt audio buferi un samazināt amplitūdu, izmantojot 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; // samazināt skaļumu } } Audio spraudņu izstrāde, izmantojot C++ API
JUCE bibliotēka vienkāršo profesionālu audio spraudņu izveidi. Izstrādātāji var veidot spraudņus, kas saderīgi ar galvenajiem audio standartiem, piemēram, VST, VST3, AU, AUv3, AAX un LV2, izmantojot vienu framework. Šī funkcija ļauj izstrādātājiem izplatīt savus spraudņus daudzos DAW bez koda pārrakstīšanas. Kodā parādīts vienkāršs audio spraudnis, kas samazina signāla stiprinājumu par 20 %. Reālos projektos izstrādātāji var pievienot parametrus, automatizāciju un sarežģītus DSP algoritmus.
Kā izveidot vienkāršu audio spraudni, izmantojot C++ API?
class GainProcessor : public juce::AudioProcessor { public: void processBlock(juce::AudioBuffer& buffer, juce::MidiBuffer&) override { buffer.applyGain(0.8f); } }; Daudzplatformu izstrāde
Viena no spēcīgākajām JUCE funkcijām ir spēja izveidot lietojumprogrammas vairākām platformām, izmantojot vienu C++ koda bāzi. Izstrādātāji var radīt programmatūru, kas darbojas Windows, macOS, Linux, iOS un Android, nepārrakstot platformai specifisku kodu. Tas būtiski samazina izstrādes laiku un nodrošina konsekventu uzvedību visās operētājsistēmās. Zemāk esošais piemērs izveido vienkāršu JUCE lietojumprogrammu, kas parāda dialoglodziņu. Tā kā JUCE pārvalda platformas abstrakciju, tas pats kods darbojas vairākās operētājsistēmās.
Kā izveidot daudzplatformu JUCE lietotnes, izmantojot C++?
#include
class HelloWorld : public juce::JUCEApplication { public: const juce::String getApplicationName() override { return \"JUCE demonstrācija\"; } const juce::String getApplicationVersion() override { return \"1.0\"; }
void initialise (const juce::String&) override { juce::AlertWindow::showMessageBoxAsync( juce::AlertWindow::InfoIcon, \"JUCE lietotne\", \"Sveiki no daudzplatformas JUCE lietotnes!\"); }
void shutdown() override {} };
START_JUCE_APPLICATION (HelloWorld) MIDI un audio ierīču integrācija
JUCE ietver arī API, lai mijiedarbotos ar audio ierīcēm un MIDI kontrolieriem. Izstrādātāji var piekļūt mikrofoniem, skaļruņiem, MIDI klaviatūrām un citai aparatūrai tieši caur framework. Tas ir būtiski tādām lietojumprogrammām kā sintezatori, DAW un tiešraides izpildes programmatūra. Zemāk esošais kods klausās ienākošos MIDI ziņojumus un izvada nots skaitli, kad tiek nospiesta MIDI taustiņa.
Kā klausīties ienākošos MIDI ziņojumus, izmantojot C++ API?
void handleIncomingMidiMessage(juce::MidiInput*, const juce::MidiMessage& message) { if (message.isNoteOn()) { int note = message.getNoteNumber(); juce::Logger::writeToLog("Piezīme ieslēgta: " + juce::String(note)); } }