1 00:00:00,000 --> 00:00:05,180 2 00:00:05,180 --> 00:00:05,930 코너 해리스 : 안녕하세요. 3 00:00:05,930 --> 00:00:06,820 나는 코너 해리스입니다. 4 00:00:06,820 --> 00:00:09,729 나는 하버드 CS50의 CA입니다. 5 00:00:09,729 --> 00:00:11,270 스티븐 KREWSON : 나는 스티븐 Krewson입니다. 6 00:00:11,270 --> 00:00:12,582 나는 예일대에서 CS50을위한 TF 해요. 7 00:00:12,582 --> 00:00:15,790 코너 해리스 : 그리고 우리가 이야기하는거야 일부 기술에 대한 당신은 수도 8 00:00:15,790 --> 00:00:18,880 당신이 관심이 있다면 사용하려면 최종 프로젝트를하고 또는 정말 9 00:00:18,880 --> 00:00:20,920 음악과 함께 아무것도. 10 00:00:20,920 --> 00:00:24,400 우리는 처음에 집중 될거야 하스켈라는 프로그래밍 언어. 11 00:00:24,400 --> 00:00:26,280 이 기능의 언어이므로 패러다임 12 00:00:26,280 --> 00:00:29,620 C 또는 PHP는 매우 다르다 또는 다른 명령형 언어 13 00:00:29,620 --> 00:00:33,450 것을 당신은 이미 사용하고, 특히 한 하스켈 작성된 라이브러리에 14 00:00:33,450 --> 00:00:40,240 사람들을 도울 수있는 Euterpea라고 기능적으로 음악을 쓰기와, 15 00:00:40,240 --> 00:00:40,780 원래. 16 00:00:40,780 --> 00:00:43,400 그리고 스티븐 당신을 안내합니다 그 좋은 예를 통해. 17 00:00:43,400 --> 00:00:46,423 >> 이 후, 나는 당신을 소개합니다 LillyPond라는 것을, 어떤 18 00:00:46,423 --> 00:00:48,370 조판 음악에 대한 기술입니다. 19 00:00:48,370 --> 00:00:50,830 그것은 일종의 유액처럼 음악에 대한 당신의있는 경우 20 00:00:50,830 --> 00:00:57,530 수학 수업 라텍스를 사용하고 또는 다른 P 세트 클래스 또는 무엇을해야합니다. 21 00:00:57,530 --> 00:01:00,440 그리고 나는 다시, 당신을 줄 것이다, 그 중 몇 가지 간단한 예 22 00:01:00,440 --> 00:01:03,640 그리고 일반적으로 당신을 가리 킵니다 더 좋은 자원의 방향. 23 00:01:03,640 --> 00:01:04,319 >> 스티븐 KREWSON :에 또한, 우리는 그것을 생각 24 00:01:04,319 --> 00:01:06,720 설정하기 멋진 것 힌트 조금 25 00:01:06,720 --> 00:01:10,780 사이의 파이프 라인을 향해 Euterpea 생성 MIDI 파일 26 00:01:10,780 --> 00:01:13,910 LillyPond에, 그래서 우리는 제공 스크립트에 대한 몇 가지 명령 27 00:01:13,910 --> 00:01:16,310 것을 그렇게 LillyPond 제공 28 00:01:16,310 --> 00:01:19,160 단지 그것을 오픈 소스를 유지하는 가는 파이프 라인을 얻을. 29 00:01:19,160 --> 00:01:20,910 코너 해리스 : 다시, 우리가 강조해야 30 00:01:20,910 --> 00:01:23,100 이 두 가지 기술, 당신 함께 사용할 필요가 없습니다. 31 00:01:23,100 --> 00:01:25,370 그들은 작동하도록 설계하지 않을 함께,하지만 그들은 매우 잘 수행. 32 00:01:25,370 --> 00:01:26,362 >> 스티븐 KREWSON : 오른쪽. 33 00:01:26,362 --> 00:01:30,116 전부 무료입니다. 34 00:01:30,116 --> 00:01:32,240 코너 해리스 : 그래서 감사의 말은, 그냥 읽기. 35 00:01:32,240 --> 00:01:33,406 스티븐 KREWSON : 정식으로 지적했다. 36 00:01:33,406 --> 00:01:36,360 그 사람에게 감사합니다. 37 00:01:36,360 --> 00:01:39,180 이것은 그냥 순간에 남아 있습니다. 38 00:01:39,180 --> 00:01:41,560 설치 프로세스 조금 까다 롭습니다. 39 00:01:41,560 --> 00:01:45,420 우리는 GitHub의 날을 읽고 당신은 좀 걸릴 수있다. 40 00:01:45,420 --> 00:01:47,840 당신은 질문이있는 경우에는 그냥 나에게 이메일을 보내. 41 00:01:47,840 --> 00:01:52,829 그러나 우리는 가정하에이 실행하겠습니다 이 것이 모두를 위해 노력하고 있습니다. 42 00:01:52,829 --> 00:01:55,620 코너 해리스 : 그리고 경우에 당신은 할 수 없습니다 LillyPond는, 더 큰 거래를 작동하지 얻을. 43 00:01:55,620 --> 00:02:00,139 더 라이브 편집이 없다는 것을 적어도 내 말에 포함됩니다. 44 00:02:00,139 --> 00:02:02,930 스티븐 KREWSON : 하스켈과 LillyPond 모두 설치를해야한다. 45 00:02:02,930 --> 00:02:08,497 Euterpea는로 다운로드 패키지, 등등 등등. 46 00:02:08,497 --> 00:02:10,080 그래서 우리는 컴퓨터 음악에 대해 얘기하고. 47 00:02:10,080 --> 00:02:12,990 그리고 이것은 단지이다 매우 50,000 피트보기. 48 00:02:12,990 --> 00:02:15,700 그것의 몇 가지 다른 측면이있다. 49 00:02:15,700 --> 00:02:18,120 그리고이 거친이며 몇 가지 세부 사항을 모호하게하는 것. 50 00:02:18,120 --> 00:02:22,090 그러나 우리는 뭔가 생각할 수있는 알고리즘 구성 등, 51 00:02:22,090 --> 00:02:24,920 알고리즘을 사용하여, 생성하기 위해, 코드를 사용하여 52 00:02:24,920 --> 00:02:30,280 어떤 종류의 동행입니다 아마 자기 유사성 노트, 아니면 노트의 순서 53 00:02:30,280 --> 00:02:33,330 몇 가지 제약 조건 하에서. 54 00:02:33,330 --> 00:02:35,350 그리고 사람들은 될 수 수행 또는 해석 55 00:02:35,350 --> 00:02:38,390 아날로그 악기 또는 그런 아무것도. 56 00:02:38,390 --> 00:02:42,010 그러나 조성은 알고리즘 다. 57 00:02:42,010 --> 00:02:45,120 >> 그러나 물론의, 어쩌면 지역 컴퓨터 음악 또는 디지털 음악 58 00:02:45,120 --> 00:02:48,870 우리는 디지털이다 더 잘 알고 사운드 합성 또는 디지털 샘플링 59 00:02:48,870 --> 00:02:51,160 디지털 녹음. 60 00:02:51,160 --> 00:02:55,650 디지털 기기의 많은입니다 디지털 샘플링을 통해 수행. 61 00:02:55,650 --> 00:03:00,110 사실, 우리는 이들 중 하나를 사용하여 수 있습니다 이후 사운드 폰트 라이브러리의 형태. 62 00:03:00,110 --> 00:03:02,850 >> 뿐만 아니라 뭔가라고 나온 디지털 합성 63 00:03:02,850 --> 00:03:08,650 70 년대 후반과에 '의와 80 년대 스탠포드에서 야마하와 존 Chowning 64 00:03:08,650 --> 00:03:11,990 FM 합성을 수행하거나 주파수 변조 합성, 65 00:03:11,990 --> 00:03:15,100 어디 캐리어를했다 신호 및 변조 신호 66 00:03:15,100 --> 00:03:18,270 모두 오디오 스펙트럼. 67 00:03:18,270 --> 00:03:22,570 그러나 우리는에 집중하는지 오늘은, MIDI라는 뭔가 68 00:03:22,570 --> 00:03:25,040 그리고 물론, 알고리즘 조​​성물. 69 00:03:25,040 --> 00:03:30,940 >> 우리는 악기를 만들려고하지만,하지 않을 우리는 대신에 어떤 음악을 만들려고하고, 70 00:03:30,940 --> 00:03:33,940 그리고 그 해석 얻을 것이다 일부 악기에 의한 71 00:03:33,940 --> 00:03:38,300 도 준수 일반 MIDI 표준. 72 00:03:38,300 --> 00:03:40,830 그래서 미디은 무엇인가? 73 00:03:40,830 --> 00:03:45,550 나는, 너무 깊이 들어갈 않을거야 그러나 MIDI 데이터 전송 프로토콜이다. 74 00:03:45,550 --> 00:03:49,250 그것은에서 가이드의 일종이다 다른 기업과 산업 75 00:03:49,250 --> 00:03:52,250 소리 나 패치를 주관. 76 00:03:52,250 --> 00:03:54,170 그래서 우리는 그것을 볼 수 있습니다 MIDI 표준이있다 77 00:03:54,170 --> 00:03:57,500 모든 다른 타악기를위한 사운드 및 MIDI 권장 78 00:03:57,500 --> 00:04:01,360 신디사이저의 모든 다른 종류의 또는 모든 다른 종류의 악기 79 00:04:01,360 --> 00:04:03,650 오케스트라의 그룹은 말한다. 80 00:04:03,650 --> 00:04:08,916 >> 당신은 아마에 익숙 0에서 127 MIDI 메시지. 81 00:04:08,916 --> 00:04:12,920 MIDI 신호는 전형적 나타내는 하나의 비트 82 00:04:12,920 --> 00:04:16,130 그것은 데이터 또는 여부 상태 패킷은 다음 거기 83 00:04:16,130 --> 00:04:18,589 신호의 일곱 비트. 84 00:04:18,589 --> 00:04:21,430 그리고이 제어 할 수 있습니다 볼륨에서 모든 85 00:04:21,430 --> 00:04:25,330 행동이나 압력 특정 키에 86 00:04:25,330 --> 00:04:29,400 당신은 MIDI로 수행하는 경우 컨트롤러뿐만 아니라, 물론, 87 00:04:29,400 --> 00:04:31,250 노트. 88 00:04:31,250 --> 00:04:33,450 그리고 물론, 미디있다 매우 유용 89 00:04:33,450 --> 00:04:37,550 그것은 와이어 할 수있는 방법이기 때문에 함께 또는 데이지 체인 (daisy chain) 90 00:04:37,550 --> 00:04:41,570 미디 하드웨어 장치의 무리. 91 00:04:41,570 --> 00:04:44,050 내 집에서 7 ~​​ 8 백 있습니다. 92 00:04:44,050 --> 00:04:46,610 그것은 정말 복잡해진다 하지만 정말 강력합니다. 93 00:04:46,610 --> 00:04:47,460 그리고 그것은 정말 오래된이다. 94 00:04:47,460 --> 00:04:51,117 그것은 80 년대 초에서, 그리고 정말 좋은 작은입니다. 95 00:04:51,117 --> 00:04:51,950 코너 해리스 : 네. 96 00:04:51,950 --> 00:04:54,230 모든 고전 닌텐도 비디오 게임은 아마 것 97 00:04:54,230 --> 00:04:56,088 예를 들어 음악 MIDI 파일을 가지고있다. 98 00:04:56,088 --> 00:04:59,550 99 00:04:59,550 --> 00:05:01,740 >> 스티븐 KREWSON : 여기입니다 일반 MIDI의 예, 100 00:05:01,740 --> 00:05:06,520 일종의 MIDI를 보여주는 일반적으로 프로토콜. 101 00:05:06,520 --> 00:05:13,280 그리고 나는 우리가 생각할 수있는 생각 사양의 차이 102 00:05:13,280 --> 00:05:17,830 같은 뭔가해야한다는 이러한 장비는 실제 소리 103 00:05:17,830 --> 00:05:21,740 그 악기의 실현 소리 사운드 글꼴이나 특정 MIDI에 104 00:05:21,740 --> 00:05:25,740 차이 인 것으로 신디사이저 말한다 어쩌면 typeface-- 사이, 105 00:05:25,740 --> 00:05:30,350 일반적으로, 이것은의 디자인 이 특별한 방법으로 표현하기 106 00:05:30,350 --> 00:05:35,907 characters-- 특정 글꼴 즉, 특정 크기 및 음색을 가지고 107 00:05:35,907 --> 00:05:37,240 그리고 짓이야의 실현​​있다 108 00:05:37,240 --> 00:05:39,156 >> 코너 해리스 : 아마 더 나은 비교 것 109 00:05:39,156 --> 00:05:43,430 일 유니 코드 표준은 범 말했죠 모든 문자에 숫자, 정말 110 00:05:43,430 --> 00:05:46,830 세계의 모든 언어, 또는 언어의 스크립트의 광대 한 세트 111 00:05:46,830 --> 00:05:51,310 세계에서하고 그입니다 뭔가 그래픽으로 렌더링 112 00:05:51,310 --> 00:05:53,710 다양한 폰트 패키지로. 113 00:05:53,710 --> 00:05:56,630 그리고 분명히, 당신은 생각할 수 소리의 유니 코드로 MIDI. 114 00:05:56,630 --> 00:06:03,250 그리고 그것은 큰 흐름 동행입니다 단지 목록입니다 이벤트 및 악기와 이것 저것의, 115 00:06:03,250 --> 00:06:06,090 당신은 별도 있어야 프로그램, 서체 등, 116 00:06:06,090 --> 00:06:08,537 로 그 렌더링하기 가청 뭔가. 117 00:06:08,537 --> 00:06:12,360 118 00:06:12,360 --> 00:06:13,780 >> 스티븐 KREWSON : 왜 하스켈? 119 00:06:13,780 --> 00:06:19,110 하스켈은 함수형 프로그래밍입니다 아주 고급 언어, 120 00:06:19,110 --> 00:06:22,770 C는 매우 다른, PHP는 매우 다르다. 121 00:06:22,770 --> 00:06:28,120 그리고 우리는이 있다고 보게 될 것입니다 하스켈 함수의 합성의 용이성 122 00:06:28,120 --> 00:06:37,640 즉, 우리를 통해 산들 바람 수 있습니다 전사, 작성하거나 타이핑, 123 00:06:37,640 --> 00:06:42,160 프레 르 자크 같은, 이 간단한 노래 그 124 00:06:42,160 --> 00:06:46,815 거기에 부품을 많이 가지고 그 자기 유사하거나 반복합니다. 125 00:06:46,815 --> 00:06:49,740 126 00:06:49,740 --> 00:06:53,250 그래서이 일부있을 것입니다 이유에 대한 동기 부여 127 00:06:53,250 --> 00:06:59,400 우리는 하스켈을 사용하는 함수는 일등 시민이다. 128 00:06:59,400 --> 00:07:01,120 >> 그리고 연장하고 싶어 이 조금. 129 00:07:01,120 --> 00:07:08,800 그것은에 조금 쉽다 하스켈에서 프레 르 자크를 표기하기. 130 00:07:08,800 --> 00:07:12,100 하지만 우리가 원한다면 무엇 그것에 드럼 부분을 추가? 131 00:07:12,100 --> 00:07:17,320 우리가 만들려고 노력하기를 원한다면 무엇 롤랜드 808 또는 909 드럼 같은 132 00:07:17,320 --> 00:07:20,970 당신이 기계 약 16 개의 다른 단계? 133 00:07:20,970 --> 00:07:24,590 일반적으로 이들은 으로 16 노트의 생각. 134 00:07:24,590 --> 00:07:28,640 그리고 당신은 세계를 제어 할 수 있습니다 템포는, 당신은 밖으로 선택할 수 있습니다 135 00:07:28,640 --> 00:07:34,620 다른 타악기 부품의 무리 베이스 드럼, 박수, 다른 덫, 136 00:07:34,620 --> 00:07:37,540 개방과 폐쇄 높은 모자 채널이 종류에, 137 00:07:37,540 --> 00:07:41,600 다음은 EQ하거나 자신의 볼륨을 조정합니다. 138 00:07:41,600 --> 00:07:45,290 >> 그리고 우리는 좋은 방법을 볼 수 있습니다 이 단계를 표현 하스켈 139 00:07:45,290 --> 00:07:48,810 모두와 시퀀서 하스켈의 다양한 멋진 일 140 00:07:48,810 --> 00:07:53,100 우리는 생성하여 수행 할 수있는 목록을 통해 목록 및 필터링, 141 00:07:53,100 --> 00:07:56,060 목록을 통해 매핑, 매핑 목록을 통해 기능. 142 00:07:56,060 --> 00:07:59,530 143 00:07:59,530 --> 00:08:00,760 그리고 빠른 사과. 144 00:08:00,760 --> 00:08:05,300 이것은 매우 피상적​​이다 지나치게 빠른 스케치 145 00:08:05,300 --> 00:08:07,620 양태의 일부 하스켈과 Euterpea의, 146 00:08:07,620 --> 00:08:11,760 도메인 별은있다 임베디드 언어 작성 147 00:08:11,760 --> 00:08:14,970 뮤지컬 형식의 하스켈. 148 00:08:14,970 --> 00:08:17,350 그래서 온라인 코드를 확인 바랍니다. 149 00:08:17,350 --> 00:08:22,404 글래스고입니다 불 GHCI, 하스켈 컴파일러 인터프리터. 150 00:08:22,404 --> 00:08:24,320 그리고 나는 어떤 일을 할 것입니다 조금이의 151 00:08:24,320 --> 00:08:25,880 그래서 당신은 어떻게하는지 볼 수 있습니다. 152 00:08:25,880 --> 00:08:31,021 >> 그리고 이것은 당신이에로드 할 수 있습니다 짓이야 구문은 콜론과입니다 153 00:08:31,021 --> 00:08:31,520 명령. 154 00:08:31,520 --> 00:08:33,510 당신은 파일에로드 할 수 있습니다. 155 00:08:33,510 --> 00:08:36,840 당신은 그 파일을 찾아보기를 사용할 수 있습니다 모든 기능을 볼 수 그 156 00:08:36,840 --> 00:08:39,169 특정 모듈에 존재합니다. 157 00:08:39,169 --> 00:08:43,850 그리고 우리는, 유형 및 종류를 볼 수 다음으로 클래스는, 하스켈에서 매우 중요하다 158 00:08:43,850 --> 00:08:48,850 그래서 당신은 항상 특히 check-- 수 있습니다 새를, dscl에서 작업하는 경우 159 00:08:48,850 --> 00:08:51,600 이 같은 음악 유형은 무엇입니까? 160 00:08:51,600 --> 00:08:55,114 나는 길의 숫자에 대해 알고 유형, 하스켈에서 작동 161 00:08:55,114 --> 00:08:56,530 하지만 난 음악에 대해 잘 모른다. 162 00:08:56,530 --> 00:09:01,280 그러나 당신은 그들이있어 길을 탐색 할 수 있습니다 이 T 형 또는 명령을 이용하여 정의 163 00:09:01,280 --> 00:09:04,577 다음 특히 호출 함수 또는 데이터 객체. 164 00:09:04,577 --> 00:09:05,410 코너 해리스 : 네. 165 00:09:05,410 --> 00:09:09,820 당신은 C와 연타를 생각하면 유형에 대한 hardass했다, 166 00:09:09,820 --> 00:09:11,230 당신은 하스켈에 대해 아무 생각이 없습니다. 167 00:09:11,230 --> 00:09:14,230 하스켈에 대한 좋은 점은 것입니다 당신은 컴파일 코드를 얻을 수 있다면 168 00:09:14,230 --> 00:09:16,790 그리고 하스켈 유형 검사의 경우, 그것은 아마 맞아 169 00:09:16,790 --> 00:09:18,675 타입 시스템은 매우 엄격하기 때문이다. 170 00:09:18,675 --> 00:09:20,090 >> 스티븐 KREWSON : 네. 171 00:09:20,090 --> 00:09:21,980 그래서 난 그냥 가고 싶어 다시 through--과, 172 00:09:21,980 --> 00:09:27,160 이것은 몇 justice-- 안하고 하스켈의 특징, 그 이상 173 00:09:27,160 --> 00:09:31,780 그 creators--에 그것을 만들었습니다 사람들의 무리에 의해 1980 년대 후반에, 174 00:09:31,780 --> 00:09:34,610 약 20의위원회 people-- 중요한 생각했다. 175 00:09:34,610 --> 00:09:36,850 그리고 먼저 그들 종이에 나와있는 그 176 00:09:36,850 --> 00:09:41,890 하스켈의 기원을 설명 처음 20 년 정도 이상 177 00:09:41,890 --> 00:09:43,390 이 게으른 것이 었습니다. 178 00:09:43,390 --> 00:09:44,990 그래서 이것은 무엇을 의미합니까? 179 00:09:44,990 --> 00:09:49,860 >> 우리는 어떤 종류가있을 때 음, 의미 식의, 우리는 그것을 평가해야합니다. 180 00:09:49,860 --> 00:09:54,390 그리고 하스켈 통화에서이 작업을 수행 필요 방식 또는 비 엄격한 방법으로. 181 00:09:54,390 --> 00:09:57,250 우리의 무리가있는 경우 즉, 우리의 표현의 구성 요소, 182 00:09:57,250 --> 00:10:00,660 우리는 평가를 지연하려고 그 하위의 183 00:10:00,660 --> 00:10:05,300 절대 마지막 minute--까지 우리가 실제로 필요할 때까지입니다. 184 00:10:05,300 --> 00:10:08,480 >> 그래서이 means-- 인 정말 멋진, 특히 185 00:10:08,480 --> 00:10:13,200 우리는 추상화에 대해 생각하는 경우 음악 스텝 시퀀서의. 186 00:10:13,200 --> 00:10:16,740 당신은 전원을 켜십시오, 당신은 시작 스텝을 실행 sequence-- 187 00:10:16,740 --> 00:10:20,010 혹시 드럼 일 경우 machine-- 그리고 그것은 단지 영원히 간다. 188 00:10:20,010 --> 00:10:24,650 그래서 우리의 경우 정말 좋은 것 하스켈에서 그를 에뮬레이트 할 수 있습니다. 189 00:10:24,650 --> 00:10:31,040 그리고 우리는 무한으로 할 수 있습니다 값, 특히 무한리스트에서. 190 00:10:31,040 --> 00:10:35,860 그것은을 입력하는 것은 매우 쉽다 하스켈 무한 목록입니다. 191 00:10:35,860 --> 00:10:39,230 당신은 아래의 구문을 사용할 수 있습니다 여기, 당신이 1-3를 참조하는 경우, 192 00:10:39,230 --> 00:10:42,440 3 1 점의 점을 제거하고, 그 무한 목록 193 00:10:42,440 --> 00:10:46,960 모든 자연수의 확장 지금까지 당신이 상상할 수로. 194 00:10:46,960 --> 00:10:49,925 >> 내가 소개 할 바로 주름의 개념입니다. 195 00:10:49,925 --> 00:10:51,800 그리고 또, 용도 이 세미나는하지의 196 00:10:51,800 --> 00:10:55,770 하스켈에서 주름에 대해 배울 수 또는 고차 함수. 197 00:10:55,770 --> 00:10:59,640 하지만 난 그냥 그것을 소개하고 싶습니다 얼마나 이상한의 정확한 감각을 줄 198 00:10:59,640 --> 00:11:03,700 하스켈이며 얼마나 강력한 그것입니다. 199 00:11:03,700 --> 00:11:08,000 특히, 우리는 이따가거야 우리가 다른 드럼 파트 이렇게하면 200 00:11:08,000 --> 00:11:12,790 우리는 목록을 조작 할거야 숫자들은 서로에 그들을 접는. 201 00:11:12,790 --> 00:11:17,290 이를 위해, 우리는거야 지도와 주름을 사용합니다. 202 00:11:17,290 --> 00:11:21,770 >> 바로 연관이있다 이 하나의 권리 인 배 203 00:11:21,770 --> 00:11:26,990 here-- 1을 뺀 수량, (2) 마이너스 수량, 3 마이너스 0. 204 00:11:26,990 --> 00:11:29,170 그리고 구문 배, 당신은 배를 제공 205 00:11:29,170 --> 00:11:34,680 베이스 값하고 operation-- 이 경우, 추가 또는 감산에. 206 00:11:34,680 --> 00:11:36,280 나는 두 경우 모두를 표시했습니다. 207 00:11:36,280 --> 00:11:41,760 그리고 축적이있다 그 전체리스트를 축적, 208 00:11:41,760 --> 00:11:46,330 그 운영자 플러스를 적용하거나 뺀 후이를 누적. 209 00:11:46,330 --> 00:11:52,680 가 호출 된 경우 그래서이 짓이야있을 것입니다 배 연구 플러스 0으로, 0부터 시작 210 00:11:52,680 --> 00:11:54,720 우리는 모든 합계 것 그 목록에있는 번호. 211 00:11:54,720 --> 00:11:57,134 그리고는 1-3 목록입니다. 212 00:11:57,134 --> 00:12:00,050 코너 해리스 : 그래서 또 다른를 넣어 방법은 배 R은 세 개의 인수를 취합니다. 213 00:12:00,050 --> 00:12:02,540 기능이있다 그 자체는 두 개의 인수를, 214 00:12:02,540 --> 00:12:05,400 다음 선발 값이있다, 및 값의 목록이있다. 215 00:12:05,400 --> 00:12:08,570 그리고 당신이 할 당신이 걸릴 것입니다 스타터 값, 첫 번째 값, 216 00:12:08,570 --> 00:12:09,850 함수에 넣어. 217 00:12:09,850 --> 00:12:11,607 당신은 무엇을 어떻게해야합니까 즉, 공급을 그 218 00:12:11,607 --> 00:12:13,940 의 함수로 두 번째 값, 당신이 밖으로 무엇을 얻을, 219 00:12:13,940 --> 00:12:16,690 그 걸릴로 그 공급 세 번째 값의 기능. 220 00:12:16,690 --> 00:12:18,740 그리고 당신은 아래로 갈 경우 이 모든 목록이 방법으로, 221 00:12:18,740 --> 00:12:22,970 당신은 결국받을거야 의 일부 특이 값 222 00:12:22,970 --> 00:12:25,720 만약 시작했는지의 동일한 유형의 함께 아웃과 동일한 유형의 223 00:12:25,720 --> 00:12:29,147 다음 목록에있는 것들, 그리고 그 배 R.의 반환 결과입니다 224 00:12:29,147 --> 00:12:31,980 스티븐 KREWSON : 특히 그래서, 이러한 고차 함수이며, 225 00:12:31,980 --> 00:12:34,460 그들은 서로를 복용하고 있기 때문에 인수 중 하나로서 기능. 226 00:12:34,460 --> 00:12:34,770 >> 코너 해리스 : 네. 227 00:12:34,770 --> 00:12:37,820 당신은 어떤 다른 사람을 사용했다면 languages​​-- 내가 R을 알고, [들림] 228 00:12:37,820 --> 00:12:41,510 언어는 감소라는이 있습니다. 229 00:12:41,510 --> 00:12:45,460 당신은 유사한 기능이있을 수 있습니다 다른 언어로, 방금 전화 230 00:12:45,460 --> 00:12:48,160 다른 것들. 231 00:12:48,160 --> 00:12:50,680 >> 스티븐 KREWSON : 그리고 무엇 배 연구에 대한 좋은 데요 232 00:12:50,680 --> 00:12:53,880 이 경우에 그 배입니다 R은 무한리스트로 작업 할 수 있습니다. 233 00:12:53,880 --> 00:12:59,490 이 바닥이 P5 그래서 노트를 생성하고 그 234 00:12:59,490 --> 00:13:03,120 대한 스텝 시퀀서에 켜져 일부 드럼 부, 제 드럼 부, 235 00:13:03,120 --> 00:13:05,480 어쩌면 그것은 콩가의 드럼이나 뭐. 236 00:13:05,480 --> 00:13:09,719 그리고 이것은 의도적 인 이 글을 쓰는의 둔각 방법, 237 00:13:09,719 --> 00:13:11,510 하지만 때문에, 재미 그것은 많이 보여줍니다 238 00:13:11,510 --> 00:13:14,460 하스켈과 Euterpea에 대한 것들. 239 00:13:14,460 --> 00:13:20,650 >> 그래서이 colon-- 대장의 R은 배 물건을 밀어 단지 운영자 240 00:13:20,650 --> 00:13:25,700 함께 빈에서 호출 list--에 그냥 빈 괄호입니다 목록. 241 00:13:25,700 --> 00:13:28,250 그리고 나는 그 전화 해요 이 무한 목록. 242 00:13:28,250 --> 00:13:31,570 이것은 실제로 두 개의 목록입니다 여기까지 함께했다. 243 00:13:31,570 --> 00:13:37,150 목록 1 쉼표 6 점 도트는 1, 6, 11, 16이다. 244 00:13:37,150 --> 00:13:39,750 그냥 그래서 Haskell-- 몇 자, 당신 245 00:13:39,750 --> 00:13:42,420 전체를 생성 할 수 있습니다 숫자의 순서 246 00:13:42,420 --> 00:13:46,240 다섯 숫자는 떨어져 그 무한대로 스트레칭. 247 00:13:46,240 --> 00:13:49,860 그리고 그 앞에 추가 이 짧은 작은 list-- 248 00:13:49,860 --> 00:13:54,370 3, 8, 21-- 당신을 보여 어떻게 당신이 목록을 연결할 수 있습니다. 249 00:13:54,370 --> 00:13:55,790 >> 그리고 나는 그 자체에 접혀했습니다. 250 00:13:55,790 --> 00:14:01,510 그리고 이것은 단지의 친절 끝 신원 동작하지만, 무한이다. 251 00:14:01,510 --> 00:14:06,070 그리고, R은 그렇게 할 수 배 그것 때문에 게으르게 상기와 같이 평가한다. 252 00:14:06,070 --> 00:14:10,582 우리는 1, 2, 3이있는 경우, 우리는 할 수 단지의 전체 나머지 부분을 괄호. 253 00:14:10,582 --> 00:14:12,290 그것은 작동하지 않습니다 마이너스 또는 플러스,하지만 254 00:14:12,290 --> 00:14:17,760 이 대장에 대해 작동합니다 목록에있는 신원 작업. 255 00:14:17,760 --> 00:14:24,620 >> 그래서 우리는 어떻게 실제적으로 사용 않는 경우 우리 사물의 무한히 긴 목록을 가지고? 256 00:14:24,620 --> 00:14:26,500 음, 하스켈 제공 functions-- 많은 257 00:14:26,500 --> 00:14:29,450 그리고 이들에 더 많은 봐 가지고 같은 당신의 자신의 time-- 258 00:14:29,450 --> 00:14:32,200 이는 확인, 우리가있어 말한다 이 무한 목록을 생성, 259 00:14:32,200 --> 00:14:35,950 하지만 우리는 좀 걸릴거야 그것의 그리고이 case--의 수 260 00:14:35,950 --> 00:14:38,410 우리는 나중에이를 볼 수 있습니다 우리의 드럼 머신 code-- 261 00:14:38,410 --> 00:14:43,740 GM은 글로벌 단지 어떤 종류 단계의 수에 대한 변수 262 00:14:43,740 --> 00:14:44,610 시퀀서에. 263 00:14:44,610 --> 00:14:47,630 롤의 컴퓨터에서 나는 즉 일반적으로 16, 당신을 보여 주었다 264 00:14:47,630 --> 00:14:51,475 하지만 난 (32)을 구현했습니다. 265 00:14:51,475 --> 00:14:54,470 정말 중요하지 않습니다. 266 00:14:54,470 --> 00:15:00,230 >> 하스켈은 순수한, 그래서 강한있다 코너가 언급 정적 입력합니다. 267 00:15:00,230 --> 00:15:03,220 그래서 기능은 sense--에서 수학 268 00:15:03,220 --> 00:15:06,600 그들은 더 많은 수학있어 그들은 보장하고 있다는 269 00:15:06,600 --> 00:15:11,530 액세스 또는 어떤 종류를 변경하지하도록 또는 가변하는 입력 또는 출력을 수행합니다. 270 00:15:11,530 --> 00:15:14,420 이 기능을 가지고 있다면, 그것은 결정적이다. 271 00:15:14,420 --> 00:15:17,400 그것은 항상 같은를 반환합니다 프로그램의 상태 값 272 00:15:17,400 --> 00:15:19,310 또는 동일하게 남아있다. 273 00:15:19,310 --> 00:15:22,940 모나드 예외는 물론있다 여기에, 그러나 그것은 우리의 범위를 벗어입니다. 274 00:15:22,940 --> 00:15:23,900 >> 코너 해리스 : 네. 275 00:15:23,900 --> 00:15:26,946 이것은 무엇을 의미하지만, 거기 있는 몇 가지 중요한 [들림] 276 00:15:26,946 --> 00:15:27,820 이것의 결과입니다. 277 00:15:27,820 --> 00:15:30,940 하나는 아주 쉽다이다 하스켈 프로그램을 병렬화. 278 00:15:30,940 --> 00:15:32,773 만약 당신이 있기 때문에, 해당하는 기능을 말한다 279 00:15:32,773 --> 00:15:36,064 경우, 만 값을 작동해야 당신은 그 기능이 항상 것입니다 알고 280 00:15:36,064 --> 00:15:39,280 같은 값의 경우를 알려주지 당신은 어떤 value--에 공급 281 00:15:39,280 --> 00:15:43,055 당신의 f를, [들림] F (1) 인 경우에 2, 다음 (F)의 3 또는 1의 F whatnot-- 282 00:15:43,055 --> 00:15:45,180 쓰는하지 않을 파일 또는 무언가를 283 00:15:45,180 --> 00:15:46,850 즉, F2의 값을 변경한다. 284 00:15:46,850 --> 00:15:50,220 당신은이 기능을 분할 할 수 있습니다 만 다른 기계 또는 만 285 00:15:50,220 --> 00:15:54,720 다른 스레드 또는 무엇 이건, 다시 모든 응답을 얻을, 286 00:15:54,720 --> 00:15:56,900 모든 반환 값을 얻을 다시 한 다음 그것 뿐이다. 287 00:15:56,900 --> 00:15:59,780 일을 병렬화 할 수 그래서 매우 편리합니다. 288 00:15:59,780 --> 00:16:03,140 >> 단점은 입력 출력 특히 289 00:16:03,140 --> 00:16:05,720 타입 시스템에 적합 매우 복잡한 방법으로. 290 00:16:05,720 --> 00:16:09,010 우리는 지금 그 권리에 가서,하지만하지 않습니다 일부 자원 살펴 보시기 바랍니다 291 00:16:09,010 --> 00:16:11,175 온라인 당신은 그것에 대해 배우고 싶은 경우에. 292 00:16:11,175 --> 00:16:13,960 293 00:16:13,960 --> 00:16:16,550 >> 스티븐 KREWSON : 그래서 입력 classes--이 294 00:16:16,550 --> 00:16:21,610 유형의 전 ... - 클래스 해결하기 위해 발명되었다 295 00:16:21,610 --> 00:16:24,160 연산자 오버로딩의 문제. 296 00:16:24,160 --> 00:16:27,590 그래서 우리는 평등을하고 싶어 가지 유형이 다른. 297 00:16:27,590 --> 00:16:31,040 물론, 우리는 동행입니다 생각할 수 숫자 유형의 평등 298 00:16:31,040 --> 00:16:34,720 에 대해 생각하는 것은 매우 간단하지만, 무엇 목록 평등에 대한? 299 00:16:34,720 --> 00:16:37,610 평등에 대한 어떤 다리 트리 데이터 구조? 300 00:16:37,610 --> 00:16:43,130 그리고이 모든 것이 가능하다 하스켈 타입 클래스의 때문이다. 301 00:16:43,130 --> 00:16:48,000 >> 그래서 당신은 특정 데이터 유형 선택 -을 정의하는 경우 여기에서, 이러한 음악적 피치이다. 302 00:16:48,000 --> 00:16:50,960 우리는 마침내 있어요 일부 컴퓨터 음악. 303 00:16:50,960 --> 00:16:57,420 그래서 우리는 C, C 날카로운있다, 등 등. 304 00:16:57,420 --> 00:17:01,080 그들은 한 무리에 속하는 다른 종류의 클래스. 305 00:17:01,080 --> 00:17:03,510 EQ-- 그들은 EQ 형식의 클래스에 속한다. 306 00:17:03,510 --> 00:17:06,780 즉, 그들이 지원 수단 평등 작업. 307 00:17:06,780 --> 00:17:12,650 그래서 당신은 하나의 여부를 평가할 수 있습니다 음악 프리미티브의 순서 308 00:17:12,650 --> 00:17:15,400 다른 하나와 동일하다. 309 00:17:15,400 --> 00:17:17,280 >> 그들은 순서 클래스에 속한다. 310 00:17:17,280 --> 00:17:19,479 그 순서는 다음에 거기에 의미합니다. 311 00:17:19,479 --> 00:17:27,670 D는 C. C 날카로운 후 제공 뿐만 아니라 C 후에 온다. 312 00:17:27,670 --> 00:17:29,840 그들은 클래스에 속하는 그들이 할 수있는 의미, 표시 313 00:17:29,840 --> 00:17:33,000 콘솔이나 단말기에 출력 될 수있다. 314 00:17:33,000 --> 00:17:36,090 그들은에 속하는 클래스, 열거하는 315 00:17:36,090 --> 00:17:39,770 즉, 비록 이러한 문자입니다, 316 00:17:39,770 --> 00:17:45,340 그들은 기본 숫자를 0에서 시작하는 표현 317 00:17:45,340 --> 00:17:48,960 그리고 단을 통해 오프 것 많은 일들이있어, 20 정도, 318 00:17:48,960 --> 00:17:51,770 아마 30 또는 40. 319 00:17:51,770 --> 00:17:54,259 >> 코너 해리스 : 그리고 때 우리는 데이터 형식이 320 00:17:54,259 --> 00:17:57,050 즉, 해당 키워드와 derives-- "deriving--"특정 유형의 클래스, 321 00:17:57,050 --> 00:18:01,160 그것은 컴파일러가 시도된다는 것을 의미합니다 자동으로 뭔가를 구성합니다. 322 00:18:01,160 --> 00:18:05,120 그래서 아마도 당신이 원하는 것 다른 품질을 정의합니다. 323 00:18:05,120 --> 00:18:09,450 당신은 날카로운 C를 정의 할 수 있습니다 예를 들어, D 평면과 동일있다. 324 00:18:09,450 --> 00:18:11,560 이 구성에 여기에, 나는 C 날카로운 생각하지 않습니다 325 00:18:11,560 --> 00:18:14,940 와 D의 평면은, 때문에 동일 할 것이다 컴파일러 자동 것 326 00:18:14,940 --> 00:18:19,670 모든 다른 가능한 값을 말한다 다른 모든 구별된다. 327 00:18:19,670 --> 00:18:22,930 >> 그래서 오버라이드 (override) 할 수있다 기본 구현 328 00:18:22,930 --> 00:18:25,730 이들 클래스의 타입. 329 00:18:25,730 --> 00:18:28,640 또, 참조하는 경우를 보면 당신은 그것에 대해 배우고 싶어요. 330 00:18:28,640 --> 00:18:31,767 331 00:18:31,767 --> 00:18:33,600 스티븐 KREWSON : 그리고 여기에, 실제로,이거야 332 00:18:33,600 --> 00:18:36,930 우리가 나중에 코딩 할 때 도움이 될. 333 00:18:36,930 --> 00:18:42,150 우리는 중위 연산자의 일부를 볼 순차적 컴포지션, 334 00:18:42,150 --> 00:18:46,570 병렬 구성 등 앞으로 이러한 흑자와 등호 335 00:18:46,570 --> 00:18:48,620 콜론으로 둘러싸여 있습니다. 336 00:18:48,620 --> 00:18:53,330 그것은 우리가 서로 다른 플레이 할 수 있음을 의미 음악 프리미티브 하나씩. 337 00:18:53,330 --> 00:18:54,590 즉, 순차적 인 구성이다. 338 00:18:54,590 --> 00:18:57,170 >> 아니면 우리는 그들을 재생할 수 있습니다 동시에 평행. 339 00:18:57,170 --> 00:19:05,100 그래서 뮤지컬 값을 가질 수 있습니다, 다음이, 동일 및 콜론 340 00:19:05,100 --> 00:19:09,669 병렬 구성 연산자를 삽입 사 와 코드의 일종으로 재생할. 341 00:19:09,669 --> 00:19:11,460 그리고 우리가 사용하는거야 이 때 우리는 결합 342 00:19:11,460 --> 00:19:15,080 우리의 드럼 파트 우리 작은 프레 르 자크의 노래 343 00:19:15,080 --> 00:19:19,460 이 두 시퀀스를 재생 동시에 음악 값. 344 00:19:19,460 --> 00:19:24,520 345 00:19:24,520 --> 00:19:29,250 >> is-- 카레를 무두질하는 것은 마지막 하스켈 카레, 이름있는 사람 346 00:19:29,250 --> 00:19:31,850 하스켈 이미지는 이름을 따서입니다. 347 00:19:31,850 --> 00:19:34,330 그리고 이것은 우리를 수 우리가있어 좋은 우아함 348 00:19:34,330 --> 00:19:36,880 모든 다른 쓰기 기능 또는 우리가있어 필터 349 00:19:36,880 --> 00:19:39,330 우리의 목록을 통해 매핑 될 것이다. 350 00:19:39,330 --> 00:19:42,810 두 가지의 기능 x와 y--의 f를 arguments-- 351 00:19:42,810 --> 00:19:46,630 로 표현 될 수있다 X의 F는 Y에 적용. 352 00:19:46,630 --> 00:19:49,800 그래서의 함수이다 반환 하나의 인수 353 00:19:49,800 --> 00:19:51,240 하나의 인수의 또 다른 기능. 354 00:19:51,240 --> 00:19:56,962 그래서 이것은 우리가지도를 할 수 있음을 의미 Y의 목록을 통해 X의 함수 f. 355 00:19:56,962 --> 00:19:58,920 코너 해리스 : 할 이러한 예를 제공? 356 00:19:58,920 --> 00:19:59,836 스티븐 KREWSON : 네. 357 00:19:59,836 --> 00:20:05,390 나는 여기에서 예를 우리가 쓸 것 몇 가지. 358 00:20:05,390 --> 00:20:10,500 그래서 복제 2-- 아니라, 소요됩니다 복제 359 00:20:10,500 --> 00:20:13,040 얼마나 많은 값 중 하나 인, 시간은 무언가를 복제하려면, 360 00:20:13,040 --> 00:20:16,690 다음은 value--를 취할 것 일반적으로 목록 또는 뭔가. 361 00:20:16,690 --> 00:20:23,450 그래서 여기, 우리는 매핑있어 또 다른리스트를 2를 복제합니다. 362 00:20:23,450 --> 00:20:27,440 >> 우리가 2 복제지도 그래서 경우, 우리가 2를 복제하는 경우 적용 363 00:20:27,440 --> 00:20:31,890 이 list--의 첫 번째 요소와 이 뮤지컬 phrases--의 목록입니다 364 00:20:31,890 --> 00:20:37,650 두 가지를 생성합니다 "당신은 sleeping--" 그래서 당신이 자고, 당신은 자고. 365 00:20:37,650 --> 00:20:40,040 그래서 지금 우리는 두 가지가 있습니다. 366 00:20:40,040 --> 00:20:42,570 그러나 복제는 두 소요 인수, 그러나 우리가 있기 때문에 367 00:20:42,570 --> 00:20:47,100 매핑 다음 무두질과, 우리는 복제 2를 나타낼 수 있습니다 368 00:20:47,100 --> 00:20:52,310 의 함수로서 반환 된 것으로 하나 인 공방은 두​​ 번 복제. 369 00:20:52,310 --> 00:20:57,010 그리고 우리는 서로에 그 적용하고 문구의이리스트의 요소입니다. 370 00:20:57,010 --> 00:21:01,900 >> 그리고 CONCAT는 하스켈입니다 목록을 평탄화 작업. 371 00:21:01,900 --> 00:21:04,400 복제 2 것이기 때문에 리스트의리스트를 생성한다. 372 00:21:04,400 --> 00:21:06,660 그리고 이것은이 중간 형태가 여기에있다. 373 00:21:06,660 --> 00:21:10,365 그래서 우리는 CONCAT 수 있습니다 또는 두 배를 평평. 374 00:21:10,365 --> 00:21:12,240 코너 해리스 : 단순한 커링의 예, 375 00:21:12,240 --> 00:21:15,323 당신은 그때 엔하려는 경우 f는 단지 상상 두 소요 곱셈 기능 376 00:21:15,323 --> 00:21:16,840 인수 및 그들의 제품을 반환합니다. 377 00:21:16,840 --> 00:21:19,320 당신이 F 4 5가 있다면, 그것은 20이다. 378 00:21:19,320 --> 00:21:22,670 그러나 당신은이 생각할 수 also-- 당신은 함수 f 4가 379 00:21:22,670 --> 00:21:25,560 즉, 인수 및 반환한다 이 단지 인 공방 네 번 380 00:21:25,560 --> 00:21:27,870 부분 응용하는 한 인수 4. 381 00:21:27,870 --> 00:21:31,182 그리고 당신은 (4)의 f를 공급하는 경우 5, 그것은 당신에게 20를 줄 것이다. 382 00:21:31,182 --> 00:21:32,890 그리고 그것은 간단합니다 커링의 예. 383 00:21:32,890 --> 00:21:34,473 보통 교과서들 중 하나입니다. 384 00:21:34,473 --> 00:21:38,860 385 00:21:38,860 --> 00:21:42,110 >> 스티븐 KREWSON : 람다 식 또는 익명 함수 386 00:21:42,110 --> 00:21:47,330 다른 하스켈 특징이다. 387 00:21:47,330 --> 00:21:51,242 우리를 채찍질 할 필요가 있다면 작은 기능의 삶의 복제, 388 00:21:51,242 --> 00:21:52,950 하지만에없는 말 표준 라이브러리, 389 00:21:52,950 --> 00:21:56,150 우리는 구문을 사용할 수 있습니다 다음과 유사한. 390 00:21:56,150 --> 00:21:58,730 그리고 우리는이를 통해 산들 바람합니다. 391 00:21:58,730 --> 00:22:02,160 당신이에서 많이 볼 것 한 가지 드럼 머신 우리는 호출을하고있다 392 00:22:02,160 --> 00:22:05,790 뭔가라는 이는 같은 전에, 필터링, 393 00:22:05,790 --> 00:22:08,185 함수의 맵핑은 목록을 통해, 그것은하지만입니다 394 00:22:08,185 --> 00:22:10,260 부울 함수의 매핑입니다. 395 00:22:10,260 --> 00:22:13,390 >> 그래서 우리는 여기에 예를 의 익명 396 00:22:13,390 --> 00:22:19,150 정의 부울 기능이 단지 몇 값을합니다. 397 00:22:19,150 --> 00:22:22,990 이것은 엄밀히 말하면 아니다 익명 함수. 398 00:22:22,990 --> 00:22:25,850 그러나 그것은과 정의의 간결함을 위해 그 구문, 399 00:22:25,850 --> 00:22:28,007 이 단지 X 모듈을 필요 N-- 400 00:22:28,007 --> 00:22:28,840 코너 해리스 : 네. 401 00:22:28,840 --> 00:22:31,330 따라서 F는의 함수이고 두 개의 인수 n 및 p 402 00:22:31,330 --> 00:22:35,440 그 자체가되는 함수를 반환 하나의 인수의 함수, 즉 X. 403 00:22:35,440 --> 00:22:38,815 404 00:22:38,815 --> 00:22:40,690 스티븐 KREWSON : I 상술 한 중위 연산자. 405 00:22:40,690 --> 00:22:42,642 중위 연산자는 무엇입니까? 406 00:22:42,642 --> 00:22:45,710 음, 중위 연산자이다 우리가 작업을 나타내는 일반적인 방법으로, 407 00:22:45,710 --> 00:22:49,910 mathematics-- 2 플러스, 말 대신 연산자의 2 플러스 408 00:22:49,910 --> 00:22:51,202 다음 두 개의 인수 2, 2. 409 00:22:51,202 --> 00:22:53,701 코너 해리스는 : 그것은이라고 인 역 폴란드 표기법 410 00:22:53,701 --> 00:22:55,330 용어는 내가 너희 중에 누구든지 알 것이다 의심한다. 411 00:22:55,330 --> 00:22:56,288 >> 스티븐 KREWSON : 오른쪽. 412 00:22:56,288 --> 00:22:58,290 광택 또는 접두어 표기법을 역. 413 00:22:58,290 --> 00:23:01,412 하지만 하스켈에 결정 중위 연산자를 사용합니다. 414 00:23:01,412 --> 00:23:03,120 그래서 이들 중 일부 사용자 지정 사람이 415 00:23:03,120 --> 00:23:07,770 대해 정의 된 하스켈 Euterpea를, dscl. 416 00:23:07,770 --> 00:23:10,730 그래서이 순차적으로 구성했다. 417 00:23:10,730 --> 00:23:16,340 이것은 병렬 조성물이고, 이것을 병렬 구성을 절단했다. 418 00:23:16,340 --> 00:23:18,710 그리고 우리는 것이 필요합니다 우리의 드럼 머신과, 419 00:23:18,710 --> 00:23:22,640 우리는 마지막으로 사용하게되므로 거기에 그 작은 튜플 연산자 420 00:23:22,640 --> 00:23:26,330 따라서 드럼 머신을 재생합니다 우리의 프레 르 자크 곡. 421 00:23:26,330 --> 00:23:28,650 그리고 우리의 드럼 머신입니다 무한 될 것이다. 422 00:23:28,650 --> 00:23:30,920 그냥 영원히한다. 423 00:23:30,920 --> 00:23:32,692 그러나 프레 르 자크의 노래는하지 않습니다. 424 00:23:32,692 --> 00:23:33,510 그것은 그 길이 아니다. 425 00:23:33,510 --> 00:23:36,610 단지 몇 바있다. 426 00:23:36,610 --> 00:23:43,030 그래서 우리는 같이 드럼 머신을 중지해야합니다 짧은 뮤지컬 값은 오는 즉시로 427 00:23:43,030 --> 00:23:43,700 끝. 428 00:23:43,700 --> 00:23:46,980 그리고 그 infixed 연산자 그 슈퍼 도움이됩니다. 429 00:23:46,980 --> 00:23:50,090 >> 추천하고 중위 표기 이것은 종류의 좋은 430 00:23:50,090 --> 00:23:57,095 말 때문에 기능 등을 가지고 인용, 이는 정수 나누기를 제공합니다 431 00:23:57,095 --> 00:24:01,010 뭔가에 의해 X의 else-- 죄송합니다, 즉 A와 B를해야합니다. 432 00:24:01,010 --> 00:24:04,740 당신은 B의 견적으로 작성할 수 있습니다. 433 00:24:04,740 --> 00:24:09,670 만약 put-- 원소한다면 이것의 또 다른 예. 434 00:24:09,670 --> 00:24:14,730 일부 목록에서 X 요소, 당신은 넣어 경우 그것은 역 따옴표에, 당신은 그것을 사용할 수 있습니다. 435 00:24:14,730 --> 00:24:20,400 그것은 상징하지 비록 플러스 마이너스 또는 배 등에 436 00:24:20,400 --> 00:24:24,630 당신의 이름을 사용하여 역 따옴표에 그런 기능 437 00:24:24,630 --> 00:24:27,045 꽤 멋진 중위 연산자로. 438 00:24:27,045 --> 00:24:29,670 코너 해리스 : 다시, 이것은이다 모든 단지 문법 설탕, 정말. 439 00:24:29,670 --> 00:24:32,310 그것은 언어의 핵심에 영향을주지 않습니다. 440 00:24:32,310 --> 00:24:37,440 >> 스티븐 KREWSON : 그래서 우리는 여기를 참조하십시오 우리의 프레 르 자크 노래의 마지막 구절, 441 00:24:37,440 --> 00:24:45,740 나는 약간 작은 코드를 연주하거나 병렬 조성물을 사용하여 분 442 00:24:45,740 --> 00:24:46,240 운영자. 443 00:24:46,240 --> 00:24:50,680 444 00:24:50,680 --> 00:24:54,950 이것은 일부를 말하는 또 다른 방법입니다 우리가 말을했습니다 무엇. 445 00:24:54,950 --> 00:24:59,986 그래서 당신은 기능을 매핑 할 수 있습니다 목록을 통해 하나의 인수의. 446 00:24:59,986 --> 00:25:02,860 코너 해리스 : 다시, 참조 Haskell-- 입문 교과서 447 00:25:02,860 --> 00:25:04,680 거기에이 모든 것을해야합니다. 448 00:25:04,680 --> 00:25:07,790 >> 스티븐 KREWSON : 그래서 여기에 꽤있어 스텝 시퀀서의 키 라인 449 00:25:07,790 --> 00:25:12,820 우리는 사용 살펴 보겠습니다 지능형리스트. 450 00:25:12,820 --> 00:25:17,810 그리고 우리는 여기에 해당 요소가된다 참조 다시 따옴표에 고정 된 연산자에. 451 00:25:17,810 --> 00:25:23,030 X는리스트의 요소한다면 X의의는, 우리는 퍼크 함수를 호출합니다. 452 00:25:23,030 --> 00:25:25,100 그래서 퍼크는 타악기 기능입니다. 453 00:25:25,100 --> 00:25:30,200 그것은의 일부 값 P 소요 모두의 경계 세트의 일부 454 00:25:30,200 --> 00:25:35,310 다른 타악기 소리 우리는 이전 슬라이드에서 본 것을, 455 00:25:35,310 --> 00:25:38,840 후 그 제공 분 음표의 기간입니다. 456 00:25:38,840 --> 00:25:43,190 그렇지 않으면 그것을 QNR를 제공하고, QNR 다만 분 음표 휴식입니다. 457 00:25:43,190 --> 00:25:44,970 >> 그래서이 좋은 뭔가를 건물입니다. 458 00:25:44,970 --> 00:25:52,110 우리는 요소들의리스트를 가지고 있고 하나의 일부 목록을 통해 우리는거야 루프 459 00:25:52,110 --> 00:25:54,540 우리 스텝 시퀀서의 최대 값. 460 00:25:54,540 --> 00:25:58,290 그리고 우리는 특정 난에에있을 때 최대 값에 하나의 목록, 461 00:25:58,290 --> 00:26:02,970 그 난이 부재의이면 이 함수에서 만든 세트, 462 00:26:02,970 --> 00:26:06,040 물론, 우리는 전원을 켜 타악기 참고로. 463 00:26:06,040 --> 00:26:10,960 그렇지 않으면, 우리는 단지 휴식을 재생하는 이다는 우리가 침묵, 대답. 464 00:26:10,960 --> 00:26:16,050 그리고 우리는 여기에서 볼에 그 수 이 목록의 이해 구문, 465 00:26:16,050 --> 00:26:20,030 X이에 의해 채워집니다 목록을 구축 466 00:26:20,030 --> 00:26:22,462 시퀀서의 글로벌 크기. 467 00:26:22,462 --> 00:26:23,295 코너 해리스 : 네. 468 00:26:23,295 --> 00:26:26,340 에 대한 기본 구문 지능형리스트입니다 469 00:26:26,340 --> 00:26:30,810 관련된 브래킷, 값 일부 변수, 바, 470 00:26:30,810 --> 00:26:34,260 변수의 가능한 값 자신은 브래킷을 마감했다. 471 00:26:34,260 --> 00:26:38,545 그리고 당신은 설정 빌더 표기법을 수행 한 경우 수학 클래스의 모든 종류의, 472 00:26:38,545 --> 00:26:45,999 당신은 이러한 2N에 설정 한 즉, n은 나에 N Z입니다. 473 00:26:45,999 --> 00:26:48,290 이 표기법 누군지 모르겠지만, 유사 암시하기위한 것입니다 474 00:26:48,290 --> 00:26:49,630 그 수학적 표기. 475 00:26:49,630 --> 00:26:51,880 스티븐 KREWSON : 그리고 당신은 할 수 있습니다 여러 조건을 적용 476 00:26:51,880 --> 00:26:56,250 목록에 여러 필터 아주 좋은 이해. 477 00:26:56,250 --> 00:27:01,800 대수 types-- 우리 여기에 오래 남아되지 않습니다. 478 00:27:01,800 --> 00:27:04,840 좋은 개념에서가 아니다 하스켈 또는 좋은, 명백한 개념 479 00:27:04,840 --> 00:27:10,720 하는 방법을 말하자면, 기본의 함수 또는 뭔가 매개 변수입니다. 480 00:27:10,720 --> 00:27:13,370 파이썬에서,이 매우 쉽습니다. 481 00:27:13,370 --> 00:27:18,460 에 equals와 당신은 말할 수 함수의 선언, 482 00:27:18,460 --> 00:27:21,420 기본 값 케이스 없음 제공되지 않습니다. 483 00:27:21,420 --> 00:27:27,010 >> 하스켈, 당신은 아마 수 어쩌면을 입력 아마 사용 484 00:27:27,010 --> 00:27:32,190 어느 하나 아무것도지지 않습니다 또는 형의 값 단지. 485 00:27:32,190 --> 00:27:38,630 그래서 우리는 드럼 머신이 악용 우리는 선택 볼륨을 제공 할 수 있도록 486 00:27:38,630 --> 00:27:40,730 드럼 부의 각 파라미터. 487 00:27:40,730 --> 00:27:46,160 488 00:27:46,160 --> 00:27:54,680 그것은 우리에게 EQ를 갖는 방법을 제공합니다 그래서 또는 특정 채널의 볼륨. 489 00:27:54,680 --> 00:27:56,440 >> 코너 해리스 :에 다른 하스켈 예, 490 00:27:56,440 --> 00:28:00,450 당신은 아마에 사용되는 볼 수 있습니다 실패 할 수 있습니다 기능. 491 00:28:00,450 --> 00:28:03,470 이 공통의 하나입니다. 492 00:28:03,470 --> 00:28:07,010 >> 스티븐 KREWSON : 그리고 당신은 제공 할 수 있습니다 기본적으로 오류 메시지의 일종. 493 00:28:07,010 --> 00:28:11,020 그리고 그 때 특히 편리합니다 당신은 하스켈의 I / O를 수행하고 있습니다. 494 00:28:11,020 --> 00:28:12,044 그 트릭이 될 수 있습니다. 495 00:28:12,044 --> 00:28:13,960 코너 해리스 : 또는 용 비슷한 예, 생각 496 00:28:13,960 --> 00:28:17,460 부문을 포함하는 기능 0이 될 수있는 매개 변수. 497 00:28:17,460 --> 00:28:20,020 그리고 그 기능을 할 수 어쩌면 어떤 돌아갑니다. 498 00:28:20,020 --> 00:28:22,802 0에 의해 구분 없음 존재하지 않는 경우는 그래서, 그냥 무엇이든 반환합니다. 499 00:28:22,802 --> 00:28:25,010 그리고 부문에 의해 경우가있다 0, 그것은 아무 것도 반환하지 않습니다 500 00:28:25,010 --> 00:28:26,910 에러를 시그널링하는 방법으로. 501 00:28:26,910 --> 00:28:30,330 하나 결과 때문에 하스켈의 매우 엄격한 입력 502 00:28:30,330 --> 00:28:34,100 더 real--가 없습니다 것입니다 예외는, 기본적으로, 어색하다 503 00:28:34,100 --> 00:28:36,160 오류 처리는 어색하다. 504 00:28:36,160 --> 00:28:39,440 그리고 이것은 매우 하나입니다 그것을하는 일반적인 방법. 505 00:28:39,440 --> 00:28:42,990 >> 스티븐 KREWSON : 그래서 지금 우리가 얻을 다른 압도적 인 일에 506 00:28:42,990 --> 00:28:49,160 하스켈에 대해 어떤 패턴입니다 매칭 및 기능을 정의. 507 00:28:49,160 --> 00:28:53,390 나는 마지막 슬라이드에서 당신을 보여 주었다 스텝 시퀀스의 선언 508 00:28:53,390 --> 00:28:58,170 아마 값을했다 기능, 다음 INT, 다음 정수의 목록 509 00:28:58,170 --> 00:29:03,850 다음의 순서를 반환 음악 값이 주석 510 00:29:03,850 --> 00:29:05,375 피치와 볼륨 모두. 511 00:29:05,375 --> 00:29:08,030 512 00:29:08,030 --> 00:29:11,820 >> 그래서이 세 가지 인자가 될 수 있습니다 다음과 같은 방법으로 일치하는 패턴. 513 00:29:11,820 --> 00:29:16,660 그리고 우리는 항상을 확인하려면 먼저 기본 케이스 또는 종료 케이스를 않습니다. 514 00:29:16,660 --> 00:29:19,690 그리고이 밑줄 바로 해석 될 수있다 515 00:29:19,690 --> 00:29:22,340 거기에 어떤 값을 의미합니다. 516 00:29:22,340 --> 00:29:26,580 우리는 순서 단계로 전화를받을 경우에 따라서 일부 값으로, 다른 값, 517 00:29:26,580 --> 00:29:32,210 다음 빈리스트, 우리는 무엇을 할 반환 단지 침묵, 나머지는 0이다. 518 00:29:32,210 --> 00:29:35,110 >> 그리고 대신 그 빈 목록 또는 0 인, 519 00:29:35,110 --> 00:29:38,150 우리가이기 때문에 그것은, 나머지는 0이다 음악 유형을 다루는, 520 00:29:38,150 --> 00:29:43,230 그리고 음악의 빈 목록 형은없는 시간의 휴식입니다. 521 00:29:43,230 --> 00:29:45,680 그것은 어떤 음악 없습니다. 522 00:29:45,680 --> 00:29:51,460 우리는 단계를 얻을 수 있다면 우리는 볼 볼륨 인수에 대해 v를 순서 523 00:29:51,460 --> 00:29:57,290 주의 악기에 대한 P 인수, 다음의 X의 목록을 표시합니다. 524 00:29:57,290 --> 00:29:58,360 >> 그 다음 우리는 몇 가지 물건을한다. 525 00:29:58,360 --> 00:30:01,290 특히, 적용 이 목록의 이해, 526 00:30:01,290 --> 00:30:05,700 우리는 몇 가지를 수행 아마 값에 대한 작업 527 00:30:05,700 --> 00:30:10,050 그래서 숫자 값으로 전원을 켭니다 그러므로 열거되고 사용될 수있다 528 00:30:10,050 --> 00:30:12,300 악기를 선택합니다. 529 00:30:12,300 --> 00:30:16,730 다시이 조금이고 비트 의도적으로 inconcise 530 00:30:16,730 --> 00:30:20,580 다만 모든 이상한 것들을 보여 당신은 당신으로 하스켈에서 할 수있는 531 00:30:20,580 --> 00:30:23,170 자신의 시간에 그것을 좀 봐. 532 00:30:23,170 --> 00:30:23,802 >> 괜찮아. 533 00:30:23,802 --> 00:30:26,010 그래서 우리는 마침내에 있어요 우리가 무엇으로 설정 수행 534 00:30:26,010 --> 00:30:28,820 이는 일부 컴퓨터 음악을 만들 수 있습니다. 535 00:30:28,820 --> 00:30:32,250 그래서 우리는 시도거야 프레 르 자크의 노래를합니다. 536 00:30:32,250 --> 00:30:35,220 그래서 얼마나 많은있다 프레 르 자크의 문구? 537 00:30:35,220 --> 00:30:38,790 538 00:30:38,790 --> 00:30:39,680 네. 539 00:30:39,680 --> 00:30:40,460 큰. 540 00:30:40,460 --> 00:30:42,490 그리고 어떤 좋은 것은이다 그들은 모두 반복하고 541 00:30:42,490 --> 00:30:46,990 2 개인 회 동량. 542 00:30:46,990 --> 00:30:50,730 >> 그래서 우리는 네 개의 구가 각각 두 번 반복. 543 00:30:50,730 --> 00:30:53,590 특히, 그들은 원형에있어. 544 00:30:53,590 --> 00:30:55,340 그리고, 많은있다 여러 가지 방법이 구현 545 00:30:55,340 --> 00:30:57,520 이렇게 재미있을 수있는 라운드. 546 00:30:57,520 --> 00:31:00,260 나는 그것을 한 적이 꽤 여기에 간단한 방법, 547 00:31:00,260 --> 00:31:05,760 이는 단지 라인을 construct--하는 것입니다 함수 값의 음악 목록을 얻어 548 00:31:05,760 --> 00:31:10,390 순차적 인 구성으로 바뀝니다 그 연속 조성물을 도포하여 549 00:31:10,390 --> 00:31:13,000 운영자. 550 00:31:13,000 --> 00:31:19,540 >> 그리고 나는 다른 부분을 지연 하여 그들에게 휴식과 함께 시작합니다. 551 00:31:19,540 --> 00:31:22,770 그래서 두 조치의 나머지 부분과 시작, 다음 4 소절의 휴식, 552 00:31:22,770 --> 00:31:26,160 여섯의 후 휴식 측정 한 다음 둥근 553 00:31:26,160 --> 00:31:32,290 우리 모두가이 노래를 알고, 작동합니다. 554 00:31:32,290 --> 00:31:37,180 우리가 보는 두 개의 주석 또는 음악 값 수정 555 00:31:37,180 --> 00:31:43,150 즉,이 순서에 포함 음악 요소의 배열. 556 00:31:43,150 --> 00:31:44,810 우리는 추가 볼륨이 있습니다. 557 00:31:44,810 --> 00:31:48,960 이것은 주석을 함수 특정 볼륨과 음악. 558 00:31:48,960 --> 00:31:51,320 이 좋은 예입니다 미디 신호 실행의 559 00:31:51,320 --> 00:31:57,510 의 0-127, 일곱 비트 수행 될 수있는 정보. 560 00:31:57,510 --> 00:32:00,650 >> 그리고 then-- 우리는 매우를 보았다 간략하지만 일반 MIDI 561 00:32:00,650 --> 00:32:02,310 모든 다른 악기의 목록입니다. 562 00:32:02,310 --> 00:32:04,450 그리고 이들의 전체 많이하지 않습니다. 563 00:32:04,450 --> 00:32:11,230 당신이 디지털 오디오 워크 스테이션을 사용하는 경우, 을 Ableton 라이브 또는 Pro Tools의 같은, 564 00:32:11,230 --> 00:32:17,560 믿을 수 없을만큼 넓은 범위가있다 신디사이저와 VST 악기. 565 00:32:17,560 --> 00:32:21,510 하지만 MIDI 표준 만 몇 가지, 또는 수십 있습니다. 566 00:32:21,510 --> 00:32:22,799 그리고 그들 중 일부는 재미있다. 567 00:32:22,799 --> 00:32:25,840 우리가 연주하면 나는 그것이 재미있을 것이라고 생각 악기 MIDI 악기 568 00:32:25,840 --> 00:32:30,550 헬리콥터, 다음 라운드를 통해 다음 방법, 569 00:32:30,550 --> 00:32:37,980 우리는 다음의 패드 신디사이저를했다 이 진부 리드 구형파 신디사이저, 570 00:32:37,980 --> 00:32:44,240 다음, 습지 음성있는 내 나쁜 MIDI에 약간 불명료 571 00:32:44,240 --> 00:32:46,410 신디사이저,하지만 확인을 클릭합니다. 572 00:32:46,410 --> 00:32:50,030 >> 그리고 우리는이하자를 참조하십시오 그리고 하스켈에서 구문, 573 00:32:50,030 --> 00:32:54,030 그리고, 우리는 연주 이러한 모든 부분 574 00:32:54,030 --> 00:32:56,265 병렬 구성 연산자. 575 00:32:56,265 --> 00:33:00,260 576 00:33:00,260 --> 00:33:02,296 그리고 우리는 아마이 중 일부를 보여줄 수 있습니다. 577 00:33:02,296 --> 00:33:07,674 578 00:33:07,674 --> 00:33:08,340 여기에 코드입니다. 579 00:33:08,340 --> 00:33:14,960 그리고 당신은 C에서 볼 수있을 것 목구멍 청소 및 설정의 많은 580 00:33:14,960 --> 00:33:19,760 당신 앞에 테이블 코드 이 같은 음악을 만들 수 있습니다. 581 00:33:19,760 --> 00:33:22,080 또는 다른 프로그래밍 언어, 당신은 아마 좋겠 582 00:33:22,080 --> 00:33:27,210 어떤 종류의 상호 작용해야 라이브러리 나 API와 모든 설정, 583 00:33:27,210 --> 00:33:28,725 그리고 당신은 정리해야 할 것이다. 584 00:33:28,725 --> 00:33:33,810 그러나 여기 하스켈은, 나는 한 번 생각 당신은 믿을 수 없을만큼, 그것의 묘리를 터득 585 00:33:33,810 --> 00:33:35,770 읽고 매우 표현. 586 00:33:35,770 --> 00:33:38,930 587 00:33:38,930 --> 00:33:43,240 그래서 구현이있다 프레 르 자크의. 588 00:33:43,240 --> 00:33:43,740 괜찮아. 589 00:33:43,740 --> 00:33:47,557 이제 우리는 타악기를 추가하려면, 이는 약간 지저분이다. 590 00:33:47,557 --> 00:33:49,015 그럼 슬라이드를 살펴 보자. 591 00:33:49,015 --> 00:33:56,880 592 00:33:56,880 --> 00:34:00,540 그래서 큰 생각하는 것입니다 목록 또는 부품의 무리. 593 00:34:00,540 --> 00:34:04,140 그 롤의 컴퓨터에서,이 아마 여덟에 대해 일반적이었다 594 00:34:04,140 --> 00:34:08,670 10 리듬 또는 타악기 부분. 595 00:34:08,670 --> 00:34:10,159 그리고 기술의 무리를 사용합니다. 596 00:34:10,159 --> 00:34:14,889 그리고 우리는 these-- 사용에 대해 얘기했습니다 주름 필터, 람다 함수 597 00:34:14,889 --> 00:34:19,429 값을 생성하기 목록 상에 매핑 일부 범위 1에서 R, R은 16 598 00:34:19,429 --> 00:34:20,699 또는 시퀀서에서 32 단계. 599 00:34:20,699 --> 00:34:23,810 600 00:34:23,810 --> 00:34:29,920 >> 그리고 그 목록의 값이있을 경우 다음 우리는 시퀀서를 통해 실행중인로서, 601 00:34:29,920 --> 00:34:34,190 이상 그것을 통해 실행 이상은 그 노트 온, 602 00:34:34,190 --> 00:34:36,060 그 샘플이 트리거됩니다. 603 00:34:36,060 --> 00:34:42,810 604 00:34:42,810 --> 00:34:47,110 여기에 모든 다른 이상한 방법이 있습니다 나는 노트를 생성하기 위해 함께했다. 605 00:34:47,110 --> 00:34:48,940 자신의 반 합계를보십시오. 606 00:34:48,940 --> 00:34:50,360 그것은 멋진 소리를합니다. 607 00:34:50,360 --> 00:34:53,066 608 00:34:53,066 --> 00:34:54,690 시간은 우리는이를 통해 갈거야, 허용. 609 00:34:54,690 --> 00:34:59,200 하지만 지금, 나는 추측 우리는 우리가 무엇을 데모한다. 610 00:34:59,200 --> 00:35:01,380 의이 확인 간다를 바란다. 611 00:35:01,380 --> 00:35:02,670 >> 그래서이 GHCI이다. 612 00:35:02,670 --> 00:35:06,580 613 00:35:06,580 --> 00:35:09,121 그리고 우리는 파일을로드 할 수 있습니다 나는라고 song.lhs이, 614 00:35:09,121 --> 00:35:10,620 이는 내가 당신을 보여 주었다 파일입니다. 615 00:35:10,620 --> 00:35:11,470 큰 확인. 616 00:35:11,470 --> 00:35:15,010 코너는 앞서 말했듯이, 그것은 컴파일, 그것은 검사 유형, 617 00:35:15,010 --> 00:35:18,380 그래서 쉽게 많이 호흡 할 수 있습니다. 618 00:35:18,380 --> 00:35:20,010 그것은 나에 날려 않을거야. 619 00:35:20,010 --> 00:35:22,720 >> 나는 당신에게 유용한 뭔가를 보여주고 싶은 않았다. 620 00:35:22,720 --> 00:35:25,900 당신은 저를 볼 수 있습니다 로드 모듈 (50)을 불렀다. 621 00:35:25,900 --> 00:35:28,240 당신은 그 모듈을 검색 할 수 있습니다. 622 00:35:28,240 --> 00:35:32,092 그리고 이것은 매우 좋은 doing-- 대한 아마 무슨 623 00:35:32,092 --> 00:35:34,550 하스켈이 아닌 당신이하고있는 소프트웨어 개발이라는 624 00:35:34,550 --> 00:35:36,980 하지만 당신은 많은 작업을 수행 할 수 있습니다 자신의 재미 물건. 625 00:35:36,980 --> 00:35:42,410 그리고 워크 플로우는 정말 좋은 다른 많은 언어에 비해 626 00:35:42,410 --> 00:35:45,872 당신은 정말 볼 수 있기 때문에 무슨 일이 일어나고 있는지 읽을 수있는 방법입니다. 627 00:35:45,872 --> 00:35:47,830 그래서 우리는 우리가 가지고있는 것을 볼 수 이 모든 문구, 어떤 628 00:35:47,830 --> 00:35:53,760 음악 피치의 목록이 있고, 우리 더 큰 무언가로 다음을 구축, 629 00:35:53,760 --> 00:35:55,220 이는 음악 곡. 630 00:35:55,220 --> 00:35:58,450 그것은 음악 장치입니다. 631 00:35:58,450 --> 00:36:05,545 그리고 우리는이 모든 것을 재생할 수 있습니다 함수 호출 놀이 음악. 632 00:36:05,545 --> 00:36:09,040 당신은 여기에 내려 볼 수 있습니다. 633 00:36:09,040 --> 00:36:11,310 어떤 바로 재생됩니다. 634 00:36:11,310 --> 00:36:15,040 >> 내가 이야기하지 않았다 say--한다 어디에나이 달러 기호입니다. 635 00:36:15,040 --> 00:36:17,980 달러 기호는 다른 중위 연산자입니다. 636 00:36:17,980 --> 00:36:22,500 그러나 가장 낮은 우선 순위가 효과적으로 연산자의 637 00:36:22,500 --> 00:36:24,960 에 그 모든 것을 의미합니다 달러 기호의 왼쪽 638 00:36:24,960 --> 00:36:28,460 및 달러 기호의 오른쪽에, 우리는 이전에 평가받을 것입니다. 639 00:36:28,460 --> 00:36:31,430 그래서 다른 같은 종류의의 괄호를 추가하는 방법입니다. 640 00:36:31,430 --> 00:36:33,980 641 00:36:33,980 --> 00:36:36,220 >> 코너 해리스 : 그것은 기본적이다 함수의 합성. 642 00:36:36,220 --> 00:36:40,026 그리고 당신이 경우 잔 마셔요하지 않는 것이 보장 당신은 기능면 또는 중위를 가지고 643 00:36:40,026 --> 00:36:42,900 양쪽에 사업자, 그들은하지 않습니다 가로 질러 연결하고 당신을 줄 644 00:36:42,900 --> 00:36:46,030 예기치 않은 결과. 645 00:36:46,030 --> 00:36:49,790 >> 스티븐 KREWSON : 그래서 우리는 주는거 그를 사용하여, 우리는 호출 할 수 있습니다. 646 00:36:49,790 --> 00:36:51,415 첫째, 우리는 드럼없이 재생할 수 있습니다. 647 00:36:51,415 --> 00:37:00,330 648 00:37:00,330 --> 00:37:03,170 즉, 헬리콥터의 미디 헬기. 649 00:37:03,170 --> 00:37:05,495 >> [음악 재생] 650 00:37:05,495 --> 00:37:08,525 651 00:37:08,525 --> 00:37:09,525 사각 파가있다. 652 00:37:09,525 --> 00:37:24,520 653 00:37:24,520 --> 00:37:25,490 음성 습지. 654 00:37:25,490 --> 00:37:27,630 그리고 당신은 정말이 야생 갈 수 있습니다. 655 00:37:27,630 --> 00:37:30,872 나는 아주 간단 하나를 고른 내가 알고 있기 때문에 내가 뜯어 안 656 00:37:30,872 --> 00:37:31,830 나는 씹을 수있는 것보다 더. 657 00:37:31,830 --> 00:37:36,460 그냥 아주 간단하게 주요 아이디어를 표시합니다. 658 00:37:36,460 --> 00:37:39,952 하지만 내가 좋아하는, 우리가했습니다했다 이 일부 드럼을 추가 할 수있어. 659 00:37:39,952 --> 00:37:41,910 바로이 때문에 조금 꿰 뚫을 수없는, 660 00:37:41,910 --> 00:37:45,790 나는를 사용하지 않은 드럼 파트의 이름, 661 00:37:45,790 --> 00:37:49,490 그들이이기 때문에 나는 them-- 매핑 그 열거 클래스의 일부, 662 00:37:49,490 --> 00:37:51,500 나는 정수로 매핑. 663 00:37:51,500 --> 00:37:53,120 하나는베이스 드럼과 같다. 664 00:37:53,120 --> 00:37:54,370 제로뿐만 아니라입니다. 665 00:37:54,370 --> 00:37:56,000 일곱 높은 모자이다. 666 00:37:56,000 --> 00:38:00,920 그리고 여기 아래에 어디 기능은 좀 더 무작위로 얻을 수 667 00:38:00,920 --> 00:38:02,100 이러한 콩가 드럼 같다. 668 00:38:02,100 --> 00:38:08,360 >> 그래서 당신은 어쩌면 비슷해 생각한다면 드럼 머신을 구현하는 재미있는 방법 669 00:38:08,360 --> 00:38:12,830 매우 질서 사용하는 것입니다 당신의베이스 드럼에 패턴. 670 00:38:12,830 --> 00:38:17,640 그래서 예를 들면, 이상 필터링에 다시주는 모든 것에 목록 671 00:38:17,640 --> 00:38:20,590 이 모듈 04을 촬영하고 1. 672 00:38:20,590 --> 00:38:27,190 그래서 1, 5, 9, 13, 17-- 그래서이 얻을 모든 측정 값의 첫번째 비트이다. 673 00:38:27,190 --> 00:38:32,860 >> 그리고 나서 이는 동일 점은 2 단계에 걸쳐 이동했다. 674 00:38:32,860 --> 00:38:33,850 그래서 엉뚱한를합니다. 675 00:38:33,850 --> 00:38:37,480 그래서이 될 것이다 높은 모자 같은 것을. 676 00:38:37,480 --> 00:38:39,640 그리고 다시, 아래로 여기, 그것은 작은 임의의 677 00:38:39,640 --> 00:38:41,080 우리는 콩가 드럼을하고있는 때문이다. 678 00:38:41,080 --> 00:38:44,180 그리고 나도, 여기에 몇 가지 마라카스를 가지고있다. 679 00:38:44,180 --> 00:38:50,280 >> 그래서, 놀이 드럼 머신을 호출 할 수 있습니다 그러나 그것은 영원히 갈 것입니다, 680 00:38:50,280 --> 00:38:53,700 그것은 위로 잡아 시작될 수 있습니다 시스템 내에서의 모든 메모리를 포함 할 수있다. 681 00:38:53,700 --> 00:38:57,090 그래서이 함수를 호출합니다 우리가 볼 수 있습니다로 음악을 재생 682 00:38:57,090 --> 00:39:02,020 절단 병렬 구성을 사용하여 우리의 작은 프레 르 자크의 노래를 재생합니다 683 00:39:02,020 --> 00:39:04,200 이 이상한 드럼 머신과 함께. 684 00:39:04,200 --> 00:39:06,190 그럼 살펴 보자. 685 00:39:06,190 --> 00:39:10,920 그리고 개선 마십시오 내 모든 드럼 부분의 배열. 686 00:39:10,920 --> 00:39:13,375 나의 전문,하지만 그 일을 재미를 많이했다. 687 00:39:13,375 --> 00:39:17,678 688 00:39:17,678 --> 00:39:20,654 >> [음악 재생] 689 00:39:20,654 --> 00:39:52,260 690 00:39:52,260 --> 00:39:56,980 >> 그래서 물론,이 모든입니다 재미로 좀하지 691 00:39:56,980 --> 00:40:01,100 우리는 변환 할 수없는 경우 점수 그래서 아마 그것을 692 00:40:01,100 --> 00:40:04,650 해석 될 수있다 인간 연기자로. 693 00:40:04,650 --> 00:40:06,535 그래서 난 여기가 실행되지 않습니다. 694 00:40:06,535 --> 00:40:07,910 이미 파일을 생성했습니다. 695 00:40:07,910 --> 00:40:10,280 당신은 거기에 있음을 알 수 점 LilyPond file--이 696 00:40:10,280 --> 00:40:14,500 에 내 SEGUE을 통해 될 것입니다 Connor--과 점 MIDI 파일, 697 00:40:14,500 --> 00:40:18,610 무엇을 도트 PDF 파일, 인 LilyPond는 궁극적으로 생성합니다. 698 00:40:18,610 --> 00:40:23,770 >> 그러나이 그 스크립트, 그리고 나는거야 그들의 도움이 옵션을 실행합니다. 699 00:40:23,770 --> 00:40:28,090 당신은이 일어나 및 실행하는 경우 Euterpea, 당신은 MIDI 파일을 생성 할 수 있습니다. 700 00:40:28,090 --> 00:40:31,160 그리고 미디 파일에서 이 MIDI 2LY 프로그램, 701 00:40:31,160 --> 00:40:34,930 당신은 릴리를 생성 할 수 있습니다 연못 파일, 다음 702 00:40:34,930 --> 00:40:37,974 점수의 PDF를 생성 할 수 있습니다. 703 00:40:37,974 --> 00:40:39,390 그리고 우리는 이것 좀해야합니다. 704 00:40:39,390 --> 00:40:52,599 705 00:40:52,599 --> 00:40:55,140 그래서 코너는 아마 표시됩니다 당신은 어떻게이 더 나은 주석 706 00:40:55,140 --> 00:41:02,570 그러나 이것은 프레 르 자크는 같다 Euterpea 날에 발생. 707 00:41:02,570 --> 00:41:07,300 그냥 C에서 내가 생각해야거야 그것은 실제로의 해킹 무엇인지. 708 00:41:07,300 --> 00:41:11,090 그러나 그것은을위한 파이프 라인이다 당신은 그와 그렇게 할 방법에 대해 설명합니다. 709 00:41:11,090 --> 00:41:12,950 의는 LilyPond에 대한 자세한 내용을 얘기하자. 710 00:41:12,950 --> 00:41:15,780 >> 코너 해리스 : 확인을 보자. 711 00:41:15,780 --> 00:41:19,480 712 00:41:19,480 --> 00:41:21,419 당신은 당신 하스켈 알아 언급 했습니까? 713 00:41:21,419 --> 00:41:22,460 스티븐 KREWSON : 오, 그래. 714 00:41:22,460 --> 00:41:23,480 체크 아웃 당신에게 하스켈 알아보십시오. 715 00:41:23,480 --> 00:41:24,410 그것은 자원입니다. 716 00:41:24,410 --> 00:41:26,830 내가 어떻게 시작 때문이다 학습, 그것은 좋아요. 717 00:41:26,830 --> 00:41:27,580 바보하지 학습. 718 00:41:27,580 --> 00:41:28,829 >> 코너 해리스 : 그래서 온라인입니다. 719 00:41:28,829 --> 00:41:34,760 그래서라는 사람 [들림] learnyouahaskell.com, 공백. 720 00:41:34,760 --> 00:41:37,065 문법 아픈입니다. 721 00:41:37,065 --> 00:41:38,690 스티븐 KREWSON : 그것은 너무, 그림입니다. 722 00:41:38,690 --> 00:41:39,440 코너 해리스 : LilyPond 무엇 그래서인가? 723 00:41:39,440 --> 00:41:42,480 이 선언적 프로그래밍의 음악 조판을위한 언어. 724 00:41:42,480 --> 00:41:45,480 그래서 당신이 할 수있는 declarative-- HTML 같은 것들을 생각, 725 00:41:45,480 --> 00:41:50,900 당신이하지 않은 경우 제 말 HTML 어떻게 웹 브라우저가해야 말하지 않는다 726 00:41:50,900 --> 00:41:52,180 렌더링 페이지는 단계별로. 727 00:41:52,180 --> 00:41:54,096 그냥이 말하는 텍스트 설명입니다 728 00:41:54,096 --> 00:41:56,100 당신이 원하는의 페이지처럼 보이게합니다. 729 00:41:56,100 --> 00:41:59,310 >> 그리고, 그것은 또한 프로그램 즉,이 언어를 컴파일, 730 00:41:59,310 --> 00:42:02,300 또는 실제로 그 다음에 읽고 당신을 위해 조판을 수행, 731 00:42:02,300 --> 00:42:05,570 그리고이 밖으로 뱉어 멋진 찾고 PDF을 기록했다. 732 00:42:05,570 --> 00:42:08,250 또한 PNG 형식 또는 무엇이든을 얻을 수 있습니다. 733 00:42:08,250 --> 00:42:10,300 좋은 방법은 생각하는 이 유추된다 734 00:42:10,300 --> 00:42:16,620 라텍스 일종의 LillyPond 같은 점이다 하지만 평범한 조판합니다. 735 00:42:16,620 --> 00:42:20,360 그래서 그 대신 그렇지 않은 동행입니다 당신은 무엇을보고 WYSIWYG, 736 00:42:20,360 --> 00:42:22,960 당신 말처럼, 무엇을 얻을 피날레, 또는 시벨리우스, 737 00:42:22,960 --> 00:42:27,430 또는 Microsoft Word, 당신은 입력 할 수있는 실시간 실시간 초안 일 738 00:42:27,430 --> 00:42:31,340 그리고 즉시 변경 사항을 참조하십시오. 739 00:42:31,340 --> 00:42:32,140 >> 그것은 텍스트를 기반으로합니다. 740 00:42:32,140 --> 00:42:35,290 당신은 당신을 컴파일해야 별도의 프로그램을 사용하여 점수 741 00:42:35,290 --> 00:42:37,090 나중에 PDF 파일을 얻을. 742 00:42:37,090 --> 00:42:43,320 이것은 조금 작 당신이 인 경우에 사용하기에 편리 743 00:42:43,320 --> 00:42:46,520 직접 작성하려고 당신이있어 및 점수에 744 00:42:46,520 --> 00:42:48,620 컴퓨터를 구성하려고합니다. 745 00:42:48,620 --> 00:42:50,830 그러나 많은있다 그것에 대한 장점. 746 00:42:50,830 --> 00:42:56,110 하나는, 그것은 많은 더 좋은 보여요 LillyPond 실제로 할 수 있기 때문에 747 00:42:56,110 --> 00:42:58,210 할 시간을 제대로 레이아웃 결정, 748 00:42:58,210 --> 00:43:02,380 이 시벨리우스 나 피날레는 달리 그래서 손상된 알고리즘을 만들려면 749 00:43:02,380 --> 00:43:05,020 그들은 디스플레이 할 수 있음 실시간으로 가지. 750 00:43:05,020 --> 00:43:07,660 >> 왜 LilyPond--입니다 컴퓨터 그래픽은 어렵다. 751 00:43:07,660 --> 00:43:10,535 당신은 음악과 함께 아무것도하는 경우 당신은 점수를 기록 할, 752 00:43:10,535 --> 00:43:13,900 당신은 쓰고 싶지 않아 혼자서 모든 것을 알아 753 00:43:13,900 --> 00:43:19,040 그리는 방법부터 시작 직원 및 방법 메모장을 그립니다. 754 00:43:19,040 --> 00:43:21,020 그것은 매우 어렵습니다. 그것은 전에 해본 적이. 755 00:43:21,020 --> 00:43:22,170 당신은 괜찮아요. 756 00:43:22,170 --> 00:43:26,200 >> 당신은 피날레 나 시벨리우스를 사용하려는 경우, 그런 것들에 대한 파일 형식 757 00:43:26,200 --> 00:43:30,180 매우 복잡하고, 당신은 할 수 없습니다 정말 프로그램을 사용합니다. 758 00:43:30,180 --> 00:43:35,020 당신은 피날레와 시벨리우스을 열 수 있습니다 및 파일로 이동, 수출 PDF로 자신, 759 00:43:35,020 --> 00:43:37,600 하지만 당신은 정말 할 수 없습니다 스크립트에서 그를 호출합니다. 760 00:43:37,600 --> 00:43:40,440 LillyPond, 당신은 호출 할 수 있습니다 그 스크립트에서. 761 00:43:40,440 --> 00:43:44,397 당신은 쉽게 반복 할 수있다 라텍스 LillyPond. 762 00:43:44,397 --> 00:43:47,230 내가가는 그 시간이별로 없습니다 지금이 기술로, 763 00:43:47,230 --> 00:43:48,321 하지만 그들은 존재한다. 764 00:43:48,321 --> 00:43:50,070 당신이보고 싶은 경우 LillyPond 책으로, 765 00:43:50,070 --> 00:43:53,760 그것은 함께 제공되는 프로그램 당신의 LillyPond 배포, 766 00:43:53,760 --> 00:43:57,030 그것은 반복하는위한거야 LaTeX의에 LillyPond 조각 767 00:43:57,030 --> 00:44:00,340 당신이 뭔가를 수행하려는 경우 큰 음악학 문서 등 768 00:44:00,340 --> 00:44:02,289 예를 들어 예제와 함께. 769 00:44:02,289 --> 00:44:04,580 그리고 그것은 좋은 기술이다 당신이 어떤 일을하는 경우 생활 770 00:44:04,580 --> 00:44:05,770 음악뿐 아니라 CS50와. 771 00:44:05,770 --> 00:44:09,320 나는 모든 LillyPond를 사용했습니다 내 조성 사업 772 00:44:09,320 --> 00:44:11,880 나는 기본적으로 이후 고등학교 수석. 773 00:44:11,880 --> 00:44:13,455 >> 그래서 여기에 몇 가지 간단한 예입니다. 774 00:44:13,455 --> 00:44:17,490 775 00:44:17,490 --> 00:44:21,060 이것은 기본적으로 대표 난이도의 776 00:44:21,060 --> 00:44:23,481 대부분의 사람들 것 그들이 노력하고 있었다 그것을 직면 777 00:44:23,481 --> 00:44:24,980 간단한 프로젝트에 LilyPond를 사용합니다. 778 00:44:24,980 --> 00:44:29,519 이 첫 번째 시작입니다 바흐의 코랄 전주곡에. 779 00:44:29,519 --> 00:44:31,810 이 아래 하나 발췌 한 것입니다 내 자신의 작품 중 하나에서, 780 00:44:31,810 --> 00:44:34,650 그것은 보여주기 위해 그냥 거기에 [들림] 같은 당신 일 781 00:44:34,650 --> 00:44:38,550 같은 여러 라인을 넣어 직원, 어떻게 가사 undersetting 작동합니다. 782 00:44:38,550 --> 00:44:41,350 783 00:44:41,350 --> 00:44:46,110 가사 언더 아주의 일이다 합창 음악 LilyPond를 사용하기 쉬운. 784 00:44:46,110 --> 00:44:48,814 >> 그리고 다음 몇 가지 더있다 여기에 복잡한 예. 785 00:44:48,814 --> 00:44:50,980 이러한 모든 년 완료 LilyPond 그들은 가능​​한입니다. 786 00:44:50,980 --> 00:44:55,280 첫 번째 발췌에서입니다 [들리지] [들림]에 의해. 787 00:44:55,280 --> 00:44:58,860 그리고이 [들리지]에서 솔로베이스에 대한 조각 788 00:44:58,860 --> 00:45:03,550 [들림]에 의해 플루트, 누가 longtime-- 누구 789 00:45:03,550 --> 00:45:07,101 의 오랜 일원이었다 여기에 음악학과, 나는 생각한다. 790 00:45:07,101 --> 00:45:08,600 나는 그가 떠나는 사라 어디 모르겠어요. 791 00:45:08,600 --> 00:45:12,410 그러나 그는 하버드의 고문이었다 오랫동안 작곡가 협회. 792 00:45:12,410 --> 00:45:13,530 멋진 남자. 793 00:45:13,530 --> 00:45:16,920 그리고 그는 매우 가지고 어떤 음악을 기록 복잡한 표기법이 LillyPond 794 00:45:16,920 --> 00:45:20,500 그럼에도 불구하고 매우 능숙하게 처리 할 수​​ 있습니다. 795 00:45:20,500 --> 00:45:26,030 >> 그러니 당신의 감각을 제공하는 것을 이 물건의 기능은 너무으로 죠 796 00:45:26,030 --> 00:45:28,960 LillyPond의 내부 매우 복잡하다. 797 00:45:28,960 --> 00:45:31,060 그리고 당신은 그것을 사용할 수 있습니다 장시간 포함 798 00:45:31,060 --> 00:45:32,520 꽤 복잡한에 대한 일없이 정말 799 00:45:32,520 --> 00:45:34,060 그들에 대해 많이 알 필요. 800 00:45:34,060 --> 00:45:38,720 그러나 기본 개념에 그입니다 가장 낮은 수준, LillyPonds의 원자 801 00:45:38,720 --> 00:45:39,970 노트입니다. 802 00:45:39,970 --> 00:45:42,761 노트를 포함 컨텍스트라는 목소리. 803 00:45:42,761 --> 00:45:44,510 그래서 음성 콘텍스트 기본적으로 해당 804 00:45:44,510 --> 00:45:47,410 동시 발음 한 줄에. 805 00:45:47,410 --> 00:45:49,410 그리고 상황이 될 수 있습니다 계층 포함 806 00:45:49,410 --> 00:45:53,590 높은 수준의 것들에 그 점수에 직원을 대표 807 00:45:53,590 --> 00:45:56,750 같은 또는 더 큰 그룹 피아노 직원 또는 성가대 직원, 808 00:45:56,750 --> 00:45:58,990 다음 결국 전체 점수 컨텍스트. 809 00:45:58,990 --> 00:46:02,260 그리고 당신은 실제로 포함 할 수 책에서 여러 기록했다. 810 00:46:02,260 --> 00:46:05,770 >> 그리고 모든 상황이있다 첨부 된 조판의 수입니다. 811 00:46:05,770 --> 00:46:08,340 당신은을 통해 보면 문맥의 내용 812 00:46:08,340 --> 00:46:14,410 및 특정 기호 나 인쇄 필요에 따라 심볼의 특정 클래스입니다. 813 00:46:14,410 --> 00:46:17,840 모든 음성 문맥에 따라서, [들림] 노트가있다 814 00:46:17,840 --> 00:46:24,270 기본적으로 기능입니다 조각사 또는 모든 노트를 쓰는 목적 815 00:46:24,270 --> 00:46:26,290 페이지의 오른쪽 부분에 머리. 816 00:46:26,290 --> 00:46:29,510 그리고 갈라진 조각사, 거기에있는 직원에 갈라진 틈을 기록합니다. 817 00:46:29,510 --> 00:46:31,517 그리고 메트로놈이있다 마크 조각사 그 818 00:46:31,517 --> 00:46:33,100 점수 메트로놈 마크를 기록합니다. 819 00:46:33,100 --> 00:46:36,410 이 모든 꽤 맞는 잘 계층에. 820 00:46:36,410 --> 00:46:39,500 그리고 그것은 매우, 매우, 매우있어 사용자 정의, 어떤 당신이 필요로하는 821 00:46:39,500 --> 00:46:42,880 당신은 그런 일을 얻으려면. 822 00:46:42,880 --> 00:46:45,730 >> 그래서 모든 컨텍스트를 다른 속성의 많은 823 00:46:45,730 --> 00:46:52,410 당신은 모든 것을 수정할 수 있습니다 다양한 글꼴 간격에서 824 00:46:52,410 --> 00:46:54,942 사물의 크기에 선택. 825 00:46:54,942 --> 00:46:56,900 당신도하고 싶은 경우 더 복잡한 것, 826 00:46:56,900 --> 00:46:59,210 임베디드 스크립팅 언어가있다. 827 00:46:59,210 --> 00:47:01,820 그들은 체계를 사용하는 LISP의 방언이다. 828 00:47:01,820 --> 00:47:04,960 다음은 아마하지 않습니다 당신에게 아무 의미. 829 00:47:04,960 --> 00:47:06,900 그러나 기본적으로, 계획 다른 기능 830 00:47:06,900 --> 00:47:09,500 프로그래밍 언어, 다소간. 831 00:47:09,500 --> 00:47:10,800 >> 스티븐 KREWSON : 타이입니다. 832 00:47:10,800 --> 00:47:12,690 >> 코너 해리스 : 네. 833 00:47:12,690 --> 00:47:15,390 그것은 좋은 제휴에있어, 나는 가정한다. 834 00:47:15,390 --> 00:47:20,150 그리고 교육 언어로 사용되는, 실제로, 질량 번가 아래로 MIT에서. 835 00:47:20,150 --> 00:47:26,590 그리고 그것은 LillyPond 매우 편리합니다 다양한 기술적 인 이유. 836 00:47:26,590 --> 00:47:30,317 >> 그리고 당신은 간단하게하려면 조건문에 따라 개조하면 되겠 어, 837 00:47:30,317 --> 00:47:32,900 example--에 대한 특정있다 만난 점수의 조건, 838 00:47:32,900 --> 00:47:36,495 에 변경을 레이아웃이나 다음 whatnot-- 839 00:47:36,495 --> 00:47:37,620 그 시설이있다. 840 00:47:37,620 --> 00:47:38,667 그들은 복잡한입니다. 841 00:47:38,667 --> 00:47:40,250 그래서 여기 아주 간단한 코드 샘플입니다. 842 00:47:40,250 --> 00:47:43,810 이 다섯 줄을합니다. 843 00:47:43,810 --> 00:47:46,120 기본적으로, 두 직원을 정의하고있다. 844 00:47:46,120 --> 00:47:46,904 그것은 3/4에 있습니다. 845 00:47:46,904 --> 00:47:48,695 첫 번째 직원이 템포 표시가 부착 846 00:47:48,695 --> 00:47:51,110 하지만 그건 사실이야 전체 점수로 이동합니다, 847 00:47:51,110 --> 00:47:54,960 템포 마크 때문에 점수 수준에 있습니다. 848 00:47:54,960 --> 00:47:59,044 메트로놈 마크 조각사 상황에 맞는 점수를 부착된다. 849 00:47:59,044 --> 00:48:01,460 다른 키가 있습니다, [들림] 조각사 때문에 850 00:48:01,460 --> 00:48:02,710 직원 부착되어 있습니다. 851 00:48:02,710 --> 00:48:04,441 당신은 실제로 할 수 있습니다. 852 00:48:04,441 --> 00:48:06,190 내가 쓴 샘플입니다 실제로 C 장조, 853 00:48:06,190 --> 00:48:07,990 하지만 그것은 단지에의 당신은 할 수 있습니다 보여 854 00:48:07,990 --> 00:48:09,570 다른 직원에 다른 키. 855 00:48:09,570 --> 00:48:15,710 그리고 기본 구문은 사용자가 작성하는 것입니다 E, F, G, 무엇으로 이름을 확인합니다. 856 00:48:15,710 --> 00:48:18,910 당신이 임시표를 수행 할 경우, 당신은 IS 또는 ES 접미사. 857 00:48:18,910 --> 00:48:22,640 이것은 네덜란드에서입니다 음악학과 규칙. 858 00:48:22,640 --> 00:48:28,290 >> 그리고 옥타브 도약을 할, 당신은 사용할 필요가 이러한 마크, 쉼표 또는 아포스트로피을 선택합니다. 859 00:48:28,290 --> 00:48:30,580 상대는 의미 당신은 메모를 가지고 무엇이든, 860 00:48:30,580 --> 00:48:34,080 자동으로 plaec 될 이전에 가장 가까운 옥타브. 861 00:48:34,080 --> 00:48:37,624 그리고 당신은 이상을 이동하려면 다섯 번째 또는 more-- 말 fifth-- 862 00:48:37,624 --> 00:48:39,165 다음은 [들리지]를 사용합니다. 863 00:48:39,165 --> 00:48:42,580 그러나 그렇지 않으면, 당신은 필요가 없습니다 모든 단일 노트의 옥타브를 지정합니다. 864 00:48:42,580 --> 00:48:46,130 >> 그리고 상대 C, 프라임, 그리고 C는 그냥 중간 C를 지정 865 00:48:46,130 --> 00:48:48,630 베이스 C, 특히 첫 번째 노트. 866 00:48:48,630 --> 00:48:55,020 그럼 당신은 조직이 직원이 이 두 가지 음성이나 음악의 샘플, 867 00:48:55,020 --> 00:48:56,730 당신은 점수가 있습니다. 868 00:48:56,730 --> 00:48:58,440 그리고는 다음과 같습니다. 869 00:48:58,440 --> 00:49:01,780 870 00:49:01,780 --> 00:49:05,380 >> 당신은 시간을하려는 경우 LillyPond의 샘플을 복사 871 00:49:05,380 --> 00:49:07,530 이전에 코드 여기에 아래로 슬라이드하고 872 00:49:07,530 --> 00:49:09,030 LillyPond 자신을 위해 쓸 수 있습니다. 873 00:49:09,030 --> 00:49:11,280 나는 우리가 무언가를 가지고 알고 즉,이처럼 많이 보인다. 874 00:49:11,280 --> 00:49:17,236 875 00:49:17,236 --> 00:49:19,610 그래서 다른 기술이있다 라는 음악 XML은 유지 876 00:49:19,610 --> 00:49:22,030 완전히 다른 사람으로. 877 00:49:22,030 --> 00:49:28,150 XML은 텍스트 데이터 structure-- 내가있다 데이터 말 structure-- 말 안 878 00:49:28,150 --> 00:49:29,580 의 은유지도 정렬. 879 00:49:29,580 --> 00:49:33,800 그리고 그것은 유지하도록 설계 계층 적 데이터를 아주 잘. 880 00:49:33,800 --> 00:49:37,050 HTML은, 예를 들면, XML의 유형이다. 881 00:49:37,050 --> 00:49:41,090 그리고 당신은 XML을하기 때문에 말할 수있는 사람들 가진 모든 각도 브래킷과 각도 882 00:49:41,090 --> 00:49:44,700 브래킷 슬래시 표시 그 쇼 데이터 필드. 883 00:49:44,700 --> 00:49:47,390 >> 나는 코드가없는 음악 XML에서 예. 884 00:49:47,390 --> 00:49:50,450 당신은 스스로를 찾을 수 있습니다. 885 00:49:50,450 --> 00:49:53,735 기본적으로, 이유는 당신은 할 수 있습니다 중간 단계로 XML을 사용하는 886 00:49:53,735 --> 00:49:55,980 우선, 그것의 인 교환 형식 887 00:49:55,980 --> 00:50:02,301 에 대해 기본적으로 내가 말 안 every-- 다른 점수의 모든, 그러나 많은 888 00:50:02,301 --> 00:50:02,800 작가. 889 00:50:02,800 --> 00:50:04,966 당신이 음악을 쓸 경우에 따라서 XML뿐만 아니라 LillyPond 수 890 00:50:04,966 --> 00:50:08,080 이 auxilary의 도움으로 그것을 읽고 프로그램은 LY에 음악 XML을 호출 891 00:50:08,080 --> 00:50:11,360 또한 피날레는 읽을 수 있습니다 그것은, 시벨리우스는 그것을 읽을 수 있습니다. 892 00:50:11,360 --> 00:50:14,770 어떻게 내부 개체에 따라 계층 구조는, 음악을 나타내는 작동 893 00:50:14,770 --> 00:50:18,820 밖으로 쓰기는 더 쉬울 수 있습니다 LillyPond보다 음악을 XML로 894 00:50:18,820 --> 00:50:22,410 그냥 음악 XML에 의존 LY로 변환을 수행합니다. 895 00:50:22,410 --> 00:50:24,282 >> 나는 [들림] 음악 XML을 가지고 있다고 생각하지 않습니다. 896 00:50:24,282 --> 00:50:25,490 스티븐 KREWSON : 그것은하지 않습니다. 897 00:50:25,490 --> 00:50:26,340 누군가는하지만, 그것은 노력하고 있습니다. 898 00:50:26,340 --> 00:50:27,090 >> 코너 해리스 : OK. 899 00:50:27,090 --> 00:50:31,040 Euterpea는이 없습니다 아직 음악 XML 출력 기능. 900 00:50:31,040 --> 00:50:35,340 당신은 최종 프로젝트 아이디어를 원하는 경우, 어쩌면 사람과 연락 901 00:50:35,340 --> 00:50:38,620 스티븐이 알고있는, 그리고 그들은 당신의 도움을 사용할 수 있습니다. 902 00:50:38,620 --> 00:50:40,992 >> 스티븐 KREWSON : 그 사랑 것입니다. 903 00:50:40,992 --> 00:50:43,450 코너 해리스 : 또한, 기본적으로, 모든 프로그래밍 언어 904 00:50:43,450 --> 00:50:46,610 그는 소금의 가치 이미 XML 라이브러리를 가지고 905 00:50:46,610 --> 00:50:51,030 그래서 당신은 내부적으로 모든 변환 할 수 있습니다 일부 객체로 음악의 906 00:50:51,030 --> 00:50:54,120 XML 라이브러리를 쓸 수 있는지 그 적은 필요에서 907 00:50:54,120 --> 00:50:57,470 내부 구조 변경 어떤 음악은 개체 908 00:50:57,470 --> 00:51:00,310 를 작성하는 것보다 쓰고 싶어 직접 LillyPond에서 것이다. 909 00:51:00,310 --> 00:51:04,380 그럼 그냥 XML과 함께 인쇄 해당 언어로 XML 라이브러리, 910 00:51:04,380 --> 00:51:07,260 그건 보장되는 문법적으로 정확하고 모든 것을, 911 00:51:07,260 --> 00:51:08,720 다음 LillyPond로 변환. 912 00:51:08,720 --> 00:51:11,060 그래서 기술을 당신에게 할 수 있습니다 당신이 뭔가를하고있는 경우에 보면 913 00:51:11,060 --> 00:51:11,650 이 같은. 914 00:51:11,650 --> 00:51:14,490 915 00:51:14,490 --> 00:51:16,370 >> [들림], 다른 auxilarry 기술. 916 00:51:16,370 --> 00:51:21,700 이 기술 작품은 기본적으로 또는 LillyPond에 대한 기술 스튜디오. 917 00:51:21,700 --> 00:51:25,380 그래서 도움말을 제공합니다 템플릿 구문, 918 00:51:25,380 --> 00:51:28,770 다양한 일반에 대한 악기의 조합을 포함한다. 919 00:51:28,770 --> 00:51:32,780 너무보기 분할 화면을 수 있습니다 당신은 하나의 창에서 코드를 가질 수있다 920 00:51:32,780 --> 00:51:37,350 다른 창에서 PDF 및 PDF로 장소를 클릭 921 00:51:37,350 --> 00:51:40,650 관련로 이동합니다 소스 코드의 관광 명소입니다. 922 00:51:40,650 --> 00:51:45,330 당신이 실제로 있다면이 더 유용합니다 쓰기 LillyPond 자신을 파일 923 00:51:45,330 --> 00:51:47,400 당신이 발생하는 경우보다 그 프로그램. 924 00:51:47,400 --> 00:51:51,230 그러나 다시,이야 유용한 무언가가있다. 925 00:51:51,230 --> 00:51:51,970 >> 큰. 926 00:51:51,970 --> 00:51:55,860 또 다른 resources-- 난 그냥거야 매우 빠르게이를 통해 이동합니다. 927 00:51:55,860 --> 00:52:01,270 LillyPond manuals-- LillyPond가있다 웹 사이트에 우수한 설명서를 참조하십시오. 928 00:52:01,270 --> 00:52:02,270 그들은 자습서를 가지고있다. 929 00:52:02,270 --> 00:52:03,478 그들은 구문 참조가 있습니다. 930 00:52:03,478 --> 00:52:07,010 그들은 조각의 수백 여러 작은 것들에 대한 931 00:52:07,010 --> 00:52:09,930 요는 입증 할 필요가 있습니다 다양한 기능을 제공합니다. 932 00:52:09,930 --> 00:52:12,250 당신이 사용하고자하는 경우 스크립트 언어 933 00:52:12,250 --> 00:52:14,740 또는 더 광범위하게 사용자 지정하고있다 934 00:52:14,740 --> 00:52:16,730 내부는 해당 URL에서 참조합니다. 935 00:52:16,730 --> 00:52:21,950 음악 XML을 사용하려는 경우, 거기에 해당 URL, musicxml.com/tutorial. 936 00:52:21,950 --> 00:52:27,960 >> 그리고 당신은 계획을 배울 필요가있는 경우 당신은 실제로 사용하려는 때문에 937 00:52:27,960 --> 00:52:30,960 LillyPond에서 스크립트 시설, 다음 [들림]라는있다 938 00:52:30,960 --> 00:52:32,918 구조적 해석 컴퓨터 프로그램, 939 00:52:32,918 --> 00:52:35,820 이는뿐만 아니라 두 번째입니다 이제까지 written-- 큰 CS 교과서 940 00:52:35,820 --> 00:52:39,770 당신이 알고 싶다면 나중에 나를 찾을 나는 가장 큰 하나 is--에게 어떻게 생각하는지 941 00:52:39,770 --> 00:52:43,580 그러나 또한 매우 좋다 적절한 언어 소개. 942 00:52:43,580 --> 00:52:46,630 당신은보다 더 필요하지 않습니다 처음 몇 섹션. 943 00:52:46,630 --> 00:52:47,827 >> 그리고 그것 뿐이다. 944 00:52:47,827 --> 00:52:48,410 질문? 945 00:52:48,410 --> 00:52:54,068 946 00:52:54,068 --> 00:52:57,972 >> 학생 : 나는 다운로드 할 수 있습니다 생성 된 프레 르 자크 947 00:52:57,972 --> 00:53:01,050 그래서 난 내 iPod에 넣어 수 있습니까? 948 00:53:01,050 --> 00:53:07,574 >> 스티븐 KREWSON : 글쎄, 당신은 쓸 수 있습니다 Euterpea의 일부 WAV 파일에 연결할 수 있습니다. 949 00:53:07,574 --> 00:53:08,490 그리고 당신은 코드가 있습니다. 950 00:53:08,490 --> 00:53:10,000 그것은 GitHub의에 있습니다. 951 00:53:10,000 --> 00:53:15,590 당신의 자신의 변화를 확인 CS50 하이브 마음으로 프레 르 자크. 952 00:53:15,590 --> 00:53:17,095 그것은 좋은 것입니다. 953 00:53:17,095 --> 00:53:18,220 코너 해리스 : 다른 사람? 954 00:53:18,220 --> 00:53:20,261 스티븐 KREWSON : 우리가 필요로하는 너무 더 나은베이스 드럼. 955 00:53:20,261 --> 00:53:21,935 정말 나쁘다. 956 00:53:21,935 --> 00:53:26,565 >> 학생 : Euterpea뿐만 아니라이 구성의 측면,하지만 signal-- 957 00:53:26,565 --> 00:53:27,440 스티븐 KREWSON : 예. 958 00:53:27,440 --> 00:53:30,100 사실, 작업 I 때 내가 Euterpea에서 한 959 00:53:30,100 --> 00:53:33,450 이 항아리가 존재했다 예일 대학에서 과정을 졸업하는 960 00:53:33,450 --> 00:53:35,900 그건 ... 소리 합성에 있던 사용합니다. 961 00:53:35,900 --> 00:53:39,810 그래서 거기에 정말 화살표를 사용하여 좋은 방법 962 00:53:39,810 --> 00:53:46,150 그리고 우리가 본 표기법의 일부 신호를 함께 구성하는 기능. 963 00:53:46,150 --> 00:53:50,610 가장 특히, 저음에서 그들의 단순한 사인파이다. 964 00:53:50,610 --> 00:53:54,240 하지만 당신은 그 구도를 시작하는 경우 이상한 프로그래밍 방식으로, 965 00:53:54,240 --> 00:54:00,010 당신은 미친 소리를 얻을 수 있습니다 이상한 폭포 같은 효과. 966 00:54:00,010 --> 00:54:04,640 당신은 매우 견실 만들 수 있습니다 변조의 많은 소리. 967 00:54:04,640 --> 00:54:07,730 >> 나는 세부에 프로젝트를했다 이다 합성, 968 00:54:07,730 --> 00:54:12,290 어딘가에 FM 샘플링 사이. 969 00:54:12,290 --> 00:54:15,230 당신은 아주 작은 소요 작은 샘플, 다음 970 00:54:15,230 --> 00:54:20,440 어떤 종류의와 조합 변조기와 풍부한 사운드를 구축 할 수 있습니다. 971 00:54:20,440 --> 00:54:24,900 우리는 또한, 물리적 모델링을했다 물리학에 대해 생각하려고 972 00:54:24,900 --> 00:54:29,410 와 같은의 심리학 트럼펫, 그리고 방법에 대해 생각 973 00:54:29,410 --> 00:54:32,320 사운드가 ​​수신 거부한다 트럼펫의 종 974 00:54:32,320 --> 00:54:35,200 및 음향 방 및 모델링 975 00:54:35,200 --> 00:54:40,195 기본 발진기와 그. 976 00:54:40,195 --> 00:54:47,690 977 00:54:47,690 --> 00:54:48,940 코너 해리스 : 정말 고마워요. 978 00:54:48,940 --> 00:54:50,140 와줘서 고마워. 979 00:54:50,140 --> 00:54:52,400 그리고 나는 항상 기꺼이 email--으로 질문을 980 00:54:52,400 --> 00:54:55,020 connorharris@college.harvard.edu. 981 00:54:55,020 --> 00:54:57,020 >> 스티븐 KREWSON : 네. stephen.krewson@yale.edu. 982 00:54:57,020 --> 00:54:58,810 983 00:54:58,810 --> 00:55:00,360 시원한. 984 00:55:00,360 --> 00:55:01,667