منصوبے کے بارے میں
DSPark ایک header-only C++20 آڈیو DSP لائبریری ہے جو ڈویلپرز کے لیے بنائی گئی ہے جو ریئل ٹائم اور آف لائن آڈیو سافٹ ویئر تیار کرتے ہیں۔ اس میں اثرات، فلٹرز، سنتیسس اور اسپیکٹرل بلڈنگ بلاکس، تجزیہ اور میوزیکل ٹولز، نیٹو فائل I/O، اور ایک اختیاری پلگ ان لیئر شامل ہیں۔ فریم ورک ماڈیولز میں کوئی تیسرے فریق کا انحصار نہیں اور انہیں الگ سے کمپائل کی گئی DSPark لائبریری کی ضرورت نہیں؛ بہترین پاتھس کمپائلر کی فراہم کردہ SIMD انٹرینسکس استعمال کر سکتی ہیں پلیٹ فارم گارڈز کے پیچھے۔ پلگ ان ایڈاپٹرز اور صرف Windows کے لیے DSParkLab ایپلیکیشن امبریلا ہیڈر کے باہر ہیں اور ان کے اپنے پلیٹ فارم انٹیگریشن تقاضے ہیں۔
انٹیگریشن آسان ہے: ریپوزٹری کو وینڈر کریں، اسے include پاتھ میں شامل کریں، اور امبریلا ہیڈر کو شامل کریں۔ ایک CMake انٹرفیس ٹارگٹ include پاتھ اور C++20 کی ضرورت فراہم کرتا ہے، اور پروجیکٹ کو find_package یا FetchContent کے ذریعے بھی استعمال کیا جا سکتا ہے۔ پروسیسرز کو بنایا اور configure کیا جاتا ہے prepare(AudioSpec) کے ساتھ اس سے پہلے کہ آڈیو سٹریم مالک processBlock() کو کال کرے؛ ہوسٹ میں، 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 کو define کرنے سے تمام فائل I/O ہیڈرز حذف ہو جاتے ہیں ان ٹارگٹس کے لیے جن میں فائل سسٹم سپورٹ نہیں ہے۔ پلگ ان ڈویلپمنٹ نیٹو VST3 اور CLAP ایڈاپٹرز کے ساتھ ساتھ macOS Audio Unit v2 کے ذریعے سپورٹڈ ہے، جو پیرامیٹرز، آٹومیشن، اسٹیٹ، لیٹنسی، ٹیل رپورٹنگ، بائی پاس، مونو/سٹیریو لے آؤٹس، سائیڈ چینز، ٹرانسپورٹ، MIDI انسٹرومنٹس، آف لائن رینڈرنگ، اور فیکٹری پریسیٹس کو کور کرتا ہے؛ کسٹم ایڈیٹرز HTML/CSS/JavaScript میں لکھے جا سکتے ہیں اور پلیٹ فارم WebView لیئر کے ذریعے ایمبیڈ کیے جا سکتے ہیں، جس میں Linux پر رن ٹائم پر WebKitGTK کی ضرورت ہوتی ہے۔
ریئل ٹائم سیفٹی کو ایک per-method کنٹریکٹ کے طور پر دستاویز کیا گیا ہے نہ کہ ایک عام پراپرٹی کے طور پر: کنسٹرکشن، 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 disabled ہیں؛ iOS اور Android ہیڈرز کے ذریعے ٹارگٹ کیے گئے ہیں لیکن ان کے لیے مخصوص CI جابز نہیں ہیں۔ CI انسٹالڈ ہیڈر سیلف سفیشنسی، وارننگ فری بلڈز، سینیٹائزرز، کنکرنٹ پبلیکیشن پاتھس، مثالیں، پلگ ان اسموک ہوسٹس اور ویلڈیٹرز، اور جنریٹڈ دستاویزات کو بھی چیک کرتا ہے۔ آفیشل EBU لاؤڈنیس ویکٹر جاب بہترین کوشش پر مبنی ہے کیونکہ لائسنس شدہ ٹیسٹ میٹیریل الگ سے ڈاؤن لوڈ کیا جاتا ہے۔
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.