منصوبے کے بارے میں
NoiseCraft ایک اوپن سورس، براؤزر پر مبنی بصری پروگرامنگ زبان اور پلیٹ فارم ہے جو صوتی ترکیب اور موسیقی بنانے کے لیے ہے۔ اس کا ڈیزائن PureData اور Max/MSP سے کچھ حد تک متاثر ہے، اور اس کا مقصد موسیقی کے خیالات کے تبادلے کے لیے ایک کمیونٹی کو فروغ دینا ہے۔ یہ پروجیکٹ کام جاری ہے اور README میں واضح طور پر معاونین کو اسے بنانے اور ڈیبگ کرنے میں مدد کے لیے مدعو کیا گیا ہے۔
آپ اسے noisecraft.app پر آزماسکتے ہیں اور noisecraft.app/browse پر مشترکہ پروجیکٹس دیکھ سکتے ہیں۔ یہ فی الحال Chrome، Firefox اور Edge میں کام کرتا ہے، لیکن web audio کے نفاذ کے مسائل کی وجہ سے Safari میں قابل اعتماد نہیں ہے۔ موبائل سپورٹ کی کمی کی نشاندہی کی گئی ہے، اور بگز کی توقع ہے۔
ڈیزائن کے اصول:
- کم سے کم کا فلسفہ: سادہ JS/HTML/CSS بغیر کسی ویب فریم ورک کے، جان بوجھ کر کم سے کم انحصار، ضروری خصوصیات پر توجہ، اور خصوصیات میں اضافے سے گریز۔
- UI ڈیزائن: سیکھنے کے منحنی اور رکاوٹ کو کم کریں، انٹرفیس کو سادہ اور صاف رکھیں، جہاں ممکن ہو ڈراپ ڈاؤن مینوز اور پوشیدہ آپشنز سے گریز کریں، واقف کلید کمبوز استعمال کریں، اور ابہام سے گریز کریں۔
- زبان کا ڈیزائن: صرف ایک ڈیٹا ٹائپ (فلوٹنگ پوائنٹ نمبرز)، اور کنٹرول سگنلز اور آڈیو سگنلز کے درمیان کوئی فرق نہیں۔
- عملی غور: بینڈوتھ اور سرور کے اخراجات کم رکھنے کے لیے تصاویر اور آواز کے نمونوں سے گریز کریں؛ نمونوں سے گریز صارفین کو آواز کی پیداوار کے بارے میں سوچنے پر بھی مجبور کرتا ہے۔
آرکیٹیکچر کے نوٹس:
- ملٹی پیج ڈیزائن سنگل پیج ایپ کے بجائے، اس لیے New، Help اور Browse نئے ٹیبز کھولتے ہیں، جس سے کام کا غیر ارادی نقصان کم ہوتا ہے اور /browse اور /help کے براہ راست لنکس ممکن ہوتے ہیں۔
- امیڈیٹ موڈ GUI: UI ماڈل کے اعمال پر دوبارہ بنایا جاتا ہے، جس سے undo/redo آسان ہو جاتا ہے پچھلی پروجیکٹ اسٹیٹس محفوظ کر کے، اور کیشنگ سے مکمل دوبارہ ڈرائنگ سے گریز کیا جاتا ہے۔
- آڈیو AudioView کلاس (public/audioview.js) کے ذریعے تیار کیا جاتا ہے، جو آڈیو گراف کو AudioWorklet میں چلنے والے JavaScript میں کمپائل کرتا ہے۔ Web Audio API صرف آؤٹ پٹ کے لیے استعمال ہوتا ہے، ترکیب کے لیے نہیں، تاکہ براؤزرز اور ڈیوائسز میں آواز مستقل رہے۔
- پروجیکٹس کو آسانی سے پارس کیے جانے والے JSON (.ncft) کے طور پر محفوظ کیا جاتا ہے، جو بیرونی ٹولز کو اجازت دے سکتا ہے، اور README میں پروجیکٹس کو VSTs میں کمپائل کرنے کے بارے میں قیاس آرائیاں کی گئی ہیں۔
معاونت: بگ فکسز کا خیرمقدم ہے، لیکن پروجیکٹ نئی خصوصیات اور بڑی تبدیلیوں کے حوالے سے محتاط ہے؛ معاونین سے کہا جاتا ہے کہ وہ پہلے تجویز کردہ تبدیلیوں پر بحث کے لیے ایک مسئلہ کھولیں۔
ڈیولپمنٹ سیٹ اپ: Chrome کی سفارش کی جاتی ہے۔ Node.js اور npm انسٹال کریں، npm install چلائیں، پھر node server.js؛ ایپ http://localhost:7773/ پر دستیاب ہے۔ ٹیسٹس node tests.js کے ساتھ چلتے ہیں۔ Docker کی ہدایات فراہم کی گئی ہیں (docker build . -t noisecraft; docker run -p 7773:7773 -d noisecraft)۔ سرور کنفیگریشن ماحول کے متغیرات DB_FILE_PATH (ڈیفالٹ ./database.db) اور HTTP_PORT_NO (ڈیفالٹ 7773) استعمال کرتی ہے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.