1 00:00:00,000 --> 00:00:05,180 2 00:00:05,180 --> 00:00:05,930 CONNOR HARRIS: Hi. 3 00:00:05,930 --> 00:00:06,820 Ég er Connor Harris. 4 00:00:06,820 --> 00:00:09,729 Ég er CS50 CA í Harvard. 5 00:00:09,729 --> 00:00:11,270 STEPHEN KREWSON: Ég er Stephen Krewson. 6 00:00:11,270 --> 00:00:12,582 Ég er TF fyrir CS50 Yale. 7 00:00:12,582 --> 00:00:15,790 CONNOR HARRIS: Og við erum að fara að tala um einhverja tækni sem þú gætir 8 00:00:15,790 --> 00:00:18,880 vilt nota ef þú hefur áhuga í að gera lokaverkefni eða í raun 9 00:00:18,880 --> 00:00:20,920 nokkuð með tónlist. 10 00:00:20,920 --> 00:00:24,400 Við erum að fara að vera með áherslu á fyrst tungumál forritun heitir Haskell. 11 00:00:24,400 --> 00:00:26,280 Það er hagnýtur tungumál, þannig að hugmyndafræði 12 00:00:26,280 --> 00:00:29,620 er mjög mismunandi frá C eða PHP eða önnur brýnar tungumál 13 00:00:29,620 --> 00:00:33,450 sem þú hefur notað þegar, og þá sérstaklega á bókasafni skrifað í Haskell 14 00:00:33,450 --> 00:00:40,240 heitir Euterpea, sem getur hjálpað fólki með að skrifa tónlist virkni, 15 00:00:40,240 --> 00:00:40,780 grundvallaratriðum. 16 00:00:40,780 --> 00:00:43,400 Og Stephen mun ganga þú í í miklu dæmi um það. 17 00:00:43,400 --> 00:00:46,423 >> Eftir þetta, ég kynna þig eitthvað sem kallast LillyPond, sem 18 00:00:46,423 --> 00:00:48,370 er tækni fyrir typesetting tónlist. 19 00:00:48,370 --> 00:00:50,830 Það er tegund af eins og LaTeX fyrir tónlist ef einhver ykkar 20 00:00:50,830 --> 00:00:57,530 hafa notað LaTeX fyrir stærðfræði flokkum eða aðrir flokkar P setja eða hvað hefur þú. 21 00:00:57,530 --> 00:01:00,440 Og svo ég ætla að gefa þér aftur, nokkur einföld dæmi um það 22 00:01:00,440 --> 00:01:03,640 og benda þér á almenna Átt sumum betri auðlindum. 23 00:01:03,640 --> 00:01:04,319 >> STEPHEN KREWSON: In viðbót, við héldum það 24 00:01:04,319 --> 00:01:06,720 væri flott að setja upp smá vísbendingar 25 00:01:06,720 --> 00:01:10,780 átt leiðslum milli Euterpea-mynda MIDI skrár 26 00:01:10,780 --> 00:01:13,910 í LillyPond, þannig að við bjóðum sumir kennsla á forskriftir 27 00:01:13,910 --> 00:01:16,310 að gera það sem eru veitt með LillyPond 28 00:01:16,310 --> 00:01:19,160 bara til að halda því opinn uppspretta og fá leiðsla fara. 29 00:01:19,160 --> 00:01:20,910 CONNOR HARRIS: Aftur, við ættum að leggja áherslu á, 30 00:01:20,910 --> 00:01:23,100 þessar tvær tækni, þú þarft ekki að nota þá saman. 31 00:01:23,100 --> 00:01:25,370 Þeir eru ekki hönnuð til að vinna saman, þó þeir gera mjög vel. 32 00:01:25,370 --> 00:01:26,362 >> STEPHEN KREWSON: Hægri. 33 00:01:26,362 --> 00:01:30,116 Og algerlega frjáls. 34 00:01:30,116 --> 00:01:32,240 CONNOR HARRIS: So Viðurkenningar, bara lesa það. 35 00:01:32,240 --> 00:01:33,406 STEPHEN KREWSON: verðskuldaða athygli. 36 00:01:33,406 --> 00:01:36,360 Þökk sé þeim fólkinu. 37 00:01:36,360 --> 00:01:39,180 Þetta ég sitja lengi á bara um stund. 38 00:01:39,180 --> 00:01:41,560 The embættisvígsla aðferð er svolítið erfiður. 39 00:01:41,560 --> 00:01:45,420 Við höfum a lesið mér á GitHub að þú getur að líta á. 40 00:01:45,420 --> 00:01:47,840 Bara sendu mér tölvupóst ef þú hefur einhverjar spurningar. 41 00:01:47,840 --> 00:01:52,829 En við munum keyra þetta undir þeirri forsendu að þetta er að vinna fyrir alla. 42 00:01:52,829 --> 00:01:55,620 CONNOR HARRIS: Og ef þú getur ekki fá LillyPond að vinna, ekki máli. 43 00:01:55,620 --> 00:02:00,139 Það er engin lifandi samantekt sem mun taka þátt, að minnsta kosti á minn endir. 44 00:02:00,139 --> 00:02:02,930 STEPHEN KREWSON: Haskell og LillyPond ætti bæði hafa installers. 45 00:02:02,930 --> 00:02:08,497 Euterpea er hlaðið sem pakka, svo framvegis og svo framvegis. 46 00:02:08,497 --> 00:02:10,080 Þannig að við erum að tala um tölvu tónlist. 47 00:02:10,080 --> 00:02:12,990 Og þetta er bara mjög 50.000 feta útsýni. 48 00:02:12,990 --> 00:02:15,700 Það er nokkrar mismunandi þætti þess. 49 00:02:15,700 --> 00:02:18,120 Og þetta er gróft og er fara til að hylja smá smáatriði. 50 00:02:18,120 --> 00:02:22,090 En við gætum hugsa um eitthvað eins lausnarleiðar samsetningu, 51 00:02:22,090 --> 00:02:24,920 nota reiknirit, með því að nota kóða, til að búa til 52 00:02:24,920 --> 00:02:30,280 einhvers konar of-- kannski sjálf-svipað röð af athugasemdum, eða kannski athugasemdum 53 00:02:30,280 --> 00:02:33,330 undir einhverjum takmörkunum. 54 00:02:33,330 --> 00:02:35,350 Og síðan þá gæti verið framkvæma eða túlka 55 00:02:35,350 --> 00:02:38,390 með hliðstæðum tækjum eða eitthvað svoleiðis. 56 00:02:38,390 --> 00:02:42,010 En samsetning var gert algorithmically. 57 00:02:42,010 --> 00:02:45,120 >> En auðvitað, kannski svæði tölvutónlist eða stafræna tónlist 58 00:02:45,120 --> 00:02:48,870 við erum fleiri þekki er stafræn Sound Myndun eða stafræna sýnatöku 59 00:02:48,870 --> 00:02:51,160 og stafræna hljóðritun. 60 00:02:51,160 --> 00:02:55,650 A einhver fjöldi af stafrænu tæki eru gert í gegnum stafræna sýnatöku. 61 00:02:55,650 --> 00:03:00,110 Í raun, við munum vera að nota eina af þeim í formi hljóð font bókasafninu síðar. 62 00:03:00,110 --> 00:03:02,850 >> En það er líka eitthvað sem heitir stafræna myndun sem kom út 63 00:03:02,850 --> 00:03:08,650 af seint '70s og í' 80s með Yamaha og John Chowning í Stanford 64 00:03:08,650 --> 00:03:11,990 gera FM nýmyndun eða Tíðni Mótun myndun, 65 00:03:11,990 --> 00:03:15,100 þar sem þú hafði flutningafyrirtæki merki og mótunin 66 00:03:15,100 --> 00:03:18,270 bæði í hljóð litróf. 67 00:03:18,270 --> 00:03:22,570 En það sem við erum lögð áhersla á í dag er eitthvað sem kallast MIDI, 68 00:03:22,570 --> 00:03:25,040 og að sjálfsögðu, lausnarleiðar samsetningu. 69 00:03:25,040 --> 00:03:30,940 >> Við erum ekki að fara að gera hljóðfæri, en við erum í staðinn að fara að gera smá tónlist, 70 00:03:30,940 --> 00:03:33,940 og þá sem vilja fá að túlka af sumum tækjum sem 71 00:03:33,940 --> 00:03:38,300 eru af samræmi við Almennt MIDI staðall. 72 00:03:38,300 --> 00:03:40,830 Svo er það MIDI? 73 00:03:40,830 --> 00:03:45,550 Ég ætla ekki að fá of djúpt inn í það, en MIDI er að flytja gögn siðareglur. 74 00:03:45,550 --> 00:03:49,250 Það er eins konar leiðarvísir yfir mismunandi fyrirtæki og atvinnugreinar 75 00:03:49,250 --> 00:03:52,250 að skipuleggja hljóð eða plástra. 76 00:03:52,250 --> 00:03:54,170 Þannig að við munum sjá að það er MIDI staðall 77 00:03:54,170 --> 00:03:57,500 fyrir alla aðra slagverk hljóð og MIDI tillögur 78 00:03:57,500 --> 00:04:01,360 fyrir öll mismunandi tegundir af Synth eða mismunandi gerðir af öllum tækið 79 00:04:01,360 --> 00:04:03,650 hópar í hljómsveit, segja. 80 00:04:03,650 --> 00:04:08,916 >> Þú ert líklega kunnugt 0 gegnum 127 MIDI skilaboð. 81 00:04:08,916 --> 00:04:12,920 A MIDI merki er yfirleitt einn hluti bendir 82 00:04:12,920 --> 00:04:16,130 hvort sem það er gögn eða stöðu Packet, og þá er það 83 00:04:16,130 --> 00:04:18,589 sjö bita af merki. 84 00:04:18,589 --> 00:04:21,430 Og þær geta stjórnað allt frá rúmmáli 85 00:04:21,430 --> 00:04:25,330 til aðgerða eða þrýstingi á viðkomandi takka 86 00:04:25,330 --> 00:04:29,400 ef þú ert að framkvæma með MIDI stjórnandi sem og, að sjálfsögðu, 87 00:04:29,400 --> 00:04:31,250 skýringum. 88 00:04:31,250 --> 00:04:33,450 Og auðvitað, MIDI hefur verið mjög gagnlegt, 89 00:04:33,450 --> 00:04:37,550 vegna þess að það er leið til að vír saman eða Daisy keðja 90 00:04:37,550 --> 00:04:41,570 fullt af MIDI vélbúnaður tæki. 91 00:04:41,570 --> 00:04:44,050 Ég hef sjö eða átta aftur á húsinu mínu. 92 00:04:44,050 --> 00:04:46,610 Það verður mjög flókið, en það er mjög öflugt. 93 00:04:46,610 --> 00:04:47,460 Og það er mjög gamall. 94 00:04:47,460 --> 00:04:51,117 Það er frá upphafi '80s, og það er mjög gott og lítill. 95 00:04:51,117 --> 00:04:51,950 CONNOR HARRIS: Já. 96 00:04:51,950 --> 00:04:54,230 Allt klassískt Nintendo tölvuleikir myndi líklega 97 00:04:54,230 --> 00:04:56,088 hafa MIDI skrár fyrir tónlist, til dæmis. 98 00:04:56,088 --> 00:04:59,550 99 00:04:59,550 --> 00:05:01,740 >> STEPHEN KREWSON: Hér er dæmi um almenna MIDI, 100 00:05:01,740 --> 00:05:06,520 sýna MIDI eins konar almennra siðareglur. 101 00:05:06,520 --> 00:05:13,280 Og ég held að við getum hugsa um Munurinn á forskrift 102 00:05:13,280 --> 00:05:17,830 að það ætti að vera eitthvað eins og þetta tæki hljóð og í raun 103 00:05:17,830 --> 00:05:21,740 framkvæmd þessa gerninga hljóð í hljóð letur eða ákveðna MIDI 104 00:05:21,740 --> 00:05:25,740 hljóðgervill eins og að vera munurinn milli kannski typeface-- sem segir, 105 00:05:25,740 --> 00:05:30,350 almennt, þetta er hönnun Þessi leið til að tákna 106 00:05:30,350 --> 00:05:35,907 characters-- og einkum letur sem hefur ákveðna stærð og timbre, 107 00:05:35,907 --> 00:05:37,240 og það er framkvæmd the-- 108 00:05:37,240 --> 00:05:39,156 >> CONNOR HARRIS: Kannski betri samanburður myndi 109 00:05:39,156 --> 00:05:43,430 vera Unicode staðall says-- það gefur a tala til allra eðli, og í raun 110 00:05:43,430 --> 00:05:46,830 hvert tungumál í heiminum, eða gríðarstórt setja forskriftir tungumálsins 111 00:05:46,830 --> 00:05:51,310 í heiminum, og þá eru þeir veitt í eitthvað grafísku 112 00:05:51,310 --> 00:05:53,710 af ýmsum pakka letur. 113 00:05:53,710 --> 00:05:56,630 Og vitanlega, getur þú hugsa um MIDI sem Unicode hljóð. 114 00:05:56,630 --> 00:06:03,250 Og það er bara listi of-- stóru straumi viðburða og tækjum og whatnot, 115 00:06:03,250 --> 00:06:06,090 og þú þarft að hafa sérstakt program, eins og leturgerð, 116 00:06:06,090 --> 00:06:08,537 að láta það inn eitthvað sem er heyranlegur. 117 00:06:08,537 --> 00:06:12,360 118 00:06:12,360 --> 00:06:13,780 >> STEPHEN KREWSON: Af hverju Haskell? 119 00:06:13,780 --> 00:06:19,110 Haskell er hagnýtur forritun tungumál, mjög háþróaður, 120 00:06:19,110 --> 00:06:22,770 mjög frábrugðin C, mjög mismunandi frá PHP. 121 00:06:22,770 --> 00:06:28,120 Og við erum að fara að sjá að það er auðvelda virka samsetningu í Haskell 122 00:06:28,120 --> 00:06:37,640 sem gerir okkur kleift að gola í gegnum semja eða slá upp, umritun, 123 00:06:37,640 --> 00:06:42,160 eitthvað eins Frere Jacques, þetta einfalt lag sem 124 00:06:42,160 --> 00:06:46,815 hefur mikið af hlutum í það að eru sjálfstætt svipuð eða endurtaka. 125 00:06:46,815 --> 00:06:49,740 126 00:06:49,740 --> 00:06:53,250 Þannig að þetta verður einhver hvatning fyrir hvers 127 00:06:53,250 --> 00:06:59,400 við erum að nota Haskell, þar sem aðgerðir eru fyrst borgarar flokks. 128 00:06:59,400 --> 00:07:01,120 >> Og ég vildi framlengja þetta svolítið. 129 00:07:01,120 --> 00:07:08,800 Það er svolítið erfitt að notate Frere Jacques í Haskell. 130 00:07:08,800 --> 00:07:12,100 En hvað ef við vildum að bæta tromma þátt í henni? 131 00:07:12,100 --> 00:07:17,320 Hvað ef við vildum reyna að gera eitthvað eins og Roland 808 eða 909 tromma 132 00:07:17,320 --> 00:07:20,970 vél þar sem þú þarft um 16 mismunandi skref? 133 00:07:20,970 --> 00:07:24,590 Venjulega eru þetta talinn 16. skýringum. 134 00:07:24,590 --> 00:07:28,640 Og þú getur stjórnað á heimsvísu taktur, og þú getur tekið út 135 00:07:28,640 --> 00:07:34,620 fullt af mismunandi hlutum slagverk af bassa tromma, a Clap, mismunandi snörur, 136 00:07:34,620 --> 00:07:37,540 opin og lokuð hár húfur á þessum konar sund, 137 00:07:37,540 --> 00:07:41,600 og þá er hægt að EQ eða stilla rúmmál þeirra. 138 00:07:41,600 --> 00:07:45,290 >> Og við munum sjá gott leið í Haskell að tákna þetta skref 139 00:07:45,290 --> 00:07:48,810 sequencer með öllum ýmsar kaldur hlutur í Haskell 140 00:07:48,810 --> 00:07:53,100 við getum gert með að búa listum og sía á listum, 141 00:07:53,100 --> 00:07:56,060 kortlagning á listum, kortlagning aðgerðir á listum. 142 00:07:56,060 --> 00:07:59,530 143 00:07:59,530 --> 00:08:00,760 Og fljótleg afsökunarbeiðni. 144 00:08:00,760 --> 00:08:05,300 Þetta er mjög cursory og óhóflega fljótur skissa 145 00:08:05,300 --> 00:08:07,620 sumir af þeim þáttum af Haskell og Euterpea, 146 00:08:07,620 --> 00:08:11,760 sem er ríki-sérstakur skrifað embed tungumál 147 00:08:11,760 --> 00:08:14,970 í Haskell fyrir tónlistar tegund. 148 00:08:14,970 --> 00:08:17,350 Svo skaltu ekki skrá sig út kóðann netinu. 149 00:08:17,350 --> 00:08:22,404 Eldur upp GHCI, sem er Glasgow Haskell Compiler Túlkur. 150 00:08:22,404 --> 00:08:24,320 Og ég ætla að gera nokkrar þetta í smá 151 00:08:24,320 --> 00:08:25,880 svo þú getur séð hvernig það er gert. 152 00:08:25,880 --> 00:08:31,021 >> Og þetta gerir þér kleift að hlaða inn með the-- setningafræði er ristill og þá 153 00:08:31,021 --> 00:08:31,520 skipunina. 154 00:08:31,520 --> 00:08:33,510 Þú getur hlaða í skrár. 155 00:08:33,510 --> 00:08:36,840 Þú getur notað beit á þeim skrám til að sjá allar aðgerðir sem 156 00:08:36,840 --> 00:08:39,169 vera til í einingar fyrir sig. 157 00:08:39,169 --> 00:08:43,850 Og þá eins og við munum sjá, tegundir og tegund flokkar eru svo mikilvæg í Haskell, 158 00:08:43,850 --> 00:08:48,850 svo þú getur alltaf check-- sérstaklega ef þú ert að vinna í nýju DSCL 159 00:08:48,850 --> 00:08:51,600 eins og þetta, það er tónlist tegund? 160 00:08:51,600 --> 00:08:55,114 Ég veit um leið tölugildi gerðir vinna í Haskell, 161 00:08:55,114 --> 00:08:56,530 en ég veit ekki mikið um tónlist. 162 00:08:56,530 --> 00:09:01,280 En þú getur kanna hvernig þeir eru skilgreind með því að nota þessa t eða tegund stjórn 163 00:09:01,280 --> 00:09:04,577 og þá að hringja í tiltekin virka eða gögn mótmæla. 164 00:09:04,577 --> 00:09:05,410 CONNOR HARRIS: Já. 165 00:09:05,410 --> 00:09:09,820 Ef þú hélst C og Clang var hardass um tegundir, 166 00:09:09,820 --> 00:09:11,230 þú hefur ekki hugmynd um Haskell. 167 00:09:11,230 --> 00:09:14,230 The gott um Haskell er að ef þú getur fengið númerið þitt til að safna saman 168 00:09:14,230 --> 00:09:16,790 og ef Haskell tegund eftirlits, það er sennilega rétt, 169 00:09:16,790 --> 00:09:18,675 vegna þess að gerð kerfi er svo ströng. 170 00:09:18,675 --> 00:09:20,090 >> STEPHEN KREWSON: Já. 171 00:09:20,090 --> 00:09:21,980 Svo ég vil bara fara through-- og aftur, 172 00:09:21,980 --> 00:09:27,160 þetta er ekki að gera það justice-- nokkrar af aðgerðir Haskell, að minnsta kosti 173 00:09:27,160 --> 00:09:31,780 að creators-- sinni og það var búið í lok 1980 með fullt af fólki, 174 00:09:31,780 --> 00:09:34,610 nefnd um 20 people-- taldi mikilvægt. 175 00:09:34,610 --> 00:09:36,850 Og það fyrsta sem þeir skráð í grein þar sem 176 00:09:36,850 --> 00:09:41,890 lýst tilurð Haskell á fyrstu 20 árum eða svo 177 00:09:41,890 --> 00:09:43,390 var að það var latur. 178 00:09:43,390 --> 00:09:44,990 Svo hvað þýðir þetta? 179 00:09:44,990 --> 00:09:49,860 >> Jæja, það þýðir þegar við höfum einhvers konar tjáningar, þurfum við að meta það. 180 00:09:49,860 --> 00:09:54,390 Og Haskell er þetta í símtali af þörf því eða ekki-ströngum hátt. 181 00:09:54,390 --> 00:09:57,250 Það er, ef við höfum fullt af hluti af tjáningu okkar, 182 00:09:57,250 --> 00:10:00,660 við reynum að fresta mat þessara undirliða 183 00:10:00,660 --> 00:10:05,300 þar alger síðasta minute-- sem er þar sem við þurfum á því að halda. 184 00:10:05,300 --> 00:10:08,480 >> Svo hver er þetta means-- virkilega flott, sérstaklega 185 00:10:08,480 --> 00:10:13,200 ef við erum að hugsa um nýtt á tónlist skref sequencer. 186 00:10:13,200 --> 00:10:16,740 Þú kveikir það á, og þú byrjar keyra skref sequence-- 187 00:10:16,740 --> 00:10:20,010 ef þú einhverntíma unnið tunnu machine-- og það fer bara að eilífu. 188 00:10:20,010 --> 00:10:24,650 Svo það væri mjög gott ef við gæti líkja sem í Haskell. 189 00:10:24,650 --> 00:10:31,040 Og við getum gert það með óendanlega gildi, einkum óendanlega lista. 190 00:10:31,040 --> 00:10:35,860 Það er mjög auðvelt að slá að óendanlega lista í Haskell. 191 00:10:35,860 --> 00:10:39,230 Þú getur bara notað setningafræði niður hér, þar sem þú sérð 1 til 3, 192 00:10:39,230 --> 00:10:42,440 fjarlægja 3 1 punktur punktur, og sem er óendanlega lista 193 00:10:42,440 --> 00:10:46,960 af öllum náttúrulegum tölur sem nær á eins langt og þú getur ímyndað sér. 194 00:10:46,960 --> 00:10:49,925 >> Mig langar að kynna a Hugtakið brjóta strax. 195 00:10:49,925 --> 00:10:51,800 Og aftur, í þeim tilgangi þetta námskeið er ekki 196 00:10:51,800 --> 00:10:55,770 að læra um brjóta í Haskell eða hærri röð virka. 197 00:10:55,770 --> 00:10:59,640 En ég vil bara að kynna hana gefa nákvæma tilfinningu hvernig skrítið 198 00:10:59,640 --> 00:11:03,700 Haskell er og hversu öflugt það er. 199 00:11:03,700 --> 00:11:08,000 Einkum, við erum að fara að be-- þegar við gerum okkar mismunandi hlutum tromma, 200 00:11:08,000 --> 00:11:12,790 við erum að fara að vera að notfæra lista yfir tölur, leggja saman þá á hvor aðra. 201 00:11:12,790 --> 00:11:17,290 Og til að gera það, við munum vera með kort og brjóta saman. 202 00:11:17,290 --> 00:11:21,770 >> Það er rétt tengin falt, sem er þetta rétt 203 00:11:21,770 --> 00:11:26,990 here-- 1 mínus magn, 2 mínus magn, 3 mínus 0. 204 00:11:26,990 --> 00:11:29,170 Og setningafræði fyrir a falt, þú gefur falt 205 00:11:29,170 --> 00:11:34,680 grunn gildi og síðan operation-- Í þessu tilfelli, auk þess eða frádráttur. 206 00:11:34,680 --> 00:11:36,280 Ég hef sýnt bæði málin. 207 00:11:36,280 --> 00:11:41,760 Og þá er það að rafgeymisins sem safnast upp yfir allan listann, 208 00:11:41,760 --> 00:11:46,330 beita þeirri rekstraraðila plús eða mínus, og þá safna hana. 209 00:11:46,330 --> 00:11:52,680 Þannig að þetta verður the-- ef það var kallað með tvöfaldri r plús 0, byrja með 0, 210 00:11:52,680 --> 00:11:54,720 við myndum þá summa allt tölurnar í þeim lista. 211 00:11:54,720 --> 00:11:57,134 Og það er listi frá 1 til 3. 212 00:11:57,134 --> 00:12:00,050 CONNOR HARRIS: Svo til að setja það annan Þannig falt r tekur þrjá rök. 213 00:12:00,050 --> 00:12:02,540 Það er aðgerð sem sjálf tekur tvær breytur, 214 00:12:02,540 --> 00:12:05,400 þá er það ræsir gildi, og það er listi af gildum. 215 00:12:05,400 --> 00:12:08,570 Og það sem þú gera er að þú tekur ræsir gildi, fyrst gildi, 216 00:12:08,570 --> 00:12:09,850 setja þá inn í aðgerð. 217 00:12:09,850 --> 00:12:11,607 Hvaða gera þú fá út, Taka þessi, fæða sem 218 00:12:11,607 --> 00:12:13,940 í starfsemi sem annað gildi, það sem þú færð út, 219 00:12:13,940 --> 00:12:16,690 taka að fæða það inn í fall af þriðja gildi. 220 00:12:16,690 --> 00:12:18,740 Og þá ef þú ferð niður allt á þessum lista með þessum hætti, 221 00:12:18,740 --> 00:12:22,970 þú ert að fara að fá á endanum sumir eintölu gildi sem er 222 00:12:22,970 --> 00:12:25,720 af sömu tegund sem þú byrjaðir út með og af sömu tegund 223 00:12:25,720 --> 00:12:29,147 sem hlutur í listanum, og þá sem er afleiðing aftur falt R. 224 00:12:29,147 --> 00:12:31,980 STEPHEN KREWSON: Svo einkum þetta eru hærri röð aðgerðir, 225 00:12:31,980 --> 00:12:34,460 vegna þess að þeir eru að taka aðra virka eins og einn af rökum. 226 00:12:34,460 --> 00:12:34,770 >> CONNOR HARRIS: Já. 227 00:12:34,770 --> 00:12:37,820 Ef þú hefur notað ákveðin önnur languages-- Ég veit R, [inaudible] 228 00:12:37,820 --> 00:12:41,510 tungumál hefur þetta, sem heitir Draga. 229 00:12:41,510 --> 00:12:45,460 Þú gætir hafa svipaðar aðgerðir á öðrum tungumálum, bara kallað 230 00:12:45,460 --> 00:12:48,160 mismunandi hluti. 231 00:12:48,160 --> 00:12:50,680 >> STEPHEN KREWSON: Og hvað er gott um falt R 232 00:12:50,680 --> 00:12:53,880 í þessu tilviki er sú að föld R er hægt að vinna með óendanlega lista. 233 00:12:53,880 --> 00:12:59,490 Svo í þessum botni, þetta P5 er að búa athugasemdum sem 234 00:12:59,490 --> 00:13:03,120 eru kveikt í skref sequencer fyrir sumir tromma hluti, fimmta tromma hluti, 235 00:13:03,120 --> 00:13:05,480 og kannski er það Conga tromma eða eitthvað. 236 00:13:05,480 --> 00:13:09,719 Og þetta er vísvitandi sjáanlegir leið til að skrifa þetta, 237 00:13:09,719 --> 00:13:11,510 en það er gaman, því það sýnir mikið 238 00:13:11,510 --> 00:13:14,460 margt um Haskell og Euterpea. 239 00:13:14,460 --> 00:13:20,650 >> Svo falt R þessarar colon-- ristli er bara rekstraraðili sem ýtir hlutum 240 00:13:20,650 --> 00:13:25,700 saman á list-- heitir á tómt lista, sem er bara tóm sviga. 241 00:13:25,700 --> 00:13:28,250 Og ég er að hringja það á þessum óendanlega lista. 242 00:13:28,250 --> 00:13:31,570 Þetta er í raun tveir listar bætt saman hérna. 243 00:13:31,570 --> 00:13:37,150 Listinn 1 komma 6 punktur punktur er 1, 6, 11, 16. 244 00:13:37,150 --> 00:13:39,750 Svo Haskell-- í bara nokkrar persónur, þú 245 00:13:39,750 --> 00:13:42,420 hægt að búa til allt röð af tölum 246 00:13:42,420 --> 00:13:46,240 sem eru fimm tölur í sundur teygja á í óendanleika. 247 00:13:46,240 --> 00:13:49,860 Og ég prepend við það þetta styttri litla list-- 248 00:13:49,860 --> 00:13:54,370 3, 8, 21-- bara að sýna þér hvernig þú getur concatenate listum. 249 00:13:54,370 --> 00:13:55,790 >> Og þá hef ég brotin á sig. 250 00:13:55,790 --> 00:14:01,510 Og þetta endar bara að vera eins konar sjálfsmynd rekstur, en það er óendanlega. 251 00:14:01,510 --> 00:14:06,070 Og brjóta R getur gert það, vegna þess að það lazily metur, eins og í hér að ofan. 252 00:14:06,070 --> 00:14:10,582 Ef við höfum 1 og 2 og 3, getum við bara krappi af öllu restina af henni. 253 00:14:10,582 --> 00:14:12,290 Það mun ekki vinna fyrir mínus eða plús, en það 254 00:14:12,290 --> 00:14:17,760 mun vinna fyrir þetta ristli sjálfsmynd rekstur á listanum. 255 00:14:17,760 --> 00:14:24,620 >> Svo hvernig við notum nánast að ef við hafa óendanlega langan lista yfir hluti? 256 00:14:24,620 --> 00:14:26,500 Jæja, Haskell veitir a einhver fjöldi af functions-- 257 00:14:26,500 --> 00:14:29,450 og líta meira inn þetta í eigin time-- þitt eins taka 258 00:14:29,450 --> 00:14:32,200 sem segir, OK, við erum að búa til þessa óendanlega lista, 259 00:14:32,200 --> 00:14:35,950 en við erum bara að fara að taka nokkrar Fjöldi það Og í þessu case-- 260 00:14:35,950 --> 00:14:38,410 við munum sjá þetta síðar í tromma vél okkar code-- 261 00:14:38,410 --> 00:14:43,740 GM er bara einhvers konar alheims breytu fyrir fjölda skrefa 262 00:14:43,740 --> 00:14:44,610 í raðgreininum. 263 00:14:44,610 --> 00:14:47,630 Á rúlla í vélum I sýndi þér, það er yfirleitt 16, 264 00:14:47,630 --> 00:14:51,475 en ég hef innleitt það með 32. 265 00:14:51,475 --> 00:14:54,470 Það skiptir ekki máli. 266 00:14:54,470 --> 00:15:00,230 >> Haskell er líka hreint, svo það hefur sterka truflanir vélritun sem Connor kennd við. 267 00:15:00,230 --> 00:15:03,220 Svo aðgerðir eru stærðfræði í sense-- 268 00:15:03,220 --> 00:15:06,600 þeir eru meira stærðfræði sem þeir eru tryggð 269 00:15:06,600 --> 00:15:11,530 að ekki komast í eða breyta neina breyta eða framkvæma inntak eða framleiðsla. 270 00:15:11,530 --> 00:15:14,420 Svo ef þú ert með virka, það er deterministic. 271 00:15:14,420 --> 00:15:17,400 Það mun alltaf koma aftur það sama gildi í the ástand af the program 272 00:15:17,400 --> 00:15:19,310 eða staðið í stað. 273 00:15:19,310 --> 00:15:22,940 Það eru, að sjálfsögðu, monadic undantekningar að þessu, en það er utan gildissviðs okkar. 274 00:15:22,940 --> 00:15:23,900 >> CONNOR HARRIS: Já. 275 00:15:23,900 --> 00:15:26,946 Hvað þýðir þetta, þó, er það eru nokkrar mikilvægar [inaudible] 276 00:15:26,946 --> 00:15:27,820 Afleiðingar af þessu. 277 00:15:27,820 --> 00:15:30,940 Einn er að það er mjög auðvelt að parallelize HASKELL forrit. 278 00:15:30,940 --> 00:15:32,773 Vegna þess að ef þú ert með, segja, fall af sem 279 00:15:32,773 --> 00:15:36,064 þarf að ganga á milljón gildum, ef þú veist að fallið muni alltaf 280 00:15:36,064 --> 00:15:39,280 gefa út sama gildi ef þú beitir á ákveðnum value-- 281 00:15:39,280 --> 00:15:43,055 ef þú ert [inaudible] f 1, f 2, þá f 3 eða whatnot-- f 1 282 00:15:43,055 --> 00:15:45,180 er ekki að fara að skrifa út skrá eða gera eitthvað 283 00:15:45,180 --> 00:15:46,850 sem mun breyta gildi F2. 284 00:15:46,850 --> 00:15:50,220 Þú getur bara skipt upp þessa aðgerð til a milljón mismunandi vélar eða milljón 285 00:15:50,220 --> 00:15:54,720 mismunandi þræði eða hvað, fá allar viðbrögð til baka, 286 00:15:54,720 --> 00:15:56,900 fá allar aftur gildi aftur, og þá er það það. 287 00:15:56,900 --> 00:15:59,780 Svo mjög auðvelt að parallelize hluti. 288 00:15:59,780 --> 00:16:03,140 >> The hæðir er að inntak og framleiðsla sérstaklega 289 00:16:03,140 --> 00:16:05,720 passa inn í kerfi af gerð í mjög flókinn hátt. 290 00:16:05,720 --> 00:16:09,010 Við munum ekki fara inn það núna, en ég hvetjum þig til að líta á nokkur úrræði 291 00:16:09,010 --> 00:16:11,175 á netinu ef þú vilt fræðast um það. 292 00:16:11,175 --> 00:16:13,960 293 00:16:13,960 --> 00:16:16,550 >> STEPHEN KREWSON: So slá classes-- og þetta 294 00:16:16,550 --> 00:16:21,610 was-- flokkar gerðir voru fundin til að leysa 295 00:16:21,610 --> 00:16:24,160 vandamál af rekstraraðila villu. 296 00:16:24,160 --> 00:16:27,590 Þannig að við vildum að hafa jafnrétti milli mismunandi gerðir af hlutum. 297 00:16:27,590 --> 00:16:31,040 Auðvitað gætum við hugsa of-- jafnrétti tölugildi gerðir 298 00:16:31,040 --> 00:16:34,720 er mjög auðvelt að hugsa um, en hvað um jafnrétti listum? 299 00:16:34,720 --> 00:16:37,610 Hvað um jafnrétti tré fótur gögn uppbygging? 300 00:16:37,610 --> 00:16:43,130 Og þetta er allt hægt í Haskell vegna tegund flokkum. 301 00:16:43,130 --> 00:16:48,000 >> Svo ef þú skilgreinir ákveðna gögn type-- og hér, eru þessar tónlistar pitches. 302 00:16:48,000 --> 00:16:50,960 Við erum loksins að fá að einhverju tölvu tónlist. 303 00:16:50,960 --> 00:16:57,420 Þannig að við höfum C, C skarpur, og svo framvegis og svo framvegis. 304 00:16:57,420 --> 00:17:01,080 Þeir tilheyra fullt af mismunandi flokkum tegund. 305 00:17:01,080 --> 00:17:03,510 EQ-- þeir tilheyra EQ gerð bekknum. 306 00:17:03,510 --> 00:17:06,780 Það þýðir að þeir styðja kynjanna starfsemi. 307 00:17:06,780 --> 00:17:12,650 Svo er hægt að meta hvort eitt röð tónlistar frumform 308 00:17:12,650 --> 00:17:15,400 er það sama og a ólíkur einn. 309 00:17:15,400 --> 00:17:17,280 >> Þeir tilheyra ordinal bekknum. 310 00:17:17,280 --> 00:17:19,479 Það þýðir að það er óákveðinn greinir í ensku panta þessum. 311 00:17:19,479 --> 00:17:27,670 D kemur eftir C. C skarpur kemur eftir C eins og heilbrigður. 312 00:17:27,670 --> 00:17:29,840 Þeir tilheyra flokki sýna, sem þýðir að þeir geta 313 00:17:29,840 --> 00:17:33,000 að prenta á vélinni eða flugstöðinni. 314 00:17:33,000 --> 00:17:36,090 Þeir tilheyra flokki talin, sem 315 00:17:36,090 --> 00:17:39,770 þýðir að jafnvel þótt þetta eru stafir, 316 00:17:39,770 --> 00:17:45,340 þeir hafa undirliggjandi tölustafir framsetning byrja á 0 317 00:17:45,340 --> 00:17:48,960 og fara burt í gegnum þó margir hlutir eru hér, 20 eða svo, 318 00:17:48,960 --> 00:17:51,770 eða 30 eða 40, kannski. 319 00:17:51,770 --> 00:17:54,259 >> CONNOR HARRIS: Þegar við höfum gögn tegund 320 00:17:54,259 --> 00:17:57,050 sem derives-- með viðkomandi leitarorði "deriving--" viss tegund bekknum, 321 00:17:57,050 --> 00:18:01,160 það þýðir að þýðandinn mun reyna að reisa eitthvað sjálfkrafa. 322 00:18:01,160 --> 00:18:05,120 Svo kannski þú þarft að skilgreina gæði öðruvísi. 323 00:18:05,120 --> 00:18:09,450 Þú þarft að skilgreina C Sharp sem jafngilt D íbúð, til dæmis. 324 00:18:09,450 --> 00:18:11,560 Með þessari framkvæmd hér, ég held ekki C skarpur 325 00:18:11,560 --> 00:18:14,940 og D íbúð verður jafn, því þýðandinn mun sjálfkrafa 326 00:18:14,940 --> 00:18:19,670 segja hvert annað mögulegt gildi er frábrugðið öllum öðrum. 327 00:18:19,670 --> 00:18:22,930 >> Svo það er hægt að hunsa sjálfgefnu gerð 328 00:18:22,930 --> 00:18:25,730 af þessum tegundum af flokkum. 329 00:18:25,730 --> 00:18:28,640 Aftur, líta á tilvísun ef þú vilt fræðast um það. 330 00:18:28,640 --> 00:18:31,767 331 00:18:31,767 --> 00:18:33,600 STEPHEN KREWSON: Og hér, í raun, þetta verður 332 00:18:33,600 --> 00:18:36,930 vera gagnlegt fyrir þegar við kóða síðar. 333 00:18:36,930 --> 00:18:42,150 Við sjáum nokkrar af infix rekstraraðila fyrir raðbundna samsetningu, 334 00:18:42,150 --> 00:18:46,570 samsíða samsetningu, og svo fram þessar plús-merkjum og samasemmerki 335 00:18:46,570 --> 00:18:48,620 umkringdur tvípunkti. 336 00:18:48,620 --> 00:18:53,330 Það þýðir að við getum spilað þetta öðruvísi tónlistar frumform einn á eftir öðrum. 337 00:18:53,330 --> 00:18:54,590 Það er myndaröð samsetningu. 338 00:18:54,590 --> 00:18:57,170 >> Eða við getum spilað þá í samsíða á sama tíma. 339 00:18:57,170 --> 00:19:05,100 Svo ég geti haft tónlistar gildi, og þá jafngildir þetta og tvípunkta, 340 00:19:05,100 --> 00:19:09,669 infix samhliða samsetningu rekstraraðila, og spila þá eins konar strengur. 341 00:19:09,669 --> 00:19:11,460 Og við erum að fara að nota þetta þegar við sameina 342 00:19:11,460 --> 00:19:15,080 tromma hluti okkar með okkar lítið Frere Jacques lag 343 00:19:15,080 --> 00:19:19,460 til að spila þessa tvo röð af tónlistar gildi á sama tíma. 344 00:19:19,460 --> 00:19:24,520 345 00:19:24,520 --> 00:19:29,250 >> Currying is-- Curry var síðast Heiti Haskell Curry, sem 346 00:19:29,250 --> 00:19:31,850 sem Haskell myndin er nefnd eftir. 347 00:19:31,850 --> 00:19:34,330 Og þetta gerir okkur a gott glæsileika þegar við erum 348 00:19:34,330 --> 00:19:36,880 skrifa allt þetta öðruvísi aðgerðir eða síur sem við erum 349 00:19:36,880 --> 00:19:39,330 að fara að vera í nágrenninu á listum okkar. 350 00:19:39,330 --> 00:19:42,810 Fall af tveimur arguments-- f x og y-- 351 00:19:42,810 --> 00:19:46,630 er hægt að tákna sem f x beitt y. 352 00:19:46,630 --> 00:19:49,800 Svo það er hlutverk eitt rifrildi sem skilar 353 00:19:49,800 --> 00:19:51,240 Annað hlutverk eitt rifrildi. 354 00:19:51,240 --> 00:19:56,962 Þannig að þetta þýðir að við getum landakort a Fallið f x yfir lista yfir Y er. 355 00:19:56,962 --> 00:19:58,920 CONNOR HARRIS: Langar þig að gefa dæmi um þetta? 356 00:19:58,920 --> 00:19:59,836 STEPHEN KREWSON: Já. 357 00:19:59,836 --> 00:20:05,390 Ég er með dæmi hérna frá sumir af þeim hlutum sem við munum skrifa. 358 00:20:05,390 --> 00:20:10,500 Svo endurtaka 2-- vel, endurtaka mun taka 359 00:20:10,500 --> 00:20:13,040 eitt gildi, sem er hversu margir sinnum til að endurtaka eitthvað, 360 00:20:13,040 --> 00:20:16,690 og þá mun það taka value-- yfirleitt lista eða eitthvað. 361 00:20:16,690 --> 00:20:23,450 Svo hér erum við kortlagning endurtaka 2 yfir annan lista. 362 00:20:23,450 --> 00:20:27,440 >> Þannig að ef við landakort endurtaka 2, ef við endurtaka 2 gilda 363 00:20:27,440 --> 00:20:31,890 að fyrsta þáttur þessarar list-- og þetta eru listar yfir tónlistar phrases-- 364 00:20:31,890 --> 00:20:37,650 mun framleiða tvo "þú sleeping--" svo sefur þú, sefur þú. 365 00:20:37,650 --> 00:20:40,040 Svo nú höfum við tvö. 366 00:20:40,040 --> 00:20:42,570 En endurtaka þarf tvo rök, heldur vegna þess að við erum 367 00:20:42,570 --> 00:20:47,100 currying og þá kortlagning, við getum tákna endurtaka 2 368 00:20:47,100 --> 00:20:52,310 eins og verið flutt aftur sem fall af einn argument-- bara afrit tvisvar. 369 00:20:52,310 --> 00:20:57,010 Og þá erum við að beita því til hvers þáttur af þessum lista yfir setningar. 370 00:20:57,010 --> 00:21:01,900 >> Og concat er Haskell aðgerð fyrir fletja lista. 371 00:21:01,900 --> 00:21:04,400 Vegna endurtaka 2 mun framleiða lista af listum. 372 00:21:04,400 --> 00:21:06,660 Og þetta er þetta millistig form hér. 373 00:21:06,660 --> 00:21:10,365 Og svo þá getum við concat eða fletja það út tvisvar. 374 00:21:10,365 --> 00:21:12,240 CONNOR HARRIS: A einfaldari Dæmi um currying, 375 00:21:12,240 --> 00:21:15,323 ef þú vilt like-- ímyndað f er bara margföldun fall sem tekur tvo 376 00:21:15,323 --> 00:21:16,840 rök og skilar vöru sína. 377 00:21:16,840 --> 00:21:19,320 Svo ef þú ert með F 4 5, það er 20. 378 00:21:19,320 --> 00:21:22,670 En þú getur hugsað þetta eins og also-- þú hefur fallið f 4 379 00:21:22,670 --> 00:21:25,560 sem tekur að rífast og skilar fjórum sinnum á þessu argument-- bara 380 00:21:25,560 --> 00:21:27,870 hluta forrit sem bara eitt rifrildi 4. 381 00:21:27,870 --> 00:21:31,182 Og ef þú fæða f 4 5, sem mun gefa þér 20. 382 00:21:31,182 --> 00:21:32,890 Og það er einfaldara dæmi um currying. 383 00:21:32,890 --> 00:21:34,473 Það er yfirleitt einn af kennslubók sjálfur. 384 00:21:34,473 --> 00:21:38,860 385 00:21:38,860 --> 00:21:42,110 >> STEPHEN KREWSON: Lambda orðasambönd eða nafnlaus virka 386 00:21:42,110 --> 00:21:47,330 eru annað Haskell aðalsmerki. 387 00:21:47,330 --> 00:21:51,242 Þannig að ef við þurfum að svipa upp a lítið virka líf endurtaka, 388 00:21:51,242 --> 00:21:52,950 en segja að það er ekki í staðall bókasafn, 389 00:21:52,950 --> 00:21:56,150 við getum notað setningafræði svipaðar og eftirfarandi. 390 00:21:56,150 --> 00:21:58,730 Og við munum gola yfir þessu. 391 00:21:58,730 --> 00:22:02,160 Eitt sem þú munt sjá mikið af í tromma vél er að við erum að hringja 392 00:22:02,160 --> 00:22:05,790 til eitthvað sem kallast sía, sem eins og áður, 393 00:22:05,790 --> 00:22:08,185 er kortlagning falls yfir listann, en það er 394 00:22:08,185 --> 00:22:10,260 kortleggja Boolean virka. 395 00:22:10,260 --> 00:22:13,390 >> Þannig að við höfum hér dæmi á annars nafnlaust 396 00:22:13,390 --> 00:22:19,150 skilgreint Boolean virka sem bara tekur nokkrar gildi. 397 00:22:19,150 --> 00:22:22,990 Þetta er ekki strangt nafnlaus aðgerð. 398 00:22:22,990 --> 00:22:25,850 En það er að skilgreina með sem setningafræði fyrir brevity, 399 00:22:25,850 --> 00:22:28,007 og þetta bara tekur x mát n- 400 00:22:28,007 --> 00:22:28,840 CONNOR HARRIS: Já. 401 00:22:28,840 --> 00:22:31,330 Svo er f fall af tvær breytur n og p 402 00:22:31,330 --> 00:22:35,440 sem skilar fall sem er sjálft fall af einni rök, þ.e. x. 403 00:22:35,440 --> 00:22:38,815 404 00:22:38,815 --> 00:22:40,690 STEPHEN KREWSON: I framangreindra infix rekstraraðila. 405 00:22:40,690 --> 00:22:42,642 Hvað eru infix stjórnendur? 406 00:22:42,642 --> 00:22:45,710 Jæja, eru infix rekstraraðilum venjulegan hátt við tákna starfsemi, 407 00:22:45,710 --> 00:22:49,910 segja, í mathematics-- 2 plús 2 í stað þess að rekstraraðila auk 408 00:22:49,910 --> 00:22:51,202 og svo tvær röksemdir 2 og 2. 409 00:22:51,202 --> 00:22:53,701 CONNOR HARRIS: Það heitir snúa pólska merki, sem er 410 00:22:53,701 --> 00:22:55,330 hugtak Ég efast um að allir af þú vildi vita. 411 00:22:55,330 --> 00:22:56,288 >> STEPHEN KREWSON: Hægri. 412 00:22:56,288 --> 00:22:58,290 Reverse pólska eða forskeytið tákn. 413 00:22:58,290 --> 00:23:01,412 En Haskell ákvað að nota infix rekstraraðila. 414 00:23:01,412 --> 00:23:03,120 Svo þetta eru nokkrar af Sérsniðna þau sem 415 00:23:03,120 --> 00:23:07,770 eru skilgreind fyrir Euterpea DSCL í Haskell. 416 00:23:07,770 --> 00:23:10,730 Þannig að þetta var myndaröð samsetningu. 417 00:23:10,730 --> 00:23:16,340 Þetta var samsetningu samhliða, og þetta var stýft samsetningu samhliða. 418 00:23:16,340 --> 00:23:18,710 Og við þurfum að með tromma vél okkar, 419 00:23:18,710 --> 00:23:22,640 vegna þess að við munum nota síðustu rekstraraðila í því litla tuple þar 420 00:23:22,640 --> 00:23:26,330 að spila tromma vél með með okkar Frere Jacques lag. 421 00:23:26,330 --> 00:23:28,650 Og tromma vél okkar er að fara að vera óendanlega. 422 00:23:28,650 --> 00:23:30,920 Það spilar bara eilífu. 423 00:23:30,920 --> 00:23:32,692 En Frere Jacques lag er ekki. 424 00:23:32,692 --> 00:23:33,510 Það er ekki það lengi. 425 00:23:33,510 --> 00:23:36,610 Það er aðeins nokkrum börum. 426 00:23:36,610 --> 00:23:43,030 Þannig að við þurfum að hætta að tromma vél sem leið og styttri söngleik gildi kemur 427 00:23:43,030 --> 00:23:43,700 til enda. 428 00:23:43,700 --> 00:23:46,980 Og það infixed rekstraraðila er frábær gagnlegt við það. 429 00:23:46,980 --> 00:23:50,090 >> Og infix ritháttur eins þetta er góður af gaman, 430 00:23:50,090 --> 00:23:57,095 því segja að þú ert með virka eins vitna, sem gefur heiltölu deild 431 00:23:57,095 --> 00:24:01,010 x við eitthvað else-- Afsakið, það ætti að vera og b. 432 00:24:01,010 --> 00:24:04,740 Þú gætir skrifað það sem vitna um b. 433 00:24:04,740 --> 00:24:09,670 Þannig að ef þú put-- þátturinn er annað dæmi um þetta. 434 00:24:09,670 --> 00:24:14,730 x þáttur í sumum lista, ef þú setur það í Backticks, getur þú notað það. 435 00:24:14,730 --> 00:24:20,400 Jafnvel þó að það er ekki tákn eins plús eða mínus eða stundum, 436 00:24:20,400 --> 00:24:24,630 þú getur notað nafn a virka svona í Backticks 437 00:24:24,630 --> 00:24:27,045 eins infix rekstraraðila, sem er laglegur kaldur. 438 00:24:27,045 --> 00:24:29,670 CONNOR HARRIS: Aftur, þetta er allt bara nokkur dæmi um setningarleg sykur, virkilega. 439 00:24:29,670 --> 00:24:32,310 Það hefur ekki áhrif á kjarna tungumálsins. 440 00:24:32,310 --> 00:24:37,440 >> STEPHEN KREWSON: Þannig að við sjáum hér fyrir síðustu setningu af okkar Frere Jacques lag, 441 00:24:37,440 --> 00:24:45,740 Ég spilaði nokkur litla hljóma eða þriðju nota samhliða samsetningu 442 00:24:45,740 --> 00:24:46,240 rekstraraðila. 443 00:24:46,240 --> 00:24:50,680 444 00:24:50,680 --> 00:24:54,950 Þetta er önnur leið til að segja sumir af því sem við höfum bara verið að segja. 445 00:24:54,950 --> 00:24:59,986 Svo þú getur kortinu aðgerðir einn rifrildi um listum. 446 00:24:59,986 --> 00:25:02,860 CONNOR HARRIS: Aftur, tilvísanir fyrir Haskell-- inngangs kennslubókum 447 00:25:02,860 --> 00:25:04,680 verður þetta allt í það. 448 00:25:04,680 --> 00:25:07,790 >> STEPHEN KREWSON: Svo hér er nokkuð lykill lína í skrefi sequencer 449 00:25:07,790 --> 00:25:12,820 við munum taka a líta á að nota listi skilningur. 450 00:25:12,820 --> 00:25:17,810 Og við sjáum hér er þessi þáttur í föstu stjórnandi í bak gæsalappa. 451 00:25:17,810 --> 00:25:23,030 Svo ef x er stak í listanum yfir x er, þá munum við kalla upp Perc aðgerðir. 452 00:25:23,030 --> 00:25:25,100 Svo er Perc bara slagverk virka. 453 00:25:25,100 --> 00:25:30,200 Það tekur nokkurn gildi p sem er hluti af afmarkast mengi allra 454 00:25:30,200 --> 00:25:35,310 mismunandi hljóð slagverk sem við sáum í fyrri mynd, 455 00:25:35,310 --> 00:25:38,840 og þá gefur það að lengd fjórðungur huga. 456 00:25:38,840 --> 00:25:43,190 Else gefur það það QNR og QNR er bara fjórðungur huga hvíld. 457 00:25:43,190 --> 00:25:44,970 >> Svo er þetta að byggja upp eitthvað gott. 458 00:25:44,970 --> 00:25:52,110 Við erum með lista yfir þætti og við munum lykkja yfir einhverjum lista frá einum 459 00:25:52,110 --> 00:25:54,540 til max gildi sequencer skref okkar. 460 00:25:54,540 --> 00:25:58,290 Og þegar við erum á tilteknu i í að listi yfir einn til max gildi, 461 00:25:58,290 --> 00:26:02,970 ef að ég er meðlimur í þessu sett til í þessari aðgerð, 462 00:26:02,970 --> 00:26:06,040 Jæja, þá erum snúa það í slagverk huga. 463 00:26:06,040 --> 00:26:10,960 Annars spila við bara hvíld, sem er að segja, við erum enn bara þegja. 464 00:26:10,960 --> 00:26:16,050 Og við sjáum hér að í þessi listi skilningur setningafræði, 465 00:26:16,050 --> 00:26:20,030 x er fjölmennasta með þetta Listinn smíðuð einn 466 00:26:20,030 --> 00:26:22,462 við alþjóðlegt stærð á raðgreininum. 467 00:26:22,462 --> 00:26:23,295 CONNOR HARRIS: Já. 468 00:26:23,295 --> 00:26:26,340 The undirstöðu setningafræði fyrir Listi comprehensions er 469 00:26:26,340 --> 00:26:30,810 krappi, gildi þátttöku sumir breytur, Bar, 470 00:26:30,810 --> 00:26:34,260 möguleg gildi á breytunum sjálfir, lokað krappi. 471 00:26:34,260 --> 00:26:38,545 Og ef þú hefur gert sett byggir tákn í hvers konar stærðfræði bekknum, 472 00:26:38,545 --> 00:26:45,999 þú gætir hafa sett 2n svo að n sé í eða n er í z. 473 00:26:45,999 --> 00:26:48,290 Líkur thing-- þetta merki er ætlað að vera tvírætt 474 00:26:48,290 --> 00:26:49,630 þeirrar stærðfræði tákn. 475 00:26:49,630 --> 00:26:51,880 STEPHEN KREWSON: Og þú getur gilda margar predicates 476 00:26:51,880 --> 00:26:56,250 og margar síur í lista skilningur, sem er alveg ágætur. 477 00:26:56,250 --> 00:27:01,800 Algebraic types-- við mun ekki sitja lengi lengi hér. 478 00:27:01,800 --> 00:27:04,840 Það er ekki góð hugmynd í Haskell eða gott, augljóst hugmynd 479 00:27:04,840 --> 00:27:10,720 um hvernig á að taka, segja, sjálfgefið breytu að aðgerð eða eitthvað. 480 00:27:10,720 --> 00:27:13,370 Í Python, þetta er alveg auðvelt. 481 00:27:13,370 --> 00:27:18,460 Þú getur bara sagt með jafn á Yfirlýsing um virka, 482 00:27:18,460 --> 00:27:21,420 sjálfgefið gildi í Málið enginn er til staðar. 483 00:27:21,420 --> 00:27:27,010 >> Í Haskell, þú gætir kannski nota kannski kannski slá, 484 00:27:27,010 --> 00:27:32,190 sem tekur annað hvort ekkert eða gildi tegund bara. 485 00:27:32,190 --> 00:27:38,630 Þannig að við nýta þetta í tromma vél til að leyfa okkur að gefa valfrjálst bindi 486 00:27:38,630 --> 00:27:40,730 breytur til hvert tromma hlutum. 487 00:27:40,730 --> 00:27:46,160 488 00:27:46,160 --> 00:27:54,680 Svo sem gefur okkur leið með EQ eða bindi á tilteknu rás. 489 00:27:54,680 --> 00:27:56,440 >> CONNOR HARRIS: In önnur Haskell dæmi, 490 00:27:56,440 --> 00:28:00,450 Þú gætir séð kannski notað fyrir aðgerðir sem gætu mistakast. 491 00:28:00,450 --> 00:28:03,470 Þetta er algeng einn. 492 00:28:03,470 --> 00:28:07,010 >> STEPHEN KREWSON: Og þú getur framboð einhvers konar villuboð sem sjálfgefið. 493 00:28:07,010 --> 00:28:11,020 Og það er sérstaklega vel þegar þú ert að gera I / O í Haskell. 494 00:28:11,020 --> 00:28:12,044 Það getur verið bragðarefur. 495 00:28:12,044 --> 00:28:13,960 CONNOR HARRIS: Eða fyrir a Svipað dæmi, held 496 00:28:13,960 --> 00:28:17,460 falls sem felur skiptingu á breytu sem er gæti verið 0. 497 00:28:17,460 --> 00:28:20,020 Og virka gæti aftur kannski hvað. 498 00:28:20,020 --> 00:28:22,802 Þannig að ef það er engin deild um 0, það mun skila bara hvað sem er. 499 00:28:22,802 --> 00:28:25,010 Og ef það er deild með 0, það mun skila ekkert 500 00:28:25,010 --> 00:28:26,910 sem leið til að merkja villuna. 501 00:28:26,910 --> 00:28:30,330 Vegna Ein afleiðing Mjög ströng vélritun HASKELL er 502 00:28:30,330 --> 00:28:34,100 er að það er engin real-- undantekningar eru óþægilega, í grundvallaratriðum, 503 00:28:34,100 --> 00:28:36,160 villa meðhöndlun er óþægilega. 504 00:28:36,160 --> 00:28:39,440 Og þetta er eitt mjög algeng leið til að gera það. 505 00:28:39,440 --> 00:28:42,990 >> STEPHEN KREWSON: Svo nú fáum við til annars hugur-beygja hlutur 506 00:28:42,990 --> 00:28:49,160 um Haskell, sem er mynstur samsvörun og virka skilgreiningar. 507 00:28:49,160 --> 00:28:53,390 Ég sýndi þér í síðustu mynd sem Yfirlýsing um skrefa röð 508 00:28:53,390 --> 00:28:58,170 virka, sem tók kannski gildi, þá int, þá listi yfir ints, 509 00:28:58,170 --> 00:29:03,850 þá skilar röð gildi tónlist þar merktar 510 00:29:03,850 --> 00:29:05,375 bæði vellinum og bindi. 511 00:29:05,375 --> 00:29:08,030 512 00:29:08,030 --> 00:29:11,820 >> Svo þessir þrír rök geta verið mynstur samsvörun á eftirfarandi hátt. 513 00:29:11,820 --> 00:29:16,660 Og við viljum alltaf að vera viss um að gera grunntilvikið eða loka mál fyrst. 514 00:29:16,660 --> 00:29:19,690 Og þessar undirstrikar getur bara túlka 515 00:29:19,690 --> 00:29:22,340 að meina hvaða gildi sem er þarna. 516 00:29:22,340 --> 00:29:26,580 Svo ef við fáum símtal til að stíga röð með nokkur gildi, einhver önnur gildi, 517 00:29:26,580 --> 00:29:32,210 og þá tóm lista, það sem við viljum til að fara aftur er bara þögn, hvíld 0. 518 00:29:32,210 --> 00:29:35,110 >> Og í stað þess að vera tómur listi eða 0, 519 00:29:35,110 --> 00:29:38,150 það er hvíld 0, vegna þess að við erum takast á við tónlist tegund, 520 00:29:38,150 --> 00:29:43,230 og tóm lista af tónlist tegund er bara restin af neitun tíma. 521 00:29:43,230 --> 00:29:45,680 Það er engin tónlist. 522 00:29:45,680 --> 00:29:51,460 Og þá sjáum við að ef við fáum skref Sequence með v fyrir rifrildi bindi, 523 00:29:51,460 --> 00:29:57,290 P að þverra hljóðfæri rök, og þá listi yfir X er. 524 00:29:57,290 --> 00:29:58,360 >> Þá erum við að gera smá dót. 525 00:29:58,360 --> 00:30:01,290 Einkum, eiga við þessi listi skilningur, 526 00:30:01,290 --> 00:30:05,700 og við að framkvæma sumir aðgerðir á kannski gildi 527 00:30:05,700 --> 00:30:10,050 að snúa það inn í a tölugildi svo sem það gæti verið svo telja upp og nota 528 00:30:10,050 --> 00:30:12,300 til að velja verkfæri. 529 00:30:12,300 --> 00:30:16,730 Aftur, þetta er svolítið bita vísvitandi inconcise 530 00:30:16,730 --> 00:30:20,580 bara til að sýna allar undarlegt hluti þú getur gert í Haskell sem þig 531 00:30:20,580 --> 00:30:23,170 taka a líta á það á þínum eigin tíma. 532 00:30:23,170 --> 00:30:23,802 >> Allt í lagi. 533 00:30:23,802 --> 00:30:26,010 Þannig að við erum loksins að fá að gera það sem við sett fram til að gera, 534 00:30:26,010 --> 00:30:28,820 sem er að gera sumir tölva tónlist. 535 00:30:28,820 --> 00:30:32,250 Þannig að við erum að fara að reyna að gera Frere Jacques lag. 536 00:30:32,250 --> 00:30:35,220 Þannig að það eru hversu margir setningar Frere Jacques? 537 00:30:35,220 --> 00:30:38,790 538 00:30:38,790 --> 00:30:39,680 Four. 539 00:30:39,680 --> 00:30:40,460 Great. 540 00:30:40,460 --> 00:30:42,490 Og hvað er gott er að þeir eru allir endurtaka 541 00:30:42,490 --> 00:30:46,990 sama magn af tíma, sem er tveggja. 542 00:30:46,990 --> 00:30:50,730 >> Þannig að við höfum fjórar setningar hver endurtekið tvisvar sinnum. 543 00:30:50,730 --> 00:30:53,590 Og einkum þeir í umferð. 544 00:30:53,590 --> 00:30:55,340 Og það eru margir, margar leiðir til að framkvæma 545 00:30:55,340 --> 00:30:57,520 umferð sem gæti verið gaman að gera. 546 00:30:57,520 --> 00:31:00,260 Ég hef gert það í nokkuð einföld leið hér, 547 00:31:00,260 --> 00:31:05,760 sem er bara að construct-- línuna aðgerð tekur lista af gildum tónlist 548 00:31:05,760 --> 00:31:10,390 og verður það í myndaröð samsetningu með því að beita þeirri myndaröð samsetningu 549 00:31:10,390 --> 00:31:13,000 rekstraraðila. 550 00:31:13,000 --> 00:31:19,540 >> Og þá tefja ég mismunandi hlutum með því að gera þá að byrja með hvíld. 551 00:31:19,540 --> 00:31:22,770 Svo ég byrja með restina af tvær aðgerðir, og þá leif af fjórum ráðstafanir, 552 00:31:22,770 --> 00:31:26,160 og þá leif af sex ráðstafanir, og þá umferð 553 00:31:26,160 --> 00:31:32,290 virkar, eins og við vitum öll þetta lag. 554 00:31:32,290 --> 00:31:37,180 Við sjáum tvær textaskýringar eða breytingar á tónlistinni gildi 555 00:31:37,180 --> 00:31:43,150 sem er að finna í þessari raðbundna fyrirkomulag þætti tónlistar. 556 00:31:43,150 --> 00:31:44,810 Við höfum bæta við rúmmál. 557 00:31:44,810 --> 00:31:48,960 Þetta er fall til að setja inn athugasemdir tónlist með ákveðnu magni. 558 00:31:48,960 --> 00:31:51,320 Þetta er gott dæmi af MIDI merki gangi 559 00:31:51,320 --> 00:31:57,510 frá 0 til 127, sjö bita af upplýsingar sem hægt er að fara. 560 00:31:57,510 --> 00:32:00,650 >> Og then-- við sáum það mjög í stuttu máli, en almenn MIDI 561 00:32:00,650 --> 00:32:02,310 listi yfir allar mismunandi hljóðfæri. 562 00:32:02,310 --> 00:32:04,450 Og það er ekki allt fullt af þeim. 563 00:32:04,450 --> 00:32:11,230 Ef þú notar stafræna hljóð vinnustöð, eins Ableton Live eða Pro Tools, 564 00:32:11,230 --> 00:32:17,560 það er ótrúlega fjölbreyttari af hljóðgerfla og VST hljóðfæri. 565 00:32:17,560 --> 00:32:21,510 En MIDI staðall aðeins hefur nokkra, eða nokkrir tugi. 566 00:32:21,510 --> 00:32:22,799 Og sumir þeirra eru fyndin. 567 00:32:22,799 --> 00:32:25,840 Ég hélt að það væri gaman ef við spiluðum tækið MIDI hljóðfæri 568 00:32:25,840 --> 00:32:30,550 þyrla, og þá Næsta leið gegnum umferð, 569 00:32:30,550 --> 00:32:37,980 við gerðum púða Synth, og þá á þetta corny leiða ferningur bylgja Synth, 570 00:32:37,980 --> 00:32:44,240 og þá rödd ooze, sem eru svolítið óljós um slæma MIDI minn 571 00:32:44,240 --> 00:32:46,410 hljóðgervill, en þeir OK. 572 00:32:46,410 --> 00:32:50,030 >> Og þá sjáum við þetta skulum og í setningafræði frá Haskell, 573 00:32:50,030 --> 00:32:54,030 og þá erum við að spila Allir þessir hlutir saman 574 00:32:54,030 --> 00:32:56,265 með samhliða samsetningu rekstraraðila. 575 00:32:56,265 --> 00:33:00,260 576 00:33:00,260 --> 00:33:02,296 Og við gætum líklega með eitthvað af þessu. 577 00:33:02,296 --> 00:33:07,674 578 00:33:07,674 --> 00:33:08,340 Hér er kóðinn. 579 00:33:08,340 --> 00:33:14,960 Og þú getur séð í C, þar myndi vera mikið af hálsi hreinsa og setja 580 00:33:14,960 --> 00:33:19,760 borðið póstnúmer fyrir þér gæti gert tónlist svona. 581 00:33:19,760 --> 00:33:22,080 Eða önnur forritun tungumál, þú vilt líklega 582 00:33:22,080 --> 00:33:27,210 hafa samskipti við einhvers konar bókasafn eða API og setja allt upp, 583 00:33:27,210 --> 00:33:28,725 og þá þú vilt að hreinsa upp. 584 00:33:28,725 --> 00:33:33,810 En hér í Haskell er, held ég, einu sinni þú fá the hanga af það, ótrúlega 585 00:33:33,810 --> 00:33:35,770 læsileg og mjög svipmikill. 586 00:33:35,770 --> 00:33:38,930 587 00:33:38,930 --> 00:33:43,240 Svo er það framkvæmd af Frere Jacques. 588 00:33:43,240 --> 00:33:43,740 Allt í lagi. 589 00:33:43,740 --> 00:33:47,557 Nú viljum við bæta slagverk, og þetta er svolítið Messier. 590 00:33:47,557 --> 00:33:49,015 Svo skulum taka a líta á stóð. 591 00:33:49,015 --> 00:33:56,880 592 00:33:56,880 --> 00:34:00,540 Svo er stóra hugmynd að gera fullt af listum eða hluta. 593 00:34:00,540 --> 00:34:04,140 Á þeim rúlla í vél, þar voru að jafnaði um kannski átta 594 00:34:04,140 --> 00:34:08,670 10 hrynjandi eða slagverk hlutum. 595 00:34:08,670 --> 00:34:10,159 Og þá nota fullt af tækni. 596 00:34:10,159 --> 00:34:14,889 Og við höfum talað um these-- með brjóta, síur, lambda föll, 597 00:34:14,889 --> 00:34:19,429 varpað yfir lista til að búa til gildi í sumum bilinu 1 til R, R er 16, 598 00:34:19,429 --> 00:34:20,699 eða 32 skref í raðgreininum. 599 00:34:20,699 --> 00:34:23,810 600 00:34:23,810 --> 00:34:29,920 >> Og þá ef það er gildi í þeim lista eins og við erum að keyra í gegnum sequencer, 601 00:34:29,920 --> 00:34:34,190 keyra í gegnum það aftur og yfir, snýr það á að huga, 602 00:34:34,190 --> 00:34:36,060 og að sýni fær gang. 603 00:34:36,060 --> 00:34:42,810 604 00:34:42,810 --> 00:34:47,110 Hér eru allir mismunandi undarlegt leiðir Ég kom upp með að búa til minnismiða. 605 00:34:47,110 --> 00:34:48,940 Prófaðu það á eigin hálf summan þinn. 606 00:34:48,940 --> 00:34:50,360 Það verður hljóð kaldur. 607 00:34:50,360 --> 00:34:53,066 608 00:34:53,066 --> 00:34:54,690 Tími leyfir, við munum fara í gegnum þetta. 609 00:34:54,690 --> 00:34:59,200 En núna, held ég við ættum að kynningu sem við höfum. 610 00:34:59,200 --> 00:35:01,380 Við skulum vona að þetta fer allt í lagi. 611 00:35:01,380 --> 00:35:02,670 >> Svo er þetta GHCI. 612 00:35:02,670 --> 00:35:06,580 613 00:35:06,580 --> 00:35:09,121 Og við munum hlaða skrá Ég kalla song.lhs, 614 00:35:09,121 --> 00:35:10,620 sem er skrá sem ég sýndi bara þig. 615 00:35:10,620 --> 00:35:11,470 OK, frábært. 616 00:35:11,470 --> 00:35:15,010 Eins Connor sagði áðan, það saman, það gerðina köflóttur, 617 00:35:15,010 --> 00:35:18,380 svo ég get andað mikið auðveldara. 618 00:35:18,380 --> 00:35:20,010 Það er ekki að fara að blása upp á mér. 619 00:35:20,010 --> 00:35:22,720 >> Ég vissi langar að sýna þér eitthvað gagnlegt. 620 00:35:22,720 --> 00:35:25,900 Þú getur séð að mát hlaðinn heitir 50. 621 00:35:25,900 --> 00:35:28,240 Þú getur flett því upp á. 622 00:35:28,240 --> 00:35:32,092 Og þetta er svo gaman um doing-- kannski hvað 623 00:35:32,092 --> 00:35:34,550 þú ert að gera í Haskell er ekki kallað hugbúnaðarþróun, 624 00:35:34,550 --> 00:35:36,980 en þú getur gert mikið af gaman efni á eigin spýtur. 625 00:35:36,980 --> 00:35:42,410 Og workflow er mjög gott eins og samanborið við fullt af öðrum tungumálum, 626 00:35:42,410 --> 00:35:45,872 vegna þess að þú getur séð í mjög læsileg leið hvað er að gerast. 627 00:35:45,872 --> 00:35:47,830 Þannig að við sjáum að við höfum allar þessar setningar, sem 628 00:35:47,830 --> 00:35:53,760 eru listar af tónlist pitches, og þá erum við byggja þetta upp í eitthvað stærra, 629 00:35:53,760 --> 00:35:55,220 sem er tónlist lag. 630 00:35:55,220 --> 00:35:58,450 Það er söngleikur eining. 631 00:35:58,450 --> 00:36:05,545 Og þá getum við spilað þetta allt með virka kallast spila tónlist. 632 00:36:05,545 --> 00:36:09,040 Þú getur séð að hérna. 633 00:36:09,040 --> 00:36:11,310 Sem er bara að spila. 634 00:36:11,310 --> 00:36:15,040 >> Ég ætti say-- ég ekki tala um þetta dollaramerki sem er alls staðar. 635 00:36:15,040 --> 00:36:17,980 Dollaramerki er annar infix rekstraraðila. 636 00:36:17,980 --> 00:36:22,500 En það hefur lægsta forgang hvaða rekstraraðila, sem í raun 637 00:36:22,500 --> 00:36:24,960 þýðir að allt á vinstri á dollaramerki 638 00:36:24,960 --> 00:36:28,460 og rétt dollaramerki, við erum að fara að fá metið áður en það. 639 00:36:28,460 --> 00:36:31,430 Svo það er tegund af eins og annað leið að bæta sviga. 640 00:36:31,430 --> 00:36:33,980 641 00:36:33,980 --> 00:36:36,220 >> CONNOR HARRIS: Það er í grundvallaratriðum virka samsetningu. 642 00:36:36,220 --> 00:36:40,026 Og tryggir að þú have-- ekki hvort þú þarft aðgerðir annaðhvort hlið eða infix 643 00:36:40,026 --> 00:36:42,900 rekstraraðila á hvorri hlið, þeir vilja ekki tengja yfir það og gefa þér 644 00:36:42,900 --> 00:36:46,030 óvæntar niðurstöður. 645 00:36:46,030 --> 00:36:49,790 >> STEPHEN KREWSON: Svo við can-- nota það, getum við kalla. 646 00:36:49,790 --> 00:36:51,415 Fyrst munum við spila það án trommur. 647 00:36:51,415 --> 00:37:00,330 648 00:37:00,330 --> 00:37:03,170 Það er þyrla, MIDI þyrla. 649 00:37:03,170 --> 00:37:05,495 >> [TÓNLIST spila] 650 00:37:05,495 --> 00:37:08,525 651 00:37:08,525 --> 00:37:09,525 Það er ferningur bylgja. 652 00:37:09,525 --> 00:37:24,520 653 00:37:24,520 --> 00:37:25,490 Röddin ooze. 654 00:37:25,490 --> 00:37:27,630 Og þú getur raunverulega fara villt með þetta. 655 00:37:27,630 --> 00:37:30,872 Ég tók nokkuð einföld, vegna þess að ég vissi að ég ætti ekki að bíta af 656 00:37:30,872 --> 00:37:31,830 en ég gæti tyggja. 657 00:37:31,830 --> 00:37:36,460 Bara að halda það frekar einfalt að sýna helstu hugmyndir. 658 00:37:36,460 --> 00:37:39,952 En þá var ég eins, höfum við fékk að bæta nokkrum trommur til þessa. 659 00:37:39,952 --> 00:37:41,910 Bara vegna þess að þetta er svolítið óskiljanlegt, 660 00:37:41,910 --> 00:37:45,790 og ég vissi ekki notað Heiti tromma hlutum, 661 00:37:45,790 --> 00:37:49,490 Ég kortlagði them-- því þeir eru hluti af því sem talin voru upp bekknum, 662 00:37:49,490 --> 00:37:51,500 Ég varpað þeim að ints. 663 00:37:51,500 --> 00:37:53,120 Einn er eins og bassa tromma. 664 00:37:53,120 --> 00:37:54,370 Zero er eins og heilbrigður. 665 00:37:54,370 --> 00:37:56,000 Seven er a hár hattur. 666 00:37:56,000 --> 00:38:00,920 Og niður í hér þar sem aðgerðir fá smá meira af handahófi, 667 00:38:00,920 --> 00:38:02,100 þetta eru eins og Conga trommur. 668 00:38:02,100 --> 00:38:08,360 >> Svo ef þú heldur about-- kannski skemmtileg leið til að innleiða tromma vél 669 00:38:08,360 --> 00:38:12,830 er að nota mjög skipulegan mynstur á bassa tromma þinn. 670 00:38:12,830 --> 00:38:17,640 Svo til dæmis, á að sía yfir Listinn með öllu sem gefur aftur 671 00:38:17,640 --> 00:38:20,590 1 þegar það er tekið mát 04. 672 00:38:20,590 --> 00:38:27,190 Þannig að ég fá 1, 5, 9, 13, 17-- þannig að þetta er fyrsta slá af hvert mál. 673 00:38:27,190 --> 00:38:32,860 >> Og þá er þetta sama hlutur færst í tveimur þrepum. 674 00:38:32,860 --> 00:38:33,850 Svo er það offbeat. 675 00:38:33,850 --> 00:38:37,480 Þannig að þetta væri eitthvað eins og a hár hattur. 676 00:38:37,480 --> 00:38:39,640 Og svo aftur, hérna, það er lítið af handahófi, 677 00:38:39,640 --> 00:38:41,080 vegna þess að við erum að gera Conga trommur. 678 00:38:41,080 --> 00:38:44,180 Og ég hef nokkrar maracas hristur hérna líka. 679 00:38:44,180 --> 00:38:50,280 >> Svo ég gæti hringt leika tromma vél, en það myndi fara á eilífu, 680 00:38:50,280 --> 00:38:53,700 og það gæti byrjað grabbing upp allt minni í tölvunni minni. 681 00:38:53,700 --> 00:38:57,090 Svo ég ætla að kalla þessa aðgerð spila tónlist, sem eins og við munum sjá, 682 00:38:57,090 --> 00:39:02,020 nota stýft samhliða samsetningu til að spila smá Frere Jacques lag okkar 683 00:39:02,020 --> 00:39:04,200 með þessa skrýtnu tromma vél. 684 00:39:04,200 --> 00:39:06,190 Svo skulum taka a líta. 685 00:39:06,190 --> 00:39:10,920 Og vinsamlegast ekki bæta á minn fyrirkomulag á öllum tromma hlutum. 686 00:39:10,920 --> 00:39:13,375 Ekki sérgrein mín, en ég hafði mikið gaman að gera það. 687 00:39:13,375 --> 00:39:17,678 688 00:39:17,678 --> 00:39:20,654 >> [TÓNLIST spila] 689 00:39:20,654 --> 00:39:52,260 690 00:39:52,260 --> 00:39:56,980 >> Svo auðvitað, þetta er allt svolítið ekki eins gaman 691 00:39:56,980 --> 00:40:01,100 ef við getum ekki breytt henni að skora svo kannski það 692 00:40:01,100 --> 00:40:04,650 mætti ​​túlka af manna flytjandi. 693 00:40:04,650 --> 00:40:06,535 Svo ég mun ekki keyra það hér. 694 00:40:06,535 --> 00:40:07,910 Ég hef nú þegar skilað skrár. 695 00:40:07,910 --> 00:40:10,280 Þú getur séð að það er punktur LilyPond file-- og þetta 696 00:40:10,280 --> 00:40:14,500 verður Segue mína yfir að Connor-- og punktur MIDI skrá, 697 00:40:14,500 --> 00:40:18,610 og punktur PDF skrá, sem er hvað LilyPond mun að lokum mynda. 698 00:40:18,610 --> 00:40:23,770 >> En þetta eru þeir forskriftir, og ég ætla bara keyra þá með hjálp valkosti þeirra. 699 00:40:23,770 --> 00:40:28,090 Ef þú færð þetta upp og keyra með Euterpea, getur þú búið til MIDI skrá. 700 00:40:28,090 --> 00:40:31,160 Og síðan úr MIDI skrá með þessum MIDI 2LY áætlun, 701 00:40:31,160 --> 00:40:34,930 getur þú búið til Lily Pond skrá, og þá 702 00:40:34,930 --> 00:40:37,974 hægt að búa til PDF skora. 703 00:40:37,974 --> 00:40:39,390 Og við ættum að kíkja á þetta. 704 00:40:39,390 --> 00:40:52,599 705 00:40:52,599 --> 00:40:55,140 Svo Connor mun líklega sýna þér hvernig á að annotate þetta betur, 706 00:40:55,140 --> 00:41:02,570 en þetta er Frere Jacques eins mynda af mér í Euterpea. 707 00:41:02,570 --> 00:41:07,300 Það er bara í C. Ég ætti að hafa mynstrağur út hvað hakk það er í raun í. 708 00:41:07,300 --> 00:41:11,090 En það er leiðslan fyrir hvernig þú gerir það með því. 709 00:41:11,090 --> 00:41:12,950 Við skulum tala meira um LilyPond. 710 00:41:12,950 --> 00:41:15,780 >> CONNOR HARRIS: OK skulum sjá. 711 00:41:15,780 --> 00:41:19,480 712 00:41:19,480 --> 00:41:21,419 Vissir þú nefnir læra HASKELL? 713 00:41:21,419 --> 00:41:22,460 STEPHEN KREWSON: Ó já. 714 00:41:22,460 --> 00:41:23,480 Skoðaðu læra HASKELL. 715 00:41:23,480 --> 00:41:24,410 Það er í auðlindir. 716 00:41:24,410 --> 00:41:26,830 Það er hvernig ég byrjaði læra, og það er frábært. 717 00:41:26,830 --> 00:41:27,580 Ekki heimsk nám. 718 00:41:27,580 --> 00:41:28,829 >> CONNOR HARRIS: Svo það er á netinu. 719 00:41:28,829 --> 00:41:34,760 Svo strákur sem heitir [inaudible] learnyouahaskell.com, engin bil. 720 00:41:34,760 --> 00:41:37,065 Málfræði er veikur. 721 00:41:37,065 --> 00:41:38,690 STEPHEN KREWSON: Það er myndskreytt líka. 722 00:41:38,690 --> 00:41:39,440 CONNOR HARRIS: Svo er það LilyPond? 723 00:41:39,440 --> 00:41:42,480 Það er declarative forritun tungumál fyrir tónlist typesetting. 724 00:41:42,480 --> 00:41:45,480 Svo declarative-- þú getur hugsa um hlutina eins og HTML, 725 00:41:45,480 --> 00:41:50,900 þar sem þú ert ekki saying-- HTML ekki segja hvernig vafrar ættu 726 00:41:50,900 --> 00:41:52,180 Gjaldið síður skref fyrir skref. 727 00:41:52,180 --> 00:41:54,096 Það er bara að segja þetta er rituð lýsing 728 00:41:54,096 --> 00:41:56,100 af því sem þú vilt að síðu til að líta út. 729 00:41:56,100 --> 00:41:59,310 >> Og þá er það líka program sem safnar þetta tungumál, 730 00:41:59,310 --> 00:42:02,300 eða það að lesa í sínum og þá í raun gerir typesetting fyrir þig, 731 00:42:02,300 --> 00:42:05,570 og það spits út þessar dásamlegt að leita PDF skora. 732 00:42:05,570 --> 00:42:08,250 Þú getur líka fengið PNG snið eða hvað. 733 00:42:08,250 --> 00:42:10,300 Góð leið til að hugsa þessa er á hliðstæðan hátt 734 00:42:10,300 --> 00:42:16,620 er að LaTeX er tegund af eins LillyPond, en fyrir bara venjulegt typesetting. 735 00:42:16,620 --> 00:42:20,360 Þannig að í stað of-- það er ekki WYSIWYG, Það sem þú sérð 736 00:42:20,360 --> 00:42:22,960 Er það sem þú færð, eins og, segja Lokaþáttur er, eða Sibelius, 737 00:42:22,960 --> 00:42:27,430 eða Microsoft Word, þar sem þú getur slegið í rauntíma og drög hlutir í rauntíma 738 00:42:27,430 --> 00:42:31,340 og sjá breytingar samstundis. 739 00:42:31,340 --> 00:42:32,140 >> Það er texti byggt. 740 00:42:32,140 --> 00:42:35,290 Þú þarft að safna saman þínum skorar með sér forrit 741 00:42:35,290 --> 00:42:37,090 og fá út PDFs síðar. 742 00:42:37,090 --> 00:42:43,320 Þetta er aðeins minna þægilegt fyrir notkun ef þú ert 743 00:42:43,320 --> 00:42:46,520 reyna að skrifa beint í a skora og þú ert 744 00:42:46,520 --> 00:42:48,620 reyna að semja á tölvunni. 745 00:42:48,620 --> 00:42:50,830 En það eru fullt af kostum fyrir það. 746 00:42:50,830 --> 00:42:56,110 Einn, það er litið mikið betur, vegna LillyPond getur raunverulega 747 00:42:56,110 --> 00:42:58,210 taka tíma til að gera án ákvarðanir almennilega, 748 00:42:58,210 --> 00:43:02,380 ólíkt Sibelius eða Finale, sem hafa að gera málamiðlun reiknirit þannig 749 00:43:02,380 --> 00:43:05,020 að þeir geta sýna hlutir í rauntíma. 750 00:43:05,020 --> 00:43:07,660 >> Svo hvers vegna er LilyPond-- tölvugrafík er erfitt. 751 00:43:07,660 --> 00:43:10,535 Ef þú ert að gera eitthvað með tónlist og þú vilt að skrifa út skora, 752 00:43:10,535 --> 00:43:13,900 þú vilt ekki að skrifa út öllu á þig 753 00:43:13,900 --> 00:43:19,040 byrja með hvernig á að teikna starfsfólk og hvernig á að teikna minnisblöð. 754 00:43:19,040 --> 00:43:21,020 Það er mjög erfitt. Það hefur verið gert áður. 755 00:43:21,020 --> 00:43:22,170 Þú ert fínn. 756 00:43:22,170 --> 00:43:26,200 >> Ef þú vilt nota Finale eða Sibelius, skrá snið fyrir þeim hlutum 757 00:43:26,200 --> 00:43:30,180 eru mjög flókið, og þú getur ekki raunverulega nota þá kerfisbundið. 758 00:43:30,180 --> 00:43:35,020 Þú getur opnað upp Sibelius með Finale og fara í File Export sem PDF sjálfur, 759 00:43:35,020 --> 00:43:37,600 en þú getur í raun ekki kalla það úr handriti. 760 00:43:37,600 --> 00:43:40,440 LillyPond, getur þú hringt frá þeim skriftum. 761 00:43:40,440 --> 00:43:44,397 Þú getur auðveldlega árétta LillyPond með LaTeX. 762 00:43:44,397 --> 00:43:47,230 Ég mun ekki hafa þessi mikinn tíma til að fara í þessa tækni núna, 763 00:43:47,230 --> 00:43:48,321 en þeir eru. 764 00:43:48,321 --> 00:43:50,070 Ef þú vilt líta í LillyPond bók, 765 00:43:50,070 --> 00:43:53,760 það er forrit sem kemur með LillyPond útbreiðsla, 766 00:43:53,760 --> 00:43:57,030 og það er fyrir iterating LillyPond brot í LaTeX 767 00:43:57,030 --> 00:44:00,340 ef þú vilt gera eitthvað eins og stór tónlistarfræðum skjal 768 00:44:00,340 --> 00:44:02,289 með dæmum, til dæmis. 769 00:44:02,289 --> 00:44:04,580 Og það er gott kunnátta fyrir líf ef þú ert að gera neitt 770 00:44:04,580 --> 00:44:05,770 með tónlist, ekki bara CS50. 771 00:44:05,770 --> 00:44:09,320 Ég hef notað LillyPond fyrir alla af samsetningu verkefnum mínum 772 00:44:09,320 --> 00:44:11,880 þar sem ég var í grundvallaratriðum a háttsettur í menntaskóla. 773 00:44:11,880 --> 00:44:13,455 >> Svo hér eru nokkrar einfaldar dæmi. 774 00:44:13,455 --> 00:44:17,490 775 00:44:17,490 --> 00:44:21,060 Þetta er í grundvallaratriðum fulltrúi af því hversu erfitt 776 00:44:21,060 --> 00:44:23,481 að flestir myndu andlit það þeir voru að reyna 777 00:44:23,481 --> 00:44:24,980 að nota LilyPond til einfaldra verkefna. 778 00:44:24,980 --> 00:44:29,519 Þetta fyrsta er upphaf til Chorale forleikur eftir Bach. 779 00:44:29,519 --> 00:44:31,810 Þetta botn einn er útdráttur frá einum af verkum mínum, 780 00:44:31,810 --> 00:44:34,650 og það er bara þarna til að sýna þér hluti eins og [inaudible] 781 00:44:34,650 --> 00:44:38,550 setja margar línur í sama starfsfólk hvernig Lyric undersetting virkar. 782 00:44:38,550 --> 00:44:41,350 783 00:44:41,350 --> 00:44:46,110 Lyric undirlög eru hlutur sem er mjög auðvelt að nota LilyPond fyrir Kórsöngur. 784 00:44:46,110 --> 00:44:48,814 >> Og svo þá er það meira flóknar dæmi hér. 785 00:44:48,814 --> 00:44:50,980 Allt eru þetta gert í LilyPond og þeir eru gerlegt. 786 00:44:50,980 --> 00:44:55,280 Þetta fyrsta útdráttur er frá [Inaudible] af [inaudible]. 787 00:44:55,280 --> 00:44:58,860 Og þetta [inaudible] frá a stykki fyrir sóló bassa 788 00:44:58,860 --> 00:45:03,550 flautu eftir [inaudible] sem er longtime-- sem 789 00:45:03,550 --> 00:45:07,101 var longtime félagi af tónlist deild hér, held ég. 790 00:45:07,101 --> 00:45:08,600 Ég er ekki viss hvar hann er farinn burt til. 791 00:45:08,600 --> 00:45:12,410 En hann var ráðgjafi við Harvard Tónskáld Association í langan tíma. 792 00:45:12,410 --> 00:45:13,530 Wonderful maður. 793 00:45:13,530 --> 00:45:16,920 Og hann skrifar smá tónlist sem hefur mjög flókið ritháttur sem LillyPond 794 00:45:16,920 --> 00:45:20,500 getur þó séð mjög vel. 795 00:45:20,500 --> 00:45:26,030 >> Svo bara til að gefa þér tilfinningu um hvað getu Þessi hlutur er are-- svo 796 00:45:26,030 --> 00:45:28,960 að innri af LillyPond eru mjög flókið. 797 00:45:28,960 --> 00:45:31,060 Og þú getur notað það fyrir fyrir löngu, þar á meðal 798 00:45:31,060 --> 00:45:32,520 fyrir suma nokkuð flókið það, án þess að 799 00:45:32,520 --> 00:45:34,060 þurfa að vita mikið um þau. 800 00:45:34,060 --> 00:45:38,720 En Grunnhugmyndin er að á lægsta stigi, atóm LillyPonds 801 00:45:38,720 --> 00:45:39,970 eru athugasemdir. 802 00:45:39,970 --> 00:45:42,761 Tónarnir innihalda samhengi kallast raddir. 803 00:45:42,761 --> 00:45:44,510 Þannig að rödd samhengi grundvallaratriðum jafngildir 804 00:45:44,510 --> 00:45:47,410 að einni línu af polyphony. 805 00:45:47,410 --> 00:45:49,410 Og þá samhengi getur verið sem hierarchically 806 00:45:49,410 --> 00:45:53,590 í hærri stigi þær sem tákna starfsfólk á skora 807 00:45:53,590 --> 00:45:56,750 eða stærri hópa eins og píanó starfsfólk eða kór starfsfólk, 808 00:45:56,750 --> 00:45:58,990 og þá loksins allt skora samhengi. 809 00:45:58,990 --> 00:46:02,260 Og þú getur raunverulega fela margar skora í bók. 810 00:46:02,260 --> 00:46:05,770 >> Og sérhver samhengi hefur Fjöldi meðfylgjandi Leturgrafari. 811 00:46:05,770 --> 00:46:08,340 Ef þú horfir í gegnum Innihald samhengi 812 00:46:08,340 --> 00:46:14,410 og prenta ákveðna tákn eða ákveðinni tegund af táknum sem þörf krefur. 813 00:46:14,410 --> 00:46:17,840 Svo að allar raddir samhengi, það er [inaudible] athugasemdir 814 00:46:17,840 --> 00:46:24,270 Engraver sem er í grundvallaratriðum a virka eða hlutur sem skrifar út allar huga 815 00:46:24,270 --> 00:46:26,290 höfuð á réttum hlutum á síðuna. 816 00:46:26,290 --> 00:46:29,510 Þá er það skarð Engraver, sem skrifar út clefts á starfsfólki. 817 00:46:29,510 --> 00:46:31,517 Þá er það Metronome merkja Engraver sem 818 00:46:31,517 --> 00:46:33,100 skrifar út Metronome merki í einkunn. 819 00:46:33,100 --> 00:46:36,410 Og allt þetta passar nokkuð vel inn í stigveldi. 820 00:46:36,410 --> 00:46:39,500 Og það er mjög, mjög, mjög customizable, sem þú þarft 821 00:46:39,500 --> 00:46:42,880 ef þú vilt fá svoleiðis. 822 00:46:42,880 --> 00:46:45,730 >> Svo allir samhengi hafa fullt af mismunandi eiginleikum 823 00:46:45,730 --> 00:46:52,410 að þú getur breytt um allt frá bil til ýmissa font 824 00:46:52,410 --> 00:46:54,942 val til stærðum af hlutum. 825 00:46:54,942 --> 00:46:56,900 Ef þú vilt til að gera enn flóknari hluti, 826 00:46:56,900 --> 00:46:59,210 það er embed forskriftarþarfir tungumál. 827 00:46:59,210 --> 00:47:01,820 Þeir nota kerfi, sem er mállýska af Lisp. 828 00:47:01,820 --> 00:47:04,960 Þetta hefur sennilega þýtt neitt að þér. 829 00:47:04,960 --> 00:47:06,900 En í grundvallaratriðum, a kerfi öðrum virknihóp 830 00:47:06,900 --> 00:47:09,500 forritunarmál, meira eða minna. 831 00:47:09,500 --> 00:47:10,800 >> STEPHEN KREWSON: The jafntefli í. 832 00:47:10,800 --> 00:47:12,690 >> CONNOR HARRIS: Já. 833 00:47:12,690 --> 00:47:15,390 Það er góð jafntefli í, býst ég við. 834 00:47:15,390 --> 00:47:20,150 Og það er notað sem kennslutæki tungumál, reyndar, niður Mass Ave. Í MIT. 835 00:47:20,150 --> 00:47:26,590 Og það er mjög vel fyrir LillyPond fyrir ýmsum tæknilegum ástæðum. 836 00:47:26,590 --> 00:47:30,317 >> Og svo ef þú vilt gera einfalt klip háðir conditionals, 837 00:47:30,317 --> 00:47:32,900 fyrir example-- það er víst högum skora sem er mætt, 838 00:47:32,900 --> 00:47:36,495 gera breytingar á skipulag eða whatnot-- þá 839 00:47:36,495 --> 00:47:37,620 þessir aðstaða þar. 840 00:47:37,620 --> 00:47:38,667 Þeir eru flókið. 841 00:47:38,667 --> 00:47:40,250 Svo hér er frekar einfalt kóða sýni. 842 00:47:40,250 --> 00:47:43,810 Það er fimm línur. 843 00:47:43,810 --> 00:47:46,120 Í grundvallaratriðum, ég skilgreina tvær starfsfólk. 844 00:47:46,120 --> 00:47:46,904 Það er í 3/4. 845 00:47:46,904 --> 00:47:48,695 Fyrsti starfsfólk hefur fest taktur merkja, 846 00:47:48,695 --> 00:47:51,110 en það er í raun að fara að fara á alla skora, 847 00:47:51,110 --> 00:47:54,960 vegna taktur skytta eru á að skora stig. 848 00:47:54,960 --> 00:47:59,044 The Metronome árangur Engraver er fest að skora samhengi. 849 00:47:59,044 --> 00:48:01,460 Það eru mismunandi lyklar, vegna [inaudible] Engraver 850 00:48:01,460 --> 00:48:02,710 er fest á starfsfólk. 851 00:48:02,710 --> 00:48:04,441 Þú getur raunverulega gert er. 852 00:48:04,441 --> 00:48:06,190 Úrtakið sem ég skrifaði er reyndar í C-dúr, 853 00:48:06,190 --> 00:48:07,990 en það er bara til að sýna að þú getur haft 854 00:48:07,990 --> 00:48:09,570 mismunandi lyklar í mismunandi starfsfólk. 855 00:48:09,570 --> 00:48:15,710 Og helstu setningafræði er þú skrifar athugið nöfn með E, F, G, hvað sem er. 856 00:48:15,710 --> 00:48:18,910 Ef þú vilt gera accidentals, þú viðskeyti er eða ES. 857 00:48:18,910 --> 00:48:22,640 Þetta er frá hollenska musicological samninga. 858 00:48:22,640 --> 00:48:28,290 >> Og til að gera áttund hleypur, þú þarft að nota þetta hökum, komma eða úrfellingarmerki. 859 00:48:28,290 --> 00:48:30,580 Hlutfallsleg þýðir bara hvað þú ert með í huga, 860 00:48:30,580 --> 00:48:34,080 það verður sjálfkrafa plaec í áttund næst fyrri einn. 861 00:48:34,080 --> 00:48:37,624 Og ef þú vilt að stökkva meira en a fifth-- segja fimmta eða more-- 862 00:48:37,624 --> 00:48:39,165 þá verður þú að nota [inaudible]. 863 00:48:39,165 --> 00:48:42,580 En annars, þú þarft ekki að tilgreina áttund á hverjum einasta huga. 864 00:48:42,580 --> 00:48:46,130 >> Og miðað C, prime, og C, sem þú tilgreinir bara middle C 865 00:48:46,130 --> 00:48:48,630 og stöð C, sérstaklega fyrstu skýringum. 866 00:48:48,630 --> 00:48:55,020 Síðan sem þú hefur þessar starfsfólk sem skipuleggja þessir tveir raddir eða sýni af tónlist, 867 00:48:55,020 --> 00:48:56,730 og þú hefur einkunnina. 868 00:48:56,730 --> 00:48:58,440 Og það lítur út eins og þetta. 869 00:48:58,440 --> 00:49:01,780 870 00:49:01,780 --> 00:49:05,380 >> Ef þú vilt að taka tíma til að eintak sem sýnishorn af LillyPond 871 00:49:05,380 --> 00:49:07,530 kóðann á fyrri renna niður hér, og þú 872 00:49:07,530 --> 00:49:09,030 getur skrifað það fyrir LillyPond sjálfur. 873 00:49:09,030 --> 00:49:11,280 Ég veit að við höfum fengið eitthvað sem lítur mikið eins og þetta. 874 00:49:11,280 --> 00:49:17,236 875 00:49:17,236 --> 00:49:19,610 Svo er það önnur tækni heitir Music XML haldið 876 00:49:19,610 --> 00:49:22,030 algjörlega mismunandi fólk. 877 00:49:22,030 --> 00:49:28,150 XML er rituð Data structure-- I ætti ekki að segja gögn structure-- segja 878 00:49:28,150 --> 00:49:29,580 samlíking kort konar. 879 00:49:29,580 --> 00:49:33,800 Og það er hannað til að halda Innbyrðis gögn mjög vel. 880 00:49:33,800 --> 00:49:37,050 HTML, til dæmis, er tegund af XML. 881 00:49:37,050 --> 00:49:41,090 Og þú getur sagt XML því þeir höfðu allir horn sviga og horn 882 00:49:41,090 --> 00:49:44,700 krappi Slash merki að sýna gögn sviðum. 883 00:49:44,700 --> 00:49:47,390 >> Ég hef ekki kóða dæmi frá Music XML. 884 00:49:47,390 --> 00:49:50,450 Þú getur fundið það sjálfur. 885 00:49:50,450 --> 00:49:53,735 Í grundvallaratriðum, ástæðan sem þú vilt kannski til að nota XML sem millistigsins 886 00:49:53,735 --> 00:49:55,980 er fyrst af öllu, það er að skiptast snið 887 00:49:55,980 --> 00:50:02,301 fyrir grundvallaratriðum every-- ég ætti ekki að segja hvert, en fullt af mismunandi skora 888 00:50:02,301 --> 00:50:02,800 rithöfundar. 889 00:50:02,800 --> 00:50:04,966 Svo ef þú skrifar í Tónlist XML, ekki aðeins hægt að LillyPond 890 00:50:04,966 --> 00:50:08,080 lesa það með hjálp þessarar Auxilary forrit sem heitir Tónlist XML til að LY, 891 00:50:08,080 --> 00:50:11,360 en einnig Finale getur lesið það, Sibelius getur lesið það. 892 00:50:11,360 --> 00:50:14,770 Það fer eftir því hvernig innri hlut þinn stigveldi virkar fyrir hönd tónlist, 893 00:50:14,770 --> 00:50:18,820 það gæti verið auðveldara að skrifa út á tónlist XML en að LillyPond 894 00:50:18,820 --> 00:50:22,410 og bara að treysta á Music XML að LY að gera viðskipti. 895 00:50:22,410 --> 00:50:24,282 >> Ég held ekki [inaudible] hefur tónlist XML. 896 00:50:24,282 --> 00:50:25,490 STEPHEN KREWSON: Það skiptir ekki. 897 00:50:25,490 --> 00:50:26,340 Einhver er að vinna á það, þó. 898 00:50:26,340 --> 00:50:27,090 >> CONNOR HARRIS: OK. 899 00:50:27,090 --> 00:50:31,040 Euterpea er ekki með Music XML framleiðsla virka enn. 900 00:50:31,040 --> 00:50:35,340 Ef þú vilt lokaverkefni hugmynd, kannski komast í samband við krakkar 901 00:50:35,340 --> 00:50:38,620 sem Stephen veit, og þeir gætu notað hjálp. 902 00:50:38,620 --> 00:50:40,992 >> STEPHEN KREWSON: Ég myndi elska það. 903 00:50:40,992 --> 00:50:43,450 CONNOR HARRIS: Einnig, í grundvallaratriðum, fresti forritunarmál 904 00:50:43,450 --> 00:50:46,610 sem er þess virði salt þess þegar hefur XML bókasafn, 905 00:50:46,610 --> 00:50:51,030 svo þú getur innvortis umbreyta öllum af tónlist í einhverjum hlut 906 00:50:51,030 --> 00:50:54,120 að XML bókasafn getur skrifað út sem myndi þurfa færri 907 00:50:54,120 --> 00:50:57,470 breytingar á innri uppbygging fyrir hvað tónlist hluti sem þú 908 00:50:57,470 --> 00:51:00,310 langar að skrifa en skrifa það beint í LillyPond vildi. 909 00:51:00,310 --> 00:51:04,380 Þá bara prenta það út með XML með XML bókasöfnum í þínu tungumáli, 910 00:51:04,380 --> 00:51:07,260 sem tryggir að það er setningafræðilega rétt og allt, 911 00:51:07,260 --> 00:51:08,720 og þá umbreyta það til LillyPond. 912 00:51:08,720 --> 00:51:11,060 Svo tækni sem þú might vilja til að líta inn í ef þú ert að gera eitthvað 913 00:51:11,060 --> 00:51:11,650 svona. 914 00:51:11,650 --> 00:51:14,490 915 00:51:14,490 --> 00:51:16,370 >> [Inaudible], annar auxilarry tækni. 916 00:51:16,370 --> 00:51:21,700 Þetta er í grundvallaratriðum Tech Works eða Tech Studio fyrir LillyPond. 917 00:51:21,700 --> 00:51:25,380 Svo það býður hjálp með setningafræði, með sniðmát 918 00:51:25,380 --> 00:51:28,770 fyrir ýmsar algengar samsetningar hljóðfæri. 919 00:51:28,770 --> 00:51:32,780 Það gerir hættu skjár útsýni svo þú getur haft númerið þitt í einum glugga 920 00:51:32,780 --> 00:51:37,350 og PDF í öðrum glugga og smelltu á stöðum í PDF 921 00:51:37,350 --> 00:51:40,650 til að hoppa til viðeigandi blettur í kóðann þinn. 922 00:51:40,650 --> 00:51:45,330 Þetta er gagnlegt ef þú ert í raun skrifa LillyPond skrár sjálfur 923 00:51:45,330 --> 00:51:47,400 en ef þú ert að búa til þá kerfisbundið. 924 00:51:47,400 --> 00:51:51,230 En aftur, það er eitthvað gagnlegt að hafa. 925 00:51:51,230 --> 00:51:51,970 >> Great. 926 00:51:51,970 --> 00:51:55,860 Annar resources-- ég bara fara í gegnum þetta mjög fljótt. 927 00:51:55,860 --> 00:52:01,270 LillyPond manuals-- LillyPond hefur framúrskarandi skjöl á heimasíðu sinni. 928 00:52:01,270 --> 00:52:02,270 Þeir hafa eitthvert. 929 00:52:02,270 --> 00:52:03,478 Þeir hafa setningafræði tilvísun. 930 00:52:03,478 --> 00:52:07,010 Þeir hafa hundruð snifsi fyrir ýmsum litlum hlutum 931 00:52:07,010 --> 00:52:09,930 Yo gæti þurft að gera til að sýna fram á ýmsar getu. 932 00:52:09,930 --> 00:52:12,250 Ef þú vilt nota forskriftarþarfir tungumál 933 00:52:12,250 --> 00:52:14,740 eða gera ítarlegri customizations, þá er það 934 00:52:14,740 --> 00:52:16,730 innri tilvísun á þessari vefslóð. 935 00:52:16,730 --> 00:52:21,950 Ef þú vilt nota Tónlist XML, það er sem URL, musicxml.com/tutorial. 936 00:52:21,950 --> 00:52:27,960 >> Og svo ef þú þarft að læra kerfi vegna þess að þú vilt í raun að nota 937 00:52:27,960 --> 00:52:30,960 forskriftarþarfir aðstöðu í LillyPond, þá er það [inaudible] kallaði 938 00:52:30,960 --> 00:52:32,918 Structured túlkun tölvuforrit, 939 00:52:32,918 --> 00:52:35,820 sem er ekki aðeins í annað Mesta CS Kennslubók alltaf written-- 940 00:52:35,820 --> 00:52:39,770 finna mér eftir ef þú vilt vita það sem ég held að mesta einn is-- 941 00:52:39,770 --> 00:52:43,580 en það er líka mjög gott kynning á tungumáli rétta. 942 00:52:43,580 --> 00:52:46,630 Þú þarft ekki meira en Fyrstu köflum. 943 00:52:46,630 --> 00:52:47,827 >> Og það er það. 944 00:52:47,827 --> 00:52:48,410 Einhverjar spurningar? 945 00:52:48,410 --> 00:52:54,068 946 00:52:54,068 --> 00:52:57,972 >> STUDENT: Hvar get ég sótt mynda Frere þinn Jacques 947 00:52:57,972 --> 00:53:01,050 svo ég geti sett það á minn iPod? 948 00:53:01,050 --> 00:53:07,574 >> STEPHEN KREWSON: Jæja, getur þú skrifað út að sumir WAV skrá í Euterpea. 949 00:53:07,574 --> 00:53:08,490 Og þú hefur númerið. 950 00:53:08,490 --> 00:53:10,000 Það er á GitHub. 951 00:53:10,000 --> 00:53:15,590 Búðu til þína eigin tilbrigði af Frere Jacques eftir CS50 býflugnabú huga. 952 00:53:15,590 --> 00:53:17,095 Það væri frábært. 953 00:53:17,095 --> 00:53:18,220 CONNOR HARRIS: Einhver annar? 954 00:53:18,220 --> 00:53:20,261 STEPHEN KREWSON: Við þurfum betri bassa tromma líka. 955 00:53:20,261 --> 00:53:21,935 Það er mjög slæmt. 956 00:53:21,935 --> 00:53:26,565 >> STUDENT: Euterpea hefur ekki aðeins samsetningu hlið, en signal-- 957 00:53:26,565 --> 00:53:27,440 STEPHEN KREWSON: Já. 958 00:53:27,440 --> 00:53:30,100 Í raun, vinna ég gerði í Euterpea þegar ég 959 00:53:30,100 --> 00:53:33,450 tók this-- það er útskrifast námskeið í Yale sem 960 00:53:33,450 --> 00:53:35,900 notar it-- var á traustum myndun. 961 00:53:35,900 --> 00:53:39,810 Svo er það mjög ágætur leið með örvum 962 00:53:39,810 --> 00:53:46,150 og sumir af the merki sem við sáum af semja saman merki aðgerðir. 963 00:53:46,150 --> 00:53:50,610 Einkum bassa fyrir flest af þeim er bara einföld sínus bylgja. 964 00:53:50,610 --> 00:53:54,240 En ef þú byrjar að skrifa þá í undarlegt forritanlegur vegu, 965 00:53:54,240 --> 00:54:00,010 þú getur fengið brjálaður hljóð áhrif, eins undarlegt steypist. 966 00:54:00,010 --> 00:54:04,640 Þú getur búið til mjög sendinn hljómar með fullt af mótum. 967 00:54:04,640 --> 00:54:07,730 >> Ég gerði verkefni um korn myndun, sem er 968 00:54:07,730 --> 00:54:12,290 einhvers staðar á milli FM og sýnatöku. 969 00:54:12,290 --> 00:54:15,230 Þú tekur mjög lítill, litlu sýni, og þá 970 00:54:15,230 --> 00:54:20,440 sameina þá með einhverskonar mótara og byggja upp auðæfi hljóð. 971 00:54:20,440 --> 00:54:24,900 Við gerðum einnig líkamlega líkan, svo reyna að hugsa um eðlisfræði 972 00:54:24,900 --> 00:54:29,410 og psychoacoustics af einhverju eins trompet, og hugsa um hvernig 973 00:54:29,410 --> 00:54:32,320 hljóðið er skoppar af bjalla lúðra 974 00:54:32,320 --> 00:54:35,200 og hljómburð herbergið og líkan 975 00:54:35,200 --> 00:54:40,195 að með helstu oscillators. 976 00:54:40,195 --> 00:54:47,690 977 00:54:47,690 --> 00:54:48,940 CONNOR HARRIS: Takk kærlega. 978 00:54:48,940 --> 00:54:50,140 Takk fyrir komuna. 979 00:54:50,140 --> 00:54:52,400 Og ég er alltaf tilbúin til að taka spurningum frá email-- 980 00:54:52,400 --> 00:54:55,020 connorharris@college.harvard.edu. 981 00:54:55,020 --> 00:54:57,020 >> STEPHEN KREWSON: Já. stephen.krewson@yale.edu. 982 00:54:57,020 --> 00:54:58,810 983 00:54:58,810 --> 00:55:00,360 Cool. 984 00:55:00,360 --> 00:55:01,667