Connor HARRIS: হাই. আমি কনর হ্যারিস আছি. আমি হার্ভার্ডে একটি CS50 সিএ আছি. STEPHEN KREWSON: আমি স্টিফেন Krewson আছি. আমি ইয়েল CS50 জন্য একটি TF আছি. Connor HARRIS: আমরা কথা বলতে যাচ্ছেন কিছু প্রযুক্তি সম্পর্কে যে আপনি পারে আপনি আগ্রহী হলে ব্যবহার করতে চান একটি প্রকল্প চূড়ান্ত করছেন বা সত্যিই গান নিয়ে কিছু. আমরা প্রথমে একটি উপর মনোযোগ নিবদ্ধ করা চলুন Haskell বলা প্রোগ্রামিং ভাষা. এটি একটি কার্যকরী ভাষা, তাই দৃষ্টান্ত সি বা পিএইচপি থেকে খুব আলাদা বা অন্যান্য অনুজ্ঞাসূচক প্রত্যেক যে আপনি ইতিমধ্যে ব্যবহার, এবং বিশেষ করে থাকেন Haskell লেখা একটি লাইব্রেরি তে মানুষ সাহায্য করতে পারেন, যা Euterpea বলা বৈশিষ্ট্যগুলি গান লেখার সঙ্গে, মূলত. এবং স্টিফেন আপনি পদব্রজে ভ্রমণ হবে যে একটি বড় উদাহরণ মাধ্যমে. এই পর, আমি আপনাকে পরিচয় করিয়ে দেব LillyPond কিছু বলা, যা ছাপাখানার অক্ষরস্থাপন সঙ্গীত জন্য একটি প্রযুক্তি. এটা ধরণের ক্ষীর মত গান করার জন্য আপনাকে কোন গণিত ক্লাস জন্য ক্ষীর ব্যবহার করেছেন বা অন্যান্য পি সেট ক্লাস বা কি আপনি. আর তাই আমি আবার, আপনি দেব, যে কিছু সহজ উদাহরণ এবং সাধারণভাবে আপনি নির্দেশ ভাল কিছু সম্পদ দিক. STEPHEN KREWSON: ইন উপরন্তু, আমরা তা চিন্তা সেট আপ করতে শীতল হতে চাই নির্দেশ একটি সামান্য বিট মধ্যে পাইপলাইন দিকে Euterpea-উত্পন্ন MIDI ফাইল LillyPond মধ্যে, তাই আমরা প্রদান স্ক্রিপ্ট কিছু নির্দেশনা যে যে কাজ করতে LillyPond সাথে উপলব্ধ শুধু এটা ওপেন সোর্স রাখা এবং যাচ্ছে একটি পাইপলাইন পেতে. Connor HARRIS: আবার, আমরা জোর দেওয়া উচিত এই দুটি প্রযুক্তির, আপনি তাদের একসঙ্গে ব্যবহার করতে হবে না. তারা কাজ করার পরিকল্পনা করছি না একসাথে, যদিও তারা খুব সুন্দরভাবে করতে. STEPHEN KREWSON: রাইট. এবং সম্পূর্ণ বিনামূল্যে. Connor HARRIS: তাই কৃতজ্ঞতা স্বীকার, শুধু যে পড়তে. STEPHEN KREWSON: বাকীতে লক্ষনীয়. যারা ভাবেন ধন্যবাদ. এই আমি শুধু একটা মুহূর্ত জন্য গড়িমসি করব. ইনস্টলেশন প্রক্রিয়া একটি সামান্য বিট প্রবঞ্চক হয়. আমরা একটি GitHub উপর আমার পড়া আছে আপনি কটাক্ষপাত করতে পারে. যদি আপনার কোন প্রশ্ন থাকে তাহলে শুধু আমাকে ইমেইল করুন. কিন্তু আমরা ধৃষ্টতা অধীনে এই রান করব এই যে সবার জন্য কাজ করছে. Connor HARRIS: আর যদি আপনি করতে পারেন না LillyPond, কোন বড় চুক্তি কাজ পেতে. কোন লাইভ সংকলন আছে যে অন্তত আমার প্রান্তে, জড়িত করা হবে. STEPHEN KREWSON: Haskell এবং LillyPond উভয় ইনস্টলারের থাকা উচিত. Euterpea একটি হিসাবে ডাউনলোড করা হয় বাক্স, তাই এবং তাই ঘোষণা. সুতরাং আমরা কম্পিউটার সঙ্গীত সম্পর্কে কথা বলার চেষ্টা করছি. আর এই মাত্র হল খুব 50,000 ফুট দেখুন. এটা কয়েক বিভিন্ন দিক আছে. আর এই রুক্ষ হয় এবং হয় কিছু বিস্তারিত অস্পষ্ট যাচ্ছে. কিন্তু আমরা কিছু মনে করতে পারে আলগোরিদিমিক রচনা মতো, অ্যালগোরিদম ব্যবহার করে, উৎপন্ন, কোড ব্যবহার করে কিছু টাইপ র হয়তো একটি স্বয়ংসম্পূর্ণ একই নোট, অথবা হয়তো নোট ক্রম কিছু সীমাবদ্ধতা অধীনে. এবং তারপর যারা হতে পারে সঞ্চালিত বা ব্যাখ্যা এনালগ যন্ত্র দিয়ে বা যে মত কিছু. কিন্তু সহযোগ ছিল algorithmically, সম্পন্ন. কিন্তু অবশ্যই, হয়তো এলাকায় কম্পিউটার সঙ্গীত ডাউনলোড করুন অথবা ডিজিটাল মিউজিক আমরা ডিজিটাল সঙ্গে আরো পরিচিত আছেন শব্দ সংশ্লেষণ বা ডিজিটাল স্যাম্পলিং এবং ডিজিটাল রেকর্ডিং. ডিজিটাল যন্ত্র অনেক আছে ডিজিটাল স্যাম্পলিং মাধ্যমে সম্পন্ন. আসলে, আমরা যারা এক ব্যবহার করা হবে পরে একটি শব্দ ফন্ট লাইব্রেরি আকারে. কিন্তু এছাড়াও কিছু আছে নামক এসেছেন যে ডিজিটাল সংশ্লেষণ দেরী '70s এবং মধ্যে' এর সঙ্গে 80s স্ট্যানফোর্ড এ ইয়ামাহা এবং জন Chowning এফএম সংশ্লেষণ করছেন বা ফ্রিকোয়েন্সি মড্যুলেশন সংশ্লেষণ, যেখানে আপনি একটি ক্যারিয়ার ছিল সংকেত এবং একটি মোডিউলেট সংকেত উভয় অডিও বর্ণালী. কিন্তু আমরা নিবদ্ধ তা আজ, এখন MIDI কিছু বলা হয় এবং অবশ্যই, আলগোরিদিমিক রচনা. আমরা যন্ত্র করতে যাচ্ছে, কিন্তু করছি না আমরা পরিবর্তে কিছু গান করতে যাচ্ছেন, এবং তারপর যে ব্যাখ্যা করা হবে কিছু যন্ত্র দ্বারা যে যাও conformant হয় সাধারণ MIDI স্ট্যান্ডার্ড. সুতরাং এখন MIDI কি? আমি খুব গভীর তা পেতে যাচ্ছি না কিন্তু এখন MIDI ডাটা ট্রান্সফার প্রোটোকল. এটি জুড়ে একটি গাইড এক ধরনের বিভিন্ন কোম্পানি ও শিল্প শব্দ বা প্যাচ সংগঠিত জন্য. সুতরাং আমরা দেখতে পাবেন একটি MIDI স্ট্যান্ডার্ড আছে সব বিভিন্ন সঙ্ঘর্ষ জন্য শব্দ এবং MIDI সুপারিশ synth এর সব বিভিন্ন ধরনের জন্য অথবা সব উপকরণ বিভিন্ন ধরনের একটি অর্কেস্ট্রা দলের, বলতে. আপনি সম্ভবত সাথে পরিচিত হন 0 মাধ্যমে 127 MIDI বার্তা. একটি MIDI সংকেত সাধারণত হয় ইঙ্গিত এক বিট এটি একটি একটি তথ্য বা কিনা অবস্থা প্যাকেট, এবং তারপর আছে একটি সংকেত সাত বিট. এবং এই নিয়ন্ত্রণ করতে পারেন ভলিউম থেকে সবকিছু কর্ম বা চাপ একটি নির্দিষ্ট কি উপর আপনি একটি MIDI সাথে সম্পাদন করছি নিয়ামক হিসেবে, অবশ্যই, নোট. এবং অবশ্যই, MIDI অত্যন্ত দরকারী হয়েছে এটা তারের একটি উপায় কারণ একসঙ্গে বা ডেজি চেন MIDI হার্ডওয়্যার ডিভাইসের একটি গুচ্ছ. আমি আমার বাড়িতে সাত বা আট ফিরে আছে. এটা সত্যিই জটিল পরার কিন্তু এটা সত্যিই শক্তিশালী. আর এটা সত্যিই বৃদ্ধ. এটা প্রথম দিকে '80s থেকে, এবং এটা সত্যিই চমৎকার এবং ছোট. Connor HARRIS: হ্যা. সমস্ত ক্লাসিক ছুটিতে নিরাপত্তার ভিডিও গেম সম্ভবত would উদাহরণস্বরূপ গান জন্য MIDI ফাইল, আছে. STEPHEN KREWSON: এখানে একটি কী সাধারণ MIDI দৃষ্টান্ত এক ধরনের হিসাবে এখন MIDI দেখাচ্ছে সাধারণ প্রোটোকলের. আর আমি মনে করি আমরা মনে করতে পারেন মনে হয় নির্দিষ্টকরণ মধ্যে পার্থক্য মত কিছু আছে উচিত যে এই যন্ত্র প্রকৃত শব্দসমূহ এবং যারা যন্ত্র আদায় শোনাচ্ছে একটি শব্দ ফন্ট অথবা একটি নির্দিষ্ট করার MIDI পার্থক্য হচ্ছে synthesizer বলেছেন যা হয়তো একটি typeface-- মধ্যে, সাধারণভাবে, এই নকশা এই বিশেষ ভাবে উপস্থাপন করার characters-- এবং একটি নির্দিষ্ট ফন্ট যে, একটি নির্দিষ্ট মাপ এবং সুর আছে এবং the-- আদায় আছে Connor HARRIS: হয়তো একটি ভাল উপমা would হতে ইউনিকোড এটা দেয় says-- একটি ভাষার অক্ষরে সংখ্যা, এবং সত্যিই পৃথিবীর প্রতিটি ভাষা, বা ভাষা স্ক্রিপ্ট সুবিশাল সেট বিশ্বের, এবং তারপর যারা কিছু গ্রাফিক্যাল মধ্যে অনুষ্ঠিত বিভিন্ন ফন্টের প্যাকেজ দ্বারা. এ কথা স্পষ্ট যে, আপনি মনে করতে পারেন শব্দ ইউনিকোড হিসেবে এখন MIDI. এবং এটি একটি বড় স্ট্রিম র শুধু একটি তালিকা ঘটনা এবং যন্ত্র এবং যে কোন বস্তু এর, এবং আপনি একটি পৃথক আছে প্রোগ্রাম, একটি টাইপফেস মত, মধ্যে যে রেন্ডার শ্রাব্য কিছু যে. STEPHEN KREWSON: সুতরাং কেন Haskell? Haskell একটি কার্যকরী প্রোগ্রামিং হয় খুব উন্নত ভাষা, সি থেকে ভিন্ন, পিএইচপি থেকে ভিন্ন. আর আমরা একটি আছে দেখতে যাচ্ছেন মধ্যে Haskell ফাংশন রফা আরাম যে আমাদের মাধ্যমে হাওয়া অনুমতি দেবে transcribing, রচনা বা টাইপ, Frere জ্যাক ভালো কিছু, এই সহজ গান যে এটা এ অংশের অনেক আছে যে স্ব-অনুরূপ বা পুনরাবৃত্ত হয়. তাই এই কিছু হতে হবে কেন জন্য প্রেরণা আমরা, Haskell ব্যবহার করছেন যা ফাংশন প্রথম শ্রেনীর নাগরিক. আর আমি প্রসারিত করতে চেয়েছিলেন এই একটি সামান্য বিট. এটি একটি সামান্য বিট সহজ মধ্যে Haskell Frere জ্যাক notate. কিন্তু আমরা করতে চেয়েছিলেন এটা করার জন্য একটি ড্রাম অংশ যোগ করতে চান? আমরা করতে চেষ্টা চেয়েছিল কি একটি রোল্যান্ড 808 বা 909 ড্রাম ভালো কিছু আপনি যেখানে মেশিন প্রায় 16 বিভিন্ন পদক্ষেপ? সাধারণত এইসব হয় যেমন 16 নোট চিন্তা. এবং আপনি বিশ্বব্যাপী নিয়ন্ত্রণ করতে পারেন লয়, এবং আপনি খুঁজে নিতে পারবেন বিভিন্ন সঙ্ঘর্ষ অংশের একটি গুচ্ছ খাদ ড্রাম, একটি হাততালির শব্দ, বিভিন্ন ফাঁদ, খোলা এবং বন্ধ উচ্চ টুপি চ্যানেলের এই সাজানোর উপর, এবং তারপর আপনি EQ পারেন অথবা তাদের ভলিউম সামঞ্জস্য. এবং আমরা একটা চমৎকার ভাবে দেখতে পাবেন এই ধাপে প্রতিনিধিত্বমূলক Haskell সমস্ত সঙ্গে Sequencer মধ্যে Haskell বিভিন্ন শীতল জিনিস আমরা উৎপাদিত সঙ্গে কাজ করতে পারেন তালিকা ধরে তালিকা এবং ফিল্টারিং, তালিকা ধরে ম্যাপিং, ম্যাপিং তালিকা ধরে ফাংশন. আর একটি দ্রুত গনতন্ত্রে. এটি একটি খুব দ্রুত হয় এবং মাত্রাতিরিক্ত দ্রুত স্কেচ কিছু দিক নিয়ে Haskell এবং Euterpea এর, একটি ডোমেন নির্দিষ্ট যা হয় এমবেডেড ভাষা লেখা বাদ্যযন্ত্র ধরনের জন্য মধ্যে Haskell. সুতরাং অনলাইন কোড চেক আউট না দয়া করে. গ্লাসগো যা জ্বলা GHCI, Haskell কম্পাইলার ইন্টারপ্রেটার. আর আমি কিছু কাজ করা হবে কিছুক্ষন এই তাই আপনি কিভাবে এটি কাজ করে দেখতে পারেন. আর এই আপনার সাথে এ লোড করতে পারবেন the-- সিনট্যাক্স তারপর কোলন ও হয় আদেশ. আপনি ফাইল লোড করতে সক্ষম. আপনি ঐ ফাইল ব্রাউজ ব্যবহার করতে পারেন সকল ফাংশন দেখতে যে একটি বিশেষ মডিউল মধ্যে উপস্থিত থাকে. আর আমরা, ধরনের এবং টাইপ দেখতে পাবেন তারপর হিসাবে ক্লাস, মধ্যে Haskell এত গুরুত্বপূর্ণ তাই আপনি সর্বদা বিশেষ check-- পারেন যদি আপনি একটি নতুন DSCL কাজ করছি এই মত একটি গান টাইপ কি? আমি পথ সাংখ্যিক সম্পর্কে জানতে ধরনের মধ্যে Haskell কাজ কিন্তু আমি গান সম্পর্কে অনেক কিছু জানি না. তবে আপনি যদি তারা করছি উপায় অন্বেষণ করতে পারবেন এই T বা টাইপ কমান্ড ব্যবহার করে সংজ্ঞায়িত এবং তারপর একটি বিশেষ আহ্বান ফাংশন বা তথ্য বস্তুর. Connor HARRIS: হ্যা. আপনি সি এবং ঝনঝন মনে করেন ধরনের সম্পর্কে hardass ছিল, আপনি Haskell সম্পর্কে কোন ধারণা আছে. Haskell সম্পর্কে ভাল জিনিস হল, আপনি কম্পাইল আপনার কোড পেতে পারেন যদি এবং Haskell টাইপ চেক যদি, এটি সম্ভবত ঠিক টাইপ সিস্টেম তাই কঠোর কারণ. STEPHEN KREWSON: হ্যা. তাই আমি শুধু যেতে চান আবার এর মাধ্যমে এবং, এটি একটি কয়েক ন্যায় করছে না Haskell বৈশিষ্ট্য, যে অন্তত তার creators-- এবং এটি তৈরি করা হয়েছে মানুষের একটি গুচ্ছ দ্বারা 1980 সালে, প্রায় 20 একটি কমিটি লোক গুরুত্বপূর্ণ ছিল. এবং সর্বপ্রথম যে জিনিসটি তারা একটি কাগজে তালিকাভুক্ত যে Haskell জনন বর্ণনা প্রথম 20 বছর বা তাই ওভার এটা অলস ছিল যে. তাহলে এর অর্থ কি? আমরা কিছু আছে যখন ওয়েল, এটা মানে মত প্রকাশের, আমরা তা নির্ণয় করতে হবে. এবং Haskell একটি কলে এই আছে প্রয়োজন উপায় বা অ কঠোর ভাবে করে. আমরা একটি গুচ্ছ আছে যে, হয় আমাদের মত প্রকাশের উপাদান, আমরা মূল্যায়ন বিলম্ব করার চেষ্টা যারা subcomponents এর পরম সর্বশেষ minute-- পর্যন্ত আমরা আসলে তাদের প্রয়োজন না হওয়া পর্যন্ত যে হয়. তাই এই মানে যা সত্যিই শীতল, বিশেষত আমরা বিমূর্তন সম্পর্কে চিন্তা করছি একটি বাদ্যযন্ত্র পদক্ষেপ Sequencer এর. আপনি এটি চালু, এবং আপনি শুরু একটি পদক্ষেপ sequence-- চলমান আপনি কি একটি ড্রাম সঙ্গে কাজ তাহলে machine-- এবং এটা শুধু চিরকালের যায়. তাই আমরা যদি সত্যিই চমৎকার হবে Haskell যে অনুকরণ করতে পারে. আর আমরা অসীম সঙ্গে এটি করতে পারেন মান, বিশেষ অসীম তালিকায়. এটি একটি টাইপ করা খুব সহজ মধ্যে Haskell অসীম তালিকা. আপনি শুধু নিচে সিনট্যাক্স ব্যবহার করতে পারেন এখানে, আপনি 3 মাধ্যমে 1 দেখতে যেখানে, 3 1 ডট ডট অপসারণ, এবং যে অসীম তালিকা সব স্বাভাবিক সংখ্যার ব্যাপ্ত যতটা আপনি কল্পনা করতে পারেন হিসাবে. আমি একটি পরিচয় করিয়ে দিতে চাই এখুনি ভাঁজ ধারণা. এবং আবার, উদ্দেশ্য এই সেমিনারে নয় এর মধ্যে Haskell ভাঁজ সম্পর্কে জানতে বা উচ্চতর ক্রম ফাংশন. কিন্তু আমি শুধু এটা প্রবর্তন করতে চান কিভাবে অদ্ভুত সঠিক ধারনা দিতে Haskell হয় এবং কিভাবে শক্তিশালী এটা. এবং বিশেষ করে, আমরা be-- চলুন আমরা আমাদের বিভিন্ন ড্রাম অংশ না হলে, আমরা তালিকা সাধিত হতে যাচ্ছেন সংখ্যা, একে অপরের মধ্যে তাদের ভাঁজ. যা করতে হবে এবং আমরা করব মানচিত্র এবং folds ব্যবহার করা. একটি সঠিক মিশুক নেই এই এক অধিকার, যা ভাঁজ এখানে 1 বিয়োগ পরিমাণ, 2 মাইনাস পরিমাণ, 3 বিয়োগ 0. আর একটি সিনট্যাক্স ভাঁজ, আপনি একটি ভাঁজ দিতে একটি বেস মূল্য এবং তারপর একটি operation-- এই ক্ষেত্রে, উপরন্তু বা বিয়োগ মধ্যে. আমি উভয় ক্ষেত্রেই দেখানো করেছি. এবং তারপর একটি সঁচায়ক আছে যে সম্পূর্ণ তালিকা accumulates, যে অপারেটর প্লাস প্রয়োগের বা বিয়োগ, এবং তারপর এটি সঁচায়ক. এটা বলা হয় যদি তাই এই the-- হবে ভাঁজ R প্লাস 0 সাথে, 0 দিয়ে শুরু, আমরা তারপর সব যোগফল যে তালিকায় নম্বর. এবং যে 1 থেকে 3 একটি তালিকা. Connor HARRIS: তাই এটি অন্য করা পথ, ভাঁজ R তিনটি যুক্তি লাগে. একটি ফাংশন আছে যে নিজেই দুটি আর্গুমেন্ট লাগে, তারপর একটি স্টার্টার মূল্য আছে, এবং মানের একটি তালিকা আছে. এবং আপনি কি করবেন আপনি নিতে হয় স্টার্টার মান, প্রথম মান, ফাংশন সেগুলি স্থাপন করা. আপনি, আপনি কি খুঁজে পেতে পারি যে, খাবার নেয় যে এর ফাংশন মধ্যে দ্বিতীয় মান, আপনি খুঁজে পেতে কি, ওটা দিয়ে মধ্যে যে ভোজন তৃতীয় মান ফাংশন. এবং তারপর আপনি নিচে যান এই পুরো তালিকা এই ভাবে, আপনি শেষ পর্যন্ত পেতে যাচ্ছেন যে কিছু একবচন মান আপনি শুরু করেছেন তা একই ধরনের সঙ্গে আউট এবং একই ধরনের তারপর তালিকার কিছু এবং হিসাবে যে ভাঁজ আর ফেরত ফলাফলের STEPHEN KREWSON: বিশেষ সুতরাং, এই উচ্চ ক্রম ফাংশন হয়, তারা অন্য গ্রহণ করছেন কারণ আর্গুমেন্ট হিসাবে এক ফাংশন. Connor HARRIS: হ্যা. আপনি অন্য কিছু ব্যবহার করে থাকেন তাহলে languages-- আমি আর জানি, [শ্রবণাতীত] ভাষা কমাতে বলা হয়, এই আছে. আপনি একই ফাংশন থাকতে পারে অন্য ভাষায়, শুধু বলা বিভিন্ন জিনিস. STEPHEN KREWSON: আর কি ভাঁজ আর সম্পর্কে চমৎকার এই ইনস্ট্যান্সের মধ্যে যে ধা আর অসীম তালিকার সঙ্গে কাজ করতে পারেন. এই নীচে, এই পি 5 সুতরাং নোট উৎপাদিত হয় যে জন্য পদক্ষেপ Sequencer মধ্যে চালু করা হয় কিছু অংশ ড্রাম, পঞ্চম অংশ ড্রাম, এবং হয়ত এটা একটা Conga এর ড্রাম বা কিছু. আর এই একটি ইচ্ছাকৃতভাবে হয় এই লেখার অসাড় ভাবে, কিন্তু এটা কারণ, মজা এটা অনেক প্রমান Haskell এবং Euterpea সম্পর্কে জিনিস. সুতরাং এই colon-- মলাশয় r হল ভাঁজ কিছু push কর্মের যে শুধু একটি অপারেটর একসঙ্গে একটি খালি উপর নামক একটি তালিকার উপর শুধু খালি বন্ধনী যা তালিকায়. আর আমি যে আহ্বান করছি এই অসীম তালিকায়. এটি আসলে দুটি তালিকা হয় নিচে এখানে একসাথে যুক্ত. তালিকায় 1 কমা 6 ডট বিন্দু 1, 6, 11, 16 হয়. শুধু তাই Haskell-- কয়েক অক্ষর, আপনি সমগ্র উৎপন্ন করতে পারে সংখ্যার ক্রম পাঁচ নম্বর বাদে হয় অনন্ত মধ্যে উপর stretching. আর আমি যে পূর্বে লিখুন এই খাটো একটু তালিকার 3, 8, 21-- শুধু আপনাকে দেখাতে কিভাবে আপনি তালিকা কনক্যাটেনেট পারেন. এবং তারপর আমি নিজেই গুটান করেছি. এবং এই মাত্র এক ধরনের সমাপ্ত হচ্ছে পরিচয় অপারেশন, কিন্তু এটা অসীম. আর, আর তা করতে পারে ভাঁজ এটা কারণ আলসেমি উপরে হিসাবে, মূল্যায়ণ করা হয়. আমরা একটি 1 এবং 2 এবং 3 থেকে থাকে, আমরা যা করতে পারেন শুধু তা সমগ্র বাকি বন্ধ বন্ধনী. যে জন্য কাজ করবে না মাইনাস বা প্লাস, কিন্তু এটা এই কোলন জন্য কাজ করবে তালিকার পরিচয় অপারেশন. তাই কিভাবে আমরা কার্যত ব্যবহার করবেন না যে যদি আমরা কিছু অসীম দীর্ঘ তালিকা আছে? ওয়েল, Haskell উপলব্ধ ফাংশন অনেক এবং এই মধ্যে আরো দেখুন নিতে যেমন আপনার নিজের সময়ের মধ্যে যা ঠিক আছে, আমরা করছি, বলছেন এই অসীম তালিকায় উৎপাদিত কিন্তু আমরা শুধু কিছু নিতে যাচ্ছেন এটা নিয়ে আর এই ক্ষেত্রেই এ সংখ্যা আমরা পরে এই দেখতে পাবেন আমাদের ড্রাম মেশিন code-- জিএম গ্লোবাল কিছু ধরনের হয় ধাপের সংখ্যা জন্য পরিবর্তনশীল Sequencer মধ্যে. রোল-মধ্যে মেশিনে আমি , যে সাধারণত 16, আপনি দেখিয়েছেন কিন্তু আমি 32 সঙ্গে তা বাস্তবায়িত হয়নি. এটা কোন ব্যাপার না. Haskell বিশুদ্ধ হয়, তাই এটি শক্তিশালী হয়েছে কনর উল্লিখিত যে স্ট্যাটিক টাইপিং. সুতরাং ফাংশন sense-- গাণিতিক তারা আরো গাণিতিক আছেন তারা নিশ্চিত করছি যে অ্যাক্সেস বা যে কোন ধরণের পরিবর্তন না করতে বা পরিবর্তনশীল ইনপুট অথবা আউটপুট সঞ্চালন. আপনি যদি একটি ফাংশন আছে, তাই যদি, এটা নিয়ন্ত্রণবাদী এর. এটা সবসময় একই আসতে হবে প্রোগ্রাম রাজ্যের মান অথবা একই থাকবে. কীটাণুজাতীয় ব্যতিক্রম অবশ্যই আছে, এই করতে, কিন্তু যে আমাদের সামর্থ্যের চাইতে বেশী বোঝা গেছে. Connor HARRIS: হ্যা. এর মানে কি, যদিও, সেখানে হয় কয়েকটি গুরুত্বপূর্ণ [শ্রবণাতীত] এই পরিণতি. কেউ তার কাছে খুব সহজ হয় Haskell প্রোগ্রাম parallelize. আপনি যদি কারণ, , যে একটি ফাংশন বলে যদি একটি মিলিয়ন মূল্যবোধের উপর কাজ করার প্রয়োজন আপনি যে ফাংশন সবসময় জানি একই মান যদি খুঁজে দিতে আপনি একটি নির্দিষ্ট value-- এ ভোজন আপনাকে F, [শ্রবণাতীত] F 1 হন তাহলে 2, তারপর চ এর 3 অথবা 1 চ whatnot-- লেখে যাচ্ছে না একটি ফাইল বা কিছু না যে F2 মান পরিবর্তন করতে হবে. আপনি শুধুমাত্র একটি এই ফাংশন আপ বিভক্ত করতে পারেন মিলিয়ন বিভিন্ন মেশিন বা মিলিয়ন বিভিন্ন থ্রেড বা যাই হোক না কেন, ফিরে সব প্রতিক্রিয়া পেতে, সব ফিরে মান পেতে ফিরে, এবং তারপর যে এটি. কিছু parallelize তাই খুব সহজ. downside হয় যে ইনপুট এবং আউটপুট, বিশেষ করে টাইপ সিস্টেমের মধ্যে মাপসই খুব জটিল উপায়ে. আমরা এখন যে অধিকার ঢোকা, কিন্তু আমি না করতে কিছু সম্পদ তাকান করতে উত্সাহিত অনলাইন আপনি যে সম্পর্কে জানতে চান তাহলে. STEPHEN KREWSON: তাই টাইপ classes-- এবং এই ধরনের was-- ক্লাস সমাধান করার জন্য উদ্ভাবিত হয়েছে অপারেটর ওভারলোডিং একটি সমস্যা. সুতরাং আমরা সমতা তৈরি করতে চেয়েছিলাম জিনিষ বিভিন্ন ধরনের মধ্যে. অবশ্যই, আমরা র মনে হতে পারে সাংখ্যিক ধরনের মধ্যে সমতা , আমার মনে হয় খুব সহজ কিন্তু কি তালিকার মধ্যে সমতা সম্পর্কে? সমতার সম্পর্কে কী বৃক্ষ লেগ ডাটা স্ট্রাকচার? আর এই সব সম্ভব Haskell টাইপ ক্লাস কারণ. তাই আপনি যদি একটি নির্দিষ্ট ডাটা type-- সংজ্ঞায়িত হলে এবং এখানে, এই বাদ্যযন্ত্র পিচ হয়. আমরা অবশেষে পেয়ে থাকেন কিছু কম্পিউটার সঙ্গীত. সুতরাং আমরা সি, সি ধারালো আছে, এবং তাই এবং তাই ঘোষণা. তারা একটি গুচ্ছ অন্তর্গত বিভিন্ন ধরনের ক্লাস. EQ-- তারা EQ টাইপ শ্রেণীর অন্তর্গত. যে তারা সমর্থন মানে সমতা অপারেশন. তাই আপনি এক কি না তা নির্ণয় করতে পারেন বাদ্যযন্ত্র প্রিমিটিভের ক্রম একটি ভিন্ন এক হিসাবে একই. তারা পূরণবাচক শ্রেণীর অন্তর্গত. যে একটি ক্রম এইসব করার আছে মানে. ডি সি সি ধারালো পর আসে পাশাপাশি সি পরে আসে. তারা শ্রেণীর অন্তর্গত তারা করতে পারেন, যার মানে প্রদর্শন একটি কনসোল বা টার্মিনাল প্রিন্ট করা. তারা অন্তর্গত ক্লাস, গণিত যা এর মানে হল যে, যদিও এই অক্ষর, তারা একটি অন্তর্নিহিত সাংখ্যিক আছে 0 থেকে শুরু উপস্থাপনা তবে মাধ্যমে যাওয়া বন্ধ অনেক কিছু এখানে আছে, 20 বা তাই, হয়তো বা 30 বা 40,. Connor HARRIS: আর যখন আমরা একটি ডাটা টাইপ আছে যে শব্দ দিয়ে derives-- "Deriving--" একটি নির্দিষ্ট ধরনের বর্গ, এটা কম্পাইলার চেষ্টা করবে মানে স্বয়ংক্রিয়ভাবে কিছু গঠন করা. তাই হয়ত আপনি চাইবেন ভিন্নভাবে মানের সংজ্ঞায়িত. আপনি ধারালো সি নির্ধারণ করতে চাইবেন উদাহরণস্বরূপ, ডি ফ্ল্যাট সমান হিসাবে. এই নির্মাণ সঙ্গে এখানে, আমি সি ধারালো মনে করি না এবং ডি ফ্ল্যাট, কারণ সমান হতে হবে কম্পাইলার স্বয়ংক্রিয়ভাবে ভাষার বিভিন্ন সম্ভাব্য মান বলতে প্রতি অপরের থেকে স্বতন্ত্র. সুতরাং এটি অগ্রাহ্য করা সম্ভব ডিফল্ট বাস্তবায়নের ক্লাস এই ধরনের. আবার, রেফারেন্স যদি তাকান আপনি যে সম্পর্কে জানতে চান. STEPHEN KREWSON: আর এখানে, আসলে, এই হবে আমরা পরে কোড যখন জন্য সহায়ক হতে. আমরা পোতা অপারেটরদের কিছু দেখতে অনুক্রমিক সহযোগ জন্য, সমান্তরাল রচনা, এবং তাই ঘোষণা, এই pluses এবং সমান চিহ্ন কোলন দ্বারা বেষ্টিত. যে আমরা এই বিভিন্ন খেলতে পারেন মানে বাদ্যযন্ত্র প্রিমিটিভের অন্যান্য পর এক. যে অনুক্রমিক সহযোগ এর. অথবা আমরা তাদের ভূমিকা রাখতে পারে একই সময়ে সমান্তরাল. তাই আমি একটি বাদ্যযন্ত্র মান থাকতে পারে, এবং তারপর এই, সমান এবং কোলন সমান্তরাল সহযোগ অপারেটর পোতা এবং জ্যা এক ধরনের হিসাবে তাদের খেলা. এবং আমরা ব্যবহার করতে যাচ্ছেন এই যখন আমরা একত্রিত সাথে আমাদের ড্রাম অংশ আমাদের একটু Frere জ্যাক গান এই দুই সিকোয়েন্স খেলতে একই সময়ে বাদ্যযন্ত্র মান. হচ্ছে ÑÑ কারি সংবাহন শেষ পরিবর্তন হয়েছিল Haskell কারি, নাম যারা Haskell ইমেজ নামকরণ করা হয়. এবং এই আমাদের একটি পারবেন আমরা যখন চমৎকার কমনীয়তা এই সব বিভিন্ন লেখা ফাংশন বা আমরা করছি যে ফিল্টার আমাদের তালিকা ওভার ম্যাপিং হতে যাচ্ছে. দুই একটি ফাংশন X এবং * সাথে চ আর্গুমেন্ট হিসাবে প্রতিনিধিত্ব করা যাবে x এর ফল Y প্রয়োগ. সুতরাং এটি একটি ফাংশন ফেরৎ এক যুক্তি এক যুক্তি আরেকটি ফাংশন. তাই এই আমরা একটি মানচিত্র পারেন মানে Y এর তালিকা উপর এক্স ফাংশন f. Connor HARRIS: করতে চান এই একটি উদাহরণ দিতে? STEPHEN KREWSON: হ্যা. আমি এখান থেকে একটি উদাহরণ আছে আমরা লিখতে হবে কিছু. তাই প্রতিলিপি 2 না ভাল, নিতে হবে প্রতিলিপি কতগুলি যা একটি মান, বার কিছু প্রতিলিপি, এবং তারপর এটি একটি value-- নিতে হবে সাধারণত একটি তালিকা বা কোনো কিছুতে. তাই এখানে, আমরা ম্যাপিং আছেন আরেকটি তালিকা ওভার 2 প্রতিলিপি. আমরা 2 প্রতিলিপি মানচিত্র তাই যদি, আমরা 2 প্রতিলিপি যদি প্রযোজ্য এই তালিকার প্রথম উপাদান এবং এই বাদ্যযন্ত্র phrases-- তালিকা আছে দুই উত্পাদন করা হবে "আপনি sleeping--" তাই তুমি কি ঘুমিয়ে পড়েছ, তুমি কি ঘুমিয়ে পড়েছ. তাই এখন আমরা দুটি আছে. কিন্তু প্রতিলিপি দুটি লাগে আর্গুমেন্ট, কিন্তু আমরা করছি কারণ ম্যাপিং তারপর সংবাহন এবং, আমরা প্রতিলিপি 2 উপস্থাপন করতে পারেন একটি ফাংশন হিসাবে ফেরত দেয়া হয়েছে জমিদারি হিসাবে এক argument-- মাত্র দুইবার প্রতিলিপি. এবং তারপর আমরা প্রতিটি যে আবেদন করছি শব্দসমষ্টি এই তালিকার উপাদান. আর concat একটি Haskell হয় একটি তালিকা সমরূপতার জন্য অপারেশন. প্রতিলিপি 2 হবে, কারণ তালিকায় একটি তালিকা উত্পাদন. আর এই এই অন্তর্বর্তী ফর্ম এখানে. আর যদি তাই হয় তাহলে আমরা concat পারেন বা দুবার যে নি: স্ব. Connor HARRIS: একটি সহজ সংবাহন দৃষ্টান্ত আপনি করার মত চাই তাহলে F মাত্র কল্পনা দুটি লাগে যে গুণ ফাংশন আর্গুমেন্ট এবং তাদের পণ্য ফেরৎ. আপনি কি চান একজন চ 4 5 আছে, তাই যদি এটা 20 এর. কিন্তু আপনি হিসাবে মনে করতে পারেন also-- আপনি একটি ফাংশন f 4 আছে একটি যুক্তি এবং আয় লাগে এই মাত্র argument-- চারবার আংশিক আবেদন যা মাত্র এক যুক্তি 4. এবং আপনি 4 চ ভোজন 5, যে আপনি 20 দিতে হবে. এবং যে একটি সহজ, সংবাহন উদাহরণ. এটি সাধারণত পাঠ্যপুস্তক বেশী এক. STEPHEN KREWSON: ল্যামডা এক্সপ্রেশন বা বেনামী ফাংশন অন্য Haskell হলমার্ক. আমরা একটি পিটান প্রয়োজন হলে তাই সামান্য ফাংশন জীবন প্রতিলিপি, কিন্তু এটা না বলে স্ট্যান্ডার্ড গ্রন্থাগার, আমরা একটি সিনট্যাক্স ব্যবহার করতে পারেন নিম্নলিখিত বর্ণনার অনুরূপ. আর আমরা এই উপর মৃদুমন্দ বাতাস করব. আপনি অনেক দেখতে পাবেন একটি বিষয় ড্রাম মেশিন আমরা কল হয় কিছু বলা যা ভালো, আগে ফিল্টার, একটি ফাংশন একটি ম্যাপিং হয় একটি তালিকা ধরে, এটা কিন্তু স্বীকার একটি বুলিয়ান ফাংশন একটি ম্যাপিং. তাই আমরা এখানে একটি উদাহরণ আছে একটি একটি বেনামে সংজ্ঞায়িত বুলিয়ান ফাংশন যে মাত্র কয়েক মান লাগে. এই কঠোরভাবে বলতে নয় একটি বেনামী ফাংশন. কিন্তু এটি দিয়ে সংজ্ঞায়িত এর সংক্ষিপ্ততা জন্য যে সিনট্যাক্স, এবং এই মাত্র এক্স মডিউল লাগে n-- Connor HARRIS: হ্যা. তাই চ একটি ফাংশন দুটি আর্গুমেন্ট এন ও পি যে নিজেই যে একটি ফাংশন আয় এক যুক্তি একটি ফাংশন, যথা এক্স. STEPHEN KREWSON: আমি প্রথমোক্ত পোতা অপারেটরদের. পোতা অপারেটর কি হয়? ওয়েল, পোতা অপারেটর আমরা অপারেশন প্রতিনিধিত্ব স্বাভাবিক ভাবে, mathematics-- 2 প্লাস এ, বলতে পরিবর্তে অপারেটর 2 প্লাস এবং তারপর দুটি আর্গুমেন্ট 2 এবং 2. Connor HARRIS: এটা বলা হচ্ছে যা, পোলিশ স্বরলিপি বিপরীত একটি শব্দ আমি তোমাদের কাছে এর কোন জানেন সন্দেহ. STEPHEN KREWSON: রাইট. Polish বা উপসর্গ স্বরলিপি বিপরীত. কিন্তু Haskell করার সিদ্ধান্ত নিয়েছে পোতা অপারেটর ব্যবহার. সুতরাং এর মধ্যে কিছু আছে কাস্টম ওগুলো যে জন্য নির্ধারিত হয় মধ্যে Haskell Euterpea DSCL. সুতরাং এই অনুক্রমিক রচনা ছিল. এই সমান্তরাল রচনা ছিল, এবং এই সমান্তরাল সহযোগ ছিন্ন হয়. আর আমরা যে হবে আমাদের ড্রাম মেশিনের সাথে, আমরা গত ব্যবহার করব, কারণ সেখানে যে সামান্য Tuple অপারেটর বরাবর ড্রাম মেশিন খেলতে আমাদের Frere জ্যাক গানের সঙ্গে. আর আমাদের ড্রাম মেশিন অসীম হতে যাচ্ছে. এটা শুধু চিরকালের নাটকগুলি. কিন্তু Frere জ্যাক গান নয়. এটা যে দিন বাকি নেই. এটা মাত্র কয়েক বার এর. সুতরাং আমরা হিসাবে ড্রাম মেশিন বন্ধ করতে হবে খাটো বাদ্যযন্ত্র মান আসে তাড়াতাড়ি শেষ. আর যে infixed অপারেটর যে সঙ্গে সুপার সহায়ক. ভালো এবং পোতা স্বরলিপি এই ধরনের সুন্দর হয় বলে, কারণ আপনি একটি ফাংশন মত আছে উক্তি, যা পূর্ণসংখ্যা বিভাগের দেয় কিছু দ্বারা এক্স else-- দুঃখিত, যে A এবং B হবে. আপনি যদি বি এর একটি উক্তি হিসেবে এটা লিখতে পারে. আপনি put-- উপাদান যদি তাই এই আরেকটি উদাহরণ. কিছু তালিকার X উপাদান, যদি আপনি করা এটা ব্যাকটিক মধ্যে, আপনি এটি ব্যবহার করতে পারেন. এটি একটি প্রতীক না যদিও প্লাস বা মাইনাস বা বার মত, আপনি একটি নাম লিখুন ব্যাকটিক যে ভালো ফাংশন যা চমত্কার পোতা অপারেটর, হিসাবে. Connor HARRIS: আবার, এই হল সব ঠিক অন্বিত চিনি, সত্যিই. এটি একটি ভাষা কোর প্রভাবিত করে না. STEPHEN KREWSON: সুতরাং আমরা এখানে দেখতে আমাদের Frere জ্যাক গানের শেষ শব্দগুচ্ছ, আমি সামান্য কিছু chords, অভিনয় বা সমান্তরাল রচনা ব্যবহার তৃতীয়াংশ অপারেটর. এই কিছু বলছে অন্য উপায় আমরা শুধু বলছে করছি কি. তাই আপনি যদি ফাংশন ম্যাপ করতে পারেন তালিকা ধরে এক যুক্তির. Connor HARRIS: আবার, রেফারেন্স Haskell-- পরিচায়ক পাঠ্যবই জন্য এটা এই সব হবে. STEPHEN KREWSON: তাই এখানে একটি সুন্দর পদক্ষেপ Sequencer মূল লাইন আমরা ব্যবহার কটাক্ষপাত করব একটি তালিকা ধী. আর আমরা এখানে যে উপাদান দেখতে ফিরে কোট স্থায়ী অপারেটর. X তালিকা একটি উপাদান হল যদি তাই X এর, তারপর আমরা Perc ফাংশন আপ ডাকবো. সুতরাং Perc মাত্র সঙ্ঘর্ষ ফাংশন. এটা যে কিছু মান P লাগে সব বদ্ধ সেটে অংশ বিভিন্ন সঙ্ঘর্ষ শব্দসমূহ আমরা আগের স্লাইড দেখেছি যে, এবং তারপর এটা যে দেয় একটি সিকি নোট সময়কাল. অন্য এটি একটি QNR দেয়, এবং QNR মাত্র এক চতুর্থাংশ নোট বাকি হয়. তাই এই চমৎকার কিছু আপ নির্মাণ করা হয়. আমরা উপাদানের একটি তালিকা আছে, এবং এক থেকে কিছু তালিকা ধরে আমরা করব লুপ আমাদের পদক্ষেপ Sequencer এর সর্বোচ্চ মান. আর আমরা একটি নির্দিষ্ট আমি এ যখন সর্বোচ্চ মান এক যে তালিকা, যে আমি এই একটি সদস্য হলে এই ফাংশন মধ্যে তৈরি সেট, ভাল, তারপর আমরা এটা চালু একটি সঙ্ঘর্ষ নোট মধ্যে. অন্যথা, আমরা শুধু বিশ্রাম, খেলতে যা হয় আমরা শুধু চুপ করে থাকবেন, বলতে. আর আমরা এখানে দেখতে যে পারেন এই তালিকায় ধী সিনট্যাক্স, X এই দ্বারা পূর্ণ করা হয় তালিকায় এক নির্মাণ Sequencer এর গ্লোবাল মাপ. Connor HARRIS: হ্যা. মৌলিক সিনট্যাক্স তালিকায় comprehensions হয় জড়িত বন্ধনী, মূল্য কিছু ভেরিয়েবল, বার, ভেরিয়েবল সম্ভাব্য মান নিজেদের, বন্ধনী বন্ধ. এবং আপনি সেট নির্মাতা স্বরলিপি কাজ করেছি কিনা গণিত ক্লাসের কোন ধরণের মধ্যে, আপনি যেমন 2n সেট করে রাখতে পারে যে এন বা হয় এন, z হল. এই স্বরলিপি জিনিস একই ইঙ্গিতপূর্ণ হতে বোঝানো হয় যে গাণিতিক স্বরলিপি. STEPHEN KREWSON: আর আপনি যা করতে পারেন একাধিক predicates আবেদন একটি তালিকা এবং একাধিক ফিল্টার বেশ চমৎকার, যা ধী,. বীজগাণিতিক types-- আমরা এখানে দীর্ঘ গড়িমসি করা হবে না. একটি ভাল ধারণা নেই Haskell বা ভাল, সুস্পষ্ট ধারণা নিতে কিভাবে, বলুন, একটি ডিফল্ট একটি ফাংশন বা কিছু প্যারামিটার. পাইথন, এই বেশ সহজ. উপর সমান দিয়ে আপনি শুধু বলতে পারেন ফাংশন ঘোষণা, একটি ডিফল্ট মান যদি কেউ সরবরাহ করা হয়. মধ্যে Haskell, আপনি হয়তো পারা হয়তো টাইপ হয়তো ব্যবহার, যা হয় কিছুই লাগে অথবা টাইপ একটি মূল্য মাত্র. সুতরাং আমরা ড্রাম মেশিনের মধ্যে এই কাজে লাগান আমাদের ঐচ্ছিক ভলিউম দিতে মঞ্জুরি ড্রাম অংশ প্রতিটি প্যারামিটার. যে আমাদের EQ থাকার একটি উপায় দেয় সুতরাং বা একটি নির্দিষ্ট চ্যানেলে একটি ভলিউম. Connor HARRIS: ইন অন্যান্য Haskell উদাহরণ, আপনি হয়তো জন্য ব্যবহৃত দেখতে হতে পারে ব্যর্থ হতে পারে ফাংশন. এটি একটি সাধারণ এক. STEPHEN KREWSON: আর আপনাকে সরবরাহ করতে পারেন ডিফল্টভাবে ত্রুটি বার্তা কিছু সাজানোর. এবং যে যখন বিশেষ সুবিধাজনক আপনি মধ্যে Haskell আমি / হে করছেন. ঠাট যে হতে পারে. Connor HARRIS: অথবা একটি জন্য অনুরূপ উদাহরণ, মনে বিভাগ জড়িত একটি ফাংশন 0 হতে পারে যে একটি পরামিতির. আর যে কাজ করতে পারে হয়তো যাই হোক না কেন আসতে. 0 দ্বারা কোন বিভাগ নেই, তাই যদি, এটা শুধু যাই হোক না কেন আসতে হবে. সম্পতি দ্বারা যদি নেই 0, এটা কিছুই আসতে হবে ত্রুটি সংকেত একটি উপায় হিসেবে. এক ফলত কারণ Haskell এর খুব কঠোর টাইপিং কোন real-- আছে যে ব্যতিক্রম, মূলত, জবুথবু ত্রুটি পরিচালনার বিশ্রী. আর এই খুব এক এরকম সাধারণ ভাবে. STEPHEN KREWSON: তাই এখন আমরা পেতে অন্য মন-নমন জিনিস Haskell, সম্পর্কে যা প্যাটার্ন মেলা ও ফাংশন সংজ্ঞা. আমি গত স্লাইড আপনাকে দেখিয়েছি ধাপে ক্রম ঘোষণা একটি হতে পারে মান নিয়ে যা ফাংশন, তারপর কোন int, তারপর আপনি ints একটি তালিকা, তারপর একটা ক্রম ফেরৎ সঙ্গীত মান আছে সটীক পিচ এবং ভলিউম উভয় সঙ্গে. সুতরাং তিনটি আর্গুমেন্ট হতে পারে নিম্নলিখিত ভাবে মিলেছে প্যাটার্ন. আর আমরা সবসময়ই নিশ্চিত হতে চান প্রথম একটি বেস কেস বা প্রস্থানের ক্ষেত্রে না. আর এই আন্ডার শুধু ব্যাখ্যা করা যেতে পারে সেখানে যে কোনো মান মানে. আমরা ক্রম পদক্ষেপ একটি কল পেতে হলে তাই কিছু মান, কিছু অন্যান্য মান, এবং তারপর ফাঁকা তালিকা, আমরা কি চাই ফিরে যাও শুধু নীরবতা, বিশ্রাম 0 হয়. এবং পরিবর্তে যে এর একটি ফাঁকা তালিকা বা 0 হচ্ছে, আমরা করছি, কারণ এটা একটা বাকি 0 এর সঙ্গীত ধরনের সঙ্গে আচরণ, এবং সঙ্গীতের ফাঁকা তালিকা টাইপ ঠিক কোন সময়কাল একটি বিশ্রাম হয়. এটা কোন সঙ্গীত এর. আমরা একটি পদক্ষেপ পেতে এবং তারপর যদি আমরা দেখতে ভলিউম যুক্তি জন্য একটি ভী সঙ্গে ক্রম, তাক্বওয়া উপকরণের P যুক্তি, এবং তারপর এক্স এর একটি তালিকা. তারপর আমরা কিছু উপাদান কাজ. বিশেষ করে, আমরা আবেদন এই তালিকায় ধী, এবং আমরা কিছু সঞ্চালন হয়তো মান অপারেশন যাতে একটি সাংখ্যিক মান মধ্যে এটি চালু করতে এটা তারপর গণিত এবং ব্যবহার করা যেতে পারে উপকরণ নির্বাচন. আবার, এই একটু বিট ইচ্ছাকৃতভাবে inconcise শুধু সব অদ্ভুত জিনিষ দেখাতে আপনি যত মধ্যে Haskell করতে পারেন আপনার নিজের সময় এটা কটাক্ষপাত. ঠিক আছে. সুতরাং পরিশেষে আমরা পেয়ে থাকেন আমরা কি খুঁজে সেট কি, যা কিছু কম্পিউটার গান করতে হয়. তাই আমরা চেষ্টা করতে যাচ্ছেন Frere জ্যাক গান করতে. সুতরাং কিভাবে অনেক আছে Frere জ্যাক মধ্যে বাক্যাংশ? চার. গ্রেট. আর কি সুন্দর যে হয় তারা সব পুনরাবৃত্তি করছি দুটি যা বার একই পরিমাণ. তাই আমরা চার বাক্যাংশ অনূদিত প্রতিটি দুই বার পুনরাবৃত্তি. এবং বিশেষ করে, তারা একটি বৃত্তাকার মধ্যে আছেন. আর, অনেক আছে নানাভাবে বাস্তবায়ন কি মজা হতে পারে যে একটি বৃত্তাকার. আমি একটি মধ্যে তা সম্পন্ন করেছি সুন্দর এখানে সহজ উপায়, যা শুধু লাইন construct-- করতে হয় ফাংশন সঙ্গীত মানসহ একটি তালিকা প্রদর্শন করা হয় এবং অনুক্রমিক সহযোগ মধ্যে এটি সক্রিয় যে অনুক্রমিক সহযোগ প্রয়োগ করে অপারেটর. এবং তারপর আমি বিভিন্ন অংশে বিলম্ব উপার্জন করে তাদের বিশ্রাম দিয়ে শুরু. তাই আমি দুই ব্যবস্থা বিশ্রাম দিয়ে শুরু, এবং তারপর চার ব্যবস্থা একটি বাকি, এবং ছয় তারপর বিশ্রাম ব্যবস্থা, এবং তারপর বৃত্তাকার আমরা সব এই গান জানি, কাজ করে. আমরা দেখতে দুই টীকা বা গান মূল্যবোধের পরিবর্তন যে এই অনুক্রমিক মধ্যে অন্তর্ভুক্ত করা হয় সঙ্গীত উপাদানের ব্যবস্থা. আমরা একটি অ্যাড ভলিউম আছে. এই টীকা একটি ফাংশন একটি নির্দিষ্ট ভলিউম সঙ্গে গান. এই একটি ভাল উদাহরণ একটি MIDI সংকেত চলমান 0 থেকে 127, সাত বিট বহন করা যাবে যে তথ্য. আর then-- আমরা খুব এটা দেখেছি সংক্ষেপে, কিন্তু সাধারণ MIDI সব বিভিন্ন যন্ত্র তালিকায়. তাঁদের মধ্যে একজন পুরো অনেক আছে না. আপনি একটি ডিজিটাল অডিও ওয়ার্কস্টেশন ব্যবহার করা হলে, Ableton লাইভ বা প্রো সরঞ্জাম মত, একটি অবিশ্বাস্যভাবে ব্যাপকতর পরিসীমা নেই synthesizers এবং VST যন্ত্র. কিন্তু এখন MIDI স্ট্যান্ডার্ড শুধুমাত্র কয়েক, বা কয়েক ডজন আছে. আর তাদের মধ্যে কেউ কেউ মজার হয়. আমরা অভিনয় যদি আমি এটা মজা হবে উপকরণ MIDI উপকরণ হেলিকপ্টার, এবং তারপর বৃত্তাকার মাধ্যমে পরবর্তী পথ, আমরা এবং তারপর, একটি প্যাড synth করেনি এই মামুলি নেতৃত্ব বর্গক্ষেত্র তরঙ্গ synth, এবং তারপর ধীরে ধীরে ক্ষরণ ভয়েস যা একটি আমার খারাপ এখন MIDI অল্প অস্ফুট synthesizer, কিন্তু তারা ঠিক. এবং তারপর আমরা এই দিন দেখতে এবং Haskell থেকে সিনট্যাক্স, এবং তারপর আমরা বাজানো করছি একসাথে সব যন্ত্রাংশ সমান্তরাল সহযোগ অপারেটর সঙ্গে. এবং আমরা সম্ভবত এই কিছু দেখাতে পারে. এখানে কোড. আর আপনি সি দেখতে পারেন, একটি হতে চাই গলা সাফ এবং সেটিং এর অনেক আপনি আগে টেবিল কোড ভালো গান করতে পারে. অথবা অন্য কোন প্রোগ্রামিং ভাষা, আপনি সম্ভবত কোনো হক কিছু সাজানোর সঙ্গে যোগাযোগ করার জন্য আছে লাইব্রেরী বা এপিআই এবং সবকিছু সেট আপ, এবং তারপর পরিষ্কার করতে চাই. কিন্তু এখানে Haskell হয়, আমি একবার মনে আপনি অবিশ্বাস্যভাবে, তা পেতে আসে পাঠযোগ্য এবং খুব ভাবপূর্ণ. তাই বাস্তবায়নের নেই Frere জ্যাক এর. ঠিক আছে. এখন আমরা সঙ্ঘর্ষ যোগ করতে চান, এবং এই একটি সামান্য বিট Messier হয়. সুতরাং আসুন স্লাইড কটাক্ষপাত করা যাক. সুতরাং বড় ধারণা করা হয় তালিকা বা অংশের একটি গুচ্ছ. ঐ রোল মধ্যে মেশিনে, সেখানে আটটা সম্পর্কে সাধারণত ছিল 10 তাল বা আঘাত অংশে. এবং তারপর কৌশল একটি গুচ্ছ ব্যবহার. আর আমরা these-- ব্যবহার সম্পর্কে বিস্তারিত আলোচনা করেছি ভাঁজ, ফিল্টার, ল্যামডা ফাংশন, মান উৎপন্ন তালিকা ওভার ম্যাপ কিছু সীমার মধ্যে 1 R করতে, R, 16 হয় বা Sequencer মধ্যে 32 ধাপ. এবং যে তালিকায় একটি মান আছে তারপর যদি আমরা Sequencer মাধ্যমে চালাচ্ছেন হিসাবে, উপর এটি মাধ্যমে চলমান এবং ওভার, এটা মনে রাখবেন যে সক্রিয়, এবং যে নমুনা আলোড়ন পায়. এখানে সব বিভিন্ন অদ্ভুত উপায় আছে আমি নোট উৎপন্ন নিয়ে এসেছেন. আপনার নিজস্ব আধা সমষ্টি এটি ব্যবহার করে দেখুন. এটা শীতল ধ্বনি করব. সময় আমরা এই দিয়ে যাবেন, ব্যক্তিবিশেষ. কিন্তু এই মুহূর্তে জন্য, আমি অনুমান আমরা কি আমরা তা ডেমো উচিত. এর এই ঠিক যায় আশা করি. সুতরাং এই GHCI হয়. আর আমরা একটি ফাইল লোড করব আমি বলা song.lhs আছে, যা আমি শুধু আপনাকে দেখিয়েছি ফাইল. ঠিক আছে অসাধারণ. কনর তার আগে বলেন, এটা কম্পাইল, এটা চেক টাইপ, তাই আমি অনেক সহজ শ্বাস প্রশ্বাস নিতে পারেন. এটা আমার প্রথম তিরস্কার করা যাচ্ছে না. আমি আপনাকে কিছু দরকারী দেখাতে চান নি. আপনি যে একটি দেখতে পারেন লোড মডিউল 50 বলা. আপনি যে মডিউল ব্রাউজ করতে পারেন. আর এই এত সুন্দর অনুরুপ সম্পর্কে হয়তো তা Haskell নয় এ আপনি কি করছেন সফটওয়্যার উন্নয়ন বলা, কিন্তু আপনি অনেক কাজ করতে পারেন আপনার নিজস্ব মজার জিনিস. ও কর্মপ্রবাহ হিসাবে সত্যিই চমৎকার অন্য ভাষায় অনেক তুলনায়, আপনি সত্যিই একটি দেখতে পারেন কারণ কি ঘটছে পাঠযোগ্য পথ. তাই আমরা যদি আমরা আছে দেখতে সমস্ত এইসব বাক্যাংশ, যা গান পিচ তালিকা আছে, এবং তারপর আমরা বৃহত্তর কিছু এই বিল্ড আপ, যা একটি গান গান. এটি একটি বাদ্যযন্ত্র ইউনিট. এবং তারপর আমরা এই সব ভূমিকা রাখতে পারে একটি ফাংশন বলা খেলার সঙ্গীত সঙ্গে. এখানে তার নিচে দেখতে পারেন. যা শুধু খেলতে হয়. আমি সম্পর্কে কথা বলতে না কথাই উচিত সর্বত্র যে এই ডলার চিহ্ন. ডলার চিহ্ন অন্য পোতা অপারেটর. কিন্তু এটা সর্বনিম্ন প্রাধান্য আছে যা কার্যকরভাবে যে কোন অপারেটর, এর উপর যে সবকিছু মানে ডলার চিহ্ন বাম এবং ডলার চিহ্ন ডান, কোরআনের পূর্বে আমি মূল্যায়ন করতে যাচ্ছেন. তাই এটি অন্য মত সাজানোর প্রথম বন্ধনী যোগ প্রণালী. Connor HARRIS: এটা মূলত ফাংশন রচনা. আর আপনার যদি থাকতে না নিশ্চিত করে আপনি ফাংশন পাশ বা পোতা হয় আছে উভয় পাশ দিয়ে অপারেটরদের, তারা না করবে না এটা জুড়ে এবং আপনাকে দিতে অপ্রত্যাশিত ফলাফল. STEPHEN KREWSON: সুতরাং আমরা can-- যে ব্যবহার, আমরা কল করতে পারেন. প্রথমত, আমরা ড্রামস ছাড়া বাজাতে পারবেন. যে, হেলিকপ্টার এখন MIDI হেলিকপ্টার. [সঙ্গীত বাজাচ্ছি] বর্গাকার হাওয়া বইছে. ভয়েস ক্ষরান. আর আপনি কি সত্যিই এই সঙ্গে বন্য যেতে পারেন. আমি খুবই সহজ এক বাছাই, আমি জানতাম কারণ আমি বন্ধ দান্ত দিয়া ফুটা করা উচিত নয় চিবানোর তার চেয়ে বেশী. শুধু সুন্দর এটা সহজ রাখা প্রধান ধারনা দেখাতে. কিন্তু তারপর আমি চাই, আমরা করেছি ছিল এই কিছু ড্রামস যোগ পেয়েছিলাম. শুধু এই একটি কারণ অল্প দুর্ভেদ্য, এবং আমি ব্যবহার করা হয়নি ড্রাম অংশ নাম, তারা কারণ আমি them-- ম্যাপ যে গণিত বর্গ অংশ, আমি ints তাদের ম্যাপ. এক একটি খাদ ড্রাম ভালো হয়. জিরো হিসাবে ভাল. সাত একটি উচ্চ টুপি হয়. এবং এখানে নিচে যেখানে ফাংশন, একটি সামান্য আরো র্যান্ডম পান এই Conga ড্রামস মত. তাই হয়তো আপনি একটি মনে করেন সম্পর্কে যদি একটি ড্রাম মেশিন বাস্তবায়ন মজা উপায় খুব সুশৃঙ্খল ব্যবহার করা হয় আপনার খাদ ড্রাম নিদর্শন. সুতরাং উদাহরণস্বরূপ, ওভার ফিল্টারিং ফেরত দেয় যে সবকিছু তালিকা এটা মডিউল 04 গৃহীত যখন একটি 1. তাই আমি 1, 5, 9, 13, 17-- তাই এই পেতে ভাষার পরিমাপ প্রথম বীট হয়. এবং তারপর এই একই জিনিস দুটি ধাপে উপর স্থানান্তরিত. সুতরাং যে offbeat এর. তাই এই হতে হবে একটি উচ্চ টুপি ভালো কিছু. এবং তারপর আবার নিচে এখানে, এটা একটা সামান্য র্যান্ডম আমরা Conga ড্রামস করছেন কারণ. আর আমি খুব, এখানে কিছু maracas নিচে আছে. তাই আমি, খেলার ড্রাম মেশিন পেরেছিলাম কিন্তু এটি চিরকালের জন্য যেতে হবে, এবং এটি আপ দখল শুরু হতে পারে আমার সিস্টেমে সব স্মৃতি. তাই আমি এই ফাংশন কল করব , হিসাবে আমরা দেখতে পাবেন, যা গান, খেলতে ছিন্ন সমান্তরাল রচনা ব্যবহার আমাদের সামান্য Frere জ্যাক গান খেলতে এই অদ্ভুত ড্রাম মেশিন বরাবর. তাই এর কটাক্ষপাত করা যাক. এবং এর উন্নতি না দয়া করে আমার সব ড্রাম অংশ ব্যবস্থা. যেগুলি আমার বিশিষ্টতা, কিন্তু আমি এরকম অনেক মজার ছিল. [সঙ্গীত বাজাচ্ছি] অবশ্যই তাই, এই সব হয় মজা হিসাবে একটি সামান্য বিট না আমরা তা রূপান্তর করতে পারবেন না তাহলে একটি স্কোর তাই হয়তো এটা ব্যাখ্যা করা যেতে পারে একটি মানবিক অভিনয়কারী দ্বারা. তাই আমি এখানে এটা চালানো হবে না. আমি ইতিমধ্যে ফাইল তৈরি করেছেন. আপনি একটি আছে দেখতে পারেন ডট LilyPond ফাইলটি এবং এই আমার segue বেশি হতে হবে Connor-- এবং একটি বিন্দু MIDI ফাইল, এবং কি একটি বিন্দু পিডিএফ ফাইল, যা LilyPond পরিণামে উৎপন্ন হবে. কিন্তু এগুলি যারা স্ক্রিপ্ট হয়, এরপর আমি আবার শুধু তাদের সাহায্যে অপশনের সাথে চালানো. আপনি এই পর্যন্ত পেতে এবং সঙ্গে চলমান তাহলে Euterpea, আপনি একটি MIDI ফাইল তৈরি করতে পারেন. এবং তারপর MIDI ফাইল থেকে এই পেজ 2LY প্রোগ্রামের সাথে, আপনি একটি লিলি উৎপন্ন করতে পারে পুকুরের ফাইল, এবং তারপর আপনি স্কোর একটি পিডিএফ তৈরি করতে পারেন. আর আমরা এই সময়ে কটাক্ষপাত করা উচিত. সুতরাং কনর সম্ভবত দেখাতে হবে আপনি কিভাবে এই ভাল টীকা কিন্তু এই Frere জ্যাক হিসাবে হয় Euterpea আমার দ্বারা উত্পন্ন. এটা শুধু সি আমি মূর্তিযুক্ত উচিত হচ্ছে এটা প্রকৃতপক্ষে এর হ্যাক কি আউট. কিন্তু যে জন্য পাইপলাইন আপনি যে যে কাজ করতে কিভাবে. এর LilyPond সম্পর্কে আরো কথা বলা যাক. Connor HARRIS: ঠিক আছে দেখা যাক. আপনি Haskell জানুন উল্লেখ করেছেন? STEPHEN KREWSON: ওহ. পরীক্ষা করে দেখুন আপনি Haskell জানুন. এটা সম্পদ আছে. আমি শুরু কিভাবে যে শেখার, এবং এটা ভাল. মূক না শেখার. Connor HARRIS: সুতরাং এটি অনলাইন. তাই নামে একটি লোক [শ্রবণাতীত] learnyouahaskell.com, কোন স্পেস. ব্যাকরণ অসুস্থ. STEPHEN KREWSON: এটা খুব, সচিত্র এর. Connor HARRIS: LilyPond কি তাই হয়? এটি একটি ঘোষণামূলক প্রোগ্রামিং এর গান ছাপাখানার অক্ষরস্থাপন ভাষা. তাই আপনি যা করতে পারেন declarative-- এইচটিএমএল ভালো জিনিস মনে, আপনি না হন, যেখানে বলছে এইচটিএমএল কিভাবে ওয়েব ব্রাউজার উচিত বলে না রেন্ডার পেজ ধাপে ধাপে. এটা শুধু এই বলছে একটি টেক্সচুয়াল বিবরণ আপনি যা চান তা নিয়ে পাতা মত চেহারা. এবং তারপর এটি একটি প্রোগ্রাম যে এই ভাষা প্রনয়ন, অথবা এটা আসলে তারপর তার মধ্যে পড়তে এবং আপনার জন্য ছাপাখানার অক্ষরস্থাপন আছে, এবং এটি এই spits আউট বিস্ময়কর খুঁজছেন পিডিএফ স্কোর. এছাড়াও আপনি PNG ফরম্যাটে বা যাই হোক না কেন পেতে পারেন. একটি ভালো উপায় মনে করা এই উপমা দ্বারা হয় , ক্ষীর সাজানোর LillyPond মত হয় কিন্তু শুধু সাধারণ ছাপাখানার অক্ষরস্থাপন জন্য. সুতরাং পরিবর্তে এটা না র কি আপনি দেখুন, WYSIWYG, আপনি বলার মত, পান কি লয়, বা Sibelius, বা মাইক্রোসফট ওয়ার্ড, আপনি টাইপ করতে পারেন যেখানে রিয়েল টাইমে বাস্তব সময় এবং খসড়া জিনিষ এবং তাত্ক্ষণিকভাবে পরিবর্তন দেখতে. এটা টেক্সট ভিত্তিক হয়. আপনি আপনার কম্পাইল করতে হবে একটি পৃথক প্রোগ্রাম ব্যবহার করে স্কোর এবং পরে প্রতিটি PDF ফাইলের শেষে নামা. এই একটু কম হয় যদি আপনি ব্যবহারের জন্য সুবিধাজনক সরাসরি লিখতে চেষ্টা আপনি আছেন এবং একটি স্কোর মধ্যে কম্পিউটারে রচনা করার চেষ্টা করছে. কিন্তু অনেক আছে এটা জন্য সুবিধার. এক, এটি একটি অনেক nicer চেহারা না LillyPond আসলে পারেন কারণ এটা করতে সময় লাগবে সঠিকভাবে লেআউট সিদ্ধান্ত, আছে যা Sibelius বা লয়, অসদৃশ তাই আপোস আলগোরিদিম করতে তারা প্রদর্শন করতে পারে রিয়েল টাইমে কিছু. সুতরাং কেন LilyPond-- হয় কম্পিউটার গ্রাফিক্স কঠিন. আপনি গান নিয়ে কিছু করছেন তাহলে এবং আপনি স্কোর আউট লিখতে চান, আপনি লিখতে চান না নিজেকে দ্বারা সবকিছু আউট আঁকা কিভাবে দিয়ে শুরু কর্মীরা এবং কিভাবে নোটপ্যাড আঁকা. এটা অনেক কঠিন. এটা আগেই ঘটে গেছে. আপনি সূক্ষ্ম. আপনি লয় বা Sibelius ব্যবহার করতে চান তাহলে, সেগুলো জন্য ফাইল ফরম্যাটের অত্যন্ত জটিল, এবং আপনি করতে পারেন না সত্যিই প্রোগ্রামের মাধ্যমে তাদের ব্যবহার. আপনি লয় সঙ্গে Sibelius পর্যন্ত খুলতে পারে এবং ফাইল যান, রপ্তানি পিডিএফ হিসেবে নিজেকে, কিন্তু আপনি কি সত্যিই না পারেন একটি স্ক্রিপ্ট থেকে যে কল. LillyPond, আপনি কল করতে পারেন যারা স্ক্রিপ্ট থেকে. আপনি সহজেই পুনরুক্তি পারে LaTeX দিয়ে LillyPond. আমি যেতে যে অনেক সময় থাকবে না এই মুহূর্তে এই প্রযুক্তির মধ্যে, কিন্তু তারা অস্তিত্ব. আপনি তাকান করতে চান তাহলে একটি LillyPond বইয়ের মধ্যে, এটা দিয়ে আসে যে একটি প্রোগ্রাম আপনার LillyPond বন্টন, এবং এটা iterating জন্য তরুক্ষীর LillyPond টুকরা আপনি কিছু করতে চান তাহলে একটি বড় সংগীততত্ত্ব দস্তাবেজের মত উদাহরণস্বরূপ উদাহরণ, সঙ্গে. এবং এটি একটি ভাল দক্ষতা আছে আপনি কিছু করছেন তাহলে জীবন সঙ্গীত, না শুধু CS50 সঙ্গে. আমি সব জন্য LillyPond ব্যবহার করেছি আমার রচনা প্রকল্পের আমি মূলত ছিল যেহেতু একটি হাই স্কুলে সিনিয়র. তাই এখানে কিছু সহজ উদাহরণ আছে. এটি মূলত প্রতিনিধি অসুবিধা স্তরের যে অধিকাংশ লোক would তারা চেষ্টা করছিলেন তা মুখোমুখি সহজ প্রকল্পের জন্য LilyPond ব্যবহার করতে. এই প্রথম এক শুরুতে বাখ দ্বারা একটি Chorale মঙ্গলাচরণ করতে. এই নীচে এক একটি উদ্ধৃতাংশ আমার নিজের কাজ এক থেকে, এবং এটা দেখানোর জন্য শুধু আছে [শ্রবণাতীত] মত আপনি কিছু একই একাধিক লাইন নির্বাণ কর্মী, কিভাবে গীতধর্মী undersetting কাজ. গীতধর্মী underlays খুব যে একটা জিনিস আছে ঐকতানিক সঙ্গীত জন্য LilyPond ব্যবহার করা সহজ. আর যদি তাই হয় তাহলে আরো কিছু আছে এখানে জটিল উদাহরণ. এই সমস্ত মধ্যে সম্পন্ন করা হয় LilyPond এবং তারা সম্ভবপর আছেন. এই প্রথম থেকে উদ্ধৃতাংশ হয় [শ্রবণাতীত] [শ্রবণাতীত] দ্বারা. আর এই [শ্রবণাতীত] থেকে সোলো খাদ জন্য এক টুকরা [শ্রবণাতীত] দ্বারা বাঁশি, যারা একটি longtime-- যিনি একটি দীর্ঘদিনের সদস্য ছিলেন এখানে গান ডিপার্টমেন্ট, আমি মনে করি. আমি মনে করি তিনি বন্ধ চলে গেছে যেখানে নিশ্চিত নই. কিন্তু তিনি হার্ভার্ড এর উপদেষ্টা ছিলেন একটি দীর্ঘ সময় জন্য রচনাকারী এসোসিয়েশন. চমৎকার মানুষ. তখন তিনি খুব আছে যে কিছু গান লিখেছেন জটিল স্বরলিপি যে LillyPond তবু খুব সুন্দরভাবে পরিচালনা করতে পারেন. তাই শুধু আপনার একটা ধারনা দিতে কি এই জিনিস এর ক্ষমতা তাই are-- LillyPond এর internals খুবই জটিল আকার ধারণ. এবং এটা আপনার জন্য ব্যবহার করতে পারেন একটি দীর্ঘ সময়, সহ কিছু প্রশংসনীয় জটিল জন্য কিছু ছাড়া সত্যিই তাদের সম্পর্কে অনেক কিছু জানা থাকার. কিন্তু মৌলিক ধারণা উপর যে হয় সর্বনিম্ন স্তর, LillyPonds পরমাণু নোট হয়. নোট একটি ধারণ প্রেক্ষাপটে বলা কণ্ঠ. ভয়েস প্রেক্ষাপটে তাই মূলত অনুরূপ Polyphony মধ্যে একটি একক লাইন. এবং তারপর প্রসঙ্গ হতে পারে hierarchically অন্তর্ভুক্ত উচ্চ স্তরের বেশী যে স্কোর কর্মীরা প্রতিনিধিত্ব ভালো বা বাইরে কাজ পিয়ানো কর্মীরা বা গায়কদল কর্মীরা, এবং তারপর অবশেষে সমগ্র স্কোর প্রেক্ষিতে. এবং আপনি আসলে প্রদক্ষিণ করতে পারেন একটি বই একাধিক স্কোর. এবং প্রতি প্রেক্ষাপটে আছে একটি সংযুক্ত Engravers সংখ্যা. আপনি মাধ্যমে সন্ধান যদি একটি প্রসঙ্গের বিষয়বস্তু এবং একটি নির্দিষ্ট প্রতীক বা প্রিন্ট প্রয়োজনীয় হিসাবে চিহ্ন নির্দিষ্ট বর্গ. ভাষার ভয়েস প্রেক্ষাপটে তাই, [শ্রবণাতীত] নোট আছে মূলত একটি ফাংশন যে খোদকার বা সব নোট বাহির লিখেছেন যে একটি বস্তু একটি পৃষ্ঠার ডান অংশের উপর মাথা. তারপর একটি চিড় খোদকার, আছে যা কর্মীদের উপর ছিদ্র খুঁজে লিখেছেন. তারপর একটি মাত্রামাপক আছে চিহ্ন খোদকার যে একটি স্কোর মাত্রামাপক চিহ্ন খুঁজে লিখেছেন. এবং এই সব সুন্দর মাপসই ভাল অনুক্রমের মধ্যে. এবং এটি খুব, খুব, খুব কী স্বনির্ধারিত, যা আপনার প্রয়োজন আপনি যে ভালো জিনিস পেতে চান. সুতরাং সমস্ত প্রেক্ষিতে একটি আছে বিভিন্ন গুণাবলী অনেক আপনি সব কিছুর জন্য পরিবর্তন করতে পারে বিভিন্ন ফন্ট ফাঁক থেকে জিনিস মাপ নির্বাচন. এমনকি আপনি কাজ করতে চান তাহলে আরো জটিল কিছু একটি এমবেডেড স্ক্রিপ্টিং ভাষা আছে. তারা প্রকল্প ব্যবহার যা পাতার মর্মর উপভাষা হল. এই সম্ভবত না আপনাকে কিছু বলতে চাইছেন. কিন্তু মূলত, একটি প্রকল্প অন্য ফাংশানাল প্রোগ্রামিং ভাষা, বা আরো কম. STEPHEN KREWSON: টাই-এ. Connor HARRIS: হ্যা. এটা একটা ভাল টাই-এর, আমি অনুমান. এবং এটি একটি শিক্ষণ ভাষা হিসেবে ব্যবহৃত হচ্ছে, আসলে, গণ Ave নগরী নিচে এমআইটিতে. আর এটা LillyPond জন্য খুব সুবিধাজনক বিভিন্ন প্রযুক্তিগত কারণের জন্য. এবং যাতে আপনি সহজ করতে চান তাহলে কন্ডিশন উপর নির্ভরশীল কৌতুক, example-- জন্য নির্দিষ্ট আছে পূরণ করে একটি স্কোর অবস্থা, যাও পরিবর্তন করতে বিন্যাস বা তারপর whatnot-- যারা যেখানে আছে. তারা জটিল আছেন. তাই এখানে একটি চমত্কার সহজ কোড নমুনা. এটা পাঁচটি লাইন. মূলত, আমি দুই কর্মীরা সংজ্ঞা করছি. এটা 3/4 এর. প্রথম কর্মীদের একটি আছে লয় চিহ্ন সংযুক্ত, কিন্তু যে আসলে যাচ্ছে পুরো স্কোর উপর যেতে, লয় চিহ্ন কারণ স্কোর স্তরে হয়. মাত্রামাপক চিহ্ন খোদকার কনটেক্সট স্কোর সংযুক্ত করা হয়. বিভিন্ন নির্দেশক আছে, [শ্রবণাতীত] খোদকার কারণ কর্মীরা সংযুক্ত করা হয়. আপনি আসলে কি করতে পারেন. আমি লিখেছি নমুনা আসলে সি প্রধান, তবে এটা ঠিক এর এর আপনি থাকতে পারে প্রকট বিভিন্ন কর্মীরা বিভিন্ন নির্দেশক. এবং মৌলিক সিনট্যাক্স আপনি লিখতে হয় ই, এফ, জি, যাই হোক না কেন সঙ্গে নাম রাখবেন. আপনি accidentals করতে চান আপনি হয় বা ES প্রত্যয়. এই ডাচ থেকে হয় musicological নিয়মাবলী. এবং অষ্টক অত্যন্ত করতে, আপনাকে ব্যবহার করতে হবে এই চিহ্ন, কমা বা ঊর্ধকমা টিক্. আপেক্ষিক শুধু মানে আপনি একটি নোট আছে যাই হোক না কেন, এটি স্বয়ংক্রিয়ভাবে মধ্যে plaec করা হবে পূর্ববর্তী একের নিকটস্থ অষ্টক. এবং আপনার চেয়ে আরো ঝাঁপ চান তাহলে একটি একটি পঞ্চম বা more-- বলতে fifth-- তারপর আপনি [শ্রবণাতীত] ব্যবহার আছে. কিন্তু অন্যথায়, আপনি করতে হবে না প্রতিটি নোট অষ্টক উল্লেখ করুন. এবং আপেক্ষিক সি, প্রধানমন্ত্রী, এবং সি, আপনি শুধু মধ্যম সি উল্লেখ এবং বেস সি, বিশেষ করে প্রথম নোট. তারপর আপনি সংগঠিত যে এইসব কর্মীরা আছে এই দুটি কণ্ঠ বা গান নমুনা, এবং আপনি একটি স্কোর আছে. এবং যে ভালো দেখায়. আপনি সময় নিতে চান LillyPond যে নমুনা কপি পূর্ববর্তী উপর কোড এখানে নিচে স্লাইড, এবং আপনি LillyPond নিজের জন্য লিখতে পারেন. আমি মনে করি আমরা কিছু পেয়েছেন যে এই মত অনেক দেখায়. তাই অন্য প্রযুক্তি আছে বলা সঙ্গীত এক্সএমএল রক্ষণাবেক্ষণ সম্পূর্ণ ভিন্ন মানুষ. এক্সএমএল একটি টেক্সচুয়াল তথ্য কাঠামো আমি তথ্য বলতে কাঠামো বলা উচিত নয় রূপক ম্যাপ সাজান. এবং এটি রাখা ডিজাইন হায়ারারকিকাল তথ্য খুব ভাল. এইচটিএমএল, উদাহরণস্বরূপ, XML একটি প্রকার. আর আপনি এক্সএমএল কারণ বলতে পারেন তারা ছিল সব কোণ বন্ধনী এবং কোণ বন্ধনী স্ল্যাশ চিহ্ন যে শো ডাটা ক্ষেত্র. আমি একটি কোড আছে না সঙ্গীত এক্সএমএল থেকে যেমন. আপনি এটা নিজেকে খুঁজে পেতে পারেন. মূলত, কারণ আপনি চাইতে পারেন অন্তর্বর্তী পর্যায় হিসেবে XML ব্যবহার প্রথম সব, এটি, হয় একটি ইন্টারচেঞ্জ ফরম্যাট জন্য মূলত আমি বলা উচিত নয় every-- বিভিন্ন স্কোর ভাষার, কিন্তু অনেক লেখকদের. আপনি গান লিখতে হলে তাই এক্সএমএল, শুধুমাত্র LillyPond পারেন এই auxilary সাহায্যে এটি পড়তে প্রোগ্রাম, LY সঙ্গীত এক্সএমএল বলা কিন্তু লয় পড়তে পারেন এটা, Sibelius এটা পড়তে পারেন. কিভাবে আপনার অভ্যন্তরীণ বস্তুর উপর নির্ভর করে অনুক্রমের, সঙ্গীত প্রতিনিধিত্বমূলক জন্য কাজ করে লেখে এটা সহজ হতে পারে LillyPond চেয়ে গান এক্সএমএল এবং শুধু গান এক্সএমএল উপর নির্ভর LY রূপান্তর করতে. আমি [শ্রবণাতীত] সঙ্গীত এক্সএমএল আছে তা মনে করি না. STEPHEN KREWSON: এটা না. কেউ যদিও, এটা উপর কাজ করছে. Connor HARRIS: ঠিক আছে. Euterpea একটি নেই এখনো সঙ্গীত এক্সএমএল আউটপুট ফাংশন. আপনি একটি প্রকল্প চূড়ান্ত ধারণা চান, হয়তো বলছি সঙ্গে স্পর্শ পেতে স্টিফেন জানে যে, ও তারা আপনার সাহায্য করতে পারে. STEPHEN KREWSON: আমি যে চাই. Connor HARRIS: এছাড়াও, মূলত, ভাষার প্রোগ্রামিং ল্যাঙ্গোয়েজ যে তার লবণ মূল্য ইতিমধ্যে একটি XML লাইব্রেরি আছে, তাই আপনি অভ্যন্তরীণভাবে সব রূপান্তর করতে পারেন কিছু বস্তুর মধ্যে আপনার সঙ্গীতের XML লাইব্রেরি লিখতে পারেন যে যে কম প্রয়োজন হবে আউট আপনার অভ্যন্তরীণ কাঠামো পরিবর্তন যাই হোক না কেন এর জন্য গান আপনি বস্তু এটা লেখার চেয়ে লিখতে চান সরাসরি LillyPond যোগ দেন. তারপর শুধু এক্সএমএল সঙ্গে সঙ্গে এটি প্রিন্ট আউট আপনার ভাষা এক্সএমএল গ্রন্থাগার, এটা যে নিশ্চয়তা দেবে যা সিনট্যাক্স সঠিক এবং সবকিছু এবং তারপর LillyPond রূপান্তর করুন. তাই প্রযুক্তির আপনি চাইতে পারেন আপনি কিছু করছেন তাহলে দেখব এটার মত. [শ্রবণাতীত], অন্য auxilarry প্রযুক্তি. এই টেক ওয়ার্কস মূলত বা LillyPond জন্য টেক স্টুডিও. সুতরাং এটা দিয়ে সাহায্য প্রস্তাব টেমপ্লেট সঙ্গে সিনট্যাক্স, বিভিন্ন সাধারণ জন্য যন্ত্রের সমন্বয়. এটা তাই দেখার বিভক্ত পর্দা পারবেন আপনি একটি উইন্ডোতে আপনার কোড থাকতে পারে এবং অন্য একটি উইন্ডোতে পিডিএফ ও পিডিএফ এ জায়গা ক্লিক প্রাসঙ্গিক ঝাঁপ আপনার সোর্স কোড দাগ. আপনি আসলে হন তাহলে এই অধিক ফলপ্রসূ লেখার LillyPond ফাইল নিজেকে আপনি উৎপাদিত করছি চেয়ে তাদের প্রোগ্রামের মাধ্যমে. কিন্তু আবার, এটা দরকারী কিছু আছে. গ্রেট. আরেকটি resources-- আমি শুধু হবে খুব দ্রুত এই মধ্য দিয়ে যেতে. LillyPond manuals-- LillyPond হয়েছে তার ওয়েবসাইটে চমৎকার ডকুমেন্টেশন. তারা একটি টিউটোরিয়াল আছে. তারা একটি সিনট্যাক্স রেফারেন্স আছে. তারা টুকরো শত শত আছে বিভিন্ন ছোট জিনিষ জন্য ইয়ো প্রকট না প্রয়োজন হতে পারে বিভিন্ন ক্ষমতা. আপনি ব্যবহার করতে চান তাহলে স্ক্রিপ্টিং ভাষা বা আরো ব্যাপক করতে কাস্টমাইজেশন, তারপর আছে internals যে URL এ রেফারেন্স. আপনি গান XML ব্যবহার করতে চান তাহলে, আছে যে URL, musicxml.com/tutorial. এবং তারপর শুরু স্কীম জানার জন্য প্রয়োজন হলে আপনি আসলে ব্যবহার করতে চান, কারণ LillyPond স্ক্রিপ্টিং সুবিধা, তারপর একটি [শ্রবণাতীত] বলা আছে স্ট্রাকচার্ড ব্যাখ্যা কম্পিউটার প্রোগ্রাম, যা না শুধুমাত্র দ্বিতীয় কখনও লিখে সর্বশ্রেষ্ঠ সি এস পাঠ্যপুস্তক আপনি জানতে চান তাহলে পরে আমাকে খুঁজে আমি সর্বশ্রেষ্ঠ এক হচ্ছে ÑÑ মনে কি কিন্তু এটি একটি খুব ভাল সঠিক ভাষা পরিচিতি. আপনি বেশী প্রয়োজন হবে না প্রথম কয়েক বিভাগে. এবং যে এটি. কোন প্রশ্ন? ছাত্র: আমি কোথা থেকে ডাউনলোড করতে পারেন আপনার উত্পন্ন Frere জ্যাক তাই আমি আমার আইপড এটা করা যেতে পারে? STEPHEN KREWSON: হ্যাঁ, আপনি লিখতে পারেন Euterpea কিছু WAV ফাইল আউট. এবং আপনার কোড আছে. এটা GitHub উপর এর. আপনার নিজস্ব বৈচিত্র করুন এবং CS50 মধুচক্র মন দ্বারা Frere জ্যাক. এটা ভাল হবে. Connor HARRIS: অন্য কেউ? STEPHEN KREWSON: আমরা প্রয়োজন খুব একটা ভাল খাদ ড্রাম,. এটা খুব খারাপ. ছাত্র: Euterpea না শুধুমাত্র আছে ধাতু সহযোগ উপাদান এর দিকে, কিন্তু signal-- STEPHEN KREWSON: হ্যাঁ. বস্তুত, কাজ আমি যখন আমি Euterpea করেছিল আপাততঃ একটি আছে গ্রহণ ইয়েল এ কোর্সে স্নাতক যে এটিকে শব্দ সংশ্লেষণ ছিল ব্যবহার. সুতরাং একটি সত্যিই আছে তীরচিহ্ন ব্যবহার করে চমৎকার ভাবে এবং আমরা দেখেছি স্বরলিপি কিছু সংকেত ফাংশন একসঙ্গে রচনা. সবচেয়ে জন্য বিশেষ, খাদ মধ্যে তাদের শুধু একটি সহজ সাইন ওয়েভ হয়. কিন্তু আপনি সেই রচনা শুরু হলে অদ্ভুত কর্মসূচি উপায়ে, আপনি পাগল শব্দ পেতে পারেন অদ্ভুত ক্যাসকেড মত প্রভাব. আপনি খুব বালুকাময় তৈরি করতে পারেন মড্যুলেশন অনেকটা সঙ্গে শোনাচ্ছে. আমি ঝুরা উপর একটি প্রকল্প করেনি যা সংশ্লেষণ, কোথাও এফএম এবং স্যাম্পলিং মধ্যে. আপনি, খুব ছোট নিতে সামান্য নমুনা, এবং তারপর কিছু সাজানোর সঙ্গে তাদের একত্রিত স্বরলিপি এবং সমৃদ্ধ একটি শব্দ বিল্ড আপ. আমরা তাই, শারীরিক মডেলিং করেনি পদার্থবিদ্যা সম্পর্কে চিন্তা করার চেষ্টা এবং ভালো কিছু এর psychoacoustics শিঙা, এবং পথ সম্পর্কে চিন্তা শব্দ বন্ধ প্রাণচঞ্চল হয় শিঙার বেল এর এবং শ্রবণশক্তি রুম ও মডেলিং মৌলিক অসিলেটর সঙ্গে যে. Connor HARRIS: ধন্যবাদ এত. আসার জন্য ধন্যবাদ. আর আমি সবসময় রাজী নই ইমেইলে দ্বারা প্রশ্ন করা connorharris@college.harvard.edu. STEPHEN KREWSON: হ্যা. stephen.krewson@yale.edu. কুল.