منصوبے کے بارے میں

Tonal JavaScript کے لیے ایک میوزک تھیوری لائبریری ہے، جو TypeScript میں نافذ کی گئی ہے اور npm پیکجز کے مجموعے کے طور پر شائع ہوتی ہے۔ یہ آواز یا آڈیو پلے بیک کے بجائے میوزک تھیوری کی تجریدی شکلوں پر توجہ مرکوز کرتی ہے: نوٹ، وقفے، chords، scales، modes، keys، voicings، progressions اور rhythm۔ لائبریری فنکشنل پروگرامنگ کے انداز کی پیروی کرتی ہے۔ فنکشنز خالص ہیں، ڈیٹا تبدیل نہیں ہوتا، اور entities کو class instances کے بجائے سادہ ڈیٹا ڈھانچے کے طور پر پیش کیا جاتا ہے۔ یہ ES6 imports، ES5 require، اور CDN script tag کے ذریعے براہ راست براؤزر میں کام کرتی ہے۔ عام کارروائیوں میں نوٹ کو MIDI نمبرز یا frequencies میں تبدیل کرنا، وقفوں سے نوٹ transpose کرنا، وقفے کے فاصلے ناپنا، scale نوٹ اور degrees حاصل کرنا، chords کا نام دینا، اور chord inversions بنانا شامل ہیں۔ README میں مثالیں دکھائی گئی ہیں جیسے Note.midi("C4") جو 60 لوٹاتا ہے، Note.freq("a4") جو 440 لوٹاتا ہے، Interval.semitones("5P") جو 7 لوٹاتا ہے، اور Scale.get("C major").notes جو سات scale tones لوٹاتا ہے۔ پروجیکٹ کو مرکوز ماڈیولز میں تقسیم کیا گیا ہے، ہر ایک کا اپنا README اور پیکج کا نام @tonaljs/ کے ساتھ ہے۔ یہ نوٹ، MIDI، وقفے، ABC notation، scales اور scale types، chords اور chord types، chord detection، pitch class sets، voicings، voice leading، voicing dictionaries، keys، modes، progressions، roman numerals، rhythm patterns، time signatures، duration values، نیز core اور collection utilities کا احاطہ کرتے ہیں۔ umbrella tonal پیکج انسٹال کرنے سے تمام ماڈیولز شامل ہوتے ہیں، جبکہ انفرادی ماڈیولز انسٹال کرنے سے bundle size کم ہو سکتی ہے۔ دستاویزات ایک مخصوص ویب سائٹ اور ہر ماڈیول کے README میں دستیاب ہیں۔ توقعات ہیں کہ شراکت میں میوزک تھیوری تبدیلیوں کے حوالے، دستاویزات کی تازہ کاری، اور ٹیسٹ شامل ہوں۔ لائبریری MIT لائسنس یافتہ ہے اور متعدد میوزک تھیوری لائبریریوں کو الہام کے طور پر درج کرتی ہے، ساتھ ہی ان پروجیکٹس کی نمائش بھی کرتی ہے جو اسے استعمال کرتے ہیں۔