প্রকল্প সম্পর্কে
DSPark হলো একটি হেডার-অনলি C++20 অডিও DSP লাইব্রেরি, যা রিয়েল-টাইম ও অফলাইন অডিও সফটওয়্যার তৈরিকারী ডেভেলপারদের লক্ষ্য করে তৈরি। এতে ইফেক্ট, ফিল্টার, সিন্থেসিস ও স্পেকট্রাল বিল্ডিং ব্লক, অ্যানালাইসিস ও মিউজিক্যাল টুল, নেটিভ ফাইল I/O এবং একটি ঐচ্ছিক প্লাগইন লেয়ার রয়েছে। ফ্রেমওয়ার্ক মডিউলগুলোতে কোনো থার্ড-পার্টি নির্ভরতা নেই এবং আলাদাভাবে কম্পাইল করা DSPark লাইব্রেরির প্রয়োজন হয় না; অপ্টিমাইজড পাথগুলো প্ল্যাটফর্ম গার্ডের পেছনে কম্পাইলার-প্রদত্ত SIMD ইনট্রিনসিক্স ব্যবহার করতে পারে। প্লাগইন অ্যাডাপ্টার এবং শুধুমাত্র Windows-এর DSParkLab অ্যাপ্লিকেশন আম্ব্রেলা হেডারের বাইরে থাকে এবং তাদের নিজস্ব প্ল্যাটফর্ম ইন্টিগ্রেশন প্রয়োজনীয়তা রয়েছে।
ইন্টিগ্রেশন সহজ: রিপোজিটরি ভেন্ডর করুন, এটি include path-এ যোগ করুন এবং আম্ব্রেলা হেডার অন্তর্ভুক্ত করুন। একটি CMake interface target include path ও C++20 প্রয়োজনীয়তা সরবরাহ করে, এবং প্রকল্পটি find_package বা FetchContent-এর মাধ্যমেও ব্যবহার করা যায়। অডিও-স্ট্রিম মালিক processBlock() কল করার আগে প্রসেসরগুলো তৈরি ও কনফিগার করা হয় prepare(AudioSpec) দিয়ে; হোস্টে, কলব্যাকে অ্যালোকেশন এড়াতে হোস্ট-মালিকানাধীন চ্যানেল পয়েন্টারের উপর একটি AudioBufferView তৈরি করা যায়।
সক্ষমতার ক্ষেত্রগুলোর মধ্যে রয়েছে ফিল্টার ও ইকুয়ালাইজেশন (Biquad, StateVariableFilter, LadderFilter, FilterEngine, Equalizer, CrossoverFilter); ডাইনামিক্স ও লেভেল কন্ট্রোল (Compressor, Limiter, NoiseGate, Expander, DynamicEQ, MultibandCompressor, DeEsser); ননলিনিয়ার ও অ্যানালগ মডেলিং (Saturation, Clipper, TapeMachine, TubePreamp, TransformerModel, wdf::*); টাইম, পিচ ও স্পেশিয়াল প্রসেসিং (Delay, AlgorithmicReverb, Reverb, PitchShifter, TimeStretch, PitchCorrector, GranularProcessor); স্পেকট্রাল প্রসেসিং (FFTReal, Convolver, ZeroLatencyConvolver, SpectralProcessor, SpectralFreeze, SpectralDenoiser); অ্যানালাইসিস ও মিটারিং (SpectrumAnalyzer, LoudnessMeter, LoudnessNormalizer, PitchDetector, OnsetDetector, BeatTracker, LoopFinder); সিন্থেসিস ও মিউজিক (Oscillator, WavetableOscillator, ADSREnvelope, ChordDetector, KeyDetector, harmony::*); এবং ইনফ্রাস্ট্রাকচার (AudioBuffer, ProcessorChain, Resampler, Oversampling, Dither, SpscQueue, versioned state blobs)।
ফাইল I/O-তে WAV ও MP3 পড়া/লেখা, Standard MIDI File পড়া/লেখা (ফরম্যাট 0, 1, 2 পড়া; 0 ও 1 লেখা), এবং শুধুমাত্র নেটিভ FLAC ডিকোডিং অন্তর্ভুক্ত, যেখানে লেখার অপারেশন false রিটার্ন করে। DSPARK_NO_FILE_IO ডিফাইন করলে ফাইলসিস্টেম সাপোর্ট নেই এমন টার্গেটের জন্য সব ফাইল-I/O হেডার বাদ যায়। প্লাগইন ডেভেলপমেন্ট নেটিভ VST3 ও CLAP অ্যাডাপ্টার এবং macOS Audio Unit v2-এর মাধ্যমে সমর্থিত, যা প্যারামিটার, অটোমেশন, স্টেট, লেটেন্সি, টেইল রিপোর্টিং, বাইপাস, মনো/স্টেরিও লেআউট, সাইডচেইন, ট্রান্সপোর্ট, MIDI ইন্সট্রুমেন্ট, অফলাইন রেন্ডারিং এবং ফ্যাক্টরি প্রিসেট কভার করে; কাস্টম এডিটর HTML/CSS/JavaScript-এ লেখা যায় এবং প্ল্যাটফর্ম WebView লেয়ারের মাধ্যমে এমবেড করা যায়, Linux-এ রানটাইমে WebKitGTK প্রয়োজন।
রিয়েল-টাইম সেফটি একটি সার্বজনীন বৈশিষ্ট্য হিসেবে নয়, বরং প্রতি-মেথড চুক্তি হিসেবে ডকুমেন্ট করা: কনস্ট্রাকশন, prepare(), স্টেট রিস্টোরেশন এবং শুধুমাত্র সেটআপের কনফিগারেশন অ্যালোকেট করতে পারে এবং প্রসেসিংয়ের সাথে একসাথে চালানো যাবে না; একটি প্রস্তুত প্রসেসরের একজন অডিও-স্ট্রিম মালিক থাকে; প্যারামিটার প্রকাশ সাধারণত একজন কন্ট্রোল রাইটার ও একজন অডিও মালিক ধরে নেয়। v1.7.0 CI ম্যাট্রিক্স কভার করে Windows (MSVC x64/ARM64), Linux (GCC x64/ARM64, Clang x64), macOS (Clang ARM64), WebAssembly (Emscripten scalar ও SIMD128), এবং ফাইল I/O, এক্সসেপশন ও RTTI নিষ্ক্রিয় করা একটি এমবেডেড কম্পাইল গেট; iOS ও Android হেডার দ্বারা টার্গেট করা হলেও ডেডিকেটেড CI জব নেই। CI ইনস্টল করা হেডারের স্বয়ংসম্পূর্ণতা, ওয়ার্নিং-মুক্ত বিল্ড, স্যানিটাইজার, কনকারেন্ট পাবলিকেশন পাথ, উদাহরণ, প্লাগইন স্মোক হোস্ট ও ভ্যালিডেটর এবং জেনারেট করা ডকুমেন্টেশনও যাচাই করে। অফিসিয়াল EBU loudness-vector জবটি best effort, কারণ লাইসেন্সকৃত টেস্ট উপাদান আলাদাভাবে ডাউনলোড করা হয়।
DSParkLab হলো ইন্টারঅ্যাকটিভ প্রসেসর টেস্টিংয়ের জন্য একটি শুধুমাত্র Windows-এর Win32/Direct3D 11 অ্যাপ্লিকেশন; এর সাথে বান্ডল করা Dear ImGui ও miniaudio সোর্স শুধু অ্যাপ্লিকেশনেই সীমাবদ্ধ এবং ফ্রেমওয়ার্ক নির্ভরতা নয়। ডকুমেন্টেশনে রয়েছে জেনারেট করা API রেফারেন্স, টাস্ক-ভিত্তিক কুকবুক, স্বতন্ত্র উদাহরণ, প্লাগইন গাইড, থ্রেডিং মডেল, মাপা সেটিংস ও সতর্কতা সহ কোয়ালিটি মেট্রিক্স টেবিল, v1.7.0 মাইগ্রেশন গাইড এবং একটি চেঞ্জলগ। v1.7.0-এ মিউজিক্যাল টাইমিং ও এডিটিং টুল, পিচ ও স্পেকট্রাল প্রসেসিং, নির্ভরতামুক্ত FLAC ডিকোডিং ও MIDI ফাইল সাপোর্ট, এবং রেট-সচেতন অ্যানালাইসিস উইন্ডো ও ডাবল-প্রিসিশন biquad কোএফিশিয়েন্টের মতো পাবলিক-কন্ট্রাক্ট আপডেট যোগ করা হয়েছে। প্রকল্পটি MIT লাইসেন্সের অধীনে এবং Cristian Moresi দ্বারা রক্ষণাবেক্ষণ করা হয়।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.