کونر HARRIS: ہیلو.
میں کونر ہیرس ہوں.
میں ہارورڈ یونیورسٹی میں ایک CS50 CA ہوں.
اسٹیفن KREWSON میں اسٹیفن Krewson ہوں.
میں ییل میں CS50 کے لئے ایک TF ہوں.
کونر HARRIS: اور ہم بات کرنے جا رہے ہیں کچھ ٹیکنالوجیز کے بارے میں ہے کہ آپ کو ہو سکتا ہے
اگر آپ دلچسپی رکھتے ہیں تو استعمال کرنا چاہتے ہیں ایک حتمی منصوبے کرنے میں یا واقعی
موسیقی کے ساتھ کچھ.
ہم سب سے پہلے ایک پر توجہ مرکوز کرنے جا رہے ہیں Haskell کی بلایا پروگرامنگ زبان.
یہ ایک فعال ہے زبان، اسکی مثال
سی یا پی ایچ پی سے بہت مختلف ہے یا دیگر ضروری زبانوں
کہ آپ نے پہلے ہی استعمال کیا جاتا ہے، اور خاص طور پر ہے Haskell کی میں لکھا ایک لائبریری پر
لوگوں کی مدد کر سکتے ہیں، Euterpea بلایا فعل موسیقی لکھنے کے ساتھ،
بنیادی طور پر.
اور اسٹیفن چل جائے گا اس کی ایک بڑی مثال کے ذریعے.
>> اس کے بعد، میں نے تم سے ملواتا ہوں LillyPond کہا جاتا ہے کچھ، جو
کی typesetting موسیقی کے لئے ایک ٹیکنالوجی ہے.
اس طرح کی لیٹیکس کی طرح ہے موسیقی کے لئے تم میں سے کوئی تو
ریاضی کی کلاس کے لئے استعمال کیا جاتا ہے یا لیٹیکس دیگر P سیٹ کلاس یا کیا آپ کے پاس.
اور اس میں ایک بار پھر، آپ کو دے دونگا، اس میں سے کچھ آسان مثالیں
اور عام طور پر آپ کی طرف اشارہ کچھ بہتر وسائل کی سمت.
>> اسٹیفن KREWSON: میں اس کے علاوہ، ہم نے یہ سوچا
قائم کرنے کے لئے ٹھنڈا ہو جائے گا اشارے کا ایک تھوڑا سا
کے درمیان ایک پائپ لائن کی طرف Euterpea پیدا MIDI فائلوں
LillyPond میں، تو ہم فراہم کرتے ہیں اسکرپٹ پر کچھ ہدایات
ہیں کہ ایسا کرنے کے لئے LillyPond کے ساتھ فراہم کی
صرف یہ اوپن سورس رکھنے کے لئے اور جا ایک پائپ لائن حاصل.
کونر HARRIS: ایک بار پھر، ہم پر زور دینا چاہئے
ان دونوں ٹیکنالوجیز، آپ ایک دوسرے کے ساتھ ان کا استعمال کرنے کی ضرورت نہیں.
وہ کام کرنے کے لئے ڈیزائن نہیں کر رہے ہیں ایک دوسرے کے ساتھ، اگرچہ وہ بہت اچھی طرح سے کرتے ہیں.
>> اسٹیفن KREWSON: دائیں.
اور مکمل طور پر مفت.
کونر HARRIS تو منظوریاں، صرف پڑھا ہے کہ.
اسٹیفن KREWSON: ودوت بیان کیا گیا ہے.
ان لوگوں کے لئے شکریہ.
یہ میں نے صرف ایک لمحے کے لئے تاخیر گا.
تنصیب کے عمل تھوڑا سا مشکل ہے.
ہم نے ایک GitHub کے مجھ پر پڑھا ہے آپ پر ایک نظر لے جا سکتے ہیں.
آپ کو کوئی سوالات ہیں، تو صرف مجھے ای میل.
لیکن ہم اس مفروضے کے تحت چلائے جائیں گے یہ ہے کہ سب کے لئے کام کر رہا ہے.
کونر HARRIS: اور اگر تم نہیں کر سکتے ہیں LillyPond، کوئی بڑی بات نہیں کام پر لگ جاؤ.
کوئی براہ راست تالیف نہیں ہے کہ کم از کم اپنے اختتام پر، شامل کیا جائے گا.
اسٹیفن KREWSON: Haskell اور LillyPond دونوں انسٹالرز ہونا چاہئے.
Euterpea ایک کے طور پر ڈاؤن لوڈ کیا جاتا پیکج، تو اور تو آگے.
تو ہم کمپیوٹر موسیقی کے بارے میں بات کر رہے ہیں.
اور یہ صرف ایک ہے بہت 50،000 پاؤں نقطہ نظر.
اس کا ایک چند مختلف پہلوؤں ہے.
یہ کسی نہ کسی طرح ہے اور کچھ تفصیل دوںدلانا کرنے کے لئے جا.
لیکن ہم کچھ کے بارے میں سوچ سکتا ہے پر algorithmic ساخت کی طرح،
یلگوردمز کا استعمال کرتے ہوئے، پیدا کرنے کے لئے، کوڈ کا استعمال کرتے ہوئے
کچھ قسم of-- شاید ایک خود اسی طرح نوٹ، یا ہو سکتا ہے نوٹوں کی ترتیب
کچھ رکاوٹ کے تحت.
اور پھر ان لوگوں کو ہو سکتا ہے کارکردگی کا مظاہرہ کیا یا تشریح
ینالاگ آلات کے ساتھ یا اس طرح کچھ.
لیکن ساخت تھا algorithmically ہے کیا.
>> لیکن کورس کے، ہو سکتا ہے کہ علاقے کمپیوٹر موسیقی یا ڈیجیٹل موسیقی
ہم ڈیجیٹل ہے کے ساتھ زیادہ واقف ہیں آواز کی ترکیب یا ڈیجیٹل سیمپلنگ
اور ڈیجیٹل ریکارڈنگ.
ڈیجیٹل آلات کی ایک بہت ہیں ڈیجیٹل سیمپلنگ کے ذریعے کیا.
اصل میں، ہم نے ان میں سے ایک کا استعمال کریں گے بعد میں ایک آواز فونٹ لائبریری کی شکل.
>> بلکہ کچھ بلایا ہے باہر آئے کہ ڈیجیٹل ترکیب
دیر سے '70s اور میں' کے ساتھ 80s سٹینفورڈ میں یاماہا اور جان Chowning
ایف ایم ترکیب کر رہے ہیں یا تعدد ماڈلن ترکیب،
جہاں آپ کو ایک نیٹ ورک تھا سگنل اور ایک نیمن سگنل
دونوں آڈیو سپیکٹرم میں.
لیکن ہم پر توجہ مرکوز کر رہے ہیں آج، MIDI کہا جاتا ہے کچھ ہے
اور کورس کے، پر algorithmic ساخت.
>> ہم آلات بنانے کے لئے جا، لیکن نہیں کر رہے ہیں ہم اس کی بجائے کچھ موسیقی بنانے کے لئے جا رہے ہیں،
اور پھر اس کی تشریح ہو جائے گا کچھ آلات کی طرف سے
کو conformant ہیں جنرل MIDI سٹینڈرڈ.
تو MIDI کیا ہے؟
میں، بہت گہری اس میں حاصل کرنے نہیں جا رہا ہوں لیکن MIDI ڈیٹا ٹرانسفر پروٹوکول ہے.
اس پار ایک رہنما کی ایک قسم ہے مختلف کمپنیوں اور صنعتوں
آواز یا پیچ منظم کرنے کے لئے.
تو ہم نے اس کو دیکھ لیں گے ایک MIDI سٹینڈرڈ ہے
تمام مختلف ٹککر کے لئے آواز اور MIDI سفارشات
synth کے تمام مختلف اقسام کے لئے یا تمام آلہ کی مختلف اقسام
ایک آرکسٹرا میں گروپوں کا کہنا ہے کہ.
>> آپ نے شاید سے واقف ہیں 0 کے ذریعے 127 MIDI پیغامات.
ایک MIDI سگنل عام طور پر ہے اشارہ ایک تھوڑا سا
یہ ایک ڈیٹا یا چاہے حیثیت پیکٹ، اور پھر وہاں ہے
ایک سگنل کے سات بٹس.
اور ان کو کنٹرول کر سکتے ہیں حجم سے سب کچھ
کارروائی یا دباؤ کے کسی خاص چابی پر
آپ ایک MIDI ساتھ کارکردگی کا مظاہرہ کر رہے ہیں تو کنٹرولر کے طور پر اچھی طرح سے کے طور پر، کورس کے،
نوٹ.
اور ظاہر کی، MIDI ہے ، انتہائی مفید رہی
یہ تار کرنے کا ایک طریقہ ہے کیونکہ ساتھ مل کر یا گلبہار چین
MIDI ہارڈ ویئر کے آلات کے ایک گروپ.
میرے گھر میں سات یا آٹھ واپس.
یہ واقعی میں، پیچیدہ ہو جاتا ہے لیکن یہ واقعی طاقتور ہے.
اور یہ واقعی پرانے.
یہ ابتدائی '80s کی طرف سے ہے، اور یہ واقعی اچھا اور چھوٹا ہے.
کونر HARRIS: جی ہاں.
تمام کلاسیکی نن ویڈیو گیمز شاید کرے گا
مثال کے طور پر موسیقی کے لئے MIDI فائلوں، ہے.
>> اسٹیفن KREWSON: یہاں ایک ہے جنرل MIDI کی مثال،
ایک قسم کے طور MIDI دکھا عام پروٹوکول کے.
اور میں ہم کے بارے میں سوچ سکتا ہے تفصیلات کے درمیان فرق
کی طرح کچھ نہیں ہونا چاہئے کہ ان آلہ اصل آواز اور
ان آلات کی وصولی آواز ایک آواز فونٹ یا کسی خاص MIDI میں
فرق ہونے کے طور پر مرکب ساز کا کہنا ہے کہ ہو سکتا ہے کہ ایک typeface-- درمیان،
عام طور پر، اس کے ڈیزائن ہے یہ خاص طور پر جس طرح کی نمائندگی کرنے
characters-- اور ایک خاص فونٹ کہ، ایک مخصوص سائز اور timbre ہے
اور the-- کی وصولی ہے
>> کونر HARRIS: شاید بہتر موازنہ کرے گا
ہو یونیکوڈ سٹینڈرڈ دیتا says-- ایک ہر کردار کی تعداد، اور واقعی
دنیا میں ہر زبان، یا زبان کی اسکرپٹ کی ایک وسیع سیٹ
دنیا میں، اور اس کے بعد ان لوگوں کے ہیں کچھ گرافیکل میں مہیا
مختلف فونٹ پیکجوں کی طرف سے.
اور ظاہر ہے، آپ کے بارے میں سوچ کر سکتے ہیں آواز کی یونیکوڈ طور پر MIDI کی.
اور یہ ایک بڑا ندی of-- صرف ایک فہرست ہے واقعات اور آلات اور whatnot کی،
اور آپ کو ایک علیحدہ کرنا پڑے پروگرام، ایک رسم الخط کی طرح،
میں اس رینڈر کرنے کے لئے شروی ہے کہ کچھ.
>> اسٹیفن KREWSON: تو کیوں Haskell کی؟
Haskell کی ایک فعال پروگرامنگ ہے بہت اعلی درجے کی زبان،،
C کی طرف سے بہت مختلف، پی ایچ پی کی طرف سے بہت مختلف.
اور ہم نے ایک نہیں ہے کہ کو دیکھنے کے لئے جا رہے ہیں Haskell کی تقریب میں تشکیل میں آسانی
کہ ہمیں کے ذریعے بیار کی اجازت دے گا نقل، تحریر یا ٹائپ،
سے Frere جیکس کی طرح کچھ، اس سادہ نغمہ کی کہ
اس میں حصوں کی ایک بہت ہے کہ خود اسی طرح کی یا دہرا رہے ہیں.
تو اس میں سے کچھ ہو جائے گا کیوں کے لئے حوصلہ افزائی
ہم، Haskell کی استعمال کر رہے ہیں جس میں افعال پہلی کلاس شہری ہیں.
>> اور میں توسیع کرنا چاہتا تھا یہ تھوڑا سا.
اس کے لئے ایک تھوڑا سا آسان ہے Haskell کی میں Frere جیکس notate.
لیکن ہم چاہتے تھے تو کیا اس کے لئے ایک ڈھول حصہ؟
ہم بنانے کے لئے کوشش کرنا چاہتے تھے تو کیا رولینڈ 808 یا 909 ڈھول کی طرح کچھ
ہے جہاں آپ مشین کے بارے میں 16 مختلف مراحل؟
عام طور پر یہ ہیں کے طور پر کے 16th نوٹوں کے بارے میں سوچا.
اور آپ کو عالمی کنٹرول کر سکتے ہیں لی، اور آپ کو منتخب کر سکتے ہیں
مختلف ٹککر حصوں کا ایک گروپ باس ڈھول کی، ایک طالی، مختلف پھندے،
کھلی اور بند اعلی ٹوپیاں چینلز کے ان قسم پر،
اور پھر آپ EQ کر سکتے ہیں یا ان کے حجم کو ایڈجسٹ.
>> اور ہم نے ایک اچھا طریقہ میں دیکھ لیں گے اس مرحلے کی نمائندگی کرنے کا Haskell کی
سب کے ساتھ sequencer کے Haskell کی میں مختلف ٹھنڈی چیزیں
ہم پیدا کرنے کے ساتھ کیا کر سکتے ہیں فہرستوں میں فہرستوں اور فلٹرنگ،
فہرستوں میں تعریفیں، تعریفیں فہرستوں میں کام کرتا ہے.
اور ایک فوری معافی.
یہ ایک بہت سرسری ہے اور زیادہ فوری خاکے
پہلوؤں میں سے کچھ کے Haskell اور Euterpea کی،
ایک ڈومین مخصوص ہے جو سرایت زبان لکھا
موسیقی کی اقسام کے لئے Haskell کی میں.
آن لائن تو کوڈ کو چیک کریں براہ مہربانی.
گلاسگو ہے جس کو برطرف GHCI، Haskell کی کمپائلر مترجم.
اور میں نے کچھ کر دیا جائے گا تھوڑا سا میں اس کی
لہذا آپ کو اس سے کیا ہے کہ کس طرح دیکھ سکتے ہیں.
>> اور یہ آپ کے ساتھ میں لوڈ کرنے کے لئے کی اجازت دیتا ہے the-- نحو پھر بڑی آنت ہے
کمانڈ.
آپ فائلوں میں لوڈ کر سکتے ہیں.
اگر آپ ان فائلوں پر براؤز استعمال کر سکتے ہیں تمام افعال کو دیکھنے کے لئے کہ
ایک خاص ماڈیول میں موجود ہیں.
اور ہم، اقسام اور قسم کو دیکھ لیں گے پھر کلاس، Haskell کی میں اتنا اہم ہے
لہذا آپ کو ہمیشہ خاص طور پر کر سکتے ہیں check-- آپ کو ایک نیا DSCL میں کام کر رہے ہیں تو
اس طرح، ایک موسیقی کی قسم کیا ہے؟
میں راستے میں عددی کے بارے میں جاننا اقسام، Haskell کی میں کام
لیکن میں موسیقی کے بارے میں زیادہ نہیں جانتے.
لیکن آپ کو وہ کر رہے ہیں راستہ دریافت کر سکتے ہیں اس ٹی یا قسم کمانڈ استعمال کرتے ہوئے کی طرف سے وضاحت
اور پھر ایک خاص طور پر میں بلا تقریب یا ایک ڈیٹا اعتراض.
کونر HARRIS: جی ہاں.
آپ سی اور بجنا سوچا کہ اگر اقسام کے بارے میں hardass تھا،
آپ Haskell کی کے بارے میں کوئی اندازہ نہیں ہے.
Haskell کی کے بارے میں اچھی بات یہ ہے کہ آپ کو مرتب کرنا آپ کے کوڈ حاصل کر سکتے ہیں
اور Haskell کی قسم چیک تو، یہ شاید ٹھیک ہے
قسم کے نظام اتنا سخت ہے کیونکہ.
>> اسٹیفن KREWSON: جی ہاں.
تو میں بس جانا چاہتے ہیں پھر through-- اور،
اس کے چند justice-- نہیں کر رہا ہے Haskell کی کی خصوصیات، کہ کم از کم
اس creators-- اور اس کے تشکیل دے دیا گیا لوگوں کے ایک گروپ کی طرف سے دیر 1980s میں،
کے بارے میں 20 کی ایک کمیٹی قوم اہم تھے.
اور پہلی چیز وہ ایک اخبار میں درج ہے کہ
Haskell کی کی ابتداء بیان پہلے 20 سال یا اس سے زیادہ
یہ سست تھا.
تو اس کا کیا مطلب ہے؟
>> ہم کسی قسم ہے جب ٹھیک ہے، اس کا مطلب اظہار رائے کی، ہم اس کا اندازہ کرنے کی ضرورت ہے.
اور Haskell ایک کال میں یہ کرتا ہے کی ضرورت کا راستہ یا ایک غیر سخت راہ کی طرف سے.
ہم میں سے ایک گروپ ہے تو یہ ہے کہ، ہماری اظہار کے اجزاء،
ہم تشخیص میں تاخیر کرنے کی کوشش کریں ان subcomponents کے
مطلق آخری minute-- تک ہم اصل میں ان کی ضرورت ہے جب تک ہے.
>> تو اس کا مطلب یہ ہے جو حقیقی معنی میں ٹھنڈے، خاص طور پر
ہم تجرید کے بارے میں سوچ رہے ہیں تو ایک موسیقی قدم sequencer کی.
آپ اس پر باری، اور آپ کو شروع ایک قدم sequence-- چلانے
کیا تم نے کبھی ایک ڈرم کے ساتھ کام کیا ہے machine-- اور یہ صرف ہمیشہ جاتا.
تو یہ اگر ہم واقعی بہت اچھا ہو جائے گا Haskell کی میں اس کا مقابلہ کر سکتا ہے.
اور ہم لامحدود کے ساتھ یہ کر سکتے ہیں اقدار، خاص طور پر لامحدود کی فہرست میں.
یہ ایک ٹائپ کرنے کے لئے بہت آسان ہے Haskell کی فہرست میں لامحدود.
آپ کو صرف نیچے نحو استعمال کر سکتے ہیں یہاں، آپ کو 3 کے ذریعے 1 دیکھیں جہاں،
3 1 ڈاٹ ڈاٹ ہٹا دیں، اور کہ ایک لامتناہی فہرست ہے
تمام قدرتی تعداد کے توسیع جہاں تک آپ تصور کر سکتے ہیں کے طور پر.
>> میں متعارف کروانا چاہتا ہوں فورا پرتوں کا تصور.
اور پھر، مقصد اس سیمینار نہیں ہے
Haskell کی پرتوں میں کے بارے میں جاننے کے لئے یا اس سے زیادہ کے لئے کام کرتا ہے.
لیکن میں صرف اس کو متعارف کرانے کرنا چاہتے ہیں کس طرح عجیب کا صحیح احساس دے
Haskell کی ہے اور کس طرح طاقتور ہے.
اور خاص طور پر، ہم be-- لئے جا رہے ہیں ہم اپنے مختلف ڈھول حصوں کرتے ہیں جب،
ہم کی فہرست توڑ جا رہے ہیں تعداد، ایک دوسرے پر ان تہ.
ایسا کرنے کے لئے اور، ہم کریں گے نقشے اور پرتوں کا استعمال کرتے ہوئے.
>> حق ساہچری ہے یہ ایک حق ہے جس میں، ڈالتے ہیں
یہاں 1 مائنس مقدار، 2 مائنس مقدار، 3 مائنس 0.
اور ایک کے لئے نحو گنا، آپ کو ایک گنا دے
ایک بنیاد کی قدر اور اس کے بعد ایک operation-- اس صورت میں، کے علاوہ یا ویوکلن میں.
میں دونوں صورتوں دکھایا گیا ہے.
اور پھر ایک سنچایک ہے کہ وہاں پوری فہرست پر جمع،
اس آپریٹر کے علاوہ درخواست دینے یا مائنس، اور پھر یہ جمع.
یہ کہا گیا تھا تو اس the-- ہو جائے گا گنا R پلس 0 کے ساتھ، 0 سے شروع ہونے والے،
اس کے بعد ہم سب خلاصہ اس فہرست میں تعداد.
اور یہ کہ 1 سے 3 ایک فہرست ہے.
کونر HARRIS: تو یہ ایک اور ڈال کرنے کے لئے راستہ، گنا R تین دلائل لیتا ہے.
ایک تقریب نہیں ہے کہ خود کو دو دلائل لیتا ہے،
پھر ایک سٹارٹر قدر ہے، اور اقدار کی ایک فہرست موجود ہے.
اور آپ کیا آپ کو لے ہے شروع قیمت، پہلی قیمت،
تقریب میں ڈال.
تم کیا باہر حاصل کروں کہ، فیڈ لے کہ
کی تقریب میں دوسری قیمت، آپ کو ملتا ہے،
کہ لے، میں اس کو کھانا کھلانا تیسری قدر کی تقریب.
اور پھر آپ کو نیچے جاتے ہیں اس پوری فہرست اس طرح،
آپ کو آخر میں حاصل کرنے کے لئے جا رہے ہیں ہے کہ کچھ واحد قیمت
آپ کو شروع کیا کے اسی قسم کے کے ساتھ باہر اور اسی قسم کے
پھر فہرست میں چیزوں کو، اور کے طور پر کہ گنا آر کی واپسی نتیجہ ہے
اسٹیفن KREWSON: خاص طور پر تو، ان اعلی آرڈر کام کرتا ہے،
وہ ایک دوسرے لے جا رہے ہیں کیونکہ دلائل میں سے ایک کے طور پر تقریب.
>> کونر HARRIS: جی ہاں.
آپ کو کچھ دیگر کا استعمال کیا ہے زبانوں میں میں R جانتے، [اشراوی]
زبان کم کہا جاتا ہے، یہ ہے.
آپ کو اسی طرح کام کرتا ہے ہو سکتا ہے دیگر زبانوں میں، صرف کہا جاتا
مختلف چیزیں.
>> اسٹیفن KREWSON اور کیا گنا ر کے بارے میں اچھی بات ہے
اس مثال میں گنا ہے آر لامحدود فہرستوں کے ساتھ کام کر سکتے ہیں.
اس کے نیچے دیے میں، اس P5 تو نوٹوں پیدا کر رہا ہے کہ
کے لئے قدم sequencer میں تبدیل کر دیا جاتا ہے کچھ ڈھول حصہ، پانچویں ڈھول حصہ،
اور شاید یہ ایک کونگا کے ڈرم یا کچھ.
اور یہ ایک جان بوجھ کر ہے اس تحریر کی وجہ پر obtuse راستہ،
لیکن اس کی وجہ، مزہ ہے یہ ایک بہت ظاہر کرتا ہے
Haskell اور Euterpea بارے میں چیزوں کی.
>> تو اس colon-- بڑی آنت کی ر ہے گنا چیزوں pushes ہے کہ صرف ایک آپریٹر
مل کر ایک خالی پر نامی ایک list-- پر صرف خالی بریکٹ ہے جس کی فہرست،.
اور میں اس کو بلا رہا ہوں یہ لامحدود فہرست.
یہ اصل میں دو فہرستیں ہے یہاں نیچے کے ساتھ شامل.
فہرست 1 کاما 6 ڈاٹ ڈاٹ 1، 6، 11، 16 ہے.
بس میں تو Haskell-- چند حروف، آپ
پورے پیدا کر سکتے ہیں نمبروں کی ترتیب
پانچ کی تعداد کے علاوہ ہیں کہ انفینٹی میں پر ھیںچ.
اور میں اس کو prepend کے یہ مختصر تھوڑا list--
3، 8، 21-- صرف آپ کو دکھانے کے لئے کس طرح آپ کی فہرستوں سلسلہ بندی کرنا کر سکتے ہیں.
>> اور پھر میں نے خود پر جوڑ ہے.
اور یہ صرف کی ایک قسم ہونے کی وجہ سے ختم ہو جاتی ہے شناخت آپریشن، لیکن یہ لامحدود ہے.
اور، ر یہ کر سکتے ہیں ڈالتے ہیں اس کی وجہ سے lazily کا مندرجہ بالا کے طور پر، کی تشخیص کرتا ہے.
ہم نے ایک 1 اور 2 اور 3 ہے تو، ہم کر سکتے ہیں صرف اس کے پورے باقی بند بریکٹ.
اس کے لئے کام نہیں کرے گا مائنس یا پلس، لیکن یہ
یہ بڑی آنت کے لئے کام کریں گے فہرست شناخت آپریشن.
>> تو ہم کس طرح عملی طور پر استعمال کرتے ہیں کہ اگر ہم چیزوں کی ایک infinitely طویل فہرست ہے؟
ویسے، Haskell کی فراہم کرتا ہے افعال کی ایک بہت
اور ان میں زیادہ نظر آتے ہیں لے جیسا کہ آپ اپنے ہیں وقت
جو ٹھیک ہے، ہم ہیں، کا کہنا ہے کہ اس لامتناہی فہرست پیدا کرنے،
لیکن ہم کچھ لینے کے لئے جا رہے ہیں اس کے اور اس کیس میں نمبر
ہم بعد میں یہ دیکھ لیں گے ہماری ڈھول مشین code--
جی ایم گلوبل کے کچھ قسم ہے اقدامات کی تعداد کے لئے متغیر
sequencer کے میں.
رول میں مشینوں پر میں ، کہ عام طور پر 16 ہے، آپ سے ظاہر ہوتا ہے
لیکن میں نے 32 کے ساتھ اس کو لاگو کیا ہے.
یہ واقعی کوئی فرق نہیں پڑتا.
>> Haskell کی بھی پاک ہے، تو یہ مضبوط ہے کونر لئے alluded کہ مستحکم ٹائپنگ.
تو افعال ہیں sense-- میں ریاضی
وہ زیادہ ریاضیاتی ہیں وہ ضمانت رہے ہیں کہ
رسائی یا کسی بھی قسم کی کو تبدیل نہیں یا متغیر ان پٹ یا پیداوار انجام.
آپ کو ایک تقریب ہے تو، یہ نیتاتمک ہے.
یہ ہمیشہ ایک ہی واپس آ جائیں گے پروگرام کی حالت میں قیمت
یا ایک ہی رہتے ہیں.
monadic مستثنیات، کورس کے، ہیں اس سے، لیکن اس سے ہمارے دائرہ کار سے باہر ہے.
>> کونر HARRIS: جی ہاں.
اس کا کیا مطلب ہے، اگرچہ، وہاں ہیں چند اہم [اشراوی]
اس کے نتائج.
ایک یہ کرنے کے لئے بہت آسان ہے کہ ہے Haskell کی پروگرام parallelize.
اگر آپ کی وجہ سے، ، اس کی ایک تقریب کا کہنا ہے کہ
تو، ایک ملین اقدار پر کام کرنے کے لئے کی ضرورت ہے تم نے اس تقریب ہمیشہ جانتے ہیں
اسی قدر تو باہر دے آپ کو ایک مخصوص قدر میں کھانا کھلانا
آپ کے ایف، [اشراوی] F 1 کے ہیں تو 2، تو دالہ f کا 3 یا 1 چ whatnot--
باہر لکھنے کے لئے نہیں جا رہا ہے ایک فائل میں یا کچھ کرنا
کہ F2 کی قیمت کو تبدیل کریں گے.
تم صرف ایک کے لئے اس تقریب کو تقسیم کر سکتے ہیں ملین مختلف مشینوں یا ایک ملین
مختلف موضوعات یا جو کچھ بھی، واپس تمام جوابات حاصل،
تمام واپسی اقدار حاصل واپس، اور پھر یہ کہ یہ ہے.
چیزوں parallelize کرنے کے لئے بہت آسان.
>> منفی پہلو ان پٹ ہے اور پیداوار خاص طور پر
قسم کے نظام میں فٹ بہت پیچیدہ طریقوں سے.
اب ہم اس حق میں جانے، لیکن میں نہیں ہوں گے کچھ وسائل کو دیکھنے کے لئے آپ کی حوصلہ افزائی
آن لائن آپ کو اس کے بارے میں جاننے کے لئے چاہتے ہیں تو.
>> اسٹیفن KREWSON تو ٹائپ classes-- اور اس
اقسام میں سے was-- کلاس حل کرنے کے لئے ایجاد کیا گیا
آپریٹر اوور لوڈنگ کا مسئلہ.
تو ہم مساوات ہے کرنا چاہتا تھا چیزوں کی مختلف اقسام کے درمیان.
کورس کے، ہم of-- سوچ سکتا عددی اقسام کے درمیان مساوات
، کے بارے میں سوچنا کرنے کے لئے بہت آسان ہے، لیکن کیا فہرستوں کے درمیان مساوات کے بارے میں؟
کے درمیان مساوات کے بارے میں کیا درخت ٹانگ ڈیٹا ڈھانچے؟
اور اس میں سب ممکن ہے Haskell کی قسم کے کلاس کی وجہ سے.
>> تو آپ کو ایک مخصوص ڈیٹا ٹائپ کی وضاحت تو اور یہاں، ان موسیقی کی پچوں ہیں.
ہم آخر میں ہو رہی ہے کچھ کمپیوٹر موسیقی.
تو ہم C، C تیز ہے، اور تو اور تو آگے.
انہوں نے ایک گروپ سے تعلق رکھتے ہیں مختلف قسم کی کلاسیں.
EQ-- وہ EQ قسم طبقے سے تعلق رکھتے.
وہ حمایت کا مطلب مساوات آپریشن.
لہذا آپ کو ایک آیا اندازہ کر سکتے ہیں موسیقی primitives کی ترتیب
ایک مختلف ایک کے طور پر ایک ہی ہے.
>> وہ آرڈینل طبقے سے تعلق رکھتے.
یہ ایک حکم ان کے لئے ہے کا مطلب ہے.
ڈی سی سی تیز کے بعد آتا ہے اس کے ساتھ ساتھ سی کے بعد آتا ہے.
وہ کلاس سے تعلق رکھتے ہیں وہ کر سکتے ہیں جس کا مطلب ہے، ظاہر
ایک کنسول یا ٹرمینل پر پرنٹ کیا جا.
وہ سے تعلق رکھتے کلاس، مقرر کردہ ہے جس میں
مطلب یہ ہے کہ اگرچہ ان حروف ہیں،
انہوں نے ایک بنیادی عددی ہے 0 سے شروع نمائندگی
تاہم ذریعے جا بہت سی چیزیں یہاں ہیں، 20 یا تو،
شاید یا 30 یا 40،.
>> کونر HARRIS اور جب ہم ایک ڈیٹا کی قسم ہے
کہ مطلوبہ الفاظ کے ساتھ derives-- "deriving--" ایک خاص قسم کلاس،
یہ سنکلک کی کوشش کریں گے کا مطلب ہے کہ خود کار طریقے سے کچھ کی تعمیر کے لئے.
تو شاید آپ چاہتے ہیں کریں گے مختلف ایک معیار کی وضاحت.
آپ کو تیز سی وضاحت کرنا چاہیں گے مثال کے طور پر، D فلیٹ کے برابر کے طور پر.
اس کی تعمیر کے ساتھ یہاں، میں سی تیز نہیں لگتا
اور D فلیٹ، کیونکہ برابر ہو جائے گا سنکلک خود کار طریقے سے کریں گے
ہر مختلف ممکنہ قیمت کا کہنا ہے کہ ہر دوسرے سے مختلف ہے.
>> تو یہ جگہ لے لے کرنے کے لئے ممکن ہے پہلے سے طے شدہ نفاذ
کلاس کی ان اقسام میں سے.
ایک بار پھر، کا حوالہ تو دیکھو آپ اس کے بارے میں جاننے کے لئے چاہتے.
اسٹیفن KREWSON اور یہاں، اصل میں، اس گے
ہم بعد میں کوڈ جب لئے مددگار ثابت ہو.
ہم infix آپریٹرز میں سے کچھ دیکھنے تخکرمک ساخت کے لئے،
متوازی ساخت، اور تو آگے، ان pluses اور برابر نشانیاں
colons طرف سے گھیر لیا.
کہ ہم ان مختلف ادا کر سکتے ہیں کا مطلب ہے کہ موسیقی primitives میں ایک کے بعد ایک.
یہ تخکرمک ساخت ہے.
>> یا ہم میں ادا کر سکتے ہیں ایک ہی وقت میں متوازی.
تو میں نے ایک موسیقی کی قدر کر سکتے ہیں، اور پھر اس، کے برابر ہے اور colons
، متوازی ساخت کا آپریٹر آپ infix اور راگ کی ایک قسم کے طور پر ان کے کھیلنے.
اور ہم استعمال کرنے کے لئے جا رہے ہیں اس وقت ہم نے جمع
کے ساتھ اپنے ڈھول حصہ ہمارے تھوڑا سے Frere جیکس نغمہ
ان دو انداز کو کھیلنے کے لئے ایک ہی وقت میں موسیقی اقدار.
>> is-- کری Currying آخری دفعہ پایا گیا Haskell کی کری کے نام جو
Haskell کی تصویر کے بعد نام ہے.
اور یہ ہمارے ایک کی اجازت دیتا ہے ہم جب اچھا خوبصورتی
ان تمام مختلف تحریری کام کرتا ہے یا ہم ہیں کہ فلٹر
ہمارے فہرستوں سے زیادہ تعریفیں جا رہا.
دو میں سے ایک تقریب X اور y-- چ دلائل
کے طور پر نمائندگی کیا جا سکتا ہے ایف ایکس کے Y پر لاگو.
تو اس کی ایک تقریب ہے واپس کہ ایک دلیل
ایک دلیل کی ایک تقریب.
تو یہ ہم نے ایک نقشہ کر سکتے ہیں کا مطلب ہے کہ Y کی فہرست پر X کی دالہ f.
کونر HARRIS: کرنا چاہتے ہیں اس کی ایک مثال دے؟
اسٹیفن KREWSON: جی ہاں.
میں یہیں سے ایک مثال ہے ہم لکھیں گے چیزوں میں سے کچھ.
تو نقل 2-- ساتھ، لے جائے گا دہرانے
کتنے ہے جو ایک قدر، اوقات کچھ دہرانے کی،
اور پھر اس قدر لے جائے گا عام طور پر ایک فہرست یا کچھ.
تو یہاں، ہم تعریفیں ہیں ایک اور فہرست سے زیادہ 2 دہرانے.
>> ہم 2 نقل نقشہ تو اگر، ہم 2 دہرانے اگر لاگو
اس فہرست کے پہلے عنصر کے لئے اور ان موسیقی phrases-- کی فہرستیں ہیں
دو پیدا کرے گا "آپ sleeping--" لہذا آپ سو رہے ہیں، آپ سو رہے ہیں.
تو اب ہم دو ہیں.
لیکن نقل دو لیتا ہے دلائل، لیکن ہم ہیں کیونکہ
تعریفیں تو currying اور، ہم نقل 2 نمائندگی کر سکتے ہیں
کی ایک تقریب کے طور پر واپس آ گیا ہے کے طور پر ایک دلیل صرف دو بار کے replicating.
اور پھر ہم سے ہر ایک کو اس کا اطلاق کر رہے ہیں جملے کی اس فہرست کے عنصر.
>> اور concat ایک Haskell کی ہے ایک فہرست چپٹی لئے آپریشن.
نقل 2 گا کیونکہ فہرستوں کی ایک فہرست پیدا.
اور یہ اس انٹرمیڈیٹ فارم یہاں ہے.
اور تو ہم concat کر سکتے ہیں یا دو بار ہے کہ باہر چپٹا.
کونر HARRIS: ایک آسان currying کی مثال،
آپ like-- اگر F صرف ایک ہے کا تصور دو لیتا ہے کہ ضرب تقریب
دلائل اور ان مصنوعات کی واپسی.
آپ کو ایک F 4 5 ہے تو، یہ 20 ہے.
لیکن آپ کو اس کے بارے میں سوچ کر سکتے ہیں also-- آپ کو ایک تقریب F 4 ہے
کہ ایک دلیل اور واپسی لیتا یہ صرف دلیل چار گنا
جزوی درخواست جس صرف ایک دلیل 4.
اور آپ 4 کے ایف کو کھانا کھلانا تو 5، کہ آپ کو 20 دے گا.
اور یہ کہ ایک آسان ہے currying کی مثال.
یہ عام طور پر نصابی کتاب والوں میں سے ایک ہے.
>> اسٹیفن KREWSON: لامڈا اظہار یا گمنام افعال
دوسرے Haskell کی شناخت ہیں.
ہم ایک کوڑا کی ضرورت ہے تو چھوٹی سی تقریب میں زندگی نقل،
لیکن اس میں نہیں ہے کا کہنا ہے کہ معیاری لائبریری،
ہم ایک نحوی استعمال کر سکتے ہیں مندرجہ ذیل کی طرح.
اور ہم اس سے زیادہ ہوا کریں گے.
آپ میں ایک بہت کچھ دیکھیں گے ایک بات ڈھول مشین ہم کالز کر رہے ہیں ہے
کچھ کرنے کے لئے بلایا جس طرح سے پہلے، فلٹر،
ایک تقریب کے ایک میپنگ ہے ایک فہرست کے ساتھ، یہ ہے لیکن
ایک بولین تقریب کی تعریفیں.
>> تو ہم یہاں ایک مثال ہے کے ایک گمنام
وضاحت بولین تقریب ہے صرف ایک جوڑے اقدار لیتا ہے.
یہ سختی سے بات نہیں ہے ایک گمنام تقریب.
لیکن اس کے ساتھ کی وضاحت ہے سنکشپتتا کے لئے نحو،
اور یہ صرف ایکس ماڈیول لیتا (ن)
کونر HARRIS: جی ہاں.
تو F کی ایک تقریب ہے دو دلائل (ن) اور P
جو خود ہے کہ ایک تقریب کی واپسی ایک دلیل کی ایک تقریب، یعنی ایکس.
اسٹیفن KREWSON میں ذکر infix آپریٹرز.
infix آپریٹرز کیا ہیں؟
ویسے، infix آپریٹرز ہیں ہم آپریشن کی نمائندگی عام طریقہ،
mathematics-- 2 کے علاوہ میں، کا کہنا ہے کہ بجائے آپریٹر کی 2 کے علاوہ
اور اس کے بعد دو دلائل 2 اور 2.
کونر HARRIS: یہ کہا جاتا ہے ہے جس میں، پولستانی سنکیتن ریورس
ایک اصطلاح میں تم میں سے کسی کو پتہ چلے گا پر شک.
>> اسٹیفن KREWSON: دائیں.
پولستانی یا سابقہ ​​سنکیتن ریورس.
لیکن Haskell کی کرنے کا فیصلہ infix آپریٹرز کا استعمال.
تو ان میں سے کچھ یہ ہیں اپنی مرضی کے مطابق ہیں کہ
کے لئے تعریف کر رہے ہیں Haskell کی میں Euterpea DSCL.
تو اس تخکرمک ساخت تھا.
یہ متوازی ساخت تھا، اور اس متوازی ساخت قطع برید تھا.
اور ہم اس کی ضرورت ہو گی ہماری ڈھول مشین کے ساتھ،
ہم نے گزشتہ استعمال کریں گے کیونکہ وہاں اس چھوٹے tuple میں آپریٹر
ساتھ ڈھول مشین کو کھیلنے کے لئے ہمارے سے Frere جیکس گیت کے ساتھ.
اور ہمارے ڈھول مشین ہے لامحدود ہونے جا رہا.
یہ ہمیشہ کے لئے ادا کرتا ہے.
لیکن سے Frere جیکس نغمہ نہیں ہے.
یہ طویل نہیں ہے.
یہ صرف چند سلاخوں ہے.
تو ہم ڈھول مشین کو روکنے کے لئے کی ضرورت ہے چھوٹا موسیقی قدر آتا ہے جلد ہی کے طور پر
ختم کرنے کے لئے.
اس infixed آپریٹر اس کے ساتھ سپر مددگار ہے.
>> کی طرح اور infix سنکیتن یہ اچھی قسم کا ہے
کہنا ہے کہ کیونکہ آپ کو ایک تقریب کی طرح ہے اقتباس، جو عددی ڈویژن دیتا
کچھ کی طرف سے ایکس کے else-- معذرت، کہ ایک اور ب ہونا چاہئے.
آپ بی کے ایک اقتباس کے طور پر لکھ سکتے تھے.
آپ put-- عنصر ہے تو اس کی ایک اور مثال.
کچھ کی فہرست میں X عنصر، آپ کو ڈال دیا تو یہ Backticks میں، آپ اسے استعمال کر سکتے ہیں.
یہ ایک علامت نہیں ہے اگرچہ پلس یا مائنس یا بار کی طرح،
آپ کو ایک کا نام استعمال کر سکتے ہیں Backticks میں اس طرح کی تقریب
بہت اچھی بات ہے جس infix آپریٹر، کے طور پر.
کونر HARRIS: ایک بار پھر، یہ ہے صرف syntactic چینی، واقعی.
یہ زبان کے بنیادی کو متاثر نہیں کرتا.
>> اسٹیفن KREWSON: تو ہم کے لئے یہاں دیکھیں ہمارے سے Frere جیکس نغمہ کی آخری جملہ،
میں کچھ تھوڑا chords کے ادا کیا یا متوازی ساخت کا استعمال کرتے ہوئے تہائی
آپریٹر.
یہ کچھ کہہ کا ایک اور طریقہ ہے ہم صرف یہ کہہ رہا ہوں کیا.
تو آپ کے افعال نقشہ کر سکتے ہیں فہرستوں میں ایک دلیل کے.
کونر HARRIS: ایک بار پھر، حوالہ جات Haskell-- تعارفی نصابی کتابوں کے لئے
اس میں اس کے تمام پڑے گا.
>> اسٹیفن KREWSON: تو یہاں ایک خوبصورت ہے قدم sequencer کے اہم لائن
ہم استعمال پر ایک نظر لے لیں گے ایک فہرست فہم.
اور ہم یہاں اس عنصر ہے کو دیکھنے کے واپس کی قیمت درج کرنے میں فکسڈ آپریٹر میں.
X کی فہرست کا ایک عنصر ہے تو ایکس کی، پھر ہم Perc کی افعال کو فون کروں گا.
تو Perc کی صرف ایک ٹککر تقریب ہے.
یہ ہے کہ کچھ قدر لیتا ہے پی سب سے جکڑے ہوئے سیٹ کا حصہ
مختلف ٹککر آواز ہم ایک گزشتہ سلائڈ میں نے دیکھا ہے کہ،
اور پھر یہ کہ دیتا ہے ایک چوتھائی نوٹ کی مدت.
ورنہ یہ ایک QNR دیتا ہے، اور QNR صرف ایک چوتھائی نوٹ باقی ہے.
>> تو یہ کچھ اچھا کی تعمیر ہے.
ہم عناصر کی ایک فہرست ہے، اور ایک سے کچھ کی فہرست پر ہم کریں گے لوپ
ہمارے قدم sequencer کی زیادہ سے زیادہ قیمت پر.
اور ہم ایک خاص میں میں ہو جب زیادہ سے زیادہ قیمت کے لئے ایک کی فہرست،
کہ میں نے اس کے ایک رکن ہے اس تقریب میں پیدا سیٹ،
اچھی طرح سے، تو ہم اسے تبدیل ایک ٹککر نوٹ میں.
دوسری صورت میں، ہم صرف ایک باقی، ادا کرتا ہے ہم صرف خاموش رہنے، کا کہنا ہے کہ.
اور ہم یہاں دیکھ سکتے ہیں کہ اس فہرست فہم نحو،
X اس کی طرف سے آبادی ہے فہرست ایک تعمیر
sequencer کی عالمی سائز کے.
کونر HARRIS: جی ہاں.
کے لئے بنیادی نحو فہرست comprehensions ہے
شامل بریکٹ، قیمت کچھ متغیر، بار،
متغیر کی ممکنہ اقدار خود، بریکٹ بند.
اور آپ کی مقرر بلڈر سنکیتن کیا ہے تو ریاضی کی کلاس کے کسی بھی قسم میں،
آپ کو اس طرح 2N قائم ہو سکتا ہے کہ (ن) یا میں ن Z میں ہے.
اس سنکیتن thing-- اسی طرح تجویز ہونا مراد ہے
کہ ریاضی سنکیتن کی.
اسٹیفن KREWSON اور آپ کر سکتے ہیں ایک سے زیادہ predicates لاگو
ایک فہرست میں اور ایک سے زیادہ کے فلٹر بہت اچھا ہے جس میں فہم،.
الجبری types-- ہم یہاں طویل تاخیر نہیں کریں گے.
ایک اچھا تصور میں نہیں ہے Haskell کی یا ایک اچھا، واضح تصور
لینے کے لئے، کا کہنا ہے کہ، ایک پہلے سے طے شدہ کے ایک تقریب یا کچھ کرنے کے لئے پیرامیٹر.
ازگر میں، یہ بہت آسان ہے.
پر برابر کے ساتھ آپ کو صرف کہہ سکتے ہیں تقریب کا اعلان،
ایک پہلے سے طے شدہ قیمت میں کیس سے کوئی بھی فراہم کی جاتی ہے.
>> Haskell کی میں، آپ کو شاید کر سکتے ہیں شاید ٹائپ ہو سکتا ہے کا استعمال کرتے ہیں،
جو یا تو کچھ بھی نہیں لیتا یا قسم کی قیمت صرف ایک.
تو ہم ڈھول مشین میں اس کا استحصال ہمیں اختیاری حجم دینے کے لئے اجازت دینے کے لئے
ڈھول حصوں میں سے ہر ایک کے پیرامیٹرز.
کہ ہمیں EQ رکھنے کا ایک طریقہ فراہم کرتا ہے تو یا کسی خاص چینل پر ایک حجم.
>> کونر HARRIS: میں دیگر Haskell کی مثالیں،
آپ کو شاید کے لئے استعمال کیا دکھائی دے سکتا ہے ناکام ہو سکتا ہے کہ کام کرتا ہے.
یہ ایک عام سے ایک ہے.
>> اسٹیفن KREWSON اور آپ کو فراہم کر سکتے ہیں ایک پہلے سے طے شدہ طور پر غلطی پیغام کے کچھ قسم کی.
اور یہ کہ خاص طور پر جب آسان ہے آپ Haskell کی میں / O کر رہے ہیں.
کہ چالوں ہو سکتا ہے.
کونر HARRIS: یا ایک کے لئے اسی طرح مثال کے طور پر، لگتا ہے
ڈویژن شامل ہے کہ ایک تقریب کے 0 ہو سکتا ہے کہ ایک پیرامیٹر کی.
اور اس تقریب سکتا شاید جو کچھ بھی واپس.
0 کوئی تقسیم نہیں ہے اگر ایسا ہے تو، یہ صرف جو کچھ بھی واپس آ جائیں گے.
اور ڈویژن کی طرف سے تو نہیں ہے 0، یہ کچھ بھی نہیں واپس آ جائیں گے
غلطی سگنلنگ کا ایک طریقہ کے طور پر.
میں سے ایک نتیجہ کی وجہ سے Haskell کی بہت سخت ٹائپنگ
کوئی real-- کہ وہاں ہے مستثنیات، بنیادی طور پر، عجیب ہیں
غلطی کی ہینڈلنگ عجیب ہے.
اور یہ بہت ہے یہ کرنے کے عام طریقہ.
>> اسٹیفن KREWSON: تو اب ہم حاصل ایک دماغ موڑنے بات کرنے کے لئے
Haskell کی، کے بارے میں جس کے پیٹرن ہے ملاپ اور تقریب کی تعریف.
میں نے گزشتہ سلائڈ میں نے تمہیں دکھایا قدم ترتیب کا اعلان
ایک شاید قیمت لیا جس کی تقریب،، پھر اسے ایک int، پھر ints کی ایک فہرست،
پھر ایک ہی تسلسل واپس موسیقی اقدار ینوٹیٹ
پچ اور حجم دونوں کے ساتھ.
>> تو ان تین دلائل ہو سکتا ہے مندرجہ ذیل راستے میں ملائے پیٹرن.
اور ہم نے ہمیشہ آپ کو اس بات کا یقین کرنا چاہتے ہیں سب سے پہلے ایک بنیاد کیس یا باہر نکلیں کیس.
اور ان انڈر صرف تشریح کی جا سکتی
وہاں ہے کہ کسی بھی قیمت کا مطلب.
ہم ترتیب قدم ایک فون ملتا ہے تو کچھ قیمت کے ساتھ، کسی دوسرے قدر،
اور پھر خالی فہرست میں، ہم کیا چاہتے ہیں واپس کرنے کے لئے صرف خاموشی، آرام 0.
>> اور اس کے بجائے اس کا ایک خالی کی فہرست یا 0 ہونے،
ہم ہیں اس کی وجہ سے، ایک آرام 0 موسیقی کی قسم کے ساتھ نمٹنے،
اور موسیقی کی خالی فہرست قسم صرف کوئی مدت کے باقی ہے.
یہ کوئی موسیقی ہے.
ہمیں ایک قدم ملتا ہے اور پھر ہم دیکھیں حجم دلیل کے لئے ایک V کے ساتھ تسلسل،
احتیاط آلہ کے لئے P دلیل، اور پھر ایکس کی ایک فہرست.
>> پھر ہم کچھ چیزیں.
خاص طور پر، ہم درخواست اس فہرست فہم،
اور ہم نے کچھ انجام شاید قیمت پر آپریشن
تاکہ ایک عددی قیمت میں تبدیل کرنے یہ تو مقرر کردہ اور استعمال کیا جا سکتا
آلہ منتخب کرنے کے لئے.
ایک بار پھر، یہ ایک چھوٹا سا ہے بٹ نے جان بوجھ کر inconcise
صرف تمام عجیب چیزوں کو ظاہر کرنے کے لئے آپ کے طور پر Haskell کی میں کر سکتے ہیں
اپنے اپنے وقت پر اس پر ایک نظر لے.
>> بالکل ٹھیک.
تو ہم آخر میں ہو رہی ہے ہم کرتے ہیں کے لئے باہر قائم کیا کروں،
جس میں کچھ کمپیوٹر موسیقی بنانے کے لئے ہے.
تو ہم کرنے کی کوشش کرنے کے لئے جا رہے ہیں سے Frere جیکس گیت گاؤ.
تو کس طرح سے ہیں سے Frere جیکس میں جملے؟
چار.
عظیم.
اور کیا اچھا ہے یہ ہے کہ وہ سب بار بار کر رہے ہیں
دو ہے جس کے اوقات کی ایک ہی رقم،.
>> تو ہم چار جملے کا ترجمہ ہے ہر دو بار.
اور خاص طور پر، وہ ایک دور میں ہیں.
اور، وہاں بہت سے ہیں کئی طریقوں کو لاگو کرنے کے
ایسا کرنے کے مزہ ہو سکتا ہے کہ ایک گول.
میں میں کیا ہے خوبصورت یہاں آسان طریقہ،
جس میں صرف لائن construct-- ہے تقریب موسیقی اقدار کی فہرست لیتا
اور تخکرمک ساخت میں بدل جاتا ہے کہ تخکرمک ساخت کا اطلاق کی طرف
آپریٹر.
>> اور پھر میں نے مختلف علاقوں میں تاخیر بنا کر انہیں آرام کے ساتھ شروع.
تو میں نے دو اقدامات کے باقی حصوں کے ساتھ شروع، اور پھر چار اقدامات کی ایک آرام،
اور چھ اس وقت کے ایک آرام اقدامات، اور پھر گول
ہم سب اس گیت جانتے ہیں کے طور، کام کرتا ہے.
ہم دیکھیں دو تشریحات یا موسیقی اقدار کی ترمیم
اس تخکرمک میں موجود ہیں موسیقی عناصر کا انتظام.
ہم ایک اضافہ حجم ہے.
یہ تشریح کرنے کی ایک تقریب ہے ایک خاص طور پر حجم کے ساتھ موسیقی.
یہ ایک اچھی مثال ہے ایک MIDI سگنل چلانے کے
0 سے 127 کرنے کے لئے، سات بٹس کیا جا سکتا ہے کہ معلومات.
>> اور then-- ہم بہت اسے دیکھا مختصر طور پر، لیکن عام طور پر MIDI
تمام مختلف آلات کی فہرست.
اور ان میں سے ایک پوری بہت کچھ نہیں ہے.
آپ کو ایک ڈیجیٹل آڈیو کارگاہ استعمال کرتے ہیں تو، Ableton Live کے یا پرو، فورم کے اوزار کی طرح،
ایک ناقابل یقین حد وسیع رینج ہے synthesizers اور VST آلات کی.
لیکن MIDI معیار صرف چند، یا کئی درجن ہے.
اور ان میں سے کچھ مضحکہ خیز ہیں.
ہم نے ادا کیا تو مجھے یہ مزہ آئے گا سوچا آلہ MIDI آلہ
ہیلی کاپٹر، اور اس کے بعد راؤنڈ کے ذریعے اگلے راستہ،
ہم اور اس کے بعد، ایک پیڈ کے synth کیا اس corny قیادت مربع لہر synth کے،
اور پھر، رسنا آواز ہیں جس میں ایک اپنے برے MIDI پر تھوڑا سا indistinct ہے
مرکب ساز، لیکن وہ ٹھیک ہے.
>> اور پھر ہم اس لشکر طیبہ دیکھیں اور Haskell سے نحو میں،
اور پھر ہم کھیل رہے ہیں ایک ساتھ مل کر ان تمام حصوں
متوازی ساخت آپریٹر کے ساتھ.
اور ہم شاید اس میں سے کچھ دکھا سکتا.
یہاں کوڈ ہے.
اور آپ C میں دیکھ سکتے ہیں، ایک وہاں ہو جائے گا حلق ہٹانے اور ترتیب کے بہت
تم سے پہلے ٹیبل کوڈ اس طرح موسیقی بنانے کے کر سکتے ہیں.
یا کسی بھی دوسری پروگرامنگ زبان، آپ کو شاید چاہوں
کسی قسم کے ساتھ بات چیت کرنا پڑے لائبریری یا API اور سب کچھ قائم،
اور پھر آپ کو صاف کرنے کے لئے پڑے گا.
لیکن یہاں Haskell کی ہے، میں نے ایک بار، لگتا ہے آپ ناقابل یقین حد تک، اس کا ہینگ حاصل
پڑھنے کے قابل اور بہت ابیوینجک.
لہذا عمل درآمد ہے سے Frere جیکس کی.
بالکل ٹھیک.
اب ہم ٹککر شامل کرنا چاہتے ہیں، اور یہ تھوڑا سا messier ہے.
تو سلائڈ پر ایک نظر ڈالیں.
اتنا بڑا خیال بنانے کے لئے ہے فہرستوں یا حصوں کا ایک گروپ.
ان رول میں مشینوں پر، وہاں شاید آٹھ کے بارے میں عام طور پر تھے
10 تال یا ٹککر حصوں میں.
اور پھر تراکیب کا ایک گروپ کو استعمال.
اور ہم these-- استعمال کرنے کے بارے میں بات کی ہے پرتوں، فلٹرز، لامڈا افعال،
اقدار پیدا کرنے کے لئے فہرستوں میں مائچترت کچھ رینج میں 1 R کرنے کے لئے، R، 16
یا sequencer کے 32 اقدامات.
>> اور اس فہرست میں ایک قدر ہے پھر اگر ہم sequencer کے ذریعے چل رہا ہے کر رہے ہیں کے طور پر،
زیادہ اس کے ذریعے چل رہا ہے اور کے ساتھ، یہ اس بات پر بدل جاتا ہے،
اور اس نمونہ کو متحرک کیا جاتا ہے.
یہاں تمام مختلف عجیب طریقے ہیں میں نوٹ پیدا کرنے کے ساتھ آئے تھے.
اپنی خود کی نیم رقم پر کرنے کی کوشش.
یہ ٹھنڈا آواز گا.
وقت ہم اس کے ذریعے جائیں گے، اجازت.
لیکن اب کے لئے، مجھے لگتا ہے ہم کیا ڈیمو چاہئے.
یہ ٹھیک ہے امید ہے کہ.
>> تو اس GHCI ہے.
اور ہم نے ایک فائل کو لوڈ کریں گے میں نے بلایا song.lhs ہے،
جس میں صرف آپ سے ظاہر ہوتا ہے فائل ہے.
ٹھیک ہے، بہت اچھا.
کونر جیسا کہ پہلے کہا، یہ مرتب، اس کی جانچ پڑتال کی قسم،
تو میں بہت آسان سانس لے سکتے ہیں.
یہ مجھ پر اڑانے کی نہیں جا رہا ہے.
>> میں آپ کے لئے مفید کچھ دکھانا چاہتا تھا.
آپ کو ایک دیکھ سکتے ہیں بھری ہوئی ماڈیول 50 بلایا.
آپ اس ماڈیول براؤز کر سکتے ہیں.
یہ بہت اچھا ہے doing-- بارے میں ہو سکتا ہے کیا
Haskell کی نہیں ہے میں تم کر رہے ہو سوفٹ ویئر کی نشوونما سے ملاقات کی،
لیکن تم میں سے ایک بہت کچھ کر سکتے ہیں اپنے اپنے طور پر مزہ چیزیں.
اور کام کے فلو کے طور پر بہت اچھا ہے دیگر زبانوں میں سے ایک بہت کے مقابلے میں،
آپ کو ایک بہت میں دیکھ سکتے ہیں کی وجہ سے کیا ہو رہا ہے پڑھنے کے قابل انداز.
تو ہم دیکھتے ہیں کہ ان تمام جملے، جس
موسیقی پچوں کی فہرست ہیں، اور پھر ہم زیادہ کچھ میں ان کی تعمیر،
جس میں ایک موسیقی گیت ہے.
یہ ایک موسیقی یونٹ ہے.
اور پھر ہم سب اس ادا کر سکتے ہیں ایک تقریب میں بلایا کھیلیں موسیقی کے ساتھ.
آپ یہاں اس کو دیکھ سکتے ہیں.
جس میں صرف ادا کر رہا ہے.
>> میں نے کے بارے میں بات نہیں say-- چاہئے ہر جگہ ہے کہ اس ڈالر کا نشان.
ڈالر کا نشان ایک infix آپریٹر ہے.
لیکن یہ سب سے کم ترجیح ہے جو مؤثر طریقے سے کسی بھی آپریٹر کے
کہ سب کچھ ہے ڈالر کا نشان کے بائیں
اور ڈالر علامت کے دائیں، ہم اس سے پہلے کا تعین کرنے کے لئے جا رہے ہیں.
تو یہ ایک اور طرح طرح کی ہے قوسین شامل کرنے کا طریقہ.
>> کونر HARRIS: یہ بنیادی طور پر ہے تقریب ساخت.
اور یہ آپ کو تو have-- نہیں ہے کہ یقینی بناتا ہے آپ کے افعال کی طرف یا infix یا تو ہے
دونوں کناروں پر آپریٹرز، وہ نہیں اس پار سے منسلک اور آپ کو دے
غیر متوقع نتائج.
>> اسٹیفن KREWSON: تو ہم can-- کا استعمال کرتے ہوئے، ہم کہتے ہیں کر سکتے ہیں.
سب سے پہلے، ہم ڈرم کے بغیر ادا کریں گے.
کہ، ہیلی کاپٹر کے MIDI ہیلی کاپٹر.
>> [موسیقی بجانے]
مربع لہر نہیں ہے.
آواز رسنا.
اور تم واقعی اس کے ساتھ جنگلی جا سکتے ہیں.
میں نے ایک خوبصورت سادہ ایک اٹھایا، میں جانتا تھا کیونکہ میں سے کاٹ نہیں کیا جانا چاہئے
میں چبانا کر سکتے ہیں کے مقابلے میں زیادہ.
صرف خوبصورت اسے سادہ رکھیں اہم خیالات ظاہر کرنے کے لئے.
لیکن اس وقت میں کی طرح، ہم نے گیا اس کے لئے کچھ ڈرم شامل کرنے کے لئے ہے.
بس یہ ایک ہے کیونکہ تھوڑا سا ابھیدی،
اور میں استعمال نہیں کیا ڈھول حصے کا نام،
وہ کر رہے ہیں کیونکہ میں عنقریب مائچترت کہ مقرر کردہ کلاس کا حصہ،
میں ints کے لئے ان مائچترت.
ایک باس ڈھول کی طرح ہے.
صفر کے طور پر اچھی طرح سے ہے.
سات ایک اعلی ٹوپی ہے.
اور یہاں ذیل میں جہاں افعال، ایک چھوٹا سا زیادہ بے ترتیب حاصل
ان کونگا ڈرم کی طرح ہیں.
>> تو آپ کو شاید ایک about-- لگتا ہے ایک ڈھول مشین کے نفاذ کے لیے پرلطف طریقہ
بہت منظم استعمال کرنا ہے اپنے باس ڈھول پر پیٹرن.
تو مثال کے طور، زیادہ فلٹرنگ پر واپس دیتا ہے کہ سب کچھ کے ساتھ کی فہرست
یہ ماڈیول 04 لیا ہے جب ایک 1.
تو میں 1، 5، 9، 13، 17-- تو یہ حاصل ہر اقدام کے سب سے پہلے بیٹ ہے.
>> اور پھر یہ ایک ہی ہے بات دو اقدامات پر منتقل کر دیا گیا.
تو ہے کہ خلاف معمول ہے.
تو یہ ہو جائے گا ایک اعلی ٹوپی کی طرح کچھ.
اور پھر دوبارہ، یہاں نیچے، یہ تھوڑا بے ترتیب ہے
ہم کونگا ڈرم کر رہے ہیں کی وجہ سے.
اور میں بھی، یہاں کچھ سے Maracas نیچے.
>> تو میں، کھیلیں ڈھول مشین کہہ سکتے ہیں لیکن یہ ہمیشہ کے لئے پر جائیں گے،
اور اس کو پکڑ شروع ہو سکتا ہے میرے سسٹم میں تمام میموری.
تو میں نے اس تقریب کو فون کریں گے ، ہم دیکھیں گے کے طور پر جس میں موسیقی کو کھیلنے کے
قطع برید متوازی ساخت کا استعمال ہماری چھوٹی سے Frere جیکس گانا کھیلنے کے لئے
یہ عجیب ڈھول مشین کے ساتھ.
تو ایک نظر ڈالیں.
اور کو بہتر بنانے کرتے ہیں براہ مہربانی اپنے تمام ڈھول حصوں کا انتظام.
میرے خاص، لیکن میں یہ کام کر رہے ایک بہت مزہ تھا.
>> [موسیقی بجانے]
>> ظاہر ہے، یہ سب ہے مذاق کے طور پر تھوڑا سا نہیں
ہم اسے تبدیل نہیں کر سکتے ہیں ایک سکور تو شاید یہ
تشریح کی جا سکتی ایک انسانی اداکار کی طرف سے.
تو میں نے اسے یہاں نہیں چلائے جائیں گے.
میں نے پہلے ہی فائلوں پیدا ہے.
آپ کو ایک ہے کہ وہاں دیکھ سکتے ہیں ڈاٹ LilyPond فائل اور اس
کرنے کے لئے میری segue کا ختم ہو جائے گا Connor-- اور ایک نقطہ MIDI فائل،
اور کیا ایک نقطہ PDF فائل، ہے جو LilyPond بالآخر پیدا کرے گا.
>> لیکن یہ ان کے سکرپٹ ہیں، اور میں کروں گا صرف ان کی مدد کے اختیارات کے ساتھ ان کو چلانے کے.
تم ان کو حاصل کرنے کے ساتھ چل رہا ہے تو Euterpea، آپ کو ایک MIDI فائل پیدا کر سکتے ہیں.
اور پھر MIDI فائل سے اس میدی 2LY پروگرام کے ساتھ،
آپ کو ایک للی پیدا کر سکتے ہیں طالاب فائل، اور پھر آپ کو
سکور کی ایک پی ڈی ایف پیدا کر سکتے ہیں.
اور ہم نے اس پر ایک نظر رکھنا چاہئے.
تو کونر شاید دکھائے گا آپ کو کس طرح، یہ بہتر وضاحت کے لئے
لیکن اس سے Frere جیکس ہے Euterpea میں میری طرف سے پیدا.
یہ صرف سی میں سوچا ہے چاہئے اس میں اصل میں ہیک کیا.
لیکن اس کے لئے پائپ لائن ہے تم اس کے ساتھ ایسا کس طرح.
کی LilyPond کے بارے میں مزید بات کرتے ہیں.
>> کونر HARRIS: ٹھیک ہے چلو دیکھتے ہیں.
آپ Haskell کی معلومات حاصل کریں کا ذکر کیا؟
اسٹیفن KREWSON: اوہ ہاں.
باہر چیک کریں کہ آپ Haskell کی معلومات حاصل کریں.
یہ وسائل میں ہے.
میں نے شروع کس طرح ہے سیکھنے، اور یہ بہت اچھا ہے.
بیوکوف نہیں سیکھنا.
>> کونر HARRIS: تو یہ ہے آن لائن.
اس نام کے ایک آدمی [اشراوی] learnyouahaskell.com، کوئی خالی جگہ.
گرامر بیمار ہے.
اسٹیفن KREWSON: یہ بہت، سچتر ہے.
کونر HARRIS: LilyPond کیا ہے؟
یہ ایک اعلانیہ پروگرامنگ ہے موسیقی کی typesetting لئے زبان.
تو آپ کر سکتے ہیں declarative-- ایچ ٹی ایم ایل کی طرح چیزوں کے بارے میں سوچنا،
تم نہیں ہو جہاں saying-- ایچ ٹی ایم ایل کس طرح ویب براؤزرز چاہئے کہنا ہے کہ نہیں
رینڈر صفحات قدم بہ قدم.
یہ صرف یہ کہہ رہا ہے ایک ٹیکسٹ وضاحت ہے
آپ کیا چاہتے ہیں کے صفحے کی طرح نظر آنا.
>> اور پھر یہ بھی ایک پروگرام ہے کہ اس زبان سے آگاہ کریں،
یا یہ اصل میں تو اس میں پڑھا تھا اور آپ کے لیے لازمی ہے،
اور یہ باہر spits بہت اچھی لگ PDF سکور.
تم نے بھی PNG فارمیٹ یا جو کچھ بھی حاصل کر سکتے ہیں.
ایک اچھی طرح سوچنے کے لئے اس قیاس کی طرف سے ہے
، لیٹیکس کی طرح LillyPond طرح ہے لیکن صرف عام کی typesetting لئے.
تو بجائے یہ نہیں ہے of-- جو تم دیکھتے ہو WYSIWYG،
آپ کہتے ہیں، کی طرح، حاصل کیا ہے اختتام ہے، یا Sibelius کی،
یا مائیکروسافٹ ورڈ، میں آپ ٹائپ کر سکتے ہیں جہاں حقیقی وقت میں حقیقی وقت اور ڈرافٹ چیزیں
اور فوری طور پر تبدیلیوں کو دیکھنے کے.
>> یہ متن کی بنیاد پر ہے.
آپ کو آپ کے مرتب کرنے کے لئے ہے ایک علیحدہ پروگرام استعمال کرتے ہوئے سکور
اور بعد میں پی ڈی ایفز باہر حاصل.
یہ تھوڑا سا کم ہے تم تو استعمال کے لئے آسان
براہ راست لکھنے کی کوشش کر تم اور ایک سکور میں
کمپیوٹر پر تحریر کرنے کی کوشش کر.
لیکن ایک بہت ہیں اس کے لئے فوائد میں.
ایک، یہ ایک بہت اچھے لگتی ہے LillyPond اصل کر سکتے ہیں کیونکہ
ایسا کرنے کے لئے وقت لے مناسب طریقے سے ترتیب فیصلے،
ہے جس Sibelius کے یا اختتام کے برعکس تو سمجھوتہ الگورتھم بنانے کے لئے
وہ ظاہر کر سکتا ہے حقیقی وقت میں چیزیں.
>> تو کیوں LilyPond-- ہے کمپیوٹر گرافکس مشکل ہے.
آپ کو موسیقی کے ساتھ کچھ بھی کر رہے ہیں اور آپ کو سکور باہر لکھنے کے لئے چاہتے ہیں،
آپ کو لکھنے کے لئے نہیں کرنا چاہتے خود کی طرف سے سب کچھ
اپنی طرف متوجہ کرنے کے لئے کس طرح کے ساتھ شروع عملے اور کس طرح اپنی طرف متوجہ کرنے notepads.
یہ بہت مشکل ہے. اس سے پہلے کیا گیا ہے.
تم ٹھیک ہو.
>> آپ اختتام یا Sibelius کے استعمال کرنا چاہتے ہیں، ان چیزوں کے لئے فائل کی شکل
بہت پیچیدہ ہیں، اور تم نہیں کر سکتے ہیں واقعی پروگرام ان کا استعمال.
تم اختتام کے ساتھ Sibelius کے کھول سکتے ہیں اور فائل کرنے کے لئے جانا، برآمد PDF کے طور پر خود،
لیکن تم سچ میں نہیں کر سکتے ہیں ایک سکرپٹ کی طرف سے کہتے ہیں.
LillyPond، آپ کو کال کر سکتے ہیں ان پٹکتاین سے.
آپ آسانی سے دہرانا سکتا لیٹیکس کے ساتھ LillyPond.
میں جانے کے لئے زیادہ وقت نہیں پڑے گا اب ان ٹیکنالوجیز میں،
لیکن وہ موجود.
آپ کو دیکھنے کے لئے چاہتے ہیں، تو ایک LillyPond کتاب میں،
اس کے ساتھ آتا ہے کہ ایک پروگرام ہے آپ LillyPond تقسیم،
اور یہ سب iterating کے لئے ہے لیٹیکس میں LillyPond ٹکڑے
آپ کو کچھ کرنا چاہتے ہیں تو ایک بڑی سے Musicology دستاویز کی طرح
مثال کے طور پر مثالیں کے ساتھ.
اور اس کے لئے ایک اچھی مہارت ہے آپ کو کچھ بھی کر رہے ہیں زندگی
موسیقی، نہ صرف CS50 کے ساتھ.
میں سب کے لئے LillyPond کا استعمال کیا ہے میرے ساخت کے منصوبوں کی
میں بنیادی طور پر تھا کے بعد ایک ہائی اسکول میں سینئر.
>> تو یہاں کچھ آسان مثالیں ہیں.
یہ بنیادی طور پر نمائندہ ہے مشکل کی سطح کے
کہ زیادہ تر لوگوں گے وہ کوشش کر رہے تھے اس کا سامنا
سادہ منصوبوں کے لئے استعمال کرنے کے لئے LilyPond.
یہ سب سے پہلے ایک آغاز ہے Bach کی طرف سے ایک کوریل کردار کو.
یہ نیچے ایک ایک اقتباس ہے اپنے کاموں میں سے ایک کی طرف سے،
اور یہ ظاہر کرنے کے لئے صرف وہاں ہے [اشراوی] کی طرح تم ان چیزوں
اسی میں ایک سے زیادہ لائنوں ڈال عملے، کس طرح گیت undersetting کام.
گیت underlays بہت ہے کہ ایک چیز ہیں choral موسیقی کے لئے LilyPond استعمال کرنا آسان ہے.
>> اور تو کچھ نہیں ہے یہاں پیچیدہ مثالیں.
ان تمام میں کیا کر رہے ہیں LilyPond اور وہ ممکن ہو.
یہ پہلا اقتباس کی طرف سے ہے [اشراوی] [اشراوی] کی طرف سے.
یہ [اشراوی] سے سولو باس کے لئے ایک ٹکڑا
[اشراوی] کی طرف سے بانسری، جو ایک longtime-- ہے جو
کے ایک دیرینہ رکن تھے یہاں موسیقی کے سیکشن، مجھے لگتا ہے.
مجھے وہ دور چلا گیا ہے جہاں اس بات کا یقین نہیں ہوں.
لیکن انہوں نے ہارورڈ یونیورسٹی کے مشیر تھا ایک طویل وقت کے لئے موسیقاروں ایسوسی ایشن.
اچھا آدمی.
اور وہ بہت ہے کہ کچھ موسیقی لکھتے ہیں پیچیدہ سنکیتن کہ LillyPond
بہر حال بہت اچھی طرح سے سنبھال سکتا ہوں.
>> تو تم میں سے ایک احساس دینے کے لئے کیا اس بات کی صلاحیتوں تو are--
LillyPond کے اندرونی بہت پیچیدہ ہیں.
اور آپ کے لئے استعمال کر سکتے ہیں ایک طویل وقت کے، سمیت
کچھ خوبصورت پیچیدہ لئے چیزیں، کے بغیر واقعی
ان کے بارے میں بہت کچھ جانتے ہیں کرنے کے لئے.
لیکن بنیادی خیال پر ہے سب سے کم سطح، LillyPonds کے ایٹموں
نوٹ کی ہیں.
نوٹ ایک پر مشتمل ہے سیاق و سباق کو بلایا آواز.
آواز تناظر تو بنیادی طور پر مساوی
polyphony کے کی ایک لائن پر.
اور پھر تناظر ہو سکتا ہے پر hierarchically موجود
اعلی سطح والوں میں کہ سکور پر عملے کی نمائندگی کرتے ہیں
کی طرح یا بڑے گروہوں پیانو عملے یا کوئر عملے،
اور پھر آخر میں پورے اسکور سیاق و سباق.
اور آپ اصل کا احاطہ کر سکتے ہیں ایک کتاب میں ایک سے زیادہ سکور.
>> اور ہر سیاق و سباق ہے ایک منسلک اینگراویرز کی تعداد.
آپ کے ذریعے نظر آتے ہیں سیاق و سباق کے مندرجات
اور ایک خاص علامت یا ایک پرنٹ ضروری طور پر علامتوں کی مخصوص طبقے.
ہر آواز سیاق و سباق سے تو، [اشراوی] نوٹوں ہے
بنیادی طور پر ایک تقریب ہے کہ اکیرک یا تمام نوٹ لکھتے ہیں کہ کسی چیز کو
ایک ایسے صفحے کے دائیں حصوں پر سر.
اس کے بعد ایک درار اکیرک، وہاں جس عملے پر دراڑوں باہر لکھتے ہیں.
پھر ایک metronome ہے نشان اکیرک کہ
ایک سکور میں metronome کے نشانات باہر لکھتے ہیں.
اور ان تمام خوبصورت فٹ اچھی طرح سے کے تنظیمی ڈھانچے میں.
اور یہ بہت، بہت، بہت ہے مرضی کے مطابق، جس سے آپ کی ضرورت ہے
آپ کو اس طرح چیزوں کو حاصل کرنا چاہتے ہیں تو.
>> تو تمام سیاق و سباق ایک ہے مختلف صفات کے بہت
آپ کو سب کچھ کے لئے نظر ثانی کر سکتے ہیں مختلف فونٹ کے لئے وقفہ کاری سے
چیزوں کے سائز کے انتخاب.
آپ کو بھی کرنا چاہتے ہیں تو زیادہ پیچیدہ چیزوں کو،
ایک ایمبیڈڈ سکرپٹ کی زبان ہے.
انہوں نے منصوبہ بندی، استعمال کرتے ہیں جس تتلاہٹ کی بولی ہے.
یہ شاید ایسا نہیں کرتے تم سے کچھ مطلب.
لیکن بنیادی طور پر، ایک سکیم ایک فعال
پروگرامنگ زبان، کم یا زیادہ.
>> اسٹیفن KREWSON: ٹائی میں.
>> کونر HARRIS: جی ہاں.
یہ ایک اچھی ٹائی میں ہے، مجھے لگتا ہے.
اور یہ ایک تعلیم زبان کے طور پر استعمال کیا جاتا ہے، اصل میں، ماس یوینیو نیچے ایم ائی ٹی میں.
اور یہ LillyPond کے لئے بہت آسان ہے مختلف تکنیکی وجوہات کی بنا پر.
>> اور اس لئے تم آسان بنانے کے لئے چاہتے ہیں تو کونداٹاونالس پر انحصار انداز،
مثال کے لئے کچھ نہیں ہے ملاقات ہے کہ ایک سکور کی حالت،
کرنے کے لئے تبدیلی ترتیب یا تو whatnot--
ان سہولیات موجود ہیں.
وہ پیچیدہ ہیں.
تو یہاں ایک خوبصورت سادہ کوڈ نمونہ ہے.
یہ پانچ لائنوں ہے.
بنیادی طور پر، میں نے دو عملے کی وضاحت کر رہا ہوں.
یہ 3/4 میں ہے.
پہلے عملے کے ایک ہے ٹیمپو نشان منسلک،
لیکن کہ اصل میں جا رہا ہے پورے سکور پر جانے کے لئے،
ٹیمپو نشانات کی وجہ سے سکور سطح پر ہیں.
metronome کے نشان اکیرک سیاق و سباق کے سکور کے ساتھ منسلک ہے.
مختلف چابیاں ہیں، [اشراوی] اکیرک کیونکہ
عملے منسلک کیا جاتا ہے.
تم واقعی میں ہے کر سکتے ہیں.
میں نے لکھا نمونہ ہے اصل C میجر میں،
لیکن یہ صرف کرنے کے لئے ہے آپ کر سکتے ہیں کا مظاہرہ
مختلف عملے میں مختلف چابیاں.
اور بنیادی نحو آپ لکھنا ہے E، F، G، جو کے ساتھ نام یاد رکھیں.
آپ accidentals کرنا چاہتے ہیں تو، آپ یا ES لاحقہ.
یہ ڈچ کی طرف سے ہے musicological کنونشن.
>> اور Octave کی راہ کرنا، آپ کو استعمال کرنے کی ضرورت ہے ان نشانات، کوما یا apostrophe کے ٹک.
رشتہ دار صرف کا مطلب ہے آپ کو ایک نوٹ ہے جو کچھ بھی،
یہ خود کار طریقے سے plaec جائے گا گزشتہ ایک کے قریب آٹھ سروں کا فرق.
اور تم سے زیادہ کود کرنا چاہتے ہیں ایک پانچویں یا more-- کہنا fifth--
تو آپ [اشراوی] کا استعمال کرنا پڑے.
لیکن دوسری صورت میں، آپ کی ضرورت نہیں ہے ہر ایک بات کو نوٹ کیجیئے کی Octave کی وضاحت.
>> اور رشتہ دار سی، وزیر، اور سی، آپ کو صرف مڈل سی وضاحت
اور بیس سی، خاص طور پر پہلی نوٹ.
اس کے بعد آپ کو منظم کہ ان چھڑیوں ہے ان دو آوازوں یا موسیقی کے نمونے،
اور آپ کو ایک سکور ہے.
اور یہ کہ اس طرح لگ رہا.
>> آپ کو وقت لینے کے لئے چاہتے ہیں، تو LillyPond کے اس نمونے کو کاپی
پچھلے پر کوڈ یہاں نیچے سلائڈ، اور آپ
LillyPond خود کے لئے یہ لکھ سکتے ہیں.
میرے خیال میں ہمیں کچھ ملا ہے جانتے ہیں کہ اس طرح ایک بہت لگ رہا.
تو ایک اور ٹیکنالوجی ہے نامی موسیقی XML برقرار رکھا
مکمل طور پر مختلف لوگوں کی طرف سے.
XML ایک ٹیکسٹ ڈیٹا structure-- ہوں ڈیٹا کہنا structure-- نہیں کہنا چاہئے
کا استعارہ نقشہ قسم.
اور اسے پکڑنے کے لئے ڈیزائن کیا گیا ہے پدانکردوست ڈیٹا بہت اچھی طرح سے.
ایچ ٹی ایم ایل، مثال کے طور پر، XML کی ایک قسم ہے.
اور آپ XML وجہ بتا سکتے ہیں وہ تھا تمام زاویہ بریکٹ اور زاویہ
بریکٹ سلیش نشانات ظاہر ہوتا ہے کہ اعداد و شمار شعبوں.
>> میں ایک کوڈ کی ضرورت نہیں ہے میوزک XML سے مثال کے طور پر.
تم نے اسے اپنے آپ کو تلاش کر سکتے ہیں.
بنیادی طور پر، آپ چاہتے ہیں کی وجہ سے ہو سکتا ہے انٹرمیڈیٹ مرحلے کے طور پر XML استعمال کرنے کے لئے
سب سے پہلے، یہ، ہے ایک انٹرچینج فارمیٹ
کے لئے بنیادی طور پر میں نہیں کہنا چاہئے every-- مختلف سکور کے ہر، لیکن ایک بہت
لکھنے والوں.
آپ کو موسیقی میں لکھنا تو XML، نہ صرف LillyPond کر سکتے ہیں
اس auxilary کی مدد سے اس کو پڑھنے کے پروگرام، LY پر موسیقی XML بلایا
بلکہ اختتام پڑھ سکتے ہیں یہ، Sibelius کے پڑھ سکتے ہیں.
کس طرح آپ کی اندرونی اعتراض پر منحصر ہے تنظیمی ڈھانچے، موسیقی نمائندگی کرنے کے لئے کام کرتا ہے
باہر لکھنے کے لئے یہ آسان ہو سکتا ہے LillyPond کرنے سے موسیقی XML کرنے کے لئے
اور صرف موسیقی XML پر انحصار کرتے ہیں LY تبادلوں کرنا.
>> میں [اشراوی] موسیقی XML ہے نہیں لگتا.
اسٹیفن KREWSON: یہ نہیں.
کسی اگرچہ، اس پر کام کر رہا ہے.
>> کونر HARRIS: ٹھیک ہے.
Euterpea ایک نہیں ہے ابھی تک موسیقی XML پیداوار تقریب.
آپ کو ایک حتمی منصوبے خیال کرنا چاہتے ہیں تو، شاید لوگوں کے ساتھ رابطے میں حاصل کرنے
اسٹیفن جانتا ہے کہ، اور وہ آپ کی مدد استعمال کر سکتے ہیں.
>> اسٹیفن KREWSON: میں اس سے محبت کرے گا.
کونر HARRIS بھی، بنیادی طور پر، ہر پروگرامنگ زبانوں
کہ اس کے نمک کے قابل ہے پہلے سے ہی ایک XML لائبریری ہے،
لہذا آپ کو اندرونی طور پر تمام تبدیل کر سکتے ہیں کچھ اعتراض میں آپ کی موسیقی کی
XML لائبریری لکھ سکتے ہیں کہ کم ضرورت پڑے گی باہر
اپنے اندرونی ساخت کے لئے تبدیلی جو کچھ بھی کے لئے موسیقی آپ کو اشیاء
یہ لکھنے سے لکھنا چاہتا ہوں براہ راست LillyPond میں کرے گا.
اس کے بعد صرف XML کے ساتھ ساتھ اسے باہر پرنٹ آپ کی زبان میں XML لائبریریوں،
یہ اس بات کی ضمانت کرے گا جس syntactically درست ہے اور ہر چیز،
اور پھر LillyPond اسے تبدیل.
تو ٹیکنالوجی آپ کو کرنا چاہتے ہو سکتا تم سے کچھ کر رہے ہیں میں دیکھو
اس طرح.
>> [اشراوی]، ایک auxilarry ٹیکنالوجی.
اس ٹیک کام بنیادی طور پر ہے یا LillyPond لئے ٹیک سٹوڈیو.
تو اس کے ساتھ مدد فراہم کرتا ہے سانچوں کے ساتھ نحو،
مختلف عام کے لئے آلات کے مجموعے.
یہ تو دیکھنے تقسیم کی سکرین کی اجازت دیتا ہے آپ کو ایک ونڈو میں آپ کے کوڈ حاصل کر سکتے ہیں
اور ایک دوسرے ونڈو میں پی ڈی ایف اور پی ڈی ایف میں مقامات پر کلک کریں
متعلقہ پر کودنے کے لئے آپ کے منبع کوڈ میں مقامات.
آپ اصل میں ہیں تو اس سے زیادہ مفید ہے تحریری LillyPond فائلوں اپنے آپ
آپ پیدا کر رہے ہیں کے مقابلے میں ان پروگرام.
لیکن ایک بار پھر، یہ ہے مفید کچھ کرنے کی.
>> عظیم.
ایک resources-- میں کروں گا بہت جلد اس کے ذریعے جانے.
LillyPond manuals-- LillyPond ہے اپنی ویب سائٹ پر شاندار دستاویزات.
انہوں نے ایک سبق ہے.
وہ ایک نحوی حوالہ ہے.
انہوں نے ٹکڑوں کے سینکڑوں ہیں مختلف چھوٹی چیزوں کے لئے
یو کا مظاہرہ کرنے کے لئے کیا ضرورت ہو سکتی ہے مختلف صلاحیتوں.
آپ استعمال کرنا چاہتے ہیں تو سکرپٹ کی زبان
یا اس سے زیادہ وسیع پیمانے پر بنانے اصلاح، پھر وہاں ہے
internals کے اس URL پر حوالہ.
you موسیقی XML استعمال کرنا چاہتے ہیں، وہاں ہے اس یو آر ایل، musicxml.com/tutorial.
>> اور پھر آپ کی منصوبہ بندی کے بارے میں جاننے کی ضرورت ہے تو آپ اصل میں استعمال کرنے کے لئے چاہتے ہیں کیونکہ
LillyPond میں سکرپٹ کی سہولیات، پھر ایک [اشراوی] کہا جاتا ہے
ساخت تشریح کمپیوٹر پروگرام کی،
جو نہ صرف دوسرے نمبر پر ہے کبھی سب سے بڑا کاوچ سرفنگ کے لکھ رکھا نصابی کتاب
آپ کو معلوم کرنا چاہتے ہیں تو اس کے بعد مجھے تلاش میں سب سے بڑا میں سے ایک is-- کیا سوچتے ہیں
لیکن یہ بھی ایک بہت اچھا ہے مناسب زبان کا تعارف.
تم سے زیادہ ضرورت نہیں کرے گا پہلے چند حصوں.
>> اور یہ بات ہے.
کوئی سوال؟
>> طالب علم: میں کہاں ڈاؤن لوڈ کرسکتے ہیں آپ پیدا سے Frere جیکس
تو میں اپنے آئی پوڈ پر ڈال کر سکتے ہیں؟
>> اسٹیفن KREWSON: ویسے، آپ لکھ سکتے ہیں Euterpea میں کچھ ویو فائل سے باہر.
اور آپ کے کوڈ ہے.
یہ GitHub کے پر ہے.
کے اپنے مختلف حالتوں بنائیں CS50 چھتے دماغ کی طرف سے Frere جیکس.
یہ بہت اچھا ہو گا.
کونر HARRIS: کوئی؟
اسٹیفن KREWSON: ہم نے کی ضرورت بھی ایک بہتر باس ڈھول،.
یہ بہت برا ہے.
>> طالب علم: Euterpea نہ صرف ہے ساخت کی طرف، لیکن signal--
اسٹیفن KREWSON: جی ہاں.
اصل میں، کام میں جب میں Euterpea میں کیا
this-- ایک ہے لیا ییل میں کورس چلے کہ
اندازہ لگانے آواز کی ترکیب پر تھا کا استعمال کرتا ہے.
تو واقعی وہاں ہے تیر استعمال کرتے ہوئے اچھا طریقہ
اور ہم نے دیکھا سنکیتن میں سے کچھ سگنل افعال کے ساتھ مل کر تحریر.
سب سے زیادہ خاص طور پر، باس میں ان میں سے صرف ایک سادہ جیب کی لہر ہے.
لیکن آپ کو ان کی تحریر شروع تو عجیب پروگرام طریقوں سے،
تم پاگل آواز حاصل کر سکتے ہیں عجیب cascades کی طرح اثرات،.
تم نے بہت کرکرا تشکیل دے سکتے ہیں ماڈلن کی ایک بہت کے ساتھ لگتا ہے.
>> میں دانے دار پر منصوبے کیا ہے جس کی ترکیب،
کہیں ایف ایم اور نمونے کے درمیان میں.
تم، بہت چھوٹی سی لے تھوڑا نمونے، اور اس کے بعد
کسی قسم کے ساتھ ان کو اکٹھا modulator اور ایک امیر آواز کی تعمیر.
ہم بھی تو، جسمانی ماڈلنگ کیا طبیعیات کے بارے میں سوچنے کی کوشش کر
اور اس طرح کچھ کے psychoacoustics کا ایک نرسنگا، اور جس طرح کے بارے میں سوچ
آواز دور شیخی ہے نرسنگے کی گھنٹی
اور صوتی کمرے اور ماڈلنگ
بنیادی oscillators کے ساتھ کہ.
کونر HARRIS: شکریہ بہت بہت.
شکریہ آنے کے لیے.
اور میں نے ہمیشہ کے لئے تیار ہوں email-- طرف سوالوں کا جواب
connorharris@college.harvard.edu.
>> اسٹیفن KREWSON: جی ہاں. stephen.krewson@yale.edu.
ٹھنڈا.