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 Mimi nina Connor Harris. 4 00:00:06,820 --> 00:00:09,729 Mimi nina CS50 CA katika Harvard. 5 00:00:09,729 --> 00:00:11,270 STEPHEN KREWSON: Mimi ni Stephen Krewson. 6 00:00:11,270 --> 00:00:12,582 Mimi nina TF kwa CS50 katika Yale. 7 00:00:12,582 --> 00:00:15,790 CONNOR HARRIS: Na sisi ni kwenda kuzungumza kuhusu baadhi teknolojia ambayo waweza 8 00:00:15,790 --> 00:00:18,880 wanataka kutumia kama wewe ni nia katika kufanya mradi wa mwisho au kweli 9 00:00:18,880 --> 00:00:20,920 kitu chochote na muziki. 10 00:00:20,920 --> 00:00:24,400 Tunakwenda kulenga kwanza a lugha ya programu inayoitwa Haskell. 11 00:00:24,400 --> 00:00:26,280 Ni kazi lugha, hivyo dhana 12 00:00:26,280 --> 00:00:29,620 ni tofauti sana na C au PHP au lugha nyingine muhimu 13 00:00:29,620 --> 00:00:33,450 kwamba umetumia tayari, na hasa juu ya maktaba yaliyoandikwa katika Haskell 14 00:00:33,450 --> 00:00:40,240 aitwaye Euterpea, ambayo inaweza kusaidia watu na kuandika muziki functionally, 15 00:00:40,240 --> 00:00:40,780 kimsingi. 16 00:00:40,780 --> 00:00:43,400 Na Stephen kutembea wewe kupitia mfano mkubwa wa jambo hilo. 17 00:00:43,400 --> 00:00:46,423 >> Baada ya hayo, mimi itabidi kuanzisha wewe kitu kinachoitwa LillyPond, ambayo 18 00:00:46,423 --> 00:00:48,370 ni teknolojia kwa typesetting muziki. 19 00:00:48,370 --> 00:00:50,830 Ni aina ya kama mpira kwa muziki kama mmoja wenu 20 00:00:50,830 --> 00:00:57,530 wametumia mpira kwa ajili ya madarasa math au madarasa mengine P seti au una nini. 21 00:00:57,530 --> 00:01:00,440 Na hivyo mimi nitakupa, tena, baadhi ya mifano rahisi ya kwamba 22 00:01:00,440 --> 00:01:03,640 na kumweka katika ujumla mwelekeo wa rasilimali baadhi nzuri. 23 00:01:03,640 --> 00:01:04,319 >> STEPHEN KREWSON: Katika Aidha, sisi walidhani 24 00:01:04,319 --> 00:01:06,720 itakuwa baridi kuanzisha kidogo ya mwanga 25 00:01:06,720 --> 00:01:10,780 kuelekea bomba kati Euterpea-yanayotokana MIDI files 26 00:01:10,780 --> 00:01:13,910 katika LillyPond, hivyo sisi kutoa baadhi maelekezo ya maandiko 27 00:01:13,910 --> 00:01:16,310 kufanya hivyo ni kwamba zinazotolewa na LillyPond 28 00:01:16,310 --> 00:01:19,160 tu kushika ni wazi chanzo na kupata bomba kwenda. 29 00:01:19,160 --> 00:01:20,910 CONNOR HARRIS: Tena, sisi lazima kusisitiza, 30 00:01:20,910 --> 00:01:23,100 teknolojia hizi mbili, huna matumizi yao kwa pamoja. 31 00:01:23,100 --> 00:01:25,370 Wao siyo iliyoundwa kufanya kazi pamoja, ingawa wao kufanya vizuri mno. 32 00:01:25,370 --> 00:01:26,362 >> STEPHEN KREWSON: Haki. 33 00:01:26,362 --> 00:01:30,116 Na bure kabisa. 34 00:01:30,116 --> 00:01:32,240 CONNOR HARRIS: Kwa hiyo Shukrani, kusoma tu kwamba. 35 00:01:32,240 --> 00:01:33,406 STEPHEN KREWSON: Kihalali alibainisha. 36 00:01:33,406 --> 00:01:36,360 Shukrani kwa wale folks. 37 00:01:36,360 --> 00:01:39,180 Hii mimi itabidi msiweke juu tu kwa muda. 38 00:01:39,180 --> 00:01:41,560 Mchakato wa ufungaji ni kidogo suala gumu. 39 00:01:41,560 --> 00:01:45,420 Tumesoma yangu juu ya GitHub uweze tuangalie. 40 00:01:45,420 --> 00:01:47,840 Tu email yangu kama una maswali yoyote. 41 00:01:47,840 --> 00:01:52,829 Lakini tutaweza kukimbia chini ya dhana hii kwamba hii ni kazi kwa kila mtu. 42 00:01:52,829 --> 00:01:55,620 CONNOR HARRIS: Na kama huwezi kupata LillyPond kufanya kazi, hakuna mpango mkubwa. 43 00:01:55,620 --> 00:02:00,139 Hakuna mkusanyiko kuishi kwamba watashiriki, angalau juu ya mwisho wangu. 44 00:02:00,139 --> 00:02:02,930 STEPHEN KREWSON: Haskell na LillyPond lazima wote wana installers. 45 00:02:02,930 --> 00:02:08,497 Euterpea ni kupakuliwa kama mfuko, kadhalika na kadhalika. 46 00:02:08,497 --> 00:02:10,080 Hivyo sisi ni kuzungumza juu ya kompyuta muziki. 47 00:02:10,080 --> 00:02:12,990 Na hii ni sana maoni 50,000-mguu. 48 00:02:12,990 --> 00:02:15,700 Kuna wachache masuala mbalimbali ya yake. 49 00:02:15,700 --> 00:02:18,120 Na hii ni mbaya na ni kwenda kuficha baadhi ya kina. 50 00:02:18,120 --> 00:02:22,090 Lakini tunaweza kufikiria kitu kama algorithmic utungaji, 51 00:02:22,090 --> 00:02:24,920 kutumia algorithms, kutumia kanuni, ili kuzalisha 52 00:02:24,920 --> 00:02:30,280 baadhi ya aina of-- labda binafsi sawa mlolongo wa maelezo, au labda maelezo 53 00:02:30,280 --> 00:02:33,330 chini ya baadhi kikwazo. 54 00:02:33,330 --> 00:02:35,350 Na kisha wale inaweza kuwa kazi au kufasiriwa 55 00:02:35,350 --> 00:02:38,390 na vyombo Analog au kitu kama hicho. 56 00:02:38,390 --> 00:02:42,010 Lakini utungaji alikuwa amefanya algorithmically. 57 00:02:42,010 --> 00:02:45,120 >> Lakini bila shaka, labda eneo la muziki kompyuta au digital muziki 58 00:02:45,120 --> 00:02:48,870 tuko zaidi ya ukoo na ni digital awali sauti au sampuli digital 59 00:02:48,870 --> 00:02:51,160 na kurekodi digital. 60 00:02:51,160 --> 00:02:55,650 Mengi ya vyombo digital ni kufanyika kwa njia ya sampuli digital. 61 00:02:55,650 --> 00:03:00,110 Kwa kweli, tutaweza kuwa kwa kutumia moja ya wale walio katika mfumo wa sauti wa herufi maktaba baadaye. 62 00:03:00,110 --> 00:03:02,850 >> Lakini pia kuna kitu kinachoitwa awali digital waliotoka 63 00:03:02,850 --> 00:03:08,650 ya '70s marehemu na ndani ya' 80s na Yamaha na John Chowning katika Stanford 64 00:03:08,650 --> 00:03:11,990 kufanya FM awali au Mzunguko wa mawimbi ya awali, 65 00:03:11,990 --> 00:03:15,100 ambapo alikuwa carrier ishara na modulating ishara 66 00:03:15,100 --> 00:03:18,270 wote katika wigo wa sauti. 67 00:03:18,270 --> 00:03:22,570 Lakini nini sisi ni kulenga leo ni kitu kinachoitwa MIDI, 68 00:03:22,570 --> 00:03:25,040 na bila shaka, algorithmic insha. 69 00:03:25,040 --> 00:03:30,940 >> Sisi siyo kwenda kufanya vyombo, lakini sisi ni badala kwenda kufanya baadhi ya muziki, 70 00:03:30,940 --> 00:03:33,940 na kisha kwamba kupata kutafsiriwa na baadhi ya vyombo kwamba 71 00:03:33,940 --> 00:03:38,300 ni conformant kwa mkuu MIDI standard. 72 00:03:38,300 --> 00:03:40,830 Basi nini MIDI? 73 00:03:40,830 --> 00:03:45,550 Mimi si kwenda kupata pia kina ndani yake, lakini MIDI ni kuhamisha data itifaki. 74 00:03:45,550 --> 00:03:49,250 Ni aina ya mwongozo hela makampuni mbalimbali na viwanda 75 00:03:49,250 --> 00:03:52,250 kwa ajili ya maandalizi sauti au patches. 76 00:03:52,250 --> 00:03:54,170 Hivyo tutaweza kuona kwamba kuna kiwango MIDI 77 00:03:54,170 --> 00:03:57,500 kwa wote percussion tofauti sauti na MIDI mapendekezo 78 00:03:57,500 --> 00:04:01,360 kwa kila aina tofauti ya synth au aina mbalimbali za chombo zote 79 00:04:01,360 --> 00:04:03,650 makundi katika orchestra, wanasema. 80 00:04:03,650 --> 00:04:08,916 >> Wewe pengine ukoo na 0 kupitia 127 MIDI ujumbe. 81 00:04:08,916 --> 00:04:12,920 Ishara MIDI ni kawaida hata kidogo kuonyesha 82 00:04:12,920 --> 00:04:16,130 kama ni data au hali pakiti, na kisha kuna 83 00:04:16,130 --> 00:04:18,589 bits saba ya ishara. 84 00:04:18,589 --> 00:04:21,430 Na hawa wanaweza kudhibiti kila kitu kutoka kiasi 85 00:04:21,430 --> 00:04:25,330 kwa hatua au shinikizo juu ya msingi hasa 86 00:04:25,330 --> 00:04:29,400 kama wewe ni kufanya kwa MIDI mtawala kama vile, bila shaka, 87 00:04:29,400 --> 00:04:31,250 maelezo. 88 00:04:31,250 --> 00:04:33,450 Na bila shaka, MIDI ina imekuwa muhimu sana, 89 00:04:33,450 --> 00:04:37,550 kwa sababu ni njia ya waya pamoja au mnyororo daisy 90 00:04:37,550 --> 00:04:41,570 rundo la MIDI vifaa vifaa. 91 00:04:41,570 --> 00:04:44,050 Nina saba au nane nyuma katika nyumba yangu. 92 00:04:44,050 --> 00:04:46,610 Anapata kweli ngumu, lakini ni kweli nguvu. 93 00:04:46,610 --> 00:04:47,460 Na kwa kweli ni ya zamani. 94 00:04:47,460 --> 00:04:51,117 Ni kutokana na '80s mapema, na ni kweli ni nzuri na ndogo. 95 00:04:51,117 --> 00:04:51,950 CONNOR HARRIS: Naam. 96 00:04:51,950 --> 00:04:54,230 Wote classic Nintendo video michezo ingekuwa pengine 97 00:04:54,230 --> 00:04:56,088 na MIDI files kwa muziki, kwa mfano. 98 00:04:56,088 --> 00:04:59,550 99 00:04:59,550 --> 00:05:01,740 >> STEPHEN KREWSON: Hapa ni Mfano wa ujumla MIDI, 100 00:05:01,740 --> 00:05:06,520 kuonyesha MIDI kama aina ya ujumla itifaki. 101 00:05:06,520 --> 00:05:13,280 Na nadhani tunaweza kufikiria Tofauti kati ya vipimo 102 00:05:13,280 --> 00:05:17,830 kwamba kuwe na kitu kama hizi chombo sauti na halisi 103 00:05:17,830 --> 00:05:21,740 utambuzi wa vyombo wale sauti katika herufi sauti au MIDI fulani 104 00:05:21,740 --> 00:05:25,740 synthesizer kama kuwa tofauti kati ya labda typeface-- inayosema, 105 00:05:25,740 --> 00:05:30,350 kwa ujumla, hii ni mpango wa njia hii hasa kwa kuwakilisha 106 00:05:30,350 --> 00:05:35,907 characters-- na herufi fulani ambayo ina ukubwa maalum na timbre, 107 00:05:35,907 --> 00:05:37,240 na kuna utambuzi wa the-- 108 00:05:37,240 --> 00:05:39,156 >> CONNOR HARRIS: Labda bora kulinganisha ingekuwa 109 00:05:39,156 --> 00:05:43,430 kuwa kiwango cha Unicode says-- anatoa idadi ya kila tabia, na kwa kweli 110 00:05:43,430 --> 00:05:46,830 kila lugha duniani, au seti kubwa ya maandiko ya lugha 111 00:05:46,830 --> 00:05:51,310 duniani, na kisha wale ni kulipwa katika kitu graphical 112 00:05:51,310 --> 00:05:53,710 na fedha mbalimbali font. 113 00:05:53,710 --> 00:05:56,630 Na ni wazi, unaweza kufikiria MIDI kama Unicode wa sauti. 114 00:05:56,630 --> 00:06:03,250 Na ni tu orodha of-- mkondo kubwa ya matukio na vyombo na mengineyo, 115 00:06:03,250 --> 00:06:06,090 na unaweza kuwa na tofauti mpango, kama typeface, 116 00:06:06,090 --> 00:06:08,537 atatoa kwamba katika kitu ambacho ni kusikika. 117 00:06:08,537 --> 00:06:12,360 118 00:06:12,360 --> 00:06:13,780 >> STEPHEN KREWSON: Hivyo kwa nini Haskell? 119 00:06:13,780 --> 00:06:19,110 Haskell ni programu ya kazi lugha, juu sana, 120 00:06:19,110 --> 00:06:22,770 tofauti sana na C, tofauti sana na PHP. 121 00:06:22,770 --> 00:06:28,120 Na tunakwenda kuona kwamba kuna urahisi wa kazi utungaji katika Haskell 122 00:06:28,120 --> 00:06:37,640 kwamba itaruhusu sisi breeze kupitia kutunga au kuandika juu, transcribing, 123 00:06:37,640 --> 00:06:42,160 kitu kama Frere Jacques, wimbo huu rahisi kwamba 124 00:06:42,160 --> 00:06:46,815 ina mengi ya sehemu ndani yake kwamba ni binafsi sawa au kurudia. 125 00:06:46,815 --> 00:06:49,740 126 00:06:49,740 --> 00:06:53,250 Hivyo hii itakuwa baadhi ya motisha kwa nini 127 00:06:53,250 --> 00:06:59,400 sisi ni kutumia Haskell, ambapo kazi ni raia wa daraja la kwanza. 128 00:06:59,400 --> 00:07:01,120 >> Na nilitaka kupanua hii kidogo. 129 00:07:01,120 --> 00:07:08,800 Ni kidogo rahisi notate Frere Jacques katika Haskell. 130 00:07:08,800 --> 00:07:12,100 Lakini nini kama sisi alitaka kuongeza ngoma sehemu yake? 131 00:07:12,100 --> 00:07:17,320 Nini kama sisi alitaka kujaribu kufanya kitu kama Roland 808 au 909 ngoma 132 00:07:17,320 --> 00:07:20,970 mashine ambapo una kuhusu 16 hatua tofauti? 133 00:07:20,970 --> 00:07:24,590 Kwa kawaida hawa ni mawazo ya maelezo kama 16. 134 00:07:24,590 --> 00:07:28,640 Na unaweza kudhibiti kimataifa tempo, na unaweza kubaini nje 135 00:07:28,640 --> 00:07:34,620 rundo la sehemu mbalimbali percussion ya bass ngoma, kupiga makofi, mitego mbalimbali, 136 00:07:34,620 --> 00:07:37,540 wazi na kufungwa kofia juu juu ya aina hii ya njia, 137 00:07:37,540 --> 00:07:41,600 na kisha unaweza EQ au kurekebisha kiasi yao. 138 00:07:41,600 --> 00:07:45,290 >> Na tutaweza kuona namna nzuri katika Haskell ya anayewakilisha hatua hii 139 00:07:45,290 --> 00:07:48,810 sequencer na kila mambo mbalimbali baridi katika Haskell 140 00:07:48,810 --> 00:07:53,100 tunaweza kufanya na kuzalisha orodha na kuchuja juu ya orodha, 141 00:07:53,100 --> 00:07:56,060 ramani juu ya orodha, ramani kazi juu ya orodha. 142 00:07:56,060 --> 00:07:59,530 143 00:07:59,530 --> 00:08:00,760 Na kuomba msamaha haraka. 144 00:08:00,760 --> 00:08:05,300 Hii ni haraka haraka sana na overly haraka mchoro 145 00:08:05,300 --> 00:08:07,620 ya baadhi ya mambo ya Haskell na Euterpea, 146 00:08:07,620 --> 00:08:11,760 ambayo ni uwanja maalum iliyoingia lugha iliyoandikwa 147 00:08:11,760 --> 00:08:14,970 katika Haskell kwa ajili ya aina ya muziki. 148 00:08:14,970 --> 00:08:17,350 Hivyo tafadhali kuangalia nje kificho online. 149 00:08:17,350 --> 00:08:22,404 Moto hadi GHCI, ambayo ni Glasgow Haskell mkusanyaji Mkalimani. 150 00:08:22,404 --> 00:08:24,320 Na mimi itakuwa kufanya baadhi haya katika kidogo 151 00:08:24,320 --> 00:08:25,880 hivyo unaweza kuona ni jinsi gani inafanyika. 152 00:08:25,880 --> 00:08:31,021 >> Na hii utapata mzigo na the-- syntax ni koloni na kisha 153 00:08:31,021 --> 00:08:31,520 amri. 154 00:08:31,520 --> 00:08:33,510 Unaweza mzigo katika mafaili. 155 00:08:33,510 --> 00:08:36,840 Unaweza kutumia browse juu ya mafaili wale kuona kazi zote kwamba 156 00:08:36,840 --> 00:08:39,169 zipo katika moduli fulani. 157 00:08:39,169 --> 00:08:43,850 Na kisha kama tutaweza kuona, aina na aina madarasa ni muhimu sana katika Haskell, 158 00:08:43,850 --> 00:08:48,850 hivyo unaweza daima check-- hasa kama wewe ni kufanya kazi katika mpya DSCL 159 00:08:48,850 --> 00:08:51,600 kama hii, ni nini aina ya muziki? 160 00:08:51,600 --> 00:08:55,114 Najua kuhusu njia numeric aina wanafanya kazi katika Haskell, 161 00:08:55,114 --> 00:08:56,530 lakini sijui mengi kuhusu muziki. 162 00:08:56,530 --> 00:09:01,280 Lakini unaweza kuchunguza njia wao ni inavyoelezwa na kutumia t au aina amri hii 163 00:09:01,280 --> 00:09:04,577 na kisha wito hasa kazi au data kitu. 164 00:09:04,577 --> 00:09:05,410 CONNOR HARRIS: Naam. 165 00:09:05,410 --> 00:09:09,820 Kama walidhani C na Clang ilikuwa hardass kuhusu aina, 166 00:09:09,820 --> 00:09:11,230 wewe huna wazo kuhusu Haskell. 167 00:09:11,230 --> 00:09:14,230 Jambo zuri kuhusu Haskell ni kwamba kama unaweza kupata kanuni yako kukusanya 168 00:09:14,230 --> 00:09:16,790 na kama hundi Haskell aina, pengine ni haki, 169 00:09:16,790 --> 00:09:18,675 kwa sababu mfumo wa aina ni hivyo kali. 170 00:09:18,675 --> 00:09:20,090 >> STEPHEN KREWSON: Naam. 171 00:09:20,090 --> 00:09:21,980 Hivyo nataka tu kwenda through-- na tena, 172 00:09:21,980 --> 00:09:27,160 hii si kufanya hivyo justice-- wachache sifa za Haskell kwamba, angalau 173 00:09:27,160 --> 00:09:31,780 kwa creators-- wake na iliundwa mwishoni mwa mwezi 1980 na kundi la watu, 174 00:09:31,780 --> 00:09:34,610 kamati ya juu 20 people-- walidhani ni muhimu. 175 00:09:34,610 --> 00:09:36,850 Na jambo la kwanza waliotajwa katika karatasi kwamba 176 00:09:36,850 --> 00:09:41,890 ilivyoelezwa mwanzo wa Haskell zaidi ya kwanza miaka 20 au hivyo 177 00:09:41,890 --> 00:09:43,390 ni kwamba ilikuwa wavivu. 178 00:09:43,390 --> 00:09:44,990 Hivyo hii ina maana gani? 179 00:09:44,990 --> 00:09:49,860 >> Vizuri, ina maana wakati sisi kuwa na aina fulani wa kujieleza, tunahitaji kufanya tathmini hiyo. 180 00:09:49,860 --> 00:09:54,390 Na Haskell gani hii katika wito na haja ya njia au njia zisizo kali. 181 00:09:54,390 --> 00:09:57,250 Hiyo ni, kama sisi kuwa na rundo la vipengele wa kujieleza wetu, 182 00:09:57,250 --> 00:10:00,660 sisi kujaribu kuchelewesha tathmini ya subcomponents wale 183 00:10:00,660 --> 00:10:05,300 mpaka kabisa mwisho minute-- kwamba ni mpaka sisi kweli haja yao. 184 00:10:05,300 --> 00:10:08,480 >> Hivyo means-- hii ambayo ni kweli baridi, hasa 185 00:10:08,480 --> 00:10:13,200 kama sisi ni kufikiri kuhusu uchukuaji ya kimuziki hatua sequencer. 186 00:10:13,200 --> 00:10:16,740 Wewe kugeuka juu, na kuanza mbio hatua sequence-- 187 00:10:16,740 --> 00:10:20,010 kama wewe milele kazi na ngoma machine-- na huenda tu milele. 188 00:10:20,010 --> 00:10:24,650 Hivyo itakuwa kweli nzuri kama sisi inaweza kuiga kwamba katika Haskell. 189 00:10:24,650 --> 00:10:31,040 Na tunaweza kufanya hivyo na usio maadili, hasa orodha usio. 190 00:10:31,040 --> 00:10:35,860 Ni rahisi sana na aina orodha usio katika Haskell. 191 00:10:35,860 --> 00:10:39,230 Unaweza tu kutumia syntax chini hapa, ambapo unaweza kuona ya 1 mpaka 3, 192 00:10:39,230 --> 00:10:42,440 kuondoa 3 1 nukta nukta, na kuwa ni orodha usio 193 00:10:42,440 --> 00:10:46,960 ya idadi ya asili zote kupanua juu ya mbali kama unaweza kufikiria. 194 00:10:46,960 --> 00:10:49,925 >> Mimi nataka kuanzisha dhana ya folds mara moja. 195 00:10:49,925 --> 00:10:51,800 Na tena, lengo ya semina hii si 196 00:10:51,800 --> 00:10:55,770 kujifunza kuhusu folds katika Haskell au zaidi ili kazi. 197 00:10:55,770 --> 00:10:59,640 Lakini mimi nataka tu kuanzisha kwa kutoa hisia sahihi ya jinsi weird 198 00:10:59,640 --> 00:11:03,700 Haskell ni na jinsi nguvu ni. 199 00:11:03,700 --> 00:11:08,000 Na hasa, tunakwenda be-- wakati sisi kufanya sehemu mbalimbali yetu ngoma, 200 00:11:08,000 --> 00:11:12,790 tunakwenda kuwa kufanyia orodha ya idadi, kuzikunja kwenye kila mmoja. 201 00:11:12,790 --> 00:11:17,290 Na kwa kufanya hivyo, tutaweza kuwa kwa kutumia ramani na folds. 202 00:11:17,290 --> 00:11:21,770 >> Kuna associative haki mara, ambayo ni haki hii moja 203 00:11:21,770 --> 00:11:26,990 here-- 1 bala wingi, 2 bala wingi, 3 bala 0. 204 00:11:26,990 --> 00:11:29,170 Na syntax kwa mara, wewe kutoa mara 205 00:11:29,170 --> 00:11:34,680 thamani ya msingi na kisha operation-- katika kesi hii, kuongeza au kutoa. 206 00:11:34,680 --> 00:11:36,280 Nimekuwa umeonyesha hali zote mbili. 207 00:11:36,280 --> 00:11:41,760 Na kisha kuna accumulator kwamba hujilimbikiza zaidi ya orodha nzima, 208 00:11:41,760 --> 00:11:46,330 kutumia kwamba pamoja na alama au bala, na kisha kukusanya yake. 209 00:11:46,330 --> 00:11:52,680 Hivyo hii itakuwa the-- kama ilikuwa inaitwa kwa mara r pamoja ya 0, kwa kuanzia na 0, 210 00:11:52,680 --> 00:11:54,720 tunataka kisha kuhitimisha zote idadi katika orodha hiyo. 211 00:11:54,720 --> 00:11:57,134 Na hiyo ndiyo orodha 1-3. 212 00:11:57,134 --> 00:12:00,050 CONNOR HARRIS: Kwa hiyo kuiweka nyingine njia, mara r inachukua hoja tatu. 213 00:12:00,050 --> 00:12:02,540 Kuna kazi ambayo yenyewe inachukua hoja mbili, 214 00:12:02,540 --> 00:12:05,400 kisha kuna thamani starter, na kuna orodha ya maadili. 215 00:12:05,400 --> 00:12:08,570 Na nini kufanya ni kuchukua thamani starter, thamani kwanza, 216 00:12:08,570 --> 00:12:09,850 kuziweka katika kazi. 217 00:12:09,850 --> 00:12:11,607 Nini kupata nje, kuchukua kwamba, malisho kwamba 218 00:12:11,607 --> 00:12:13,940 ndani ya kazi ya thamani pili, nini kupata nje, 219 00:12:13,940 --> 00:12:16,690 kuchukua kwamba, kulisha kwamba katika kazi ya thamani ya tatu. 220 00:12:16,690 --> 00:12:18,740 Na kisha kama wewe kwenda chini orodha hii yote kwa njia hii, 221 00:12:18,740 --> 00:12:22,970 wewe ni kwenda kupata hatimaye baadhi thamani umoja hiyo ni 222 00:12:22,970 --> 00:12:25,720 ya aina moja ya yale ulianza nje na na ya aina moja 223 00:12:25,720 --> 00:12:29,147 kama mambo katika orodha, na kisha hiyo ni matokeo kurudi kwa mara R. 224 00:12:29,147 --> 00:12:31,980 STEPHEN KREWSON: Kwa hiyo hasa, hizi ni kazi kubwa ili, 225 00:12:31,980 --> 00:12:34,460 kwa sababu wao ni kuchukua mwingine kazi kama moja ya hoja. 226 00:12:34,460 --> 00:12:34,770 >> CONNOR HARRIS: Naam. 227 00:12:34,770 --> 00:12:37,820 Ikiwa umetumia fulani mengine languages-- Najua R, [inaudible] 228 00:12:37,820 --> 00:12:41,510 Lugha ina hii, iitwayo Kupunguza. 229 00:12:41,510 --> 00:12:45,460 Unaweza kuwa na kazi sawa kwa lugha nyingine, tu kuitwa 230 00:12:45,460 --> 00:12:48,160 mambo mbalimbali. 231 00:12:48,160 --> 00:12:50,680 >> STEPHEN KREWSON: Na nini ni nzuri kuhusu mara R 232 00:12:50,680 --> 00:12:53,880 katika mfano huu ni kwamba mara R wanaweza kufanya kazi na orodha kubwa. 233 00:12:53,880 --> 00:12:59,490 Hivyo katika chini, hii P5 ni kuzalisha maelezo kwamba 234 00:12:59,490 --> 00:13:03,120 ni akageuka juu katika hatua sequencer kwa baadhi ya ngoma sehemu, tano ngoma sehemu, 235 00:13:03,120 --> 00:13:05,480 na labda ni conga ngoma au kitu. 236 00:13:05,480 --> 00:13:09,719 Na hii ni kwa makusudi njia butu ya kuandika hii, 237 00:13:09,719 --> 00:13:11,510 lakini ni furaha, kwa sababu inaonyesha mengi 238 00:13:11,510 --> 00:13:14,460 mambo kuhusu Haskell na Euterpea. 239 00:13:14,460 --> 00:13:20,650 >> Hivyo mara R ya matumbo hii colon-- ni tu operator kwamba inasukuma mambo 240 00:13:20,650 --> 00:13:25,700 pamoja juu ya list-- alitoa wito kwa mikono mitupu orodha, ambayo ni tu mabano tupu. 241 00:13:25,700 --> 00:13:28,250 Na mimi nina wito kwamba katika orodha hii kubwa. 242 00:13:28,250 --> 00:13:31,570 Hii ni kweli orodha mbili aliongeza pamoja chini hapa. 243 00:13:31,570 --> 00:13:37,150 Orodha 1 comma 6 nukta nukta ni 1, 6, 11, 16. 244 00:13:37,150 --> 00:13:39,750 Hivyo Haskell-- katika tu wahusika chache, 245 00:13:39,750 --> 00:13:42,420 inaweza kuzalisha nzima mlolongo wa idadi 246 00:13:42,420 --> 00:13:46,240 ambazo ni namba tano mbali kukaza juu ya ndani ya infinity. 247 00:13:46,240 --> 00:13:49,860 Na mimi prepend kwa kuwa huu mfupi list-- kidogo 248 00:13:49,860 --> 00:13:54,370 3, 8, 21-- tu kuonyesha jinsi gani unaweza concatenate orodha. 249 00:13:54,370 --> 00:13:55,790 >> Na kisha nimekuwa folded juu yenyewe. 250 00:13:55,790 --> 00:14:01,510 Na hii huishia tu kuwa aina ya utambulisho operesheni, lakini ni kubwa. 251 00:14:01,510 --> 00:14:06,070 Na mara R anaweza kufanya hivyo, kwa sababu lazily kutathmini, kama ilivyo katika hapo juu. 252 00:14:06,070 --> 00:14:10,582 Kama tuna 1 na 2 na 3, tunaweza tu mabano mbali ya mapumziko nzima ya hiyo. 253 00:14:10,582 --> 00:14:12,290 Hiyo haiwezi kufanya kazi kwa bala au pamoja, lakini 254 00:14:12,290 --> 00:14:17,760 itafanya kazi kwa matumbo hii utambulisho operesheni katika orodha. 255 00:14:17,760 --> 00:14:24,620 >> Hivyo ni jinsi gani sisi kivitendo kutumia kwamba kama sisi kuwa na orodha kubwa kwa muda mrefu wa mambo? 256 00:14:24,620 --> 00:14:26,500 Naam, Haskell hutoa mengi ya functions-- 257 00:14:26,500 --> 00:14:29,450 na kuangalia zaidi katika hizi katika time-- yako mwenyewe kama vile kuchukua 258 00:14:29,450 --> 00:14:32,200 inayosema, sawa, sisi ni kuzalisha orodha hii usio na mipaka, 259 00:14:32,200 --> 00:14:35,950 lakini sisi ni kwenda tu kuchukua baadhi idadi yake Na katika kesi hii 260 00:14:35,950 --> 00:14:38,410 tutaweza kuona baadaye katika hii ngoma mashine yetu code-- 261 00:14:38,410 --> 00:14:43,740 GM ni baadhi tu ya aina ya kimataifa kutofautiana kwa idadi ya hatua 262 00:14:43,740 --> 00:14:44,610 katika sequencer. 263 00:14:44,610 --> 00:14:47,630 Juu ya roll-katika mashine mimi ilionyesha wewe, hiyo ni kawaida 16, 264 00:14:47,630 --> 00:14:51,475 lakini mimi kutekelezwa kwa 32. 265 00:14:51,475 --> 00:14:54,470 Ni kweli haina jambo. 266 00:14:54,470 --> 00:15:00,230 >> Haskell pia ni safi, hivyo ina nguvu tuli kuandika kwamba Connor alluded. 267 00:15:00,230 --> 00:15:03,220 Hivyo kazi ni hisabati katika sense-- 268 00:15:03,220 --> 00:15:06,600 wao ni zaidi ya hisabati kuwa wao ni uhakika 269 00:15:06,600 --> 00:15:11,530 kwa kushindwa kupata au kubadilisha aina yoyote ya kutofautiana au kufanya pembejeo au pato. 270 00:15:11,530 --> 00:15:14,420 Hivyo kama una kazi, ni deterministic. 271 00:15:14,420 --> 00:15:17,400 Itakuwa daima kurudi sawa thamani katika jimbo la mpango 272 00:15:17,400 --> 00:15:19,310 au kubakia sawa. 273 00:15:19,310 --> 00:15:22,940 Kuna, bila shaka, isipokuwa monadic na hayo, lakini hiyo ni zaidi ya upeo wetu. 274 00:15:22,940 --> 00:15:23,900 >> CONNOR HARRIS: Naam. 275 00:15:23,900 --> 00:15:26,946 Hii ina maana gani, ingawa, ni pale ni wachache muhimu [inaudible] 276 00:15:26,946 --> 00:15:27,820 matokeo ya hii. 277 00:15:27,820 --> 00:15:30,940 Moja ni kwamba ni rahisi sana parallelize mipango Haskell. 278 00:15:30,940 --> 00:15:32,773 Kwa sababu kama una, kusema, kazi ya kwamba 279 00:15:32,773 --> 00:15:36,064 mahitaji ya kazi juu ya milioni maadili, ikiwa unajua kwamba kazi daima 280 00:15:36,064 --> 00:15:39,280 kutoa nje thamani sawa kama kulisha katika value-- fulani 281 00:15:39,280 --> 00:15:43,055 kama wewe ni [inaudible] f la 1, f ya 2, kisha f ya 3 au whatnot-- f ya 1 282 00:15:43,055 --> 00:15:45,180 si kwenda kuandika kwa faili au kufanya kitu 283 00:15:45,180 --> 00:15:46,850 ambayo kubadilisha thamani ya F2. 284 00:15:46,850 --> 00:15:50,220 Unaweza tu wameigawanya kazi hii kwa mashine mbalimbali milioni au milioni 285 00:15:50,220 --> 00:15:54,720 nyuzi mbalimbali au chochote, kupata majibu yote nyuma, 286 00:15:54,720 --> 00:15:56,900 kupata maadili yote ya kurudi nyuma, na kisha hiyo ni yake. 287 00:15:56,900 --> 00:15:59,780 Hivyo rahisi sana parallelize mambo. 288 00:15:59,780 --> 00:16:03,140 >> Upande mwingine ni kwamba pembejeo na pato hasa 289 00:16:03,140 --> 00:16:05,720 walionao katika mfumo wa aina kwa njia ngumu sana. 290 00:16:05,720 --> 00:16:09,010 Sisi si kwenda katika kwamba hivi sasa, lakini mimi moyo tuangalie baadhi ya rasilimali 291 00:16:09,010 --> 00:16:11,175 online kama unataka kujifunza juu ya hilo. 292 00:16:11,175 --> 00:16:13,960 293 00:16:13,960 --> 00:16:16,550 >> STEPHEN KREWSON: Kwa hiyo aina classes-- na hii 294 00:16:16,550 --> 00:16:21,610 madarasa was-- ya aina walikuwa zuliwa kutatua 295 00:16:21,610 --> 00:16:24,160 tatizo la operator overloading. 296 00:16:24,160 --> 00:16:27,590 Hivyo sisi alitaka kuwa na usawa kati ya aina tofauti ya mambo. 297 00:16:27,590 --> 00:16:31,040 Bila shaka, tunaweza kufikiri of-- usawa kati ya aina numeric 298 00:16:31,040 --> 00:16:34,720 Ni rahisi sana kufikiri juu, lakini vipi kuhusu usawa kati ya orodha? 299 00:16:34,720 --> 00:16:37,610 Je kuhusu usawa kati ya mti mguu data miundo? 300 00:16:37,610 --> 00:16:43,130 Na hii yote ni iwezekanavyo katika Haskell kwa sababu ya madarasa aina. 301 00:16:43,130 --> 00:16:48,000 >> Hivyo kama wewe kufafanua data fulani type-- na hapa, haya ni nyanja ya muziki. 302 00:16:48,000 --> 00:16:50,960 Sisi ni hatimaye kupata kwa baadhi ya muziki kompyuta. 303 00:16:50,960 --> 00:16:57,420 Hivyo tuna C, C mkali, na kadhalika na kadhalika. 304 00:16:57,420 --> 00:17:01,080 Wao ni wa kundi la madaraja mbalimbali ya aina. 305 00:17:01,080 --> 00:17:03,510 EQ-- wao ni watu wa aina EQ darasani. 306 00:17:03,510 --> 00:17:06,780 Hiyo ina maana wanaunga mkono shughuli usawa. 307 00:17:06,780 --> 00:17:12,650 Hivyo unaweza kutathmini kama moja mlolongo wa primitives kimuziki 308 00:17:12,650 --> 00:17:15,400 ni sawa na moja tofauti. 309 00:17:15,400 --> 00:17:17,280 >> Wao ni ya darasa makutano. 310 00:17:17,280 --> 00:17:19,479 Hiyo ina maana kuna kuagiza kwa haya. 311 00:17:19,479 --> 00:17:27,670 D inakuja baada C. C mkali inakuja baada ya C vilevile. 312 00:17:27,670 --> 00:17:29,840 Wao ni ya darasa kuonyesha, ambayo ina maana wanaweza 313 00:17:29,840 --> 00:17:33,000 kuchapishwa kwa console au wastaafu. 314 00:17:33,000 --> 00:17:36,090 Wao ni wa tabaka la enumerated, ambayo 315 00:17:36,090 --> 00:17:39,770 ina maana kwamba hata kama hizi ni wahusika, 316 00:17:39,770 --> 00:17:45,340 wana numeric msingi uwakilishi kuanzia saa 0 317 00:17:45,340 --> 00:17:48,960 na kwenda mbali kupitia hata hivyo mambo mengi ni hapa, 20 au hivyo, 318 00:17:48,960 --> 00:17:51,770 au 30 au 40, labda. 319 00:17:51,770 --> 00:17:54,259 >> CONNOR HARRIS: Na wakati tuna aina data 320 00:17:54,259 --> 00:17:57,050 kwamba derives-- na kwamba keyword "deriving--" fulani aina darasani, 321 00:17:57,050 --> 00:18:01,160 maana yake ni kwamba compiler watajaribu kujenga kitu moja kwa moja. 322 00:18:01,160 --> 00:18:05,120 Hivyo labda utasikia wanataka kufafanua ubora tofauti. 323 00:18:05,120 --> 00:18:09,450 Utasikia wanataka kufafanua C mkali kama sawa na D gorofa, kwa mfano. 324 00:18:09,450 --> 00:18:11,560 Pamoja na ujenzi huu hapa, sidhani kama C mkali 325 00:18:11,560 --> 00:18:14,940 na D gorofa itakuwa sawa, kwa sababu compiler moja kwa moja 326 00:18:14,940 --> 00:18:19,670 kusema kila thamani mbalimbali iwezekanavyo ni tofauti na kila mmoja. 327 00:18:19,670 --> 00:18:22,930 >> Hivyo inawezekana kupuuza utekelezaji chaguo-msingi 328 00:18:22,930 --> 00:18:25,730 ya aina hii ya madarasa. 329 00:18:25,730 --> 00:18:28,640 Tena, angalia rejea kama unataka kujifunza juu ya hilo. 330 00:18:28,640 --> 00:18:31,767 331 00:18:31,767 --> 00:18:33,600 STEPHEN KREWSON: Na hapa, kwa kweli, hii itabidi 332 00:18:33,600 --> 00:18:36,930 kuwa na manufaa kwa wakati sisi kanuni baadaye. 333 00:18:36,930 --> 00:18:42,150 Tunaona baadhi ya kampuni za infix kwa mtiririko utungaji, 334 00:18:42,150 --> 00:18:46,570 sambamba utungaji, na hivyo nje, pluses hizi na dalili sawa 335 00:18:46,570 --> 00:18:48,620 kuzungukwa na colons. 336 00:18:48,620 --> 00:18:53,330 Hiyo ina maana tunaweza kucheza hizi mbalimbali primitives kimuziki moja baada ya nyingine. 337 00:18:53,330 --> 00:18:54,590 Hiyo ni utaratibu wa kudumu insha. 338 00:18:54,590 --> 00:18:57,170 >> Au tunaweza kucheza nao katika sambamba kwa wakati mmoja. 339 00:18:57,170 --> 00:19:05,100 Hivyo siwezi kuwa na thamani muziki, na kisha hii ni sawa na na colons, 340 00:19:05,100 --> 00:19:09,669 infix utungaji sambamba operator, na kucheza nao kama aina ya gumzo. 341 00:19:09,669 --> 00:19:11,460 Na sisi ni kwenda kutumia wakati huu sisi kuchanganya 342 00:19:11,460 --> 00:19:15,080 ngoma yetu sehemu na yetu kidogo Frere Jacques wimbo 343 00:19:15,080 --> 00:19:19,460 kucheza Utaratibu hizi mbili za maadili kimuziki kwa wakati mmoja. 344 00:19:19,460 --> 00:19:24,520 345 00:19:24,520 --> 00:19:29,250 >> Currying is-- Curry kwa mara ya mwisho jina la Haskell Curry, ambaye 346 00:19:29,250 --> 00:19:31,850 Haskell picha ni jina lake baada. 347 00:19:31,850 --> 00:19:34,330 Na hii inaruhusu sisi nzuri elegance wakati tuko 348 00:19:34,330 --> 00:19:36,880 kuandika haya yote tofauti kazi au filters kwamba tuko 349 00:19:36,880 --> 00:19:39,330 kwenda kuwa ramani juu ya orodha yetu. 350 00:19:39,330 --> 00:19:42,810 Kazi ya mbili arguments-- f ya x na y-- 351 00:19:42,810 --> 00:19:46,630 inaweza kuwakilishwa kama f ya x kutumika kwa y. 352 00:19:46,630 --> 00:19:49,800 Hivyo ni kazi ya Hoja moja kwamba anarudi 353 00:19:49,800 --> 00:19:51,240 mwingine kazi ya hoja moja. 354 00:19:51,240 --> 00:19:56,962 Hivyo hii ina maana tunaweza ramani kazi f ya x zaidi ya orodha ya y ya. 355 00:19:56,962 --> 00:19:58,920 CONNOR HARRIS: Wanataka kutoa mfano wa hili? 356 00:19:58,920 --> 00:19:59,836 STEPHEN KREWSON: Naam. 357 00:19:59,836 --> 00:20:05,390 Nina mfano hapa hapa kutoka baadhi ya mambo sisi kuandika. 358 00:20:05,390 --> 00:20:10,500 Hivyo kuiga 2-- vizuri, kuiga itachukua 359 00:20:10,500 --> 00:20:13,040 thamani moja, ambayo ni wangapi mara kwa kuiga kitu, 360 00:20:13,040 --> 00:20:16,690 na kisha itachukua value-- Kwa kawaida orodha au kitu. 361 00:20:16,690 --> 00:20:23,450 Hivyo hapa, tuko ramani kuiga 2 juu ya orodha ya mwingine. 362 00:20:23,450 --> 00:20:27,440 >> Hivyo kama sisi map kuiga 2, kama sisi kuiga 2 kuomba 363 00:20:27,440 --> 00:20:31,890 kwa kipengele kwanza ya orodha hii na hizi ni orodha ya phrases-- kimuziki 364 00:20:31,890 --> 00:20:37,650 kuzalisha mbili za "wewe sleeping--" hivyo je umelala, je umelala. 365 00:20:37,650 --> 00:20:40,040 Hivyo basi, tuna mbili. 366 00:20:40,040 --> 00:20:42,570 Lakini kuiga inachukua mbili hoja, lakini kwa sababu tuko 367 00:20:42,570 --> 00:20:47,100 currying na kisha ramani, tunaweza kuwakilisha kuiga 2 368 00:20:47,100 --> 00:20:52,310 kama baada ya kurudi kama kazi ya argument-- moja tu kujinakilisha mara mbili. 369 00:20:52,310 --> 00:20:57,010 Na kisha sisi ni kutumia kwamba kwa kila kipengele cha orodha hii ya maneno. 370 00:20:57,010 --> 00:21:01,900 >> Na concat ni Haskell operesheni kwa flattening orodha. 371 00:21:01,900 --> 00:21:04,400 Kwa sababu kuiga 2 mapenzi kuzalisha orodha ya orodha. 372 00:21:04,400 --> 00:21:06,660 Na hii ni aina hii kati hapa. 373 00:21:06,660 --> 00:21:10,365 Na hivyo basi tunaweza concat au flatten kwamba nje mara mbili. 374 00:21:10,365 --> 00:21:12,240 CONNOR HARRIS: rahisi Mfano wa currying, 375 00:21:12,240 --> 00:21:15,323 kama wewe d like-- kufikiria f ni kuzidisha kazi ambayo inachukua mbili 376 00:21:15,323 --> 00:21:16,840 hoja na anarudi bidhaa zao. 377 00:21:16,840 --> 00:21:19,320 Hivyo kama una f 4 5, ni 20. 378 00:21:19,320 --> 00:21:22,670 Lakini unaweza kufikiria hili kama also-- una kazi f 4 379 00:21:22,670 --> 00:21:25,560 kwamba inachukua hoja na kurudi mara nne hii argument-- tu 380 00:21:25,560 --> 00:21:27,870 ubaguzi maombi ambayo moja tu hoja 4. 381 00:21:27,870 --> 00:21:31,182 Na kama wewe kulisha f ya 4 5, kwamba nitakupa 20. 382 00:21:31,182 --> 00:21:32,890 Na hiyo ndiyo rahisi Mfano wa currying. 383 00:21:32,890 --> 00:21:34,473 Ni kawaida miongoni mwa wenye vitabu vya kiada. 384 00:21:34,473 --> 00:21:38,860 385 00:21:38,860 --> 00:21:42,110 >> STEPHEN KREWSON: Lambda Maneno au kazi bila majina 386 00:21:42,110 --> 00:21:47,330 ni mwingine fadhila mahususi Haskell. 387 00:21:47,330 --> 00:21:51,242 Hivyo kama sisi haja ya mjeledi juu kidogo kazi maisha kuiga, 388 00:21:51,242 --> 00:21:52,950 lakini kusema ni si katika maktaba standard, 389 00:21:52,950 --> 00:21:56,150 tunaweza kutumia syntax sawa na yafuatayo. 390 00:21:56,150 --> 00:21:58,730 Na tutaweza breeze juu ya hili. 391 00:21:58,730 --> 00:22:02,160 Jambo moja utaona mengi ya katika ngoma mashine ni sisi ni kufanya wito 392 00:22:02,160 --> 00:22:05,790 kwa kitu kinachoitwa kuchuja, ambayo kama kabla, 393 00:22:05,790 --> 00:22:08,185 ni ramani ya kazi juu ya orodha, lakini ni 394 00:22:08,185 --> 00:22:10,260 ramani ya kazi Boolean. 395 00:22:10,260 --> 00:22:13,390 >> Hivyo tuna hapa mfano ya anonymously 396 00:22:13,390 --> 00:22:19,150 inavyoelezwa kazi Boolean kwamba tu inachukua maadili wanandoa. 397 00:22:19,150 --> 00:22:22,990 Hii si madhubuti kusema kazi bila majina. 398 00:22:22,990 --> 00:22:25,850 Lakini ni kufafanua kwa kwamba syntax kwa ufupi, 399 00:22:25,850 --> 00:22:28,007 na hii inachukua x moduli tu n-- 400 00:22:28,007 --> 00:22:28,840 CONNOR HARRIS: Naam. 401 00:22:28,840 --> 00:22:31,330 Hivyo f ni kazi ya hoja mbili n na p 402 00:22:31,330 --> 00:22:35,440 kwamba anarudi kazi ambayo ni yenyewe kazi ya hoja moja, yaani x. 403 00:22:35,440 --> 00:22:38,815 404 00:22:38,815 --> 00:22:40,690 STEPHEN KREWSON: Mimi zilizotajwa infix waendeshaji. 405 00:22:40,690 --> 00:22:42,642 Ni infix waendeshaji nini? 406 00:22:42,642 --> 00:22:45,710 Naam, infix waendeshaji ni njia ya kawaida sisi kuwakilisha shughuli, 407 00:22:45,710 --> 00:22:49,910 kusema, katika mathematics-- 2 pamoja na 2 badala ya alama pamoja 408 00:22:49,910 --> 00:22:51,202 na kisha hoja mbili 2 na 2. 409 00:22:51,202 --> 00:22:53,701 CONNOR HARRIS: Ni wito kubadili polish nukuu, ambayo ni 410 00:22:53,701 --> 00:22:55,330 mrefu mimi shaka yoyote ya mngemjua. 411 00:22:55,330 --> 00:22:56,288 >> STEPHEN KREWSON: Haki. 412 00:22:56,288 --> 00:22:58,290 Kubadili polish au kiambishi awali nukuu. 413 00:22:58,290 --> 00:23:01,412 Lakini Haskell aliamua kutumia infix waendeshaji. 414 00:23:01,412 --> 00:23:03,120 Basi hizi ni baadhi ya ndio desturi kwamba 415 00:23:03,120 --> 00:23:07,770 yanatokana kwa Euterpea DSCL katika Haskell. 416 00:23:07,770 --> 00:23:10,730 Hivyo hii ilikuwa mlolongo wa insha. 417 00:23:10,730 --> 00:23:16,340 Hii ilikuwa sambamba utungaji, na hii ilikuwa truncating sambamba insha. 418 00:23:16,340 --> 00:23:18,710 Na tutaweza haja kwamba kwa ngoma mashine yetu, 419 00:23:18,710 --> 00:23:22,640 kwa sababu tutaweza kutumia mwisho operator katika kwamba tuple kidogo huko 420 00:23:22,640 --> 00:23:26,330 kucheza ngoma mashine pamoja na yetu Frere Jacques wimbo. 421 00:23:26,330 --> 00:23:28,650 Na ngoma mashine yetu ni kwenda kuwa kubwa. 422 00:23:28,650 --> 00:23:30,920 Ni tu ina milele. 423 00:23:30,920 --> 00:23:32,692 Lakini Frere Jacques wimbo si. 424 00:23:32,692 --> 00:23:33,510 Siyo kwamba kwa muda mrefu. 425 00:23:33,510 --> 00:23:36,610 Ni tu baa chache. 426 00:23:36,610 --> 00:23:43,030 Kwa hiyo, tunahitaji kuacha ngoma mashine kama Mara tu mfupi thamani kimuziki inakuja 427 00:23:43,030 --> 00:23:43,700 hadi mwisho. 428 00:23:43,700 --> 00:23:46,980 Na kwamba alama infixed ni super kusaidia na kwamba. 429 00:23:46,980 --> 00:23:50,090 >> Na infix nukuu kama hii ni aina ya nzuri, 430 00:23:50,090 --> 00:23:57,095 kwa sababu kusema kuwa kazi kama kunukuu, ambayo inatoa mgawanyiko integer 431 00:23:57,095 --> 00:24:01,010 ya x kwa kitu else-- pole, kwamba wanapaswa kuwa na b. 432 00:24:01,010 --> 00:24:04,740 Unaweza kuandika ni kama kunukuu wa b. 433 00:24:04,740 --> 00:24:09,670 Hivyo kama wewe put-- kipengele ni mfano mwingine wa hii. 434 00:24:09,670 --> 00:24:14,730 x kipengele katika baadhi ya orodha, kama wewe kuweka hivyo katika Backticks, unaweza kuitumia. 435 00:24:14,730 --> 00:24:20,400 Hata kama siyo ishara kama au plus minus au nyakati, 436 00:24:20,400 --> 00:24:24,630 unaweza kutumia jina la kazi kama hiyo katika Backticks 437 00:24:24,630 --> 00:24:27,045 kama infix operator, ambayo ni pretty cool. 438 00:24:27,045 --> 00:24:29,670 CONNOR HARRIS: Tena, hii ni zote sukari tu kisintaksia, kwa kweli. 439 00:24:29,670 --> 00:24:32,310 Haiathiri ya msingi ya lugha. 440 00:24:32,310 --> 00:24:37,440 >> STEPHEN KREWSON: Kwa hiyo tunaona hapa kwa mwisho wa maneno yetu Frere Jacques wimbo, 441 00:24:37,440 --> 00:24:45,740 Mimi alicheza baadhi chords kidogo au theluthi kutumia utungaji sambamba 442 00:24:45,740 --> 00:24:46,240 operator. 443 00:24:46,240 --> 00:24:50,680 444 00:24:50,680 --> 00:24:54,950 Hii ni njia nyingine ya kusema baadhi nini tumekuwa tu wamekuwa wakisema. 445 00:24:54,950 --> 00:24:59,986 Hivyo unaweza ramani kazi ya moja hoja juu ya orodha. 446 00:24:59,986 --> 00:25:02,860 CONNOR HARRIS: Tena, marejeo kwa Haskell-- vitabu vya kiada utangulizi 447 00:25:02,860 --> 00:25:04,680 itakuwa na yote haya ndani yake. 448 00:25:04,680 --> 00:25:07,790 >> STEPHEN KREWSON: Hivyo hapa ni pretty mstari muhimu ya hatua sequencer 449 00:25:07,790 --> 00:25:12,820 tutaweza kuchukua kuangalia kutumia orodha ufahamu. 450 00:25:12,820 --> 00:25:17,810 Na tunaona hapa ni kwamba kipengele katika fasta operator katika quotes nyuma. 451 00:25:17,810 --> 00:25:23,030 Hivyo kama x ni kipengele cha orodha ya x, basi tutaweza wito up kazi Perc. 452 00:25:23,030 --> 00:25:25,100 Hivyo Perc ni kazi percussion. 453 00:25:25,100 --> 00:25:30,200 Inachukua baadhi thamani p hiyo ni sehemu ya imepakana seti ya yote 454 00:25:30,200 --> 00:25:35,310 mbalimbali sauti percussion kuwa tuliona katika slide uliopita, 455 00:25:35,310 --> 00:25:38,840 na kisha anatoa kwamba muda wa robo kumbuka. 456 00:25:38,840 --> 00:25:43,190 Pengine anatoa ni QNR, na QNR ni tu robo kumbuka mapumziko. 457 00:25:43,190 --> 00:25:44,970 >> Hivyo hii ni kujenga kitu kizuri. 458 00:25:44,970 --> 00:25:52,110 Tuna orodha ya mambo, na tutaweza kitanzi juu ya baadhi orodha kutoka kwa mmoja 459 00:25:52,110 --> 00:25:54,540 kwa thamani max ya hatua yetu sequencer. 460 00:25:54,540 --> 00:25:58,290 Na wakati sisi ni saa i hasa katika kwamba orodha ya moja kwa thamani max, 461 00:25:58,290 --> 00:26:02,970 kama kwamba i ni mwanachama wa hii seti iliundwa mwaka kazi hii, 462 00:26:02,970 --> 00:26:06,040 vizuri, basi sisi kugeuka kuwa ndani ya noti percussion. 463 00:26:06,040 --> 00:26:10,960 Vinginevyo, sisi tu kucheza mapumziko, ambayo ni kusema, sisi tu kukaa kimya. 464 00:26:10,960 --> 00:26:16,050 Na tunaweza kuona hapa kwamba katika hii orodha ufahamu syntax, 465 00:26:16,050 --> 00:26:20,030 x ni wakazi na hii orodha yalijengwa moja 466 00:26:20,030 --> 00:26:22,462 kwa ukubwa wa kimataifa wa sequencer. 467 00:26:22,462 --> 00:26:23,295 CONNOR HARRIS: Naam. 468 00:26:23,295 --> 00:26:26,340 Syntax ya msingi kwa orodha comprehensions ni 469 00:26:26,340 --> 00:26:30,810 mabano, thamani kuwashirikisha baadhi ya vigezo, bar, 470 00:26:30,810 --> 00:26:34,260 maadili ya uwezekano wa vigezo wenyewe, imefungwa mabano. 471 00:26:34,260 --> 00:26:38,545 Na kama umefanya kosa kuweka wajenzi nukuu katika aina yoyote ya darasani hisabati, 472 00:26:38,545 --> 00:26:45,999 unaweza kuwa kuweka 2n kama kuwa n ni katika au n ni katika z. 473 00:26:45,999 --> 00:26:48,290 Sawa thing-- nukuu hii ni maana ya kuwa suggestive 474 00:26:48,290 --> 00:26:49,630 ya nukuu kwamba hisabati. 475 00:26:49,630 --> 00:26:51,880 STEPHEN KREWSON: Na unaweza kuomba predicates nyingi 476 00:26:51,880 --> 00:26:56,250 na filters nyingi katika orodha ufahamu, ambayo ni nzuri kabisa. 477 00:26:56,250 --> 00:27:01,800 Kimahesabu types-- sisi si tuwama kwa muda mrefu hapa. 478 00:27:01,800 --> 00:27:04,840 Kuna si wazo nzuri katika Haskell au nzuri, dhahiri wazo 479 00:27:04,840 --> 00:27:10,720 ya jinsi ya kuchukua, kusema, chaguo-msingi parameter kwa kazi au kitu. 480 00:27:10,720 --> 00:27:13,370 Katika chatu, hii ni rahisi kabisa. 481 00:27:13,370 --> 00:27:18,460 Unaweza tu kusema kwa sawa juu ya tamko la kazi, 482 00:27:18,460 --> 00:27:21,420 chaguo-msingi thamani katika kesi hakuna ni hutolewa. 483 00:27:21,420 --> 00:27:27,010 >> Katika Haskell, ungeweza labda kutumia labda labda aina, 484 00:27:27,010 --> 00:27:32,190 ambayo inachukua ama chochote au thamani ya aina tu. 485 00:27:32,190 --> 00:27:38,630 Hivyo sisi kutumia hii katika ngoma mashine kuruhusu sisi kutoa kiasi hiari 486 00:27:38,630 --> 00:27:40,730 vigezo kwa kila moja ya sehemu ngoma. 487 00:27:40,730 --> 00:27:46,160 488 00:27:46,160 --> 00:27:54,680 Hivyo kwamba inatupa njia ya kuwa na EQ au kiasi kwenye channel fulani. 489 00:27:54,680 --> 00:27:56,440 >> CONNOR HARRIS: Katika mifano mingine Haskell, 490 00:27:56,440 --> 00:28:00,450 unaweza kuona labda kutumika kwa kazi ambayo inaweza kushindwa. 491 00:28:00,450 --> 00:28:03,470 Hii ni moja ya kawaida. 492 00:28:03,470 --> 00:28:07,010 >> STEPHEN KREWSON: Na unaweza ugavi aina fulani ya ujumbe wa makosa kama default. 493 00:28:07,010 --> 00:28:11,020 Na hiyo ndiyo hasa Handy wakati unafanya I / O katika Haskell. 494 00:28:11,020 --> 00:28:12,044 Ambayo inaweza kuwa mbinu. 495 00:28:12,044 --> 00:28:13,960 CONNOR HARRIS: Au kwa mfano kama hiyo, nadhani 496 00:28:13,960 --> 00:28:17,460 ya kazi hiyo inahusisha mgawanyo ya parameter ambayo inaweza kuwa 0. 497 00:28:17,460 --> 00:28:20,020 Na kazi ambayo inaweza kurudi labda chochote. 498 00:28:20,020 --> 00:28:22,802 Hivyo kama hakuna mgawanyiko na 0, itakuwa kurudi chochote tu. 499 00:28:22,802 --> 00:28:25,010 Na kama kuna mgawanyiko na 0, itakuwa kurudi chochote 500 00:28:25,010 --> 00:28:26,910 kama njia ya kuonyesha makosa. 501 00:28:26,910 --> 00:28:30,330 Kwa sababu matokeo ya moja Haskell ya kali sana kuandika 502 00:28:30,330 --> 00:28:34,100 ni kwamba hakuna real-- isipokuwa ni Awkward, kimsingi, 503 00:28:34,100 --> 00:28:36,160 kosa utunzaji ni Awkward. 504 00:28:36,160 --> 00:28:39,440 Na hii ni moja sana njia ya kawaida ya kufanya hivyo. 505 00:28:39,440 --> 00:28:42,990 >> STEPHEN KREWSON: Hivyo sasa sisi kupata kwa akili-bending mwingine jambo 506 00:28:42,990 --> 00:28:49,160 kuhusu Haskell, ambayo ni mfano vinavyolingana na kazi ufafanuzi. 507 00:28:49,160 --> 00:28:53,390 Mimi ilionyesha wewe katika slide mwisho tamko la hatua mlolongo 508 00:28:53,390 --> 00:28:58,170 kazi, ambayo alichukua labda thamani, kisha int, basi orodha ya ints, 509 00:28:58,170 --> 00:29:03,850 kisha anarudi mlolongo wa maadili muziki huko Annotated 510 00:29:03,850 --> 00:29:05,375 na wote lami na kiasi. 511 00:29:05,375 --> 00:29:08,030 512 00:29:08,030 --> 00:29:11,820 >> Hivyo wale hoja tatu inaweza kuwa mfano kuendana kwa njia zifuatazo. 513 00:29:11,820 --> 00:29:16,660 Na sisi daima wanataka kuwa na uhakika wa kufanya kesi ya msingi au kutoka kesi ya kwanza. 514 00:29:16,660 --> 00:29:19,690 Na inasisitiza hizi unaweza tu kutafsiriwa 515 00:29:19,690 --> 00:29:22,340 kwa maana thamani yoyote kwamba ni huko. 516 00:29:22,340 --> 00:29:26,580 Hivyo kama sisi kupata wito kwa hatua mlolongo pamoja na baadhi ya thamani, baadhi thamani mengine, 517 00:29:26,580 --> 00:29:32,210 na kisha orodha tupu, nini tunataka kurudi ni kimya tu, wengine 0. 518 00:29:32,210 --> 00:29:35,110 >> Na badala ya kuwa kuwa orodha tupu au 0, 519 00:29:35,110 --> 00:29:38,150 ni raha 0, kwa sababu tuko kushughulika na aina ya muziki, 520 00:29:38,150 --> 00:29:43,230 na orodha tupu ya muziki aina ni mapumziko ya muda hakuna. 521 00:29:43,230 --> 00:29:45,680 Siyo muziki. 522 00:29:45,680 --> 00:29:51,460 Na kisha sisi kuona kama sisi kupata hatua mlolongo kwa v kwa hoja kiasi, 523 00:29:51,460 --> 00:29:57,290 p kwa tahadhari chombo hoja, na kisha orodha ya x ya. 524 00:29:57,290 --> 00:29:58,360 >> Kisha sisi kufanya baadhi ya mambo. 525 00:29:58,360 --> 00:30:01,290 Hasa, sisi kuomba huu ufahamu orodha, 526 00:30:01,290 --> 00:30:05,700 na sisi kufanya baadhi ya kazi tarehe labda thamani 527 00:30:05,700 --> 00:30:10,050 kugeuka ndani thamani numeric ili inaweza kisha enumerated na kutumika 528 00:30:10,050 --> 00:30:12,300 kuchagua chombo. 529 00:30:12,300 --> 00:30:16,730 Tena, hii ni kidogo kidogo kwa makusudi inconcise 530 00:30:16,730 --> 00:30:20,580 tu kuonyesha mambo yote weird unaweza kufanya katika Haskell kama wewe 531 00:30:20,580 --> 00:30:23,170 kuangalia ni juu ya muda wako mwenyewe. 532 00:30:23,170 --> 00:30:23,802 >> Sawa. 533 00:30:23,802 --> 00:30:26,010 Hivyo sisi ni hatimaye kupata kufanya nini sisi kuweka nje kufanya, 534 00:30:26,010 --> 00:30:28,820 ambayo ni kufanya baadhi ya muziki kompyuta. 535 00:30:28,820 --> 00:30:32,250 Hivyo sisi ni kwenda kujaribu kufanya Frere Jacques wimbo. 536 00:30:32,250 --> 00:30:35,220 Hivyo kuna wangapi na maneno katika Frere Jacques? 537 00:30:35,220 --> 00:30:38,790 538 00:30:38,790 --> 00:30:39,680 Nne. 539 00:30:39,680 --> 00:30:40,460 Kubwa. 540 00:30:40,460 --> 00:30:42,490 Na nini ni nzuri ni kwamba wao ni wote mara kwa mara 541 00:30:42,490 --> 00:30:46,990 kiasi kama hicho cha nyakati, ambayo ni mbili. 542 00:30:46,990 --> 00:30:50,730 >> Hivyo tuna misemo nne kila alirudia mara mbili. 543 00:30:50,730 --> 00:30:53,590 Na hasa, wao uko katika pande zote. 544 00:30:53,590 --> 00:30:55,340 Na kuna watu wengi, njia nyingi za kutekeleza 545 00:30:55,340 --> 00:30:57,520 pande zote ambayo inaweza kuwa na furaha ya kufanya. 546 00:30:57,520 --> 00:31:00,260 Nimekuwa kufanyika katika pretty rahisi njia hapa, 547 00:31:00,260 --> 00:31:05,760 ambayo ni tu kwa construct-- mstari kazi inachukua orodha ya maadili muziki 548 00:31:05,760 --> 00:31:10,390 na anarudi kwenye mlolongo wa utungaji kwa kutumia kwamba utungaji mtiririko 549 00:31:10,390 --> 00:31:13,000 operator. 550 00:31:13,000 --> 00:31:19,540 >> Na kisha mimi kuchelewesha sehemu mbalimbali na kuwafanya kuanza kwa mapumziko. 551 00:31:19,540 --> 00:31:22,770 Hivyo mimi kuanza na maeneo mengine ya hatua mbili, na kisha wengine wa hatua nne, 552 00:31:22,770 --> 00:31:26,160 na kisha wengine wa sita hatua, na kisha pande zote 553 00:31:26,160 --> 00:31:32,290 kazi, kama sisi wote tunajua wimbo huu. 554 00:31:32,290 --> 00:31:37,180 Tunaona annotations mbili au marekebisho ya maadili muziki 555 00:31:37,180 --> 00:31:43,150 kwamba vipo katika mlolongo huu mpangilio wa mambo muziki. 556 00:31:43,150 --> 00:31:44,810 Tuna kuongeza kiasi. 557 00:31:44,810 --> 00:31:48,960 Hii ni kazi ya kutolea maelezo muziki kwa kiasi fulani. 558 00:31:48,960 --> 00:31:51,320 Huu ni mfano mzuri ya MIDI ishara mbio 559 00:31:51,320 --> 00:31:57,510 0-127, bits saba ya habari kwamba unaweza kufanyika. 560 00:31:57,510 --> 00:32:00,650 >> Na then-- tuliona ni sana kwa ufupi, lakini MIDI ujumla 561 00:32:00,650 --> 00:32:02,310 orodha ya vyombo mbalimbali. 562 00:32:02,310 --> 00:32:04,450 Na kuna si mengi yote ya yao. 563 00:32:04,450 --> 00:32:11,230 Kama matumizi ya digital audio workstation, kama Ableton Live au Pro Vyombo vya, 564 00:32:11,230 --> 00:32:17,560 kuna mbalimbali incredibly pana ya synthesizers na vyombo VST. 565 00:32:17,560 --> 00:32:21,510 Lakini kiwango cha MIDI tu ina chache, au baadhi ya kadhaa. 566 00:32:21,510 --> 00:32:22,799 Na baadhi yao ni funny. 567 00:32:22,799 --> 00:32:25,840 Mimi walidhani itakuwa furaha kama sisi alicheza chombo chombo MIDI 568 00:32:25,840 --> 00:32:30,550 helikopta, na kisha njia ya pili kwa njia pande zote, 569 00:32:30,550 --> 00:32:37,980 tulivyofanya pedi synth, na kisha ya hii corny kuongoza mraba wimbi synth, 570 00:32:37,980 --> 00:32:44,240 na kisha sauti ooze, ambayo ni kidogo indistinct juu ya MIDI yangu mbaya 571 00:32:44,240 --> 00:32:46,410 synthesizer, lakini wao Sawa. 572 00:32:46,410 --> 00:32:50,030 >> Na kisha tunaona let hii na katika syntax kutoka Haskell, 573 00:32:50,030 --> 00:32:54,030 na kisha sisi ni kucheza sehemu hizi zote pamoja 574 00:32:54,030 --> 00:32:56,265 na sambamba utungaji operator. 575 00:32:56,265 --> 00:33:00,260 576 00:33:00,260 --> 00:33:02,296 Na tunaweza pengine kuonyesha baadhi ya haya. 577 00:33:02,296 --> 00:33:07,674 578 00:33:07,674 --> 00:33:08,340 Hapa ni kanuni. 579 00:33:08,340 --> 00:33:14,960 Na unaweza kuona katika C, kutakuwepo na mengi ya koo clearing na mazingira 580 00:33:14,960 --> 00:33:19,760 meza kificho kabla inaweza kufanya muziki kama hii. 581 00:33:19,760 --> 00:33:22,080 Au programu nyingine yoyote lugha, wewe d pengine 582 00:33:22,080 --> 00:33:27,210 na kuingiliana na baadhi ya aina ya maktaba au API na kuweka kila kitu juu, 583 00:33:27,210 --> 00:33:28,725 na kisha wewe d na kuyasafisha. 584 00:33:28,725 --> 00:33:33,810 Lakini hapa katika Haskell ni, nadhani, kwa mara nyingine wewe kupata hutegemea yake, incredibly 585 00:33:33,810 --> 00:33:35,770 someka na expressive sana. 586 00:33:35,770 --> 00:33:38,930 587 00:33:38,930 --> 00:33:43,240 Kwa hiyo, kuna utekelezaji ya Frere Jacques. 588 00:33:43,240 --> 00:33:43,740 Sawa. 589 00:33:43,740 --> 00:33:47,557 Sasa tunataka kuongeza Percussion, na hii ni kidogo messier. 590 00:33:47,557 --> 00:33:49,015 Basi hebu tuangalie slides. 591 00:33:49,015 --> 00:33:56,880 592 00:33:56,880 --> 00:34:00,540 Hivyo wazo kubwa ni kufanya rundo la orodha au sehemu. 593 00:34:00,540 --> 00:34:04,140 Juu ya roll-katika mashine hizo, kuna walikuwa kawaida kuhusu labda nane 594 00:34:04,140 --> 00:34:08,670 10 dansi au percussion sehemu. 595 00:34:08,670 --> 00:34:10,159 Na kisha kutumia kundi la mbinu. 596 00:34:10,159 --> 00:34:14,889 Na tumekuwa aliyesema kuhusu these-- kutumia mikunjo, filters, kazi lambda, 597 00:34:14,889 --> 00:34:19,429 mapped juu ya orodha ya kuzalisha maadili katika baadhi mbalimbali 1 kwa r, r ni 16, 598 00:34:19,429 --> 00:34:20,699 au hatua 32 katika sequencer. 599 00:34:20,699 --> 00:34:23,810 600 00:34:23,810 --> 00:34:29,920 >> Na kisha kama kuna thamani katika orodha hiyo kama sisi ni mbio kupitia sequencer, 601 00:34:29,920 --> 00:34:34,190 mbio kwa njia hiyo tena na zaidi, ni zamu kumbuka kwamba, 602 00:34:34,190 --> 00:34:36,060 na kwamba sampuli anapata yalisababisha. 603 00:34:36,060 --> 00:34:42,810 604 00:34:42,810 --> 00:34:47,110 Hapa ni njia zote weird tofauti Mimi kuja na kuzalisha maelezo. 605 00:34:47,110 --> 00:34:48,940 Jaribu juu ya nusu yako mwenyewe jibu. 606 00:34:48,940 --> 00:34:50,360 Kutakuwa na sauti ya baridi. 607 00:34:50,360 --> 00:34:53,066 608 00:34:53,066 --> 00:34:54,690 Muda kuruhusu, tutaweza kwenda kwa njia hii. 609 00:34:54,690 --> 00:34:59,200 Lakini kwa sasa hivi, mimi nadhani tunapaswa demo kile tulichonacho. 610 00:34:59,200 --> 00:35:01,380 Hebu matumaini hili linakwenda sawa. 611 00:35:01,380 --> 00:35:02,670 >> Hivyo hii ni GHCI. 612 00:35:02,670 --> 00:35:06,580 613 00:35:06,580 --> 00:35:09,121 Na tutaweza mzigo faili Nina aitwaye song.lhs, 614 00:35:09,121 --> 00:35:10,620 ambayo ni faili Mimi tu ilionyesha wewe. 615 00:35:10,620 --> 00:35:11,470 OK, kubwa. 616 00:35:11,470 --> 00:35:15,010 Kama Connor alisema mapema, ni ulioandaliwa, ni aina kuchunguzwa, 617 00:35:15,010 --> 00:35:18,380 hivyo siwezi kupumua rahisi sana. 618 00:35:18,380 --> 00:35:20,010 Ni si kwenda kulipua juu yangu. 619 00:35:20,010 --> 00:35:22,720 >> Sikuwa nataka kuonyesha kitu muhimu. 620 00:35:22,720 --> 00:35:25,900 Unaweza kuona kwamba a moduli kubeba aitwaye 50. 621 00:35:25,900 --> 00:35:28,240 Unaweza kuvinjari moduli huo. 622 00:35:28,240 --> 00:35:32,092 Na hii ni nzuri kuhusu doing-- labda kile 623 00:35:32,092 --> 00:35:34,550 unafanya katika Haskell si aitwaye programu za maendeleo, 624 00:35:34,550 --> 00:35:36,980 lakini unaweza kufanya mengi ya furaha mambo juu yako mwenyewe. 625 00:35:36,980 --> 00:35:42,410 Na workflow kwa kweli ni nzuri kama ikilinganishwa na mengi ya lugha nyingine, 626 00:35:42,410 --> 00:35:45,872 kwa sababu unaweza kuona katika kweli njia someka nini kinaendelea. 627 00:35:45,872 --> 00:35:47,830 Hivyo tunaona kwamba tuna maneno haya yote, ambayo 628 00:35:47,830 --> 00:35:53,760 ni orodha ya muziki nyanja, na kisha sisi kujenga haya juu katika kitu kubwa, 629 00:35:53,760 --> 00:35:55,220 ambayo ni muziki wimbo. 630 00:35:55,220 --> 00:35:58,450 Ni kitengo muziki. 631 00:35:58,450 --> 00:36:05,545 Na kisha tunaweza kucheza hii yote na kazi kuitwa kucheza muziki. 632 00:36:05,545 --> 00:36:09,040 Unaweza kuona kwamba chini hapa. 633 00:36:09,040 --> 00:36:11,310 Ambayo ni kucheza tu. 634 00:36:11,310 --> 00:36:15,040 >> Mimi lazima say-- sikuweza kuzungumza kuhusu hii ishara ya dola hiyo ni kila mahali. 635 00:36:15,040 --> 00:36:17,980 Dola ishara ni alama nyingine infix. 636 00:36:17,980 --> 00:36:22,500 Lakini ina kipaumbele cha chini ya alama yoyote, ambayo kwa ufanisi 637 00:36:22,500 --> 00:36:24,960 maana yake ni kwamba kila kitu juu ya upande wa kushoto wa ishara ya dola 638 00:36:24,960 --> 00:36:28,460 na haki ya ishara ya dola, tunakwenda kupata tathmini mbele yake. 639 00:36:28,460 --> 00:36:31,430 Hivyo ni aina ya kama nyingine njia ya kuongeza mabano. 640 00:36:31,430 --> 00:36:33,980 641 00:36:33,980 --> 00:36:36,220 >> CONNOR HARRIS: Ni kimsingi kazi insha. 642 00:36:36,220 --> 00:36:40,026 Na kuhakikisha kwamba huna have-- kama una kazi ama upande au infix 643 00:36:40,026 --> 00:36:42,900 waendeshaji kila upande, wao si kujiunga hela yake na kukupa 644 00:36:42,900 --> 00:36:46,030 isiyotarajiwa matokeo. 645 00:36:46,030 --> 00:36:49,790 >> STEPHEN KREWSON: Hivyo sisi can-- kutumia hiyo, tunaweza kuwaita. 646 00:36:49,790 --> 00:36:51,415 Kwanza, tutaweza kucheza bila ngoma. 647 00:36:51,415 --> 00:37:00,330 648 00:37:00,330 --> 00:37:03,170 Hiyo ni helikopta, helikopta MIDI. 649 00:37:03,170 --> 00:37:05,495 >> [Music kucheza] 650 00:37:05,495 --> 00:37:08,525 651 00:37:08,525 --> 00:37:09,525 Kuna wimbi mraba. 652 00:37:09,525 --> 00:37:24,520 653 00:37:24,520 --> 00:37:25,490 Ooze sauti. 654 00:37:25,490 --> 00:37:27,630 Na unaweza kweli kwenda porini na hii. 655 00:37:27,630 --> 00:37:30,872 Mimi ilichukua moja pretty rahisi, kwa sababu nilijua haipaswi bite mbali 656 00:37:30,872 --> 00:37:31,830 zaidi kuliko mimi naweza kutafuna. 657 00:37:31,830 --> 00:37:36,460 Tu kushika ni pretty rahisi kuonyesha mawazo makuu. 658 00:37:36,460 --> 00:37:39,952 Lakini basi mimi nilikuwa kama, tumekuwa got kuongeza baadhi ya ngoma kwa hili. 659 00:37:39,952 --> 00:37:41,910 Tu kwa sababu hii ni kidogo mshikamano, 660 00:37:41,910 --> 00:37:45,790 na mimi si kutumia jina la sehemu ngoma, 661 00:37:45,790 --> 00:37:49,490 Mimi mapped them-- kwa sababu wao ni sehemu ya kwamba tabaka la enumerated, 662 00:37:49,490 --> 00:37:51,500 Mimi mapped yao kwa ints. 663 00:37:51,500 --> 00:37:53,120 Moja ni kama bass ngoma. 664 00:37:53,120 --> 00:37:54,370 Sifuri ni kama vile. 665 00:37:54,370 --> 00:37:56,000 Saba ni kofia juu. 666 00:37:56,000 --> 00:38:00,920 Na chini katika hapa ambapo kazi kupata kidogo zaidi kubahatisha, 667 00:38:00,920 --> 00:38:02,100 hizi ni kama ngoma conga. 668 00:38:02,100 --> 00:38:08,360 >> Hivyo kama unadhani about-- labda njia ya kujifurahisha na kutekeleza ngoma mashine 669 00:38:08,360 --> 00:38:12,830 ni kutumia utaratibu sana mwelekeo juu ya bass yako ngoma. 670 00:38:12,830 --> 00:38:17,640 Hivyo kwa mfano, juu ya kuchuja juu ya orodha kwa kila kitu kwamba anatoa nyuma 671 00:38:17,640 --> 00:38:20,590 1 wakati ni kuchukuliwa moduli 04. 672 00:38:20,590 --> 00:38:27,190 Hivyo mimi kupata 1, 5, 9, 13, 17-- hivyo hii ni kuwapiga wa kwanza wa kila hatua. 673 00:38:27,190 --> 00:38:32,860 >> Na kisha hii ni sawa Jambo kubadilishwa juu ya hatua mbili. 674 00:38:32,860 --> 00:38:33,850 Hivyo hiyo ni offbeat. 675 00:38:33,850 --> 00:38:37,480 Hivyo hii itakuwa kitu kama kofia juu. 676 00:38:37,480 --> 00:38:39,640 Na kisha tena, chini hapa, ni kidogo random, 677 00:38:39,640 --> 00:38:41,080 kwa sababu sisi ni kufanya ngoma conga. 678 00:38:41,080 --> 00:38:44,180 Na mimi na baadhi ya maracas chini hapa, pia. 679 00:38:44,180 --> 00:38:50,280 >> Hivyo mimi naweza kuita ngoma kucheza mashine, lakini itakuwa kwenda juu ya milele, 680 00:38:50,280 --> 00:38:53,700 na hivyo ili kuanza kupokonya up kumbukumbu zote katika mfumo wangu. 681 00:38:53,700 --> 00:38:57,090 Hivyo mimi itabidi kuwaita kazi hii kucheza muziki, ambayo kama tutaweza kuona, 682 00:38:57,090 --> 00:39:02,020 kutumia truncating sambamba utungaji kucheza kidogo Frere Jacques wimbo wetu 683 00:39:02,020 --> 00:39:04,200 pamoja na hii ngoma mashine weird. 684 00:39:04,200 --> 00:39:06,190 Hivyo hebu tuangalie. 685 00:39:06,190 --> 00:39:10,920 Na tafadhali kuboresha yangu mpangilio wa sehemu zote ngoma. 686 00:39:10,920 --> 00:39:13,375 Si kitaalam yangu, lakini mimi alikuwa na mengi ya furaha kufanya hivyo. 687 00:39:13,375 --> 00:39:17,678 688 00:39:17,678 --> 00:39:20,654 >> [Music kucheza] 689 00:39:20,654 --> 00:39:52,260 690 00:39:52,260 --> 00:39:56,980 >> Hivyo bila shaka, hii yote ni kidogo si kama furaha 691 00:39:56,980 --> 00:40:01,100 kama hatuwezi kubadilisha kwa alama hivyo labda 692 00:40:01,100 --> 00:40:04,650 inaweza kutafsiriwa na utendaji wa binadamu. 693 00:40:04,650 --> 00:40:06,535 Hivyo mimi si kukimbia hapa. 694 00:40:06,535 --> 00:40:07,910 Nimekuwa tayari yanayotokana mafaili. 695 00:40:07,910 --> 00:40:10,280 Unaweza kuona kwamba kuna dot LilyPond file-- na hii 696 00:40:10,280 --> 00:40:14,500 itakuwa segue yangu juu ya Connor-- na faili nukta MIDI, 697 00:40:14,500 --> 00:40:18,610 na nukta PDF file, ambayo ni nini LilyPond hatimaye kuzalisha. 698 00:40:18,610 --> 00:40:23,770 >> Lakini haya ni maandiko yale, na mimi itabidi tu kukimbia nao kwa msaada chaguzi zao. 699 00:40:23,770 --> 00:40:28,090 Kama kupata hizi juu na kukimbia na Euterpea, unaweza kuzalisha faili MIDI. 700 00:40:28,090 --> 00:40:31,160 Na kisha kutoka faili MIDI na mpango huu MIDI 2LY, 701 00:40:31,160 --> 00:40:34,930 unaweza kuzalisha Lily Bwawa faili, na kisha 702 00:40:34,930 --> 00:40:37,974 inaweza kuzalisha PDF ya alama. 703 00:40:37,974 --> 00:40:39,390 Na tunapaswa tuangalie hii. 704 00:40:39,390 --> 00:40:52,599 705 00:40:52,599 --> 00:40:55,140 Hivyo Connor pengine kuonyesha jinsi ya kutolea maelezo haya bora, 706 00:40:55,140 --> 00:41:02,570 lakini hii ni Frere Jacques kama yanayotokana na mimi katika Euterpea. 707 00:41:02,570 --> 00:41:07,300 Ni tu katika C. Ni lazima kuwa na figured nini hack ni kweli katika. 708 00:41:07,300 --> 00:41:11,090 Lakini hiyo ni bomba kwa jinsi ya kufanya hivyo na kwamba. 709 00:41:11,090 --> 00:41:12,950 Hebu majadiliano zaidi kuhusu LilyPond. 710 00:41:12,950 --> 00:41:15,780 >> CONNOR HARRIS: OK Hebu angalia. 711 00:41:15,780 --> 00:41:19,480 712 00:41:19,480 --> 00:41:21,419 Je, kutaja Jifunze Wewe Haskell? 713 00:41:21,419 --> 00:41:22,460 STEPHEN KREWSON: Oh yeah. 714 00:41:22,460 --> 00:41:23,480 Angalia Jifunze Wewe Haskell. 715 00:41:23,480 --> 00:41:24,410 Ni katika rasilimali. 716 00:41:24,410 --> 00:41:26,830 Hayo ni jinsi mimi kuanza kujifunza, na ni kubwa. 717 00:41:26,830 --> 00:41:27,580 Si bubu kujifunza. 718 00:41:27,580 --> 00:41:28,829 >> CONNOR HARRIS: Hivyo ni online. 719 00:41:28,829 --> 00:41:34,760 Hivyo guy aitwaye [inaudible] learnyouahaskell.com, bila kuacha nafasi. 720 00:41:34,760 --> 00:41:37,065 Grammar ni wagonjwa. 721 00:41:37,065 --> 00:41:38,690 STEPHEN KREWSON: Ni michoro, pia. 722 00:41:38,690 --> 00:41:39,440 CONNOR HARRIS: Kwa hiyo kile ni LilyPond? 723 00:41:39,440 --> 00:41:42,480 Ni programu declarative lugha ya muziki typesetting. 724 00:41:42,480 --> 00:41:45,480 Hivyo declarative-- unaweza kufikiria mambo kama HTML, 725 00:41:45,480 --> 00:41:50,900 ambapo huna saying-- HTML haisemi jinsi browsers mtandao lazima 726 00:41:50,900 --> 00:41:52,180 atatoa kurasa hatua kwa hatua. 727 00:41:52,180 --> 00:41:54,096 Ni kusema tu hii ni maelezo textual 728 00:41:54,096 --> 00:41:56,100 ya nini unataka ukurasa na kuangalia kama. 729 00:41:56,100 --> 00:41:59,310 >> Na kisha pia ni mpango kwamba inaandaa lugha hii, 730 00:41:59,310 --> 00:42:02,300 au ni kusoma kwake mwaka na kisha kweli anafanya typesetting kwa ajili yenu, 731 00:42:02,300 --> 00:42:05,570 na mtemi hizi ajabu kuangalia PDF alama. 732 00:42:05,570 --> 00:42:08,250 Unaweza pia kupata PNG format au chochote. 733 00:42:08,250 --> 00:42:10,300 Njia nzuri ya kufikiri haya ni kwa mfano 734 00:42:10,300 --> 00:42:16,620 ni kwamba mpira ni aina ya kama LillyPond, lakini kwa kawaida tu typesetting. 735 00:42:16,620 --> 00:42:20,360 Hivyo badala of-- siyo WYSIWYG, What You Angalia 736 00:42:20,360 --> 00:42:22,960 Ni nini kupata, kama, kusema Finale ni, au Sibelius, 737 00:42:22,960 --> 00:42:27,430 au Microsoft Word, ambapo unaweza aina katika muda halisi na rasimu mambo katika muda halisi 738 00:42:27,430 --> 00:42:31,340 na kuona mabadiliko mara mmoja. 739 00:42:31,340 --> 00:42:32,140 >> Ni Nakala ya msingi. 740 00:42:32,140 --> 00:42:35,290 Una kukusanya yako alama ya kutumia mpango tofauti 741 00:42:35,290 --> 00:42:37,090 na kutoka nje PDFs baadaye. 742 00:42:37,090 --> 00:42:43,320 Hii ni kidogo kidogo rahisi kwa ajili ya matumizi kama wewe ni 743 00:42:43,320 --> 00:42:46,520 kujaribu kuandika moja kwa moja ndani ya alama na uko 744 00:42:46,520 --> 00:42:48,620 kujaribu kutunga kwenye kompyuta. 745 00:42:48,620 --> 00:42:50,830 Lakini kuna mengi ya faida kwa ajili yake. 746 00:42:50,830 --> 00:42:56,110 Moja, haina kuangalia mengi nicer, kwa sababu LillyPond Unaweza kweli 747 00:42:56,110 --> 00:42:58,210 kuchukua muda wa kufanya maamuzi mpangilio vizuri, 748 00:42:58,210 --> 00:43:02,380 tofauti na Sibelius au Finale, ambazo zina kufanya algorithms kuathirika hivyo 749 00:43:02,380 --> 00:43:05,020 waweze kuonyesha mambo katika muda muafaka. 750 00:43:05,020 --> 00:43:07,660 >> Hivyo kwa nini ni LilyPond-- kompyuta graphics ni ngumu. 751 00:43:07,660 --> 00:43:10,535 Kama wewe ni kufanya kitu chochote na muziki na unataka kuandika nje alama, 752 00:43:10,535 --> 00:43:13,900 wewe hawataki kuandika nje kila kitu na wewe mwenyewe 753 00:43:13,900 --> 00:43:19,040 kuanzia na jinsi ya kuteka fimbo na jinsi ya kuteka notepads. 754 00:43:19,040 --> 00:43:21,020 Ni vigumu sana. Imekuwa ni kufanyika kabla. 755 00:43:21,020 --> 00:43:22,170 Wewe ni faini. 756 00:43:22,170 --> 00:43:26,200 >> Kama unataka kutumia Finale au Sibelius, muundo faili kwa mambo hayo 757 00:43:26,200 --> 00:43:30,180 ni ngumu sana, na huwezi kweli matumizi yao programmatically. 758 00:43:30,180 --> 00:43:35,020 Unaweza kufungua Sibelius na Finale na kwenda Picha, Export kama PDF mwenyewe, 759 00:43:35,020 --> 00:43:37,600 lakini huwezi kweli wito kwamba kutoka script. 760 00:43:37,600 --> 00:43:40,440 LillyPond, unaweza kupiga kutoka maandiko hayo. 761 00:43:40,440 --> 00:43:44,397 Unaweza kwa urahisi iterate LillyPond na mpira. 762 00:43:44,397 --> 00:43:47,230 Mimi si kuwa na muda kwamba sehemu kubwa ya kwenda ndani ya teknolojia hizi sasa hivi, 763 00:43:47,230 --> 00:43:48,321 lakini wao kuwepo. 764 00:43:48,321 --> 00:43:50,070 Kama unataka kuangalia ndani ya kitabu LillyPond, 765 00:43:50,070 --> 00:43:53,760 ni mpango kwamba anakuja na LillyPond yako usambazaji, 766 00:43:53,760 --> 00:43:57,030 na ni kwa iterating LillyPond vipande katika mpira 767 00:43:57,030 --> 00:44:00,340 kama unataka kufanya kitu kama kubwa musicology hati 768 00:44:00,340 --> 00:44:02,289 pamoja na mifano, kwa mfano. 769 00:44:02,289 --> 00:44:04,580 Na ni ujuzi mzuri kwa maisha kama wewe ni kufanya kitu chochote 770 00:44:04,580 --> 00:44:05,770 na muziki, sio tu CS50. 771 00:44:05,770 --> 00:44:09,320 Nimekuwa kutumika LillyPond kwa wote ya miradi yangu utungaji 772 00:44:09,320 --> 00:44:11,880 tangu nilipokuwa kimsingi mwandamizi katika shule ya sekondari. 773 00:44:11,880 --> 00:44:13,455 >> Hivyo hapa ni baadhi ya mifano rahisi. 774 00:44:13,455 --> 00:44:17,490 775 00:44:17,490 --> 00:44:21,060 Hii ni kimsingi mwakilishi ya kiwango cha ugumu 776 00:44:21,060 --> 00:44:23,481 kwamba watu wengi bila uso yake walikuwa wakijaribu 777 00:44:23,481 --> 00:44:24,980 kutumia LilyPond kwa ajili ya miradi rahisi. 778 00:44:24,980 --> 00:44:29,519 Hii moja ya kwanza ni mwanzo kwa utangulizi chorale na Bach. 779 00:44:29,519 --> 00:44:31,810 Hii moja chini ni Excerpt kutoka moja ya kazi yangu mwenyewe, 780 00:44:31,810 --> 00:44:34,650 na ni tu pale kuonyesha wewe mambo kama [inaudible] 781 00:44:34,650 --> 00:44:38,550 kuweka mistari mingi katika huo wafanyakazi, jinsi lyric undersetting kazi. 782 00:44:38,550 --> 00:44:41,350 783 00:44:41,350 --> 00:44:46,110 Underlays Lyric ni jambo hilo ni sana rahisi kutumia LilyPond kwa kwaya. 784 00:44:46,110 --> 00:44:48,814 >> Na hivyo basi kuna baadhi zaidi mifano ngumu hapa. 785 00:44:48,814 --> 00:44:50,980 Haya yote ni kufanyika katika LilyPond na wao uko upembuzi yakinifu. 786 00:44:50,980 --> 00:44:55,280 Hii excerpt kwanza ni kutoka [Inaudible] na [inaudible]. 787 00:44:55,280 --> 00:44:58,860 Na hii [inaudible] kutoka kipande kwa solo bass 788 00:44:58,860 --> 00:45:03,550 filimbi na [inaudible], ambao ni longtime-- ambao 789 00:45:03,550 --> 00:45:07,101 alikuwa mwanachama wa muda mrefu wa muziki idara hapa, nadhani. 790 00:45:07,101 --> 00:45:08,600 Sina hakika ambapo yeye amekwenda mbali na. 791 00:45:08,600 --> 00:45:12,410 Lakini alikuwa mshauri wa Harvard Watunzi wa Chama kwa muda mrefu. 792 00:45:12,410 --> 00:45:13,530 Mtu wa ajabu. 793 00:45:13,530 --> 00:45:16,920 Naye anaandika baadhi muziki ambayo ina sana nukuu ngumu kwamba LillyPond 794 00:45:16,920 --> 00:45:20,500 Unaweza hata hivyo kushughulikia vizuri mno. 795 00:45:20,500 --> 00:45:26,030 >> Hivyo tu kukupa hisia ya kile uwezo jambo hili la are-- hivyo 796 00:45:26,030 --> 00:45:28,960 internals ya LillyPond ni ngumu sana. 797 00:45:28,960 --> 00:45:31,060 Na unaweza kuitumia kwa muda mrefu, ikiwa ni pamoja na 798 00:45:31,060 --> 00:45:32,520 kwa baadhi pretty ngumu mambo, bila kweli 799 00:45:32,520 --> 00:45:34,060 kuwa na kujua mengi kuhusu wao. 800 00:45:34,060 --> 00:45:38,720 Lakini wazo la msingi ni kwamba juu ya kiwango cha chini kabisa, chembe ya LillyPonds 801 00:45:38,720 --> 00:45:39,970 ni maelezo. 802 00:45:39,970 --> 00:45:42,761 Maelezo vyenye mazingira aitwaye sauti. 803 00:45:42,761 --> 00:45:44,510 Hivyo mazingira sauti kimsingi sambamba 804 00:45:44,510 --> 00:45:47,410 kwa line moja ya Polyphony. 805 00:45:47,410 --> 00:45:49,410 Na kisha mazingira inaweza kuwa zilizomo hierarchically 806 00:45:49,410 --> 00:45:53,590 katika zile ngazi ya juu kwamba kuwakilisha fimbo juu ya alama 807 00:45:53,590 --> 00:45:56,750 au makundi makubwa kama fimbo piano au kwaya fimbo, 808 00:45:56,750 --> 00:45:58,990 na kisha hatimaye nzima alama mazingira. 809 00:45:58,990 --> 00:46:02,260 Na unaweza kweli kuhusisha alama nyingi katika kitabu. 810 00:46:02,260 --> 00:46:05,770 >> Na kila mazingira ina idadi ya engravers masharti. 811 00:46:05,770 --> 00:46:08,340 Kama ukiangalia kupitia yaliyomo ya mazingira 812 00:46:08,340 --> 00:46:14,410 na magazeti alama fulani au darasa, baadhi ya alama kama ni muhimu. 813 00:46:14,410 --> 00:46:17,840 Hivyo kwa kila mazingira sauti, kuna [inaudible] maelezo 814 00:46:17,840 --> 00:46:24,270 mwenye kuchora kwamba kimsingi ni kazi au kitu kwamba anaandika nje wote kumbuka 815 00:46:24,270 --> 00:46:26,290 vichwa juu ya sehemu kulia wa ukurasa. 816 00:46:26,290 --> 00:46:29,510 Kisha kuna mwenye kuchora ufa, ambayo anaandika nje ya pango juu ya wafanyakazi. 817 00:46:29,510 --> 00:46:31,517 Kisha kuna metronome alama mwenye kuchora kwamba 818 00:46:31,517 --> 00:46:33,100 anaandika nje alama metronome katika alama. 819 00:46:33,100 --> 00:46:36,410 Watu hawa wote walionao pretty vizuri katika uongozi. 820 00:46:36,410 --> 00:46:39,500 Na ni sana, sana, sana customizable, ambayo unahitaji 821 00:46:39,500 --> 00:46:42,880 kama unataka kupata mambo kama hayo. 822 00:46:42,880 --> 00:46:45,730 >> Hivyo wote wana mazingira mengi ya sifa mbalimbali 823 00:46:45,730 --> 00:46:52,410 ambayo unaweza kurekebisha kwa kila kitu kutoka nafasi ya herufi mbalimbali 824 00:46:52,410 --> 00:46:54,942 uteuzi wa ukubwa wa mambo. 825 00:46:54,942 --> 00:46:56,900 Kama unataka kufanya hata mambo ngumu zaidi, 826 00:46:56,900 --> 00:46:59,210 kuna iliyoingia scripting lugha. 827 00:46:59,210 --> 00:47:01,820 Wao kutumia mpango huo, ambao ni lahaja ya LISP. 828 00:47:01,820 --> 00:47:04,960 Hizi pengine hawana maana yoyote na wewe. 829 00:47:04,960 --> 00:47:06,900 Lakini kimsingi, mpango mwingine kazi 830 00:47:06,900 --> 00:47:09,500 lugha ya programu, zaidi au chini. 831 00:47:09,500 --> 00:47:10,800 >> STEPHEN KREWSON: tie-katika. 832 00:47:10,800 --> 00:47:12,690 >> CONNOR HARRIS: Naam. 833 00:47:12,690 --> 00:47:15,390 Ni vizuri tie-katika, nadhani. 834 00:47:15,390 --> 00:47:20,150 Na ni kutumika kama lugha ya kufundisha, kweli, chini Misa Ave. Katika MIT. 835 00:47:20,150 --> 00:47:26,590 Na ni Handy sana kwa LillyPond kwa sababu mbalimbali za kiufundi. 836 00:47:26,590 --> 00:47:30,317 >> Na hivyo kama unataka kufanya rahisi tweaks tegemezi kwa conditionals, 837 00:47:30,317 --> 00:47:32,900 kwa example-- kuna baadhi ya masharti ya alama hiyo ni alikutana, 838 00:47:32,900 --> 00:47:36,495 kufanya mabadiliko ya mpangilio au whatnot-- kisha 839 00:47:36,495 --> 00:47:37,620 vifaa vya wale ni huko. 840 00:47:37,620 --> 00:47:38,667 Wao ni ngumu. 841 00:47:38,667 --> 00:47:40,250 Hivyo hapa ni pretty rahisi kificho sampuli. 842 00:47:40,250 --> 00:47:43,810 Ni mistari mitano. 843 00:47:43,810 --> 00:47:46,120 Kimsingi, mimi nina kufafanua fimbo mbili. 844 00:47:46,120 --> 00:47:46,904 Ni katika 3/4. 845 00:47:46,904 --> 00:47:48,695 Wafanyakazi kwanza ina masharti tempo alama, 846 00:47:48,695 --> 00:47:51,110 lakini hiyo ni kweli kwenda kwenda kwenye alama nzima, 847 00:47:51,110 --> 00:47:54,960 kwa sababu alama tempo ni juu ya ngazi alama. 848 00:47:54,960 --> 00:47:59,044 Mwenye kuchora metronome alama ni masharti ya alama mazingira. 849 00:47:59,044 --> 00:48:01,460 Kuna funguo mbalimbali, kwa sababu [inaudible] mwenye kuchora 850 00:48:01,460 --> 00:48:02,710 ni masharti fimbo. 851 00:48:02,710 --> 00:48:04,441 Unaweza kweli kufanya ni. 852 00:48:04,441 --> 00:48:06,190 Sampuli niliandika ni kweli katika C kubwa, 853 00:48:06,190 --> 00:48:07,990 lakini ni tu kwa kuonyesha unaweza kuwa 854 00:48:07,990 --> 00:48:09,570 funguo tofauti katika fimbo mbalimbali. 855 00:48:09,570 --> 00:48:15,710 Na syntax ya msingi ni kuandika kumbuka majina na E, F, G, chochote. 856 00:48:15,710 --> 00:48:18,910 Kama unataka kufanya accidentals, wewe Suffix NI au ES. 857 00:48:18,910 --> 00:48:22,640 Hii ni kutokana na Uholanzi musicological makongamano. 858 00:48:22,640 --> 00:48:28,290 >> Na kufanya oktavo kiwango kikubwa, una kutumia hizi Jibu alama, comma au apostrophe. 859 00:48:28,290 --> 00:48:30,580 Jamaa tu ina maana chochote una kumbuka, 860 00:48:30,580 --> 00:48:34,080 itakuwa moja kwa moja plaec katika Octave karibu na mmoja uliopita. 861 00:48:34,080 --> 00:48:37,624 Na kama unataka kuruka zaidi ya a fifth-- kusema tano au more-- 862 00:48:37,624 --> 00:48:39,165 kisha una kutumia [inaudible]. 863 00:48:39,165 --> 00:48:42,580 Lakini vinginevyo, huna kwa kutaja oktavo ya kila noti moja. 864 00:48:42,580 --> 00:48:46,130 >> Na jamaa C, mkuu, na C, wewe tu bayana katikati C 865 00:48:46,130 --> 00:48:48,630 na msingi C, maelezo hasa kwanza. 866 00:48:48,630 --> 00:48:55,020 Kisha una wafanyakazi hao kwamba kupanga sauti hizi mbili au sampuli ya muziki, 867 00:48:55,020 --> 00:48:56,730 na una alama. 868 00:48:56,730 --> 00:48:58,440 Na kwamba inaonekana kama hii. 869 00:48:58,440 --> 00:49:01,780 870 00:49:01,780 --> 00:49:05,380 >> Kama unataka kuchukua muda wa nakala ya kwamba sampuli ya LillyPond 871 00:49:05,380 --> 00:49:07,530 kanuni ya awali slide chini hapa, na wewe 872 00:49:07,530 --> 00:49:09,030 Unaweza kuandika ni kwa LillyPond mwenyewe. 873 00:49:09,030 --> 00:49:11,280 Najua sisi tumepewa kitu kwamba inaonekana mengi kama hii. 874 00:49:11,280 --> 00:49:17,236 875 00:49:17,236 --> 00:49:19,610 Hivyo kuna teknolojia nyingine aitwaye Music XML iimarishwe 876 00:49:19,610 --> 00:49:22,030 na watu tofauti kabisa. 877 00:49:22,030 --> 00:49:28,150 XML ni textual data structure-- mimi haipaswi kusema data structure-- kusema 878 00:49:28,150 --> 00:49:29,580 mfano ramani aina ya. 879 00:49:29,580 --> 00:49:33,800 Na ni iliyoundwa na kushikilia data kihierarkia vizuri sana. 880 00:49:33,800 --> 00:49:37,050 HTML, kwa mfano, ni aina ya XML. 881 00:49:37,050 --> 00:49:41,090 Na unaweza kuwaambia XML kwa sababu wao walikuwa wote mabano angle na pembe 882 00:49:41,090 --> 00:49:44,700 alama mabano kufyeka show takwimu ambazo mashamba. 883 00:49:44,700 --> 00:49:47,390 >> Sina kificho mfano kutoka Music XML. 884 00:49:47,390 --> 00:49:50,450 Unaweza kupata ni wewe mwenyewe. 885 00:49:50,450 --> 00:49:53,735 Kimsingi, sababu unaweza kutaka kutumia XML kama hatua ya kati 886 00:49:53,735 --> 00:49:55,980 ni, kwanza ya yote, ni muundo interchange 887 00:49:55,980 --> 00:50:02,301 kwa kimsingi every-- sitakuwa kusema kila, lakini mengi ya alama mbalimbali 888 00:50:02,301 --> 00:50:02,800 waandishi. 889 00:50:02,800 --> 00:50:04,966 Hivyo kama wewe kuandika katika Music XML, si tu inaweza LillyPond 890 00:50:04,966 --> 00:50:08,080 kusoma kwa msaada wa auxilary hii mpango ujulikanao Music XML kwa LY, 891 00:50:08,080 --> 00:50:11,360 lakini pia Finale unaweza kusoma hivyo, Sibelius wanaweza kuisoma. 892 00:50:11,360 --> 00:50:14,770 Kulingana na jinsi kitu yako ndani uongozi kazi kwa ajili anayewakilisha muziki, 893 00:50:14,770 --> 00:50:18,820 inaweza kuwa rahisi kuandika kwa Music XML kuliko LillyPond 894 00:50:18,820 --> 00:50:22,410 na tu wanategemea Music XML kwa LY kufanya kubadilika. 895 00:50:22,410 --> 00:50:24,282 >> Sidhani [inaudible] ina Music XML. 896 00:50:24,282 --> 00:50:25,490 STEPHEN KREWSON: Ni hana. 897 00:50:25,490 --> 00:50:26,340 Mtu ni kazi yake, ingawa. 898 00:50:26,340 --> 00:50:27,090 >> CONNOR HARRIS: Sawa. 899 00:50:27,090 --> 00:50:31,040 Euterpea hana Music XML pato kazi bado. 900 00:50:31,040 --> 00:50:35,340 Kama unataka wazo la mwisho wa mradi, labda kuwasiliana na guys 901 00:50:35,340 --> 00:50:38,620 kwamba Stephen anajua, na wangeweza kutumia msaada wako. 902 00:50:38,620 --> 00:50:40,992 >> STEPHEN KREWSON: Ningependa hiyo. 903 00:50:40,992 --> 00:50:43,450 CONNOR HARRIS: Pia, kimsingi, Lugha kila programu 904 00:50:43,450 --> 00:50:46,610 hiyo ni yenye thamani ya chumvi zake tayari ina maktaba XML, 905 00:50:46,610 --> 00:50:51,030 hivyo unaweza kubadilisha wote ndani ya muziki wako katika baadhi kitu 906 00:50:51,030 --> 00:50:54,120 kwamba maktaba XML unaweza kuandika nje ambayo itahitaji wachache 907 00:50:54,120 --> 00:50:57,470 mabadiliko ya mfumo wako wa ndani kwa chochote muziki vitu wewe 908 00:50:57,470 --> 00:51:00,310 unataka kuandika kuliko kuandika moja kwa moja katika LillyPond ingekuwa. 909 00:51:00,310 --> 00:51:04,380 Basi tu magazeti ya nje kwa XML na maktaba XML katika lugha yako, 910 00:51:04,380 --> 00:51:07,260 ambayo itakuwa kuhakikisha kwamba ni syntactically sahihi na kila kitu, 911 00:51:07,260 --> 00:51:08,720 na kisha kubadilisha kwa LillyPond. 912 00:51:08,720 --> 00:51:11,060 Hivyo teknolojia unaweza kutaka kuangalia ndani kama wewe ni kufanya kitu 913 00:51:11,060 --> 00:51:11,650 kama hii. 914 00:51:11,650 --> 00:51:14,490 915 00:51:14,490 --> 00:51:16,370 >> [Inaudible], mwingine auxilarry teknolojia. 916 00:51:16,370 --> 00:51:21,700 Hii ni kimsingi Tech Kazi au Tech Studio kwa LillyPond. 917 00:51:21,700 --> 00:51:25,380 Hivyo ni inatoa msaada na syntax, na templates 918 00:51:25,380 --> 00:51:28,770 kwa mbalimbali ya kawaida mchanganyiko wa vyombo. 919 00:51:28,770 --> 00:51:32,780 Ni inaruhusu mgawanyiko screen viewing hivyo unaweza kuwa na kanuni yako katika dirisha moja 920 00:51:32,780 --> 00:51:37,350 na PDF katika dirisha lingine na click kwenye maeneo katika PDF 921 00:51:37,350 --> 00:51:40,650 Rukia husika matangazo katika chanzo code yako. 922 00:51:40,650 --> 00:51:45,330 Hii ni muhimu zaidi kama wewe ni kweli kuandika LillyPond faili mwenyewe 923 00:51:45,330 --> 00:51:47,400 kuliko kama wewe ni kuzalisha nao programmatically. 924 00:51:47,400 --> 00:51:51,230 Lakini tena, ni kitu muhimu kwa kuwa. 925 00:51:51,230 --> 00:51:51,970 >> Kubwa. 926 00:51:51,970 --> 00:51:55,860 Resources-- mwingine mimi itabidi tu kwenda kwa njia hii kwa haraka sana. 927 00:51:55,860 --> 00:52:01,270 LillyPond manuals-- LillyPond ina nyaraka bora katika tovuti yake. 928 00:52:01,270 --> 00:52:02,270 Wana mafunzo. 929 00:52:02,270 --> 00:52:03,478 Wana syntax kumbukumbu. 930 00:52:03,478 --> 00:52:07,010 Wana mamia ya vijisehemu kwa mambo mbalimbali ndogo 931 00:52:07,010 --> 00:52:09,930 yo kuhitaji kufanya ili kuonyesha uwezo mbalimbali. 932 00:52:09,930 --> 00:52:12,250 Kama unataka kutumia lugha scripting 933 00:52:12,250 --> 00:52:14,740 au kufanya kina zaidi customizations, basi kuna 934 00:52:14,740 --> 00:52:16,730 internals rejea wakati huo URL. 935 00:52:16,730 --> 00:52:21,950 Kama unataka kutumia Music XML, kuna kwamba URL, musicxml.com/tutorial. 936 00:52:21,950 --> 00:52:27,960 >> Na kisha kama unahitaji kujifunza mpango kwa sababu kwa kweli unataka kutumia 937 00:52:27,960 --> 00:52:30,960 vifaa vya scripting katika LillyPond, basi kuna [inaudible] aitwaye 938 00:52:30,960 --> 00:52:32,918 Muundo Ufafanuzi Mipango ya kompyuta, 939 00:52:32,918 --> 00:52:35,820 ambayo si tu pili kubwa CS vitabu vya kiada milele written-- 940 00:52:35,820 --> 00:52:39,770 kupata mimi baadaye kama unataka kujua nini nadhani kubwa is-- moja 941 00:52:39,770 --> 00:52:43,580 lakini ni vizuri sana pia kuanzishwa kwa lugha sahihi. 942 00:52:43,580 --> 00:52:46,630 Huwezi haja zaidi ya kwanza sehemu chache. 943 00:52:46,630 --> 00:52:47,827 >> Na hiyo ni yake. 944 00:52:47,827 --> 00:52:48,410 Maswali yoyote? 945 00:52:48,410 --> 00:52:54,068 946 00:52:54,068 --> 00:52:57,972 >> STUDENT: wapi ninaweza kushusha Frere yako yanayotokana Jacques 947 00:52:57,972 --> 00:53:01,050 hivyo siwezi kuiweka kwenye iPod wangu? 948 00:53:01,050 --> 00:53:07,574 >> STEPHEN KREWSON: Naam, unaweza kuandika nje kwa baadhi ya faili wav katika Euterpea. 949 00:53:07,574 --> 00:53:08,490 Na una kanuni. 950 00:53:08,490 --> 00:53:10,000 Ni juu ya GitHub. 951 00:53:10,000 --> 00:53:15,590 Kufanya tofauti yako mwenyewe ya Frere Jacques na CS50 mzinga akili. 952 00:53:15,590 --> 00:53:17,095 Itakuwa kubwa. 953 00:53:17,095 --> 00:53:18,220 CONNOR HARRIS: Mtu mwingine? 954 00:53:18,220 --> 00:53:20,261 STEPHEN KREWSON: Tunahitaji bora bass ngoma, pia. 955 00:53:20,261 --> 00:53:21,935 Ni kweli mbaya. 956 00:53:21,935 --> 00:53:26,565 >> MWANAFUNZI: Euterpea ina si tu upande utungaji, lakini signal-- 957 00:53:26,565 --> 00:53:27,440 STEPHEN KREWSON: Ndiyo. 958 00:53:27,440 --> 00:53:30,100 Kwa kweli, kazi mimi alifanya katika Euterpea wakati mimi 959 00:53:30,100 --> 00:53:33,450 alichukua Haya kuna kuhitimu kozi katika Yale kwamba 960 00:53:33,450 --> 00:53:35,900 anatumia it-- ilikuwa juu ya awali sauti. 961 00:53:35,900 --> 00:53:39,810 Hivyo kuna kweli nzuri njia kwa kutumia mishale 962 00:53:39,810 --> 00:53:46,150 na baadhi ya nukuu tuliona ya kutunga pamoja kazi signal. 963 00:53:46,150 --> 00:53:50,610 Hasa, bass kwa zaidi mmoja wao ni rahisi tu sine wimbi. 964 00:53:50,610 --> 00:53:54,240 Lakini kama wewe kuanza kutunga wale katika weird njia ya programu, 965 00:53:54,240 --> 00:54:00,010 unaweza kupata mambo sauti madhara, kama cascades weird. 966 00:54:00,010 --> 00:54:04,640 Unaweza kuunda gritty sana sauti na mengi ya modulering. 967 00:54:04,640 --> 00:54:07,730 >> Nilifanya mradi wa punjepunje awali, ambayo ni 968 00:54:07,730 --> 00:54:12,290 mahali fulani katika kati FM na sampuli. 969 00:54:12,290 --> 00:54:15,230 Wewe kuchukua kidogo sana, sampuli kidogo, na kisha 970 00:54:15,230 --> 00:54:20,440 kuchanganya yao na aina fulani ya moduleta na kujenga sauti tajiri. 971 00:54:20,440 --> 00:54:24,900 Sisi pia alifanya modeling kimwili, hivyo kujaribu kufikiria juu ya fizikia 972 00:54:24,900 --> 00:54:29,410 na psychoacoustics ya kitu kama tarumbeta na kufikiri kuhusu njia 973 00:54:29,410 --> 00:54:32,320 sauti ni bouncing off kengele ya tarumbeta 974 00:54:32,320 --> 00:54:35,200 na acoustics ya chumba na modeling 975 00:54:35,200 --> 00:54:40,195 kuwa na oscillators msingi. 976 00:54:40,195 --> 00:54:47,690 977 00:54:47,690 --> 00:54:48,940 CONNOR HARRIS: Asante sana. 978 00:54:48,940 --> 00:54:50,140 Shukrani kwa kuja. 979 00:54:50,140 --> 00:54:52,400 Na mimi nina daima tayari kuchukua maswali na 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: Naam. stephen.krewson@yale.edu. 982 00:54:57,020 --> 00:54:58,810 983 00:54:58,810 --> 00:55:00,360 Baridi. 984 00:55:00,360 --> 00:55:01,667