منصوبے کے بارے میں
SyntaxWave ایک تجرباتی آڈیو پروگرامنگ ماحول ہے جو لائیو کوڈنگ پرفارمرز اور الگورتھمک موسیقی کے متلاشیوں کے لیے بنایا گیا ہے۔ ٹائم لائن پر مبنی DAW کے بجائے، یہ کوڈ کو ہی آلہ تصور کرتا ہے: ایک حسبِ ضرورت ڈومین مخصوص زبان جس میں آسکیلیٹرز، انویلوپس، فلٹرز، ڈیلے لائنز اور گرینولر سنتھیسس کے لیے کلیدی الفاظ ہیں، ویکٹرائزڈ آڈیو آپریشنز میں کمپائل ہوتی ہے، اور README کے مطابق عام پیچز کے لیے پانچ ملی سیکنڈ سے کم کمپائلیشن وقت ہوتا ہے۔
رن ٹائم چار تہوں میں بیان کیا گیا ہے۔ ایڈیٹر پرت ایک براؤزر پر مبنی IDE فراہم کرتی ہے جس میں نحو کی ہائی لائٹنگ، DSL آٹوکمپلیٹ، ان لائن دستاویزات اور آپریشنل ٹرانسفارمیشن کے ذریعے باہمی تدوین شامل ہے۔ کمپائلیشن پرت DSL کو ایک انٹرمیڈیٹ نمائندگی میں پارس کرتی ہے، اسے JIT کے ذریعے WebAssembly میں کمپائل کرتی ہے اور بفر جنریشن کو GPU کو بھیجتی ہے۔ آڈیو پرت پلیٹ فارم بیک اینڈز (WASAPI، CoreAudio، ALSA، Web Audio API بطور فال بیک) استعمال کرتی ہے تاکہ نمونے کے درست شیڈولنگ اور ملٹی چینل روٹنگ ممکن ہو۔ نیٹ ورک پرت ایک WebRTC میش بناتی ہے جہاں ہر نوڈ پروڈیوسر اور کنزیومر دونوں ہوتا ہے، CRDT پر مبنی حالت کی ہم آہنگی کے ساتھ تاکہ متوازی تدوین ایک ہی آؤٹ پٹ پر متفق ہو۔
تعاون ایک نمایاں خصوصیت ہے: شرکاء ایک تقسیم شدہ آڈیو گراف شیئر کرتے ہیں، سنیپٹس شیئر کر سکتے ہیں، ایک دوسرے کی شراکت کو خاموش یا الگ کر سکتے ہیں، اور اسٹریمز کو ماسٹر آؤٹ پٹ میں ضم کر سکتے ہیں۔ README میں نوڈس کے درمیان 15 ملی سیکنڈ سے کم تاخیر اور ایج نوڈس کے درمیان 30 ملی سیکنڈ سے کم نیٹ ورک لیٹنسی بجٹ بتایا گیا ہے۔ ایک ماسٹر ٹائم لائن براؤزر ہر شریک کے کوڈ تبدیلیوں کو لینز کے طور پر دکھاتا ہے جس کے نیچے ویوفارمز ہوتے ہیں۔
ایک نیورل تجزیہ پائپ لائن لائیو آڈیو سے بیٹ گرڈز، کلیدی دستخط، آغاز کے نمونے اور ٹمبرل وضاحتیں نکالتی ہے، اور اسپیکٹروگرامز، کرومیگرامز اور ویوفارم کلسٹرز کو بصری فیڈ بیک کے طور پر ایڈیٹر میں واپس بھیجتی ہے۔ اشاروں کا کنٹرول MIDI فیڈرز، ایکسلرومیٹرز یا کیمرے سے ٹریک شدہ ہاتھ کی پوزیشنوں کو کسی بھی DSL متغیر سے منسلک کرتا ہے۔ ایک پلگ ان آرکیٹیکچر سنتھیسس یونٹس، ایفیکٹس اور تجزیہ ماڈیولز کو Rust یا C میں لکھنے، WebAssembly میں کمپائل کرنے اور سیشن کے وسط میں ہاٹ لوڈ کرنے کی اجازت دیتا ہے۔
بیان کردہ تکنیکی خصوصیات میں 44.1 kHz سے 384 kHz تک قابل ترتیب نمونے کی شرحیں، 32 سے 4096 نمونوں تک بفر سائزز، فی نوڈ 512 تک بیک وقت آوازیں، wasm32-wasi پلگ ان ABI، اور Windows 10/11، macOS 12+، Linux (x86_64، aarch64) اور Chrome/Firefox/Edge کے لیے سپورٹ شامل ہیں۔ پروجیکٹ ایک واحد قابل عمل فائل کے طور پر تقسیم کیا جاتا ہے جو ایک مقامی ویب سرور اور آڈیو بیک اینڈ شروع کرتا ہے، اور انٹرفیس کو براؤزر میں کھولتا ہے۔ ایک کم سے کم مثال `sine freq:440 gain:0.3` ہے، جسے Ctrl+Enter سے چلایا جاتا ہے۔
اسٹیج پر مبنی خصوصیات میں ملٹی کرسر تدوین، کوڈ ہسٹری اسکربر، ایک فریز موڈ جو اگلے حصے کی تیاری کے دوران موجودہ آؤٹ پٹ کو روکے رکھتا ہے، اور ایک پروجیکٹر ویو جو UI عناصر کو چھپاتا ہے، شامل ہیں۔ انٹرفیس ڈیسک ٹاپ، ٹیبلٹ اور موبائل پر جوابدہ ہے، ٹچ اشاروں اور کم لوڈ موبائل موڈ کے ساتھ۔ UI سٹرنگز، ٹول ٹپس اور ایرر پیغامات سولہ زبانوں میں پیش کیے جاتے ہیں، اور DSL مقامی کلیدی الفاظ کے مترادفات قبول کرتا ہے (مثال کے طور پر `sinus` یا `正弦波`)۔ README میں مربوط چیٹ اور نالج بیس کے ذریعے چوبیس گھنٹے انسانی معاونت کا بھی اشتہار دیا گیا ہے۔
پروجیکٹ MIT لائسنس کے تحت جاری کیا گیا ہے اور لائیو کوڈنگ کمیونٹی، DSP محققین اور زبان کے شائقین سے تعاون کی دعوت دیتا ہے؛ README میں دو سو سے زیادہ کمیونٹی تعاون یافتہ سنتھیسس یونٹس کے ساتھ ایک پلگ ان ریپوزٹری اور باقاعدہ آن لائن کوڈ جام کا ذکر ہے۔ ایک دستبرداری نوٹ کرتی ہے کہ ریئل ٹائم آڈیو بلند یا غیر متوقع آوازیں پیدا کر سکتا ہے، لہذا صارفین کو آؤٹ پٹ کی سطحوں کی احتیاط سے نگرانی کرنی چاہیے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.