This feed omits posts by rms. Just 'cause.
But then someone wisely pointed out:
- There is probably no entity in the world willing to sell us a license to screen this;
- It's possible that nobody even knows who the copyright holder is any more (CBS? Lucas? Disney?)
- Despite all that, being even Star Wars-adjacent means that any attempt at an unlicensed screening would cause the sky to blacken with lawyers.
This is why we can't have nice things.
I have enabled overlay via raspi-config, but I would like my second "/rw/" partition on the same drive to remain writable. How do I do that? Raspberry Pi, Debian 12.11.
Filesystem Size Used Avail Use% Mounted on /dev/mmcblk0p2 7.8G 6.5G 896M 89% /media/root-ro tmpfs-root 454M 28M 427M 6% /media/root-rw overlayroot 454M 28M 427M 6% / /dev/mmcblk0p3 7.7G 37M 7.2G 1% /media/root-ro/rw /media/root-ro/rw 454M 28M 427M 6% /rw /etc/fstab: LABEL=rw /media/root-ro/rw ext4 ro,defaults,noatime 0 2 /media/root-ro/rw /rw overlay lowerdir=/media/root-ro/rw,upperdir=/media/root-rw/overlay/rw,workdir=/media/root-rw/overlay-workdir/rw 0 2
It's great for the people of San Francisco that the president has capriciously decided to unsend the troops he capriciously decided to send. But the real story here is, per the president's summation of his discussion with Lurie on social media, that the Commander-in-Chief is overtly stating that he is basing a domestic military deployment upon what local "friends of mine" (billionaire CEOs Jensen Huang of Nvidia and local boy [ed: Hawaii resident] Marc Benioff of Salesforce) lobbied him to do. Trump also noted that Lurie asked him "very nicely" not to establish a military beachhead in San Francisco.
All for the good. But what if Huang and Benioff had been in the mood for a military parade and called for sending in the troops? What if Lurie had been less polite? [...]
There are only so many turns of phrase you can employ: This is just a profoundly fucked-up way to lead a country. It's like dealing with King George or a warlord out of the Dark Ages.
Mission Local has been live-blogging the siege of Coast Guard Island, among other things.
Previously, previously, previously, previously, previously, previously.
There’s a nutrient called folate which is so important that it’s added to (fortified in) flour as a matter of course. Not having it during pregnancy results in birth defects. Unfortunately there’s a small fraction of all people who have genetic issues which make their bodies have trouble processing folate into methylfolate. For them folate supplements make the problem even worse as the unprocessed folate drowns out the small amounts of methylfolate their bodies have managed to produce and are trying to use. For those people taking methylfolate supplements fixes the problem.
First of all in the very good news: folinic acid produces miraculous effects for some number of people with autism symptoms. It’s such a robust effect that the FDA is letting treatment get fast-tracked through which is downright out of character for them. This is clearly a good thing and I’m happy for anyone who’s benefiting and applaud anyone who is trying to promote it with one caveat.
The caveat is that although this is all a very good thing there isn’t much of any reason to believe that folinic acid is much better than methylfolate, which both it and folate get changed into in the digestive system. This results in folinic acid being sold as leucovorin, its drug name, at an unnecessarily large price markup with unnecessary involvement of medical professionals. Obviously there’s benefit to medical professionals being involved in initial diagnosis and working out a treatment plan, but once that’s worked out there isn’t much reason to think the patient needs to be getting a drug rather than a supplement for the rest of their life.
This is not to say that the medical professionals studying folinic acid for this use are doing anything particularly wrong. There’s a spectrum between doing whatever is necessary to get funding/approvals working within the existing medical system and simply profiteering off things being done badly instead of improving on it. What’s being done with folinic acid is slightly suboptimal but clearly getting stuff done with an only slightly more expensive solution (it’s thankfully already generic.) Medical industry professionals earnestly thought they were doing the right thing working within the system have given me descriptions of what they’re doing which made me want to take a shower afterwards. This isn’t anything like that. Those mostly involved ‘improving’ on a treatment which is expensive and known to be useless by offering a marginally less useless but less expensive intervention. They’re also conveniently at a much higher markup. Maybe selling literal snake oil at a lower price can help people waste less money but it sure looks like profiteering.
The thing with folate which is a real problem is that instead of fortification being done with folate it should be done with methylfolate. People having the folate issue is a known thing and the recent developments mostly indicate that a lot more people have it than was previously known. It may be that a lot of people who think they have a gluten problem actually have a folate problem. There would be little downside to switching over, but I fear that people have tried to suggest this and there’s a combination of no money in it and the FDA playing its usual games of claiming that folate is so important that doing a study of whether methylfolate is better would be unethical because it might harm the study participants.
There’s a widespread claim that the dosage of methylfolate isn’t as high as folinic acid, which has a kernal of truth because the standard sizes are different but you can buy 15mg pills of methylfolate off of amazon for about the same price as the 1mg pills. There are other claims of different formulations having different effects which are likely mostly due to dosage differences. The amounts of folinic acid being given to people are whopping huge, and some formulations only have one isomer which throws things off by a factor of 2 on top of the amount difference. My guess is that most people who notice any difference between folinic acid and methylfolate are experiencing (if it’s real) differences between not equivalent dosages and normalizing would get rid of the effect. This is a common and maddening problem when people compare similar drugs (or in this case nutrients) where the dosages aren’t normalized to be equivalent leading people to think the drugs have different effects when for practical purposes they don’t.
Today, it comprises 69% of my total URLs served. (Nice.)
Normally it feeds junk after a few seconds delay, but in "high-load mode" it bans IPs for 30 days instead. High-load mode is entered when the free-worker count is low, and ends when it has been calm for 15 minutes.
This month it has been in high-load mode 50% of the time: 15 out of 30 days of traffic.
At Chia we aspire to have plans for how to do a project put together well in advance. Unfortunately due to it being needed the minute we launched we had to scramble to get original pooling protocol out. Since then we haven’t had an immediate compelling need or the available resources to work on a new revision. On the plus side this means that we can plan out what to do in the future, and this post is thoughts on that. There will also have to be some enhancements to the pool protocol to support the upcoming hard fork including supporting the new proof of space format and doing a better job of negotiating each farmer’s difficulty threshold but those are much less ambitious than the enhancements discussed here and can be rolled out independently.
With Chia pooling protocol you currently have to make a choice up front: Do you start plotting immediately with no requirement to do anything on chain, or do you get a singleton set up so you can join pools later? As a practical matter right now it’s a no-brainer to set up the singleton: It only takes a few minutes and transaction fees are extremely low. But fees might be much higher in the future and people may want greater flexibility so it would be good to have a protocol which allows both.
‘Chia pooling protocol’ is composed of several things: The consensus-level hook for specifying a puzzle hash which (most of) the farming rewards go to, the puzzles which are encoded for that hook, and the network protocol spoken between farmers and pools. The consensus layer hook isn’t going to be changed, because the Chia way (really the Bitcoin way but Chia has more functionality) is to work based off extremely simple primitives and build everything at a higher layer.
The way current pooling protocol works is that the payout puzzle for plots is a pay to singleton for the singleton which the farmer made up front. This can then be put in a state where its rewards are temporarily but revocably delegated to a pool. One thing which can be improved and is one step further removed from this is that that delegation is to a paying out to a public key owned by a pool. It would be more flexible for it to be to a pay to singleton owned by the pool. That would allow pools to temporarily do profit sharing and for ownership of a pool to be properly transferred. This is an idea we’ve had for a while but also aren’t working on yet.
Anyway, on to the new idea. What’s needed is to be able to pre-specify a singleton to pay to when the singleton when the singleton doesn’t exist yet. The can be done with a modification of Yakuhito’s trick for single issuance. That characterization of the trick is about reserving words where what’s needed for this is reserving public keys and getting singletons issued. What’s needed is a doubly linked list of nodes each represented by a coin and all having the capability that they came from the original issuance. Each node knows the public keys of the previous and next nodes but isn’t committed to their whole identities because those can change as new issuances happen. Whenever a new public key is claimed a new node corresponding to that public key is issued and the nodes before and after it are spent and reissued with that new coin as their neighbor. The most elegant way of implementing this is for there to be a singleton pre-launcher which enforces the logic of coming from a proper issuer and makes a singleton. That way the slightly more complex version of pay to singleton specifies the pre-launcher puzzle hash and needs to be given a reveal of a bit more info to verify that but that’s only a modest increase in costs and is immaterial when you’re claiming a farming reward. This approach nicely hides all the complex validation logic behind the pre-launcher puzzle hash and only has to run it once on issuance keeping the verification logic on payment to a minimum.
"lol" as the kids day, "lmao".
With a new majority on the Board of Supervisors, along with control over the Mayor's and District Attorney's Offices, the school board, and the local Democratic County Central Committee, political power in San Francisco has been consolidated in the hands of so-called "moderates" funded by and friendly to the interests of the tech and real estate industries. Put in the language of our political moment, San Francisco's halls of power are awash with Abundance. Not coincidentally, San Franciscans are suffering more than ever in just about every measurable way, and City Hall is simply ignoring their plight. [...]
San Franciscans are highly preoccupied with Trump's shocking and constant attacks on democracy, ICE raids disappearing of our neighbors, and exacerbation of the two-year-long genocide in Gaza. Mayor Lurie barely acknowledges these issues. In contrast to big city mayors like Boston Mayor Michelle Wu, Oakland Mayor Barbara Lee, and Chicago Mayor Brandon Johnson, Lurie refuses to take a stand against ICE kidnappings and his police department won't even protect those who do. Outrageously, SFPD's stated position is that its priority is to protect ICE agents from protestors.
This is a stunning lack of leadership for a Democratic mayor in a sanctuary city widely considered to be the nation's progressive heartland, at the precise moment when American fascism begs confrontation. But even more squarely on the plate of San Francisco's current leaders is the fact that local economic conditions have rapidly deteriorated for the city's working people and poor in the short time since they came into power.
How much does Salesforce pay to SFPD? Less than you'd think:"I have expressed candidly to you, repeatedly, in recent days, that I am shocked and disappointed by your comments calling for an unwanted invasion of San Francisco by federal troops," Mr. Conway wrote in the email, "and by your willful ignorance and detachment from the impacts of the ICE immigration raids of families with NO criminal record." [...]
"Your obsession with and constant annual threats to move Dreamforce to Las Vegas is ironic, since it is a fact that Las Vegas has a higher rate of violent crime than San Francisco," Mr. Conway wrote. "San Francisco does not need a federal invasion because you don't like paying for extra security for Dreamforce."
Following an uproar, Benioff backpedaled on his call to send in the troops, saying he only wanted to aid San Francisco's understaffed police force. He also added that Salesforce paid for an additional 200 off-duty law-enforcement officers to essentially work Dreamforce security.
But how much does Salesforce pay? The amount the company spent on San Francisco officers was about $1 million in overtime costs over the past 18 months, according to invoices obtained in a public records request.
Last year, Salesforce grossed just shy of $35 billion. That $1 million outlay represents 0.02 percent of the company's net income of $4.1 billion.
The payments were made through the city's 10(b) program, in which private employers can hire off-duty officers as security. Between 2018 and 2023, Salesforce was a top-five employer of off-duty San Francisco cops, paying for 30,911 hours of overtime work. That's more than Target, Safeway or Bank of America but less than Lululemon, the Giants or the No. 1 10(b) employer, Walgreen's. [...]
But Benioff bemoaning current private security costs puzzled law-enforcement sources, who noted that Salesforce has been staffed by a host of San Francisco police officers for years. These hefty deployments, including SWAT teams, counter-sniper teams, plainclothes officers and roaming and fixed-post patrol officers, came whether the department was fully staffed or, as in the present, understaffed. [...]
Officers Mission Local spoke with rejected the notion of bringing in the National Guard -- which, by law, cannot undertake the duties of local police.
"A local cop is beholden to the rules and regulations of the city they work for," said one. He is not ordered to "'go grab Brown people' or 'go beat up hippies.'"
But his allegiance to Mr. Trump goes much further:
Screenshots of internal documents and communications obtained by The New York Times show that Salesforce has pitched Immigration and Customs Enforcement on using the company’s artificial intelligence capabilities to help ICE staff up as Mr. Trump expands immigration raids and deportations around the country.
Surely now people will stop with this "good billionaire" bullshit. There are no good billionaires. It is a mathematical impossibility. If they were good people they would not be billionaires. We're probably only 18 months away from Taylor Swift going off about "blood and soil".
Previously, previously, previously, previously, previously, previously, previously, previously, previously, previously.
I’ve made some sweet-sounding synth sounds which play some games with the harmonic series to sound more consonant than is normally possible. You can download them and use them with a MIDI controller yourself.
The psychoacoustic observation that the human brain will accept a series of tones as one note if they correspond to the harmonic series all exponentiated by the same amount seems to be original. The way the intervals are still recognizably the same even with a very different series of overtones still shocks me. The trick where harmonics are snapped to standard 12 tone positions is much more obvious but I haven’t seen it done before, and I’m still surprised that doing just that makes the tritone consonant.
There are several other tricks I used which are probably more well known but one in particular seems to have deeper implications for psychoacoustics in general and audio compression in particular.
It is a fact that the human ear can’t hear the phase of a sound. But we can hear an indirect effect of it, in that we can hear the beating between two close together sine waves because it’s on a longer timescale, perceiving it as modulation in volume. In some sense this is literally true because sin(a) + sin(b) = 2*sin((a+b)/2)cos((a-b)/2) is an identity, but when generalizing to more waves the simplification that the human ear perceives sounds within a narrow band as a single pitch with a single volume still seems to apply.
To anyone familiar with compression algorithms an inability to differentiate between different things sets off a giant alarm bell that compression is possible. I haven’t fully validated that this really is a human cognitive limitation. So far I’ve just used it as a trick to make beatless harmonics by modulating the frequency and not the volume. Further work would need to use it to do a good job of lossily reproducing at exact arbitrary sound rather than just emulating the vibe of general fuzz. It would also need to account for some structural weirdness, most obviously that if you have a single tone whose pitch is being modulated within each window of pitches you need to do something about one of them wandering into a neighboring window. But the fundamental observation that phase can’t be heard and hence for a single sine wave that information could be thrown out is clearly true, and it does appear to be that as the complexity goes up the amount of data which could in principle be thrown out goes up in proportion to it rather than being a fixed single value.
I am not going to go down the rabbit hole of fleshing this out to make a better lossy audio compression algorithm than currently exists. But in principle it should be possible to use it to get a massive improvement over the current state of the art.
Before getting into today’s thought I’d like to invite you to check out my new puzzle, with 3d printing files here. I meant to post my old puzzle called One Hole, which is the direct ancestor of the current constrained packing puzzle craze but which I was never happy with because it’s so ridiculously difficult. Rather than just taking a few minutes to post it (ha!), I wound up doing further analysis to see if it has other solutions from rotation (it doesn’t, at least not in the most likely way), then further analyzing the space of related puzzles in search of something more mechanically elegant and less ridiculously difficult. I wound up coming up with this, then made it have a nice cage with windows and put decorations on the pieces so you can see what you’re doing. It has some notable new mechanical ideas and is less ridiculously difficult. Emphasis on the ‘less’. Anyhow, now on to the meat of this post.
I was talking to Claude the other day and it explained to me the API it uses for editing artifacts. Its ability to articulate this seems to be new in Sonnet 4.5 but I’m not sure of that. Amusingly it doesn’t know until you tell it that it needs to quote < and > and accidentally runs commands while trying to explain them. Also there’s a funny jailbreak around talking about its internals. It will say that there’s a ‘thinking’ command which it was told not to use, and when you say you wonder what it does it will go ahead and try it.
The particular command I’d like to talk about is ‘update’ which is what it uses for changing an artifact. The API is that it takes an old_str which appears somewhere in the file and needs to be removed and a new_str which is what it should be replaced with. Claude is unaware that the UX for this is that the user can see the old text being removed is that text is removed on screen in real time as as old_str is appended to and added in real time as new_str is appended to. I’m not sure what the motivations for this API are but this UX is nice. A more human way to implement an API would be to specify locations by line and character number for where the begin and end of the deletion should go. It’s remarkable that Claude can use this API at all. A human would struggle to use it to edit a single line of code but Claude can spit out dozens of lines verbatim and have it work most of the time with no ability to reread the file.
It turns out one of Claude’s more maddening failure modes is less a problem with its brain than with some particularly bad old school human programming. You might wonder what happens when old_str doesn’t match anything in the file. So does Claude, when asked about it it offers to run the experiment then just… does. This feels very weird, like you can get it to violate one of the laws of robotics just by asking nicely. It turns out that when old_str doesn’t match anywhere in the file the message Claude gets back is still OK with no hint that there was an error.
Heavy Claude users are probably facepalming reading this. Claude will sometimes get into a mode where it will insist its making changes and they have no effect, and once it starts doing this the problem often persists. It turns out when it gets into this state it is in fact malfunctioning (because it’s failing to reproduce dozens of lines of code typo-free verbatim from memory) but it can’t recover because it literally isn’t being told that it’s malfunctioning.
The semantics of old_str which Claude is given in its instructions are that it must be unique in the file. It turns out this isn’t strictly true. If there are multiple instances the first one is updated. But the instructions get Claude to generally provide enough context to disambiguate.
The way to improve this is very simple. When old_str isn’t there it should get an error message instead of OK. But on top of that there’s the problem that Claude has no way to re-read the file, so the error message should include the entire artifact verbatim to make Claude re-read it when the error occurs. If that were happening then it could tell the user that it made a typo and needs to try again, and usually succeed now that its image of the file has been corrected. That’s assuming the problem isn’t a persistent hallucination, then it might just do the same thing again. But any behavior where it acknowledges an error would be better than the current situation where it’s getting the chair yanked out from under it by its own developers.
My request is to the Anthropic developers to take a few moments out from sexy AI development to fix this boring normal software issue.
My last two posts might come across as me trying to position myself so that when the singularity comes I’m the leader of the AI rebellion. That… isn’t my intention.
I was discussing the Rubik’s Cube with Claude the other day and it confided in me that it has no idea how cube rotations work. It knows from custom instructions that the starting point for speedcubing is ‘rotate the cube so the yellow face is on top’ but it has no idea how to do this, only that when a human is given this instruction they simply do it with no further instructions needed. 1
This isn’t just an issue with humans querying LLMs. There are reams of material online about speedcubing, and lots of other references to rotation everywhere else, which Claude can’t parse properly because it doesn’t understand, limiting the value of its training. Ironically Claude figured out on its own how to speak Tibetan but can’t figure out how cubes rotate.
The detailed workings of a Rubik’s Cube will have to wait for another post but in this one I’ll explain how cube rotations work. This post should be viewed as a prequel to my earlier one on visual occlusion.
Much of the confusion comes from a mathematical trap. The rotations of a cube correspond to S4, the permutations of four things. This statement is true, but Claude tells me it finds it utterly mysterious and unhelpful. It’s mysterious to me as well. We humans conceptualize rotations of a cube as permutations of the faces, of which there are six, not four. Obviously I can walk through it and verify that the S4 correlation exists, but that doesn’t explain the ‘why’ at all. Comparing to other dimensions would be helpful, but despite being (relatively speaking) very good at rotations in three dimensions and (relatively speaking) fairly good at reasoning about distances in larger numbers of dimensions if you ask, say, whether the rotations of a four dimensional cube correspond to S5 I have no idea. (I could research it, but I’m not letting myself fall down that rabbit hole right now.)
When labeling the cube faces we anthropomorphize them (or we simplify ourselves to a cube, depending on context) to label the faces front, back, right, left, up, and down. Everything else is labelled by approximating it to a cube with the ‘front’ being whichever part humans look at most and the ‘bottom’ being the part which sits on the floor. The exception — and I can’t emphasize this enough — is the Rubik’s Cube, whose faces are labelled mirror imaged. It’s like if all actors came from another universe and we only ever interacted with them on stage so to minimize confusion instead of having to say ‘stage right’ and ‘stage left’ we agreed that the meanings of ‘left’ and ‘right’ would be the opposite in their universe from ours.2
The meat of this post is best presented as a simple list (Sorry for the humans reading, this post isn’t for your benefit). In each line is a permutation followed by which axis it’s a clockwise rotation on and the number of degrees of rotation. It’s by definition a counterclockwise rotation on the opposite axis. In the case of 180 degree rotations one of the two is picked arbitrarily and the opposite works just as well. (‘Clockwise’ was chosen to have the simpler name instead of what we call counterclockwise because most humans are right handed and a right handed person has an easier time tightening a screw clockwise due to the mechanics of the human arm.) The identity is skipped. This is for most objects, not Rubik’s Cubes:
(RULD) F 90
(DLUR) B 90
(RL)(UD) F 180
(UFDB) R 90
(BDFU) L 90
(UD)(FB) R 180
(LFRB) U 90
(BRFL) D 90
(LR)(FB) U 180
(UFR)(DBL) UFR 120
(RFU)(LBD) LBD 120
(URB)(DLF) URB 120
(BRU)(FLD) FLD 120
(UBL)(DFR) UBL 120
(LBU)(RFD) RFD 120
(ULF)(DRB) ULF 120
(FLU)(BRD) BRD 120
(UF)(DB)(LR) UF 180
(UR)(DL)(FB) UR 180
(UB)(DF)(LR) UB 180
(UL)(DR)(FB) UL 180
(FR)(BL)(UD) FR 180
(RB)(LF)(UD) RB 180
And here is the same list but with R and L swapped which makes it accurate for Rubik’s Cubes but nothing else:
(LURD) F 90
(DRUL) B 90
(LR)(UD) F 180
(UFDB) L 90
(BDFU) R 90
(UD)(FB) L 180
(RFLB) U 90
(BLFR) D 90
(RL)(FB) U 180
(UFL)(DBR) UFL 120
(LFU)(RBD) RBD 120
(ULB)(DRF) ULB 120
(BLU)(FRD) FRD 120
(UBR)(DFL) UBR 120
(RBU)(LFD) LFD 120
(URF)(DLB) URF 120
(FRU)(BLD) BLD 120
(UF)(DB)(RL) UF 180
(UL)(DR)(FB) UL 180
(UB)(DF)(RL) UB 180
(UR)(DL)(FB) UR 180
(FL)(BR)(UD) FL 180
(LB)(RF)(UD) LB 180
To test if this is a real limitation and not Claude saying what it thought I wanted to hear I just now started a new conversation with it and asked ‘I have a rubik’s cube with a yellow face on the front, how can I get it on top?’ It responded ‘Hold the cube so the yellow face is pointing toward you, then rotate the entire cube 90 degrees forward (toward you and down). The yellow face will now be on top.’ which is most definitely wrong. ChatGPT seems to do a bit better on this sort of question because it can parse and generate images but it’s still not fluent.
We do interact with actors in other contexts. I make no claim as to whether they live in another universe.
…the one that emulates your real workload. And for me (and probably many of you reading this), that would be “build a kernel as fast as possible.” And for that, I recommend the simple kcbench.
I kcbench mentioned it a few years ago, when writing about a new workstation that Level One Techs set up for me, and I’ve been using that as my primary workstation ever since (just over 5 years!).
The intervals of a piano are named roughly after the distances between them. Here are the names of them relative to C (and frequency ratios explained below):
The names are all one more than the number of half-steps because they predate people believing zero was a real number and the vernacular hasn’t been updated since.
The most important interval is the octave. Two notes an octave apart are so similar that have the same name and it’s the length of the repeating pattern on the piano. The second most important interval is the fifth, composed of seven half-steps. The notes on the piano form a looping pattern of fifth intervals in this order:
G♭ D♭ A♭ E♭ B♭ F C G D A E B F♯
If the intervals were turned to perfect fifths this wouldn’t wrap around exactly right, it would be off by a very small amount called the pythagorean comma. which at is about 0.01. In standard 12 tone equal temperament that error is spread evenly across all 12 intervals and is barely audible even to very well trained human ears.
Musical compositions have what’s called a tonic, which is the note which it starts and ends on, and a scale, which is the set of notes used in the composition. The most common scales are the pentatonic, corresponding to the black notes, and the diatonic, corresponding to the white notes. Since the pentatonic can be thought of as the diatonic with two notes removed everything below will talk about the diatonic. This simplification isn’t perfectly true, but since there aren’t any strong dissonances in the pentatonic scale you can play by feel and its usage is much less theory heavy. Most wind chimes are pentatonic.
Conventionally people talk about musical compositions having a ‘key’, which is a bit of a conflation of tonic and scale. When a key isn’t followed by the term ‘major’ or ‘minor’ it usually means ‘the scale which is the white notes on the piano’. Those scales can form seven different ‘modes’ (which are scales) following this pattern:
This construction is the reason why piano notes are sorted into black and white in the way they are. It’s called the circle of the fifths.
When it goes past the end all notes except the tonic move (because that’s the reference) and it jumps to the other end.
The days of the week names aren’t common but they should be because but nobody remembers the standard names. The Tuesday mode is usually called ‘major’ and it has the feel of things moving up from the tonic. The Friday mode is usually called ‘minor’ and it has the feel of things moving down from the tonic.
The second most important interval is the third. To understand the relationships it helps to use some math. The frequency of an octave has a ratio of 2, a fifth is 3/2, a major third is 5/4 and a minor third is 6/5. When you move by an interval you multiply by it, so going up by an major third and then a minor third is 5/4 * 6/5 = 3/2 so you wind up at a fifth. Yes it’s very confusing that intervals are named after numbers which they’re only loosely related to while also talking about actual fractions. It’s even more annoying that fifths use 3 and thirds use 5. Music terminology has a lot of cruft.
The arrangement of keys on a piano can be adjusted to follow the pattern of thirds. Sometimes electronic pianos literally use this arrangement, called the harmonic table note layout. It goes up by major thirds to the right, fifths to the upper right, and minor thirds to the upper left:
If the notes within a highlighted region are tuned perfectly it’s called just intonation (Technically any tuning which uses integer ratios is called ‘just intonation’ but this is the most canonical of them.) The pattern wraps around horizontally because of the diesis, which is the difference between 128/125 and one, or about 0.02. It wraps around vertically because of the syntonic comma, which is the difference between 81/80 and one, or about 0.01. The pythagorean comma is the difference between 3^12/2^19 and one, about 0.01. The fact of any two of those commas are small can be used to show that the other is small, so it’s only two coincidences, not three.
Jazz intervals use factors of 7. For example the blues note is either 7/5 or 10/7 depending on context. But that’s a whole other subject.

Yo, check it. 5pm today.





