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 Mən Connor Harris edirəm. 4 00:00:06,820 --> 00:00:09,729 Mən Harvard CS50 CA edirəm. 5 00:00:09,729 --> 00:00:11,270 STEPHEN KREWSON: Mən Stephen Krewson edirəm. 6 00:00:11,270 --> 00:00:12,582 Mən Yale CS50 üçün TF oldum. 7 00:00:12,582 --> 00:00:15,790 CONNOR HARRIS: Və biz danışmaq olacaq bəzi texnologiyalar haqqında ki, bilər 8 00:00:15,790 --> 00:00:18,880 Əgər istəyirsinizsə istifadə etmək istədiyiniz son layihə bunu ya, həqiqətən, 9 00:00:18,880 --> 00:00:20,920 musiqi ilə bir şey. 10 00:00:20,920 --> 00:00:24,400 Biz ilk bir diqqət olacaq Haskell adlı proqramlaşdırma dili. 11 00:00:24,400 --> 00:00:26,280 Bu funksional dil, belə ki, paradiqma 12 00:00:26,280 --> 00:00:29,620 C və ya PHP çox fərqlidir və ya digər vacib languages 13 00:00:29,620 --> 00:00:33,450 ki, siz artıq istifadə, xüsusilə də etdik Haskell yazılmış bir kitabxana 14 00:00:33,450 --> 00:00:40,240 insanlar kömək edə bilər ki, Euterpea adlı funksional musiqi yazı ilə, 15 00:00:40,240 --> 00:00:40,780 əsasən. 16 00:00:40,780 --> 00:00:43,400 Və Stephen size yol edəcək ki, bir böyük nümunə vasitəsilə. 17 00:00:43,400 --> 00:00:46,423 >> Bundan sonra, mən sizə təqdim edəcəyik LillyPond deyilən bir şey olan 18 00:00:46,423 --> 00:00:48,370 yazıdizim musiqi bir texnologiyadır. 19 00:00:48,370 --> 00:00:50,830 Bu növ lateks kimi musiqi siz əgər varsa 20 00:00:50,830 --> 00:00:57,530 riyaziyyat dərsləri üçün lateks istifadə və ya digər P set dərsləri və ya nə var. 21 00:00:57,530 --> 00:01:00,440 Və mən yenə verəcəyik, ki, bəzi sadə nümunələri 22 00:01:00,440 --> 00:01:03,640 və ümumiyyətlə siz qeyd bəzi yaxşı resurslarının istiqaməti. 23 00:01:03,640 --> 00:01:04,319 >> STEPHEN KREWSON: In Bundan əlavə, biz fikir 24 00:01:04,319 --> 00:01:06,720 qurmaq üçün sərin olardı göstərişlər bir az 25 00:01:06,720 --> 00:01:10,780 arasında boru kəməri doğru Euterpea yaradıldı MIDI faylları 26 00:01:10,780 --> 00:01:13,910 LillyPond, belə ki, biz təmin scripts bəzi təlimat 27 00:01:13,910 --> 00:01:16,310 ki bunu LillyPond təmin 28 00:01:16,310 --> 00:01:19,160 Yalnız açıq mənbə saxlamaq üçün və gedən bir boru kəməri almaq. 29 00:01:19,160 --> 00:01:20,910 CONNOR HARRIS: Yenə biz vurğulamaq lazımdır 30 00:01:20,910 --> 00:01:23,100 bu iki texnologiyaları, siz onlara birlikdə istifadə etmək yoxdur. 31 00:01:23,100 --> 00:01:25,370 Onlar işləmək üçün nəzərdə deyilik birlikdə, baxmayaraq ki, onlar çox gözəl yoxdur. 32 00:01:25,370 --> 00:01:26,362 >> STEPHEN KREWSON: Sağ. 33 00:01:26,362 --> 00:01:30,116 Və tamamilə pulsuz. 34 00:01:30,116 --> 00:01:32,240 CONNOR HARRIS: Belə ki, teşekkürler, yalnız oxumaq. 35 00:01:32,240 --> 00:01:33,406 STEPHEN KREWSON: lazımi qaydada qeyd edib. 36 00:01:33,406 --> 00:01:36,360 O insanlar üçün təşəkkür edirik. 37 00:01:36,360 --> 00:01:39,180 Bu yalnız bir an üçün gecikmək lazımdır. 38 00:01:39,180 --> 00:01:41,560 Quraşdırma prosesi bir az çətin deyil. 39 00:01:41,560 --> 00:01:45,420 Biz Github məni oxumaq Siz nəzər bilər. 40 00:01:45,420 --> 00:01:47,840 Əgər hər hansı bir sualınız varsa, mənə e-poçt. 41 00:01:47,840 --> 00:01:52,829 Amma biz, ehtimal altında bu run lazımdır bu ki, hamı üçün çalışır. 42 00:01:52,829 --> 00:01:55,620 CONNOR HARRIS: Əgər siz bilməzsiniz LillyPond, heç bir böyük iş almaq. 43 00:01:55,620 --> 00:02:00,139 Heç bir canlı yığma var ki, ən azı mənim sonunda, cəlb olunacaq. 44 00:02:00,139 --> 00:02:02,930 STEPHEN KREWSON: Haskell və LillyPond həm yükleyicilerinde olmalıdır. 45 00:02:02,930 --> 00:02:08,497 Euterpea kimi nazil paketi, belə ki, və s. 46 00:02:08,497 --> 00:02:10,080 Belə ki, biz kompüter musiqi haqqında söhbət edirik. 47 00:02:10,080 --> 00:02:12,990 Və bu yalnız bir deyil çox 50.000-ayaq görünüşü. 48 00:02:12,990 --> 00:02:15,700 Bunun bir neçə müxtəlif aspektləri var. 49 00:02:15,700 --> 00:02:18,120 Bu kobud və bir detal gizli gedir. 50 00:02:18,120 --> 00:02:22,090 Amma biz bir şey hesab edə bilər alqoritmik tərkibi kimi, 51 00:02:22,090 --> 00:02:24,920 alqoritmləri istifadə edərək, yaratmaq üçün, kodu istifadə 52 00:02:24,920 --> 00:02:30,280 bir növü of-- bəlkə bir öz-özünə oxşar qeydlər, və ya bəlkə qeydlər ardıcıllığı 53 00:02:30,280 --> 00:02:33,330 bir sıxıntı altında. 54 00:02:33,330 --> 00:02:35,350 Və sonra o ola bilər həyata və ya şərh 55 00:02:35,350 --> 00:02:38,390 analog alətləri ilə ya kimi bir şey. 56 00:02:38,390 --> 00:02:42,010 Amma tərkibi oldu algorithmically edilir. 57 00:02:42,010 --> 00:02:45,120 >> Amma əlbəttə, bəlkə sahəsi kompüter musiqi və ya digital musiqi 58 00:02:45,120 --> 00:02:48,870 biz digital ilə daha yaxından tanış edirik səs sintez və ya digital nümunə 59 00:02:48,870 --> 00:02:51,160 və digital qeyd. 60 00:02:51,160 --> 00:02:55,650 Digital alətləri bir çox var digital nümunə vasitəsilə həyata. 61 00:02:55,650 --> 00:03:00,110 Əslində, biz həmin birini istifadə edərək olacaq sonra bir səs font kitabxana forması. 62 00:03:00,110 --> 00:03:02,850 >> Lakin bir şey var adlı var çıxdı digital sintez 63 00:03:02,850 --> 00:03:08,650 Mərhum '70s və daxil "ilə 80-ci Stanford Yamaha və John Chowning 64 00:03:08,650 --> 00:03:11,990 FM sintez etməklə və ya Tezlik Modulyasiya sintez, 65 00:03:11,990 --> 00:03:15,100 burada daşıyıcı idi siqnal və modulating siqnal 66 00:03:15,100 --> 00:03:18,270 həm də audio spektri. 67 00:03:18,270 --> 00:03:22,570 Amma biz diqqət ne Bu gün, MIDI deyilən bir şey deyil 68 00:03:22,570 --> 00:03:25,040 və əlbəttə ki, alqoritmik tərkibi. 69 00:03:25,040 --> 00:03:30,940 >> Biz alətləri etmək niyyətindədir, lakin deyilik biz əvəzinə bəzi musiqi etmək olacaq, 70 00:03:30,940 --> 00:03:33,940 və sonra şərh edəcək bəzi alətləri ki, 71 00:03:33,940 --> 00:03:38,300 üçün conformant var ümumi MIDI standart. 72 00:03:38,300 --> 00:03:40,830 Belə ki, MIDI nədir? 73 00:03:40,830 --> 00:03:45,550 Mən çox dərin onu almaq fikrində deyiləm lakin MIDI data transfer protokoldur. 74 00:03:45,550 --> 00:03:49,250 Bu arasında bir bələdçi bir növ var müxtəlif şirkətlər və sənaye 75 00:03:49,250 --> 00:03:52,250 səslər və ya yamalar təşkili üçün. 76 00:03:52,250 --> 00:03:54,170 Belə ki, görürsünüz bir MIDI standart var 77 00:03:54,170 --> 00:03:57,500 bütün müxtəlif zərb üçün səslər və MIDI tövsiyələr 78 00:03:57,500 --> 00:04:01,360 synth bütün müxtəlif növləri üçün və ya bütün alətinin müxtəlif növləri 79 00:04:01,360 --> 00:04:03,650 bir orkestr qruplar deyirlər. 80 00:04:03,650 --> 00:04:08,916 >> Siz yəqin ki, ilə tanış edirik 0 vasitəsilə 127 MIDI messages. 81 00:04:08,916 --> 00:04:12,920 A MIDI siqnal adətən ifadə bir az 82 00:04:12,920 --> 00:04:16,130 Bu bir məlumat və ya olub status paket, sonra var 83 00:04:16,130 --> 00:04:18,589 bir siqnal yeddi bit. 84 00:04:18,589 --> 00:04:21,430 Bu nəzarət edə bilərsiniz həcmi hər şey 85 00:04:21,430 --> 00:04:25,330 hərəkət və ya təzyiq xüsusi əsas 86 00:04:25,330 --> 00:04:29,400 Bir MIDI ilə həyata edirsinizsə nəzarətçi eləcə də, əlbəttə, 87 00:04:29,400 --> 00:04:31,250 qeydlər. 88 00:04:31,250 --> 00:04:33,450 Və əlbəttə ki, MIDI var son dərəcə faydalı olmuşdur 89 00:04:33,450 --> 00:04:37,550 Bu tel üçün bir yol var, çünki birlikdə və ya papatya zəncir 90 00:04:37,550 --> 00:04:41,570 MIDI hardware cihazlar bir dəstə. 91 00:04:41,570 --> 00:04:44,050 Mən evimdə yeddi və ya səkkiz geri var. 92 00:04:44,050 --> 00:04:46,610 Bu, həqiqətən, çətin olur lakin bu, həqiqətən güclü. 93 00:04:46,610 --> 00:04:47,460 Və bu həqiqətən köhnə var. 94 00:04:47,460 --> 00:04:51,117 Bu erkən 80-ci olan, və bu, həqiqətən gözəl və kiçik. 95 00:04:51,117 --> 00:04:51,950 CONNOR HARRIS: Bəli. 96 00:04:51,950 --> 00:04:54,230 Bütün klassik Nintendo video oyun yəqin ki, 97 00:04:54,230 --> 00:04:56,088 məsələn musiqi MIDI faylları var. 98 00:04:56,088 --> 00:04:59,550 99 00:04:59,550 --> 00:05:01,740 >> STEPHEN KREWSON: Burada bir var ümumi MIDI nümunə 100 00:05:01,740 --> 00:05:06,520 bir növ kimi MIDI göstərən ümumi protokol. 101 00:05:06,520 --> 00:05:13,280 Və biz hesab edə bilər dəqiqləşdirilməsi arasında fərq 102 00:05:13,280 --> 00:05:17,830 kimi bir şey olmalıdır ki, Bu alət faktiki səslər və 103 00:05:17,830 --> 00:05:21,740 bu alətlərin həyata keçirilməsi səsləri Səs font və ya müəyyən bir MIDI 104 00:05:21,740 --> 00:05:25,740 fərq kimi sintezatoru deyir bəlkə bir typeface-- arasında, 105 00:05:25,740 --> 00:05:30,350 ümumiyyətlə, bu dizayn bu şəkildə təmsil etmək 106 00:05:30,350 --> 00:05:35,907 simvol və xüsusi font ki, müəyyən bir ölçüsü və səs tembri var 107 00:05:35,907 --> 00:05:37,240 və the-- həyata keçirilməsi var 108 00:05:37,240 --> 00:05:39,156 >> CONNOR HARRIS: Bəlkə bir daha yaxşı müqayisə ki 109 00:05:39,156 --> 00:05:43,430 ola Unicode standart verir belə deyir hər xarakter sayı, və həqiqətən 110 00:05:43,430 --> 00:05:46,830 Dünyada hər dil, və ya dil scripts geniş set 111 00:05:46,830 --> 00:05:51,310 Dünyada və sonra həmin bir şey qrafik daxil göstərilən 112 00:05:51,310 --> 00:05:53,710 Müxtəlif font paketləri ilə. 113 00:05:53,710 --> 00:05:56,630 Və təbii ki, siz hesab edə bilər Səs Unicode kimi MIDI. 114 00:05:56,630 --> 00:06:03,250 Və bu böyük bir axın of-- yalnız bir siyahısı hadisələr və alətləri və etajer, 115 00:06:03,250 --> 00:06:06,090 və ayrı var Proqram bir yazı kimi, 116 00:06:06,090 --> 00:06:08,537 ki göstərməyə səsli bir şey. 117 00:06:08,537 --> 00:06:12,360 118 00:06:12,360 --> 00:06:13,780 >> STEPHEN KREWSON: Belə ki, niyə Haskell? 119 00:06:13,780 --> 00:06:19,110 Haskell funksional proqramlaşdırma var çox inkişaf etmiş dil, 120 00:06:19,110 --> 00:06:22,770 C çox fərqli, PHP çox fərqli. 121 00:06:22,770 --> 00:06:28,120 Və biz bir var ki, görmək olacaq Haskell funksiyası tərkibi rahatlığı 122 00:06:28,120 --> 00:06:37,640 bizə vasitəsilə breeze üçün imkan verir transcribing, bəstələmək və ya yazaraq, 123 00:06:37,640 --> 00:06:42,160 Frere Jacques kimi bir şey, Bu sadə mahnı ki, 124 00:06:42,160 --> 00:06:46,815 bu hissələri bir çox var ki, öz-özünə oxşar və ya təkrar var. 125 00:06:46,815 --> 00:06:49,740 126 00:06:49,740 --> 00:06:53,250 Belə ki, bu bir olacaq nə üçün motivasiya 127 00:06:53,250 --> 00:06:59,400 Biz Haskell istifadə etdiyiniz hansı funksiyaları birinci sinif vətəndaşıdır. 128 00:06:59,400 --> 00:07:01,120 >> Mən uzatmaq istədi bu bir az. 129 00:07:01,120 --> 00:07:08,800 Bu bir az asandır Haskell Frere Jak notate. 130 00:07:08,800 --> 00:07:12,100 Amma biz istəyirdi nə bu bir baraban hissəsini əlavə? 131 00:07:12,100 --> 00:07:17,320 Biz etmək üçün cəhd istəyirdi nə Bir Roland 808 və ya 909 baraban kimi bir şey 132 00:07:17,320 --> 00:07:20,970 siz maşın 16 müxtəlif addımlar? 133 00:07:20,970 --> 00:07:24,590 Adətən bu var kimi 16-cı qeydlər düşündüm. 134 00:07:24,590 --> 00:07:28,640 Və qlobal nəzarət edə bilərsiniz temp və siz seçə bilərsiniz 135 00:07:28,640 --> 00:07:34,620 müxtəlif zərb hissələri bir dəstə bas nağara, bir clap, müxtəlif snares, 136 00:07:34,620 --> 00:07:37,540 açıq və qapalı yüksək papaqlar kanalları bu növ, 137 00:07:37,540 --> 00:07:41,600 və sonra EQ və ya onların həcmi seçin. 138 00:07:41,600 --> 00:07:45,290 >> Və biz gözəl bir şəkildə görəcəksiniz Bu addımı təmsil Haskell 139 00:07:45,290 --> 00:07:48,810 bütün sequencer Haskell müxtəlif sərin şeyi 140 00:07:48,810 --> 00:07:53,100 biz yaradan ilə edə bilərsiniz siyahıları üzərində siyahıları və filtreleme, 141 00:07:53,100 --> 00:07:56,060 siyahıları üzərində mapping, mapping siyahıları üzərində fəaliyyət göstərir. 142 00:07:56,060 --> 00:07:59,530 143 00:07:59,530 --> 00:08:00,760 Və tez üzr. 144 00:08:00,760 --> 00:08:05,300 Bu, çox ötəri deyil və hədsiz sürətli eskiz 145 00:08:05,300 --> 00:08:07,620 aspektləri bəzi Haskell və Euterpea ki, 146 00:08:07,620 --> 00:08:11,760 Bir domen xüsusi olan əlaqədar dil yazılı 147 00:08:11,760 --> 00:08:14,970 musiqi növləri üçün Haskell. 148 00:08:14,970 --> 00:08:17,350 Belə ki, online kodunu kontrol edin. 149 00:08:17,350 --> 00:08:22,404 Glasgow qədər yanğın GHCI, Haskell Compiler Interpreter. 150 00:08:22,404 --> 00:08:24,320 Mən bəzi məşğul olacaq bir az bu 151 00:08:24,320 --> 00:08:25,880 belə ki, bunu necə görə bilərsiniz. 152 00:08:25,880 --> 00:08:31,021 >> Və bu ilə yüklemek üçün imkan verir ki, the-- syntax sonra colon və 153 00:08:31,021 --> 00:08:31,520 komanda. 154 00:08:31,520 --> 00:08:33,510 Siz faylları yükləyə bilər. 155 00:08:33,510 --> 00:08:36,840 Siz bu faylları göz istifadə edə bilərsiniz bütün funksiyaları görmək üçün 156 00:08:36,840 --> 00:08:39,169 xüsusi modul mövcuddur. 157 00:08:39,169 --> 00:08:43,850 Və biz, növləri və növü görəcəksiniz sonra dərsləri, Haskell vacibdir 158 00:08:43,850 --> 00:08:48,850 belə ki, həmişə, xüsusilə də yoxlamaq bilər Yeni bir DSCL çalışırıq, əgər 159 00:08:48,850 --> 00:08:51,600 bu kimi bir musiqi növü nədir? 160 00:08:51,600 --> 00:08:55,114 Mən yol ədədi haqqında bilmək növləri, Haskell iş 161 00:08:55,114 --> 00:08:56,530 lakin mən musiqi haqqında çox bilmirəm. 162 00:08:56,530 --> 00:09:01,280 Amma onlar yol tədqiq edə bilərsiniz Bu t və ya növü komandasindan istifadə edərək, müəyyən 163 00:09:01,280 --> 00:09:04,577 və sonra xüsusilə zəng funksiyası və ya məlumat obyekt. 164 00:09:04,577 --> 00:09:05,410 CONNOR HARRIS: Bəli. 165 00:09:05,410 --> 00:09:09,820 C və cingilti fikir varsa növləri haqqında hardass idi, 166 00:09:09,820 --> 00:09:11,230 Siz Haskell haqqında heç bir fikrim yoxdur. 167 00:09:11,230 --> 00:09:14,230 Haskell haqqında yaxşı şey ki, Siz tərtib etmək kodu edə bilərsiniz 168 00:09:14,230 --> 00:09:16,790 və Haskell növü çek əgər, Bu, yəqin ki, doğru 169 00:09:16,790 --> 00:09:18,675 type sistemi belə ciddi çünki. 170 00:09:18,675 --> 00:09:20,090 >> STEPHEN KREWSON: Bəli. 171 00:09:20,090 --> 00:09:21,980 Mən yalnız getmək istəyirəm daha through-- və, 172 00:09:21,980 --> 00:09:27,160 bu bir neçə ədalətlə etmir Haskell xüsusiyyətləri, ən azı 173 00:09:27,160 --> 00:09:31,780 onun creators-- və bu yaradılmışdır insanların bir dəstə ilə mərhum 1980-ci ildə, 174 00:09:31,780 --> 00:09:34,610 20 bir komitə xalqımAğır vacib idi düşündüm. 175 00:09:34,610 --> 00:09:36,850 Və ilk şey onlar bir kağız listelenen 176 00:09:36,850 --> 00:09:41,890 Haskell genezisi təsvir ilk 20 il və ya artıq 177 00:09:41,890 --> 00:09:43,390 Bu tənbəl idi. 178 00:09:43,390 --> 00:09:44,990 Belə ki, bu nə deməkdir? 179 00:09:44,990 --> 00:09:49,860 >> Biz bir növ zaman Bəli, bu o deməkdir ifadə, biz bunu qiymətləndirmək lazımdır. 180 00:09:49,860 --> 00:09:54,390 Və Haskell zəng bu yoxdur ehtiyac yol və ya qeyri-ciddi yolu ilə. 181 00:09:54,390 --> 00:09:57,250 Biz bir dəstə var ki, əgər Bizim ifadə komponentləri, 182 00:09:57,250 --> 00:10:00,660 biz qiymətləndirilməsi gecikdirmək üçün cəhd o alt of 183 00:10:00,660 --> 00:10:05,300 mütləq son minute-- qədər biz, həqiqətən, onlara ehtiyac qədər ki. 184 00:10:05,300 --> 00:10:08,480 >> Belə ki, bu vasitələri olan həqiqətən, sərin, xüsusilə 185 00:10:08,480 --> 00:10:13,200 biz abstraksiya haqqında düşünür edirsinizsə musiqi addım sequencer edir. 186 00:10:13,200 --> 00:10:16,740 Siz yandırmaq və siz başlamaq bir addım sequence-- çalışan 187 00:10:16,740 --> 00:10:20,010 Heç bir nağara ilə çalışıb əgər machine-- və yalnız əbədi gedir. 188 00:10:20,010 --> 00:10:24,650 Belə ki, biz, həqiqətən, gözəl olardı Haskell ki yarışmaq bilər. 189 00:10:24,650 --> 00:10:31,040 Və biz sonsuz ilə bunu edə bilərsiniz dəyərlər, xüsusilə sonsuz siyahıları. 190 00:10:31,040 --> 00:10:35,860 Bu yazın çox asandır Haskell sonsuz siyahısı. 191 00:10:35,860 --> 00:10:39,230 Siz yalnız aşağı sintaksis istifadə edə bilər Burada siz 3 ilə 1 görmək, 192 00:10:39,230 --> 00:10:42,440 3 1 dot dot aradan qaldırılması və ki, sonsuz siyahısı 193 00:10:42,440 --> 00:10:46,960 bütün təbii nömrələri uzanan qədər siz təsəvvür edə bilərsiniz kimi. 194 00:10:46,960 --> 00:10:49,925 >> Mən təqdim etmək istəyirəm hemen katlanmalarda anlayışı. 195 00:10:49,925 --> 00:10:51,800 Və yenə, məqsədi Bu seminar deyil, 196 00:10:51,800 --> 00:10:55,770 Haskell katlanmalarda haqqında məlumat və ya ali məqsədi fəaliyyət göstərir. 197 00:10:55,770 --> 00:10:59,640 Amma yalnız onu təqdim etmək istəyirəm necə qəribə dəqiq hissi verir 198 00:10:59,640 --> 00:11:03,700 Haskell və necə güclü deyil. 199 00:11:03,700 --> 00:11:08,000 Və xüsusilə, biz fikrində deyilik Biz müxtəlif baraban hissələri nə zaman, 200 00:11:08,000 --> 00:11:12,790 biz siyahıları manipulyasiya etmək olacaq ədəd bir-birinə üzərində onlara qatlama. 201 00:11:12,790 --> 00:11:17,290 Bunu etmək üçün, biz lazımdır xəritələr və katlanmalarda istifadə ola bilər. 202 00:11:17,290 --> 00:11:21,770 >> Düzgün assosiativ var bu bir doğru olan, qat 203 00:11:21,770 --> 00:11:26,990 burada 1 minus miqdarı, 2 minus miqdarı, 3 minus 0. 204 00:11:26,990 --> 00:11:29,170 Və üçün syntax qat, bir dəfə vermək 205 00:11:29,170 --> 00:11:34,680 baza dəyəri və sonra operation-- Bu halda, əlavə və ya toplama işlemi. 206 00:11:34,680 --> 00:11:36,280 Mən də hallarda göstərilən etdik. 207 00:11:36,280 --> 00:11:41,760 Və sonra bir akkumulyator var ki, Bütün siyahı üzərində toplanır, 208 00:11:41,760 --> 00:11:46,330 ki, operator plus tətbiq və ya minus, və sonra yığılan. 209 00:11:46,330 --> 00:11:52,680 Bu adlanır əgər Belə ki, bu the-- olacaq qat r plus 0 ilə 0 başlayaraq, 210 00:11:52,680 --> 00:11:54,720 biz sonra bütün yekunlaşdırmaq olardı ki, siyahıda nömrələri. 211 00:11:54,720 --> 00:11:57,134 Və 1-dən 3-ə bir siyahısı. 212 00:11:57,134 --> 00:12:00,050 CONNOR HARRIS: Belə ki, başqa bir qoymaq üçün yol qat r üç dəlilləri. 213 00:12:00,050 --> 00:12:02,540 Bir funksiyası var ki, özü iki dəlilləri edir, 214 00:12:02,540 --> 00:12:05,400 sonra bir başlanğıc dəyəri var, və dəyərlərin siyahısı var. 215 00:12:05,400 --> 00:12:08,570 Və siz nə sizi deyil starter dəyəri, ilk dəyəri, 216 00:12:08,570 --> 00:12:09,850 funksiyası onları qoydu. 217 00:12:09,850 --> 00:12:11,607 Siz nə almaq yoxdur ki, feed almaq 218 00:12:11,607 --> 00:12:13,940 funksiyası daxil İkinci dəyəri, siz almaq nə, 219 00:12:13,940 --> 00:12:16,690 almaq, ki, yem Üçüncü dəyər funksiyası. 220 00:12:16,690 --> 00:12:18,740 Və sonra aşağı getmək əgər Bu bütün siyahısı bu şəkildə, 221 00:12:18,740 --> 00:12:22,970 Siz nəhayət almaq olacaq bəzi tək dəyəri 222 00:12:22,970 --> 00:12:25,720 Siz başlamaq nə eyni tipli ilə və eyni tipli 223 00:12:25,720 --> 00:12:29,147 sonra siyahıdan şeyi, və ki qat R. qaytarılması nəticə 224 00:12:29,147 --> 00:12:31,980 STEPHEN KREWSON: xüsusilə Belə ki, bu ali məqsədi funksiyaları, 225 00:12:31,980 --> 00:12:34,460 onlar başqa alaraq edirik, çünki arqumentlərdən biri kimi fəaliyyət göstərir. 226 00:12:34,460 --> 00:12:34,770 >> CONNOR HARRIS: Bəli. 227 00:12:34,770 --> 00:12:37,820 Siz müəyyən digər istifadə varsa dillərdə I R bilirəm, [işitilemez] 228 00:12:37,820 --> 00:12:41,510 dil azaltmaq adlanan bu var. 229 00:12:41,510 --> 00:12:45,460 Siz oxşar funksiyaları ola bilər digər dillərdə, yalnız adlı 230 00:12:45,460 --> 00:12:48,160 fərqli şeylər. 231 00:12:48,160 --> 00:12:50,680 >> STEPHEN KREWSON: And nə qat R gözəl 232 00:12:50,680 --> 00:12:53,880 bu halda ki, qat R sonsuz siyahıları ilə işləyə bilər. 233 00:12:53,880 --> 00:12:59,490 Bu alt, bu P5 belə qeydlər yaradan ki, 234 00:12:59,490 --> 00:13:03,120 üçün addım sequencer açıq bir baraban hissəsi, beşinci drum hissəsi, 235 00:13:03,120 --> 00:13:05,480 və bəlkə bir Conga var nağara və ya bir şey. 236 00:13:05,480 --> 00:13:09,719 Bu qəsdən deyil Bu yazı obtuse yolu, 237 00:13:09,719 --> 00:13:11,510 lakin, çünki, əyləncə var bir çox nümayiş etdirir 238 00:13:11,510 --> 00:13:14,460 Haskell və Euterpea haqqında hər şeyi. 239 00:13:14,460 --> 00:13:20,650 >> Belə ki, bu colon-- kolon R qat şeyi itme yalnız bir operator 240 00:13:20,650 --> 00:13:25,700 birlikdə boş adlı list-- haqqında yalnız boş mötərizədə var siyahısı. 241 00:13:25,700 --> 00:13:28,250 Və mən zəng edirəm Bu sonsuz siyahıda. 242 00:13:28,250 --> 00:13:31,570 Bu, həqiqətən, iki siyahıları aşağı burada birlikdə əlavə. 243 00:13:31,570 --> 00:13:37,150 siyahısı 1 vergül 6 dot dot 1, 6, 11, 16. 244 00:13:37,150 --> 00:13:39,750 Yalnız belə Haskell-- bir neçə simvol, siz 245 00:13:39,750 --> 00:13:42,420 ümumiliklə yarada nömrələri ardıcıllıqla 246 00:13:42,420 --> 00:13:46,240 Beş ədəd ayrı var ki, sonsuzluğa uzanan. 247 00:13:46,240 --> 00:13:49,860 Mən ki, başına Bu qısa az list-- 248 00:13:49,860 --> 00:13:54,370 3, 8, 21-- yalnız sizə göstərmək üçün necə siyahıları concatenate bilər. 249 00:13:54,370 --> 00:13:55,790 >> Və sonra mən özü qatlanmış etdik. 250 00:13:55,790 --> 00:14:01,510 Və bu, yalnız bir növ olan qədər başa şəxsiyyət əməliyyat, lakin sonsuz deyil. 251 00:14:01,510 --> 00:14:06,070 Və R bunu edə bilərsiniz qat çünki tənbəlcəsinə yuxarıda kimi qiymətləndirir. 252 00:14:06,070 --> 00:14:10,582 Biz 1 və 2 və 3 varsa, biz yalnız bütün qalan off bracket. 253 00:14:10,582 --> 00:14:12,290 Ki, iş deyil minus və ya plus, lakin o, 254 00:14:12,290 --> 00:14:17,760 bu kolon üçün işləyəcək siyahıda şəxsiyyət əməliyyat. 255 00:14:17,760 --> 00:14:24,620 >> Belə ki, necə biz praktiki istifadə edə bilərəm ki, əgər biz şeyi sonsuz uzun bir siyahı var? 256 00:14:24,620 --> 00:14:26,500 Yaxşı, Haskell təmin edir funksiyaların bir çox 257 00:14:26,500 --> 00:14:29,450 və bu daha çox baxmaq almaq kimi öz sýrada 258 00:14:29,450 --> 00:14:32,200 olan OK, biz istəyirik deyir Bu sonsuz siyahısı yaradan, 259 00:14:32,200 --> 00:14:35,950 lakin biz yalnız bəzi almaq olacaq Bunun Və Bu halda sayı 260 00:14:35,950 --> 00:14:38,410 Biz sonra bu görürsünüz Bizim drum machine kod 261 00:14:38,410 --> 00:14:43,740 GM qlobal yalnız bir növ addımlar sayı dəyişən 262 00:14:43,740 --> 00:14:44,610 sequencer edir. 263 00:14:44,610 --> 00:14:47,630 Roll-in maşın I ki, adətən 16 var, sizə göstərdi 264 00:14:47,630 --> 00:14:51,475 amma 32 ilə həyata keçirdik. 265 00:14:51,475 --> 00:14:54,470 Bu, həqiqətən etməz. 266 00:14:54,470 --> 00:15:00,230 >> Haskell də təmiz, belə ki, güclü var Connor alluded statik yazaraq. 267 00:15:00,230 --> 00:15:03,220 Belə ki, funksiyaları sense-- riyazi 268 00:15:03,220 --> 00:15:06,600 daha riyazi istəyirik onlar təmin edirik ki, 269 00:15:06,600 --> 00:15:11,530 daxil olmaq və ya hər hansı bir dəyişiklik deyil və ya dəyişən giriş və ya çıxış həyata keçirir. 270 00:15:11,530 --> 00:15:14,420 Bir funksiyası varsa, Bu deterministic var. 271 00:15:14,420 --> 00:15:17,400 O, həmişə eyni qayıdacaqlar Proqramın dövlət dəyəri 272 00:15:17,400 --> 00:15:19,310 və ya eyni qalır. 273 00:15:19,310 --> 00:15:22,940 Monadic istisnalar, əlbəttə, var Bu, lakin bizim kənara var. 274 00:15:22,940 --> 00:15:23,900 >> CONNOR HARRIS: Bəli. 275 00:15:23,900 --> 00:15:26,946 Bu nə deməkdir, baxmayaraq ki, var bir neçə mühüm [işitilemez] 276 00:15:26,946 --> 00:15:27,820 Bu nəticələri. 277 00:15:27,820 --> 00:15:30,940 Biri üçün çox asandır ki, Haskell proqramları parallelize. 278 00:15:30,940 --> 00:15:32,773 Varsa Çünki, ki, bir funksiyası demək 279 00:15:32,773 --> 00:15:36,064 əgər bir milyon dəyərlər fəaliyyət lazımdır ki, funksiyası həmişə olacaq bilirik 280 00:15:36,064 --> 00:15:39,280 eyni dəyər əgər vermək Müəyyən bir dəyər feed 281 00:15:39,280 --> 00:15:43,055 Siz f, [Işitilemez] f 1 değilseniz 2, sonra f 3 və ya 1 f whatnot-- 282 00:15:43,055 --> 00:15:45,180 yazmaq niyyətində deyil bir fayl və ya bir şey 283 00:15:45,180 --> 00:15:46,850 ki, F2 dəyəri dəyişəcək. 284 00:15:46,850 --> 00:15:50,220 Siz yalnız bir bu funksiyası split bilər milyon müxtəlif maşın və ya bir milyon 285 00:15:50,220 --> 00:15:54,720 müxtəlif mövzuları və ya nə olursa olsun, geri bütün cavab almaq, 286 00:15:54,720 --> 00:15:56,900 bütün geri dəyərlər almaq geri, sonra bu. 287 00:15:56,900 --> 00:15:59,780 Şeyi parallelize Belə ki, çox asandır. 288 00:15:59,780 --> 00:16:03,140 >> İşin mənfi tərəfi odur ki, giriş və çıxış xüsusilə 289 00:16:03,140 --> 00:16:05,720 növü sisteminə uyğun çox mürəkkəb yolları. 290 00:16:05,720 --> 00:16:09,010 Biz indi ki, doğru getmək, amma deyil Bəzi resursları baxmaq üçün təşviq 291 00:16:09,010 --> 00:16:11,175 online Bu barədə öyrənmək istəyirsinizsə. 292 00:16:11,175 --> 00:16:13,960 293 00:16:13,960 --> 00:16:16,550 >> STEPHEN KREWSON: Belə ki, yazın classes-- və bu 294 00:16:16,550 --> 00:16:21,610 növləri was-- dərsləri həll etmək üçün icad edildi 295 00:16:21,610 --> 00:16:24,160 operator həddindən artıq bir problem. 296 00:16:24,160 --> 00:16:27,590 Beləliklə, biz bərabərlik etmək istəyirdi şeyi müxtəlif növləri arasında. 297 00:16:27,590 --> 00:16:31,040 Əlbəttə ki, biz of-- hesab edə bilər rəqəmli növləri arasında bərabərlik 298 00:16:31,040 --> 00:16:34,720 , düşünmək üçün çox asandır, lakin nə siyahıları arasında bərabərlik haqqında? 299 00:16:34,720 --> 00:16:37,610 Bərabərliyi haqqında nə ağac ayaq data strukturları? 300 00:16:37,610 --> 00:16:43,130 Bu bütün mümkün deyil Haskell növü dərsləri, çünki. 301 00:16:43,130 --> 00:16:48,000 >> Belə ki, müəyyən bir məlumat tipli müəyyən əgər və burada bu musiqi sahasi var. 302 00:16:48,000 --> 00:16:50,960 Biz nəhayət alırıq bəzi kompüter musiqi. 303 00:16:50,960 --> 00:16:57,420 Beləliklə, biz C, C kəskin var, və s və s. 304 00:16:57,420 --> 00:17:01,080 Onlar bir dəstə aid müxtəlif növü dərsləri. 305 00:17:01,080 --> 00:17:03,510 EQ-- onlar EQ növü sinfinə aiddir. 306 00:17:03,510 --> 00:17:06,780 Yəni onlar dəstək deməkdir bərabərlik əməliyyatları. 307 00:17:06,780 --> 00:17:12,650 Belə ki, bir olub qiymətləndirmək olar musiqi primitives ardıcıllığı 308 00:17:12,650 --> 00:17:15,400 fərqli biri kimi eyni. 309 00:17:15,400 --> 00:17:17,280 >> Onlar sıra sinfinə aiddir. 310 00:17:17,280 --> 00:17:19,479 Ki, bir sifariş, bu var deməkdir. 311 00:17:19,479 --> 00:17:27,670 D C. C kəskin sonra gəlir eləcə də C sonra gəlir. 312 00:17:27,670 --> 00:17:29,840 Onlar sinif aid onlar deməkdir ki, göstərmək 313 00:17:29,840 --> 00:17:33,000 Bir konsol və ya terminal üçün çap edilə. 314 00:17:33,000 --> 00:17:36,090 Onlar aid sinif, sadalanan hansı 315 00:17:36,090 --> 00:17:39,770 o deməkdir ki, baxmayaraq ki, Bu simvol, 316 00:17:39,770 --> 00:17:45,340 Onlar əsas rəqəmli var 0 başlayan nümayəndəliyi 317 00:17:45,340 --> 00:17:48,960 və lakin vasitəsilə gediş çox şey burada, 20 və ya belə, 318 00:17:48,960 --> 00:17:51,770 ya bəlkə 30 və ya 40,. 319 00:17:51,770 --> 00:17:54,259 >> CONNOR HARRIS: zaman Biz data növü 320 00:17:54,259 --> 00:17:57,050 ki, söz ilə derives-- "Deriving--" müəyyən bir növü sinif, 321 00:17:57,050 --> 00:18:01,160 Bu compiler çalışacağıq o deməkdir ki, avtomatik bir şey tikmək. 322 00:18:01,160 --> 00:18:05,120 Belə ki, bəlkə lazımdır fərqli bir keyfiyyət müəyyən edir. 323 00:18:05,120 --> 00:18:09,450 Siz kəskin C müəyyən etmək lazımdır məsələn, D düz bərabər. 324 00:18:09,450 --> 00:18:11,560 Bu tikinti ilə burada, mən C kəskin düşünmürəm 325 00:18:11,560 --> 00:18:14,940 və D düz, çünki bərabər olacaq compiler avtomatik olaraq 326 00:18:14,940 --> 00:18:19,670 hər müxtəlif mümkün dəyər demək hər fərqli deyil. 327 00:18:19,670 --> 00:18:22,930 >> Belə ki, yalnış mümkündür default applications 328 00:18:22,930 --> 00:18:25,730 dərsləri bu cür. 329 00:18:25,730 --> 00:18:28,640 Yenə yalnız əgər baxmaq Bu barədə öyrənmək istəyirəm. 330 00:18:28,640 --> 00:18:31,767 331 00:18:31,767 --> 00:18:33,600 STEPHEN KREWSON: And Burada, həqiqətən, bu lazımdır 332 00:18:33,600 --> 00:18:36,930 biz sonra kod zaman üçün faydalı ola bilər. 333 00:18:36,930 --> 00:18:42,150 Biz infix operatorların bəzi görmək ardıcıl tərkibi, 334 00:18:42,150 --> 00:18:46,570 paralel tərkibi, və s irəli, bu müsbət və bərabər əlamətləri 335 00:18:46,570 --> 00:18:48,620 colons ilə əhatə. 336 00:18:48,620 --> 00:18:53,330 Yəni, biz bu müxtəlif oynaya bilər deməkdir musiqi primitives digər sonra bir. 337 00:18:53,330 --> 00:18:54,590 Ki, ardıcıl tərkibi var. 338 00:18:54,590 --> 00:18:57,170 >> Və ya biz onları oynaya bilər Eyni zamanda paralel. 339 00:18:57,170 --> 00:19:05,100 Belə ki, bir musiqi dəyər ola bilər, və sonra bu, bərabərdir və colons 340 00:19:05,100 --> 00:19:09,669 , paralel tərkibi operator Infix və akkord bir növ kimi oynayır. 341 00:19:09,669 --> 00:19:11,460 Və biz istifadə etmək olacaq Bu zaman biz birləşdirmək 342 00:19:11,460 --> 00:19:15,080 ilə drum hissəsi bizim az Frere Jacques mahnı 343 00:19:15,080 --> 00:19:19,460 bu iki ardıcıllığı oynamaq eyni zamanda musiqi dəyərlər. 344 00:19:19,460 --> 00:19:24,520 345 00:19:24,520 --> 00:19:29,250 >> Is-- Curry tumar edilib Haskell Curry, adı kim 346 00:19:29,250 --> 00:19:31,850 Haskell image adını daşıyır. 347 00:19:31,850 --> 00:19:34,330 Bu bizi bir imkan verir biz istəyirik gözəl zəriflik 348 00:19:34,330 --> 00:19:36,880 bütün bu müxtəlif yazılı funksiyaları və ya biz istəyirik filtreler 349 00:19:36,880 --> 00:19:39,330 Bizim siyahıları üzərində Xəritəçəkmə olacaq. 350 00:19:39,330 --> 00:19:42,810 Iki funksiyası x və y-- f arqumentlər 351 00:19:42,810 --> 00:19:46,630 kimi təmsil oluna bilər x f y müraciət edib. 352 00:19:46,630 --> 00:19:49,800 Belə ki, bir funksiyası var qaytarır bir arqument 353 00:19:49,800 --> 00:19:51,240 bir arqument bir funksiyası. 354 00:19:51,240 --> 00:19:56,962 Belə ki, bu biz bir xəritəyə bilər deməkdir y-in siyahısına üzərində x funksiyası f. 355 00:19:56,962 --> 00:19:58,920 CONNOR HARRIS: istəyir bu bir nümunə vermək? 356 00:19:58,920 --> 00:19:59,836 STEPHEN KREWSON: Bəli. 357 00:19:59,836 --> 00:20:05,390 Mən burada bir nümunə biz yazacaq bəzi şeyləri. 358 00:20:05,390 --> 00:20:10,500 Belə ki, kopya 2-- yaxşı, olacaq kopya 359 00:20:10,500 --> 00:20:13,040 neçə bir dəyəri, dəfə bir şey kopya, 360 00:20:13,040 --> 00:20:16,690 və sonra bir dəyər olacaq adətən bir siyahısı və ya bir şey. 361 00:20:16,690 --> 00:20:23,450 Odur ki, biz mapping istəyirik başqa siyahı üzərində 2 kopya. 362 00:20:23,450 --> 00:20:27,440 >> Biz 2 kopya xəritəsi Belə ki, biz 2 kopya əgər tətbiq 363 00:20:27,440 --> 00:20:31,890 bu list-- ilk element və bu musiqi phrases-- siyahıları var 364 00:20:31,890 --> 00:20:37,650 iki istehsal edəcək "Siz sleeping--" belə ki, yuxu, yuxu. 365 00:20:37,650 --> 00:20:40,040 Belə ki, indi biz iki var. 366 00:20:40,040 --> 00:20:42,570 Amma təkrar iki edir dəlilləri, lakin biz istəyirik, çünki 367 00:20:42,570 --> 00:20:47,100 mapping sonra tumar və, biz Çoğaltma 2 təmsil edə bilər 368 00:20:47,100 --> 00:20:52,310 bir funksiyası kimi geri edilmiş kimi bir dəlil yalnız iki dəfə təkrarlanmağa. 369 00:20:52,310 --> 00:20:57,010 Və sonra biz hər ki, tətbiq edirik söz bu siyahının element. 370 00:20:57,010 --> 00:21:01,900 >> Və Concat bir Haskell deyil bir siyahısını flattening üçün əməliyyat. 371 00:21:01,900 --> 00:21:04,400 Kopya 2 Çünki siyahıları siyahısını istehsal edir. 372 00:21:04,400 --> 00:21:06,660 Və bu ara forma burada. 373 00:21:06,660 --> 00:21:10,365 Və sonra biz Concat bilər və ya iki dəfə ki, dümdüz. 374 00:21:10,365 --> 00:21:12,240 CONNOR HARRIS: A sadə tumar nümunəsi, 375 00:21:12,240 --> 00:21:15,323 Siz like-- etsəniz f yalnız bir təsəvvür iki edir vurma funksiyası 376 00:21:15,323 --> 00:21:16,840 arqumentlər və öz məhsul qaytarır. 377 00:21:16,840 --> 00:21:19,320 Siz bir F 4 5 varsa, 20 var. 378 00:21:19,320 --> 00:21:22,670 Amma bu hesab edə bilər also-- bir funksiyası f 4 var 379 00:21:22,670 --> 00:21:25,560 ki, bir dəlil və yekunları edir Bu yalnız dəlil dörd dəfə 380 00:21:25,560 --> 00:21:27,870 qismən tətbiq edən Yalnız bir arqument 4. 381 00:21:27,870 --> 00:21:31,182 Və 4 f qidalandırmaq 5, ki, siz 20 verəcək. 382 00:21:31,182 --> 00:21:32,890 Və bir sadə deyil tumar nümunəsi. 383 00:21:32,890 --> 00:21:34,473 Bu adətən dərslik olanları biridir. 384 00:21:34,473 --> 00:21:38,860 385 00:21:38,860 --> 00:21:42,110 >> STEPHEN KREWSON: Lambda ifadələri və ya anonim funksiyaları 386 00:21:42,110 --> 00:21:47,330 başqa Haskell əyar edir. 387 00:21:47,330 --> 00:21:51,242 Biz bir qızışdırmaq lazımdır, əgər belə az funksiyası həyat kopya, 388 00:21:51,242 --> 00:21:52,950 lakin bu deyil demək standart kitabxana, 389 00:21:52,950 --> 00:21:56,150 biz sintaksis istifadə edə bilərsiniz Aşağıdakı bənzər. 390 00:21:56,150 --> 00:21:58,730 Və biz bu artıq Meltem lazımdır. 391 00:21:58,730 --> 00:22:02,160 Siz bir çox görəcəksiniz Bir şey drum machine biz zəng edirik ki, 392 00:22:02,160 --> 00:22:05,790 bir şey çağırıb olan kimi əvvəl, filter, 393 00:22:05,790 --> 00:22:08,185 bir funksiyası mapping edir bir siyahı üzərində, ancaq var 394 00:22:08,185 --> 00:22:10,260 bir Boolean funksiyası bir mapping. 395 00:22:10,260 --> 00:22:13,390 >> Beləliklə, biz burada nümunə var bir bir anonim 396 00:22:13,390 --> 00:22:19,150 müəyyən Boolean funksiyası yalnız bir neçə dəyərlər edir. 397 00:22:19,150 --> 00:22:22,990 Bu ciddi danışan deyil anonim funksiyası. 398 00:22:22,990 --> 00:22:25,850 Amma bu ilə müəyyən deyil müxtəsərlik üçün sintaksis, 399 00:22:25,850 --> 00:22:28,007 və bu, yalnız x modul edir n-- 400 00:22:28,007 --> 00:22:28,840 CONNOR HARRIS: Bəli. 401 00:22:28,840 --> 00:22:31,330 Belə ki, f bir funksiyası iki dəlilləri n və p 402 00:22:31,330 --> 00:22:35,440 ki, özü bir funksiyası qaytarır bir arqument bir funksiyası, yəni x. 403 00:22:35,440 --> 00:22:38,815 404 00:22:38,815 --> 00:22:40,690 STEPHEN KREWSON: I sözügedən infix operatorları. 405 00:22:40,690 --> 00:22:42,642 Infix operatorları hansılardır? 406 00:22:42,642 --> 00:22:45,710 Yaxşı, infix operatorları biz əməliyyatları təmsil normal şəkildə, 407 00:22:45,710 --> 00:22:49,910 mathematics-- 2 plus, demək Əvəzinə operatorun 2 plus 408 00:22:49,910 --> 00:22:51,202 və sonra iki dəlilləri 2 və 2. 409 00:22:51,202 --> 00:22:53,701 CONNOR HARRIS: Bu deyirlər olan polish notation geri 410 00:22:53,701 --> 00:22:55,330 bir müddət Mən sizə hər hansı bir bilirik ki, şübhə. 411 00:22:55,330 --> 00:22:56,288 >> STEPHEN KREWSON: Sağ. 412 00:22:56,288 --> 00:22:58,290 Polish və ya prefiks notation Reverse. 413 00:22:58,290 --> 00:23:01,412 Amma Haskell qərar verdi infix operatorları istifadə edin. 414 00:23:01,412 --> 00:23:03,120 Belə ki, bu bəzi xüsusi olanları ki, 415 00:23:03,120 --> 00:23:07,770 üçün müəyyən edilir Haskell Euterpea DSCL. 416 00:23:07,770 --> 00:23:10,730 Belə ki, bu ardıcıl tərkibi idi. 417 00:23:10,730 --> 00:23:16,340 Bu paralel tərkibi idi və bu paralel tərkibi truncating edilib. 418 00:23:16,340 --> 00:23:18,710 Və biz lazımdır Bizim drum maşın ilə, 419 00:23:18,710 --> 00:23:22,640 Biz son istifadə edəcəyik, çünki orada ki, az Tuple operatoru 420 00:23:22,640 --> 00:23:26,330 birlikdə baraban maşın oynamaq Bizim Frere Jacques mahnı ilə. 421 00:23:26,330 --> 00:23:28,650 Və baraban maşın sonsuz olacaq. 422 00:23:28,650 --> 00:23:30,920 Bu, sadəcə əbədi oynayır. 423 00:23:30,920 --> 00:23:32,692 Amma Frere Jacques mahnı deyil. 424 00:23:32,692 --> 00:23:33,510 Bu uzun deyil. 425 00:23:33,510 --> 00:23:36,610 Bu, yalnız bir neçə bar var. 426 00:23:36,610 --> 00:23:43,030 Beləliklə, biz kimi baraban maşın dayandırmaq lazımdır qısa musiqi dəyəri gəlir qısa müddətdə 427 00:23:43,030 --> 00:23:43,700 sona. 428 00:23:43,700 --> 00:23:46,980 Və infixed operator ki, super faydalıdır. 429 00:23:46,980 --> 00:23:50,090 >> Kimi və infix notation Bu cür gözəl 430 00:23:50,090 --> 00:23:57,095 demək, çünki bir funksiyası kimi var quote olan tam bölgüsü verir 431 00:23:57,095 --> 00:24:01,010 bir şey x else-- sorry, bir və b olmalıdır. 432 00:24:01,010 --> 00:24:04,740 Siz b quote kimi yazmaq bilər. 433 00:24:04,740 --> 00:24:09,670 Siz put-- element, əgər belə bu bir nümunəsidir. 434 00:24:09,670 --> 00:24:14,730 bəzi siyahısında x element, siz qoymaq əgər Bu Backticks, siz istifadə edə bilərsiniz. 435 00:24:14,730 --> 00:24:20,400 Bu rəmzi deyil, baxmayaraq Plus və ya minus və ya dəfə kimi, 436 00:24:20,400 --> 00:24:24,630 Bir adını istifadə edə bilərsiniz Backticks belə funksiyası 437 00:24:24,630 --> 00:24:27,045 olduqca sərin infix operatoru kimi. 438 00:24:27,045 --> 00:24:29,670 CONNOR HARRIS: Yenə də, bu yalnız sintaktik şəkər, həqiqətən. 439 00:24:29,670 --> 00:24:32,310 Bu dil əsas təsir etmir. 440 00:24:32,310 --> 00:24:37,440 >> STEPHEN KREWSON: Belə ki, biz burada bax Bizim Frere Jacques mahnı son söz, 441 00:24:37,440 --> 00:24:45,740 Mən bir az ton ifa və ya paralel tərkibi istifadə üçdə 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 Bu, bəzi deyərək bir yoldur biz yalnız deyərək olduğunuz nə. 445 00:24:54,950 --> 00:24:59,986 Belə ki, funksiyaları xəritəsi bilər siyahıları üzərində bir mübahisə. 446 00:24:59,986 --> 00:25:02,860 CONNOR HARRIS: Yenə istinadlar Haskell-- giriş dərslik 447 00:25:02,860 --> 00:25:04,680 bu bütün bu olacaq. 448 00:25:04,680 --> 00:25:07,790 >> STEPHEN KREWSON: Belə ki, burada olduqca var addım sequencer əsas xətt 449 00:25:07,790 --> 00:25:12,820 Biz istifadə nəzər lazımdır siyahısı anlama. 450 00:25:12,820 --> 00:25:17,810 Və biz burada element görmək geri quotes sabit operator. 451 00:25:17,810 --> 00:25:23,030 X siyahısı bir element, əgər belə x-nin, sonra biz perc funksiyaları zəng edəcəyik. 452 00:25:23,030 --> 00:25:25,100 Belə ki, Perc yalnız bir zərb funksiyası var. 453 00:25:25,100 --> 00:25:30,200 Bu bəzi dəyəri p edir bütün Məhdud dəsti hissəsi 454 00:25:30,200 --> 00:25:35,310 müxtəlif zərb səslər Biz bir əvvəlki slide gördüm ki, 455 00:25:35,310 --> 00:25:38,840 və sonra verir dörddə qeyd müddəti. 456 00:25:38,840 --> 00:25:43,190 Else bu bir QNR verir, QNR yalnız dörddə qeyd istirahət edir. 457 00:25:43,190 --> 00:25:44,970 >> Belə ki, bu gözəl bir şey bina var. 458 00:25:44,970 --> 00:25:52,110 Biz elementləri bir siyahısı var, və bir bir siyahı ərzində biz lazımdır loop 459 00:25:52,110 --> 00:25:54,540 Bizim addım sequencer max dəyəri. 460 00:25:54,540 --> 00:25:58,290 Və biz xüsusi i olduğunuzda max dəyəri bir ki, siyahısı, 461 00:25:58,290 --> 00:26:02,970 Mən bu üzvüdür əgər Bu funksiya yaradılmış set, 462 00:26:02,970 --> 00:26:06,040 yaxşı, sonra biz onu açmaq zərb qeyd daxil. 463 00:26:06,040 --> 00:26:10,960 Əks halda, biz yalnız istirahət, oynamaq biz yalnız səssiz qalması, demək. 464 00:26:10,960 --> 00:26:16,050 Və biz burada görə ki, bilər bu siyahı anlama syntax, 465 00:26:16,050 --> 00:26:20,030 x bu yaşayır siyahısı bir inşa 466 00:26:20,030 --> 00:26:22,462 sequencer qlobal ölçüsü. 467 00:26:22,462 --> 00:26:23,295 CONNOR HARRIS: Bəli. 468 00:26:23,295 --> 00:26:26,340 əsas syntax siyahısı comprehensions edir 469 00:26:26,340 --> 00:26:30,810 cəlb bracket, dəyəri bəzi dəyişənlər, bar, 470 00:26:30,810 --> 00:26:34,260 dəyişənlərin mümkün dəyərlər özləri bracket bağlanıb. 471 00:26:34,260 --> 00:26:38,545 Və siz təyin builder notation etdik əgər riyaziyyat sinif hər cür, 472 00:26:38,545 --> 00:26:45,999 Əgər belə 2n müəyyən ola bilər ki, n və ya n z edir. 473 00:26:45,999 --> 00:26:48,290 Bu notation şey edir oxşar nalayiq olmaq deməkdir 474 00:26:48,290 --> 00:26:49,630 ki, riyazi notation. 475 00:26:49,630 --> 00:26:51,880 STEPHEN KREWSON: Və siz Çox predicates tətbiq 476 00:26:51,880 --> 00:26:56,250 siyahısı və çox filtreler olduqca gözəl anlama. 477 00:26:56,250 --> 00:27:01,800 Cəbri məlumat növləri biz Burada uzun uzanmaq deyil. 478 00:27:01,800 --> 00:27:04,840 Yaxşı anlayışı var deyil Haskell və ya yaxşı, aşkar anlayışı 479 00:27:04,840 --> 00:27:10,720 etmək necə, demək, bir defolt bir funksiyası və ya bir şey parametri. 480 00:27:10,720 --> 00:27:13,370 Python, bu çox asandır. 481 00:27:13,370 --> 00:27:18,460 On bərabərdir ilə Siz yalnız demək olar funksiyası bəyannamə, 482 00:27:18,460 --> 00:27:21,420 bir default dəyəri ilə hal heç verilir. 483 00:27:21,420 --> 00:27:27,010 >> Haskell, bəlkə bilər bəlkə yazın bəlkə istifadə, 484 00:27:27,010 --> 00:27:32,190 olan ya heç bir şey edir və ya növü dəyəri yalnız bir. 485 00:27:32,190 --> 00:27:38,630 Beləliklə, biz nağara maşın bu istismar Bizə isteğe həcmi vermək üçün imkan 486 00:27:38,630 --> 00:27:40,730 drum hissələrinin hər parametrləri. 487 00:27:40,730 --> 00:27:46,160 488 00:27:46,160 --> 00:27:54,680 Bizə EQ olan bir yol verir, belə ki, və ya müəyyən bir kanal həcmi. 489 00:27:54,680 --> 00:27:56,440 >> CONNOR HARRIS: In digər Haskell nümunələri, 490 00:27:56,440 --> 00:28:00,450 bəlkə istifadə bax bilər uğursuz ola bilər fəaliyyət göstərir. 491 00:28:00,450 --> 00:28:03,470 Bu ümumi biridir. 492 00:28:03,470 --> 00:28:07,010 >> STEPHEN KREWSON: Və təmin edə bilər bir default kimi səhv mesajı bir növ. 493 00:28:07,010 --> 00:28:11,020 Və xüsusilə lazımlı Siz Haskell I / O edirik. 494 00:28:11,020 --> 00:28:12,044 Bu tövsiyələr ola bilər. 495 00:28:12,044 --> 00:28:13,960 CONNOR HARRIS: Və ya üçün oxşar Məsələn, hesab edirəm ki, 496 00:28:13,960 --> 00:28:17,460 bölmə daxildir ki, funksiyası 0 ola bilər ki, bir parametr. 497 00:28:17,460 --> 00:28:20,020 Və funksiyası ola bilər bəlkə nə qayıtmaq. 498 00:28:20,020 --> 00:28:22,802 0 heç bölmə var Belə ki, yalnız nə qayıdacaqlar. 499 00:28:22,802 --> 00:28:25,010 Və bölmə ilə əgər var 0, heç bir şey qayıdacaqlar 500 00:28:25,010 --> 00:28:26,910 səhv siqnal bir yol kimi. 501 00:28:26,910 --> 00:28:30,330 Biri nəticəsi Çünki HASKELL çox ciddi yazaraq 502 00:28:30,330 --> 00:28:34,100 heç bir real-- var ki istisnalar əsasən, yöndəmsiz edir 503 00:28:34,100 --> 00:28:36,160 səhv rəftar yöndəmsiz. 504 00:28:36,160 --> 00:28:39,440 Və bu çox biri bunu ümumi yol. 505 00:28:39,440 --> 00:28:42,990 >> STEPHEN KREWSON: Belə ki, indi biz almaq başqa mind-əyilmə şey 506 00:28:42,990 --> 00:28:49,160 Haskell, haqqında olan model uyğun və funksiyası anlayışlar. 507 00:28:49,160 --> 00:28:53,390 Mən son slayd göstərdi addım ardıcıllıqla elan 508 00:28:53,390 --> 00:28:58,170 bir bəlkə dəyər aldı funksiyası, sonra bir int, sonra ints siyahısı 509 00:28:58,170 --> 00:29:03,850 sonra bir ardıcıllıqla qaytarır musiqi dəyərlər var not 510 00:29:03,850 --> 00:29:05,375 meydança və həcmi, həm də. 511 00:29:05,375 --> 00:29:08,030 512 00:29:08,030 --> 00:29:11,820 >> Belə ki, həmin üç arqumentlər ola bilər Aşağıdakı şəkildə uyğunlaşdı model. 513 00:29:11,820 --> 00:29:16,660 Və biz həmişə əmin olmaq istəyirəm ilk baza halda və ya çıxış işi yoxdur. 514 00:29:16,660 --> 00:29:19,690 Və bu çizgi yalnız təfsir edilə bilər 515 00:29:19,690 --> 00:29:22,340 var hər hansı bir dəyəri demək. 516 00:29:22,340 --> 00:29:26,580 Biz ardıcıllıqla addım zəng almaq əgər Belə ki, bəzi dəyəri ilə, bəzi digər dəyər, 517 00:29:26,580 --> 00:29:32,210 və sonra boş siyahısı, biz nə istəyirik qayıtmaq üçün yalnız sükut, istirahət 0. 518 00:29:32,210 --> 00:29:35,110 >> Əvəzinə ki, boş siyahısı və ya 0 olmaqla, 519 00:29:35,110 --> 00:29:38,150 biz istəyirik, çünki bu, istirahət 0 var musiqi növü ilə məşğul, 520 00:29:38,150 --> 00:29:43,230 və musiqi boş siyahısı növü yalnız heç bir müddəti bir istirahət edir. 521 00:29:43,230 --> 00:29:45,680 Bu, heç bir musiqi var. 522 00:29:45,680 --> 00:29:51,460 Biz bir addım almaq, onda biz görürük həcmi arqument üçün bir v ardıcıllıqla, 523 00:29:51,460 --> 00:29:57,290 tədbir aləti üçün p dəlil və sonra x-nin verilmişdir. 524 00:29:57,290 --> 00:29:58,360 >> Sonra biz bəzi məhsulları yoxdur. 525 00:29:58,360 --> 00:30:01,290 Xüsusilə tətbiq bu siyahı anlama, 526 00:30:01,290 --> 00:30:05,700 və biz bəzi yerinə yetirmək bəlkə dəyəri əməliyyatları 527 00:30:05,700 --> 00:30:10,050 ki, bir dəyər rəqəmli çevirmək sonra sadalanan və istifadə edilə bilər 528 00:30:10,050 --> 00:30:12,300 aləti seçin. 529 00:30:12,300 --> 00:30:16,730 Yenə də, bu bir az bit qəsdən inconcise 530 00:30:16,730 --> 00:30:20,580 yalnız bütün qəribə şeylər göstərmək Siz kimi Haskell edə bilərsiniz 531 00:30:20,580 --> 00:30:23,170 öz vaxtında ona nəzər. 532 00:30:23,170 --> 00:30:23,802 >> Oldu. 533 00:30:23,802 --> 00:30:26,010 Belə ki, biz nəhayət əldə edirik biz nə müəyyən nə, 534 00:30:26,010 --> 00:30:28,820 olan bəzi kompüter musiqi olun. 535 00:30:28,820 --> 00:30:32,250 Beləliklə, biz üçün cəhd olacaq Frere Jacques mahnı etmək. 536 00:30:32,250 --> 00:30:35,220 Belə ki, necə var Frere Jacques ifadələr? 537 00:30:35,220 --> 00:30:38,790 538 00:30:38,790 --> 00:30:39,680 Dörd. 539 00:30:39,680 --> 00:30:40,460 Great. 540 00:30:40,460 --> 00:30:42,490 Və nə gözəl ki, onlar bütün təkrar edirik 541 00:30:42,490 --> 00:30:46,990 iki dəfə eyni məbləği. 542 00:30:46,990 --> 00:30:50,730 >> Belə ki, biz dörd ifadələr tərcümə var Hər iki dəfə təkrarladı. 543 00:30:50,730 --> 00:30:53,590 Və xüsusilə, onlar dəyirmi istəyirik. 544 00:30:53,590 --> 00:30:55,340 Və çox var bir çox yolları həyata keçirilməsi üçün 545 00:30:55,340 --> 00:30:57,520 etmək fun ola bilər bir tur. 546 00:30:57,520 --> 00:31:00,260 Mən onu etdik olduqca burada sadə yolu, 547 00:31:00,260 --> 00:31:05,760 olan yalnız xətt construct-- etmək funksiyası musiqi dəyərlər siyahısını edir 548 00:31:05,760 --> 00:31:10,390 və ardıcıl tərkibi onu çevrilir ki, ardıcıl tərkibi tətbiq 549 00:31:10,390 --> 00:31:13,000 operator. 550 00:31:13,000 --> 00:31:19,540 >> Və sonra mən müxtəlif gecikdirmək edərək onlara istirahət ilə başlayır. 551 00:31:19,540 --> 00:31:22,770 Belə ki, iki tədbirlər qalan ilə başlamaq, və sonra dörd tədbirlər istirahət, 552 00:31:22,770 --> 00:31:26,160 və altı sonra qalan tədbirlər, sonra dəyirmi 553 00:31:26,160 --> 00:31:32,290 biz bütün bu mahnı bildiyiniz kimi, işləyir. 554 00:31:32,290 --> 00:31:37,180 Biz görürük iki ek və ya musiqi dəyərlərin dəyişikliklər 555 00:31:37,180 --> 00:31:43,150 bu ardıcıl əks olunur musiqi elementləri təşkili. 556 00:31:43,150 --> 00:31:44,810 Biz əlavə həcmi var. 557 00:31:44,810 --> 00:31:48,960 Bu annotasiya yazmaq üçün bir funksiyası var xüsusi həcmi musiqi. 558 00:31:48,960 --> 00:31:51,320 Bu yaxşı bir nümunə bir MIDI siqnal çalışan 559 00:31:51,320 --> 00:31:57,510 0-dan 127, yeddi bit keçirilə bilər məlumat. 560 00:31:57,510 --> 00:32:00,650 >> Və then-- biz çox onu gördüm qısa, lakin ümumi MIDI 561 00:32:00,650 --> 00:32:02,310 bütün müxtəlif alətlər siyahısı. 562 00:32:02,310 --> 00:32:04,450 Onların bir çox yoxdur. 563 00:32:04,450 --> 00:32:11,230 Bir digital audio workstation istifadə etsəniz, Ableton Live və ya Pro Tools kimi, 564 00:32:11,230 --> 00:32:17,560 inanılmaz geniş var synthesizers və VST alətləri. 565 00:32:17,560 --> 00:32:21,510 Lakin MIDI standart yalnız bir neçə və ya bir neçə onlarla var. 566 00:32:21,510 --> 00:32:22,799 Və onların bəziləri funny edir. 567 00:32:22,799 --> 00:32:25,840 Oynadıq əgər mən əyləncə olacağını düşündüm aləti MIDI aləti 568 00:32:25,840 --> 00:32:30,550 vertolyot və sonra dəyirmi vasitəsilə növbəti yol, 569 00:32:30,550 --> 00:32:37,980 biz və sonra, bir pad synth etdi Bu corny aparıcı kvadrat dalğa synth, 570 00:32:37,980 --> 00:32:44,240 və sonra, lil səs olan bir mənim pis MIDI az küt 571 00:32:44,240 --> 00:32:46,410 sintezatoru, lakin onlar OK. 572 00:32:46,410 --> 00:32:50,030 >> Və sonra biz bu imkan görmək Haskell olan sintaksis, 573 00:32:50,030 --> 00:32:54,030 sonra biz oynayırıq birlikdə bütün bu hissələr 574 00:32:54,030 --> 00:32:56,265 paralel tərkibi operatoru ilə. 575 00:32:56,265 --> 00:33:00,260 576 00:33:00,260 --> 00:33:02,296 Və biz yəqin ki, bu, bəzi göstərə bilər. 577 00:33:02,296 --> 00:33:07,674 578 00:33:07,674 --> 00:33:08,340 Burada kodu var. 579 00:33:08,340 --> 00:33:14,960 Və C bilərsiniz, bir var olarıq boğaz rəsmiləşdirilməsi və qəbulu çox 580 00:33:14,960 --> 00:33:19,760 səndən əvvəl masa code bu kimi musiqi edə bilər. 581 00:33:19,760 --> 00:33:22,080 Və ya hər hansı digər proqramlaşdırma dil, siz yəqin ki, istədiyiniz 582 00:33:22,080 --> 00:33:27,210 bir növ ilə qarşılıqlı var kitabxana və ya API və hər şeyi qurmaq, 583 00:33:27,210 --> 00:33:28,725 və sonra təmizləmək lazımdır ediyorum. 584 00:33:28,725 --> 00:33:33,810 Amma burada Haskell edir, mən bir dəfə, hesab edirəm ki, Siz olduqca, onun asmaq almaq 585 00:33:33,810 --> 00:33:35,770 oxunaqlı və çox ifadəli. 586 00:33:35,770 --> 00:33:38,930 587 00:33:38,930 --> 00:33:43,240 Belə ki, həyata keçirilməsi var Frere Jacques. 588 00:33:43,240 --> 00:33:43,740 Oldu. 589 00:33:43,740 --> 00:33:47,557 İndi biz zərb əlavə etmək istəyirəm, və bu bir az messier edir. 590 00:33:47,557 --> 00:33:49,015 Belə ki, slaydlar bir nəzər salaq. 591 00:33:49,015 --> 00:33:56,880 592 00:33:56,880 --> 00:34:00,540 Belə ki, böyük fikir etmək siyahıları və ya hissələri bir dəstə. 593 00:34:00,540 --> 00:34:04,140 Bu roll-in maşın var bəlkə səkkiz haqqında adətən idi 594 00:34:04,140 --> 00:34:08,670 10 ritm və ya zərb hissələri. 595 00:34:08,670 --> 00:34:10,159 Və sonra texnikanın bir dəstə istifadə edin. 596 00:34:10,159 --> 00:34:14,889 Və biz these-- istifadə haqqında söhbət etdik katlanmalarda, filtreler, Lambda funksiyaları, 597 00:34:14,889 --> 00:34:19,429 dəyərləri yaratmaq üçün siyahıları üzərində eşlenen bəzi sıra 1 r, r, 16 598 00:34:19,429 --> 00:34:20,699 və ya sequencer 32 addımlar. 599 00:34:20,699 --> 00:34:23,810 600 00:34:23,810 --> 00:34:29,920 >> Və siyahısında dəyəri var sonra əgər biz sequencer keçən etdiyiniz kimi, 601 00:34:29,920 --> 00:34:34,190 artıq onun vasitəsilə çalışan və üzərində, bu qeyd çevrilir, 602 00:34:34,190 --> 00:34:36,060 ki, nümunə səbəb olur. 603 00:34:36,060 --> 00:34:42,810 604 00:34:42,810 --> 00:34:47,110 Burada müxtəlif qəribə yolları Mən qeyd yaratmaq üçün ilə gəldi. 605 00:34:47,110 --> 00:34:48,940 Öz yarı məbləğ keçir. 606 00:34:48,940 --> 00:34:50,360 Bu sərin səs lazımdır. 607 00:34:50,360 --> 00:34:53,066 608 00:34:53,066 --> 00:34:54,690 Time biz bu yolu getmək lazımdır, icazə. 609 00:34:54,690 --> 00:34:59,200 Amma indi üçün, hərhalda Biz nə demo olmalıdır. 610 00:34:59,200 --> 00:35:01,380 Bu OK gedir ümid edirik. 611 00:35:01,380 --> 00:35:02,670 >> Belə ki, bu GHCI edir. 612 00:35:02,670 --> 00:35:06,580 613 00:35:06,580 --> 00:35:09,121 Və biz bir fayl yükləmək lazımdır Mən adlı song.lhs var, 614 00:35:09,121 --> 00:35:10,620 Mən yalnız siz göstərdi fayl. 615 00:35:10,620 --> 00:35:11,470 OK, böyük. 616 00:35:11,470 --> 00:35:15,010 Connor əvvəllər dediyi kimi, bu, tərtib yoxlanılır növü, 617 00:35:15,010 --> 00:35:18,380 mən bir çox asan nəfəs almaq olar. 618 00:35:18,380 --> 00:35:20,010 Bu mənə partlatmaq niyyətində deyil. 619 00:35:20,010 --> 00:35:22,720 >> Mən sizə faydalı bir şey göstərmək istəyirəm idi. 620 00:35:22,720 --> 00:35:25,900 Siz ki, görə bilərsiniz yüklü modul 50 çağırıb. 621 00:35:25,900 --> 00:35:28,240 Siz modulu bilərsiniz. 622 00:35:28,240 --> 00:35:32,092 Və bu qədər gözəl əməlindəndir haqqında bəlkə nə 623 00:35:32,092 --> 00:35:34,550 Haskell deyil siz edirik proqram inkişaf çağırıb 624 00:35:34,550 --> 00:35:36,980 ancaq bir çox edə bilərsiniz Öz fun stuff. 625 00:35:36,980 --> 00:35:42,410 Və iş kimi həqiqətən gözəl Başqa dillərdə bir çox müqayisədə, 626 00:35:42,410 --> 00:35:45,872 Bir həqiqətən edə bilərsiniz, çünki neler oxunaqlı bir şəkildə. 627 00:35:45,872 --> 00:35:47,830 Belə ki, biz var ki, görəcəksiniz Bütün bu ifadələr olan 628 00:35:47,830 --> 00:35:53,760 musiqi sahasi siyahıları var, və sonra böyük bir şey bu qurmaq, 629 00:35:53,760 --> 00:35:55,220 olan musiqi mahnı deyil. 630 00:35:55,220 --> 00:35:58,450 Bu musiqi vahid var. 631 00:35:58,450 --> 00:36:05,545 Və sonra biz bütün bu oynaya bilər bir funksiyası adlanır play musiqi ilə. 632 00:36:05,545 --> 00:36:09,040 Siz burada görə bilərsiniz. 633 00:36:09,040 --> 00:36:11,310 Hansı yalnız oynamaq edir. 634 00:36:11,310 --> 00:36:15,040 >> Mən haqqında danışmaq etməyib demək lazımdır hər yerdə ki, bu dollar işarəsi. 635 00:36:15,040 --> 00:36:17,980 Dollar işarəsi başqa infix operatorudur. 636 00:36:17,980 --> 00:36:22,500 Lakin bu ən aşağı üstün var səmərəli hər hansı bir operatorun 637 00:36:22,500 --> 00:36:24,960 ki, hər şey deməkdir dollar işarəsi sol 638 00:36:24,960 --> 00:36:28,460 və dollar işarəsi sağ, biz əvvəl qiymətləndirdi almaq olacaq. 639 00:36:28,460 --> 00:36:31,430 Belə ki, başqa kimi növ var mötərizə əlavə yol. 640 00:36:31,430 --> 00:36:33,980 641 00:36:33,980 --> 00:36:36,220 >> CONNOR HARRIS: Bu əsasən funksiyası tərkibi. 642 00:36:36,220 --> 00:36:40,026 Və əgər yaxşıdır deyil ki, təmin edir Siz funksiyaları yan və ya infix ya var 643 00:36:40,026 --> 00:36:42,900 hər tərəfdən operatorları, onlar deyil bu arasında şərik vermək 644 00:36:42,900 --> 00:36:46,030 gözlənilməz nəticələri. 645 00:36:46,030 --> 00:36:49,790 >> STEPHEN KREWSON: Beləliklə, biz can-- istifadə edərək, biz zəng edə bilərsiniz. 646 00:36:49,790 --> 00:36:51,415 Birincisi, biz zərb alətləri olmadan oynamaq lazımdır. 647 00:36:51,415 --> 00:37:00,330 648 00:37:00,330 --> 00:37:03,170 Ki, vertolyot var MIDI vertolyot. 649 00:37:03,170 --> 00:37:05,495 >> [MUSIC PLAYING] 650 00:37:05,495 --> 00:37:08,525 651 00:37:08,525 --> 00:37:09,525 Kvadrat dalğa var. 652 00:37:09,525 --> 00:37:24,520 653 00:37:24,520 --> 00:37:25,490 səs lil. 654 00:37:25,490 --> 00:37:27,630 Və həqiqətən, bu ilə vəhşi bilərsiniz. 655 00:37:27,630 --> 00:37:30,872 Mən olduqca sadə bir seçilmiş, Mən bilirdim, çünki mən off yemək lazım deyil 656 00:37:30,872 --> 00:37:31,830 Mən çeynəmək bilər çox daha çox. 657 00:37:31,830 --> 00:37:36,460 Yalnız olduqca sadə saxlamaq əsas ideyaları göstərmək üçün. 658 00:37:36,460 --> 00:37:39,952 Lakin sonra mən kimi, biz idi Bu bəzi zərb alətləri əlavə etmək üçün var. 659 00:37:39,952 --> 00:37:41,910 Məhz bu bir deyil, çünki az keçilməz, 660 00:37:41,910 --> 00:37:45,790 Mən istifadə etməyib drum hissələrinin adı, 661 00:37:45,790 --> 00:37:49,490 Onlar çünki mən Odur eşlenen ki, sadalanan sinif hissəsi, 662 00:37:49,490 --> 00:37:51,500 Mən ints onları eşlenen. 663 00:37:51,500 --> 00:37:53,120 Bir bas nağara kimi. 664 00:37:53,120 --> 00:37:54,370 Zero həmçinin. 665 00:37:54,370 --> 00:37:56,000 Seven yüksək hat edir. 666 00:37:56,000 --> 00:38:00,920 Və aşağı burada olduğu funksiyaları, bir az daha təsadüfi almaq 667 00:38:00,920 --> 00:38:02,100 Bu Conga zərb alətləri kimi. 668 00:38:02,100 --> 00:38:08,360 >> Belə ki, bəlkə bir about-- hesab edirəm ki, əgər bir baraban maşın həyata keçirilməsi üçün fun yolu 669 00:38:08,360 --> 00:38:12,830 çox nizamlı istifadə etmək bas nağara nümunələri. 670 00:38:12,830 --> 00:38:17,640 Belə ki, məsələn, artıq filtreleme haqqında geri verir hər şey ilə siyahısı 671 00:38:17,640 --> 00:38:20,590 Bu modul 04 qəbul 1. 672 00:38:20,590 --> 00:38:27,190 Belə ki, 1, 5, 9, 13, 17-- bu almaq hər tədbirin ilk beat edir. 673 00:38:27,190 --> 00:38:32,860 >> Və sonra bu eyni şey iki addımlar üzərində keçdikdə. 674 00:38:32,860 --> 00:38:33,850 Belə ki, offbeat var. 675 00:38:33,850 --> 00:38:37,480 Belə ki, bu olacaq yüksək papaq kimi bir şey. 676 00:38:37,480 --> 00:38:39,640 Və sonra, aşağı burada, Bu, bir az təsadüfi deyil 677 00:38:39,640 --> 00:38:41,080 biz Conga zərb alətləri edirik, çünki. 678 00:38:41,080 --> 00:38:44,180 Mən də burada bəzi Maracas aşağı var. 679 00:38:44,180 --> 00:38:50,280 >> Mən play baraban maşın zəng edə bilər lakin əbədi getmək olardı, 680 00:38:50,280 --> 00:38:53,700 və onu qənimətçilik başlaya bilər Mənim sistem bütün yaddaş. 681 00:38:53,700 --> 00:38:57,090 Beləliklə, mən bu funksiya zəng edəcəyik , biz görəcəksiniz kimi musiqi oynamaq 682 00:38:57,090 --> 00:39:02,020 truncating paralel tərkibi istifadə Bizim kiçik Frere Jacques mahnı oynamaq üçün 683 00:39:02,020 --> 00:39:04,200 Bu qəribə nağara maşın ilə birlikdə. 684 00:39:04,200 --> 00:39:06,190 Belə ki, bir nəzər salaq. 685 00:39:06,190 --> 00:39:10,920 Və yaxşılaşdırılması edin my bütün drum hissələri təşkili. 686 00:39:10,920 --> 00:39:13,375 Mənim ixtisas, amma bunu fun bir çox idi. 687 00:39:13,375 --> 00:39:17,678 688 00:39:17,678 --> 00:39:20,654 >> [MUSIC PLAYING] 689 00:39:20,654 --> 00:39:52,260 690 00:39:52,260 --> 00:39:56,980 >> Əlbəttə ki, bu bütün əyləncə kimi bir az deyil 691 00:39:56,980 --> 00:40:01,100 biz çevirə bilməz, əgər bir hesab belə ki, bəlkə 692 00:40:01,100 --> 00:40:04,650 şərh edilə bilər bir insan ifaçı tərəfindən. 693 00:40:04,650 --> 00:40:06,535 Belə ki, mən burada çalışmaz. 694 00:40:06,535 --> 00:40:07,910 Mən artıq faylları yaradılan etdik. 695 00:40:07,910 --> 00:40:10,280 Siz var ki, görə bilərsiniz dot LilyPond fayl və bu 696 00:40:10,280 --> 00:40:14,500 mənim Segue artıq olacaq Connor-- və dot MIDI fayl, 697 00:40:14,500 --> 00:40:18,610 və nə bir dot PDF file, olan LilyPond nəticədə yaradacaq. 698 00:40:18,610 --> 00:40:23,770 >> Lakin bu o scripts və mən lazımdır yalnız onların yardım variantları ilə axır. 699 00:40:23,770 --> 00:40:28,090 Bu almaq və ilə çalışan əgər Euterpea, bir MIDI fayl yarada. 700 00:40:28,090 --> 00:40:31,160 Və sonra MIDI fayl Bu MIDI 2LY proqramı ilə, 701 00:40:31,160 --> 00:40:34,930 Bir Lily yarada Pond fayl, və sonra 702 00:40:34,930 --> 00:40:37,974 hesab bir PDF yarada. 703 00:40:37,974 --> 00:40:39,390 Və biz bu nəzər almaq lazımdır. 704 00:40:39,390 --> 00:40:52,599 705 00:40:52,599 --> 00:40:55,140 Belə ki, Connor yəqin göstərəcək Siz necə, bu daha yaxşı annotasiya yazmaq 706 00:40:55,140 --> 00:41:02,570 lakin bu Frere Jacques kimi Euterpea mənə tərəfindən. 707 00:41:02,570 --> 00:41:07,300 Bu, sadəcə C. I fiqurlu olmalıdır ki, bu həqiqətən hack nə. 708 00:41:07,300 --> 00:41:11,090 Amma ki, boru kəməridir Siz ki, bunu necə. 709 00:41:11,090 --> 00:41:12,950 Nin LilyPond haqqında daha ətraflı danışaq. 710 00:41:12,950 --> 00:41:15,780 >> CONNOR HARRIS: OK Baxaq. 711 00:41:15,780 --> 00:41:19,480 712 00:41:19,480 --> 00:41:21,419 Siz Haskell əldə edin qeyd mi? 713 00:41:21,419 --> 00:41:22,460 STEPHEN KREWSON: Bəli Oh. 714 00:41:22,460 --> 00:41:23,480 Kontrol You Haskell əldə edin. 715 00:41:23,480 --> 00:41:24,410 Bu resursları var. 716 00:41:24,410 --> 00:41:26,830 Mən açılmış necə ki öyrənmək və bu, böyük deyil. 717 00:41:26,830 --> 00:41:27,580 Lal Not təlim. 718 00:41:27,580 --> 00:41:28,829 >> CONNOR HARRIS: Belə ki, online. 719 00:41:28,829 --> 00:41:34,760 Belə ki, adlı bir oğlan [işitilemez] learnyouahaskell.com, heç bir boşluq. 720 00:41:34,760 --> 00:41:37,065 Grammar xəstədir. 721 00:41:37,065 --> 00:41:38,690 STEPHEN KREWSON: Bu da illüstrasiyalı var. 722 00:41:38,690 --> 00:41:39,440 CONNOR HARRIS: LilyPond Belə ki, nə var? 723 00:41:39,440 --> 00:41:42,480 Bu deklarativ proqramlaşdırma var musiqi yazıdizim üçün dil. 724 00:41:42,480 --> 00:41:45,480 Belə ki, siz declarative-- HTML kimi şeylər hesab edirəm ki, 725 00:41:45,480 --> 00:41:50,900 Siz olduğunuz saying-- HTML necə web browser lazımdır demək deyil 726 00:41:50,900 --> 00:41:52,180 göstərmək pages addım-addım. 727 00:41:52,180 --> 00:41:54,096 Bu, sadəcə bu söyləyərək bir mətn təsviri 728 00:41:54,096 --> 00:41:56,100 Istədiyiniz nə səhifə kimi baxmaq. 729 00:41:56,100 --> 00:41:59,310 >> Və sonra da bir proqram ki, bu dil tərtib, 730 00:41:59,310 --> 00:42:02,300 və ya, həqiqətən, sonra onun oxumaq və Sizin üçün yazıdizim yoxdur, 731 00:42:02,300 --> 00:42:05,570 və bu spits gözəl axtarır PDF puanları. 732 00:42:05,570 --> 00:42:08,250 Siz həmçinin PNG formatında və ya hər hansı əldə edə bilərsiniz. 733 00:42:08,250 --> 00:42:10,300 Yaxşı yol hesab edirəm ki, Bu analogiya üzrə deyil 734 00:42:10,300 --> 00:42:16,620 , lateks növ LillyPond kimi ki, ancaq adi yazıdizim üçün. 735 00:42:16,620 --> 00:42:20,360 Belə ki, əvəzinə bu deyil of-- Siz baxın nə WYSIWYG, 736 00:42:20,360 --> 00:42:22,960 Siz demək kimi alın nədir Finale, və ya Sibelius, 737 00:42:22,960 --> 00:42:27,430 və ya Microsoft Word, siz yazın edə bilərsiniz real vaxt real vaxt və layihə şeyi 738 00:42:27,430 --> 00:42:31,340 və dərhal dəyişikliklər oldu. 739 00:42:31,340 --> 00:42:32,140 >> Bu mətn əsaslanır. 740 00:42:32,140 --> 00:42:35,290 Siz tərtib etmək ayrı-ayrı proqram istifadə puanları 741 00:42:35,290 --> 00:42:37,090 və sonra PDF çıxmaq. 742 00:42:37,090 --> 00:42:43,320 Bu bir az azdır Siz əgər istifadə üçün rahat 743 00:42:43,320 --> 00:42:46,520 birbaşa yazmaq üçün çalışırıq Siz etdiyiniz və hesab daxil 744 00:42:46,520 --> 00:42:48,620 kompüter yaratmaq üçün çalışırıq. 745 00:42:48,620 --> 00:42:50,830 Amma bir çox var bunun üçün üstünlükləri. 746 00:42:50,830 --> 00:42:56,110 One, bu, çox gözəl görünür LillyPond həqiqətən çünki 747 00:42:56,110 --> 00:42:58,210 etmək üçün vaxt Düzgün layout qərarlar, 748 00:42:58,210 --> 00:43:02,380 var Sibelius və ya Finale fərqli olaraq belə güzəşt alqoritmlər etmək 749 00:43:02,380 --> 00:43:05,020 Onlar bilərsiniz ki, real vaxt şeylər. 750 00:43:05,020 --> 00:43:07,660 >> Belə ki, niyə LilyPond-- deyil kompüter qrafikası çətindir. 751 00:43:07,660 --> 00:43:10,535 Siz musiqi ilə bir şey edirik, əgər və puanları yazmaq istəyirəm, 752 00:43:10,535 --> 00:43:13,900 yazmaq istəmirəm özünüz hər şeyi 753 00:43:13,900 --> 00:43:19,040 çəkmək üçün necə başlayaraq kurmayları və notepads cəlb etmək. 754 00:43:19,040 --> 00:43:21,020 Bu, çox çətindir. Bu əvvəl görülən edilmişdir. 755 00:43:21,020 --> 00:43:22,170 Siz gözəl istəyirik. 756 00:43:22,170 --> 00:43:26,200 >> Siz Finale ya Sibelius istifadə etmək istəyirsinizsə, o şey üçün fayl formatları 757 00:43:26,200 --> 00:43:30,180 çox mürəkkəb və siz bilməzsiniz həqiqətən program istifadə edin. 758 00:43:30,180 --> 00:43:35,020 Siz Finale ilə Sibelius aça bilər və Fayl gedin Export PDF olaraq özünüz, 759 00:43:35,020 --> 00:43:37,600 ancaq həqiqətən bilməz bir script zəng. 760 00:43:37,600 --> 00:43:40,440 LillyPond, siz zəng edə bilərsiniz o scripts. 761 00:43:40,440 --> 00:43:44,397 Siz asanlıqla təkrarlamaq bilər Lateks ilə LillyPond. 762 00:43:44,397 --> 00:43:47,230 Mən getmək üçün çox vaxt yoxdur İndi bu texnologiyaları, 763 00:43:47,230 --> 00:43:48,321 lakin onlar mövcuddur. 764 00:43:48,321 --> 00:43:50,070 Siz baxmaq istəyirsinizsə bir LillyPond kitab daxil, 765 00:43:50,070 --> 00:43:53,760 Bu ilə gəlir proqramı Sizin LillyPond distribution, 766 00:43:53,760 --> 00:43:57,030 və iterating üçün deyil Lateks daxil LillyPond fraqmentləri 767 00:43:57,030 --> 00:44:00,340 Əgər bir şey istəyirsinizsə, böyük Musiqişünaslıq sənəd kimi 768 00:44:00,340 --> 00:44:02,289 Məsələn nümunələri ilə. 769 00:44:02,289 --> 00:44:04,580 Və bu üçün yaxşı bir bacarıq var bir şey edirik, əgər həyat 770 00:44:04,580 --> 00:44:05,770 musiqi, yalnız CS50 ilə. 771 00:44:05,770 --> 00:44:09,320 Mən bütün LillyPond istifadə etdiyiniz Mənim tərkibi layihələrin 772 00:44:09,320 --> 00:44:11,880 Mən əsasən bəri bir orta məktəbdə baş. 773 00:44:11,880 --> 00:44:13,455 >> Belə ki, burada bir neçə sadə nümunələridir. 774 00:44:13,455 --> 00:44:17,490 775 00:44:17,490 --> 00:44:21,060 Bu əsasən nümayəndəsi Çətinlik səviyyəsi 776 00:44:21,060 --> 00:44:23,481 ki, insanların çoxu olardı çalışdıqlarını bu üzləşirlər 777 00:44:23,481 --> 00:44:24,980 Sadə layihələr üçün LilyPond istifadə etmək. 778 00:44:24,980 --> 00:44:29,519 Bu ilk bir başlanğıcdır Bax bir koral müqəddimə üçün. 779 00:44:29,519 --> 00:44:31,810 Bu alt bir bir pasaj edir öz işlərinin biri, 780 00:44:31,810 --> 00:44:34,650 və göstərmək üçün yalnız var [Işitilemez] kimi şeylər 781 00:44:34,650 --> 00:44:38,550 eyni çox xətləri qoyulması heyəti, necə lirik undersetting işləyir. 782 00:44:38,550 --> 00:44:41,350 783 00:44:41,350 --> 00:44:46,110 Lyric underlays çox bir şey var xor musiqi LilyPond istifadə üçün asandır. 784 00:44:46,110 --> 00:44:48,814 >> Və sonra bir daha çox var Burada mürəkkəb nümunələri. 785 00:44:48,814 --> 00:44:50,980 Bütün bu edilir LilyPond və onlar mümkün istəyirik. 786 00:44:50,980 --> 00:44:55,280 Bu ilk pasaj edir [Işitilemez] [işitilemez] tərəfindən. 787 00:44:55,280 --> 00:44:58,860 Bu [işitilemez] olan solo bas üçün bir parça 788 00:44:58,860 --> 00:45:03,550 [Işitilemez] tərəfindən fleyta, olan bir longtime-- olan 789 00:45:03,550 --> 00:45:07,101 bir uzun süreli üzv oldu Burada musiqi şöbəsinin düşünürəm. 790 00:45:07,101 --> 00:45:08,600 Mən o off getdi harada əmin deyiləm. 791 00:45:08,600 --> 00:45:12,410 Lakin o, Harvard məsləhətçisi idi Uzun müddət Bəstəkarlar İttifaqı. 792 00:45:12,410 --> 00:45:13,530 Wonderful man. 793 00:45:13,530 --> 00:45:16,920 Və o, çox var bəzi musiqi yazır mürəkkəb notation ki LillyPond 794 00:45:16,920 --> 00:45:20,500 yenə çox gözəl idarə edə bilərsiniz. 795 00:45:20,500 --> 00:45:26,030 >> Belə ki, yalnız siz hissi vermək nə Bu şey imkanları belə are-- 796 00:45:26,030 --> 00:45:28,960 LillyPond of daxili çox mürəkkəbdir. 797 00:45:28,960 --> 00:45:31,060 Və üçün istifadə edə bilərsiniz uzun müddət, o cümlədən 798 00:45:31,060 --> 00:45:32,520 bəzi olduqca mürəkkəb üçün şeylər olmadan həqiqətən 799 00:45:32,520 --> 00:45:34,060 onlar haqqında bir çox bilmək üçün olan. 800 00:45:34,060 --> 00:45:38,720 Amma əsas fikir üzərində ki, aşağı səviyyədə LillyPonds of atomları 801 00:45:38,720 --> 00:45:39,970 qeydlər. 802 00:45:39,970 --> 00:45:42,761 qeydlər ehtiva kontekstində adlı səsləri. 803 00:45:42,761 --> 00:45:44,510 Səs kontekstində belə əsasən uyğundur 804 00:45:44,510 --> 00:45:47,410 polifoniya bir xətt. 805 00:45:47,410 --> 00:45:49,410 Və sonra kontekstində ola bilər hiyerarşik olan 806 00:45:49,410 --> 00:45:53,590 yüksək səviyyədə olanları ki, hesab kurmayları təmsil 807 00:45:53,590 --> 00:45:56,750 kimi və ya böyük qruplar piano kurmayları və ya xor kurmayları, 808 00:45:56,750 --> 00:45:58,990 və sonra nəhayət bütün hesab kontekstlərdə. 809 00:45:58,990 --> 00:46:02,260 Və həqiqətən əhatə edə bilər bir kitab çox puanları. 810 00:46:02,260 --> 00:46:05,770 >> Və hər kontekstində bir əlavə oyma sayı. 811 00:46:05,770 --> 00:46:08,340 Vasitəsilə baxsaq kontekstində məzmunu 812 00:46:08,340 --> 00:46:14,410 və müəyyən bir simvolu və ya çap zəruri rəmzləri müəyyən sinif. 813 00:46:14,410 --> 00:46:17,840 Hər səs kontekstində Belə ki, [Işitilemez] qeydlər var 814 00:46:17,840 --> 00:46:24,270 əsasən bir funksiyası var qravüraçı və ya bütün qeydi yazır bir obyekt 815 00:46:24,270 --> 00:46:26,290 Bir səhifə sağ hissələri rəhbərləri. 816 00:46:26,290 --> 00:46:29,510 Sonra bir yarıq qravüraçı var ki, heyəti çatlar yazır. 817 00:46:29,510 --> 00:46:31,517 Sonra metronome var mark qravüraçı ki 818 00:46:31,517 --> 00:46:33,100 hesabı ilə metronome işarələri yazır. 819 00:46:33,100 --> 00:46:36,410 Və bütün bu olduqca uyğun yaxşı iyerarxiya daxil. 820 00:46:36,410 --> 00:46:39,500 Və bu çox, çox, çox var özelleştirilebilir, siz ehtiyac 821 00:46:39,500 --> 00:46:42,880 bu kimi şeylər almaq istəyirsinizsə. 822 00:46:42,880 --> 00:46:45,730 >> Belə ki, bütün kontekstlərdə bir var müxtəlif atributları çox 823 00:46:45,730 --> 00:46:52,410 hər şey üçün dəyişə bilərsiniz ki, müxtəlif font spacing olan 824 00:46:52,410 --> 00:46:54,942 şeyi ölçüləri seçimi. 825 00:46:54,942 --> 00:46:56,900 Hətta etmək istəyirsinizsə daha mürəkkəb şeyi, 826 00:46:56,900 --> 00:46:59,210 əlaqədar scripting dili var. 827 00:46:59,210 --> 00:47:01,820 Onlar sxemi, istifadə edən lisp dialekti vardır. 828 00:47:01,820 --> 00:47:04,960 Bu yəqin ki, yoxdur sizə bir şey demək. 829 00:47:04,960 --> 00:47:06,900 Amma əsasən, bir sxem başqa funksional 830 00:47:06,900 --> 00:47:09,500 proqramlaşdırma dili az və ya çox. 831 00:47:09,500 --> 00:47:10,800 >> STEPHEN KREWSON: tie-in. 832 00:47:10,800 --> 00:47:12,690 >> CONNOR HARRIS: Bəli. 833 00:47:12,690 --> 00:47:15,390 Bu yaxşı tie-in, mən güman edirlər. 834 00:47:15,390 --> 00:47:20,150 Və bir tədris dili kimi istifadə olunur, həqiqətən, Mass Ave aşağı MİT-in. 835 00:47:20,150 --> 00:47:26,590 Və LillyPond üçün çox lazımlı müxtəlif texniki səbəblərdən. 836 00:47:26,590 --> 00:47:30,317 >> Və belə ki, sadə etmək istəyirsinizsə conditionals asılı tweaks, 837 00:47:30,317 --> 00:47:32,900 misal üçün müəyyən var görüşüb bir hesab vəziyyəti, 838 00:47:32,900 --> 00:47:36,495 dəyişiklik etmək layout və ya sonra whatnot-- 839 00:47:36,495 --> 00:47:37,620 bu obyektlər var. 840 00:47:37,620 --> 00:47:38,667 Onlar mürəkkəb istəyirik. 841 00:47:38,667 --> 00:47:40,250 Belə ki, burada olduqca sadə kodu nümunə var. 842 00:47:40,250 --> 00:47:43,810 Bu beş xətləri var. 843 00:47:43,810 --> 00:47:46,120 Ümumiyyətlə, mən iki kadrların müəyyən edirəm. 844 00:47:46,120 --> 00:47:46,904 Bu 3/4 var. 845 00:47:46,904 --> 00:47:48,695 ilk heyət bir var tempi mark əlavə, 846 00:47:48,695 --> 00:47:51,110 lakin həqiqətən gedir bütün hesab getmək üçün, 847 00:47:51,110 --> 00:47:54,960 tempi nişanları çünki hesab səviyyədədir. 848 00:47:54,960 --> 00:47:59,044 metronome mark qravüraçı kontekstində hesab əlavə edilir. 849 00:47:59,044 --> 00:48:01,460 Müxtəlif düymələri var, [Işitilemez] qravüraçı, çünki 850 00:48:01,460 --> 00:48:02,710 kadrların əlavə olunur. 851 00:48:02,710 --> 00:48:04,441 Siz, həqiqətən, bu edə bilərsiniz. 852 00:48:04,441 --> 00:48:06,190 yazdım nümunəsidir həqiqətən C major, 853 00:48:06,190 --> 00:48:07,990 lakin bu, yalnız var Siz ola bilər nümayiş 854 00:48:07,990 --> 00:48:09,570 müxtəlif kurmayları müxtəlif düymələri. 855 00:48:09,570 --> 00:48:15,710 Və əsas sintaksis yazmaq deyil E, F, G, nə ilə adları qeyd. 856 00:48:15,710 --> 00:48:18,910 Siz accidentals etmək istəyirsinizsə, siz və ya ES şəkilçi. 857 00:48:18,910 --> 00:48:22,640 Bu Holland deyil musicological konvensiyalar. 858 00:48:22,640 --> 00:48:28,290 >> Və oktava leaps etmək üçün, siz istifadə etmək lazımdır bu nişanları, vergül və ya apostrof işarələyin. 859 00:48:28,290 --> 00:48:30,580 nisbi yalnız deməkdir Bir qeyd var nə olursa olsun, 860 00:48:30,580 --> 00:48:34,080 Bu avtomatik olaraq plaec olunacaq əvvəlki ən yaxın oktava. 861 00:48:34,080 --> 00:48:37,624 Və daha çox jump istəyirsinizsə bir beşinci və ya more-- demək fifth-- 862 00:48:37,624 --> 00:48:39,165 sonra [Işitilemez] istifadə etmək lazımdır. 863 00:48:39,165 --> 00:48:42,580 Lakin başqa, siz yoxdur hər bir qeyd oktava daxil. 864 00:48:42,580 --> 00:48:46,130 >> Və nisbi C, baş, və C, yalnız orta C daxil 865 00:48:46,130 --> 00:48:48,630 və baza C, xüsusilə ilk qeydlər. 866 00:48:48,630 --> 00:48:55,020 Sonra təşkil bu kadrların var Bu iki səsləri və ya musiqi nümunələri, 867 00:48:55,020 --> 00:48:56,730 və bir hesab var. 868 00:48:56,730 --> 00:48:58,440 Və bu kimi görünür. 869 00:48:58,440 --> 00:49:01,780 870 00:49:01,780 --> 00:49:05,380 >> Zaman almaq istəyirsinizsə LillyPond ki, nümunə surəti 871 00:49:05,380 --> 00:49:07,530 Əvvəlki kod Burada aşağı uçmaq, və siz 872 00:49:07,530 --> 00:49:09,030 LillyPond özünüz üçün yaza bilərsiniz. 873 00:49:09,030 --> 00:49:11,280 Düşünürəm ki, biz bir şey var bilirəm bu kimi bir çox görünür. 874 00:49:11,280 --> 00:49:17,236 875 00:49:17,236 --> 00:49:19,610 Belə ki, bir texnologiya var adlı Music XML saxlanılır 876 00:49:19,610 --> 00:49:22,030 tamamilə müxtəlif insanlar tərəfindən. 877 00:49:22,030 --> 00:49:28,150 XML mətn data quruluşu mən data demək strukturu demək deyil 878 00:49:28,150 --> 00:49:29,580 məcaz xəritəsi sort. 879 00:49:29,580 --> 00:49:33,800 Və keçirilməsi üçün nəzərdə tutulmuşdur iyerarxik data çox yaxşı. 880 00:49:33,800 --> 00:49:37,050 HTML, məsələn, XML bir növüdür. 881 00:49:37,050 --> 00:49:41,090 Və XML çünki demək olar ki, onlar idi bütün bucaq mötərizədə və bucaq 882 00:49:41,090 --> 00:49:44,700 bracket çizgi nişanları ki, şou data alanlar. 883 00:49:44,700 --> 00:49:47,390 >> Mən bir kod yoxdur Musiqi XML-dən nümunəsidir. 884 00:49:47,390 --> 00:49:50,450 Siz özünüz tapa bilərsiniz. 885 00:49:50,450 --> 00:49:53,735 Əsasən, səbəbi istədiyiniz bilər aralıq mərhələ kimi XML istifadə etmək 886 00:49:53,735 --> 00:49:55,980 ilk növbədə, bu, var mübadilə format 887 00:49:55,980 --> 00:50:02,301 əsasən demək olmaz every-- fərqli hesabla hər, lakin bir çox 888 00:50:02,301 --> 00:50:02,800 yazıçı. 889 00:50:02,800 --> 00:50:04,966 Siz Musiqi yazmaq Belə ki XML yalnız LillyPond bilər 890 00:50:04,966 --> 00:50:08,080 bu Auxilary köməyi ilə oxumaq proqramı LY Musiqi XML adlı 891 00:50:08,080 --> 00:50:11,360 həm də Finale oxuya bilərsiniz Bu, Sibelius oxuya bilərsiniz. 892 00:50:11,360 --> 00:50:14,770 Necə daxili obyekt asılı olaraq iyerarxiya, musiqi ifadə üçün çalışır 893 00:50:14,770 --> 00:50:18,820 yazmaq üçün asan ola bilər LillyPond çox Music XML 894 00:50:18,820 --> 00:50:22,410 və yalnız Music XML etibar LY dönüşüm etmək. 895 00:50:22,410 --> 00:50:24,282 >> I [işitilemez] Musiqi XML var düşünmürəm. 896 00:50:24,282 --> 00:50:25,490 STEPHEN KREWSON: Bu deyil. 897 00:50:25,490 --> 00:50:26,340 Biri də, üzərində işləyir. 898 00:50:26,340 --> 00:50:27,090 >> CONNOR HARRIS: OK. 899 00:50:27,090 --> 00:50:31,040 Euterpea bir yoxdur Hələ Music XML çıxış funksiyası. 900 00:50:31,040 --> 00:50:35,340 Bir final layihə fikir istəyirsinizsə, bəlkə uşaqlar ilə əlaqə almaq 901 00:50:35,340 --> 00:50:38,620 Stephen bilir ki, onlar yardım istifadə edə bilər. 902 00:50:38,620 --> 00:50:40,992 >> STEPHEN KREWSON: Mən istərdim. 903 00:50:40,992 --> 00:50:43,450 CONNOR HARRIS: Həmçinin, əsasən, hər proqramlaşdırma dilləri 904 00:50:43,450 --> 00:50:46,610 ki, onun duz dəyər artıq XML kitabxana var, 905 00:50:46,610 --> 00:50:51,030 belə ki, məcburi bütün çevirə bilərsiniz bir obyekt sizin musiqi 906 00:50:51,030 --> 00:50:54,120 XML kitabxana yaza bilərsiniz ki, ki, az tələb həyata 907 00:50:54,120 --> 00:50:57,470 daxili strukturuna dəyişiklik nə üçün musiqi sizə obyektləri 908 00:50:57,470 --> 00:51:00,310 yazılı daha yazmaq istəyirəm birbaşa LillyPond olduğu. 909 00:51:00,310 --> 00:51:04,380 Sonra XML ilə çap Sizin dilində XML kitabxana, 910 00:51:04,380 --> 00:51:07,260 bu ki, təmin edəcək syntactically düzgün və hər şey, 911 00:51:07,260 --> 00:51:08,720 və sonra LillyPond onu çevirmək. 912 00:51:08,720 --> 00:51:11,060 Belə ki, texnologiya istədiyiniz bilər Əgər bir şey edirik, əgər baxmaq 913 00:51:11,060 --> 00:51:11,650 bunun kimi. 914 00:51:11,650 --> 00:51:14,490 915 00:51:14,490 --> 00:51:16,370 >> [Işitilemez], başqa auxilarry texnologiyası. 916 00:51:16,370 --> 00:51:21,700 Bu Tech Works əsasən və ya LillyPond üçün Tech Studio. 917 00:51:21,700 --> 00:51:25,380 Belə ki, yardım təklif edir şablonları ilə sintaksis, 918 00:51:25,380 --> 00:51:28,770 müxtəlif ümumi üçün alətlərinin birləşməsi. 919 00:51:28,770 --> 00:51:32,780 Bu, belə görüntü split ekran imkan verir bir pəncərə kodu ola bilər 920 00:51:32,780 --> 00:51:37,350 və başqa pəncərə PDF və PDF yerlərdə basın 921 00:51:37,350 --> 00:51:40,650 müvafiq atlamak üçün mənbə kodu ləkələr. 922 00:51:40,650 --> 00:51:45,330 Siz, həqiqətən, əgər bu daha faydalıdır yazı LillyPond özünüzü faylları 923 00:51:45,330 --> 00:51:47,400 Siz yaradan edirsinizsə çox Onlara program. 924 00:51:47,400 --> 00:51:51,230 Ancaq yenə də, bu faydalı bir şey var. 925 00:51:51,230 --> 00:51:51,970 >> Great. 926 00:51:51,970 --> 00:51:55,860 Başqa resources-- Mən yalnız lazımdır çox tez keçir. 927 00:51:55,860 --> 00:52:01,270 LillyPond manuals-- LillyPond var öz saytında əla sənədlər. 928 00:52:01,270 --> 00:52:02,270 Onlar tutorial var. 929 00:52:02,270 --> 00:52:03,478 Onlar syntax istinad var. 930 00:52:03,478 --> 00:52:07,010 Onlar parçalarını yüzlərlə var müxtəlif kiçik şeylər üçün 931 00:52:07,010 --> 00:52:09,930 yo nümayiş üçün nə lazımdır bilər müxtəlif imkanları. 932 00:52:09,930 --> 00:52:12,250 Siz istifadə etmək istəyirsinizsə scripting dili 933 00:52:12,250 --> 00:52:14,740 və ya daha çox geniş etmək customizes, sonra var 934 00:52:14,740 --> 00:52:16,730 daxili ki, URL istinad. 935 00:52:16,730 --> 00:52:21,950 Siz Music XML istifadə etmək istəyirsinizsə, var ki, URL, musicxml.com/tutorial. 936 00:52:21,950 --> 00:52:27,960 >> Və sonra sxem öyrənmək lazımdır, əgər Siz, həqiqətən, istifadə etmək istəyirəm, çünki 937 00:52:27,960 --> 00:52:30,960 LillyPond scripting obyektləri, sonra [işitilemez] adlı var 938 00:52:30,960 --> 00:52:32,918 Strukturlaşdırılmış Şərh Kompüter Proqramları, 939 00:52:32,918 --> 00:52:35,820 olan yalnız ikinci edir Heç yazdırmışdır böyük CS dərslik 940 00:52:35,820 --> 00:52:39,770 Siz bilmək istəyirsinizsə sonra mənim Mən böyük bir is-- nə düşündüklərini 941 00:52:39,770 --> 00:52:43,580 lakin bu da çox yaxşı müvafiq dil giriş. 942 00:52:43,580 --> 00:52:46,630 Siz daha çox ehtiyac yoxdur ilk bir neçə bölmələr. 943 00:52:46,630 --> 00:52:47,827 >> Və bu. 944 00:52:47,827 --> 00:52:48,410 Hər hansı sual? 945 00:52:48,410 --> 00:52:54,068 946 00:52:54,068 --> 00:52:57,972 >> TƏLƏBƏ: Mən yükləyə bilərsiniz yaradılan Frere Jacques 947 00:52:57,972 --> 00:53:01,050 mən iPod onu qoya bilər? 948 00:53:01,050 --> 00:53:07,574 >> STEPHEN KREWSON: Yaxşı, siz yaza bilərsiniz Euterpea bəzi wav fayl həyata. 949 00:53:07,574 --> 00:53:08,490 Və siz kodu var. 950 00:53:08,490 --> 00:53:10,000 Bu GitHub var. 951 00:53:10,000 --> 00:53:15,590 Öz varyasyonları etmək CS50 hive mind tərəfindən Frere Jacques. 952 00:53:15,590 --> 00:53:17,095 Bu, böyük olardı. 953 00:53:17,095 --> 00:53:18,220 CONNOR HARRIS: Hər kəsdən? 954 00:53:18,220 --> 00:53:20,261 STEPHEN KREWSON: Biz lazımdır çox yaxşı bas nağara. 955 00:53:20,261 --> 00:53:21,935 Bu, həqiqətən pis. 956 00:53:21,935 --> 00:53:26,565 >> TƏLƏBƏ: Euterpea yalnız var tərkibi yan, lakin signal-- 957 00:53:26,565 --> 00:53:27,440 STEPHEN KREWSON: Bəli. 958 00:53:27,440 --> 00:53:30,100 Əslində, mənim mən Euterpea etdi 959 00:53:30,100 --> 00:53:33,450 şeylərdir bir var etmişdir Yale kurs məzun ki, 960 00:53:33,450 --> 00:53:35,900 pseudocode səs sintez idi istifadə edir. 961 00:53:35,900 --> 00:53:39,810 Belə ki, bir həqiqətən var okları istifadə edərək gözəl yoludur 962 00:53:39,810 --> 00:53:46,150 və biz gördük notation bəzi siqnal funksiyaları birlikdə tərtib. 963 00:53:46,150 --> 00:53:50,610 Ən xüsusilə, bas Onlardan yalnız bir sadə sine dalğa edir. 964 00:53:50,610 --> 00:53:54,240 Amma bu bəstələmək başlamaq əgər qəribə proqram yollarla, 965 00:53:54,240 --> 00:54:00,010 Siz crazy səs əldə edə bilərsiniz qəribə cascades kimi təsiri. 966 00:54:00,010 --> 00:54:04,640 Siz çox gritty yarada modulyasiya bir çox səslənir. 967 00:54:04,640 --> 00:54:07,730 >> Mən dənəvər layihəsi etdi edir sintez, 968 00:54:07,730 --> 00:54:12,290 haradasa FM və nümunə arasında. 969 00:54:12,290 --> 00:54:15,230 Siz çox kiçik almaq az nümunələri, və sonra 970 00:54:15,230 --> 00:54:20,440 bir növ ilə onları birləşdirmək modulator və zəngin səs qurmaq. 971 00:54:20,440 --> 00:54:24,900 Biz də belə, fiziki modelləşdirmə etdi fizika haqqında düşünməyə çalışır 972 00:54:24,900 --> 00:54:29,410 və kimi bir şey psychoacoustics bir truba və yol haqqında düşünür 973 00:54:29,410 --> 00:54:32,320 səs off dönen truba zəng 974 00:54:32,320 --> 00:54:35,200 və akustika otaq və modelləşdirmə 975 00:54:35,200 --> 00:54:40,195 Əsas osilatörler ilə. 976 00:54:40,195 --> 00:54:47,690 977 00:54:47,690 --> 00:54:48,940 CONNOR HARRIS: Thanks qədər. 978 00:54:48,940 --> 00:54:50,140 Gələn üçün təşəkkür edirik. 979 00:54:50,140 --> 00:54:52,400 Mən həmişə istəyən edirəm email-- suallar almaq 980 00:54:52,400 --> 00:54:55,020 connorharris@college.harvard.edu. 981 00:54:55,020 --> 00:54:57,020 >> STEPHEN KREWSON: Bəli. 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