summaryrefslogtreecommitdiff
path: root/index.html
diff options
context:
space:
mode:
authorjulian laplace <julescarbon@gmail.com>2025-07-15 14:49:01 +0200
committerjulian laplace <julescarbon@gmail.com>2025-07-15 14:49:01 +0200
commit38b1babb974dc943d21e358c6ff63c993d747f6b (patch)
treec504bc6d8cbb0d7afc4cff1b4eaacbf37e121c49 /index.html
parentb68e5f30225595abbff4b787d8348c9ea4700d1f (diff)
edit copy
Diffstat (limited to 'index.html')
-rw-r--r--index.html205
1 files changed, 122 insertions, 83 deletions
diff --git a/index.html b/index.html
index 12fe345..8d58cd6 100644
--- a/index.html
+++ b/index.html
@@ -266,13 +266,12 @@
width: 100%;
height: 100%;
display: flex;
- justify-content: flex-end;
align-items: flex-start;
+ justify-content: flex-end;
opacity: 0;
pointer-events: none;
transition: opacity 0.2s;
- background-color: rgba(0, 0, 0, 0.25);
- backdrop-filter: blur(2px);
+ background: rgba(255, 255, 255, 0.1);
cursor: pointer;
}
.root-select.visible {
@@ -280,19 +279,37 @@
pointer-events: auto;
}
.root-select > div {
+ display: flex;
+ flex-direction: row-reverse;
+ align-items: center;
+ justify-content: center;
text-align: center;
line-height: 1.75;
- background: rgba(0, 0, 0, 0.5);
- border-radius: 4px;
- box-shadow: 0 2px #000;
+ background: rgba(0, 0, 0, 0.75);
+ border-radius: 12px;
padding: 1rem;
padding-bottom: 0;
- margin-top: 100px;
+ backdrop-filter: blur(6px);
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
+ margin-top: 1rem;
margin-right: 50px;
}
.root-select .row {
+ display: flex;
+ flex-direction: column;
+ margin-right: 0.25rem;
+ margin-left: 0.25rem;
margin-bottom: 0.5rem;
}
+ .root-select .row.klavier {
+ display: flex;
+ flex-direction: row-reverse;
+ align-items: center;
+ justify-content: center;
+ }
+ .root-select .row.form-row {
+ flex-direction: row;
+ }
.root-select .hidden {
opacity: 0;
pointer-events: none;
@@ -306,42 +323,46 @@
"Segoe UI Symbol";
padding: 0;
margin: 0;
- border: 0;
+ border: 2px solid;
margin-right: 0.25rem;
text-align: center;
- border-radius: 2px;
- box-shadow: 0 2px #000;
+ border-radius: 32px;
}
.root-input {
display: inline-block;
position: relative;
+ padding-bottom: 0.25rem;
}
.root-select button {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica,
Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji",
"Segoe UI Symbol";
color: white;
- text-shadow: 0 0 1px #000;
font-size: 18px;
- background: rgba(0, 0, 0, 0.75);
+ background: rgba(16, 16, 16, 0.85);
border: 0;
min-width: 50px;
height: 50px;
margin-bottom: 0.25rem;
cursor: pointer;
- border-radius: 8px;
+ border-radius: 32px;
+ transition: opacity 0.1s;
opacity: 0.9;
display: inline-flex;
flex-direction: row;
justify-content: center;
align-items: center;
+ text-shadow: 0 0 2px #000, 0 0 1px #000;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.75);
}
.root-select button:hover {
opacity: 1;
}
.root-select button.ok {
- padding-left: 1rem;
- padding-right: 1rem;
+ width: 78px;
+ }
+ .klavier button {
+ text-shadow: 0 0 1px #000, 0 0 1px #000;
}
.fraction {
@@ -353,6 +374,24 @@
.fraction span:first-child {
border-bottom: 1px solid;
}
+
+ @media (max-width: 800px) {
+ .root-select {
+ align-items: flex-start;
+ background: rgba(0, 0, 0, 0.5);
+ }
+ .root-select > div {
+ background: rgba(0, 0, 0, 0);
+ margin: 0;
+ width: 100%;
+ align-items: center;
+ justify-content: center;
+ border-radius: 0;
+ }
+ .root-select .row.form-row {
+ flex-direction: column;
+ }
+ }
</style>
</head>
<body>
@@ -532,12 +571,12 @@
</p>
<p>
- I later learned that I had constructed the "lamboid diagram" or
- Lambdoma, named for its resemblance to the Greek letter Lambda Λ. The
- synergy of color and tone, linking the octave to the color wheel,
- seemed intuitive, and revealed a beautiful pattern, both visual and
- musical. This pattern had previously been uncovered by artist and
- sound practitioner
+ I later learned that I had constructed the "lambdoid diagram" or
+ <b>Lambdoma</b>, named for its resemblance to the Greek letter
+ <i>Lambda</i> Λ. The synergy of color and tone, linking the octave to
+ the color wheel, seemed intuitive, and revealed a beautiful pattern,
+ both visual and musical. This pattern had previously been uncovered by
+ artist and sound practitioner
<a href="https://www.lambdoma.com/">Barbara Hero</a>, who built an 8x8
electronic Lambdoma instrument for sound healing purposes, using the
same pattern of colors.
@@ -593,46 +632,41 @@
</p>
<p>
- The musical Circle of Fifths, derived from repeatedly stacking the 3:2
- proportion, can be studied in more detail in this program's
- <u class="mode" name="pythagorean">Pythagorean</u> scale mode, where
- each ratio is a power of 2 or 3. Similar notes can be found by color
- and compared. One can easily hear how stacked fifths overshoot the
- octave by finding two far-apart red notes and playing both at once,
- which makes them beat against each other. This interval is the
- "syntonic comma" which is averaged out in various keyboard tuning
- systems.
+ The musical Circle of Fifths, created by repeatedly multiplying a
+ frequency by 3:2, can be studied in more detail in this program's
+ <u class="mode" name="pythagorean">Pythagorean</u> mode, where each
+ ratio is a power of 2 or 3. Similar notes can be found by color and
+ compared. One can easily hear how stacking fifths does not bring you
+ back to the starting note. Find two far-apart red notes and play both
+ at once. These two frequencies are not quite the same, and they will
+ audibly vibrate or "beat" against each other. The interval between
+ these notes is known as the "syntonic comma", and tuning systems try
+ to correct for it in various ways.
</p>
<p>
- Tuning systems must weigh the purity of thirds and fifths. A just
- tuning system made from pure fractions might use as its basis the
- difference between 3:2 and 4:3, which constitutes a semitone. Such a
- scale implies different ratios between "fifths" and "thirds" at
- different points in the scale. Each mode can sound highly distinctive,
- and some intervals may be considered dissonant or harsh.
- </p>
-
- <p>
- In a sense, 12-tone equal temperament "bends" all of the notes such
- that the fifths are more consisent, making it easier to modulate
- between keys, though other intervals (like thirds) are quite different
- from a interval. This process invokes irrational numbers, and creates
- in-between intervals which do not exist anywhere on the Lambdoma, no
- matter how far out you go. Equal-tempered semitones are separated by a
- ratio of the 12th root of 2 (1:<super>12</super>√2). Irrationals are
- real numbers, and these can only be approximated by fractions made up
- of natural numbers.
+ Within a Pythagorean tuning system, each scale can sound highly
+ distinctive, since the notes will not be distributed evenly within the
+ octave. In a sense, 12-tone equal temperament "bends" all of the notes
+ so they are evenly spaced. Fifths in equal temperament are not quite
+ pure but close enough, making it easy to modulate between keys. By
+ comparison, thirds are quite out of tune compared to a pure ratio
+ (5:4). Equal temperament invokes irrational numbers, creating
+ in-between intervals which do not exist on the Lambdoma. (Notes in
+ equal temperament are separated by an irrational ratio of 1 to the
+ 12th root of 2 (1:<super>12</super>√2), which can only be approximated
+ by pure fractions.)
</p>
<p>
In the Lambdoma, Barbara Hero also sees the image of Georg Cantor's
- transfinite set of rational numbers ℚ, which Cantor proved countably
- infinite by arranging fractions along two axes by numerator and
- denominator, similar to the Lambdoma. One may easily grasp this
- countable infinity of rationals by considering that, though there are
- infinitely many rational numbers, in between any two there lies an
- uncountable continuity of real numbers in ℝ.
+ transfinite set of rational numbers ℚ, which Cantor proved
+ <i>countably</i>
+ infinite by arranging fractions into a grid by numerator and
+ denominator. One may easily grasp this <i>countable infinity</i> of
+ rationals by considering that, though there are infinitely many
+ rational numbers, in between any two there lies an
+ <i>uncountable continuity</i> of real numbers in ℝ.
</p>
<h2>thank you!</h2>
@@ -685,42 +719,47 @@
<div class="root-select">
<div>
+ <div class="row form-row">
+ <div class="root-input">
+ <input type="number" min="1" max="1000000" value="440" />
+ </div>
+ <button class="ok">OK</button>
+ </div>
<div class="row">
- <div class="root-input"><input type="text" value="440" /></div>
- <button class="ok">SET ROOT</button>
+ <button class="add-10">+10</button>
+ <button class="add-1">+1</button>
+ <button class="sub-1">-1</button>
+ <button class="sub-10">-10</button>
</div>
<div class="row">
- <button class="div-2">÷2</button>
- <button class="div-3-2">
- ÷<span class="fraction"><span>3</span><span>2</span></span>
- </button>
+ <button class="mul-2">×2</button>
<button class="mul-3-2">
×<span class="fraction"><span>3</span><span>2</span></span>
</button>
- <button class="mul-2">×2</button>
- </div>
- <div class="row">
- <button class="sub-10">-10</button>
- <button class="sub-1">-1</button>
- <button class="add-1">+1</button>
- <button class="add-10">+10</button>
+ <button class="div-3-2">
+ ÷<span class="fraction"><span>3</span><span>2</span></span>
+ </button>
+ <button class="div-2">÷2</button>
</div>
- <div class="row">
- <button class="note-db">D♭</button>
- <button class="note-eb">E♭</button>
- <button class="hidden"></button>
- <button class="note-gb">G♭</button>
- <button class="note-ab">A♭</button>
- <button class="note-bb">B♭</button>
- <br />
- <button class="note-c">C</button>
- <button class="note-d">D</button>
- <button class="note-e">E</button>
- <button class="note-f">F</button>
- <button class="note-g">G</button>
- <button class="note-a">A</button>
- <button class="note-b">B</button>
- <button class="note-c2">C</button>
+ <div class="row klavier">
+ <div class="row">
+ <button class="note-db">D♭</button>
+ <button class="note-eb">E♭</button>
+ <button class="hidden"></button>
+ <button class="note-gb">G♭</button>
+ <button class="note-ab">A♭</button>
+ <button class="note-bb">B♭</button>
+ </div>
+ <div class="row">
+ <button class="note-c">C</button>
+ <button class="note-d">D</button>
+ <button class="note-e">E</button>
+ <button class="note-f">F</button>
+ <button class="note-g">G</button>
+ <button class="note-a">A</button>
+ <button class="note-b">B</button>
+ <button class="note-c2">C</button>
+ </div>
</div>
</div>
</div>