-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathjazz.html
157 lines (145 loc) · 8.29 KB
/
jazz.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
<!DOCTYPE html>
<html>
<head>
<link rel="canonical" href="https://hardmath123.github.io/jazz.html"/>
<link rel="stylesheet" type="text/css" href="/static/base.css"/>
<title>Jazz is Open Source - Comfortably Numbered</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<link rel="alternate" type="application/rss+xml" title="Comfortably Numbered" href="/feed.xml" />
<!--
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script>
MathJax.Hub.Config({
tex2jax: {inlineMath: [['$','$']]}
});
</script>
-->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css" integrity="sha384-Um5gpz1odJg5Z4HAmzPtgZKdTBHZdw8S29IecapCSB31ligYPhHQZMIlWLYQGVoc" crossorigin="anonymous">
<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.js" integrity="sha384-YNHdsYkH6gMx9y3mRkmcJ2mFUjTd0qNQQvY9VYZgQd7DcN7env35GzlmFaZ23JGp" crossorigin="anonymous"></script>
<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/contrib/auto-render.min.js" integrity="sha384-vZTG03m+2yp6N6BNi5iM4rW4oIwk5DfcNdFfxkk9ZWpDriOkXX8voJBFrAO7MpVl" crossorigin="anonymous"></script>
<script>
document.addEventListener("DOMContentLoaded", function() {
renderMathInElement(document.body, {
// customised options
// • auto-render specific keys, e.g.:
delimiters: [
{left: '$$', right: '$$', display: true},
{left: '$', right: '$', display: false},
{left: '\\begin{align}', right: '\\end{align}', display: true},
{left: '\\(', right: '\\)', display: false},
{left: '\\[', right: '\\]', display: true}
],
// • rendering keys, e.g.:
throwOnError : false
});
});
</script>
</head>
<body>
<header id="header">
<script src="static/main.js"></script>
<div>
<a href="/"><span class="left-word">Comfortably</span> <span class="right-word">Numbered</span></a>
</div>
</header>
<article id="postcontent" class="centered">
<section>
<h1>Jazz is Open Source</h1>
<center><em><p>Why jazz embodies the hacker spirit.</p>
</em></center>
<h4>Tuesday, July 1, 2014 · 3 min read</h4>
<p>People who sound like they’re in charge of things—such as the <em>Associated Board
of the Royal Schools of Music</em>—agree that the role of the classical performer
is merely to present the music written by the composer. And present it in the
exact form that the composer wrote.</p>
<blockquote>
<p><em>Good</em> performers, it should be said, do not resent this. After all, they are
seeking to turn into real sounds the music which the composer had in his
imagination; the more they can discover what exactly he had in mind, the more
they are helped.</p>
<p>— Eric Taylor, <em>The AB [Associated Board] Guide to Music Theory</em></p>
</blockquote>
<p>Perhaps this is a way to honor the genius of great composers of the past. But
nevertheless, classical performers, therefore, are just that. Performers.</p>
<p>Jazz, on the other hand is different. Jazz is fluid. A jazz track is far more
about the performer than the piece played, so no two performances of <em>Autumn
Leaves</em> will sound the same. Or even close to each other. This is because a
jazz song defines the minimum you need for musicians to play together: a
<strong>theme</strong> and the <strong>changes</strong>. The theme is a single melody line that everyone
relates to the song. The changes are the chords that go with the melody. Jazz
musicians take turns improvising while the rest play those chords to guide the
improvisation and stay together.</p>
<p>Take jazz notation, for instance. Jazz musicians get their theme and changes
from so-called ‘fake books’ (allegedly because fake books let them ‘fake’ it so
it sounds like they know the song). Fake books are also called real books,
because logic.</p>
<p>Anyhow, a fake book is usually a stack of photocopies of hand-written music of
questionable origins. The changes are scrawled on top. While classical
musicians write theses on what notes Bach would approve of in a trill, jazz
musicians barely mark an accent. This is what gives a jazz musician freedom:
you could play the same song slowly, or fast, or with a Bossa Nova, or with a
walking bass; or you could play with three beats in a measure (like a Waltz) or
five (which is <a href="https://en.wikipedia.org/wiki/Quintuple_meter">rather rare in classical
music</a>), or nine. You could
phrase notes together, or play them individually. You could swing notes, or
play them straight. Each variation on each note is what gives a certain
performance its character. Jazz is a hackable music.</p>
<p>But it’s not just hackable, it’s open-source. Jazz musicians learn from other
jazz musicians by listening. It’s not a conscious effort—as you hear music,
your brain registers interesting bits. It could be a sequence of notes, a
chord, even a rhythmic structure. But if you like it, you’ll try to imitate it
when you play, and soon it’s incorporated into your music. Jazz works because
jazz musicians listen to each other and contribute to the growth and evolution
of jazz as a genre.</p>
<p>Now, the beauty of the system is that such new musical ideas aren’t created
intentionally as paintings are painted. They’re accidents. Jazz musicians
experiment as they improvise. Some experiments don’t work, but most of them do,
because jazz inherently allows for experimentation. The experiments that work
are new music.</p>
<p>This is similar, in a way, to how design evolves. There were times when a
webpage which used rounded corners and gradients and shocking animations was
cool, because that was stunning new technology. At some point, Apple introduced
skeuomorphic designs inspired by real-world material. Now software is moving
towards flat design, where bold colors and sans-serif fonts prevail. This
evolution is fueled by what designers get inspired by and what people like.
Jazz evolves the same way. Music is directed towards trends, entirely based off
what people enjoy listening to.</p>
<p>You may have noticed where I’m going with this. Jazz evolves through random
mutations, the less musical of which are pruned out. Musicians mix strains of
jazz together to produce new music which may survive better or may not work
out. It’s natural selection.</p>
<p>Jazz evolves, just like creatures do.</p>
<p>And that points to a key idea: when people can directly influence a system, it
evolves very rapidly. That’s why the open-source software world evolves so
rapidly: the open-source world is built by the people who live in it. That, I
think, is one of the key elements of the hacker culture.</p>
</section>
<div id="comment-breaker">◊ ◊ ◊</div>
</article>
<footer id="footer">
<div>
<ul>
<li><a href="https://github.com/kach">
Github</a></li>
<li><a href="feed.xml">
Subscribe (RSS feed)</a></li>
<li><a href="https://twitter.com/hardmath123">
Twitter</a></li>
<li><a href="https://creativecommons.org/licenses/by-nc/3.0/deed.en_US">
CC BY-NC 3.0</a></li>
</ul>
</div>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-46120535-1', 'hardmath123.github.io');
ga('require', 'displayfeatures');
ga('send', 'pageview');
</script>
</footer>
</body>
</html>