1 00:00:00,000 --> 00:00:05,180 2 00:00:05,180 --> 00:00:05,930 CONNOR HARRIS: Hei. 3 00:00:05,930 --> 00:00:06,820 Olen Connor Harris. 4 00:00:06,820 --> 00:00:09,729 Olen CS50 CA Harvardin. 5 00:00:09,729 --> 00:00:11,270 STEPHEN KREWSON: Olen Stephen Krewson. 6 00:00:11,270 --> 00:00:12,582 Olen TF CS50 Yalen. 7 00:00:12,582 --> 00:00:15,790 CONNOR HARRIS: Ja me aiomme puhua joitakin tekniikoita, jotka saatat 8 00:00:15,790 --> 00:00:18,880 haluat käyttää jos olet kiinnostunut tekemään opinnäytetyön tai oikeastaan 9 00:00:18,880 --> 00:00:20,920 mitään musiikkia. 10 00:00:20,920 --> 00:00:24,400 Aiomme keskittyvän ensin ohjelmointikieli nimeltään Haskell. 11 00:00:24,400 --> 00:00:26,280 Se on toiminnallinen kieli, joten paradigma 12 00:00:26,280 --> 00:00:29,620 on hyvin erilainen kuin C tai PHP tai muu välttämätöntä kielillä 13 00:00:29,620 --> 00:00:33,450 että olet käyttänyt jo, ja erityisesti on kirjasto kirjoitettu Haskell 14 00:00:33,450 --> 00:00:40,240 nimeltään Euterpea, joka voi auttaa ihmisiä kanssa säveltämisen toiminnallisesti, 15 00:00:40,240 --> 00:00:40,780 pohjimmiltaan. 16 00:00:40,780 --> 00:00:43,400 Ja Stephen käydään kautta hyvä esimerkki siitä. 17 00:00:43,400 --> 00:00:46,423 >> Tämän jälkeen, minä esitellä sinulle jotain kutsutaan LillyPond, joka 18 00:00:46,423 --> 00:00:48,370 on tekniikka ladonta musiikkia. 19 00:00:48,370 --> 00:00:50,830 Se on tavallaan kuin LaTeX musiikin jos joku teistä 20 00:00:50,830 --> 00:00:57,530 ovat käyttäneet LaTeX matematiikan luokkia tai muut P joukko luokkia tai mitä olet. 21 00:00:57,530 --> 00:01:00,440 Ja niin minä annan sinulle, taas, muutamia yksinkertaisia ​​esimerkkejä, jotka 22 00:01:00,440 --> 00:01:03,640 ja kohta sinua yleisen suuntaan joitakin parempia resursseja. 23 00:01:03,640 --> 00:01:04,319 >> STEPHEN KREWSON: In Lisäksi ajattelimme, että 24 00:01:04,319 --> 00:01:06,720 olisi siistiä perustaa hieman vihjeitä 25 00:01:06,720 --> 00:01:10,780 kohti putki välillä Euterpea syntyvän MIDI-tiedostoja 26 00:01:10,780 --> 00:01:13,910 vuonna LillyPond, joten tarjoamme joitakin ohjeita skriptejä 27 00:01:13,910 --> 00:01:16,310 tehdä niin, että ovat varustettu LillyPond 28 00:01:16,310 --> 00:01:19,160 vain pitää se avoimen lähdekoodin ja saada putki menossa. 29 00:01:19,160 --> 00:01:20,910 CONNOR HARRIS: Jälleen, meidän pitäisi korostaa, 30 00:01:20,910 --> 00:01:23,100 nämä kaksi tekniikkaa, sinua ei tarvitse käyttää niitä yhdessä. 31 00:01:23,100 --> 00:01:25,370 He eivät suunniteltu toimimaan yhdessä, vaikka he tekevät erittäin hienosti. 32 00:01:25,370 --> 00:01:26,362 >> STEPHEN KREWSON: Oikea. 33 00:01:26,362 --> 00:01:30,116 Ja täysin ilmainen. 34 00:01:30,116 --> 00:01:32,240 CONNOR HARRIS: Niin kuittaukset, vain lukea, että. 35 00:01:32,240 --> 00:01:33,406 Stephen KREWSON: Asianmukaisesti huomattava. 36 00:01:33,406 --> 00:01:36,360 Kiitos niille seudullamme. 37 00:01:36,360 --> 00:01:39,180 Tämä minä viipyä vain hetken. 38 00:01:39,180 --> 00:01:41,560 Asennus on vähän hankala. 39 00:01:41,560 --> 00:01:45,420 Olemme lukea minua GitHub että voit vilkaista. 40 00:01:45,420 --> 00:01:47,840 Vain sähköpostia minulle, jos sinulla on kysyttävää. 41 00:01:47,840 --> 00:01:52,829 Mutta me suorittaa tämän olettaen että tämä toimii kaikille. 42 00:01:52,829 --> 00:01:55,620 CONNOR HARRIS: Ja jos et voi saada LillyPond töihin, no big deal. 43 00:01:55,620 --> 00:02:00,139 Ei ole eläviä kokoelma että on mukana, ainakin minun pää. 44 00:02:00,139 --> 00:02:02,930 STEPHEN KREWSON: Haskell ja LillyPond olisi molemmilla on asentajat. 45 00:02:02,930 --> 00:02:08,497 Euterpea on ladattavissa paketti, niin edelleen ja niin edelleen. 46 00:02:08,497 --> 00:02:10,080 Joten puhumme tietokonemusiikkia. 47 00:02:10,080 --> 00:02:12,990 Ja tämä on vain hyvin 50000-jalka näkymä. 48 00:02:12,990 --> 00:02:15,700 Siellä on muutama eri puolia. 49 00:02:15,700 --> 00:02:18,120 Ja tämä on karkea ja on menossa peittää joitakin yksityiskohtia. 50 00:02:18,120 --> 00:02:22,090 Mutta voisimme ajatella jotain kuten algoritmeihin koostumus, 51 00:02:22,090 --> 00:02:24,920 algoritmeja käyttäen, käyttämällä koodia, tuottaa 52 00:02:24,920 --> 00:02:30,280 tietyntyyppinen of-- ehkä itse samanlainen peräkkäisistä nuoteista, tai ehkä muistiinpanoja 53 00:02:30,280 --> 00:02:33,330 joissakin rajoitus. 54 00:02:33,330 --> 00:02:35,350 Ja sitten ne voivat olla suoritettu tai tulkita 55 00:02:35,350 --> 00:02:38,390 analoginen välineet tai jotain sellaista. 56 00:02:38,390 --> 00:02:42,010 Mutta koostumus oli tehty algoritmisesti. 57 00:02:42,010 --> 00:02:45,120 >> Mutta tietenkin, ehkä alue tietokone musiikkia tai digitaalisen musiikin 58 00:02:45,120 --> 00:02:48,870 olemme enemmän tuttuja on digitaalinen äänen synteesi tai digitaalinen näytteenotto 59 00:02:48,870 --> 00:02:51,160 ja digitaalisen tallennuksen. 60 00:02:51,160 --> 00:02:55,650 Paljon digitaalisia välineitä tapahtuu digitaalinen näytteenotto. 61 00:02:55,650 --> 00:03:00,110 Itse asiassa, me olla jollakin kuin muodossa äänen kirjasinkirjaston myöhemmin. 62 00:03:00,110 --> 00:03:02,850 >> Mutta on myös jotain kutsutaan digitaalinen synteesi, joka tuli ulos 63 00:03:02,850 --> 00:03:08,650 on 70-luvun lopulla ja osaksi 80-luvun kanssa Yamaha ja John Chowning Stanfordin 64 00:03:08,650 --> 00:03:11,990 tekee FM synteesi tai FM-synteesi, 65 00:03:11,990 --> 00:03:15,100 jossa piti harjoittaja signaali ja modulointisignaali 66 00:03:15,100 --> 00:03:18,270 sekä äänen taajuuksia. 67 00:03:18,270 --> 00:03:22,570 Mutta mitä me keskittyneet tänään on jotain kutsutaan MIDI, 68 00:03:22,570 --> 00:03:25,040 ja tietenkin, algoritmeihin koostumus. 69 00:03:25,040 --> 00:03:30,940 >> Emme aio tehdä välineitä, mutta olemme sen sijaan aikoo tehdä musiikkia, 70 00:03:30,940 --> 00:03:33,940 ja sitten, että saa tulkitaan joidenkin välineitä, 71 00:03:33,940 --> 00:03:38,300 ovat vaatimustenmukaisten että General MIDI standardi. 72 00:03:38,300 --> 00:03:40,830 Niin mitä MIDI? 73 00:03:40,830 --> 00:03:45,550 En aio saada liian syvälle sitä, mutta MIDI on tiedonsiirron protokolla. 74 00:03:45,550 --> 00:03:49,250 Se on eräänlainen opas poikki eri yritysten ja toimialojen 75 00:03:49,250 --> 00:03:52,250 järjestämisestä ääniä tai laikkuja. 76 00:03:52,250 --> 00:03:54,170 Joten näemme, että siellä MIDI-standardi 77 00:03:54,170 --> 00:03:57,500 kaikkien eri lyömäsoittimet ääniä ja MIDI suositukset 78 00:03:57,500 --> 00:04:01,360 Kaikkien erityyppisten syntetisaattori tai eri instrumentin kaikki 79 00:04:01,360 --> 00:04:03,650 ryhmien orkesteri, sano. 80 00:04:03,650 --> 00:04:08,916 >> Olet todennäköisesti tuttu 0 kautta 127 MIDI viestejä. 81 00:04:08,916 --> 00:04:12,920 MIDI signaali on tyypillisesti yksi bitti, joka osoittaa 82 00:04:12,920 --> 00:04:16,130 onko se tietoja tai tilapaketti, ja sitten on 83 00:04:16,130 --> 00:04:18,589 Seitsemän bittiä signaalin. 84 00:04:18,589 --> 00:04:21,430 Ja nämä voivat valvoa kaiken tilavuus 85 00:04:21,430 --> 00:04:25,330 toimelle tai painetta tietyn avaimen 86 00:04:25,330 --> 00:04:29,400 jos olet suorittaa kanssa MIDI ohjain sekä tietenkin, 87 00:04:29,400 --> 00:04:31,250 toteaa. 88 00:04:31,250 --> 00:04:33,450 Ja tietenkin, MIDI on ollut erittäin hyödyllinen, 89 00:04:33,450 --> 00:04:37,550 koska se on tapa lanka yhdessä tai ketjuttaa 90 00:04:37,550 --> 00:04:41,570 nippu MIDI laitteita. 91 00:04:41,570 --> 00:04:44,050 Minulla on seitsemän tai kahdeksan takaisin kotiini. 92 00:04:44,050 --> 00:04:46,610 Se saa todella monimutkainen, mutta se on todella voimakas. 93 00:04:46,610 --> 00:04:47,460 Ja se on todella vanha. 94 00:04:47,460 --> 00:04:51,117 Se on peräisin 80-luvun alussa, ja se on todella mukava ja pieni. 95 00:04:51,117 --> 00:04:51,950 CONNOR HARRIS: Joo. 96 00:04:51,950 --> 00:04:54,230 Kaikki klassinen Nintendo videopelit olisi luultavasti 97 00:04:54,230 --> 00:04:56,088 on MIDI-tiedostoja musiikkia, esimerkiksi. 98 00:04:56,088 --> 00:04:59,550 99 00:04:59,550 --> 00:05:01,740 >> STEPHEN KREWSON: Tässä esimerkki General MIDI, 100 00:05:01,740 --> 00:05:06,520 osoittavat MIDI eräänlaisena Yleisen protokollaa. 101 00:05:06,520 --> 00:05:13,280 Ja mielestäni voimme ajatella ominaisuuksien eroista 102 00:05:13,280 --> 00:05:17,830 että pitäisi olla jotain nämä soitinääniä ja todellinen 103 00:05:17,830 --> 00:05:21,740 toteutuminen näiden välineiden ääniä in ääni fontti tai tietyn MIDI 104 00:05:21,740 --> 00:05:25,740 syntetisaattori olevan ero välillä ehkä typeface-- jossa sanotaan, 105 00:05:25,740 --> 00:05:30,350 Yleensä tämä on suunnittelu tämä erityisesti tapa esittää 106 00:05:30,350 --> 00:05:35,907 characters-- ja tietyn fontin että on tietty koko ja äänenväri, 107 00:05:35,907 --> 00:05:37,240 ja siellä on toteutumista the-- 108 00:05:37,240 --> 00:05:39,156 >> CONNOR HARRIS: Ehkä parempi vertailu olisi 109 00:05:39,156 --> 00:05:43,430 olla Unicode standardi says-- se antaa numeron jokainen merkki, ja todella 110 00:05:43,430 --> 00:05:46,830 jokainen kieli maailmassa, tai valtava joukko skriptejä kielen 111 00:05:46,830 --> 00:05:51,310 maailmassa, ja sitten ne ovat sulatettu jotain graafinen 112 00:05:51,310 --> 00:05:53,710 eri fontti paketteja. 113 00:05:53,710 --> 00:05:56,630 Ja tietenkin, voit ajatella MIDI kuin Unicode äänen. 114 00:05:56,630 --> 00:06:03,250 Ja se on vain lista of-- iso virta tapahtumia ja välineiden ja vaikka mitä, 115 00:06:03,250 --> 00:06:06,090 ja sinulla on oltava erillinen ohjelma, kuten kirjasintyyppi, 116 00:06:06,090 --> 00:06:08,537 tehdä sen osaksi jotain, joka on kuultavissa. 117 00:06:08,537 --> 00:06:12,360 118 00:06:12,360 --> 00:06:13,780 >> STEPHEN KREWSON: Miksi Haskell? 119 00:06:13,780 --> 00:06:19,110 Haskell on funktionaalinen ohjelmointi kieli, hyvin kehittynyt, 120 00:06:19,110 --> 00:06:22,770 hyvin erilainen kuin C, hyvin erilainen kuin PHP. 121 00:06:22,770 --> 00:06:28,120 Ja aiomme nähdä, että siellä Helppokäyttöinen yhdistetty funktio Haskell 122 00:06:28,120 --> 00:06:37,640 että antaa meille mahdollisuuden tuulta kautta säveltäminen tai kirjoittamalla ylös, puhtaaksi, 123 00:06:37,640 --> 00:06:42,160 jotain Frere Jacques, tämä yksinkertainen laulu että 124 00:06:42,160 --> 00:06:46,815 on paljon osia siinä, että ovat itse samanlaisia ​​tai toistuva. 125 00:06:46,815 --> 00:06:49,740 126 00:06:49,740 --> 00:06:53,250 Joten tämä on joitakin motivaatio miksi 127 00:06:53,250 --> 00:06:59,400 käytämme Haskell, jossa toiminnot ovat ensimmäisen luokan kansalaisia. 128 00:06:59,400 --> 00:07:01,120 >> Ja halusin jatkaa tämä vähän. 129 00:07:01,120 --> 00:07:08,800 Se on hieman helppo notate Frere Jacques Haskell. 130 00:07:08,800 --> 00:07:12,100 Mutta mitä jos halusimme lisätä rummun osa sitä? 131 00:07:12,100 --> 00:07:17,320 Mitä jos halusimme yrittää tehdä jotain Roland 808 tai 909 rumpu 132 00:07:17,320 --> 00:07:20,970 koneessa, jossa on noin 16 eri vaiheet? 133 00:07:20,970 --> 00:07:24,590 Yleensä nämä ovat mielletään 16. toteaa. 134 00:07:24,590 --> 00:07:28,640 Ja voit ohjata maailmanlaajuisen tempo, ja voit valita 135 00:07:28,640 --> 00:07:34,620 joukko eri lyömäsoittimet osat ja bassorumpu, taputus, eri ansat, 136 00:07:34,620 --> 00:07:37,540 avoin ja suljettu korkea hatut Näiden lajitella kanavia, 137 00:07:37,540 --> 00:07:41,600 ja sitten voit EQ tai säätää niiden äänenvoimakkuutta. 138 00:07:41,600 --> 00:07:45,290 >> Ja näemme mukava tapa Haskell edustaa tämän vaiheen 139 00:07:45,290 --> 00:07:48,810 sekvensseri kanssa kaikki eri hienoja asioita Haskell 140 00:07:48,810 --> 00:07:53,100 voimme tehdä tuottavan luettelot ja suodatus yli luettelot, 141 00:07:53,100 --> 00:07:56,060 kartoitus yli luettelot, kartoitus toiminnot yli luetteloista. 142 00:07:56,060 --> 00:07:59,530 143 00:07:59,530 --> 00:08:00,760 Ja nopea anteeksipyynnön. 144 00:08:00,760 --> 00:08:05,300 Tämä on hyvin pintapuolinen ja liian nopea luonnos 145 00:08:05,300 --> 00:08:07,620 joitakin näkökohtia Haskell ja Euterpea, 146 00:08:07,620 --> 00:08:11,760 joka on domain-specific upotettu kieli kirjoitettu 147 00:08:11,760 --> 00:08:14,970 Haskell musiikki tyyppejä. 148 00:08:14,970 --> 00:08:17,350 Joten älä tutustu koodi verkossa. 149 00:08:17,350 --> 00:08:22,404 Tuli jopa GHCI, joka on Glasgow'n Haskell Compiler tulkki. 150 00:08:22,404 --> 00:08:24,320 Ja minä tehdä joitakin Tämän vuonna hieman 151 00:08:24,320 --> 00:08:25,880 niin näet miten se tehdään. 152 00:08:25,880 --> 00:08:31,021 >> Ja tämän avulla voit ladata sisään the-- syntaksi on kaksoispiste ja sitten 153 00:08:31,021 --> 00:08:31,520 komento. 154 00:08:31,520 --> 00:08:33,510 Voit ladata tiedostoja. 155 00:08:33,510 --> 00:08:36,840 Voit käyttää Selaa niihin tiedostot nähdä kaikki toiminnot, 156 00:08:36,840 --> 00:08:39,169 olemassa tietty moduuli. 157 00:08:39,169 --> 00:08:43,850 Ja sitten näemme, tyypit ja tyyppi luokat ovat niin tärkeitä Haskell, 158 00:08:43,850 --> 00:08:48,850 joten voit aina check-- erityisesti jos olet työskennellyt uuden DSCL 159 00:08:48,850 --> 00:08:51,600 kuten tämä, mikä on musiikkia tyyppi? 160 00:08:51,600 --> 00:08:55,114 Tiedän miten numeerinen tyypit työskentelevät Haskell, 161 00:08:55,114 --> 00:08:56,530 mutta en tiedä paljon musiikista. 162 00:08:56,530 --> 00:09:01,280 Mutta voit tutustua, miten he määriteltävä käyttäen t tai kirjoita command 163 00:09:01,280 --> 00:09:04,577 ja sitten soittaa tietyn toiminto tai tieto-objektin. 164 00:09:04,577 --> 00:09:05,410 CONNOR HARRIS: Joo. 165 00:09:05,410 --> 00:09:09,820 Jos olet ajatellut C ja kalahtaa oli hardass tyyppejä, 166 00:09:09,820 --> 00:09:11,230 sinulla ei ole aavistustakaan siitä, Haskell. 167 00:09:11,230 --> 00:09:14,230 Hyvä asia Haskell on, että jos saat koodin koota 168 00:09:14,230 --> 00:09:16,790 ja jos Haskell tyyppi tarkastuksia, se on luultavasti oikeassa, 169 00:09:16,790 --> 00:09:18,675 koska tyyppinen järjestelmä on niin tiukka. 170 00:09:18,675 --> 00:09:20,090 >> STEPHEN KREWSON: Joo. 171 00:09:20,090 --> 00:09:21,980 Joten haluan vain mennä through-- ja uudelleen, 172 00:09:21,980 --> 00:09:27,160 tämä ei tee sitä justice-- muutamia piirteet Haskell, että ainakin 173 00:09:27,160 --> 00:09:31,780 sen creators-- ja se luotiin 1980-luvun lopulla, jonka joukko ihmisiä, 174 00:09:31,780 --> 00:09:34,610 komitea noin 20 people-- ajatteli olivat tärkeitä. 175 00:09:34,610 --> 00:09:36,850 Ja ensimmäinen asia, he luetellut paperi 176 00:09:36,850 --> 00:09:41,890 kuvattu syntyhistoria Haskell ensimmäisten 20 vuotta tai niin 177 00:09:41,890 --> 00:09:43,390 oli, että se oli laiska. 178 00:09:43,390 --> 00:09:44,990 Mitä tämä tarkoittaa? 179 00:09:44,990 --> 00:09:49,860 >> No, se tarkoittaa, kun meillä on jonkinlainen ilmaisun, meidän on arvioitava sitä. 180 00:09:49,860 --> 00:09:54,390 Ja Haskell tekee tämän puhelun jonka tarve tavalla tai ei-tiukasti. 181 00:09:54,390 --> 00:09:57,250 Eli jos meillä on joukko komponentit meidän ilmaisun, 182 00:09:57,250 --> 00:10:00,660 yritämme viivyttää arviointi näistä alakomponentteja 183 00:10:00,660 --> 00:10:05,300 kunnes absoluuttinen viime minute-- eli siihen asti, me todella tarvitsemme niitä. 184 00:10:05,300 --> 00:10:08,480 >> Joten tämä means--, joka on todella siistiä, varsinkin 185 00:10:08,480 --> 00:10:13,200 jos ajattelemme, abstraktio musiikillinen askelsekvensseri. 186 00:10:13,200 --> 00:10:16,740 Se kytketään päälle, ja aloitat käynnissä vaiheen sequence-- 187 00:10:16,740 --> 00:10:20,010 jos koskaan työskennellyt rummun machine-- ja se vain menee ikuisesti. 188 00:10:20,010 --> 00:10:24,650 Joten se olisi todella mukavaa, jos me voi jäljitellä että Haskell. 189 00:10:24,650 --> 00:10:31,040 Ja voimme tehdä sen kanssa ääretön arvot, erityisesti ääretön luetteloihin. 190 00:10:31,040 --> 00:10:35,860 Se on erittäin helppo kirjoittaa ääretön lista Haskell. 191 00:10:35,860 --> 00:10:39,230 Voisit vain käyttää syntaksia alas täällä, jossa näet 1 kautta 3, 192 00:10:39,230 --> 00:10:42,440 poistaa 3 1 piste piste, ja että on ääretön lista 193 00:10:42,440 --> 00:10:46,960 kaikki luonnolliset luvut ulottuvat on niin pitkälle kuin voitte kuvitella. 194 00:10:46,960 --> 00:10:49,925 >> Haluan esitellä käsite taittuu heti. 195 00:10:49,925 --> 00:10:51,800 Ja vielä, tarkoitus Seminaarin ei ole 196 00:10:51,800 --> 00:10:55,770 oppia taittuu Haskell tai korkeamman asteen toiminnot. 197 00:10:55,770 --> 00:10:59,640 Mutta haluan esitellä sen antaa tarkan käsityksen siitä, miten outo 198 00:10:59,640 --> 00:11:03,700 Haskell on ja kuinka voimakas se on. 199 00:11:03,700 --> 00:11:08,000 Ja erityisesti, aiomme be-- kun teemme eri rummun osia, 200 00:11:08,000 --> 00:11:12,790 aiomme olla manipuloimalla luettelot numeroita, taittamalla päällekkäin. 201 00:11:12,790 --> 00:11:17,290 Ja tehdä niin, käymme käyttää karttoja ja taittuu. 202 00:11:17,290 --> 00:11:21,770 >> On oikeus assosiatiivisia kertaiseksi, mikä on tämä oikeus 203 00:11:21,770 --> 00:11:26,990 here-- 1 miinus määrä, 2 miinus määrä, 3 vähennettynä 0. 204 00:11:26,990 --> 00:11:29,170 Ja syntaksi kertainen, annat kertaiseksi 205 00:11:29,170 --> 00:11:34,680 perusarvo ja sitten operation-- tässä tapauksessa, lisäys tai vähennys. 206 00:11:34,680 --> 00:11:36,280 Olen osoittanut molemmissa tapauksissa. 207 00:11:36,280 --> 00:11:41,760 Ja sitten on akkuja, kertyy koko lista, 208 00:11:41,760 --> 00:11:46,330 soveltamalla että operaattori plus tai miinus, ja sitten kertynyt se. 209 00:11:46,330 --> 00:11:52,680 Joten tämä on the-- jos se oli nimeltään käännettävät r plus 0 alkaen 0, 210 00:11:52,680 --> 00:11:54,720 me sitten tiivistää kaikki numeroita luetteloon. 211 00:11:54,720 --> 00:11:57,134 Ja että luettelo 1-3. 212 00:11:57,134 --> 00:12:00,050 CONNOR HARRIS: Joten laittaa se toiseen Näin kertainen r kestää kolme väitettä. 213 00:12:00,050 --> 00:12:02,540 On toiminto itse ottaa kaksi argumenttia, 214 00:12:02,540 --> 00:12:05,400 sitten on käynnistin arvo, ja siellä on lista arvoja. 215 00:12:05,400 --> 00:12:08,570 Ja mitä teet on otat käynnistin arvo, ensimmäinen arvo, 216 00:12:08,570 --> 00:12:09,850 laittaa ne toiminto. 217 00:12:09,850 --> 00:12:11,607 Mitä saat ulos, ottaa, että rehulla 218 00:12:11,607 --> 00:12:13,940 osaksi toimintaa toinen arvo, mitä saat ulos, 219 00:12:13,940 --> 00:12:16,690 ottaa, että rehu että otetaan funktio kolmas arvo. 220 00:12:16,690 --> 00:12:18,740 Ja sitten jos mennä alas tämä koko lista tällä tavalla, 221 00:12:18,740 --> 00:12:22,970 aiot saada lopulta jotkut yksikkö arvo, joka on 222 00:12:22,970 --> 00:12:25,720 samantyyppisiä, mitä olet aloittanut ulos ja samantyyppisiin 223 00:12:25,720 --> 00:12:29,147 kuten asiat luettelossa, ja sitten se paluu tulos kertainen R. 224 00:12:29,147 --> 00:12:31,980 STEPHEN KREWSON: Eli erityisesti, nämä ovat korkeamman asteen toiminnot, 225 00:12:31,980 --> 00:12:34,460 koska he jotakin muuta toiminta yhtenä argumentteja. 226 00:12:34,460 --> 00:12:34,770 >> CONNOR HARRIS: Joo. 227 00:12:34,770 --> 00:12:37,820 Jos olet käyttänyt tiettyjä muita languages-- Tiedän R, [kuulumaton] 228 00:12:37,820 --> 00:12:41,510 kieli on tämä, kutsutaan Vähennä. 229 00:12:41,510 --> 00:12:45,460 Saatat olla samankaltaisia ​​tehtäviä muilla kielillä, soitti juuri 230 00:12:45,460 --> 00:12:48,160 eri asiat. 231 00:12:48,160 --> 00:12:50,680 >> STEPHEN KREWSON: Ja mikä on mukavaa noin kertainen R 232 00:12:50,680 --> 00:12:53,880 tässä tapauksessa on, että kansi R voi työskennellä ääretön luetteloita. 233 00:12:53,880 --> 00:12:59,490 Joten tässä pohjalle, tämä P5 on tuottaa toteaa, että 234 00:12:59,490 --> 00:13:03,120 kytketään päälle askelsekvensseri varten jotkut rummun osa, viides rummun osa, 235 00:13:03,120 --> 00:13:05,480 ja ehkä se conga rumpu tai jotain. 236 00:13:05,480 --> 00:13:09,719 Ja tämä on tarkoituksella tylppä tapa kirjoittaa tämän, 237 00:13:09,719 --> 00:13:11,510 mutta se on hauskaa, koska se osoittaa paljon 238 00:13:11,510 --> 00:13:14,460 asioita noin Haskell ja Euterpea. 239 00:13:14,460 --> 00:13:20,650 >> Joten kertainen R Tämän colon-- paksusuolen on vain toimija, joka työntää asiat 240 00:13:20,650 --> 00:13:25,700 yhdessä list-- kehotti tyhjä luettelo, joka on vain tyhjä suluissa. 241 00:13:25,700 --> 00:13:28,250 Ja Soitan että tässä ääretön luetteloon. 242 00:13:28,250 --> 00:13:31,570 Tämä on itse asiassa kaksi luettelot lasketaan yhteen tänne. 243 00:13:31,570 --> 00:13:37,150 Listan 1 pilkku 6 piste piste on 1, 6, 11, 16. 244 00:13:37,150 --> 00:13:39,750 Joten Haskell-- vain muutama merkki, voit 245 00:13:39,750 --> 00:13:42,420 voi tuottaa koko numerosarja 246 00:13:42,420 --> 00:13:46,240 jotka ovat viisi numeroa toisistaan venyttely on äärettömyyteen. 247 00:13:46,240 --> 00:13:49,860 Ja minä alkuun lisättävä kyseisen tämä lyhyempi pieni list-- 248 00:13:49,860 --> 00:13:54,370 3, 8, 21-- vain näyttää miten voit liität listoja. 249 00:13:54,370 --> 00:13:55,790 >> Ja sitten olen taitettu itse. 250 00:13:55,790 --> 00:14:01,510 Ja tämä päätyy vain on eräänlainen identiteetti toiminta, mutta se on ääretön. 251 00:14:01,510 --> 00:14:06,070 Ja fold R voi tehdä sitä, koska se laiskasti arvioi, kuten edellä. 252 00:14:06,070 --> 00:14:10,582 Jos meillä on 1 ja 2 ja 3, voimme vain bracket pois koko loput siitä. 253 00:14:10,582 --> 00:14:12,290 Se ei toimi miinus tai plus, mutta se 254 00:14:12,290 --> 00:14:17,760 toimii tämän paksusuolen identiteetti toiminta luettelossa. 255 00:14:17,760 --> 00:14:24,620 >> Miten siis käytännössä käyttää, että jos me on äärettömän pitkä lista asioita? 256 00:14:24,620 --> 00:14:26,500 No, Haskell tarjoaa paljon functions-- 257 00:14:26,500 --> 00:14:29,450 ja näyttää enemmän osaksi näitä oma time-- kuten ottaa 258 00:14:29,450 --> 00:14:32,200 joka sanoo, OK, olemme aikaan tätä ääretön lista, 259 00:14:32,200 --> 00:14:35,950 mutta me vain vie jonkin lukumäärä se Ja tässä case-- 260 00:14:35,950 --> 00:14:38,410 näemme tämän myöhemmin meidän rumpukone code-- 261 00:14:38,410 --> 00:14:43,740 GM on vain jonkinlainen maailmanlaajuinen muuttuja useita vaiheita 262 00:14:43,740 --> 00:14:44,610 SEQUENCER. 263 00:14:44,610 --> 00:14:47,630 Telan Koneet I osoitimme, se on tyypillisesti 16, 264 00:14:47,630 --> 00:14:51,475 mutta olen toteuttanut sen 32. 265 00:14:51,475 --> 00:14:54,470 Se ei ole oikeastaan ​​väliä. 266 00:14:54,470 --> 00:15:00,230 >> Haskell on myös puhdasta, joten se on vahva staattinen tyypitys että Connor viittasi. 267 00:15:00,230 --> 00:15:03,220 Joten toiminnot ovat matemaattisia sense-- 268 00:15:03,220 --> 00:15:06,600 he enemmän matemaattisia että he taattu 269 00:15:06,600 --> 00:15:11,530 jotta ei pääse tai muuttaa minkäänlaista muuttuja tai suorittaa tulo tai lähtö. 270 00:15:11,530 --> 00:15:14,420 Joten jos sinulla on toiminto, se on deterministinen. 271 00:15:14,420 --> 00:15:17,400 Se palaa aina sama arvo osavaltiossa ohjelman 272 00:15:17,400 --> 00:15:19,310 tai pysyy samana. 273 00:15:19,310 --> 00:15:22,940 On, tietenkin, monadisen poikkeuksia tähän, mutta se ole meidän soveltamisalaan. 274 00:15:22,940 --> 00:15:23,900 >> CONNOR HARRIS: Joo. 275 00:15:23,900 --> 00:15:26,946 Mitä tämä tarkoittaa, vaikka on olemassa on muutamia tärkeitä [äänetön] 276 00:15:26,946 --> 00:15:27,820 seuraukset. 277 00:15:27,820 --> 00:15:30,940 Yksi on, että se on erittäin helppo yhdensuuntaistettua Haskell ohjelmia. 278 00:15:30,940 --> 00:15:32,773 Koska jos sinulla on, sanoa, funktio, joka 279 00:15:32,773 --> 00:15:36,064 tarvitsee toimivat miljoonan arvoista, jos tiedät, että toiminto aina 280 00:15:36,064 --> 00:15:39,280 anna sama arvo, jos syötät tietyllä value-- 281 00:15:39,280 --> 00:15:43,055 jos olet [äänetön] f 1, f 2, niin f 3 tai whatnot-- f 1 282 00:15:43,055 --> 00:15:45,180 ei aio kirjoittaa tiedostoon tai tehdä jotain 283 00:15:45,180 --> 00:15:46,850 että muuttavat arvoa F2. 284 00:15:46,850 --> 00:15:50,220 Voit vain jakaa tämä toiminto miljoonaa eri koneita tai miljoona 285 00:15:50,220 --> 00:15:54,720 eri langalla tai mitä tahansa, saada kaikki vastaukset takaisin, 286 00:15:54,720 --> 00:15:56,900 saada kaikki paluuarvot takaisin, ja sitten se on siinä. 287 00:15:56,900 --> 00:15:59,780 Niin kovin helppo yhdensuuntaistettua asioita. 288 00:15:59,780 --> 00:16:03,140 >> Huonona puolena on, että panos ja ulostulo erityisesti 289 00:16:03,140 --> 00:16:05,720 sovi tyyppinen järjestelmä hyvin monimutkainen tavalla. 290 00:16:05,720 --> 00:16:09,010 Emme aio mennä, että juuri nyt, mutta olen Kannustamme sinua katsomaan joitakin resursseja 291 00:16:09,010 --> 00:16:11,175 verkossa, jos haluat oppia siitä. 292 00:16:11,175 --> 00:16:13,960 293 00:16:13,960 --> 00:16:16,550 >> STEPHEN KREWSON: Niin kirjoita classes-- ja tämä 294 00:16:16,550 --> 00:16:21,610 was-- luokat tyyppien keksittiin ratkaista 295 00:16:21,610 --> 00:16:24,160 ongelma operaattorin ylikuormitus. 296 00:16:24,160 --> 00:16:27,590 Joten halusimme saada tasa erityyppisten asioita. 297 00:16:27,590 --> 00:16:31,040 Tietenkin voisimme ajatella of-- välisen tasa-arvon numeerinen tyypit 298 00:16:31,040 --> 00:16:34,720 on hyvin helppo ajatella, mutta Entä tasa-arvosta lista? 299 00:16:34,720 --> 00:16:37,610 Entä tasa-arvosta puu jalka tietorakenteita? 300 00:16:37,610 --> 00:16:43,130 Ja tämä on kaikki mahdollista Haskell koska tyypin luokkiin. 301 00:16:43,130 --> 00:16:48,000 >> Joten jos määrittelee tiettyjä tietoja type-- ja täällä, nämä ovat musikaalisia kentillä. 302 00:16:48,000 --> 00:16:50,960 Olemme vihdoin Joidenkin tietokoneen musiikkia. 303 00:16:50,960 --> 00:16:57,420 Meillä on siis C, C terävä, ja niin edelleen ja niin edelleen. 304 00:16:57,420 --> 00:17:01,080 Ne kuuluvat nippu erityyppisiä luokissa. 305 00:17:01,080 --> 00:17:03,510 EQ-- ne kuuluvat EQ tyyppi luokan. 306 00:17:03,510 --> 00:17:06,780 Tämä tarkoittaa, että ne tukevat tasa toimintaa. 307 00:17:06,780 --> 00:17:12,650 Joten voit arvioida, onko yksi sekvenssi musikaali primitives 308 00:17:12,650 --> 00:17:15,400 on sama kuin toista. 309 00:17:15,400 --> 00:17:17,280 >> Ne kuuluvat järjestysluku luokan. 310 00:17:17,280 --> 00:17:19,479 Se tarkoittaa, että on tilaus näihin. 311 00:17:19,479 --> 00:17:27,670 D tulee sen jälkeen C. cis tulee sen jälkeen C samoin. 312 00:17:27,670 --> 00:17:29,840 Ne kuuluvat luokkaan osoittavat, mikä tarkoittaa, että ne voivat 313 00:17:29,840 --> 00:17:33,000 tulostetaan konsoliin tai terminaaliin. 314 00:17:33,000 --> 00:17:36,090 Ne kuuluvat luokan haastateltu, joka 315 00:17:36,090 --> 00:17:39,770 tarkoittaa sitä, että vaikka nämä ovat merkkejä, 316 00:17:39,770 --> 00:17:45,340 heillä taustalla numeerinen edustus alkaen 0 317 00:17:45,340 --> 00:17:48,960 ja menee pois läpi kuitenkin monet asiat ovat täällä, 20 tai niin, 318 00:17:48,960 --> 00:17:51,770 tai 30 tai 40, ehkä. 319 00:17:51,770 --> 00:17:54,259 >> CONNOR HARRIS: Ja kun meillä tietotyyppi 320 00:17:54,259 --> 00:17:57,050 että derives-- kanssa avainsanan "Deriving--" tietyntyyppistä luokka, 321 00:17:57,050 --> 00:18:01,160 se tarkoittaa, että kääntäjä yrittää rakentaa jotain automaattisesti. 322 00:18:01,160 --> 00:18:05,120 Joten ehkä sinun kannattaa määritellä laatu eri tavalla. 323 00:18:05,120 --> 00:18:09,450 Sinun kannattaa määritellä cis tasavertaisina D tasainen, esimerkiksi. 324 00:18:09,450 --> 00:18:11,560 Tällä rakenteella täällä, en usko cis 325 00:18:11,560 --> 00:18:14,940 ja D tasainen on sama, koska kääntäjä automaattisesti 326 00:18:14,940 --> 00:18:19,670 say jokainen erilaisia ​​mahdollisia arvo eroaa kaikista muista. 327 00:18:19,670 --> 00:18:22,930 >> Joten on mahdollista ohittaa oletuksena toteutukset 328 00:18:22,930 --> 00:18:25,730 tämäntyyppisiä luokkiin. 329 00:18:25,730 --> 00:18:28,640 Jälleen, katso viite jos haluat oppia siitä. 330 00:18:28,640 --> 00:18:31,767 331 00:18:31,767 --> 00:18:33,600 STEPHEN KREWSON: Ja täällä, itse asiassa, tämä will 332 00:18:33,600 --> 00:18:36,930 olla avuksi, kun koodin myöhemmin. 333 00:18:36,930 --> 00:18:42,150 Näemme joitakin infix toimijoiden peräkkäiseen koostumus, 334 00:18:42,150 --> 00:18:46,570 rinnakkainen kokoonpano, ja niin edelleen, nämä plussia ja yhtäsuuruusmerkit 335 00:18:46,570 --> 00:18:48,620 ympäröi kaksoispisteet. 336 00:18:48,620 --> 00:18:53,330 Tämä tarkoittaa, että voimme pelata näitä eri musiikki primitiivit yksi toisensa jälkeen. 337 00:18:53,330 --> 00:18:54,590 Se on juokseva koostumus. 338 00:18:54,590 --> 00:18:57,170 >> Tai voimme pelata niitä yhdensuuntainen samaan aikaan. 339 00:18:57,170 --> 00:19:05,100 Jotta voin olla musiikillinen arvo, ja sitten tämä vastaa ja kaksoispistettä, 340 00:19:05,100 --> 00:19:09,669 Infix rinnakkain koostumus operaattori, ja toistaa niitä eräänlaisena sointu. 341 00:19:09,669 --> 00:19:11,460 Ja aiomme käyttää tämä kun yhdistämme 342 00:19:11,460 --> 00:19:15,080 meidän rummun osa meidän pikku Frere Jacques laulu 343 00:19:15,080 --> 00:19:19,460 pelata nämä kaksi sekvenssit musiikillisen arvot samaan aikaan. 344 00:19:19,460 --> 00:19:24,520 345 00:19:24,520 --> 00:19:29,250 >> Currying is-- Curry on viimeksi nimi Haskell Curry, joka 346 00:19:29,250 --> 00:19:31,850 Haskell kuva on nimetty. 347 00:19:31,850 --> 00:19:34,330 Ja tämä antaa meille mukava eleganssi kun olemme 348 00:19:34,330 --> 00:19:36,880 kirjallisesti kaikki nämä eri toimintoja tai suodattimet, jotka olemme 349 00:19:36,880 --> 00:19:39,330 tulee kartoitus yli meidän luetteloita. 350 00:19:39,330 --> 00:19:42,810 Funktio kaksi arguments-- f x ja y-- 351 00:19:42,810 --> 00:19:46,630 voidaan esittää f x soveltaa y. 352 00:19:46,630 --> 00:19:49,800 Joten se on tehtävä yksi argumentti joka palauttaa 353 00:19:49,800 --> 00:19:51,240 toinen funktio yksi argumentti. 354 00:19:51,240 --> 00:19:56,962 Joten tämä tarkoittaa, että voimme kartta funktio f x yli lista y n. 355 00:19:56,962 --> 00:19:58,920 CONNOR HARRIS: Haluatko antaa esimerkin tästä? 356 00:19:58,920 --> 00:19:59,836 STEPHEN KREWSON: Joo. 357 00:19:59,836 --> 00:20:05,390 Minulla on esimerkiksi oikeus täällä joitakin asioita me kirjoittaa. 358 00:20:05,390 --> 00:20:10,500 Joten jäljitellä 2-- hyvin, jäljitellä vie 359 00:20:10,500 --> 00:20:13,040 yksi arvo, joka on se, kuinka monta kertaa jäljitellä jotain, 360 00:20:13,040 --> 00:20:16,690 ja sitten se vie value-- yleensä lista tai jotain. 361 00:20:16,690 --> 00:20:23,450 Joten tässä, olemme kartoitus jäljitellä 2 yli toiseen listaan. 362 00:20:23,450 --> 00:20:27,440 >> Joten jos me kartta jäljitellä 2, jos me jäljitellä 2 sovelletaan 363 00:20:27,440 --> 00:20:31,890 ensimmäiseen osa tätä list-- ja nämä ovat luettelot musiikin phrases-- 364 00:20:31,890 --> 00:20:37,650 tuottaa kaksi "sinua sleeping--" joten sinä nukut, olet nukkumassa. 365 00:20:37,650 --> 00:20:40,040 Joten nyt meillä on kaksi. 366 00:20:40,040 --> 00:20:42,570 Mutta rinnakkaisia ​​kestää kaksi perustelut, mutta koska olemme 367 00:20:42,570 --> 00:20:47,100 currying ja sitten kartoitus, Voimme edustaa jäljitellä 2 368 00:20:47,100 --> 00:20:52,310 että ne on palautettu funktiona yksi argument-- vain jäljittelevän kahdesti. 369 00:20:52,310 --> 00:20:57,010 Ja sitten me soveltamalla että kuhunkin osa tätä luetteloa lauseita. 370 00:20:57,010 --> 00:21:01,900 >> Ja concat on Haskell operaation madaltuminen lista. 371 00:21:01,900 --> 00:21:04,400 Koska rinnakkaisia ​​2 tahtoa tuottaa luettelo luetteloista. 372 00:21:04,400 --> 00:21:06,660 Ja tämä on tämä välimuoto täällä. 373 00:21:06,660 --> 00:21:10,365 Ja niin sitten voimme concat tai tasaamaan että kahdesti. 374 00:21:10,365 --> 00:21:12,240 CONNOR HARRIS: yksinkertaisempi esimerkki Parkitus, 375 00:21:12,240 --> 00:21:15,323 jos olisit like-- kuvitella f on vain kertomistoimintalohkoon, joka ottaa kaksi 376 00:21:15,323 --> 00:21:16,840 argumentteja ja palauttaa niiden tuote. 377 00:21:16,840 --> 00:21:19,320 Joten jos sinulla on f 4 5, se on 20. 378 00:21:19,320 --> 00:21:22,670 Mutta voit ajatella tätä also-- sinulla funktio f 4 379 00:21:22,670 --> 00:21:25,560 joka vie lausumat ja palauttaa neljä kertaa tämä argument-- vain 380 00:21:25,560 --> 00:21:27,870 osittainen sovellus, joka vain yksi argumentti 4. 381 00:21:27,870 --> 00:21:31,182 Ja jos rehu f 4 5, joka antaa sinulle 20. 382 00:21:31,182 --> 00:21:32,890 Ja se on yksinkertaisempi esimerkki Parkitus. 383 00:21:32,890 --> 00:21:34,473 Se on yleensä yksi oppikirja niistä. 384 00:21:34,473 --> 00:21:38,860 385 00:21:38,860 --> 00:21:42,110 >> STEPHEN KREWSON: Lambda ilmaisuja tai anonyymejä toimintoja 386 00:21:42,110 --> 00:21:47,330 ovat toinen Haskell tunnusmerkki. 387 00:21:47,330 --> 00:21:51,242 Joten jos tarvitsemme lietsoa pikku toiminto elämä rinnakkaisia, 388 00:21:51,242 --> 00:21:52,950 mutta sanovat, että se ei ole standardin kirjasto, 389 00:21:52,950 --> 00:21:56,150 voimme käyttää syntaksia samanlainen seuraavan. 390 00:21:56,150 --> 00:21:58,730 Ja me tuulta tänä. 391 00:21:58,730 --> 00:22:02,160 Yksi asia näet paljon vuonna rumpu kone olemme soittaessaan 392 00:22:02,160 --> 00:22:05,790 niin sanotun suodatin, joka kuten ennen, 393 00:22:05,790 --> 00:22:08,185 on kartoitus toiminto yli lista, mutta se on 394 00:22:08,185 --> 00:22:10,260 kartoitus Boolen funktio. 395 00:22:10,260 --> 00:22:13,390 >> Joten olemme täällä esimerkki of nimettömänä 396 00:22:13,390 --> 00:22:19,150 määritellään Boolen toiminto vain ottaa pari arvoja. 397 00:22:19,150 --> 00:22:22,990 Tämä ei ole varsinaisesti anonyymi toiminto. 398 00:22:22,990 --> 00:22:25,850 Mutta se on määritellä kanssa että syntaksi lyhyys, 399 00:22:25,850 --> 00:22:28,007 ja tämä vie vain X moduuli n- 400 00:22:28,007 --> 00:22:28,840 CONNOR HARRIS: Joo. 401 00:22:28,840 --> 00:22:31,330 Joten f on funktio kaksi argumenttia n ja p 402 00:22:31,330 --> 00:22:35,440 joka palauttaa toiminnon, joka ei itse funktio yksi argumentti, nimittäin x. 403 00:22:35,440 --> 00:22:38,815 404 00:22:38,815 --> 00:22:40,690 STEPHEN KREWSON: I mainitussa infix toimijoille. 405 00:22:40,690 --> 00:22:42,642 Mitä infix toimijoita? 406 00:22:42,642 --> 00:22:45,710 No, infix operaattorit ovat normaalisti me edustamme toimintaa, 407 00:22:45,710 --> 00:22:49,910 sanoa, vuonna mathematics-- 2 plus 2 sijasta operaattorin plus 408 00:22:49,910 --> 00:22:51,202 ja sitten kaksi perustelua 2 ja 2. 409 00:22:51,202 --> 00:22:53,701 CONNOR HARRIS: Sitä kutsutaan Käänteinen puolalainen notaatio, joka on 410 00:22:53,701 --> 00:22:55,330 termi Epäilen tahansa te tiedätte. 411 00:22:55,330 --> 00:22:56,288 >> STEPHEN KREWSON: Oikea. 412 00:22:56,288 --> 00:22:58,290 Käänteinen puolalainen tai etuliite notaatio. 413 00:22:58,290 --> 00:23:01,412 Mutta Haskell päätti Käytä infix toimijoille. 414 00:23:01,412 --> 00:23:03,120 Joten nämä ovat joitakin Custom ne, jotka 415 00:23:03,120 --> 00:23:07,770 määritellään Euterpea DSCL Haskell. 416 00:23:07,770 --> 00:23:10,730 Joten tämä oli juokseva koostumus. 417 00:23:10,730 --> 00:23:16,340 Tämä tapahtui rinnakkain koostumus, ja tämä oli truncating rinnakkain koostumus. 418 00:23:16,340 --> 00:23:18,710 Ja me tarvitsemme, että meidän rumpukone, 419 00:23:18,710 --> 00:23:22,640 koska käytämme viimeinen operaattori että pikku monikko siellä 420 00:23:22,640 --> 00:23:26,330 pelata rumpukone pitkin meidän Frere Jacques lauluun. 421 00:23:26,330 --> 00:23:28,650 Ja meidän rumpukone on olemaan ääretön. 422 00:23:28,650 --> 00:23:30,920 Se vain toistaa ikuisesti. 423 00:23:30,920 --> 00:23:32,692 Mutta Frere Jacques laulu ei ole. 424 00:23:32,692 --> 00:23:33,510 Se ei ole pitkä. 425 00:23:33,510 --> 00:23:36,610 Se on vain muutamia baareja. 426 00:23:36,610 --> 00:23:43,030 Joten meidän täytyy pysähtyä rumpukone kuin Heti lyhyempi musiikillinen arvo tulee 427 00:23:43,030 --> 00:23:43,700 lopettamiseksi. 428 00:23:43,700 --> 00:23:46,980 Ja että infixed operaattori on erittäin hyödyllinen kanssa. 429 00:23:46,980 --> 00:23:50,090 >> Ja infix merkintätapa kuten tämä on tavallaan mukavaa, 430 00:23:50,090 --> 00:23:57,095 koska että sinulla on toiminto kuten lainaus, joka antaa kokonaislukujaolla 431 00:23:57,095 --> 00:24:01,010 x jotain else-- pahoillani, että pitäisi olla ja b. 432 00:24:01,010 --> 00:24:04,740 Voisit kirjoittaa sen lainaus b. 433 00:24:04,740 --> 00:24:09,670 Joten jos put-- elementti on Toinen esimerkki tästä. 434 00:24:09,670 --> 00:24:14,730 X elementti joissakin luetteloon, jos laitat se Backticks, voit käyttää sitä. 435 00:24:14,730 --> 00:24:20,400 Vaikka se ei ole symboli kuten plus tai miinus tai kertaa, 436 00:24:20,400 --> 00:24:24,630 voit käyttää nimeä toiminto kuten että Backticks 437 00:24:24,630 --> 00:24:27,045 kuten infix operaattori, joka on aika siistiä. 438 00:24:27,045 --> 00:24:29,670 CONNOR HARRIS: Tämäkin on kaikki vain syntaktinen sokeri, todella. 439 00:24:29,670 --> 00:24:32,310 Se ei vaikuta ydin kielen. 440 00:24:32,310 --> 00:24:37,440 >> STEPHEN KREWSON: Näemme täällä viimeinen lause meidän Frere Jacques laulu, 441 00:24:37,440 --> 00:24:45,740 Olen pelannut joitakin pikku sointuja tai kolmasosaa käytetään rinnakkain koostumus 442 00:24:45,740 --> 00:24:46,240 operaattori. 443 00:24:46,240 --> 00:24:50,680 444 00:24:50,680 --> 00:24:54,950 Tämä on toinen tapa sanoa joidenkin mitä olemme juuri sanoneet. 445 00:24:54,950 --> 00:24:59,986 Joten voit Karttatoiminnot yhden argumentin yli luetteloista. 446 00:24:59,986 --> 00:25:02,860 CONNOR HARRIS: Jälleen viitteet varten Haskell-- johdanto oppikirjat 447 00:25:02,860 --> 00:25:04,680 on kaikki tämän siinä. 448 00:25:04,680 --> 00:25:07,790 >> STEPHEN KREWSON: Joten tässä on aika keskeinen linja askelsekvensseri 449 00:25:07,790 --> 00:25:12,820 me katsomaan käyttäen lista ymmärtäminen. 450 00:25:12,820 --> 00:25:17,810 Ja näemme täällä on, että elementti kiinteän operaattori takaisin lainausmerkkejä. 451 00:25:17,810 --> 00:25:23,030 Joten jos x on osa luettelon X: n, niin soitamme ylös perc toimintoja. 452 00:25:23,030 --> 00:25:25,100 Joten perc on vain lyömäsoittimet toiminto. 453 00:25:25,100 --> 00:25:30,200 Kestää jonkin arvon p, joka on osa rajoitettu joukko kaikki 454 00:25:30,200 --> 00:25:35,310 eri lyömäsoittimet äänet että näimme Edellinen dia, 455 00:25:35,310 --> 00:25:38,840 ja sitten se antaa että kesto neljäsosanuotti. 456 00:25:38,840 --> 00:25:43,190 Ja muuten se antaa sille QNR, ja QNR on vain neljäsosa Tauko. 457 00:25:43,190 --> 00:25:44,970 >> Joten tämä on rakentaa jotain mukavaa. 458 00:25:44,970 --> 00:25:52,110 Meillä on luettelo tekijöistä, ja käymme silmukka joistakin lista yhdestä 459 00:25:52,110 --> 00:25:54,540 Max arvoa meidän askelsekvensseri. 460 00:25:54,540 --> 00:25:58,290 Ja kun olemme tietyllä I että luettelo yhdestä max, 461 00:25:58,290 --> 00:26:02,970 jos se i on jäsen tässä joka on luotu tämän toiminnon, 462 00:26:02,970 --> 00:26:06,040 hyvin, niin me käännä se osaksi lyömäsoittimet huomautus. 463 00:26:06,040 --> 00:26:10,960 Muuten, me vain pelata levätä, joka sanoen, me vain vaieta. 464 00:26:10,960 --> 00:26:16,050 Ja voimme nähdä täällä, että tämä lista ymmärtäminen syntaksi, 465 00:26:16,050 --> 00:26:20,030 X on asuttu tässä lista rakennettu yksi 466 00:26:20,030 --> 00:26:22,462 maailmanlaajuiseen koko sekvensserin. 467 00:26:22,462 --> 00:26:23,295 CONNOR HARRIS: Joo. 468 00:26:23,295 --> 00:26:26,340 Perus syntaksi lista käsityksiä on 469 00:26:26,340 --> 00:26:30,810 kiinnike, arvo liittyy jotkut muuttujia, baari, 470 00:26:30,810 --> 00:26:34,260 mahdolliset arvot muuttujien itse, suljettu kiinnike. 471 00:26:34,260 --> 00:26:38,545 Ja jos olet tehnyt asettanut rakentaja merkintätapa kaikesta sellaisesta matematiikan luokan, 472 00:26:38,545 --> 00:26:45,999 ehkä asettanut 2n kuten että n on tai n on z. 473 00:26:45,999 --> 00:26:48,290 Samanlaisia ​​thing-- tämä merkintätapa on tarkoitus olla viittaavia 474 00:26:48,290 --> 00:26:49,630 Kyseisen matemaattinen. 475 00:26:49,630 --> 00:26:51,880 STEPHEN KREWSON: Ja voit sovelletaan useita predikaatteja 476 00:26:51,880 --> 00:26:56,250 ja useita suodattimia luettelossa ymmärtäminen, joka on varsin mukava. 477 00:26:56,250 --> 00:27:01,800 Algebrallinen types-- me ei viipyä pitkään täällä. 478 00:27:01,800 --> 00:27:04,840 Ei ole hyvä käsitettä Haskell tai hyvä, selvä käsite 479 00:27:04,840 --> 00:27:10,720 miten ottaa vaikkapa oletus parametrin toiminnon tai jotain. 480 00:27:10,720 --> 00:27:13,370 Python, tämä on melko helppoa. 481 00:27:13,370 --> 00:27:18,460 Voit vain sanoa vastaa siitä ilmoitus toiminto, 482 00:27:18,460 --> 00:27:21,420 oletusarvo tapauksessa ei mitään toimitetaan. 483 00:27:21,420 --> 00:27:27,010 >> Haskell, voisit ehkä Käytä ehkä ehkä tyyppi, 484 00:27:27,010 --> 00:27:32,190 joka vie joko mitään tai arvo tyyppiä vain. 485 00:27:32,190 --> 00:27:38,630 Joten me hyödyntää tätä rumpukone jotta voimme antaa valinnainen tilavuus 486 00:27:38,630 --> 00:27:40,730 parametrit jokaisen rummun osista. 487 00:27:40,730 --> 00:27:46,160 488 00:27:46,160 --> 00:27:54,680 Niin että antaa meille tapa, jolla EQ tai tilavuus tietyllä kanavalla. 489 00:27:54,680 --> 00:27:56,440 >> CONNOR HARRIS: In muut Haskell esimerkkejä, 490 00:27:56,440 --> 00:28:00,450 Saatat nähdä ehkä käyttää toiminnot saattavat epäonnistua. 491 00:28:00,450 --> 00:28:03,470 Tämä on yhteinen. 492 00:28:03,470 --> 00:28:07,010 >> STEPHEN KREWSON: Ja voit toimittaa jonkinlainen virheilmoituksen oletuksena. 493 00:28:07,010 --> 00:28:11,020 Ja se on erityisen kätevä, kun teet I / O-Haskell. 494 00:28:11,020 --> 00:28:12,044 Tämä voi olla temppuja. 495 00:28:12,044 --> 00:28:13,960 CONNOR HARRIS: Tai samankaltaisia ​​esimerkiksi ajatella 496 00:28:13,960 --> 00:28:17,460 funktion, johon jako parametrin, joka saattaa olla 0. 497 00:28:17,460 --> 00:28:20,020 Ja että toiminta voisi palata ehkä mitä tahansa. 498 00:28:20,020 --> 00:28:22,802 Joten jos ei ole jako 0, se palaa vain mitä. 499 00:28:22,802 --> 00:28:25,010 Ja jos on jakautumisella 0, se palauttaa mitään 500 00:28:25,010 --> 00:28:26,910 keinona signalointi virheen. 501 00:28:26,910 --> 00:28:30,330 Koska yksi seuraus Haskell n erittäin tiukkoja kirjoittamalla 502 00:28:30,330 --> 00:28:34,100 on, että ei ole real-- Poikkeuksia ovat hankalia, pohjimmiltaan, 503 00:28:34,100 --> 00:28:36,160 virheiden käsittelyä on hankala. 504 00:28:36,160 --> 00:28:39,440 Ja tämä on yksi hyvin yhteinen tapa tehdä se. 505 00:28:39,440 --> 00:28:42,990 >> STEPHEN KREWSON: Joten nyt saamme toiseen aistiharhoja juttu 506 00:28:42,990 --> 00:28:49,160 noin Haskell, joka on malli matching ja toiminto määritelmät. 507 00:28:49,160 --> 00:28:53,390 Näytin teille viimeisen dian ilmoitus vaiheen sekvenssin 508 00:28:53,390 --> 00:28:58,170 toiminto, joka kesti ehkä arvo, sitten int, niin luettelo ints, 509 00:28:58,170 --> 00:29:03,850 sitten palauttaa sekvenssin musiikki arvot siellä selityksin 510 00:29:03,850 --> 00:29:05,375 sekä äänenkorkeutta ja voimakkuutta. 511 00:29:05,375 --> 00:29:08,030 512 00:29:08,030 --> 00:29:11,820 >> Joten ne kolme seikkaa voivat olla kuvio Hyväksytty seuraavalla tavalla. 513 00:29:11,820 --> 00:29:16,660 Ja haluamme aina olla varma do perustapauksen tai poistu tapauksessa ensin. 514 00:29:16,660 --> 00:29:19,690 Ja nämä alaviivoja voi vain tulkita 515 00:29:19,690 --> 00:29:22,340 tarkoittavan mitään arvoa, joka on siellä. 516 00:29:22,340 --> 00:29:26,580 Joten jos saamme puhelun vaiheeseen järjestyksessä joidenkin arvo jokin muu arvo, 517 00:29:26,580 --> 00:29:32,210 ja sitten tyhjän listan, mitä haluamme palata on vain hiljaisuus, levätä 0. 518 00:29:32,210 --> 00:29:35,110 >> Ja sen sijaan, että on tyhjän listan tai 0, 519 00:29:35,110 --> 00:29:38,150 se levätä 0, koska olemme tekemisissä musiikin tyyppi, 520 00:29:38,150 --> 00:29:43,230 ja tyhjän listan musiikin tyyppi on vain muualla ole kestoa. 521 00:29:43,230 --> 00:29:45,680 Se ei ole musiikki. 522 00:29:45,680 --> 00:29:51,460 Ja sitten näemme, jos saamme askel sekvenssi V tilavuus argumentti, 523 00:29:51,460 --> 00:29:57,290 p varotoimi väline väitteen, ja sitten luettelon X: n. 524 00:29:57,290 --> 00:29:58,360 >> Sitten tehdä joitakin juttuja. 525 00:29:58,360 --> 00:30:01,290 Erityisesti sovellamme Tässä lista ymmärtäminen, 526 00:30:01,290 --> 00:30:05,700 ja teemme joitakin operaatioita ehkä arvosta 527 00:30:05,700 --> 00:30:10,050 tehdä siitä numeerinen arvo niin, että se voitaisiin sitten haastateltu ja käytetyt 528 00:30:10,050 --> 00:30:12,300 Valitse instrumentti. 529 00:30:12,300 --> 00:30:16,730 Tämäkin on pieni bittinen tarkoituksella inconcise 530 00:30:16,730 --> 00:30:20,580 vain näyttää kaikki outoja asioita voit tehdä Haskell kun 531 00:30:20,580 --> 00:30:23,170 katsomaan sitä omaa aikaa. 532 00:30:23,170 --> 00:30:23,802 >> Selvä. 533 00:30:23,802 --> 00:30:26,010 Joten olemme vihdoin päästä mitä ryhdyimme tekemään, 534 00:30:26,010 --> 00:30:28,820 joka on tehdä joitakin tietokoneen musiikkia. 535 00:30:28,820 --> 00:30:32,250 Joten aiomme yrittää tehdä Frere Jacques laulun. 536 00:30:32,250 --> 00:30:35,220 Joten on kuinka monta lauseita Frere Jacques? 537 00:30:35,220 --> 00:30:38,790 538 00:30:38,790 --> 00:30:39,680 Neljä. 539 00:30:39,680 --> 00:30:40,460 Suuri. 540 00:30:40,460 --> 00:30:42,490 Ja mitä mukavaa on, että he kaikki toistuvat 541 00:30:42,490 --> 00:30:46,990 sama määrä kertoja, joka on kaksi. 542 00:30:46,990 --> 00:30:50,730 >> Joten meillä on neljä lauseita kukin toistettiin kaksi kertaa. 543 00:30:50,730 --> 00:30:53,590 Ja erityisesti, he ovat pyöreä. 544 00:30:53,590 --> 00:30:55,340 Ja on monia, monia tapoja toteuttaa 545 00:30:55,340 --> 00:30:57,520 kierros, joka voisi olla hauskaa tehdä. 546 00:30:57,520 --> 00:31:00,260 Olen tehnyt sen melko yksinkertainen tapa täällä, 547 00:31:00,260 --> 00:31:05,760 joka on vain construct-- linja Funktio ottaa luettelon musiikin arvojen 548 00:31:05,760 --> 00:31:10,390 ja muuntaa sen juokseva koostumus levittämällä että peräkkäinen koostumus 549 00:31:10,390 --> 00:31:13,000 operaattori. 550 00:31:13,000 --> 00:31:19,540 >> Ja sitten viivyttää eri osat tekemällä niistä alkavat levätä. 551 00:31:19,540 --> 00:31:22,770 Joten aloitan levätä kahdesta toimenpiteestä, ja sitten loput neljä toimenpidettä, 552 00:31:22,770 --> 00:31:26,160 ja sitten loput kuusi toimenpiteitä, ja sitten kierros 553 00:31:26,160 --> 00:31:32,290 toimii, kuten me kaikki tiedämme tämän laulun. 554 00:31:32,290 --> 00:31:37,180 Näemme kaksi merkintöjä tai muutoksia musiikin arvojen 555 00:31:37,180 --> 00:31:43,150 jotka sisältyvät tähän peräkkäisessä järjestely musiikin elementtejä. 556 00:31:43,150 --> 00:31:44,810 Meillä lisätä äänenvoimakkuutta. 557 00:31:44,810 --> 00:31:48,960 Tämä on toiminto käsinkirjoittaa musiikkia tiettyä tilavuutta. 558 00:31:48,960 --> 00:31:51,320 Tämä on hyvä esimerkki MIDI signaalin käynnissä 559 00:31:51,320 --> 00:31:57,510 0-127, seitsemän bittiä tietoja, joita voidaan suorittaa. 560 00:31:57,510 --> 00:32:00,650 >> Ja then-- näimme sen hyvin lyhyesti, mutta yleinen MIDI 561 00:32:00,650 --> 00:32:02,310 luettelo kaikista eri välineitä. 562 00:32:02,310 --> 00:32:04,450 Ja siellä ei ole paljon niitä. 563 00:32:04,450 --> 00:32:11,230 Jos käytät digitaalista ääntä työasema, kuten Ableton Liven tai Pro Tools, 564 00:32:11,230 --> 00:32:17,560 siellä uskomattoman laajemmin syntetisaattorit ja VST välineitä. 565 00:32:17,560 --> 00:32:21,510 Mutta MIDI standardi vain on muutamia, tai useita kymmeniä. 566 00:32:21,510 --> 00:32:22,799 Ja jotkut niistä ovat hauskoja. 567 00:32:22,799 --> 00:32:25,840 Ajattelin että olisi hauskaa, jos soitimme väline MIDI instrumentti 568 00:32:25,840 --> 00:32:30,550 helikopteri, ja sitten seuraava läpi pyöreä, 569 00:32:30,550 --> 00:32:37,980 teimme pad syntikka, ja sitten tämä korni johtaa kanttia syntetisaattori, 570 00:32:37,980 --> 00:32:44,240 ja sitten ääni tihkua, jotka ovat hieman epäselvä minun huono MIDI 571 00:32:44,240 --> 00:32:46,410 syntetisaattori, mutta ne OK. 572 00:32:46,410 --> 00:32:50,030 >> Ja sitten me näemme tämän let ja syntaksi Haskell, 573 00:32:50,030 --> 00:32:54,030 ja sitten me pelaamme kaikki nämä osat yhteen 574 00:32:54,030 --> 00:32:56,265 kanssa rinnakkain koostumuksen operaattori. 575 00:32:56,265 --> 00:33:00,260 576 00:33:00,260 --> 00:33:02,296 Ja voisimme ehkä näyttää joitakin tämän. 577 00:33:02,296 --> 00:33:07,674 578 00:33:07,674 --> 00:33:08,340 Tässä koodi. 579 00:33:08,340 --> 00:33:14,960 Ja voit nähdä C, ei halua olla paljon kurkun selvitys ja asetus 580 00:33:14,960 --> 00:33:19,760 pöytä koodi ennen voisi tehdä musiikkia näin. 581 00:33:19,760 --> 00:33:22,080 Tai muu ohjelmointi kieli, haluat luultavasti 582 00:33:22,080 --> 00:33:27,210 on vuorovaikutuksessa jonkinlainen kirjasto tai API ja asettaa kaiken ylös, 583 00:33:27,210 --> 00:33:28,725 ja sitten sinun täytyy siivota. 584 00:33:28,725 --> 00:33:33,810 Mutta täällä Haskell on mielestäni kerran saat roikkua sitä, uskomattoman 585 00:33:33,810 --> 00:33:35,770 luettavissa ja hyvin ilmeikäs. 586 00:33:35,770 --> 00:33:38,930 587 00:33:38,930 --> 00:33:43,240 Joten siellä on täytäntöönpano on Frere Jacques. 588 00:33:43,240 --> 00:33:43,740 Selvä. 589 00:33:43,740 --> 00:33:47,557 Nyt haluamme lisätä lyömäsoittimet, ja tämä on vähän Messier. 590 00:33:47,557 --> 00:33:49,015 Joten katsomaan dioja. 591 00:33:49,015 --> 00:33:56,880 592 00:33:56,880 --> 00:34:00,540 Joten iso idea on tehdä nippu luetteloita tai osia. 593 00:34:00,540 --> 00:34:04,140 Näillä rulla-koneissa, siellä olivat tyypillisesti noin ehkä kahdeksan 594 00:34:04,140 --> 00:34:08,670 10 rytmi tai lyömäsoittimet osia. 595 00:34:08,670 --> 00:34:10,159 Ja sitten käyttää joukko tekniikoita. 596 00:34:10,159 --> 00:34:14,889 Ja olemme puhuneet these-- käyttäen taittuu, suodattimet, lambda toiminnot, 597 00:34:14,889 --> 00:34:19,429 kartoitettu yli luettelot tuottaa arvoja joissakin alueella 1 R, R on 16, 598 00:34:19,429 --> 00:34:20,699 tai 32 vaiheet sekvensseri. 599 00:34:20,699 --> 00:34:23,810 600 00:34:23,810 --> 00:34:29,920 >> Ja sitten jos on arvo kyseisessä luettelossa kuten olemme kulkee sekvensseri, 601 00:34:29,920 --> 00:34:34,190 juoksee läpi yli ja yli, se syttyy että huomata, 602 00:34:34,190 --> 00:34:36,060 ja että näyte saa laukaista. 603 00:34:36,060 --> 00:34:42,810 604 00:34:42,810 --> 00:34:47,110 Tässä ovat kaikki eri outo tavoin Päädyin tuottaa muistiinpanoja. 605 00:34:47,110 --> 00:34:48,940 Kokeile sitä itse semi summa. 606 00:34:48,940 --> 00:34:50,360 Se tulee kuulostaa viileä. 607 00:34:50,360 --> 00:34:53,066 608 00:34:53,066 --> 00:34:54,690 Jos aika sallii, me läpi tämän. 609 00:34:54,690 --> 00:34:59,200 Mutta juuri nyt, kai meidän pitäisi demo, mitä meillä on. 610 00:34:59,200 --> 00:35:01,380 Toivotaan tämä menee OK. 611 00:35:01,380 --> 00:35:02,670 >> Joten tämä on GHCI. 612 00:35:02,670 --> 00:35:06,580 613 00:35:06,580 --> 00:35:09,121 Ja me ladata tiedoston Olen kutsunut song.lhs, 614 00:35:09,121 --> 00:35:10,620 joka on tiedosto minä vain näytin teille. 615 00:35:10,620 --> 00:35:11,470 OK, suuri. 616 00:35:11,470 --> 00:35:15,010 Kuten Connor sanoi aiemmin, se koottu, se kirjoittamasi tarkastetaan, 617 00:35:15,010 --> 00:35:18,380 jotta voin hengittää paljon helpompaa. 618 00:35:18,380 --> 00:35:20,010 Se ei tule räjäyttää minua. 619 00:35:20,010 --> 00:35:22,720 >> En halua näyttää sinulle jotain hyödyllistä. 620 00:35:22,720 --> 00:35:25,900 Voit nähdä, että moduuli ladataan kutsutaan 50. 621 00:35:25,900 --> 00:35:28,240 Voit selata, että moduuli. 622 00:35:28,240 --> 00:35:32,092 Ja tämä on niin mukava noin doing-- ehkä mitä 623 00:35:32,092 --> 00:35:34,550 teet Haskell ei ole nimeltään ohjelmistojen kehittäminen, 624 00:35:34,550 --> 00:35:36,980 mutta voit tehdä paljon hauskaa itse. 625 00:35:36,980 --> 00:35:42,410 Ja työnkulku on todella mukavaa kuin verrattuna paljon muita kieliä, 626 00:35:42,410 --> 00:35:45,872 koska näet todella luettavalla tavalla, mitä tapahtuu. 627 00:35:45,872 --> 00:35:47,830 Näemme siis, että meillä on kaikki näitä lauseita, jotka 628 00:35:47,830 --> 00:35:53,760 ovat luettelot musiikin kentillä, ja sitten me rakentaa näitä ylös jotain suurempaa, 629 00:35:53,760 --> 00:35:55,220 joka on musiikin laulu. 630 00:35:55,220 --> 00:35:58,450 Se on musikaali yksikkö. 631 00:35:58,450 --> 00:36:05,545 Ja sitten voimme pelata tämä kaikki jossa toiminto nimeltään toistaa musiikkia. 632 00:36:05,545 --> 00:36:09,040 Voit nähdä, että täällä. 633 00:36:09,040 --> 00:36:11,310 Joka on vain leikkiä. 634 00:36:11,310 --> 00:36:15,040 >> Haluan say-- etten puhu tämä dollarin merkki, joka on kaikkialla. 635 00:36:15,040 --> 00:36:17,980 Dollarin merkki on toinen infix operaattori. 636 00:36:17,980 --> 00:36:22,500 Mutta se on pienin ensisijainen tahansa toimijan, joka tehokkaasti 637 00:36:22,500 --> 00:36:24,960 tarkoittaa sitä, että kaiken vasemmalla dollarin merkki 638 00:36:24,960 --> 00:36:28,460 ja oikealle dollarin merkki, aiomme saada arvioida ennen sitä. 639 00:36:28,460 --> 00:36:31,430 Joten se on tavallaan kuin toinen tapa lisätä sulkuja. 640 00:36:31,430 --> 00:36:33,980 641 00:36:33,980 --> 00:36:36,220 >> CONNOR HARRIS: Se on pohjimmiltaan yhdistetty funktio. 642 00:36:36,220 --> 00:36:40,026 Ja se varmistaa, että et have-- jos sinulla on toimintoja molemmin puolin tai infix 643 00:36:40,026 --> 00:36:42,900 operaattorit kummallakin puolella, ne eivät liittää sen poikki ja antaa sinulle 644 00:36:42,900 --> 00:36:46,030 odottamattomia tuloksia. 645 00:36:46,030 --> 00:36:49,790 >> STEPHEN KREWSON: Joten meidän can-- käyttäen, että voimme kutsua. 646 00:36:49,790 --> 00:36:51,415 Ensinnäkin, me pelata ilman rumpuja. 647 00:36:51,415 --> 00:37:00,330 648 00:37:00,330 --> 00:37:03,170 Se on helikopteri, MIDI helikopteri. 649 00:37:03,170 --> 00:37:05,495 >> [Musiikkia] 650 00:37:05,495 --> 00:37:08,525 651 00:37:08,525 --> 00:37:09,525 On kanttia. 652 00:37:09,525 --> 00:37:24,520 653 00:37:24,520 --> 00:37:25,490 Ääni vuotaa. 654 00:37:25,490 --> 00:37:27,630 Ja voit todella mennä villi tämän. 655 00:37:27,630 --> 00:37:30,872 Otin melko yksinkertainen, koska tiesin ei pitäisi purra 656 00:37:30,872 --> 00:37:31,830 enemmän kuin voisin pureskella. 657 00:37:31,830 --> 00:37:36,460 Vain pitää se melko yksinkertainen näyttää keskeiset ajatukset. 658 00:37:36,460 --> 00:37:39,952 Mutta sitten olin kuin, olemme sai lisätä joitakin rumpuja tähän. 659 00:37:39,952 --> 00:37:41,910 Vain koska tämä on vähän käsittämätön, 660 00:37:41,910 --> 00:37:45,790 ja en käyttänyt nimi rummun osia, 661 00:37:45,790 --> 00:37:49,490 Olen kartoitettu them-- koska he osa että Lueteltujen luokka, 662 00:37:49,490 --> 00:37:51,500 Minä kartoitettu ne ints. 663 00:37:51,500 --> 00:37:53,120 Yksi on kuin bassorumpu. 664 00:37:53,120 --> 00:37:54,370 Zero on samoin. 665 00:37:54,370 --> 00:37:56,000 Seitsemän on korkea hattu. 666 00:37:56,000 --> 00:38:00,920 Ja alas täällä, missä toiminnot saada hieman enemmän satunnaisia, 667 00:38:00,920 --> 00:38:02,100 nämä ovat kuin conga rummut. 668 00:38:02,100 --> 00:38:08,360 >> Joten jos luulet about-- ehkä hauska tapa toteuttaa rumpukone 669 00:38:08,360 --> 00:38:12,830 on käyttää hyvin järjestelmällisesti kuvioita teidän bassorumpu. 670 00:38:12,830 --> 00:38:17,640 Niin esimerkiksi suodatukseen yli lista kaikella, antaa takaisin 671 00:38:17,640 --> 00:38:20,590 1, kun se otetaan moduuli 04. 672 00:38:20,590 --> 00:38:27,190 Niin saan 1, 5, 9, 13, 17-- joten tämä on ensimmäisellä vastatuuliosuudella jokaisen toimenpiteen. 673 00:38:27,190 --> 00:38:32,860 >> Ja sitten tämä on sama asia siirretään kahdesta vaiheesta. 674 00:38:32,860 --> 00:38:33,850 Joten se omituinen. 675 00:38:33,850 --> 00:38:37,480 Joten tämä olisi jotain korkea hattu. 676 00:38:37,480 --> 00:38:39,640 Ja sitten taas, tänne, se on vähän satunnainen, 677 00:38:39,640 --> 00:38:41,080 koska me teemme conga rummut. 678 00:38:41,080 --> 00:38:44,180 Ja minulla on joitakin maracas täällä, myös. 679 00:38:44,180 --> 00:38:50,280 >> Niin voisin kutsua pelata rumpukone, mutta se ikuisesti, 680 00:38:50,280 --> 00:38:53,700 ja se voi aloittaa tarttumalla ylös kaikki muisti minun järjestelmään. 681 00:38:53,700 --> 00:38:57,090 Joten Soitan tätä toimintoa toistaa musiikkia, joka kuten näemme, 682 00:38:57,090 --> 00:39:02,020 Käytä lyhennetty rinnakkain koostumus pelata pikku Frere Jacques laulu 683 00:39:02,020 --> 00:39:04,200 yhdessä tämän outo rumpukone. 684 00:39:04,200 --> 00:39:06,190 Joten katsomaan. 685 00:39:06,190 --> 00:39:10,920 Ja älä parantaa minun järjestely kaikkien rummun osat. 686 00:39:10,920 --> 00:39:13,375 Ei minun erikoisuus, mutta minä oli hauskaa tehdä sitä. 687 00:39:13,375 --> 00:39:17,678 688 00:39:17,678 --> 00:39:20,654 >> [Musiikkia] 689 00:39:20,654 --> 00:39:52,260 690 00:39:52,260 --> 00:39:56,980 >> Niin tietenkin, tämä on kaikki vähän ei niin hauskaa 691 00:39:56,980 --> 00:40:01,100 jos emme voi muuntaa sen jotta pisteet niin ehkä se 692 00:40:01,100 --> 00:40:04,650 voidaan tulkita jota ihmisen esiintyjä. 693 00:40:04,650 --> 00:40:06,535 Joten en suorita sitä täällä. 694 00:40:06,535 --> 00:40:07,910 Olen jo syntyy tiedostoja. 695 00:40:07,910 --> 00:40:10,280 Voit nähdä, että on olemassa dot LilyPond file-- ja tämä 696 00:40:10,280 --> 00:40:14,500 on minun segue yli Connor-- ja piste MIDI-tiedoston, 697 00:40:14,500 --> 00:40:18,610 ja piste PDF-tiedosto, joka on mitä LilyPond tuottaa ajan mittaan. 698 00:40:18,610 --> 00:40:23,770 >> Mutta nämä ovat ne skriptejä, ja minä vain ajaa heitä apua vaihtoehtoja. 699 00:40:23,770 --> 00:40:28,090 Jos saat nämä vauhtiin Euterpea, voit luoda MIDI-tiedoston. 700 00:40:28,090 --> 00:40:31,160 Ja sitten MIDI-tiedoston Tämän MIDI 2LY ohjelma, 701 00:40:31,160 --> 00:40:34,930 voit luoda Lily Lampi tiedosto, ja sitten 702 00:40:34,930 --> 00:40:37,974 voi tuottaa PDF pisteet. 703 00:40:37,974 --> 00:40:39,390 Ja meidän pitäisi katsoa tätä. 704 00:40:39,390 --> 00:40:52,599 705 00:40:52,599 --> 00:40:55,140 Joten Connor luultavasti näyttää miten voit merkitä tämän paremmin, 706 00:40:55,140 --> 00:41:02,570 mutta tämä on Frere Jacques kuin tuottamat minua Euterpea. 707 00:41:02,570 --> 00:41:07,300 Se on vain C. olisin tajunnut mitä hakata se on todella. 708 00:41:07,300 --> 00:41:11,090 Mutta se on valmisteilla miten teet sen kanssa. 709 00:41:11,090 --> 00:41:12,950 Katsotaanpa puhua enemmän LilyPond. 710 00:41:12,950 --> 00:41:15,780 >> CONNOR HARRIS: OK Katsotaanpa. 711 00:41:15,780 --> 00:41:19,480 712 00:41:19,480 --> 00:41:21,419 Oletko mainita Lue Olet Haskell? 713 00:41:21,419 --> 00:41:22,460 STEPHEN KREWSON: Ai niin. 714 00:41:22,460 --> 00:41:23,480 Tutustu Opi Voit Haskell. 715 00:41:23,480 --> 00:41:24,410 Se on resursseja. 716 00:41:24,410 --> 00:41:26,830 Niin aloin oppiminen, ja se on hienoa. 717 00:41:26,830 --> 00:41:27,580 Ei tyhmä oppiminen. 718 00:41:27,580 --> 00:41:28,829 >> CONNOR HARRIS: Joten se on verkossa. 719 00:41:28,829 --> 00:41:34,760 Joten kaveri nimeltä [äänetön] learnyouahaskell.com, ei välilyöntejä. 720 00:41:34,760 --> 00:41:37,065 Kielioppi on sairas. 721 00:41:37,065 --> 00:41:38,690 STEPHEN KREWSON: Se on kuvitettu, liian. 722 00:41:38,690 --> 00:41:39,440 CONNOR HARRIS: Mikä on LilyPond? 723 00:41:39,440 --> 00:41:42,480 Se on declarative ohjelma kieli musiikin ladonta. 724 00:41:42,480 --> 00:41:45,480 Joten declarative-- voit ajatella asioita, kuten HTML, 725 00:41:45,480 --> 00:41:50,900 jossa et ole saying-- HTML ei sanoa, kuinka selaimet pitäisi 726 00:41:50,900 --> 00:41:52,180 tehdä sivuja askel askeleelta. 727 00:41:52,180 --> 00:41:54,096 Se on vain sano tätä on sanallisesti 728 00:41:54,096 --> 00:41:56,100 mitä haluat sivun näyttää. 729 00:41:56,100 --> 00:41:59,310 >> Ja sitten se on myös ohjelma joka kokoaa tällä kielellä, 730 00:41:59,310 --> 00:42:02,300 tai se lukea sen ja sitten itse tekee ladonta sinulle, 731 00:42:02,300 --> 00:42:05,570 ja se sylkee nämä ihana näköinen PDF tulokset. 732 00:42:05,570 --> 00:42:08,250 Voit myös saada PNG-muodossa tai mitä tahansa. 733 00:42:08,250 --> 00:42:10,300 Hyvä tapa ajatella Tämän on vastaavasti 734 00:42:10,300 --> 00:42:16,620 että LaTeX on tavallaan kuin LillyPond, mutta vain tavallisia ladonta. 735 00:42:16,620 --> 00:42:20,360 Joten sen sijaan of-- se ei ole WYSIWYG, mitä näet 736 00:42:20,360 --> 00:42:22,960 On mitä saat, kuten vaikkapa Finaali on, tai Sibelius, 737 00:42:22,960 --> 00:42:27,430 tai Microsoft Word, jossa voit kirjoittaa reaaliaikainen ja luonnos asioita reaaliajassa 738 00:42:27,430 --> 00:42:31,340 ja nähdä muutokset välittömästi. 739 00:42:31,340 --> 00:42:32,140 >> Se on teksti perustuu. 740 00:42:32,140 --> 00:42:35,290 Sinun täytyy kääntää saanut käyttää erillistä ohjelmaa 741 00:42:35,290 --> 00:42:37,090 ja ulos PDF myöhemmin. 742 00:42:37,090 --> 00:42:43,320 Tämä on hieman vähemmän kätevä käyttää, jos olet 743 00:42:43,320 --> 00:42:46,520 yrittävät kirjoittaa suoraan osaksi pisteet ja olet 744 00:42:46,520 --> 00:42:48,620 yrittää säveltää tietokoneen. 745 00:42:48,620 --> 00:42:50,830 Mutta on paljon etuja sitä. 746 00:42:50,830 --> 00:42:56,110 Yksi, se näyttää paljon mukavampaa, koska LillyPond voi todella 747 00:42:56,110 --> 00:42:58,210 ottaa aikaa tehdä layout päätökset oikein, 748 00:42:58,210 --> 00:43:02,380 toisin kuin Sibelius tai Finale, joka on tehdä vaarantunut algoritmeja niin 749 00:43:02,380 --> 00:43:05,020 että ne voidaan näyttää asiat reaaliajassa. 750 00:43:05,020 --> 00:43:07,660 >> Joten miksi on LilyPond-- tietokonegrafiikka on kova. 751 00:43:07,660 --> 00:43:10,535 Jos teet mitään musiikkia ja haluat kirjoittaa pois tulokset, 752 00:43:10,535 --> 00:43:13,900 et halua kirjoittaa pois kaiken itse 753 00:43:13,900 --> 00:43:19,040 alkaen miten tehdä esikunnat ja miten tehdä lehtiöt. 754 00:43:19,040 --> 00:43:21,020 Se on hyvin vaikeaa. Se on ollut tehnyt ennen. 755 00:43:21,020 --> 00:43:22,170 Olet hieno. 756 00:43:22,170 --> 00:43:26,200 >> Jos haluat käyttää Finale tai Sibelius, tiedostomuotoja niitä asioita 757 00:43:26,200 --> 00:43:30,180 ovat hyvin monimutkaisia, ja et voi todella käyttää niitä ohjelmallisesti. 758 00:43:30,180 --> 00:43:35,020 Voit avata Sibeliuksen kanssa Finale ja mene Tiedosto, Vie PDF itse, 759 00:43:35,020 --> 00:43:37,600 mutta et voi oikeastaan soittaa että käsikirjoituksen. 760 00:43:37,600 --> 00:43:40,440 LillyPond, voit soittaa näistä skriptejä. 761 00:43:40,440 --> 00:43:44,397 Voit helposti kerrata LillyPond LaTeX. 762 00:43:44,397 --> 00:43:47,230 En ole niin paljon aikaa mennä näitä tekniikoita juuri nyt, 763 00:43:47,230 --> 00:43:48,321 mutta ne ovat olemassa. 764 00:43:48,321 --> 00:43:50,070 Jos haluat etsiä osaksi LillyPond kirja, 765 00:43:50,070 --> 00:43:53,760 se on ohjelma, joka tulee sinun LillyPond jakelu, 766 00:43:53,760 --> 00:43:57,030 ja se on varten iteroimalla LillyPond fragmentit osaksi LaTeX 767 00:43:57,030 --> 00:44:00,340 jos haluat tehdä jotain kuin iso musiikkitiede asiakirja 768 00:44:00,340 --> 00:44:02,289 esimerkkejä, esimerkiksi. 769 00:44:02,289 --> 00:44:04,580 Ja se on hyvä taito elämä jos teet mitään 770 00:44:04,580 --> 00:44:05,770 musiikkia, ei vain CS50. 771 00:44:05,770 --> 00:44:09,320 Olen käyttänyt LillyPond kaikille minun koostumus hankkeiden 772 00:44:09,320 --> 00:44:11,880 koska olin periaatteessa vanhempi lukiossa. 773 00:44:11,880 --> 00:44:13,455 >> Joten tässä on muutamia yksinkertaisia ​​esimerkkejä. 774 00:44:13,455 --> 00:44:17,490 775 00:44:17,490 --> 00:44:21,060 Tämä on pohjimmiltaan tyypillinen ja vaikeustaso 776 00:44:21,060 --> 00:44:23,481 että useimmat ihmiset puhuen he yrittävät 777 00:44:23,481 --> 00:44:24,980 käyttää LilyPond yksinkertaisiin hankkeisiin. 778 00:44:24,980 --> 00:44:29,519 Tämä ensimmäinen on alku jotta urkukoraali Bachin. 779 00:44:29,519 --> 00:44:31,810 Tämä pohja yksi on ote yhdeltä minun omia teoksia 780 00:44:31,810 --> 00:44:34,650 ja se on vain siellä näyttää sinulle asioita, kuten [mahdoton kuulla] 781 00:44:34,650 --> 00:44:38,550 laskemisesta useita rivejä samassa henkilökunta, kuinka lyyrinen undersetting toimii. 782 00:44:38,550 --> 00:44:41,350 783 00:44:41,350 --> 00:44:46,110 Lyyrinen aluskatteet ovat asia, joka on hyvin helppokäyttöinen LilyPond varten kuoromusiikin. 784 00:44:46,110 --> 00:44:48,814 >> Ja niin sitten on joitakin enemmän monimutkainen esimerkkejä tästä. 785 00:44:48,814 --> 00:44:50,980 Kaikki nämä ovat tehneet LilyPond ja he toteutettavissa. 786 00:44:50,980 --> 00:44:55,280 Tämä ensimmäinen ote on peräisin [Äänetön] mukaan [kuultavissa]. 787 00:44:55,280 --> 00:44:58,860 Ja tämä [äänetön] alkaen pala yksin basso 788 00:44:58,860 --> 00:45:03,550 huilu [kuulumaton], joka on longtime-- joka 789 00:45:03,550 --> 00:45:07,101 oli pitkäaikainen jäsen musiikki osasto täällä, luulen. 790 00:45:07,101 --> 00:45:08,600 En ole varma missä hän on mennyt pois. 791 00:45:08,600 --> 00:45:12,410 Mutta hän oli neuvonantaja Harvardin Säveltäjät ry pitkään. 792 00:45:12,410 --> 00:45:13,530 Ihana mies. 793 00:45:13,530 --> 00:45:16,920 Ja hän kirjoittaa musiikkia, joka on hyvin monimutkainen merkintä että LillyPond 794 00:45:16,920 --> 00:45:20,500 voi kuitenkin käsitellä erittäin hienosti. 795 00:45:20,500 --> 00:45:26,030 >> Joten vain antaa sinulle tunteen mitä tämä asia kyvyistä are-- niin 796 00:45:26,030 --> 00:45:28,960 sisäosat LillyPond ovat erittäin monimutkaisia. 797 00:45:28,960 --> 00:45:31,060 Ja voit käyttää sitä pitkään, mukaan lukien 798 00:45:31,060 --> 00:45:32,520 joidenkin melko monimutkainen asioita, ilman todella 799 00:45:32,520 --> 00:45:34,060 ottaa tietää paljon niistä. 800 00:45:34,060 --> 00:45:38,720 Mutta perusajatus on, että alin taso, atomit LillyPonds 801 00:45:38,720 --> 00:45:39,970 ovat liitetiedoissa. 802 00:45:39,970 --> 00:45:42,761 Liitetiedot sisältävät yhteydessä kutsutaan ääniä. 803 00:45:42,761 --> 00:45:44,510 Joten ääni yhteydessä pohjimmiltaan vastaa 804 00:45:44,510 --> 00:45:47,410 että riviäkään polyfonia. 805 00:45:47,410 --> 00:45:49,410 Ja sitten yhteydessä voi olla sisälsi hierarkkisesti 806 00:45:49,410 --> 00:45:53,590 korkeamman tason niitä, jotka edustavat esikunnat on pisteet 807 00:45:53,590 --> 00:45:56,750 tai suuremmiksi kokonaisuuksiksi kuten piano esikunnat tai kuoro esikunnat, 808 00:45:56,750 --> 00:45:58,990 ja sitten lopulta koko pisteet yhteyksissä. 809 00:45:58,990 --> 00:46:02,260 Ja voit itse käsittää Useiden tulokset kirjan. 810 00:46:02,260 --> 00:46:05,770 >> Ja kaikissa tilanteissa on lukumäärä liitteenä kaivertajat. 811 00:46:05,770 --> 00:46:08,340 Jos katsot läpi sisällön yhteydessä 812 00:46:08,340 --> 00:46:14,410 ja tulostaa tietty symboli tai tietyn luokan symbolien tarpeen. 813 00:46:14,410 --> 00:46:17,840 Joten jokainen ääni yhteydessä, siellä [äänetön] muistiinpanoja 814 00:46:17,840 --> 00:46:24,270 kaivertaja että on pohjimmiltaan toiminto tai objekti, joka kirjoittaa pois kaikki setelin 815 00:46:24,270 --> 00:46:26,290 päitä oikeaa osaa sivun. 816 00:46:26,290 --> 00:46:29,510 Sitten on halkeama kaivertajan, joka kirjoittaa ulos Halkioiden henkilökuntaan. 817 00:46:29,510 --> 00:46:31,517 Sitten on metronomi Mark kaivertaja että 818 00:46:31,517 --> 00:46:33,100 kirjoittaa pois metronomi tavaramerkit pisteet. 819 00:46:33,100 --> 00:46:36,410 Ja kaikki nämä sopivat melko pitkälle hierarkia. 820 00:46:36,410 --> 00:46:39,500 Ja se on hyvin, hyvin, hyvin muokattavissa, johon tarvitset 821 00:46:39,500 --> 00:46:42,880 jos haluat saada tuollaista. 822 00:46:42,880 --> 00:46:45,730 >> Joten kaikki yhteyksissä on paljon erilaisia ​​ominaisuuksia 823 00:46:45,730 --> 00:46:52,410 että voit muokata kaiken alkaen väli eri fontin 824 00:46:52,410 --> 00:46:54,942 valinta koot asioita. 825 00:46:54,942 --> 00:46:56,900 Jos haluat tehdä vielä enemmän monimutkaisia ​​asioita, 826 00:46:56,900 --> 00:46:59,210 siellä upotettu skriptikieli. 827 00:46:59,210 --> 00:47:01,820 He käyttävät järjestelmää, joka on murre LISP. 828 00:47:01,820 --> 00:47:04,960 Nämä luultavasti eivät merkitse mitään sinulle. 829 00:47:04,960 --> 00:47:06,900 Mutta pohjimmiltaan, järjestelmä toinen toiminnallinen 830 00:47:06,900 --> 00:47:09,500 ohjelmointikieli, enemmän tai vähemmän. 831 00:47:09,500 --> 00:47:10,800 >> STEPHEN KREWSON: oheistuote. 832 00:47:10,800 --> 00:47:12,690 >> CONNOR HARRIS: Joo. 833 00:47:12,690 --> 00:47:15,390 Se on hyvä tie-in, oletan. 834 00:47:15,390 --> 00:47:20,150 Ja sitä käytetään opetuskielenä, todella, alas Mass Ave. MIT. 835 00:47:20,150 --> 00:47:26,590 Ja se on erittäin kätevä LillyPond eri teknisistä syistä. 836 00:47:26,590 --> 00:47:30,317 >> Joten jos haluat tehdä yksinkertaisia hienosäädön riippuvainen conditionals, 837 00:47:30,317 --> 00:47:32,900 sillä example-- olemassa tiettyjä kunto pisteet, joka on täytetty, 838 00:47:32,900 --> 00:47:36,495 tehdä muutoksia asettelun tai whatnot-- sitten 839 00:47:36,495 --> 00:47:37,620 nämä palvelut ovat siellä. 840 00:47:37,620 --> 00:47:38,667 He monimutkainen. 841 00:47:38,667 --> 00:47:40,250 Joten tässä on melko yksinkertainen mallikoodi. 842 00:47:40,250 --> 00:47:43,810 Se on viisi riviä. 843 00:47:43,810 --> 00:47:46,120 Periaatteessa olen määritellään kaksi esikunnat. 844 00:47:46,120 --> 00:47:46,904 Se on 3/4. 845 00:47:46,904 --> 00:47:48,695 Ensimmäinen henkilökunta on liitteenä tempo merkki, 846 00:47:48,695 --> 00:47:51,110 mutta se on todella menossa mennä koko pisteet, 847 00:47:51,110 --> 00:47:54,960 koska tempo tavaramerkit ovat pelin tasoissa. 848 00:47:54,960 --> 00:47:59,044 Metronomi merkki kaivertaja kiinnitetään pisteet yhteydessä. 849 00:47:59,044 --> 00:48:01,460 On olemassa erilaisia ​​avaimia, koska [äänetön] kaivertaja 850 00:48:01,460 --> 00:48:02,710 kiinnitetään esikunnat. 851 00:48:02,710 --> 00:48:04,441 Voit itse tehdä on. 852 00:48:04,441 --> 00:48:06,190 Näyte Kirjoitin on todella C-duuri, 853 00:48:06,190 --> 00:48:07,990 mutta se on vain osoittaa voit olla 854 00:48:07,990 --> 00:48:09,570 eri avaimet eri esikunnat. 855 00:48:09,570 --> 00:48:15,710 Ja Syntaksi on kirjoitat Huomaa nimet E, F, G, riippumatta. 856 00:48:15,710 --> 00:48:18,910 Jos haluat tehdä etumerkkiä, te pääte on tai ES. 857 00:48:18,910 --> 00:48:22,640 Tämä on kohteesta Dutch musiikkitieteellistä yleissopimukset. 858 00:48:22,640 --> 00:48:28,290 >> Ja tehdä oktaavin hyppyjä, sinun on käytettävä Näiden asteikkomerkkejä, pilkku tai heittomerkki. 859 00:48:28,290 --> 00:48:30,580 Suhteellinen tarkoittaa vain mitä sinulla on huomata, 860 00:48:30,580 --> 00:48:34,080 se automaattisesti plaec vuonna oktaavi lähinnä edelliseen. 861 00:48:34,080 --> 00:48:37,624 Ja jos haluat hypätä yli fifth-- sanoa viidesosa tai more-- 862 00:48:37,624 --> 00:48:39,165 sitten sinun täytyy käyttää [kuultavissa]. 863 00:48:39,165 --> 00:48:42,580 Mutta muuten, sinun ei tarvitse määrittää oktaavin jokaisen nuotin. 864 00:48:42,580 --> 00:48:46,130 >> Ja suhteellisen C, prime, ja C, sinun vain määrittää keski-C 865 00:48:46,130 --> 00:48:48,630 ja pohja C, varsinkin ensimmäiset tahdit. 866 00:48:48,630 --> 00:48:55,020 Sitten on nämä esikunnat, jotka järjestävät nämä kaksi ääntä tai näytteitä musiikin, 867 00:48:55,020 --> 00:48:56,730 ja olet pisteet. 868 00:48:56,730 --> 00:48:58,440 Ja että näyttää tältä. 869 00:48:58,440 --> 00:49:01,780 870 00:49:01,780 --> 00:49:05,380 >> Jos haluat ottaa aikaa kopioida että näyte LillyPond 871 00:49:05,380 --> 00:49:07,530 koodi edellisestä liukua alas täällä, ja te 872 00:49:07,530 --> 00:49:09,030 voi kirjoittaa sitä LillyPond itse. 873 00:49:09,030 --> 00:49:11,280 Tiedän, että meillä on jotain joka näyttää paljon kuin tämä. 874 00:49:11,280 --> 00:49:17,236 875 00:49:17,236 --> 00:49:19,610 Joten on toinen tekniikka nimeltään Music XML ylläpidetään 876 00:49:19,610 --> 00:49:22,030 mukaan täysin eri ihmiset. 877 00:49:22,030 --> 00:49:28,150 XML on sanallista tietoa structure-- I ei pitäisi sanoa tietoja structure-- sanoa 878 00:49:28,150 --> 00:49:29,580 metafora kartta tavallaan. 879 00:49:29,580 --> 00:49:33,800 Ja se on suunniteltu pitämään hierarkkinen tietojen hyvin. 880 00:49:33,800 --> 00:49:37,050 HTML, esimerkiksi, on eräänlainen XML. 881 00:49:37,050 --> 00:49:41,090 Ja voit kertoa XML koska ne oli kaikki kulmasulkeiden ja kulma 882 00:49:41,090 --> 00:49:44,700 kiinnike slash merkit että Näytä tietokentät. 883 00:49:44,700 --> 00:49:47,390 >> Minulla ei ole koodia Esimerkiksi Music XML. 884 00:49:47,390 --> 00:49:50,450 Voit löytää sen itse. 885 00:49:50,450 --> 00:49:53,735 Pohjimmiltaan, syy kannattaa käyttää XML välivaiheessa 886 00:49:53,735 --> 00:49:55,980 on ensinnäkin, se on Interchange Format 887 00:49:55,980 --> 00:50:02,301 sillä pohjimmiltaan every-- minun ei pitäisi sanoa jokainen, mutta paljon erilaisia ​​pisteet 888 00:50:02,301 --> 00:50:02,800 kirjailijoita. 889 00:50:02,800 --> 00:50:04,966 Joten jos kirjoitat Musiikki XML, ei vain voi LillyPond 890 00:50:04,966 --> 00:50:08,080 lukea sen avulla tämän auxilary ohjelma nimeltä Music XML LY, 891 00:50:08,080 --> 00:50:11,360 mutta myös Finale voi lukea se, Sibelius voi lukea sitä. 892 00:50:11,360 --> 00:50:14,770 Riippuen siitä, miten sisäinen objekti hierarkia toimii edustavat musiikin, 893 00:50:14,770 --> 00:50:18,820 se saattaa olla helpompi kirjoittaa pois Music XML kuin LillyPond 894 00:50:18,820 --> 00:50:22,410 ja vain luottaa Musiikki XML ja LY tehdä muuntaminen. 895 00:50:22,410 --> 00:50:24,282 >> En usko, että [äänetön] on Music XML. 896 00:50:24,282 --> 00:50:25,490 STEPHEN KREWSON: ei. 897 00:50:25,490 --> 00:50:26,340 Joku on työn alla, vaikka. 898 00:50:26,340 --> 00:50:27,090 >> CONNOR HARRIS: OK. 899 00:50:27,090 --> 00:50:31,040 Euterpea ei ole Musiikki XML toiminto vielä. 900 00:50:31,040 --> 00:50:35,340 Jos haluat opinnäytetyö idea, ehkä saada yhteyttä kaverit 901 00:50:35,340 --> 00:50:38,620 että Stephen tietää, ja he voisivat käyttää apuasi. 902 00:50:38,620 --> 00:50:40,992 >> STEPHEN KREWSON: Haluaisin että. 903 00:50:40,992 --> 00:50:43,450 CONNOR HARRIS: Lisäksi, periaatteessa, joka ohjelmointikielet 904 00:50:43,450 --> 00:50:46,610 se on arvoinen suola jo on XML kirjasto, 905 00:50:46,610 --> 00:50:51,030 joten voit sisäisesti muuntaa kaikki musiikin johonkin esine 906 00:50:51,030 --> 00:50:54,120 että XML kirjasto voi kirjoittaa että vaatisi vähemmän 907 00:50:54,120 --> 00:50:57,470 muutokset sisäistä rakennetta jostain musiikki esineet sinua 908 00:50:57,470 --> 00:51:00,310 halua kirjoittaa kuin kirjoittamisesta suoraan LillyPond olisi. 909 00:51:00,310 --> 00:51:04,380 Sitten vain tulostaa sen XML kanssa XML kirjastot kieli, 910 00:51:04,380 --> 00:51:07,260 joka takaa, että se on syntaktisesti oikein ja kaikki, 911 00:51:07,260 --> 00:51:08,720 ja sitten muuntaa sen LillyPond. 912 00:51:08,720 --> 00:51:11,060 Joten tekniikka kannattaa tutkia jos teet jotain 913 00:51:11,060 --> 00:51:11,650 kuten tämä. 914 00:51:11,650 --> 00:51:14,490 915 00:51:14,490 --> 00:51:16,370 >> [Äänetön], toinen auxilarry tekniikkaa. 916 00:51:16,370 --> 00:51:21,700 Tämä on pohjimmiltaan Tech Works tai Tech Studio LillyPond. 917 00:51:21,700 --> 00:51:25,380 Joten se tarjoaa apua syntaksi, malleja 918 00:51:25,380 --> 00:51:28,770 eri yhteisten yhdistelmiä välineitä. 919 00:51:28,770 --> 00:51:32,780 Se mahdollistaa jaetun ruudun katselu niin voit saada koodin yhdessä ikkunassa 920 00:51:32,780 --> 00:51:37,350 ja PDF toiseen ikkunaan ja klikkaa paikkoja PDF 921 00:51:37,350 --> 00:51:40,650 hypätä asiaa paikkoja lähdekoodia. 922 00:51:40,650 --> 00:51:45,330 Tämä on enemmän hyötyä, jos olet todella kirjallisesti LillyPond tiedostot itse 923 00:51:45,330 --> 00:51:47,400 kuin jos olet tuottavan ne ohjelmallisesti. 924 00:51:47,400 --> 00:51:51,230 Mutta jälleen kerran, se on jotain hyödyllistä saada. 925 00:51:51,230 --> 00:51:51,970 >> Suuri. 926 00:51:51,970 --> 00:51:55,860 Toinen resources-- Otan vain käydä läpi tätä hyvin nopeasti. 927 00:51:55,860 --> 00:52:01,270 LillyPond manuals-- LillyPond on erinomainen asiakirjat verkkosivuillaan. 928 00:52:01,270 --> 00:52:02,270 Heillä on opetusohjelma. 929 00:52:02,270 --> 00:52:03,478 Heillä on syntaksin viite. 930 00:52:03,478 --> 00:52:07,010 Heillä on satoja katkelmia eri pieniä asioita 931 00:52:07,010 --> 00:52:09,930 yo ehkä tehdä osoitettava eri ominaisuuksia. 932 00:52:09,930 --> 00:52:12,250 Jos haluat käyttää skriptikieli 933 00:52:12,250 --> 00:52:14,740 tai tehdä laajempi mukautukset, sitten on 934 00:52:14,740 --> 00:52:16,730 sisäosat viite tuohon URL. 935 00:52:16,730 --> 00:52:21,950 Jos haluat käyttää musiikki XML, siellä että URL, musicxml.com/tutorial. 936 00:52:21,950 --> 00:52:27,960 >> Ja sitten jos sinun täytyy oppia järjestelmään koska te todella haluavat käyttää 937 00:52:27,960 --> 00:52:30,960 Scripting tilat LillyPond, sitten on [äänetön] nimeltään 938 00:52:30,960 --> 00:52:32,918 Strukturoidut Tulkinta Tietokoneohjelmien, 939 00:52:32,918 --> 00:52:35,820 joka ei ole vain toinen suurin CS oppikirja koskaan written-- 940 00:52:35,820 --> 00:52:39,770 löytää minulle jälkeenpäin, jos haluat tietää mielestäni suurin yksi is-- 941 00:52:39,770 --> 00:52:43,580 mutta se on myös erittäin hyvä johdatus kielen oikea. 942 00:52:43,580 --> 00:52:46,630 Et tarvitse enempää kuin muutaman ensimmäisen kohdat. 943 00:52:46,630 --> 00:52:47,827 >> Ja se on siinä. 944 00:52:47,827 --> 00:52:48,410 Kysymyksiä? 945 00:52:48,410 --> 00:52:54,068 946 00:52:54,068 --> 00:52:57,972 >> Opiskelija: Mistä voin ladata sinun syntyy Frere Jacques 947 00:52:57,972 --> 00:53:01,050 joten voin laittaa sen iPodiin? 948 00:53:01,050 --> 00:53:07,574 >> STEPHEN KREWSON: No, voit kirjoittaa ulos joitakin wav tiedosto Euterpea. 949 00:53:07,574 --> 00:53:08,490 Ja sinulla on koodi. 950 00:53:08,490 --> 00:53:10,000 Se GitHub. 951 00:53:10,000 --> 00:53:15,590 Tee oma muunnelmia Frere Jacques mukaan CS50 pesää mieli. 952 00:53:15,590 --> 00:53:17,095 Se olisi hienoa. 953 00:53:17,095 --> 00:53:18,220 CONNOR HARRIS: Kukaan muu? 954 00:53:18,220 --> 00:53:20,261 STEPHEN KREWSON: Tarvitsemme parempi bassorumpu, liian. 955 00:53:20,261 --> 00:53:21,935 Se on todella huono. 956 00:53:21,935 --> 00:53:26,565 >> Opiskelija: Euterpea ei ole pelkästään koostumus puolella, mutta signal-- 957 00:53:26,565 --> 00:53:27,440 STEPHEN KREWSON: Kyllä. 958 00:53:27,440 --> 00:53:30,100 Itse työ I teki Euterpea kun 959 00:53:30,100 --> 00:53:33,450 otti this-- siellä jatko kurssi Yalen että 960 00:53:33,450 --> 00:53:35,900 käyttää it-- oli äänen synteesi. 961 00:53:35,900 --> 00:53:39,810 Joten siellä on todella mukava tapa käyttää nuolet 962 00:53:39,810 --> 00:53:46,150 ja jotkut merkintä näimme säveltäminen yhdessä signaalin toimintoja. 963 00:53:46,150 --> 00:53:50,610 Erityisesti basso useimpien niistä on vain yksinkertainen siniaalto. 964 00:53:50,610 --> 00:53:54,240 Mutta jos alat kirjoittaa ne in outo ohjelmallinen tavoin, 965 00:53:54,240 --> 00:54:00,010 voit saada hullu ääni vaikutuksia, kuten outo porrastetusti. 966 00:54:00,010 --> 00:54:04,640 Voit luoda erittäin hiekkainen kuulostaa paljon modulaatio. 967 00:54:04,640 --> 00:54:07,730 >> Tein hankkeen rakeinen synteesi, joka on 968 00:54:07,730 --> 00:54:12,290 jossain välissä FM ja näytteenottoa. 969 00:54:12,290 --> 00:54:15,230 Otat hyvin pieni, vähän näytteitä, ja sitten 970 00:54:15,230 --> 00:54:20,440 yhdistää ne jonkinlainen modulaattori ja rakentaa rikkaampi ääni. 971 00:54:20,440 --> 00:54:24,900 Teimme myös fyysinen mallinnus, joten yrittää ajatella fysiikan 972 00:54:24,900 --> 00:54:29,410 ja psykoakustiikkaa on jotain trumpetti, ja miettiä, miten 973 00:54:29,410 --> 00:54:32,320 ääni pomppii pois kelloa trumpetti 974 00:54:32,320 --> 00:54:35,200 ja akustiikkaa huone ja mallinnus 975 00:54:35,200 --> 00:54:40,195 että perus oskillaattorit. 976 00:54:40,195 --> 00:54:47,690 977 00:54:47,690 --> 00:54:48,940 CONNOR HARRIS: Kiitos paljon. 978 00:54:48,940 --> 00:54:50,140 Kiitos, että tulit. 979 00:54:50,140 --> 00:54:52,400 Ja olen aina valmis ottaa kysymyksiin 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: Joo. stephen.krewson@yale.edu. 982 00:54:57,020 --> 00:54:58,810 983 00:54:58,810 --> 00:55:00,360 Viileä. 984 00:55:00,360 --> 00:55:01,667