1 00:00:00,000 --> 00:00:05,180 2 00:00:05,180 --> 00:00:05,930 Connor HARRIS: হাই. 3 00:00:05,930 --> 00:00:06,820 আমি কনর হ্যারিস আছি. 4 00:00:06,820 --> 00:00:09,729 আমি হার্ভার্ডে একটি CS50 সিএ আছি. 5 00:00:09,729 --> 00:00:11,270 STEPHEN KREWSON: আমি স্টিফেন Krewson আছি. 6 00:00:11,270 --> 00:00:12,582 আমি ইয়েল CS50 জন্য একটি TF আছি. 7 00:00:12,582 --> 00:00:15,790 Connor HARRIS: আমরা কথা বলতে যাচ্ছেন কিছু প্রযুক্তি সম্পর্কে যে আপনি পারে 8 00:00:15,790 --> 00:00:18,880 আপনি আগ্রহী হলে ব্যবহার করতে চান একটি প্রকল্প চূড়ান্ত করছেন বা সত্যিই 9 00:00:18,880 --> 00:00:20,920 গান নিয়ে কিছু. 10 00:00:20,920 --> 00:00:24,400 আমরা প্রথমে একটি উপর মনোযোগ নিবদ্ধ করা চলুন Haskell বলা প্রোগ্রামিং ভাষা. 11 00:00:24,400 --> 00:00:26,280 এটি একটি কার্যকরী ভাষা, তাই দৃষ্টান্ত 12 00:00:26,280 --> 00:00:29,620 সি বা পিএইচপি থেকে খুব আলাদা বা অন্যান্য অনুজ্ঞাসূচক প্রত্যেক 13 00:00:29,620 --> 00:00:33,450 যে আপনি ইতিমধ্যে ব্যবহার, এবং বিশেষ করে থাকেন Haskell লেখা একটি লাইব্রেরি তে 14 00:00:33,450 --> 00:00:40,240 মানুষ সাহায্য করতে পারেন, যা Euterpea বলা বৈশিষ্ট্যগুলি গান লেখার সঙ্গে, 15 00:00:40,240 --> 00:00:40,780 মূলত. 16 00:00:40,780 --> 00:00:43,400 এবং স্টিফেন আপনি পদব্রজে ভ্রমণ হবে যে একটি বড় উদাহরণ মাধ্যমে. 17 00:00:43,400 --> 00:00:46,423 >> এই পর, আমি আপনাকে পরিচয় করিয়ে দেব LillyPond কিছু বলা, যা 18 00:00:46,423 --> 00:00:48,370 ছাপাখানার অক্ষরস্থাপন সঙ্গীত জন্য একটি প্রযুক্তি. 19 00:00:48,370 --> 00:00:50,830 এটা ধরণের ক্ষীর মত গান করার জন্য আপনাকে কোন 20 00:00:50,830 --> 00:00:57,530 গণিত ক্লাস জন্য ক্ষীর ব্যবহার করেছেন বা অন্যান্য পি সেট ক্লাস বা কি আপনি. 21 00:00:57,530 --> 00:01:00,440 আর তাই আমি আবার, আপনি দেব, যে কিছু সহজ উদাহরণ 22 00:01:00,440 --> 00:01:03,640 এবং সাধারণভাবে আপনি নির্দেশ ভাল কিছু সম্পদ দিক. 23 00:01:03,640 --> 00:01:04,319 >> STEPHEN KREWSON: ইন উপরন্তু, আমরা তা চিন্তা 24 00:01:04,319 --> 00:01:06,720 সেট আপ করতে শীতল হতে চাই নির্দেশ একটি সামান্য বিট 25 00:01:06,720 --> 00:01:10,780 মধ্যে পাইপলাইন দিকে Euterpea-উত্পন্ন MIDI ফাইল 26 00:01:10,780 --> 00:01:13,910 LillyPond মধ্যে, তাই আমরা প্রদান স্ক্রিপ্ট কিছু নির্দেশনা 27 00:01:13,910 --> 00:01:16,310 যে যে কাজ করতে LillyPond সাথে উপলব্ধ 28 00:01:16,310 --> 00:01:19,160 শুধু এটা ওপেন সোর্স রাখা এবং যাচ্ছে একটি পাইপলাইন পেতে. 29 00:01:19,160 --> 00:01:20,910 Connor HARRIS: আবার, আমরা জোর দেওয়া উচিত 30 00:01:20,910 --> 00:01:23,100 এই দুটি প্রযুক্তির, আপনি তাদের একসঙ্গে ব্যবহার করতে হবে না. 31 00:01:23,100 --> 00:01:25,370 তারা কাজ করার পরিকল্পনা করছি না একসাথে, যদিও তারা খুব সুন্দরভাবে করতে. 32 00:01:25,370 --> 00:01:26,362 >> STEPHEN KREWSON: রাইট. 33 00:01:26,362 --> 00:01:30,116 এবং সম্পূর্ণ বিনামূল্যে. 34 00:01:30,116 --> 00:01:32,240 Connor HARRIS: তাই কৃতজ্ঞতা স্বীকার, শুধু যে পড়তে. 35 00:01:32,240 --> 00:01:33,406 STEPHEN KREWSON: বাকীতে লক্ষনীয়. 36 00:01:33,406 --> 00:01:36,360 যারা ভাবেন ধন্যবাদ. 37 00:01:36,360 --> 00:01:39,180 এই আমি শুধু একটা মুহূর্ত জন্য গড়িমসি করব. 38 00:01:39,180 --> 00:01:41,560 ইনস্টলেশন প্রক্রিয়া একটি সামান্য বিট প্রবঞ্চক হয়. 39 00:01:41,560 --> 00:01:45,420 আমরা একটি GitHub উপর আমার পড়া আছে আপনি কটাক্ষপাত করতে পারে. 40 00:01:45,420 --> 00:01:47,840 যদি আপনার কোন প্রশ্ন থাকে তাহলে শুধু আমাকে ইমেইল করুন. 41 00:01:47,840 --> 00:01:52,829 কিন্তু আমরা ধৃষ্টতা অধীনে এই রান করব এই যে সবার জন্য কাজ করছে. 42 00:01:52,829 --> 00:01:55,620 Connor HARRIS: আর যদি আপনি করতে পারেন না LillyPond, কোন বড় চুক্তি কাজ পেতে. 43 00:01:55,620 --> 00:02:00,139 কোন লাইভ সংকলন আছে যে অন্তত আমার প্রান্তে, জড়িত করা হবে. 44 00:02:00,139 --> 00:02:02,930 STEPHEN KREWSON: Haskell এবং LillyPond উভয় ইনস্টলারের থাকা উচিত. 45 00:02:02,930 --> 00:02:08,497 Euterpea একটি হিসাবে ডাউনলোড করা হয় বাক্স, তাই এবং তাই ঘোষণা. 46 00:02:08,497 --> 00:02:10,080 সুতরাং আমরা কম্পিউটার সঙ্গীত সম্পর্কে কথা বলার চেষ্টা করছি. 47 00:02:10,080 --> 00:02:12,990 আর এই মাত্র হল খুব 50,000 ফুট দেখুন. 48 00:02:12,990 --> 00:02:15,700 এটা কয়েক বিভিন্ন দিক আছে. 49 00:02:15,700 --> 00:02:18,120 আর এই রুক্ষ হয় এবং হয় কিছু বিস্তারিত অস্পষ্ট যাচ্ছে. 50 00:02:18,120 --> 00:02:22,090 কিন্তু আমরা কিছু মনে করতে পারে আলগোরিদিমিক রচনা মতো, 51 00:02:22,090 --> 00:02:24,920 অ্যালগোরিদম ব্যবহার করে, উৎপন্ন, কোড ব্যবহার করে 52 00:02:24,920 --> 00:02:30,280 কিছু টাইপ র হয়তো একটি স্বয়ংসম্পূর্ণ একই নোট, অথবা হয়তো নোট ক্রম 53 00:02:30,280 --> 00:02:33,330 কিছু সীমাবদ্ধতা অধীনে. 54 00:02:33,330 --> 00:02:35,350 এবং তারপর যারা হতে পারে সঞ্চালিত বা ব্যাখ্যা 55 00:02:35,350 --> 00:02:38,390 এনালগ যন্ত্র দিয়ে বা যে মত কিছু. 56 00:02:38,390 --> 00:02:42,010 কিন্তু সহযোগ ছিল algorithmically, সম্পন্ন. 57 00:02:42,010 --> 00:02:45,120 >> কিন্তু অবশ্যই, হয়তো এলাকায় কম্পিউটার সঙ্গীত ডাউনলোড করুন অথবা ডিজিটাল মিউজিক 58 00:02:45,120 --> 00:02:48,870 আমরা ডিজিটাল সঙ্গে আরো পরিচিত আছেন শব্দ সংশ্লেষণ বা ডিজিটাল স্যাম্পলিং 59 00:02:48,870 --> 00:02:51,160 এবং ডিজিটাল রেকর্ডিং. 60 00:02:51,160 --> 00:02:55,650 ডিজিটাল যন্ত্র অনেক আছে ডিজিটাল স্যাম্পলিং মাধ্যমে সম্পন্ন. 61 00:02:55,650 --> 00:03:00,110 আসলে, আমরা যারা এক ব্যবহার করা হবে পরে একটি শব্দ ফন্ট লাইব্রেরি আকারে. 62 00:03:00,110 --> 00:03:02,850 >> কিন্তু এছাড়াও কিছু আছে নামক এসেছেন যে ডিজিটাল সংশ্লেষণ 63 00:03:02,850 --> 00:03:08,650 দেরী '70s এবং মধ্যে' এর সঙ্গে 80s স্ট্যানফোর্ড এ ইয়ামাহা এবং জন Chowning 64 00:03:08,650 --> 00:03:11,990 এফএম সংশ্লেষণ করছেন বা ফ্রিকোয়েন্সি মড্যুলেশন সংশ্লেষণ, 65 00:03:11,990 --> 00:03:15,100 যেখানে আপনি একটি ক্যারিয়ার ছিল সংকেত এবং একটি মোডিউলেট সংকেত 66 00:03:15,100 --> 00:03:18,270 উভয় অডিও বর্ণালী. 67 00:03:18,270 --> 00:03:22,570 কিন্তু আমরা নিবদ্ধ তা আজ, এখন MIDI কিছু বলা হয় 68 00:03:22,570 --> 00:03:25,040 এবং অবশ্যই, আলগোরিদিমিক রচনা. 69 00:03:25,040 --> 00:03:30,940 >> আমরা যন্ত্র করতে যাচ্ছে, কিন্তু করছি না আমরা পরিবর্তে কিছু গান করতে যাচ্ছেন, 70 00:03:30,940 --> 00:03:33,940 এবং তারপর যে ব্যাখ্যা করা হবে কিছু যন্ত্র দ্বারা যে 71 00:03:33,940 --> 00:03:38,300 যাও conformant হয় সাধারণ MIDI স্ট্যান্ডার্ড. 72 00:03:38,300 --> 00:03:40,830 সুতরাং এখন MIDI কি? 73 00:03:40,830 --> 00:03:45,550 আমি খুব গভীর তা পেতে যাচ্ছি না কিন্তু এখন MIDI ডাটা ট্রান্সফার প্রোটোকল. 74 00:03:45,550 --> 00:03:49,250 এটি জুড়ে একটি গাইড এক ধরনের বিভিন্ন কোম্পানি ও শিল্প 75 00:03:49,250 --> 00:03:52,250 শব্দ বা প্যাচ সংগঠিত জন্য. 76 00:03:52,250 --> 00:03:54,170 সুতরাং আমরা দেখতে পাবেন একটি MIDI স্ট্যান্ডার্ড আছে 77 00:03:54,170 --> 00:03:57,500 সব বিভিন্ন সঙ্ঘর্ষ জন্য শব্দ এবং MIDI সুপারিশ 78 00:03:57,500 --> 00:04:01,360 synth এর সব বিভিন্ন ধরনের জন্য অথবা সব উপকরণ বিভিন্ন ধরনের 79 00:04:01,360 --> 00:04:03,650 একটি অর্কেস্ট্রা দলের, বলতে. 80 00:04:03,650 --> 00:04:08,916 >> আপনি সম্ভবত সাথে পরিচিত হন 0 মাধ্যমে 127 MIDI বার্তা. 81 00:04:08,916 --> 00:04:12,920 একটি MIDI সংকেত সাধারণত হয় ইঙ্গিত এক বিট 82 00:04:12,920 --> 00:04:16,130 এটি একটি একটি তথ্য বা কিনা অবস্থা প্যাকেট, এবং তারপর আছে 83 00:04:16,130 --> 00:04:18,589 একটি সংকেত সাত বিট. 84 00:04:18,589 --> 00:04:21,430 এবং এই নিয়ন্ত্রণ করতে পারেন ভলিউম থেকে সবকিছু 85 00:04:21,430 --> 00:04:25,330 কর্ম বা চাপ একটি নির্দিষ্ট কি উপর 86 00:04:25,330 --> 00:04:29,400 আপনি একটি MIDI সাথে সম্পাদন করছি নিয়ামক হিসেবে, অবশ্যই, 87 00:04:29,400 --> 00:04:31,250 নোট. 88 00:04:31,250 --> 00:04:33,450 এবং অবশ্যই, MIDI অত্যন্ত দরকারী হয়েছে 89 00:04:33,450 --> 00:04:37,550 এটা তারের একটি উপায় কারণ একসঙ্গে বা ডেজি চেন 90 00:04:37,550 --> 00:04:41,570 MIDI হার্ডওয়্যার ডিভাইসের একটি গুচ্ছ. 91 00:04:41,570 --> 00:04:44,050 আমি আমার বাড়িতে সাত বা আট ফিরে আছে. 92 00:04:44,050 --> 00:04:46,610 এটা সত্যিই জটিল পরার কিন্তু এটা সত্যিই শক্তিশালী. 93 00:04:46,610 --> 00:04:47,460 আর এটা সত্যিই বৃদ্ধ. 94 00:04:47,460 --> 00:04:51,117 এটা প্রথম দিকে '80s থেকে, এবং এটা সত্যিই চমৎকার এবং ছোট. 95 00:04:51,117 --> 00:04:51,950 Connor HARRIS: হ্যা. 96 00:04:51,950 --> 00:04:54,230 সমস্ত ক্লাসিক ছুটিতে নিরাপত্তার ভিডিও গেম সম্ভবত would 97 00:04:54,230 --> 00:04:56,088 উদাহরণস্বরূপ গান জন্য MIDI ফাইল, আছে. 98 00:04:56,088 --> 00:04:59,550 99 00:04:59,550 --> 00:05:01,740 >> STEPHEN KREWSON: এখানে একটি কী সাধারণ MIDI দৃষ্টান্ত 100 00:05:01,740 --> 00:05:06,520 এক ধরনের হিসাবে এখন MIDI দেখাচ্ছে সাধারণ প্রোটোকলের. 101 00:05:06,520 --> 00:05:13,280 আর আমি মনে করি আমরা মনে করতে পারেন মনে হয় নির্দিষ্টকরণ মধ্যে পার্থক্য 102 00:05:13,280 --> 00:05:17,830 মত কিছু আছে উচিত যে এই যন্ত্র প্রকৃত শব্দসমূহ এবং 103 00:05:17,830 --> 00:05:21,740 যারা যন্ত্র আদায় শোনাচ্ছে একটি শব্দ ফন্ট অথবা একটি নির্দিষ্ট করার MIDI 104 00:05:21,740 --> 00:05:25,740 পার্থক্য হচ্ছে synthesizer বলেছেন যা হয়তো একটি typeface-- মধ্যে, 105 00:05:25,740 --> 00:05:30,350 সাধারণভাবে, এই নকশা এই বিশেষ ভাবে উপস্থাপন করার 106 00:05:30,350 --> 00:05:35,907 characters-- এবং একটি নির্দিষ্ট ফন্ট যে, একটি নির্দিষ্ট মাপ এবং সুর আছে 107 00:05:35,907 --> 00:05:37,240 এবং the-- আদায় আছে 108 00:05:37,240 --> 00:05:39,156 >> Connor HARRIS: হয়তো একটি ভাল উপমা would 109 00:05:39,156 --> 00:05:43,430 হতে ইউনিকোড এটা দেয় says-- একটি ভাষার অক্ষরে সংখ্যা, এবং সত্যিই 110 00:05:43,430 --> 00:05:46,830 পৃথিবীর প্রতিটি ভাষা, বা ভাষা স্ক্রিপ্ট সুবিশাল সেট 111 00:05:46,830 --> 00:05:51,310 বিশ্বের, এবং তারপর যারা কিছু গ্রাফিক্যাল মধ্যে অনুষ্ঠিত 112 00:05:51,310 --> 00:05:53,710 বিভিন্ন ফন্টের প্যাকেজ দ্বারা. 113 00:05:53,710 --> 00:05:56,630 এ কথা স্পষ্ট যে, আপনি মনে করতে পারেন শব্দ ইউনিকোড হিসেবে এখন MIDI. 114 00:05:56,630 --> 00:06:03,250 এবং এটি একটি বড় স্ট্রিম র শুধু একটি তালিকা ঘটনা এবং যন্ত্র এবং যে কোন বস্তু এর, 115 00:06:03,250 --> 00:06:06,090 এবং আপনি একটি পৃথক আছে প্রোগ্রাম, একটি টাইপফেস মত, 116 00:06:06,090 --> 00:06:08,537 মধ্যে যে রেন্ডার শ্রাব্য কিছু যে. 117 00:06:08,537 --> 00:06:12,360 118 00:06:12,360 --> 00:06:13,780 >> STEPHEN KREWSON: সুতরাং কেন Haskell? 119 00:06:13,780 --> 00:06:19,110 Haskell একটি কার্যকরী প্রোগ্রামিং হয় খুব উন্নত ভাষা, 120 00:06:19,110 --> 00:06:22,770 সি থেকে ভিন্ন, পিএইচপি থেকে ভিন্ন. 121 00:06:22,770 --> 00:06:28,120 আর আমরা একটি আছে দেখতে যাচ্ছেন মধ্যে Haskell ফাংশন রফা আরাম 122 00:06:28,120 --> 00:06:37,640 যে আমাদের মাধ্যমে হাওয়া অনুমতি দেবে transcribing, রচনা বা টাইপ, 123 00:06:37,640 --> 00:06:42,160 Frere জ্যাক ভালো কিছু, এই সহজ গান যে 124 00:06:42,160 --> 00:06:46,815 এটা এ অংশের অনেক আছে যে স্ব-অনুরূপ বা পুনরাবৃত্ত হয়. 125 00:06:46,815 --> 00:06:49,740 126 00:06:49,740 --> 00:06:53,250 তাই এই কিছু হতে হবে কেন জন্য প্রেরণা 127 00:06:53,250 --> 00:06:59,400 আমরা, Haskell ব্যবহার করছেন যা ফাংশন প্রথম শ্রেনীর নাগরিক. 128 00:06:59,400 --> 00:07:01,120 >> আর আমি প্রসারিত করতে চেয়েছিলেন এই একটি সামান্য বিট. 129 00:07:01,120 --> 00:07:08,800 এটি একটি সামান্য বিট সহজ মধ্যে Haskell Frere জ্যাক notate. 130 00:07:08,800 --> 00:07:12,100 কিন্তু আমরা করতে চেয়েছিলেন এটা করার জন্য একটি ড্রাম অংশ যোগ করতে চান? 131 00:07:12,100 --> 00:07:17,320 আমরা করতে চেষ্টা চেয়েছিল কি একটি রোল্যান্ড 808 বা 909 ড্রাম ভালো কিছু 132 00:07:17,320 --> 00:07:20,970 আপনি যেখানে মেশিন প্রায় 16 বিভিন্ন পদক্ষেপ? 133 00:07:20,970 --> 00:07:24,590 সাধারণত এইসব হয় যেমন 16 নোট চিন্তা. 134 00:07:24,590 --> 00:07:28,640 এবং আপনি বিশ্বব্যাপী নিয়ন্ত্রণ করতে পারেন লয়, এবং আপনি খুঁজে নিতে পারবেন 135 00:07:28,640 --> 00:07:34,620 বিভিন্ন সঙ্ঘর্ষ অংশের একটি গুচ্ছ খাদ ড্রাম, একটি হাততালির শব্দ, বিভিন্ন ফাঁদ, 136 00:07:34,620 --> 00:07:37,540 খোলা এবং বন্ধ উচ্চ টুপি চ্যানেলের এই সাজানোর উপর, 137 00:07:37,540 --> 00:07:41,600 এবং তারপর আপনি EQ পারেন অথবা তাদের ভলিউম সামঞ্জস্য. 138 00:07:41,600 --> 00:07:45,290 >> এবং আমরা একটা চমৎকার ভাবে দেখতে পাবেন এই ধাপে প্রতিনিধিত্বমূলক Haskell 139 00:07:45,290 --> 00:07:48,810 সমস্ত সঙ্গে Sequencer মধ্যে Haskell বিভিন্ন শীতল জিনিস 140 00:07:48,810 --> 00:07:53,100 আমরা উৎপাদিত সঙ্গে কাজ করতে পারেন তালিকা ধরে তালিকা এবং ফিল্টারিং, 141 00:07:53,100 --> 00:07:56,060 তালিকা ধরে ম্যাপিং, ম্যাপিং তালিকা ধরে ফাংশন. 142 00:07:56,060 --> 00:07:59,530 143 00:07:59,530 --> 00:08:00,760 আর একটি দ্রুত গনতন্ত্রে. 144 00:08:00,760 --> 00:08:05,300 এটি একটি খুব দ্রুত হয় এবং মাত্রাতিরিক্ত দ্রুত স্কেচ 145 00:08:05,300 --> 00:08:07,620 কিছু দিক নিয়ে Haskell এবং Euterpea এর, 146 00:08:07,620 --> 00:08:11,760 একটি ডোমেন নির্দিষ্ট যা হয় এমবেডেড ভাষা লেখা 147 00:08:11,760 --> 00:08:14,970 বাদ্যযন্ত্র ধরনের জন্য মধ্যে Haskell. 148 00:08:14,970 --> 00:08:17,350 সুতরাং অনলাইন কোড চেক আউট না দয়া করে. 149 00:08:17,350 --> 00:08:22,404 গ্লাসগো যা জ্বলা GHCI, Haskell কম্পাইলার ইন্টারপ্রেটার. 150 00:08:22,404 --> 00:08:24,320 আর আমি কিছু কাজ করা হবে কিছুক্ষন এই 151 00:08:24,320 --> 00:08:25,880 তাই আপনি কিভাবে এটি কাজ করে দেখতে পারেন. 152 00:08:25,880 --> 00:08:31,021 >> আর এই আপনার সাথে এ লোড করতে পারবেন the-- সিনট্যাক্স তারপর কোলন ও হয় 153 00:08:31,021 --> 00:08:31,520 আদেশ. 154 00:08:31,520 --> 00:08:33,510 আপনি ফাইল লোড করতে সক্ষম. 155 00:08:33,510 --> 00:08:36,840 আপনি ঐ ফাইল ব্রাউজ ব্যবহার করতে পারেন সকল ফাংশন দেখতে যে 156 00:08:36,840 --> 00:08:39,169 একটি বিশেষ মডিউল মধ্যে উপস্থিত থাকে. 157 00:08:39,169 --> 00:08:43,850 আর আমরা, ধরনের এবং টাইপ দেখতে পাবেন তারপর হিসাবে ক্লাস, মধ্যে Haskell এত গুরুত্বপূর্ণ 158 00:08:43,850 --> 00:08:48,850 তাই আপনি সর্বদা বিশেষ check-- পারেন যদি আপনি একটি নতুন DSCL কাজ করছি 159 00:08:48,850 --> 00:08:51,600 এই মত একটি গান টাইপ কি? 160 00:08:51,600 --> 00:08:55,114 আমি পথ সাংখ্যিক সম্পর্কে জানতে ধরনের মধ্যে Haskell কাজ 161 00:08:55,114 --> 00:08:56,530 কিন্তু আমি গান সম্পর্কে অনেক কিছু জানি না. 162 00:08:56,530 --> 00:09:01,280 তবে আপনি যদি তারা করছি উপায় অন্বেষণ করতে পারবেন এই T বা টাইপ কমান্ড ব্যবহার করে সংজ্ঞায়িত 163 00:09:01,280 --> 00:09:04,577 এবং তারপর একটি বিশেষ আহ্বান ফাংশন বা তথ্য বস্তুর. 164 00:09:04,577 --> 00:09:05,410 Connor HARRIS: হ্যা. 165 00:09:05,410 --> 00:09:09,820 আপনি সি এবং ঝনঝন মনে করেন ধরনের সম্পর্কে hardass ছিল, 166 00:09:09,820 --> 00:09:11,230 আপনি Haskell সম্পর্কে কোন ধারণা আছে. 167 00:09:11,230 --> 00:09:14,230 Haskell সম্পর্কে ভাল জিনিস হল, আপনি কম্পাইল আপনার কোড পেতে পারেন যদি 168 00:09:14,230 --> 00:09:16,790 এবং Haskell টাইপ চেক যদি, এটি সম্ভবত ঠিক 169 00:09:16,790 --> 00:09:18,675 টাইপ সিস্টেম তাই কঠোর কারণ. 170 00:09:18,675 --> 00:09:20,090 >> STEPHEN KREWSON: হ্যা. 171 00:09:20,090 --> 00:09:21,980 তাই আমি শুধু যেতে চান আবার এর মাধ্যমে এবং, 172 00:09:21,980 --> 00:09:27,160 এটি একটি কয়েক ন্যায় করছে না Haskell বৈশিষ্ট্য, যে অন্তত 173 00:09:27,160 --> 00:09:31,780 তার creators-- এবং এটি তৈরি করা হয়েছে মানুষের একটি গুচ্ছ দ্বারা 1980 সালে, 174 00:09:31,780 --> 00:09:34,610 প্রায় 20 একটি কমিটি লোক গুরুত্বপূর্ণ ছিল. 175 00:09:34,610 --> 00:09:36,850 এবং সর্বপ্রথম যে জিনিসটি তারা একটি কাগজে তালিকাভুক্ত যে 176 00:09:36,850 --> 00:09:41,890 Haskell জনন বর্ণনা প্রথম 20 বছর বা তাই ওভার 177 00:09:41,890 --> 00:09:43,390 এটা অলস ছিল যে. 178 00:09:43,390 --> 00:09:44,990 তাহলে এর অর্থ কি? 179 00:09:44,990 --> 00:09:49,860 >> আমরা কিছু আছে যখন ওয়েল, এটা মানে মত প্রকাশের, আমরা তা নির্ণয় করতে হবে. 180 00:09:49,860 --> 00:09:54,390 এবং Haskell একটি কলে এই আছে প্রয়োজন উপায় বা অ কঠোর ভাবে করে. 181 00:09:54,390 --> 00:09:57,250 আমরা একটি গুচ্ছ আছে যে, হয় আমাদের মত প্রকাশের উপাদান, 182 00:09:57,250 --> 00:10:00,660 আমরা মূল্যায়ন বিলম্ব করার চেষ্টা যারা subcomponents এর 183 00:10:00,660 --> 00:10:05,300 পরম সর্বশেষ minute-- পর্যন্ত আমরা আসলে তাদের প্রয়োজন না হওয়া পর্যন্ত যে হয়. 184 00:10:05,300 --> 00:10:08,480 >> তাই এই মানে যা সত্যিই শীতল, বিশেষত 185 00:10:08,480 --> 00:10:13,200 আমরা বিমূর্তন সম্পর্কে চিন্তা করছি একটি বাদ্যযন্ত্র পদক্ষেপ Sequencer এর. 186 00:10:13,200 --> 00:10:16,740 আপনি এটি চালু, এবং আপনি শুরু একটি পদক্ষেপ sequence-- চলমান 187 00:10:16,740 --> 00:10:20,010 আপনি কি একটি ড্রাম সঙ্গে কাজ তাহলে machine-- এবং এটা শুধু চিরকালের যায়. 188 00:10:20,010 --> 00:10:24,650 তাই আমরা যদি সত্যিই চমৎকার হবে Haskell যে অনুকরণ করতে পারে. 189 00:10:24,650 --> 00:10:31,040 আর আমরা অসীম সঙ্গে এটি করতে পারেন মান, বিশেষ অসীম তালিকায়. 190 00:10:31,040 --> 00:10:35,860 এটি একটি টাইপ করা খুব সহজ মধ্যে Haskell অসীম তালিকা. 191 00:10:35,860 --> 00:10:39,230 আপনি শুধু নিচে সিনট্যাক্স ব্যবহার করতে পারেন এখানে, আপনি 3 মাধ্যমে 1 দেখতে যেখানে, 192 00:10:39,230 --> 00:10:42,440 3 1 ডট ডট অপসারণ, এবং যে অসীম তালিকা 193 00:10:42,440 --> 00:10:46,960 সব স্বাভাবিক সংখ্যার ব্যাপ্ত যতটা আপনি কল্পনা করতে পারেন হিসাবে. 194 00:10:46,960 --> 00:10:49,925 >> আমি একটি পরিচয় করিয়ে দিতে চাই এখুনি ভাঁজ ধারণা. 195 00:10:49,925 --> 00:10:51,800 এবং আবার, উদ্দেশ্য এই সেমিনারে নয় এর 196 00:10:51,800 --> 00:10:55,770 মধ্যে Haskell ভাঁজ সম্পর্কে জানতে বা উচ্চতর ক্রম ফাংশন. 197 00:10:55,770 --> 00:10:59,640 কিন্তু আমি শুধু এটা প্রবর্তন করতে চান কিভাবে অদ্ভুত সঠিক ধারনা দিতে 198 00:10:59,640 --> 00:11:03,700 Haskell হয় এবং কিভাবে শক্তিশালী এটা. 199 00:11:03,700 --> 00:11:08,000 এবং বিশেষ করে, আমরা be-- চলুন আমরা আমাদের বিভিন্ন ড্রাম অংশ না হলে, 200 00:11:08,000 --> 00:11:12,790 আমরা তালিকা সাধিত হতে যাচ্ছেন সংখ্যা, একে অপরের মধ্যে তাদের ভাঁজ. 201 00:11:12,790 --> 00:11:17,290 যা করতে হবে এবং আমরা করব মানচিত্র এবং folds ব্যবহার করা. 202 00:11:17,290 --> 00:11:21,770 >> একটি সঠিক মিশুক নেই এই এক অধিকার, যা ভাঁজ 203 00:11:21,770 --> 00:11:26,990 এখানে 1 বিয়োগ পরিমাণ, 2 মাইনাস পরিমাণ, 3 বিয়োগ 0. 204 00:11:26,990 --> 00:11:29,170 আর একটি সিনট্যাক্স ভাঁজ, আপনি একটি ভাঁজ দিতে 205 00:11:29,170 --> 00:11:34,680 একটি বেস মূল্য এবং তারপর একটি operation-- এই ক্ষেত্রে, উপরন্তু বা বিয়োগ মধ্যে. 206 00:11:34,680 --> 00:11:36,280 আমি উভয় ক্ষেত্রেই দেখানো করেছি. 207 00:11:36,280 --> 00:11:41,760 এবং তারপর একটি সঁচায়ক আছে যে সম্পূর্ণ তালিকা accumulates, 208 00:11:41,760 --> 00:11:46,330 যে অপারেটর প্লাস প্রয়োগের বা বিয়োগ, এবং তারপর এটি সঁচায়ক. 209 00:11:46,330 --> 00:11:52,680 এটা বলা হয় যদি তাই এই the-- হবে ভাঁজ R প্লাস 0 সাথে, 0 দিয়ে শুরু, 210 00:11:52,680 --> 00:11:54,720 আমরা তারপর সব যোগফল যে তালিকায় নম্বর. 211 00:11:54,720 --> 00:11:57,134 এবং যে 1 থেকে 3 একটি তালিকা. 212 00:11:57,134 --> 00:12:00,050 Connor HARRIS: তাই এটি অন্য করা পথ, ভাঁজ R তিনটি যুক্তি লাগে. 213 00:12:00,050 --> 00:12:02,540 একটি ফাংশন আছে যে নিজেই দুটি আর্গুমেন্ট লাগে, 214 00:12:02,540 --> 00:12:05,400 তারপর একটি স্টার্টার মূল্য আছে, এবং মানের একটি তালিকা আছে. 215 00:12:05,400 --> 00:12:08,570 এবং আপনি কি করবেন আপনি নিতে হয় স্টার্টার মান, প্রথম মান, 216 00:12:08,570 --> 00:12:09,850 ফাংশন সেগুলি স্থাপন করা. 217 00:12:09,850 --> 00:12:11,607 আপনি, আপনি কি খুঁজে পেতে পারি যে, খাবার নেয় যে 218 00:12:11,607 --> 00:12:13,940 এর ফাংশন মধ্যে দ্বিতীয় মান, আপনি খুঁজে পেতে কি, 219 00:12:13,940 --> 00:12:16,690 ওটা দিয়ে মধ্যে যে ভোজন তৃতীয় মান ফাংশন. 220 00:12:16,690 --> 00:12:18,740 এবং তারপর আপনি নিচে যান এই পুরো তালিকা এই ভাবে, 221 00:12:18,740 --> 00:12:22,970 আপনি শেষ পর্যন্ত পেতে যাচ্ছেন যে কিছু একবচন মান 222 00:12:22,970 --> 00:12:25,720 আপনি শুরু করেছেন তা একই ধরনের সঙ্গে আউট এবং একই ধরনের 223 00:12:25,720 --> 00:12:29,147 তারপর তালিকার কিছু এবং হিসাবে যে ভাঁজ আর ফেরত ফলাফলের 224 00:12:29,147 --> 00:12:31,980 STEPHEN KREWSON: বিশেষ সুতরাং, এই উচ্চ ক্রম ফাংশন হয়, 225 00:12:31,980 --> 00:12:34,460 তারা অন্য গ্রহণ করছেন কারণ আর্গুমেন্ট হিসাবে এক ফাংশন. 226 00:12:34,460 --> 00:12:34,770 >> Connor HARRIS: হ্যা. 227 00:12:34,770 --> 00:12:37,820 আপনি অন্য কিছু ব্যবহার করে থাকেন তাহলে languages-- আমি আর জানি, [শ্রবণাতীত] 228 00:12:37,820 --> 00:12:41,510 ভাষা কমাতে বলা হয়, এই আছে. 229 00:12:41,510 --> 00:12:45,460 আপনি একই ফাংশন থাকতে পারে অন্য ভাষায়, শুধু বলা 230 00:12:45,460 --> 00:12:48,160 বিভিন্ন জিনিস. 231 00:12:48,160 --> 00:12:50,680 >> STEPHEN KREWSON: আর কি ভাঁজ আর সম্পর্কে চমৎকার 232 00:12:50,680 --> 00:12:53,880 এই ইনস্ট্যান্সের মধ্যে যে ধা আর অসীম তালিকার সঙ্গে কাজ করতে পারেন. 233 00:12:53,880 --> 00:12:59,490 এই নীচে, এই পি 5 সুতরাং নোট উৎপাদিত হয় যে 234 00:12:59,490 --> 00:13:03,120 জন্য পদক্ষেপ Sequencer মধ্যে চালু করা হয় কিছু অংশ ড্রাম, পঞ্চম অংশ ড্রাম, 235 00:13:03,120 --> 00:13:05,480 এবং হয়ত এটা একটা Conga এর ড্রাম বা কিছু. 236 00:13:05,480 --> 00:13:09,719 আর এই একটি ইচ্ছাকৃতভাবে হয় এই লেখার অসাড় ভাবে, 237 00:13:09,719 --> 00:13:11,510 কিন্তু এটা কারণ, মজা এটা অনেক প্রমান 238 00:13:11,510 --> 00:13:14,460 Haskell এবং Euterpea সম্পর্কে জিনিস. 239 00:13:14,460 --> 00:13:20,650 >> সুতরাং এই colon-- মলাশয় r হল ভাঁজ কিছু push কর্মের যে শুধু একটি অপারেটর 240 00:13:20,650 --> 00:13:25,700 একসঙ্গে একটি খালি উপর নামক একটি তালিকার উপর শুধু খালি বন্ধনী যা তালিকায়. 241 00:13:25,700 --> 00:13:28,250 আর আমি যে আহ্বান করছি এই অসীম তালিকায়. 242 00:13:28,250 --> 00:13:31,570 এটি আসলে দুটি তালিকা হয় নিচে এখানে একসাথে যুক্ত. 243 00:13:31,570 --> 00:13:37,150 তালিকায় 1 কমা 6 ডট বিন্দু 1, 6, 11, 16 হয়. 244 00:13:37,150 --> 00:13:39,750 শুধু তাই Haskell-- কয়েক অক্ষর, আপনি 245 00:13:39,750 --> 00:13:42,420 সমগ্র উৎপন্ন করতে পারে সংখ্যার ক্রম 246 00:13:42,420 --> 00:13:46,240 পাঁচ নম্বর বাদে হয় অনন্ত মধ্যে উপর stretching. 247 00:13:46,240 --> 00:13:49,860 আর আমি যে পূর্বে লিখুন এই খাটো একটু তালিকার 248 00:13:49,860 --> 00:13:54,370 3, 8, 21-- শুধু আপনাকে দেখাতে কিভাবে আপনি তালিকা কনক্যাটেনেট পারেন. 249 00:13:54,370 --> 00:13:55,790 >> এবং তারপর আমি নিজেই গুটান করেছি. 250 00:13:55,790 --> 00:14:01,510 এবং এই মাত্র এক ধরনের সমাপ্ত হচ্ছে পরিচয় অপারেশন, কিন্তু এটা অসীম. 251 00:14:01,510 --> 00:14:06,070 আর, আর তা করতে পারে ভাঁজ এটা কারণ আলসেমি উপরে হিসাবে, মূল্যায়ণ করা হয়. 252 00:14:06,070 --> 00:14:10,582 আমরা একটি 1 এবং 2 এবং 3 থেকে থাকে, আমরা যা করতে পারেন শুধু তা সমগ্র বাকি বন্ধ বন্ধনী. 253 00:14:10,582 --> 00:14:12,290 যে জন্য কাজ করবে না মাইনাস বা প্লাস, কিন্তু এটা 254 00:14:12,290 --> 00:14:17,760 এই কোলন জন্য কাজ করবে তালিকার পরিচয় অপারেশন. 255 00:14:17,760 --> 00:14:24,620 >> তাই কিভাবে আমরা কার্যত ব্যবহার করবেন না যে যদি আমরা কিছু অসীম দীর্ঘ তালিকা আছে? 256 00:14:24,620 --> 00:14:26,500 ওয়েল, Haskell উপলব্ধ ফাংশন অনেক 257 00:14:26,500 --> 00:14:29,450 এবং এই মধ্যে আরো দেখুন নিতে যেমন আপনার নিজের সময়ের মধ্যে 258 00:14:29,450 --> 00:14:32,200 যা ঠিক আছে, আমরা করছি, বলছেন এই অসীম তালিকায় উৎপাদিত 259 00:14:32,200 --> 00:14:35,950 কিন্তু আমরা শুধু কিছু নিতে যাচ্ছেন এটা নিয়ে আর এই ক্ষেত্রেই এ সংখ্যা 260 00:14:35,950 --> 00:14:38,410 আমরা পরে এই দেখতে পাবেন আমাদের ড্রাম মেশিন code-- 261 00:14:38,410 --> 00:14:43,740 জিএম গ্লোবাল কিছু ধরনের হয় ধাপের সংখ্যা জন্য পরিবর্তনশীল 262 00:14:43,740 --> 00:14:44,610 Sequencer মধ্যে. 263 00:14:44,610 --> 00:14:47,630 রোল-মধ্যে মেশিনে আমি , যে সাধারণত 16, আপনি দেখিয়েছেন 264 00:14:47,630 --> 00:14:51,475 কিন্তু আমি 32 সঙ্গে তা বাস্তবায়িত হয়নি. 265 00:14:51,475 --> 00:14:54,470 এটা কোন ব্যাপার না. 266 00:14:54,470 --> 00:15:00,230 >> Haskell বিশুদ্ধ হয়, তাই এটি শক্তিশালী হয়েছে কনর উল্লিখিত যে স্ট্যাটিক টাইপিং. 267 00:15:00,230 --> 00:15:03,220 সুতরাং ফাংশন sense-- গাণিতিক 268 00:15:03,220 --> 00:15:06,600 তারা আরো গাণিতিক আছেন তারা নিশ্চিত করছি যে 269 00:15:06,600 --> 00:15:11,530 অ্যাক্সেস বা যে কোন ধরণের পরিবর্তন না করতে বা পরিবর্তনশীল ইনপুট অথবা আউটপুট সঞ্চালন. 270 00:15:11,530 --> 00:15:14,420 আপনি যদি একটি ফাংশন আছে, তাই যদি, এটা নিয়ন্ত্রণবাদী এর. 271 00:15:14,420 --> 00:15:17,400 এটা সবসময় একই আসতে হবে প্রোগ্রাম রাজ্যের মান 272 00:15:17,400 --> 00:15:19,310 অথবা একই থাকবে. 273 00:15:19,310 --> 00:15:22,940 কীটাণুজাতীয় ব্যতিক্রম অবশ্যই আছে, এই করতে, কিন্তু যে আমাদের সামর্থ্যের চাইতে বেশী বোঝা গেছে. 274 00:15:22,940 --> 00:15:23,900 >> Connor HARRIS: হ্যা. 275 00:15:23,900 --> 00:15:26,946 এর মানে কি, যদিও, সেখানে হয় কয়েকটি গুরুত্বপূর্ণ [শ্রবণাতীত] 276 00:15:26,946 --> 00:15:27,820 এই পরিণতি. 277 00:15:27,820 --> 00:15:30,940 কেউ তার কাছে খুব সহজ হয় Haskell প্রোগ্রাম parallelize. 278 00:15:30,940 --> 00:15:32,773 আপনি যদি কারণ, , যে একটি ফাংশন বলে 279 00:15:32,773 --> 00:15:36,064 যদি একটি মিলিয়ন মূল্যবোধের উপর কাজ করার প্রয়োজন আপনি যে ফাংশন সবসময় জানি 280 00:15:36,064 --> 00:15:39,280 একই মান যদি খুঁজে দিতে আপনি একটি নির্দিষ্ট value-- এ ভোজন 281 00:15:39,280 --> 00:15:43,055 আপনাকে F, [শ্রবণাতীত] F 1 হন তাহলে 2, তারপর চ এর 3 অথবা 1 চ whatnot-- 282 00:15:43,055 --> 00:15:45,180 লেখে যাচ্ছে না একটি ফাইল বা কিছু না 283 00:15:45,180 --> 00:15:46,850 যে F2 মান পরিবর্তন করতে হবে. 284 00:15:46,850 --> 00:15:50,220 আপনি শুধুমাত্র একটি এই ফাংশন আপ বিভক্ত করতে পারেন মিলিয়ন বিভিন্ন মেশিন বা মিলিয়ন 285 00:15:50,220 --> 00:15:54,720 বিভিন্ন থ্রেড বা যাই হোক না কেন, ফিরে সব প্রতিক্রিয়া পেতে, 286 00:15:54,720 --> 00:15:56,900 সব ফিরে মান পেতে ফিরে, এবং তারপর যে এটি. 287 00:15:56,900 --> 00:15:59,780 কিছু parallelize তাই খুব সহজ. 288 00:15:59,780 --> 00:16:03,140 >> downside হয় যে ইনপুট এবং আউটপুট, বিশেষ করে 289 00:16:03,140 --> 00:16:05,720 টাইপ সিস্টেমের মধ্যে মাপসই খুব জটিল উপায়ে. 290 00:16:05,720 --> 00:16:09,010 আমরা এখন যে অধিকার ঢোকা, কিন্তু আমি না করতে কিছু সম্পদ তাকান করতে উত্সাহিত 291 00:16:09,010 --> 00:16:11,175 অনলাইন আপনি যে সম্পর্কে জানতে চান তাহলে. 292 00:16:11,175 --> 00:16:13,960 293 00:16:13,960 --> 00:16:16,550 >> STEPHEN KREWSON: তাই টাইপ classes-- এবং এই 294 00:16:16,550 --> 00:16:21,610 ধরনের was-- ক্লাস সমাধান করার জন্য উদ্ভাবিত হয়েছে 295 00:16:21,610 --> 00:16:24,160 অপারেটর ওভারলোডিং একটি সমস্যা. 296 00:16:24,160 --> 00:16:27,590 সুতরাং আমরা সমতা তৈরি করতে চেয়েছিলাম জিনিষ বিভিন্ন ধরনের মধ্যে. 297 00:16:27,590 --> 00:16:31,040 অবশ্যই, আমরা র মনে হতে পারে সাংখ্যিক ধরনের মধ্যে সমতা 298 00:16:31,040 --> 00:16:34,720 , আমার মনে হয় খুব সহজ কিন্তু কি তালিকার মধ্যে সমতা সম্পর্কে? 299 00:16:34,720 --> 00:16:37,610 সমতার সম্পর্কে কী বৃক্ষ লেগ ডাটা স্ট্রাকচার? 300 00:16:37,610 --> 00:16:43,130 আর এই সব সম্ভব Haskell টাইপ ক্লাস কারণ. 301 00:16:43,130 --> 00:16:48,000 >> তাই আপনি যদি একটি নির্দিষ্ট ডাটা type-- সংজ্ঞায়িত হলে এবং এখানে, এই বাদ্যযন্ত্র পিচ হয়. 302 00:16:48,000 --> 00:16:50,960 আমরা অবশেষে পেয়ে থাকেন কিছু কম্পিউটার সঙ্গীত. 303 00:16:50,960 --> 00:16:57,420 সুতরাং আমরা সি, সি ধারালো আছে, এবং তাই এবং তাই ঘোষণা. 304 00:16:57,420 --> 00:17:01,080 তারা একটি গুচ্ছ অন্তর্গত বিভিন্ন ধরনের ক্লাস. 305 00:17:01,080 --> 00:17:03,510 EQ-- তারা EQ টাইপ শ্রেণীর অন্তর্গত. 306 00:17:03,510 --> 00:17:06,780 যে তারা সমর্থন মানে সমতা অপারেশন. 307 00:17:06,780 --> 00:17:12,650 তাই আপনি এক কি না তা নির্ণয় করতে পারেন বাদ্যযন্ত্র প্রিমিটিভের ক্রম 308 00:17:12,650 --> 00:17:15,400 একটি ভিন্ন এক হিসাবে একই. 309 00:17:15,400 --> 00:17:17,280 >> তারা পূরণবাচক শ্রেণীর অন্তর্গত. 310 00:17:17,280 --> 00:17:19,479 যে একটি ক্রম এইসব করার আছে মানে. 311 00:17:19,479 --> 00:17:27,670 ডি সি সি ধারালো পর আসে পাশাপাশি সি পরে আসে. 312 00:17:27,670 --> 00:17:29,840 তারা শ্রেণীর অন্তর্গত তারা করতে পারেন, যার মানে প্রদর্শন 313 00:17:29,840 --> 00:17:33,000 একটি কনসোল বা টার্মিনাল প্রিন্ট করা. 314 00:17:33,000 --> 00:17:36,090 তারা অন্তর্গত ক্লাস, গণিত যা 315 00:17:36,090 --> 00:17:39,770 এর মানে হল যে, যদিও এই অক্ষর, 316 00:17:39,770 --> 00:17:45,340 তারা একটি অন্তর্নিহিত সাংখ্যিক আছে 0 থেকে শুরু উপস্থাপনা 317 00:17:45,340 --> 00:17:48,960 তবে মাধ্যমে যাওয়া বন্ধ অনেক কিছু এখানে আছে, 20 বা তাই, 318 00:17:48,960 --> 00:17:51,770 হয়তো বা 30 বা 40,. 319 00:17:51,770 --> 00:17:54,259 >> Connor HARRIS: আর যখন আমরা একটি ডাটা টাইপ আছে 320 00:17:54,259 --> 00:17:57,050 যে শব্দ দিয়ে derives-- "Deriving--" একটি নির্দিষ্ট ধরনের বর্গ, 321 00:17:57,050 --> 00:18:01,160 এটা কম্পাইলার চেষ্টা করবে মানে স্বয়ংক্রিয়ভাবে কিছু গঠন করা. 322 00:18:01,160 --> 00:18:05,120 তাই হয়ত আপনি চাইবেন ভিন্নভাবে মানের সংজ্ঞায়িত. 323 00:18:05,120 --> 00:18:09,450 আপনি ধারালো সি নির্ধারণ করতে চাইবেন উদাহরণস্বরূপ, ডি ফ্ল্যাট সমান হিসাবে. 324 00:18:09,450 --> 00:18:11,560 এই নির্মাণ সঙ্গে এখানে, আমি সি ধারালো মনে করি না 325 00:18:11,560 --> 00:18:14,940 এবং ডি ফ্ল্যাট, কারণ সমান হতে হবে কম্পাইলার স্বয়ংক্রিয়ভাবে 326 00:18:14,940 --> 00:18:19,670 ভাষার বিভিন্ন সম্ভাব্য মান বলতে প্রতি অপরের থেকে স্বতন্ত্র. 327 00:18:19,670 --> 00:18:22,930 >> সুতরাং এটি অগ্রাহ্য করা সম্ভব ডিফল্ট বাস্তবায়নের 328 00:18:22,930 --> 00:18:25,730 ক্লাস এই ধরনের. 329 00:18:25,730 --> 00:18:28,640 আবার, রেফারেন্স যদি তাকান আপনি যে সম্পর্কে জানতে চান. 330 00:18:28,640 --> 00:18:31,767 331 00:18:31,767 --> 00:18:33,600 STEPHEN KREWSON: আর এখানে, আসলে, এই হবে 332 00:18:33,600 --> 00:18:36,930 আমরা পরে কোড যখন জন্য সহায়ক হতে. 333 00:18:36,930 --> 00:18:42,150 আমরা পোতা অপারেটরদের কিছু দেখতে অনুক্রমিক সহযোগ জন্য, 334 00:18:42,150 --> 00:18:46,570 সমান্তরাল রচনা, এবং তাই ঘোষণা, এই pluses এবং সমান চিহ্ন 335 00:18:46,570 --> 00:18:48,620 কোলন দ্বারা বেষ্টিত. 336 00:18:48,620 --> 00:18:53,330 যে আমরা এই বিভিন্ন খেলতে পারেন মানে বাদ্যযন্ত্র প্রিমিটিভের অন্যান্য পর এক. 337 00:18:53,330 --> 00:18:54,590 যে অনুক্রমিক সহযোগ এর. 338 00:18:54,590 --> 00:18:57,170 >> অথবা আমরা তাদের ভূমিকা রাখতে পারে একই সময়ে সমান্তরাল. 339 00:18:57,170 --> 00:19:05,100 তাই আমি একটি বাদ্যযন্ত্র মান থাকতে পারে, এবং তারপর এই, সমান এবং কোলন 340 00:19:05,100 --> 00:19:09,669 সমান্তরাল সহযোগ অপারেটর পোতা এবং জ্যা এক ধরনের হিসাবে তাদের খেলা. 341 00:19:09,669 --> 00:19:11,460 এবং আমরা ব্যবহার করতে যাচ্ছেন এই যখন আমরা একত্রিত 342 00:19:11,460 --> 00:19:15,080 সাথে আমাদের ড্রাম অংশ আমাদের একটু Frere জ্যাক গান 343 00:19:15,080 --> 00:19:19,460 এই দুই সিকোয়েন্স খেলতে একই সময়ে বাদ্যযন্ত্র মান. 344 00:19:19,460 --> 00:19:24,520 345 00:19:24,520 --> 00:19:29,250 >> হচ্ছে ÑÑ কারি সংবাহন শেষ পরিবর্তন হয়েছিল Haskell কারি, নাম যারা 346 00:19:29,250 --> 00:19:31,850 Haskell ইমেজ নামকরণ করা হয়. 347 00:19:31,850 --> 00:19:34,330 এবং এই আমাদের একটি পারবেন আমরা যখন চমৎকার কমনীয়তা 348 00:19:34,330 --> 00:19:36,880 এই সব বিভিন্ন লেখা ফাংশন বা আমরা করছি যে ফিল্টার 349 00:19:36,880 --> 00:19:39,330 আমাদের তালিকা ওভার ম্যাপিং হতে যাচ্ছে. 350 00:19:39,330 --> 00:19:42,810 দুই একটি ফাংশন X এবং * সাথে চ আর্গুমেন্ট 351 00:19:42,810 --> 00:19:46,630 হিসাবে প্রতিনিধিত্ব করা যাবে x এর ফল Y প্রয়োগ. 352 00:19:46,630 --> 00:19:49,800 সুতরাং এটি একটি ফাংশন ফেরৎ এক যুক্তি 353 00:19:49,800 --> 00:19:51,240 এক যুক্তি আরেকটি ফাংশন. 354 00:19:51,240 --> 00:19:56,962 তাই এই আমরা একটি মানচিত্র পারেন মানে Y এর তালিকা উপর এক্স ফাংশন f. 355 00:19:56,962 --> 00:19:58,920 Connor HARRIS: করতে চান এই একটি উদাহরণ দিতে? 356 00:19:58,920 --> 00:19:59,836 STEPHEN KREWSON: হ্যা. 357 00:19:59,836 --> 00:20:05,390 আমি এখান থেকে একটি উদাহরণ আছে আমরা লিখতে হবে কিছু. 358 00:20:05,390 --> 00:20:10,500 তাই প্রতিলিপি 2 না ভাল, নিতে হবে প্রতিলিপি 359 00:20:10,500 --> 00:20:13,040 কতগুলি যা একটি মান, বার কিছু প্রতিলিপি, 360 00:20:13,040 --> 00:20:16,690 এবং তারপর এটি একটি value-- নিতে হবে সাধারণত একটি তালিকা বা কোনো কিছুতে. 361 00:20:16,690 --> 00:20:23,450 তাই এখানে, আমরা ম্যাপিং আছেন আরেকটি তালিকা ওভার 2 প্রতিলিপি. 362 00:20:23,450 --> 00:20:27,440 >> আমরা 2 প্রতিলিপি মানচিত্র তাই যদি, আমরা 2 প্রতিলিপি যদি প্রযোজ্য 363 00:20:27,440 --> 00:20:31,890 এই তালিকার প্রথম উপাদান এবং এই বাদ্যযন্ত্র phrases-- তালিকা আছে 364 00:20:31,890 --> 00:20:37,650 দুই উত্পাদন করা হবে "আপনি sleeping--" তাই তুমি কি ঘুমিয়ে পড়েছ, তুমি কি ঘুমিয়ে পড়েছ. 365 00:20:37,650 --> 00:20:40,040 তাই এখন আমরা দুটি আছে. 366 00:20:40,040 --> 00:20:42,570 কিন্তু প্রতিলিপি দুটি লাগে আর্গুমেন্ট, কিন্তু আমরা করছি কারণ 367 00:20:42,570 --> 00:20:47,100 ম্যাপিং তারপর সংবাহন এবং, আমরা প্রতিলিপি 2 উপস্থাপন করতে পারেন 368 00:20:47,100 --> 00:20:52,310 একটি ফাংশন হিসাবে ফেরত দেয়া হয়েছে জমিদারি হিসাবে এক argument-- মাত্র দুইবার প্রতিলিপি. 369 00:20:52,310 --> 00:20:57,010 এবং তারপর আমরা প্রতিটি যে আবেদন করছি শব্দসমষ্টি এই তালিকার উপাদান. 370 00:20:57,010 --> 00:21:01,900 >> আর concat একটি Haskell হয় একটি তালিকা সমরূপতার জন্য অপারেশন. 371 00:21:01,900 --> 00:21:04,400 প্রতিলিপি 2 হবে, কারণ তালিকায় একটি তালিকা উত্পাদন. 372 00:21:04,400 --> 00:21:06,660 আর এই এই অন্তর্বর্তী ফর্ম এখানে. 373 00:21:06,660 --> 00:21:10,365 আর যদি তাই হয় তাহলে আমরা concat পারেন বা দুবার যে নি: স্ব. 374 00:21:10,365 --> 00:21:12,240 Connor HARRIS: একটি সহজ সংবাহন দৃষ্টান্ত 375 00:21:12,240 --> 00:21:15,323 আপনি করার মত চাই তাহলে F মাত্র কল্পনা দুটি লাগে যে গুণ ফাংশন 376 00:21:15,323 --> 00:21:16,840 আর্গুমেন্ট এবং তাদের পণ্য ফেরৎ. 377 00:21:16,840 --> 00:21:19,320 আপনি কি চান একজন চ 4 5 আছে, তাই যদি এটা 20 এর. 378 00:21:19,320 --> 00:21:22,670 কিন্তু আপনি হিসাবে মনে করতে পারেন also-- আপনি একটি ফাংশন f 4 আছে 379 00:21:22,670 --> 00:21:25,560 একটি যুক্তি এবং আয় লাগে এই মাত্র argument-- চারবার 380 00:21:25,560 --> 00:21:27,870 আংশিক আবেদন যা মাত্র এক যুক্তি 4. 381 00:21:27,870 --> 00:21:31,182 এবং আপনি 4 চ ভোজন 5, যে আপনি 20 দিতে হবে. 382 00:21:31,182 --> 00:21:32,890 এবং যে একটি সহজ, সংবাহন উদাহরণ. 383 00:21:32,890 --> 00:21:34,473 এটি সাধারণত পাঠ্যপুস্তক বেশী এক. 384 00:21:34,473 --> 00:21:38,860 385 00:21:38,860 --> 00:21:42,110 >> STEPHEN KREWSON: ল্যামডা এক্সপ্রেশন বা বেনামী ফাংশন 386 00:21:42,110 --> 00:21:47,330 অন্য Haskell হলমার্ক. 387 00:21:47,330 --> 00:21:51,242 আমরা একটি পিটান প্রয়োজন হলে তাই সামান্য ফাংশন জীবন প্রতিলিপি, 388 00:21:51,242 --> 00:21:52,950 কিন্তু এটা না বলে স্ট্যান্ডার্ড গ্রন্থাগার, 389 00:21:52,950 --> 00:21:56,150 আমরা একটি সিনট্যাক্স ব্যবহার করতে পারেন নিম্নলিখিত বর্ণনার অনুরূপ. 390 00:21:56,150 --> 00:21:58,730 আর আমরা এই উপর মৃদুমন্দ বাতাস করব. 391 00:21:58,730 --> 00:22:02,160 আপনি অনেক দেখতে পাবেন একটি বিষয় ড্রাম মেশিন আমরা কল হয় 392 00:22:02,160 --> 00:22:05,790 কিছু বলা যা ভালো, আগে ফিল্টার, 393 00:22:05,790 --> 00:22:08,185 একটি ফাংশন একটি ম্যাপিং হয় একটি তালিকা ধরে, এটা কিন্তু স্বীকার 394 00:22:08,185 --> 00:22:10,260 একটি বুলিয়ান ফাংশন একটি ম্যাপিং. 395 00:22:10,260 --> 00:22:13,390 >> তাই আমরা এখানে একটি উদাহরণ আছে একটি একটি বেনামে 396 00:22:13,390 --> 00:22:19,150 সংজ্ঞায়িত বুলিয়ান ফাংশন যে মাত্র কয়েক মান লাগে. 397 00:22:19,150 --> 00:22:22,990 এই কঠোরভাবে বলতে নয় একটি বেনামী ফাংশন. 398 00:22:22,990 --> 00:22:25,850 কিন্তু এটি দিয়ে সংজ্ঞায়িত এর সংক্ষিপ্ততা জন্য যে সিনট্যাক্স, 399 00:22:25,850 --> 00:22:28,007 এবং এই মাত্র এক্স মডিউল লাগে n-- 400 00:22:28,007 --> 00:22:28,840 Connor HARRIS: হ্যা. 401 00:22:28,840 --> 00:22:31,330 তাই চ একটি ফাংশন দুটি আর্গুমেন্ট এন ও পি 402 00:22:31,330 --> 00:22:35,440 যে নিজেই যে একটি ফাংশন আয় এক যুক্তি একটি ফাংশন, যথা এক্স. 403 00:22:35,440 --> 00:22:38,815 404 00:22:38,815 --> 00:22:40,690 STEPHEN KREWSON: আমি প্রথমোক্ত পোতা অপারেটরদের. 405 00:22:40,690 --> 00:22:42,642 পোতা অপারেটর কি হয়? 406 00:22:42,642 --> 00:22:45,710 ওয়েল, পোতা অপারেটর আমরা অপারেশন প্রতিনিধিত্ব স্বাভাবিক ভাবে, 407 00:22:45,710 --> 00:22:49,910 mathematics-- 2 প্লাস এ, বলতে পরিবর্তে অপারেটর 2 প্লাস 408 00:22:49,910 --> 00:22:51,202 এবং তারপর দুটি আর্গুমেন্ট 2 এবং 2. 409 00:22:51,202 --> 00:22:53,701 Connor HARRIS: এটা বলা হচ্ছে যা, পোলিশ স্বরলিপি বিপরীত 410 00:22:53,701 --> 00:22:55,330 একটি শব্দ আমি তোমাদের কাছে এর কোন জানেন সন্দেহ. 411 00:22:55,330 --> 00:22:56,288 >> STEPHEN KREWSON: রাইট. 412 00:22:56,288 --> 00:22:58,290 Polish বা উপসর্গ স্বরলিপি বিপরীত. 413 00:22:58,290 --> 00:23:01,412 কিন্তু Haskell করার সিদ্ধান্ত নিয়েছে পোতা অপারেটর ব্যবহার. 414 00:23:01,412 --> 00:23:03,120 সুতরাং এর মধ্যে কিছু আছে কাস্টম ওগুলো যে 415 00:23:03,120 --> 00:23:07,770 জন্য নির্ধারিত হয় মধ্যে Haskell Euterpea DSCL. 416 00:23:07,770 --> 00:23:10,730 সুতরাং এই অনুক্রমিক রচনা ছিল. 417 00:23:10,730 --> 00:23:16,340 এই সমান্তরাল রচনা ছিল, এবং এই সমান্তরাল সহযোগ ছিন্ন হয়. 418 00:23:16,340 --> 00:23:18,710 আর আমরা যে হবে আমাদের ড্রাম মেশিনের সাথে, 419 00:23:18,710 --> 00:23:22,640 আমরা গত ব্যবহার করব, কারণ সেখানে যে সামান্য Tuple অপারেটর 420 00:23:22,640 --> 00:23:26,330 বরাবর ড্রাম মেশিন খেলতে আমাদের Frere জ্যাক গানের সঙ্গে. 421 00:23:26,330 --> 00:23:28,650 আর আমাদের ড্রাম মেশিন অসীম হতে যাচ্ছে. 422 00:23:28,650 --> 00:23:30,920 এটা শুধু চিরকালের নাটকগুলি. 423 00:23:30,920 --> 00:23:32,692 কিন্তু Frere জ্যাক গান নয়. 424 00:23:32,692 --> 00:23:33,510 এটা যে দিন বাকি নেই. 425 00:23:33,510 --> 00:23:36,610 এটা মাত্র কয়েক বার এর. 426 00:23:36,610 --> 00:23:43,030 সুতরাং আমরা হিসাবে ড্রাম মেশিন বন্ধ করতে হবে খাটো বাদ্যযন্ত্র মান আসে তাড়াতাড়ি 427 00:23:43,030 --> 00:23:43,700 শেষ. 428 00:23:43,700 --> 00:23:46,980 আর যে infixed অপারেটর যে সঙ্গে সুপার সহায়ক. 429 00:23:46,980 --> 00:23:50,090 >> ভালো এবং পোতা স্বরলিপি এই ধরনের সুন্দর হয় 430 00:23:50,090 --> 00:23:57,095 বলে, কারণ আপনি একটি ফাংশন মত আছে উক্তি, যা পূর্ণসংখ্যা বিভাগের দেয় 431 00:23:57,095 --> 00:24:01,010 কিছু দ্বারা এক্স else-- দুঃখিত, যে A এবং B হবে. 432 00:24:01,010 --> 00:24:04,740 আপনি যদি বি এর একটি উক্তি হিসেবে এটা লিখতে পারে. 433 00:24:04,740 --> 00:24:09,670 আপনি put-- উপাদান যদি তাই এই আরেকটি উদাহরণ. 434 00:24:09,670 --> 00:24:14,730 কিছু তালিকার X উপাদান, যদি আপনি করা এটা ব্যাকটিক মধ্যে, আপনি এটি ব্যবহার করতে পারেন. 435 00:24:14,730 --> 00:24:20,400 এটি একটি প্রতীক না যদিও প্লাস বা মাইনাস বা বার মত, 436 00:24:20,400 --> 00:24:24,630 আপনি একটি নাম লিখুন ব্যাকটিক যে ভালো ফাংশন 437 00:24:24,630 --> 00:24:27,045 যা চমত্কার পোতা অপারেটর, হিসাবে. 438 00:24:27,045 --> 00:24:29,670 Connor HARRIS: আবার, এই হল সব ঠিক অন্বিত চিনি, সত্যিই. 439 00:24:29,670 --> 00:24:32,310 এটি একটি ভাষা কোর প্রভাবিত করে না. 440 00:24:32,310 --> 00:24:37,440 >> STEPHEN KREWSON: সুতরাং আমরা এখানে দেখতে আমাদের Frere জ্যাক গানের শেষ শব্দগুচ্ছ, 441 00:24:37,440 --> 00:24:45,740 আমি সামান্য কিছু chords, অভিনয় বা সমান্তরাল রচনা ব্যবহার তৃতীয়াংশ 442 00:24:45,740 --> 00:24:46,240 অপারেটর. 443 00:24:46,240 --> 00:24:50,680 444 00:24:50,680 --> 00:24:54,950 এই কিছু বলছে অন্য উপায় আমরা শুধু বলছে করছি কি. 445 00:24:54,950 --> 00:24:59,986 তাই আপনি যদি ফাংশন ম্যাপ করতে পারেন তালিকা ধরে এক যুক্তির. 446 00:24:59,986 --> 00:25:02,860 Connor HARRIS: আবার, রেফারেন্স Haskell-- পরিচায়ক পাঠ্যবই জন্য 447 00:25:02,860 --> 00:25:04,680 এটা এই সব হবে. 448 00:25:04,680 --> 00:25:07,790 >> STEPHEN KREWSON: তাই এখানে একটি সুন্দর পদক্ষেপ Sequencer মূল লাইন 449 00:25:07,790 --> 00:25:12,820 আমরা ব্যবহার কটাক্ষপাত করব একটি তালিকা ধী. 450 00:25:12,820 --> 00:25:17,810 আর আমরা এখানে যে উপাদান দেখতে ফিরে কোট স্থায়ী অপারেটর. 451 00:25:17,810 --> 00:25:23,030 X তালিকা একটি উপাদান হল যদি তাই X এর, তারপর আমরা Perc ফাংশন আপ ডাকবো. 452 00:25:23,030 --> 00:25:25,100 সুতরাং Perc মাত্র সঙ্ঘর্ষ ফাংশন. 453 00:25:25,100 --> 00:25:30,200 এটা যে কিছু মান P লাগে সব বদ্ধ সেটে অংশ 454 00:25:30,200 --> 00:25:35,310 বিভিন্ন সঙ্ঘর্ষ শব্দসমূহ আমরা আগের স্লাইড দেখেছি যে, 455 00:25:35,310 --> 00:25:38,840 এবং তারপর এটা যে দেয় একটি সিকি নোট সময়কাল. 456 00:25:38,840 --> 00:25:43,190 অন্য এটি একটি QNR দেয়, এবং QNR মাত্র এক চতুর্থাংশ নোট বাকি হয়. 457 00:25:43,190 --> 00:25:44,970 >> তাই এই চমৎকার কিছু আপ নির্মাণ করা হয়. 458 00:25:44,970 --> 00:25:52,110 আমরা উপাদানের একটি তালিকা আছে, এবং এক থেকে কিছু তালিকা ধরে আমরা করব লুপ 459 00:25:52,110 --> 00:25:54,540 আমাদের পদক্ষেপ Sequencer এর সর্বোচ্চ মান. 460 00:25:54,540 --> 00:25:58,290 আর আমরা একটি নির্দিষ্ট আমি এ যখন সর্বোচ্চ মান এক যে তালিকা, 461 00:25:58,290 --> 00:26:02,970 যে আমি এই একটি সদস্য হলে এই ফাংশন মধ্যে তৈরি সেট, 462 00:26:02,970 --> 00:26:06,040 ভাল, তারপর আমরা এটা চালু একটি সঙ্ঘর্ষ নোট মধ্যে. 463 00:26:06,040 --> 00:26:10,960 অন্যথা, আমরা শুধু বিশ্রাম, খেলতে যা হয় আমরা শুধু চুপ করে থাকবেন, বলতে. 464 00:26:10,960 --> 00:26:16,050 আর আমরা এখানে দেখতে যে পারেন এই তালিকায় ধী সিনট্যাক্স, 465 00:26:16,050 --> 00:26:20,030 X এই দ্বারা পূর্ণ করা হয় তালিকায় এক নির্মাণ 466 00:26:20,030 --> 00:26:22,462 Sequencer এর গ্লোবাল মাপ. 467 00:26:22,462 --> 00:26:23,295 Connor HARRIS: হ্যা. 468 00:26:23,295 --> 00:26:26,340 মৌলিক সিনট্যাক্স তালিকায় comprehensions হয় 469 00:26:26,340 --> 00:26:30,810 জড়িত বন্ধনী, মূল্য কিছু ভেরিয়েবল, বার, 470 00:26:30,810 --> 00:26:34,260 ভেরিয়েবল সম্ভাব্য মান নিজেদের, বন্ধনী বন্ধ. 471 00:26:34,260 --> 00:26:38,545 এবং আপনি সেট নির্মাতা স্বরলিপি কাজ করেছি কিনা গণিত ক্লাসের কোন ধরণের মধ্যে, 472 00:26:38,545 --> 00:26:45,999 আপনি যেমন 2n সেট করে রাখতে পারে যে এন বা হয় এন, z হল. 473 00:26:45,999 --> 00:26:48,290 এই স্বরলিপি জিনিস একই ইঙ্গিতপূর্ণ হতে বোঝানো হয় 474 00:26:48,290 --> 00:26:49,630 যে গাণিতিক স্বরলিপি. 475 00:26:49,630 --> 00:26:51,880 STEPHEN KREWSON: আর আপনি যা করতে পারেন একাধিক predicates আবেদন 476 00:26:51,880 --> 00:26:56,250 একটি তালিকা এবং একাধিক ফিল্টার বেশ চমৎকার, যা ধী,. 477 00:26:56,250 --> 00:27:01,800 বীজগাণিতিক types-- আমরা এখানে দীর্ঘ গড়িমসি করা হবে না. 478 00:27:01,800 --> 00:27:04,840 একটি ভাল ধারণা নেই Haskell বা ভাল, সুস্পষ্ট ধারণা 479 00:27:04,840 --> 00:27:10,720 নিতে কিভাবে, বলুন, একটি ডিফল্ট একটি ফাংশন বা কিছু প্যারামিটার. 480 00:27:10,720 --> 00:27:13,370 পাইথন, এই বেশ সহজ. 481 00:27:13,370 --> 00:27:18,460 উপর সমান দিয়ে আপনি শুধু বলতে পারেন ফাংশন ঘোষণা, 482 00:27:18,460 --> 00:27:21,420 একটি ডিফল্ট মান যদি কেউ সরবরাহ করা হয়. 483 00:27:21,420 --> 00:27:27,010 >> মধ্যে Haskell, আপনি হয়তো পারা হয়তো টাইপ হয়তো ব্যবহার, 484 00:27:27,010 --> 00:27:32,190 যা হয় কিছুই লাগে অথবা টাইপ একটি মূল্য মাত্র. 485 00:27:32,190 --> 00:27:38,630 সুতরাং আমরা ড্রাম মেশিনের মধ্যে এই কাজে লাগান আমাদের ঐচ্ছিক ভলিউম দিতে মঞ্জুরি 486 00:27:38,630 --> 00:27:40,730 ড্রাম অংশ প্রতিটি প্যারামিটার. 487 00:27:40,730 --> 00:27:46,160 488 00:27:46,160 --> 00:27:54,680 যে আমাদের EQ থাকার একটি উপায় দেয় সুতরাং বা একটি নির্দিষ্ট চ্যানেলে একটি ভলিউম. 489 00:27:54,680 --> 00:27:56,440 >> Connor HARRIS: ইন অন্যান্য Haskell উদাহরণ, 490 00:27:56,440 --> 00:28:00,450 আপনি হয়তো জন্য ব্যবহৃত দেখতে হতে পারে ব্যর্থ হতে পারে ফাংশন. 491 00:28:00,450 --> 00:28:03,470 এটি একটি সাধারণ এক. 492 00:28:03,470 --> 00:28:07,010 >> STEPHEN KREWSON: আর আপনাকে সরবরাহ করতে পারেন ডিফল্টভাবে ত্রুটি বার্তা কিছু সাজানোর. 493 00:28:07,010 --> 00:28:11,020 এবং যে যখন বিশেষ সুবিধাজনক আপনি মধ্যে Haskell আমি / হে করছেন. 494 00:28:11,020 --> 00:28:12,044 ঠাট যে হতে পারে. 495 00:28:12,044 --> 00:28:13,960 Connor HARRIS: অথবা একটি জন্য অনুরূপ উদাহরণ, মনে 496 00:28:13,960 --> 00:28:17,460 বিভাগ জড়িত একটি ফাংশন 0 হতে পারে যে একটি পরামিতির. 497 00:28:17,460 --> 00:28:20,020 আর যে কাজ করতে পারে হয়তো যাই হোক না কেন আসতে. 498 00:28:20,020 --> 00:28:22,802 0 দ্বারা কোন বিভাগ নেই, তাই যদি, এটা শুধু যাই হোক না কেন আসতে হবে. 499 00:28:22,802 --> 00:28:25,010 সম্পতি দ্বারা যদি নেই 0, এটা কিছুই আসতে হবে 500 00:28:25,010 --> 00:28:26,910 ত্রুটি সংকেত একটি উপায় হিসেবে. 501 00:28:26,910 --> 00:28:30,330 এক ফলত কারণ Haskell এর খুব কঠোর টাইপিং 502 00:28:30,330 --> 00:28:34,100 কোন real-- আছে যে ব্যতিক্রম, মূলত, জবুথবু 503 00:28:34,100 --> 00:28:36,160 ত্রুটি পরিচালনার বিশ্রী. 504 00:28:36,160 --> 00:28:39,440 আর এই খুব এক এরকম সাধারণ ভাবে. 505 00:28:39,440 --> 00:28:42,990 >> STEPHEN KREWSON: তাই এখন আমরা পেতে অন্য মন-নমন জিনিস 506 00:28:42,990 --> 00:28:49,160 Haskell, সম্পর্কে যা প্যাটার্ন মেলা ও ফাংশন সংজ্ঞা. 507 00:28:49,160 --> 00:28:53,390 আমি গত স্লাইড আপনাকে দেখিয়েছি ধাপে ক্রম ঘোষণা 508 00:28:53,390 --> 00:28:58,170 একটি হতে পারে মান নিয়ে যা ফাংশন, তারপর কোন int, তারপর আপনি ints একটি তালিকা, 509 00:28:58,170 --> 00:29:03,850 তারপর একটা ক্রম ফেরৎ সঙ্গীত মান আছে সটীক 510 00:29:03,850 --> 00:29:05,375 পিচ এবং ভলিউম উভয় সঙ্গে. 511 00:29:05,375 --> 00:29:08,030 512 00:29:08,030 --> 00:29:11,820 >> সুতরাং তিনটি আর্গুমেন্ট হতে পারে নিম্নলিখিত ভাবে মিলেছে প্যাটার্ন. 513 00:29:11,820 --> 00:29:16,660 আর আমরা সবসময়ই নিশ্চিত হতে চান প্রথম একটি বেস কেস বা প্রস্থানের ক্ষেত্রে না. 514 00:29:16,660 --> 00:29:19,690 আর এই আন্ডার শুধু ব্যাখ্যা করা যেতে পারে 515 00:29:19,690 --> 00:29:22,340 সেখানে যে কোনো মান মানে. 516 00:29:22,340 --> 00:29:26,580 আমরা ক্রম পদক্ষেপ একটি কল পেতে হলে তাই কিছু মান, কিছু অন্যান্য মান, 517 00:29:26,580 --> 00:29:32,210 এবং তারপর ফাঁকা তালিকা, আমরা কি চাই ফিরে যাও শুধু নীরবতা, বিশ্রাম 0 হয়. 518 00:29:32,210 --> 00:29:35,110 >> এবং পরিবর্তে যে এর একটি ফাঁকা তালিকা বা 0 হচ্ছে, 519 00:29:35,110 --> 00:29:38,150 আমরা করছি, কারণ এটা একটা বাকি 0 এর সঙ্গীত ধরনের সঙ্গে আচরণ, 520 00:29:38,150 --> 00:29:43,230 এবং সঙ্গীতের ফাঁকা তালিকা টাইপ ঠিক কোন সময়কাল একটি বিশ্রাম হয়. 521 00:29:43,230 --> 00:29:45,680 এটা কোন সঙ্গীত এর. 522 00:29:45,680 --> 00:29:51,460 আমরা একটি পদক্ষেপ পেতে এবং তারপর যদি আমরা দেখতে ভলিউম যুক্তি জন্য একটি ভী সঙ্গে ক্রম, 523 00:29:51,460 --> 00:29:57,290 তাক্বওয়া উপকরণের P যুক্তি, এবং তারপর এক্স এর একটি তালিকা. 524 00:29:57,290 --> 00:29:58,360 >> তারপর আমরা কিছু উপাদান কাজ. 525 00:29:58,360 --> 00:30:01,290 বিশেষ করে, আমরা আবেদন এই তালিকায় ধী, 526 00:30:01,290 --> 00:30:05,700 এবং আমরা কিছু সঞ্চালন হয়তো মান অপারেশন 527 00:30:05,700 --> 00:30:10,050 যাতে একটি সাংখ্যিক মান মধ্যে এটি চালু করতে এটা তারপর গণিত এবং ব্যবহার করা যেতে পারে 528 00:30:10,050 --> 00:30:12,300 উপকরণ নির্বাচন. 529 00:30:12,300 --> 00:30:16,730 আবার, এই একটু বিট ইচ্ছাকৃতভাবে inconcise 530 00:30:16,730 --> 00:30:20,580 শুধু সব অদ্ভুত জিনিষ দেখাতে আপনি যত মধ্যে Haskell করতে পারেন 531 00:30:20,580 --> 00:30:23,170 আপনার নিজের সময় এটা কটাক্ষপাত. 532 00:30:23,170 --> 00:30:23,802 >> ঠিক আছে. 533 00:30:23,802 --> 00:30:26,010 সুতরাং পরিশেষে আমরা পেয়ে থাকেন আমরা কি খুঁজে সেট কি, 534 00:30:26,010 --> 00:30:28,820 যা কিছু কম্পিউটার গান করতে হয়. 535 00:30:28,820 --> 00:30:32,250 তাই আমরা চেষ্টা করতে যাচ্ছেন Frere জ্যাক গান করতে. 536 00:30:32,250 --> 00:30:35,220 সুতরাং কিভাবে অনেক আছে Frere জ্যাক মধ্যে বাক্যাংশ? 537 00:30:35,220 --> 00:30:38,790 538 00:30:38,790 --> 00:30:39,680 চার. 539 00:30:39,680 --> 00:30:40,460 গ্রেট. 540 00:30:40,460 --> 00:30:42,490 আর কি সুন্দর যে হয় তারা সব পুনরাবৃত্তি করছি 541 00:30:42,490 --> 00:30:46,990 দুটি যা বার একই পরিমাণ. 542 00:30:46,990 --> 00:30:50,730 >> তাই আমরা চার বাক্যাংশ অনূদিত প্রতিটি দুই বার পুনরাবৃত্তি. 543 00:30:50,730 --> 00:30:53,590 এবং বিশেষ করে, তারা একটি বৃত্তাকার মধ্যে আছেন. 544 00:30:53,590 --> 00:30:55,340 আর, অনেক আছে নানাভাবে বাস্তবায়ন 545 00:30:55,340 --> 00:30:57,520 কি মজা হতে পারে যে একটি বৃত্তাকার. 546 00:30:57,520 --> 00:31:00,260 আমি একটি মধ্যে তা সম্পন্ন করেছি সুন্দর এখানে সহজ উপায়, 547 00:31:00,260 --> 00:31:05,760 যা শুধু লাইন construct-- করতে হয় ফাংশন সঙ্গীত মানসহ একটি তালিকা প্রদর্শন করা হয় 548 00:31:05,760 --> 00:31:10,390 এবং অনুক্রমিক সহযোগ মধ্যে এটি সক্রিয় যে অনুক্রমিক সহযোগ প্রয়োগ করে 549 00:31:10,390 --> 00:31:13,000 অপারেটর. 550 00:31:13,000 --> 00:31:19,540 >> এবং তারপর আমি বিভিন্ন অংশে বিলম্ব উপার্জন করে তাদের বিশ্রাম দিয়ে শুরু. 551 00:31:19,540 --> 00:31:22,770 তাই আমি দুই ব্যবস্থা বিশ্রাম দিয়ে শুরু, এবং তারপর চার ব্যবস্থা একটি বাকি, 552 00:31:22,770 --> 00:31:26,160 এবং ছয় তারপর বিশ্রাম ব্যবস্থা, এবং তারপর বৃত্তাকার 553 00:31:26,160 --> 00:31:32,290 আমরা সব এই গান জানি, কাজ করে. 554 00:31:32,290 --> 00:31:37,180 আমরা দেখতে দুই টীকা বা গান মূল্যবোধের পরিবর্তন 555 00:31:37,180 --> 00:31:43,150 যে এই অনুক্রমিক মধ্যে অন্তর্ভুক্ত করা হয় সঙ্গীত উপাদানের ব্যবস্থা. 556 00:31:43,150 --> 00:31:44,810 আমরা একটি অ্যাড ভলিউম আছে. 557 00:31:44,810 --> 00:31:48,960 এই টীকা একটি ফাংশন একটি নির্দিষ্ট ভলিউম সঙ্গে গান. 558 00:31:48,960 --> 00:31:51,320 এই একটি ভাল উদাহরণ একটি MIDI সংকেত চলমান 559 00:31:51,320 --> 00:31:57,510 0 থেকে 127, সাত বিট বহন করা যাবে যে তথ্য. 560 00:31:57,510 --> 00:32:00,650 >> আর then-- আমরা খুব এটা দেখেছি সংক্ষেপে, কিন্তু সাধারণ MIDI 561 00:32:00,650 --> 00:32:02,310 সব বিভিন্ন যন্ত্র তালিকায়. 562 00:32:02,310 --> 00:32:04,450 তাঁদের মধ্যে একজন পুরো অনেক আছে না. 563 00:32:04,450 --> 00:32:11,230 আপনি একটি ডিজিটাল অডিও ওয়ার্কস্টেশন ব্যবহার করা হলে, Ableton লাইভ বা প্রো সরঞ্জাম মত, 564 00:32:11,230 --> 00:32:17,560 একটি অবিশ্বাস্যভাবে ব্যাপকতর পরিসীমা নেই synthesizers এবং VST যন্ত্র. 565 00:32:17,560 --> 00:32:21,510 কিন্তু এখন MIDI স্ট্যান্ডার্ড শুধুমাত্র কয়েক, বা কয়েক ডজন আছে. 566 00:32:21,510 --> 00:32:22,799 আর তাদের মধ্যে কেউ কেউ মজার হয়. 567 00:32:22,799 --> 00:32:25,840 আমরা অভিনয় যদি আমি এটা মজা হবে উপকরণ MIDI উপকরণ 568 00:32:25,840 --> 00:32:30,550 হেলিকপ্টার, এবং তারপর বৃত্তাকার মাধ্যমে পরবর্তী পথ, 569 00:32:30,550 --> 00:32:37,980 আমরা এবং তারপর, একটি প্যাড synth করেনি এই মামুলি নেতৃত্ব বর্গক্ষেত্র তরঙ্গ synth, 570 00:32:37,980 --> 00:32:44,240 এবং তারপর ধীরে ধীরে ক্ষরণ ভয়েস যা একটি আমার খারাপ এখন MIDI অল্প অস্ফুট 571 00:32:44,240 --> 00:32:46,410 synthesizer, কিন্তু তারা ঠিক. 572 00:32:46,410 --> 00:32:50,030 >> এবং তারপর আমরা এই দিন দেখতে এবং Haskell থেকে সিনট্যাক্স, 573 00:32:50,030 --> 00:32:54,030 এবং তারপর আমরা বাজানো করছি একসাথে সব যন্ত্রাংশ 574 00:32:54,030 --> 00:32:56,265 সমান্তরাল সহযোগ অপারেটর সঙ্গে. 575 00:32:56,265 --> 00:33:00,260 576 00:33:00,260 --> 00:33:02,296 এবং আমরা সম্ভবত এই কিছু দেখাতে পারে. 577 00:33:02,296 --> 00:33:07,674 578 00:33:07,674 --> 00:33:08,340 এখানে কোড. 579 00:33:08,340 --> 00:33:14,960 আর আপনি সি দেখতে পারেন, একটি হতে চাই গলা সাফ এবং সেটিং এর অনেক 580 00:33:14,960 --> 00:33:19,760 আপনি আগে টেবিল কোড ভালো গান করতে পারে. 581 00:33:19,760 --> 00:33:22,080 অথবা অন্য কোন প্রোগ্রামিং ভাষা, আপনি সম্ভবত কোনো হক 582 00:33:22,080 --> 00:33:27,210 কিছু সাজানোর সঙ্গে যোগাযোগ করার জন্য আছে লাইব্রেরী বা এপিআই এবং সবকিছু সেট আপ, 583 00:33:27,210 --> 00:33:28,725 এবং তারপর পরিষ্কার করতে চাই. 584 00:33:28,725 --> 00:33:33,810 কিন্তু এখানে Haskell হয়, আমি একবার মনে আপনি অবিশ্বাস্যভাবে, তা পেতে আসে 585 00:33:33,810 --> 00:33:35,770 পাঠযোগ্য এবং খুব ভাবপূর্ণ. 586 00:33:35,770 --> 00:33:38,930 587 00:33:38,930 --> 00:33:43,240 তাই বাস্তবায়নের নেই Frere জ্যাক এর. 588 00:33:43,240 --> 00:33:43,740 ঠিক আছে. 589 00:33:43,740 --> 00:33:47,557 এখন আমরা সঙ্ঘর্ষ যোগ করতে চান, এবং এই একটি সামান্য বিট Messier হয়. 590 00:33:47,557 --> 00:33:49,015 সুতরাং আসুন স্লাইড কটাক্ষপাত করা যাক. 591 00:33:49,015 --> 00:33:56,880 592 00:33:56,880 --> 00:34:00,540 সুতরাং বড় ধারণা করা হয় তালিকা বা অংশের একটি গুচ্ছ. 593 00:34:00,540 --> 00:34:04,140 ঐ রোল মধ্যে মেশিনে, সেখানে আটটা সম্পর্কে সাধারণত ছিল 594 00:34:04,140 --> 00:34:08,670 10 তাল বা আঘাত অংশে. 595 00:34:08,670 --> 00:34:10,159 এবং তারপর কৌশল একটি গুচ্ছ ব্যবহার. 596 00:34:10,159 --> 00:34:14,889 আর আমরা these-- ব্যবহার সম্পর্কে বিস্তারিত আলোচনা করেছি ভাঁজ, ফিল্টার, ল্যামডা ফাংশন, 597 00:34:14,889 --> 00:34:19,429 মান উৎপন্ন তালিকা ওভার ম্যাপ কিছু সীমার মধ্যে 1 R করতে, R, 16 হয় 598 00:34:19,429 --> 00:34:20,699 বা Sequencer মধ্যে 32 ধাপ. 599 00:34:20,699 --> 00:34:23,810 600 00:34:23,810 --> 00:34:29,920 >> এবং যে তালিকায় একটি মান আছে তারপর যদি আমরা Sequencer মাধ্যমে চালাচ্ছেন হিসাবে, 601 00:34:29,920 --> 00:34:34,190 উপর এটি মাধ্যমে চলমান এবং ওভার, এটা মনে রাখবেন যে সক্রিয়, 602 00:34:34,190 --> 00:34:36,060 এবং যে নমুনা আলোড়ন পায়. 603 00:34:36,060 --> 00:34:42,810 604 00:34:42,810 --> 00:34:47,110 এখানে সব বিভিন্ন অদ্ভুত উপায় আছে আমি নোট উৎপন্ন নিয়ে এসেছেন. 605 00:34:47,110 --> 00:34:48,940 আপনার নিজস্ব আধা সমষ্টি এটি ব্যবহার করে দেখুন. 606 00:34:48,940 --> 00:34:50,360 এটা শীতল ধ্বনি করব. 607 00:34:50,360 --> 00:34:53,066 608 00:34:53,066 --> 00:34:54,690 সময় আমরা এই দিয়ে যাবেন, ব্যক্তিবিশেষ. 609 00:34:54,690 --> 00:34:59,200 কিন্তু এই মুহূর্তে জন্য, আমি অনুমান আমরা কি আমরা তা ডেমো উচিত. 610 00:34:59,200 --> 00:35:01,380 এর এই ঠিক যায় আশা করি. 611 00:35:01,380 --> 00:35:02,670 >> সুতরাং এই GHCI হয়. 612 00:35:02,670 --> 00:35:06,580 613 00:35:06,580 --> 00:35:09,121 আর আমরা একটি ফাইল লোড করব আমি বলা song.lhs আছে, 614 00:35:09,121 --> 00:35:10,620 যা আমি শুধু আপনাকে দেখিয়েছি ফাইল. 615 00:35:10,620 --> 00:35:11,470 ঠিক আছে অসাধারণ. 616 00:35:11,470 --> 00:35:15,010 কনর তার আগে বলেন, এটা কম্পাইল, এটা চেক টাইপ, 617 00:35:15,010 --> 00:35:18,380 তাই আমি অনেক সহজ শ্বাস প্রশ্বাস নিতে পারেন. 618 00:35:18,380 --> 00:35:20,010 এটা আমার প্রথম তিরস্কার করা যাচ্ছে না. 619 00:35:20,010 --> 00:35:22,720 >> আমি আপনাকে কিছু দরকারী দেখাতে চান নি. 620 00:35:22,720 --> 00:35:25,900 আপনি যে একটি দেখতে পারেন লোড মডিউল 50 বলা. 621 00:35:25,900 --> 00:35:28,240 আপনি যে মডিউল ব্রাউজ করতে পারেন. 622 00:35:28,240 --> 00:35:32,092 আর এই এত সুন্দর অনুরুপ সম্পর্কে হয়তো তা 623 00:35:32,092 --> 00:35:34,550 Haskell নয় এ আপনি কি করছেন সফটওয়্যার উন্নয়ন বলা, 624 00:35:34,550 --> 00:35:36,980 কিন্তু আপনি অনেক কাজ করতে পারেন আপনার নিজস্ব মজার জিনিস. 625 00:35:36,980 --> 00:35:42,410 ও কর্মপ্রবাহ হিসাবে সত্যিই চমৎকার অন্য ভাষায় অনেক তুলনায়, 626 00:35:42,410 --> 00:35:45,872 আপনি সত্যিই একটি দেখতে পারেন কারণ কি ঘটছে পাঠযোগ্য পথ. 627 00:35:45,872 --> 00:35:47,830 তাই আমরা যদি আমরা আছে দেখতে সমস্ত এইসব বাক্যাংশ, যা 628 00:35:47,830 --> 00:35:53,760 গান পিচ তালিকা আছে, এবং তারপর আমরা বৃহত্তর কিছু এই বিল্ড আপ, 629 00:35:53,760 --> 00:35:55,220 যা একটি গান গান. 630 00:35:55,220 --> 00:35:58,450 এটি একটি বাদ্যযন্ত্র ইউনিট. 631 00:35:58,450 --> 00:36:05,545 এবং তারপর আমরা এই সব ভূমিকা রাখতে পারে একটি ফাংশন বলা খেলার সঙ্গীত সঙ্গে. 632 00:36:05,545 --> 00:36:09,040 এখানে তার নিচে দেখতে পারেন. 633 00:36:09,040 --> 00:36:11,310 যা শুধু খেলতে হয়. 634 00:36:11,310 --> 00:36:15,040 >> আমি সম্পর্কে কথা বলতে না কথাই উচিত সর্বত্র যে এই ডলার চিহ্ন. 635 00:36:15,040 --> 00:36:17,980 ডলার চিহ্ন অন্য পোতা অপারেটর. 636 00:36:17,980 --> 00:36:22,500 কিন্তু এটা সর্বনিম্ন প্রাধান্য আছে যা কার্যকরভাবে যে কোন অপারেটর, এর 637 00:36:22,500 --> 00:36:24,960 উপর যে সবকিছু মানে ডলার চিহ্ন বাম 638 00:36:24,960 --> 00:36:28,460 এবং ডলার চিহ্ন ডান, কোরআনের পূর্বে আমি মূল্যায়ন করতে যাচ্ছেন. 639 00:36:28,460 --> 00:36:31,430 তাই এটি অন্য মত সাজানোর প্রথম বন্ধনী যোগ প্রণালী. 640 00:36:31,430 --> 00:36:33,980 641 00:36:33,980 --> 00:36:36,220 >> Connor HARRIS: এটা মূলত ফাংশন রচনা. 642 00:36:36,220 --> 00:36:40,026 আর আপনার যদি থাকতে না নিশ্চিত করে আপনি ফাংশন পাশ বা পোতা হয় আছে 643 00:36:40,026 --> 00:36:42,900 উভয় পাশ দিয়ে অপারেটরদের, তারা না করবে না এটা জুড়ে এবং আপনাকে দিতে 644 00:36:42,900 --> 00:36:46,030 অপ্রত্যাশিত ফলাফল. 645 00:36:46,030 --> 00:36:49,790 >> STEPHEN KREWSON: সুতরাং আমরা can-- যে ব্যবহার, আমরা কল করতে পারেন. 646 00:36:49,790 --> 00:36:51,415 প্রথমত, আমরা ড্রামস ছাড়া বাজাতে পারবেন. 647 00:36:51,415 --> 00:37:00,330 648 00:37:00,330 --> 00:37:03,170 যে, হেলিকপ্টার এখন MIDI হেলিকপ্টার. 649 00:37:03,170 --> 00:37:05,495 >> [সঙ্গীত বাজাচ্ছি] 650 00:37:05,495 --> 00:37:08,525 651 00:37:08,525 --> 00:37:09,525 বর্গাকার হাওয়া বইছে. 652 00:37:09,525 --> 00:37:24,520 653 00:37:24,520 --> 00:37:25,490 ভয়েস ক্ষরান. 654 00:37:25,490 --> 00:37:27,630 আর আপনি কি সত্যিই এই সঙ্গে বন্য যেতে পারেন. 655 00:37:27,630 --> 00:37:30,872 আমি খুবই সহজ এক বাছাই, আমি জানতাম কারণ আমি বন্ধ দান্ত দিয়া ফুটা করা উচিত নয় 656 00:37:30,872 --> 00:37:31,830 চিবানোর তার চেয়ে বেশী. 657 00:37:31,830 --> 00:37:36,460 শুধু সুন্দর এটা সহজ রাখা প্রধান ধারনা দেখাতে. 658 00:37:36,460 --> 00:37:39,952 কিন্তু তারপর আমি চাই, আমরা করেছি ছিল এই কিছু ড্রামস যোগ পেয়েছিলাম. 659 00:37:39,952 --> 00:37:41,910 শুধু এই একটি কারণ অল্প দুর্ভেদ্য, 660 00:37:41,910 --> 00:37:45,790 এবং আমি ব্যবহার করা হয়নি ড্রাম অংশ নাম, 661 00:37:45,790 --> 00:37:49,490 তারা কারণ আমি them-- ম্যাপ যে গণিত বর্গ অংশ, 662 00:37:49,490 --> 00:37:51,500 আমি ints তাদের ম্যাপ. 663 00:37:51,500 --> 00:37:53,120 এক একটি খাদ ড্রাম ভালো হয়. 664 00:37:53,120 --> 00:37:54,370 জিরো হিসাবে ভাল. 665 00:37:54,370 --> 00:37:56,000 সাত একটি উচ্চ টুপি হয়. 666 00:37:56,000 --> 00:38:00,920 এবং এখানে নিচে যেখানে ফাংশন, একটি সামান্য আরো র্যান্ডম পান 667 00:38:00,920 --> 00:38:02,100 এই Conga ড্রামস মত. 668 00:38:02,100 --> 00:38:08,360 >> তাই হয়তো আপনি একটি মনে করেন সম্পর্কে যদি একটি ড্রাম মেশিন বাস্তবায়ন মজা উপায় 669 00:38:08,360 --> 00:38:12,830 খুব সুশৃঙ্খল ব্যবহার করা হয় আপনার খাদ ড্রাম নিদর্শন. 670 00:38:12,830 --> 00:38:17,640 সুতরাং উদাহরণস্বরূপ, ওভার ফিল্টারিং ফেরত দেয় যে সবকিছু তালিকা 671 00:38:17,640 --> 00:38:20,590 এটা মডিউল 04 গৃহীত যখন একটি 1. 672 00:38:20,590 --> 00:38:27,190 তাই আমি 1, 5, 9, 13, 17-- তাই এই পেতে ভাষার পরিমাপ প্রথম বীট হয়. 673 00:38:27,190 --> 00:38:32,860 >> এবং তারপর এই একই জিনিস দুটি ধাপে উপর স্থানান্তরিত. 674 00:38:32,860 --> 00:38:33,850 সুতরাং যে offbeat এর. 675 00:38:33,850 --> 00:38:37,480 তাই এই হতে হবে একটি উচ্চ টুপি ভালো কিছু. 676 00:38:37,480 --> 00:38:39,640 এবং তারপর আবার নিচে এখানে, এটা একটা সামান্য র্যান্ডম 677 00:38:39,640 --> 00:38:41,080 আমরা Conga ড্রামস করছেন কারণ. 678 00:38:41,080 --> 00:38:44,180 আর আমি খুব, এখানে কিছু maracas নিচে আছে. 679 00:38:44,180 --> 00:38:50,280 >> তাই আমি, খেলার ড্রাম মেশিন পেরেছিলাম কিন্তু এটি চিরকালের জন্য যেতে হবে, 680 00:38:50,280 --> 00:38:53,700 এবং এটি আপ দখল শুরু হতে পারে আমার সিস্টেমে সব স্মৃতি. 681 00:38:53,700 --> 00:38:57,090 তাই আমি এই ফাংশন কল করব , হিসাবে আমরা দেখতে পাবেন, যা গান, খেলতে 682 00:38:57,090 --> 00:39:02,020 ছিন্ন সমান্তরাল রচনা ব্যবহার আমাদের সামান্য Frere জ্যাক গান খেলতে 683 00:39:02,020 --> 00:39:04,200 এই অদ্ভুত ড্রাম মেশিন বরাবর. 684 00:39:04,200 --> 00:39:06,190 তাই এর কটাক্ষপাত করা যাক. 685 00:39:06,190 --> 00:39:10,920 এবং এর উন্নতি না দয়া করে আমার সব ড্রাম অংশ ব্যবস্থা. 686 00:39:10,920 --> 00:39:13,375 যেগুলি আমার বিশিষ্টতা, কিন্তু আমি এরকম অনেক মজার ছিল. 687 00:39:13,375 --> 00:39:17,678 688 00:39:17,678 --> 00:39:20,654 >> [সঙ্গীত বাজাচ্ছি] 689 00:39:20,654 --> 00:39:52,260 690 00:39:52,260 --> 00:39:56,980 >> অবশ্যই তাই, এই সব হয় মজা হিসাবে একটি সামান্য বিট না 691 00:39:56,980 --> 00:40:01,100 আমরা তা রূপান্তর করতে পারবেন না তাহলে একটি স্কোর তাই হয়তো এটা 692 00:40:01,100 --> 00:40:04,650 ব্যাখ্যা করা যেতে পারে একটি মানবিক অভিনয়কারী দ্বারা. 693 00:40:04,650 --> 00:40:06,535 তাই আমি এখানে এটা চালানো হবে না. 694 00:40:06,535 --> 00:40:07,910 আমি ইতিমধ্যে ফাইল তৈরি করেছেন. 695 00:40:07,910 --> 00:40:10,280 আপনি একটি আছে দেখতে পারেন ডট LilyPond ফাইলটি এবং এই 696 00:40:10,280 --> 00:40:14,500 আমার segue বেশি হতে হবে Connor-- এবং একটি বিন্দু MIDI ফাইল, 697 00:40:14,500 --> 00:40:18,610 এবং কি একটি বিন্দু পিডিএফ ফাইল, যা LilyPond পরিণামে উৎপন্ন হবে. 698 00:40:18,610 --> 00:40:23,770 >> কিন্তু এগুলি যারা স্ক্রিপ্ট হয়, এরপর আমি আবার শুধু তাদের সাহায্যে অপশনের সাথে চালানো. 699 00:40:23,770 --> 00:40:28,090 আপনি এই পর্যন্ত পেতে এবং সঙ্গে চলমান তাহলে Euterpea, আপনি একটি MIDI ফাইল তৈরি করতে পারেন. 700 00:40:28,090 --> 00:40:31,160 এবং তারপর MIDI ফাইল থেকে এই পেজ 2LY প্রোগ্রামের সাথে, 701 00:40:31,160 --> 00:40:34,930 আপনি একটি লিলি উৎপন্ন করতে পারে পুকুরের ফাইল, এবং তারপর আপনি 702 00:40:34,930 --> 00:40:37,974 স্কোর একটি পিডিএফ তৈরি করতে পারেন. 703 00:40:37,974 --> 00:40:39,390 আর আমরা এই সময়ে কটাক্ষপাত করা উচিত. 704 00:40:39,390 --> 00:40:52,599 705 00:40:52,599 --> 00:40:55,140 সুতরাং কনর সম্ভবত দেখাতে হবে আপনি কিভাবে এই ভাল টীকা 706 00:40:55,140 --> 00:41:02,570 কিন্তু এই Frere জ্যাক হিসাবে হয় Euterpea আমার দ্বারা উত্পন্ন. 707 00:41:02,570 --> 00:41:07,300 এটা শুধু সি আমি মূর্তিযুক্ত উচিত হচ্ছে এটা প্রকৃতপক্ষে এর হ্যাক কি আউট. 708 00:41:07,300 --> 00:41:11,090 কিন্তু যে জন্য পাইপলাইন আপনি যে যে কাজ করতে কিভাবে. 709 00:41:11,090 --> 00:41:12,950 এর LilyPond সম্পর্কে আরো কথা বলা যাক. 710 00:41:12,950 --> 00:41:15,780 >> Connor HARRIS: ঠিক আছে দেখা যাক. 711 00:41:15,780 --> 00:41:19,480 712 00:41:19,480 --> 00:41:21,419 আপনি Haskell জানুন উল্লেখ করেছেন? 713 00:41:21,419 --> 00:41:22,460 STEPHEN KREWSON: ওহ. 714 00:41:22,460 --> 00:41:23,480 পরীক্ষা করে দেখুন আপনি Haskell জানুন. 715 00:41:23,480 --> 00:41:24,410 এটা সম্পদ আছে. 716 00:41:24,410 --> 00:41:26,830 আমি শুরু কিভাবে যে শেখার, এবং এটা ভাল. 717 00:41:26,830 --> 00:41:27,580 মূক না শেখার. 718 00:41:27,580 --> 00:41:28,829 >> Connor HARRIS: সুতরাং এটি অনলাইন. 719 00:41:28,829 --> 00:41:34,760 তাই নামে একটি লোক [শ্রবণাতীত] learnyouahaskell.com, কোন স্পেস. 720 00:41:34,760 --> 00:41:37,065 ব্যাকরণ অসুস্থ. 721 00:41:37,065 --> 00:41:38,690 STEPHEN KREWSON: এটা খুব, সচিত্র এর. 722 00:41:38,690 --> 00:41:39,440 Connor HARRIS: LilyPond কি তাই হয়? 723 00:41:39,440 --> 00:41:42,480 এটি একটি ঘোষণামূলক প্রোগ্রামিং এর গান ছাপাখানার অক্ষরস্থাপন ভাষা. 724 00:41:42,480 --> 00:41:45,480 তাই আপনি যা করতে পারেন declarative-- এইচটিএমএল ভালো জিনিস মনে, 725 00:41:45,480 --> 00:41:50,900 আপনি না হন, যেখানে বলছে এইচটিএমএল কিভাবে ওয়েব ব্রাউজার উচিত বলে না 726 00:41:50,900 --> 00:41:52,180 রেন্ডার পেজ ধাপে ধাপে. 727 00:41:52,180 --> 00:41:54,096 এটা শুধু এই বলছে একটি টেক্সচুয়াল বিবরণ 728 00:41:54,096 --> 00:41:56,100 আপনি যা চান তা নিয়ে পাতা মত চেহারা. 729 00:41:56,100 --> 00:41:59,310 >> এবং তারপর এটি একটি প্রোগ্রাম যে এই ভাষা প্রনয়ন, 730 00:41:59,310 --> 00:42:02,300 অথবা এটা আসলে তারপর তার মধ্যে পড়তে এবং আপনার জন্য ছাপাখানার অক্ষরস্থাপন আছে, 731 00:42:02,300 --> 00:42:05,570 এবং এটি এই spits আউট বিস্ময়কর খুঁজছেন পিডিএফ স্কোর. 732 00:42:05,570 --> 00:42:08,250 এছাড়াও আপনি PNG ফরম্যাটে বা যাই হোক না কেন পেতে পারেন. 733 00:42:08,250 --> 00:42:10,300 একটি ভালো উপায় মনে করা এই উপমা দ্বারা হয় 734 00:42:10,300 --> 00:42:16,620 , ক্ষীর সাজানোর LillyPond মত হয় কিন্তু শুধু সাধারণ ছাপাখানার অক্ষরস্থাপন জন্য. 735 00:42:16,620 --> 00:42:20,360 সুতরাং পরিবর্তে এটা না র কি আপনি দেখুন, WYSIWYG, 736 00:42:20,360 --> 00:42:22,960 আপনি বলার মত, পান কি লয়, বা Sibelius, 737 00:42:22,960 --> 00:42:27,430 বা মাইক্রোসফট ওয়ার্ড, আপনি টাইপ করতে পারেন যেখানে রিয়েল টাইমে বাস্তব সময় এবং খসড়া জিনিষ 738 00:42:27,430 --> 00:42:31,340 এবং তাত্ক্ষণিকভাবে পরিবর্তন দেখতে. 739 00:42:31,340 --> 00:42:32,140 >> এটা টেক্সট ভিত্তিক হয়. 740 00:42:32,140 --> 00:42:35,290 আপনি আপনার কম্পাইল করতে হবে একটি পৃথক প্রোগ্রাম ব্যবহার করে স্কোর 741 00:42:35,290 --> 00:42:37,090 এবং পরে প্রতিটি PDF ফাইলের শেষে নামা. 742 00:42:37,090 --> 00:42:43,320 এই একটু কম হয় যদি আপনি ব্যবহারের জন্য সুবিধাজনক 743 00:42:43,320 --> 00:42:46,520 সরাসরি লিখতে চেষ্টা আপনি আছেন এবং একটি স্কোর মধ্যে 744 00:42:46,520 --> 00:42:48,620 কম্পিউটারে রচনা করার চেষ্টা করছে. 745 00:42:48,620 --> 00:42:50,830 কিন্তু অনেক আছে এটা জন্য সুবিধার. 746 00:42:50,830 --> 00:42:56,110 এক, এটি একটি অনেক nicer চেহারা না LillyPond আসলে পারেন কারণ 747 00:42:56,110 --> 00:42:58,210 এটা করতে সময় লাগবে সঠিকভাবে লেআউট সিদ্ধান্ত, 748 00:42:58,210 --> 00:43:02,380 আছে যা Sibelius বা লয়, অসদৃশ তাই আপোস আলগোরিদিম করতে 749 00:43:02,380 --> 00:43:05,020 তারা প্রদর্শন করতে পারে রিয়েল টাইমে কিছু. 750 00:43:05,020 --> 00:43:07,660 >> সুতরাং কেন LilyPond-- হয় কম্পিউটার গ্রাফিক্স কঠিন. 751 00:43:07,660 --> 00:43:10,535 আপনি গান নিয়ে কিছু করছেন তাহলে এবং আপনি স্কোর আউট লিখতে চান, 752 00:43:10,535 --> 00:43:13,900 আপনি লিখতে চান না নিজেকে দ্বারা সবকিছু আউট 753 00:43:13,900 --> 00:43:19,040 আঁকা কিভাবে দিয়ে শুরু কর্মীরা এবং কিভাবে নোটপ্যাড আঁকা. 754 00:43:19,040 --> 00:43:21,020 এটা অনেক কঠিন. এটা আগেই ঘটে গেছে. 755 00:43:21,020 --> 00:43:22,170 আপনি সূক্ষ্ম. 756 00:43:22,170 --> 00:43:26,200 >> আপনি লয় বা Sibelius ব্যবহার করতে চান তাহলে, সেগুলো জন্য ফাইল ফরম্যাটের 757 00:43:26,200 --> 00:43:30,180 অত্যন্ত জটিল, এবং আপনি করতে পারেন না সত্যিই প্রোগ্রামের মাধ্যমে তাদের ব্যবহার. 758 00:43:30,180 --> 00:43:35,020 আপনি লয় সঙ্গে Sibelius পর্যন্ত খুলতে পারে এবং ফাইল যান, রপ্তানি পিডিএফ হিসেবে নিজেকে, 759 00:43:35,020 --> 00:43:37,600 কিন্তু আপনি কি সত্যিই না পারেন একটি স্ক্রিপ্ট থেকে যে কল. 760 00:43:37,600 --> 00:43:40,440 LillyPond, আপনি কল করতে পারেন যারা স্ক্রিপ্ট থেকে. 761 00:43:40,440 --> 00:43:44,397 আপনি সহজেই পুনরুক্তি পারে LaTeX দিয়ে LillyPond. 762 00:43:44,397 --> 00:43:47,230 আমি যেতে যে অনেক সময় থাকবে না এই মুহূর্তে এই প্রযুক্তির মধ্যে, 763 00:43:47,230 --> 00:43:48,321 কিন্তু তারা অস্তিত্ব. 764 00:43:48,321 --> 00:43:50,070 আপনি তাকান করতে চান তাহলে একটি LillyPond বইয়ের মধ্যে, 765 00:43:50,070 --> 00:43:53,760 এটা দিয়ে আসে যে একটি প্রোগ্রাম আপনার LillyPond বন্টন, 766 00:43:53,760 --> 00:43:57,030 এবং এটা iterating জন্য তরুক্ষীর LillyPond টুকরা 767 00:43:57,030 --> 00:44:00,340 আপনি কিছু করতে চান তাহলে একটি বড় সংগীততত্ত্ব দস্তাবেজের মত 768 00:44:00,340 --> 00:44:02,289 উদাহরণস্বরূপ উদাহরণ, সঙ্গে. 769 00:44:02,289 --> 00:44:04,580 এবং এটি একটি ভাল দক্ষতা আছে আপনি কিছু করছেন তাহলে জীবন 770 00:44:04,580 --> 00:44:05,770 সঙ্গীত, না শুধু CS50 সঙ্গে. 771 00:44:05,770 --> 00:44:09,320 আমি সব জন্য LillyPond ব্যবহার করেছি আমার রচনা প্রকল্পের 772 00:44:09,320 --> 00:44:11,880 আমি মূলত ছিল যেহেতু একটি হাই স্কুলে সিনিয়র. 773 00:44:11,880 --> 00:44:13,455 >> তাই এখানে কিছু সহজ উদাহরণ আছে. 774 00:44:13,455 --> 00:44:17,490 775 00:44:17,490 --> 00:44:21,060 এটি মূলত প্রতিনিধি অসুবিধা স্তরের 776 00:44:21,060 --> 00:44:23,481 যে অধিকাংশ লোক would তারা চেষ্টা করছিলেন তা মুখোমুখি 777 00:44:23,481 --> 00:44:24,980 সহজ প্রকল্পের জন্য LilyPond ব্যবহার করতে. 778 00:44:24,980 --> 00:44:29,519 এই প্রথম এক শুরুতে বাখ দ্বারা একটি Chorale মঙ্গলাচরণ করতে. 779 00:44:29,519 --> 00:44:31,810 এই নীচে এক একটি উদ্ধৃতাংশ আমার নিজের কাজ এক থেকে, 780 00:44:31,810 --> 00:44:34,650 এবং এটা দেখানোর জন্য শুধু আছে [শ্রবণাতীত] মত আপনি কিছু 781 00:44:34,650 --> 00:44:38,550 একই একাধিক লাইন নির্বাণ কর্মী, কিভাবে গীতধর্মী undersetting কাজ. 782 00:44:38,550 --> 00:44:41,350 783 00:44:41,350 --> 00:44:46,110 গীতধর্মী underlays খুব যে একটা জিনিস আছে ঐকতানিক সঙ্গীত জন্য LilyPond ব্যবহার করা সহজ. 784 00:44:46,110 --> 00:44:48,814 >> আর যদি তাই হয় তাহলে আরো কিছু আছে এখানে জটিল উদাহরণ. 785 00:44:48,814 --> 00:44:50,980 এই সমস্ত মধ্যে সম্পন্ন করা হয় LilyPond এবং তারা সম্ভবপর আছেন. 786 00:44:50,980 --> 00:44:55,280 এই প্রথম থেকে উদ্ধৃতাংশ হয় [শ্রবণাতীত] [শ্রবণাতীত] দ্বারা. 787 00:44:55,280 --> 00:44:58,860 আর এই [শ্রবণাতীত] থেকে সোলো খাদ জন্য এক টুকরা 788 00:44:58,860 --> 00:45:03,550 [শ্রবণাতীত] দ্বারা বাঁশি, যারা একটি longtime-- যিনি 789 00:45:03,550 --> 00:45:07,101 একটি দীর্ঘদিনের সদস্য ছিলেন এখানে গান ডিপার্টমেন্ট, আমি মনে করি. 790 00:45:07,101 --> 00:45:08,600 আমি মনে করি তিনি বন্ধ চলে গেছে যেখানে নিশ্চিত নই. 791 00:45:08,600 --> 00:45:12,410 কিন্তু তিনি হার্ভার্ড এর উপদেষ্টা ছিলেন একটি দীর্ঘ সময় জন্য রচনাকারী এসোসিয়েশন. 792 00:45:12,410 --> 00:45:13,530 চমৎকার মানুষ. 793 00:45:13,530 --> 00:45:16,920 তখন তিনি খুব আছে যে কিছু গান লিখেছেন জটিল স্বরলিপি যে LillyPond 794 00:45:16,920 --> 00:45:20,500 তবু খুব সুন্দরভাবে পরিচালনা করতে পারেন. 795 00:45:20,500 --> 00:45:26,030 >> তাই শুধু আপনার একটা ধারনা দিতে কি এই জিনিস এর ক্ষমতা তাই are-- 796 00:45:26,030 --> 00:45:28,960 LillyPond এর internals খুবই জটিল আকার ধারণ. 797 00:45:28,960 --> 00:45:31,060 এবং এটা আপনার জন্য ব্যবহার করতে পারেন একটি দীর্ঘ সময়, সহ 798 00:45:31,060 --> 00:45:32,520 কিছু প্রশংসনীয় জটিল জন্য কিছু ছাড়া সত্যিই 799 00:45:32,520 --> 00:45:34,060 তাদের সম্পর্কে অনেক কিছু জানা থাকার. 800 00:45:34,060 --> 00:45:38,720 কিন্তু মৌলিক ধারণা উপর যে হয় সর্বনিম্ন স্তর, LillyPonds পরমাণু 801 00:45:38,720 --> 00:45:39,970 নোট হয়. 802 00:45:39,970 --> 00:45:42,761 নোট একটি ধারণ প্রেক্ষাপটে বলা কণ্ঠ. 803 00:45:42,761 --> 00:45:44,510 ভয়েস প্রেক্ষাপটে তাই মূলত অনুরূপ 804 00:45:44,510 --> 00:45:47,410 Polyphony মধ্যে একটি একক লাইন. 805 00:45:47,410 --> 00:45:49,410 এবং তারপর প্রসঙ্গ হতে পারে hierarchically অন্তর্ভুক্ত 806 00:45:49,410 --> 00:45:53,590 উচ্চ স্তরের বেশী যে স্কোর কর্মীরা প্রতিনিধিত্ব 807 00:45:53,590 --> 00:45:56,750 ভালো বা বাইরে কাজ পিয়ানো কর্মীরা বা গায়কদল কর্মীরা, 808 00:45:56,750 --> 00:45:58,990 এবং তারপর অবশেষে সমগ্র স্কোর প্রেক্ষিতে. 809 00:45:58,990 --> 00:46:02,260 এবং আপনি আসলে প্রদক্ষিণ করতে পারেন একটি বই একাধিক স্কোর. 810 00:46:02,260 --> 00:46:05,770 >> এবং প্রতি প্রেক্ষাপটে আছে একটি সংযুক্ত Engravers সংখ্যা. 811 00:46:05,770 --> 00:46:08,340 আপনি মাধ্যমে সন্ধান যদি একটি প্রসঙ্গের বিষয়বস্তু 812 00:46:08,340 --> 00:46:14,410 এবং একটি নির্দিষ্ট প্রতীক বা প্রিন্ট প্রয়োজনীয় হিসাবে চিহ্ন নির্দিষ্ট বর্গ. 813 00:46:14,410 --> 00:46:17,840 ভাষার ভয়েস প্রেক্ষাপটে তাই, [শ্রবণাতীত] নোট আছে 814 00:46:17,840 --> 00:46:24,270 মূলত একটি ফাংশন যে খোদকার বা সব নোট বাহির লিখেছেন যে একটি বস্তু 815 00:46:24,270 --> 00:46:26,290 একটি পৃষ্ঠার ডান অংশের উপর মাথা. 816 00:46:26,290 --> 00:46:29,510 তারপর একটি চিড় খোদকার, আছে যা কর্মীদের উপর ছিদ্র খুঁজে লিখেছেন. 817 00:46:29,510 --> 00:46:31,517 তারপর একটি মাত্রামাপক আছে চিহ্ন খোদকার যে 818 00:46:31,517 --> 00:46:33,100 একটি স্কোর মাত্রামাপক চিহ্ন খুঁজে লিখেছেন. 819 00:46:33,100 --> 00:46:36,410 এবং এই সব সুন্দর মাপসই ভাল অনুক্রমের মধ্যে. 820 00:46:36,410 --> 00:46:39,500 এবং এটি খুব, খুব, খুব কী স্বনির্ধারিত, যা আপনার প্রয়োজন 821 00:46:39,500 --> 00:46:42,880 আপনি যে ভালো জিনিস পেতে চান. 822 00:46:42,880 --> 00:46:45,730 >> সুতরাং সমস্ত প্রেক্ষিতে একটি আছে বিভিন্ন গুণাবলী অনেক 823 00:46:45,730 --> 00:46:52,410 আপনি সব কিছুর জন্য পরিবর্তন করতে পারে বিভিন্ন ফন্ট ফাঁক থেকে 824 00:46:52,410 --> 00:46:54,942 জিনিস মাপ নির্বাচন. 825 00:46:54,942 --> 00:46:56,900 এমনকি আপনি কাজ করতে চান তাহলে আরো জটিল কিছু 826 00:46:56,900 --> 00:46:59,210 একটি এমবেডেড স্ক্রিপ্টিং ভাষা আছে. 827 00:46:59,210 --> 00:47:01,820 তারা প্রকল্প ব্যবহার যা পাতার মর্মর উপভাষা হল. 828 00:47:01,820 --> 00:47:04,960 এই সম্ভবত না আপনাকে কিছু বলতে চাইছেন. 829 00:47:04,960 --> 00:47:06,900 কিন্তু মূলত, একটি প্রকল্প অন্য ফাংশানাল 830 00:47:06,900 --> 00:47:09,500 প্রোগ্রামিং ভাষা, বা আরো কম. 831 00:47:09,500 --> 00:47:10,800 >> STEPHEN KREWSON: টাই-এ. 832 00:47:10,800 --> 00:47:12,690 >> Connor HARRIS: হ্যা. 833 00:47:12,690 --> 00:47:15,390 এটা একটা ভাল টাই-এর, আমি অনুমান. 834 00:47:15,390 --> 00:47:20,150 এবং এটি একটি শিক্ষণ ভাষা হিসেবে ব্যবহৃত হচ্ছে, আসলে, গণ Ave নগরী নিচে এমআইটিতে. 835 00:47:20,150 --> 00:47:26,590 আর এটা LillyPond জন্য খুব সুবিধাজনক বিভিন্ন প্রযুক্তিগত কারণের জন্য. 836 00:47:26,590 --> 00:47:30,317 >> এবং যাতে আপনি সহজ করতে চান তাহলে কন্ডিশন উপর নির্ভরশীল কৌতুক, 837 00:47:30,317 --> 00:47:32,900 example-- জন্য নির্দিষ্ট আছে পূরণ করে একটি স্কোর অবস্থা, 838 00:47:32,900 --> 00:47:36,495 যাও পরিবর্তন করতে বিন্যাস বা তারপর whatnot-- 839 00:47:36,495 --> 00:47:37,620 যারা যেখানে আছে. 840 00:47:37,620 --> 00:47:38,667 তারা জটিল আছেন. 841 00:47:38,667 --> 00:47:40,250 তাই এখানে একটি চমত্কার সহজ কোড নমুনা. 842 00:47:40,250 --> 00:47:43,810 এটা পাঁচটি লাইন. 843 00:47:43,810 --> 00:47:46,120 মূলত, আমি দুই কর্মীরা সংজ্ঞা করছি. 844 00:47:46,120 --> 00:47:46,904 এটা 3/4 এর. 845 00:47:46,904 --> 00:47:48,695 প্রথম কর্মীদের একটি আছে লয় চিহ্ন সংযুক্ত, 846 00:47:48,695 --> 00:47:51,110 কিন্তু যে আসলে যাচ্ছে পুরো স্কোর উপর যেতে, 847 00:47:51,110 --> 00:47:54,960 লয় চিহ্ন কারণ স্কোর স্তরে হয়. 848 00:47:54,960 --> 00:47:59,044 মাত্রামাপক চিহ্ন খোদকার কনটেক্সট স্কোর সংযুক্ত করা হয়. 849 00:47:59,044 --> 00:48:01,460 বিভিন্ন নির্দেশক আছে, [শ্রবণাতীত] খোদকার কারণ 850 00:48:01,460 --> 00:48:02,710 কর্মীরা সংযুক্ত করা হয়. 851 00:48:02,710 --> 00:48:04,441 আপনি আসলে কি করতে পারেন. 852 00:48:04,441 --> 00:48:06,190 আমি লিখেছি নমুনা আসলে সি প্রধান, 853 00:48:06,190 --> 00:48:07,990 তবে এটা ঠিক এর এর আপনি থাকতে পারে প্রকট 854 00:48:07,990 --> 00:48:09,570 বিভিন্ন কর্মীরা বিভিন্ন নির্দেশক. 855 00:48:09,570 --> 00:48:15,710 এবং মৌলিক সিনট্যাক্স আপনি লিখতে হয় ই, এফ, জি, যাই হোক না কেন সঙ্গে নাম রাখবেন. 856 00:48:15,710 --> 00:48:18,910 আপনি accidentals করতে চান আপনি হয় বা ES প্রত্যয়. 857 00:48:18,910 --> 00:48:22,640 এই ডাচ থেকে হয় musicological নিয়মাবলী. 858 00:48:22,640 --> 00:48:28,290 >> এবং অষ্টক অত্যন্ত করতে, আপনাকে ব্যবহার করতে হবে এই চিহ্ন, কমা বা ঊর্ধকমা টিক্. 859 00:48:28,290 --> 00:48:30,580 আপেক্ষিক শুধু মানে আপনি একটি নোট আছে যাই হোক না কেন, 860 00:48:30,580 --> 00:48:34,080 এটি স্বয়ংক্রিয়ভাবে মধ্যে plaec করা হবে পূর্ববর্তী একের নিকটস্থ অষ্টক. 861 00:48:34,080 --> 00:48:37,624 এবং আপনার চেয়ে আরো ঝাঁপ চান তাহলে একটি একটি পঞ্চম বা more-- বলতে fifth-- 862 00:48:37,624 --> 00:48:39,165 তারপর আপনি [শ্রবণাতীত] ব্যবহার আছে. 863 00:48:39,165 --> 00:48:42,580 কিন্তু অন্যথায়, আপনি করতে হবে না প্রতিটি নোট অষ্টক উল্লেখ করুন. 864 00:48:42,580 --> 00:48:46,130 >> এবং আপেক্ষিক সি, প্রধানমন্ত্রী, এবং সি, আপনি শুধু মধ্যম সি উল্লেখ 865 00:48:46,130 --> 00:48:48,630 এবং বেস সি, বিশেষ করে প্রথম নোট. 866 00:48:48,630 --> 00:48:55,020 তারপর আপনি সংগঠিত যে এইসব কর্মীরা আছে এই দুটি কণ্ঠ বা গান নমুনা, 867 00:48:55,020 --> 00:48:56,730 এবং আপনি একটি স্কোর আছে. 868 00:48:56,730 --> 00:48:58,440 এবং যে ভালো দেখায়. 869 00:48:58,440 --> 00:49:01,780 870 00:49:01,780 --> 00:49:05,380 >> আপনি সময় নিতে চান LillyPond যে নমুনা কপি 871 00:49:05,380 --> 00:49:07,530 পূর্ববর্তী উপর কোড এখানে নিচে স্লাইড, এবং আপনি 872 00:49:07,530 --> 00:49:09,030 LillyPond নিজের জন্য লিখতে পারেন. 873 00:49:09,030 --> 00:49:11,280 আমি মনে করি আমরা কিছু পেয়েছেন যে এই মত অনেক দেখায়. 874 00:49:11,280 --> 00:49:17,236 875 00:49:17,236 --> 00:49:19,610 তাই অন্য প্রযুক্তি আছে বলা সঙ্গীত এক্সএমএল রক্ষণাবেক্ষণ 876 00:49:19,610 --> 00:49:22,030 সম্পূর্ণ ভিন্ন মানুষ. 877 00:49:22,030 --> 00:49:28,150 এক্সএমএল একটি টেক্সচুয়াল তথ্য কাঠামো আমি তথ্য বলতে কাঠামো বলা উচিত নয় 878 00:49:28,150 --> 00:49:29,580 রূপক ম্যাপ সাজান. 879 00:49:29,580 --> 00:49:33,800 এবং এটি রাখা ডিজাইন হায়ারারকিকাল তথ্য খুব ভাল. 880 00:49:33,800 --> 00:49:37,050 এইচটিএমএল, উদাহরণস্বরূপ, XML একটি প্রকার. 881 00:49:37,050 --> 00:49:41,090 আর আপনি এক্সএমএল কারণ বলতে পারেন তারা ছিল সব কোণ বন্ধনী এবং কোণ 882 00:49:41,090 --> 00:49:44,700 বন্ধনী স্ল্যাশ চিহ্ন যে শো ডাটা ক্ষেত্র. 883 00:49:44,700 --> 00:49:47,390 >> আমি একটি কোড আছে না সঙ্গীত এক্সএমএল থেকে যেমন. 884 00:49:47,390 --> 00:49:50,450 আপনি এটা নিজেকে খুঁজে পেতে পারেন. 885 00:49:50,450 --> 00:49:53,735 মূলত, কারণ আপনি চাইতে পারেন অন্তর্বর্তী পর্যায় হিসেবে XML ব্যবহার 886 00:49:53,735 --> 00:49:55,980 প্রথম সব, এটি, হয় একটি ইন্টারচেঞ্জ ফরম্যাট 887 00:49:55,980 --> 00:50:02,301 জন্য মূলত আমি বলা উচিত নয় every-- বিভিন্ন স্কোর ভাষার, কিন্তু অনেক 888 00:50:02,301 --> 00:50:02,800 লেখকদের. 889 00:50:02,800 --> 00:50:04,966 আপনি গান লিখতে হলে তাই এক্সএমএল, শুধুমাত্র LillyPond পারেন 890 00:50:04,966 --> 00:50:08,080 এই auxilary সাহায্যে এটি পড়তে প্রোগ্রাম, LY সঙ্গীত এক্সএমএল বলা 891 00:50:08,080 --> 00:50:11,360 কিন্তু লয় পড়তে পারেন এটা, Sibelius এটা পড়তে পারেন. 892 00:50:11,360 --> 00:50:14,770 কিভাবে আপনার অভ্যন্তরীণ বস্তুর উপর নির্ভর করে অনুক্রমের, সঙ্গীত প্রতিনিধিত্বমূলক জন্য কাজ করে 893 00:50:14,770 --> 00:50:18,820 লেখে এটা সহজ হতে পারে LillyPond চেয়ে গান এক্সএমএল 894 00:50:18,820 --> 00:50:22,410 এবং শুধু গান এক্সএমএল উপর নির্ভর LY রূপান্তর করতে. 895 00:50:22,410 --> 00:50:24,282 >> আমি [শ্রবণাতীত] সঙ্গীত এক্সএমএল আছে তা মনে করি না. 896 00:50:24,282 --> 00:50:25,490 STEPHEN KREWSON: এটা না. 897 00:50:25,490 --> 00:50:26,340 কেউ যদিও, এটা উপর কাজ করছে. 898 00:50:26,340 --> 00:50:27,090 >> Connor HARRIS: ঠিক আছে. 899 00:50:27,090 --> 00:50:31,040 Euterpea একটি নেই এখনো সঙ্গীত এক্সএমএল আউটপুট ফাংশন. 900 00:50:31,040 --> 00:50:35,340 আপনি একটি প্রকল্প চূড়ান্ত ধারণা চান, হয়তো বলছি সঙ্গে স্পর্শ পেতে 901 00:50:35,340 --> 00:50:38,620 স্টিফেন জানে যে, ও তারা আপনার সাহায্য করতে পারে. 902 00:50:38,620 --> 00:50:40,992 >> STEPHEN KREWSON: আমি যে চাই. 903 00:50:40,992 --> 00:50:43,450 Connor HARRIS: এছাড়াও, মূলত, ভাষার প্রোগ্রামিং ল্যাঙ্গোয়েজ 904 00:50:43,450 --> 00:50:46,610 যে তার লবণ মূল্য ইতিমধ্যে একটি XML লাইব্রেরি আছে, 905 00:50:46,610 --> 00:50:51,030 তাই আপনি অভ্যন্তরীণভাবে সব রূপান্তর করতে পারেন কিছু বস্তুর মধ্যে আপনার সঙ্গীতের 906 00:50:51,030 --> 00:50:54,120 XML লাইব্রেরি লিখতে পারেন যে যে কম প্রয়োজন হবে আউট 907 00:50:54,120 --> 00:50:57,470 আপনার অভ্যন্তরীণ কাঠামো পরিবর্তন যাই হোক না কেন এর জন্য গান আপনি বস্তু 908 00:50:57,470 --> 00:51:00,310 এটা লেখার চেয়ে লিখতে চান সরাসরি LillyPond যোগ দেন. 909 00:51:00,310 --> 00:51:04,380 তারপর শুধু এক্সএমএল সঙ্গে সঙ্গে এটি প্রিন্ট আউট আপনার ভাষা এক্সএমএল গ্রন্থাগার, 910 00:51:04,380 --> 00:51:07,260 এটা যে নিশ্চয়তা দেবে যা সিনট্যাক্স সঠিক এবং সবকিছু 911 00:51:07,260 --> 00:51:08,720 এবং তারপর LillyPond রূপান্তর করুন. 912 00:51:08,720 --> 00:51:11,060 তাই প্রযুক্তির আপনি চাইতে পারেন আপনি কিছু করছেন তাহলে দেখব 913 00:51:11,060 --> 00:51:11,650 এটার মত. 914 00:51:11,650 --> 00:51:14,490 915 00:51:14,490 --> 00:51:16,370 >> [শ্রবণাতীত], অন্য auxilarry প্রযুক্তি. 916 00:51:16,370 --> 00:51:21,700 এই টেক ওয়ার্কস মূলত বা LillyPond জন্য টেক স্টুডিও. 917 00:51:21,700 --> 00:51:25,380 সুতরাং এটা দিয়ে সাহায্য প্রস্তাব টেমপ্লেট সঙ্গে সিনট্যাক্স, 918 00:51:25,380 --> 00:51:28,770 বিভিন্ন সাধারণ জন্য যন্ত্রের সমন্বয়. 919 00:51:28,770 --> 00:51:32,780 এটা তাই দেখার বিভক্ত পর্দা পারবেন আপনি একটি উইন্ডোতে আপনার কোড থাকতে পারে 920 00:51:32,780 --> 00:51:37,350 এবং অন্য একটি উইন্ডোতে পিডিএফ ও পিডিএফ এ জায়গা ক্লিক 921 00:51:37,350 --> 00:51:40,650 প্রাসঙ্গিক ঝাঁপ আপনার সোর্স কোড দাগ. 922 00:51:40,650 --> 00:51:45,330 আপনি আসলে হন তাহলে এই অধিক ফলপ্রসূ লেখার LillyPond ফাইল নিজেকে 923 00:51:45,330 --> 00:51:47,400 আপনি উৎপাদিত করছি চেয়ে তাদের প্রোগ্রামের মাধ্যমে. 924 00:51:47,400 --> 00:51:51,230 কিন্তু আবার, এটা দরকারী কিছু আছে. 925 00:51:51,230 --> 00:51:51,970 >> গ্রেট. 926 00:51:51,970 --> 00:51:55,860 আরেকটি resources-- আমি শুধু হবে খুব দ্রুত এই মধ্য দিয়ে যেতে. 927 00:51:55,860 --> 00:52:01,270 LillyPond manuals-- LillyPond হয়েছে তার ওয়েবসাইটে চমৎকার ডকুমেন্টেশন. 928 00:52:01,270 --> 00:52:02,270 তারা একটি টিউটোরিয়াল আছে. 929 00:52:02,270 --> 00:52:03,478 তারা একটি সিনট্যাক্স রেফারেন্স আছে. 930 00:52:03,478 --> 00:52:07,010 তারা টুকরো শত শত আছে বিভিন্ন ছোট জিনিষ জন্য 931 00:52:07,010 --> 00:52:09,930 ইয়ো প্রকট না প্রয়োজন হতে পারে বিভিন্ন ক্ষমতা. 932 00:52:09,930 --> 00:52:12,250 আপনি ব্যবহার করতে চান তাহলে স্ক্রিপ্টিং ভাষা 933 00:52:12,250 --> 00:52:14,740 বা আরো ব্যাপক করতে কাস্টমাইজেশন, তারপর আছে 934 00:52:14,740 --> 00:52:16,730 internals যে URL এ রেফারেন্স. 935 00:52:16,730 --> 00:52:21,950 আপনি গান XML ব্যবহার করতে চান তাহলে, আছে যে URL, musicxml.com/tutorial. 936 00:52:21,950 --> 00:52:27,960 >> এবং তারপর শুরু স্কীম জানার জন্য প্রয়োজন হলে আপনি আসলে ব্যবহার করতে চান, কারণ 937 00:52:27,960 --> 00:52:30,960 LillyPond স্ক্রিপ্টিং সুবিধা, তারপর একটি [শ্রবণাতীত] বলা আছে 938 00:52:30,960 --> 00:52:32,918 স্ট্রাকচার্ড ব্যাখ্যা কম্পিউটার প্রোগ্রাম, 939 00:52:32,918 --> 00:52:35,820 যা না শুধুমাত্র দ্বিতীয় কখনও লিখে সর্বশ্রেষ্ঠ সি এস পাঠ্যপুস্তক 940 00:52:35,820 --> 00:52:39,770 আপনি জানতে চান তাহলে পরে আমাকে খুঁজে আমি সর্বশ্রেষ্ঠ এক হচ্ছে ÑÑ মনে কি 941 00:52:39,770 --> 00:52:43,580 কিন্তু এটি একটি খুব ভাল সঠিক ভাষা পরিচিতি. 942 00:52:43,580 --> 00:52:46,630 আপনি বেশী প্রয়োজন হবে না প্রথম কয়েক বিভাগে. 943 00:52:46,630 --> 00:52:47,827 >> এবং যে এটি. 944 00:52:47,827 --> 00:52:48,410 কোন প্রশ্ন? 945 00:52:48,410 --> 00:52:54,068 946 00:52:54,068 --> 00:52:57,972 >> ছাত্র: আমি কোথা থেকে ডাউনলোড করতে পারেন আপনার উত্পন্ন Frere জ্যাক 947 00:52:57,972 --> 00:53:01,050 তাই আমি আমার আইপড এটা করা যেতে পারে? 948 00:53:01,050 --> 00:53:07,574 >> STEPHEN KREWSON: হ্যাঁ, আপনি লিখতে পারেন Euterpea কিছু WAV ফাইল আউট. 949 00:53:07,574 --> 00:53:08,490 এবং আপনার কোড আছে. 950 00:53:08,490 --> 00:53:10,000 এটা GitHub উপর এর. 951 00:53:10,000 --> 00:53:15,590 আপনার নিজস্ব বৈচিত্র করুন এবং CS50 মধুচক্র মন দ্বারা Frere জ্যাক. 952 00:53:15,590 --> 00:53:17,095 এটা ভাল হবে. 953 00:53:17,095 --> 00:53:18,220 Connor HARRIS: অন্য কেউ? 954 00:53:18,220 --> 00:53:20,261 STEPHEN KREWSON: আমরা প্রয়োজন খুব একটা ভাল খাদ ড্রাম,. 955 00:53:20,261 --> 00:53:21,935 এটা খুব খারাপ. 956 00:53:21,935 --> 00:53:26,565 >> ছাত্র: Euterpea না শুধুমাত্র আছে ধাতু সহযোগ উপাদান এর দিকে, কিন্তু signal-- 957 00:53:26,565 --> 00:53:27,440 STEPHEN KREWSON: হ্যাঁ. 958 00:53:27,440 --> 00:53:30,100 বস্তুত, কাজ আমি যখন আমি Euterpea করেছিল 959 00:53:30,100 --> 00:53:33,450 আপাততঃ একটি আছে গ্রহণ ইয়েল এ কোর্সে স্নাতক যে 960 00:53:33,450 --> 00:53:35,900 এটিকে শব্দ সংশ্লেষণ ছিল ব্যবহার. 961 00:53:35,900 --> 00:53:39,810 সুতরাং একটি সত্যিই আছে তীরচিহ্ন ব্যবহার করে চমৎকার ভাবে 962 00:53:39,810 --> 00:53:46,150 এবং আমরা দেখেছি স্বরলিপি কিছু সংকেত ফাংশন একসঙ্গে রচনা. 963 00:53:46,150 --> 00:53:50,610 সবচেয়ে জন্য বিশেষ, খাদ মধ্যে তাদের শুধু একটি সহজ সাইন ওয়েভ হয়. 964 00:53:50,610 --> 00:53:54,240 কিন্তু আপনি সেই রচনা শুরু হলে অদ্ভুত কর্মসূচি উপায়ে, 965 00:53:54,240 --> 00:54:00,010 আপনি পাগল শব্দ পেতে পারেন অদ্ভুত ক্যাসকেড মত প্রভাব. 966 00:54:00,010 --> 00:54:04,640 আপনি খুব বালুকাময় তৈরি করতে পারেন মড্যুলেশন অনেকটা সঙ্গে শোনাচ্ছে. 967 00:54:04,640 --> 00:54:07,730 >> আমি ঝুরা উপর একটি প্রকল্প করেনি যা সংশ্লেষণ, 968 00:54:07,730 --> 00:54:12,290 কোথাও এফএম এবং স্যাম্পলিং মধ্যে. 969 00:54:12,290 --> 00:54:15,230 আপনি, খুব ছোট নিতে সামান্য নমুনা, এবং তারপর 970 00:54:15,230 --> 00:54:20,440 কিছু সাজানোর সঙ্গে তাদের একত্রিত স্বরলিপি এবং সমৃদ্ধ একটি শব্দ বিল্ড আপ. 971 00:54:20,440 --> 00:54:24,900 আমরা তাই, শারীরিক মডেলিং করেনি পদার্থবিদ্যা সম্পর্কে চিন্তা করার চেষ্টা 972 00:54:24,900 --> 00:54:29,410 এবং ভালো কিছু এর psychoacoustics শিঙা, এবং পথ সম্পর্কে চিন্তা 973 00:54:29,410 --> 00:54:32,320 শব্দ বন্ধ প্রাণচঞ্চল হয় শিঙার বেল 974 00:54:32,320 --> 00:54:35,200 এর এবং শ্রবণশক্তি রুম ও মডেলিং 975 00:54:35,200 --> 00:54:40,195 মৌলিক অসিলেটর সঙ্গে যে. 976 00:54:40,195 --> 00:54:47,690 977 00:54:47,690 --> 00:54:48,940 Connor HARRIS: ধন্যবাদ এত. 978 00:54:48,940 --> 00:54:50,140 আসার জন্য ধন্যবাদ. 979 00:54:50,140 --> 00:54:52,400 আর আমি সবসময় রাজী নই ইমেইলে দ্বারা প্রশ্ন করা 980 00:54:52,400 --> 00:54:55,020 connorharris@college.harvard.edu. 981 00:54:55,020 --> 00:54:57,020 >> STEPHEN KREWSON: হ্যা. stephen.krewson@yale.edu. 982 00:54:57,020 --> 00:54:58,810 983 00:54:58,810 --> 00:55:00,360 কুল. 984 00:55:00,360 --> 00:55:01,667