Because the emphasis in server-side scripting is on dynamic content, it doesn’t make for very cacheable pages, even when the content could be cached. If your content changes often, but not on every page hit, consider setting a Cache-Control: max-age header; most users access pages again in a relatively short period of time. For instance, when users hit the ‘back’ button, if there isn’t any validator or freshness information available, they’ll have to wait until the page is re-downloaded from the server to see it.
Note: My mathematical results showing the specialness of the twelve-tone scale are fairly robust. When I perform the same analysis with small variations of the discretionary inputs, the twelve-tone scale still looks remarkable. For example, if I add or remove a few intervals near the end of my list of consonant intervals, the results are similar. Also, if I increase the matching tolerance from 1% to 2% or reduce it to %, the results are similar. You can try your own variations with the spreadsheet above.