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

Perpustakaan C++ Sumber Terbuka untuk Aplikasi Audio & Plugin

API C++ Percuma untuk Aplikasi Audio dan Plugin. Pelajari Cara Membina Aplikasi Desktop, Mudah Alih, dan Plugin Audio Merentas Platform dengan Panduan Kami tentang Ciri-ciri Utama dan Contoh Kod.

Apakah JUCE?

Perisian audio moden seperti sintesis, stesen kerja audio digital (DAW), dan alat pemprosesan bunyi memerlukan rangka kerja yang cekap yang mempermudah tugas pengaturcaraan audio yang kompleks. Salah satu rangka kerja yang paling banyak digunakan dalam industri pembangunan audio ialah JUCE, sebuah perpustakaan C++ sumber terbuka yang direka untuk membina aplikasi dan plugin audio merentas platform. Ia menyediakan pemaju dengan set alat lengkap untuk pemprosesan audio, pembangunan plugin, penciptaan GUI, dan integrasi perkakasan. Ia membolehkan pemaju menulis kod sekali dan menyebarkan aplikasi merentasi pelbagai platform termasuk Windows, macOS, Linux, iOS, dan Android.

JUCE (Jules’ Utility Class Extensions) ialah rangka kerja aplikasi C++ sumber terbuka yang digunakan untuk membina aplikasi desktop dan mudah alih, khususnya perisian audio dan plugin. Ia menyediakan modul yang boleh digunakan semula yang mempermudah tugas seperti pemprosesan audio, komunikasi MIDI, penciptaan GUI, pembangunan plugin, pengurusan fail dan rangkaian serta lain-lain. JUCE banyak digunakan oleh pemaju dan syarikat perisian audio untuk membina plugin VST, VST3, AU, AUv3, AAX, dan LV2, serta aplikasi berdiri sendiri. Ia secara signifikan mengurangkan kerumitan membina aplikasi audio. Daripada menulis kod khusus platform untuk setiap sistem operasi, pemaju boleh menggunakan API bersatu JUCE untuk membina perisian merentas platform.

Previous Next

Mula dengan JUCE

Cara paling mudah untuk memasang JUCE ialah menggunakan GitHub. Sila gunakan perintah berikut untuk pemasangan lengkap.

Pasang JUCE dari NuGet

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

Pasang JUCE melalui CMake

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

Pemprosesan Audio dan Sokongan DSP

JUCE sumber terbuka menyediakan modul terbina dalam untuk pemprosesan isyarat digital (DSP), membolehkan pemaju membina kesan audio, sintesis, dan pemproses bunyi. Kerangka kerja ini termasuk alat untuk penapis, osilator, analisis FFT, dan pemprosesan audio masa nyata. Ini menjadikan JUCE ideal untuk mencipta alat pengeluaran muzik dan plugin kesan audio. Berikut ialah contoh kod pemprosesan untuk penimbal audio dan mengurangkan amplitud setiap sampel. Operasi sebegini biasanya digunakan untuk melaksanakan kawalan gain atau kesan audio.

Bagaimana Memproses Penimbal Audio dan Mengurangkan Amplitud melalui 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; // kurangkan kelantangan } } 

Pembangunan Plugin Audio melalui API C++

Pustaka JUCE mempermudah penciptaan plugin audio profesional. Pemaju boleh membina plugin yang serasi dengan piawaian audio utama seperti VST, VST3, AU, AUv3, AAX, dan LV2 menggunakan satu kerangka kerja. Ciri ini membolehkan pemaju mengedarkan plugin mereka ke pelbagai DAW tanpa menulis semula kod. Kod tersebut menunjukkan plugin audio ringkas yang mengurangkan gain isyarat sebanyak 20%. Dalam projek sebenar, pemaju boleh menambah parameter, automasi, dan algoritma DSP yang kompleks.

Bagaimana Membuat Plugin Audio Ringkas melalui API C++?

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

Pembangunan Lintas Platform

Salah satu ciri paling kuat JUCE ialah keupayaannya membina aplikasi untuk pelbagai platform menggunakan satu pangkalan kod C++ tunggal. Pemaju boleh mencipta perisian yang berjalan pada Windows, macOS, Linux, iOS, dan Android tanpa menulis semula kod khusus platform. Ini secara dramatik mengurangkan masa pembangunan dan memastikan tingkah laku konsisten merentasi sistem operasi. Contoh berikut mencipta aplikasi JUCE ringkas yang memaparkan tetingkap dialog. Oleh kerana JUCE mengendalikan abstraksi platform, kod yang sama berfungsi di pelbagai sistem operasi.

Bagaimana Membuat Aplikasi JUCE Merentas Platform melalui C++?


#include 

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

void initialise (const juce::String&) override { juce::AlertWindow::showMessageBoxAsync( juce::AlertWindow::InfoIcon, "Aplikasi JUCE", "Hai dari aplikasi JUCE merentas platform!"); }

void shutdown() override {} };

START_JUCE_APPLICATION (HelloWorld) 

Integrasi Peranti MIDI dan Audio

JUCE juga menyertakan API untuk berinteraksi dengan peranti audio dan pengawal MIDI. Pemaju boleh mengakses mikrofon, pembesar suara, papan kekunci MIDI, dan perkakasan lain secara langsung melalui kerangka kerja. Ini penting untuk aplikasi seperti sintesis, DAW, dan perisian persembahan langsung. Kod berikut mendengar mesej MIDI yang masuk dan mencetak nombor nota setiap kali kekunci MIDI ditekan.

Bagaimana Mendengar Mesej MIDI Masuk melalui API C++?

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