Phase D — naming rollout: PM_x-1 purpose codes

Visible names/codes updated across all pages, the landing panes, device silk
labels, the Showcase canvas legend, and the README:
  PM_E-1 Editor · PM_T-1 Teacher · PM_S-1 Stage · PM_P-1 Practice (was Micro) ·
  PM_D-1 Display (was Showcase) · PM_C-1 Concept (was Initial).
Filenames/URLs and embed variant keys are kept as-is for backward compatibility
(existing links and embeds keep working).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Me Here 2026-05-28 11:26:49 -05:00
parent 295f838258
commit 5a805a292b
9 changed files with 45 additions and 45 deletions

View file

@ -1,7 +1,7 @@
# VARASYS PolyMeter
A small **website** built around one **polymetric groove trainer / metronome** engine.
A landing page is the front door; the main app is the **PE1 PolyMeter Editor** — a full
A landing page is the front door; the main app is the **PM_E1 PolyMeter Editor** — a full
web app where you stack as many "meter lanes" as you like, each its own little metronome
with a grouping, subdivision, drum voice and a perstep pattern with accents. Layering lanes
produces polymeter and true ratio polyrhythm. The same engine drives an everexpanding library
@ -21,12 +21,12 @@ State (set lists, the practice log, theme and UI preferences) lives in `localSto
| URL | What |
|-----|------|
| [`/`](https://metronome.varasys.io/) `index.html` | **Concepts** — the landing / formfactor gallery; each box embeds the live widget |
| `/editor.html` | **PE1 — PolyMeter Editor** (the main app) |
| `/player.html` | **PM1 Initial** — idealized concept device (full display + setlist nav, theme, fullscreen "stage" view) |
| `/teacher.html` | **PM1 Teacher** — studio / lesson console (colour TFT, arcade buttons, 1/4″ instrument passthrough with analog click injection) |
| `/stage.html` | **PM1 Stage** — footpedal stompbox (two footswitches, expressionpedal in, RGB beat light, instrument passthrough) |
| `/micro.html` | **PM‑µ Micro** — inline practice bar (instrument in / out passthrough, clickable thumbroller, 14segment display) |
| `/showcase.html` | **PMS Showcase** — pyramid display piece; the pendulum is an RGB light bar combining every lane's subdivisions/accents |
| `/editor.html` | **PM_E1 — PolyMeter Editor** (the main app) |
| `/player.html` | **PM_C1 Concept** — idealized concept device (full display + setlist nav, theme, fullscreen "stage" view) |
| `/teacher.html` | **PM_T1 Teacher** — studio / lesson console (colour TFT, arcade buttons, 1/4″ instrument passthrough with analog click injection) |
| `/stage.html` | **PM_S1 Stage** — footpedal stompbox (two footswitches, expressionpedal in, RGB beat light, instrument passthrough) |
| `/micro.html` | **PM_P1 Practice** — inline practice bar (instrument in / out passthrough, clickable thumbroller, 14segment display) |
| `/showcase.html` | **PM_D1 Display** — pyramid display piece; the pendulum is an RGB light bar combining every lane's subdivisions/accents |
| `/embed.html` · `/embed.js` | embed docs and the dropin loader |
Each formfactor page is selfcontained ("Open" = "Info"): a moredetailed description,
@ -236,9 +236,9 @@ Push the tag, then deploy.
| File | Purpose |
|------|---------|
| `index.html` | the **Concepts** landing / gallery (embeds each widget live) |
| `editor.html` | the **PE1 editor** app (source, with `@BUILD:*` markers) |
| `editor.html` | the **PM_E1 editor** app (source, with `@BUILD:*` markers) |
| `src/header.html` · `src/footer.html` · `src/chrome.js` | shared header / footer / theme chrome, inlined into every page |
| `player.html` · `teacher.html` · `stage.html` · `micro.html` · `showcase.html` | the device mockups (PM1 Initial / Teacher / Stage, PMµ Micro, PMS Showcase) |
| `player.html` · `teacher.html` · `stage.html` · `micro.html` · `showcase.html` | the device mockups (PM_C1 Concept / Teacher / Stage, PM_P1 Practice, PM_D1 Display) |
| `embed.html` · `embed.js` | embed docs and the dropin widget loader |
| `src/` | shared partials inlined into every page: `engine.js`, `setlists.js`, `base.css` |
| `assets/` | base64 blobs inlined at build (samples, logos, favicon) |

View file

@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>PE1 — PolyMeter Editor</title>
<title>PM_E1 — PolyMeter Editor</title>
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml;base64,@BUILD:favicon@">
<script>
/* ?embed=1 → strip site chrome (base.css [data-embed]) + auto-size to the host */
@ -251,7 +251,7 @@
<div id="app">
<div class="device">
<div class="row appheader" style="align-items:center; flex-wrap:wrap; gap:6px 14px; margin-bottom:8px">
<h1 style="margin:0">PE1 <span style="font-weight:400; opacity:.75">PolyMeter Editor</span></h1>
<h1 style="margin:0">PM_E1 <span style="font-weight:400; opacity:.75">PolyMeter Editor</span></h1>
<div class="appheader-ctrls" style="display:flex; align-items:center; gap:10px">
<button id="helpBtn" title="keyboard shortcuts (?)">?</button>
</div>

View file

@ -63,10 +63,10 @@
<table>
<thead><tr><th>value</th><th>widget</th></tr></thead>
<tbody>
<tr><td class="k">editor</td><td>PE1 PolyMeter Editor (full app)</td></tr>
<tr><td class="k">initial</td><td>PM1 Initial (idealized device)</td></tr>
<tr><td class="k">teacher</td><td>PM1 Teacher (studio / lesson console)</td></tr>
<tr><td class="k">micro</td><td>PM‑µ Micro (inline practice bar)</td></tr>
<tr><td class="k">editor</td><td>PM_E1 PolyMeter Editor (full app)</td></tr>
<tr><td class="k">initial</td><td>PM_C1 Concept (idealized device)</td></tr>
<tr><td class="k">teacher</td><td>PM_T1 Teacher (studio / lesson console)</td></tr>
<tr><td class="k">micro</td><td>PM_P1 Practice (inline practice bar)</td></tr>
</tbody>
</table>

View file

@ -93,7 +93,7 @@
<div class="panes" id="panes"></div>
<div class="viewport">
<div class="vp-bar"><span id="vpName"><b>PE1 Editor</b></span><a id="vpOpen" href="/editor.html" target="_blank" rel="noopener">Open full page ↗</a></div>
<div class="vp-bar"><span id="vpName"><b>PM_E1 Editor</b></span><a id="vpOpen" href="/editor.html" target="_blank" rel="noopener">Open full page ↗</a></div>
<iframe id="vp" title="PolyMeter — live viewport" allow="autoplay"></iframe>
</div>
@ -136,12 +136,12 @@ const SAMPLES = {}; let state = { bpm:120, volume:0.85 }, meters = [], muteWindo
/*@BUILD:include:src/setlists.js@*/
const VERSIONS = [
{ key:"editor", file:"/editor.html", name:"PE1 Editor", chip:"app", h:620, sum:"Design grooves: stack meter lanes, perstep accents/ghosts/mutes, swing &amp; polyrhythm, set lists, perlane dB gain." },
{ key:"teacher", file:"/teacher.html", name:"PM1 Teacher", chip:"hw", h:440, sum:"Studio / lesson desk console — colour TFT of every lane, arcade buttons, instrument passthrough." },
{ key:"stage", file:"/stage.html", name:"PM1 Stage", chip:"hw", h:430, sum:"Live foot pedal — two footswitches, expressionpedal tempo, a big floorreadable RGB beat light." },
{ key:"micro", file:"/micro.html", name:"PM‑µ Micro", chip:"hw", h:240, sum:"Inline practice bar — clickable thumbroller, amber 14segment, instrument in/out passthrough." },
{ key:"showcase", file:"/showcase.html",name:"PMS Showcase", chip:"hw", h:540, sum:"Pyramid display piece — an RGBlight pendulum combining every lane's subdivisions &amp; accents." },
{ key:"initial", file:"/player.html", name:"PM1 Initial", chip:"", h:440, sum:"The idealized concept render — full multilane display and setlist navigation." },
{ key:"editor", file:"/editor.html", name:"PM_E1 Editor", chip:"app", h:620, sum:"Design grooves: stack meter lanes, perstep accents/ghosts/mutes, swing &amp; polyrhythm, set lists, perlane dB gain." },
{ key:"teacher", file:"/teacher.html", name:"PM_T1 Teacher", chip:"hw", h:440, sum:"Studio / lesson desk console — colour TFT of every lane, arcade buttons, instrument passthrough." },
{ key:"stage", file:"/stage.html", name:"PM_S1 Stage", chip:"hw", h:430, sum:"Live foot pedal — two footswitches, expressionpedal tempo, a big floorreadable RGB beat light." },
{ key:"micro", file:"/micro.html", name:"PM_P1 Practice", chip:"hw", h:240, sum:"Inline practice bar — clickable thumbroller, amber 14segment, instrument in/out passthrough." },
{ key:"showcase", file:"/showcase.html",name:"PM_D1 Display", chip:"hw", h:540, sum:"Pyramid display piece — an RGBlight pendulum combining every lane's subdivisions &amp; accents." },
{ key:"initial", file:"/player.html", name:"PM_C1 Concept", chip:"", h:440, sum:"The idealized concept render — full multilane display and setlist navigation." },
];
const DEFAULT_PROG = (typeof SEED_SETLISTS !== "undefined" && SEED_SETLISTS[0] && SEED_SETLISTS[0].items[0] && SEED_SETLISTS[0].items[0][1]) || "v1;t120;kick:4;snare:4=.X.X;hat:4/2";

View file

@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
<title>VARASYS PM‑µ — micro (home practice)</title>
<title>VARASYS PM_P1 — Practice (inline bar)</title>
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml;base64,@BUILD:favicon@">
<script>
/* ?embed=1 → strip site chrome (base.css [data-embed]) + auto-size to the host */
@ -127,7 +127,7 @@
/*@BUILD:include:src/header.html@*/
<h1 class="ff-title">PM‑µ Micro</h1>
<h1 class="ff-title">PM_P1 Practice</h1>
<p class="ff-sum">Inline practice bar — patch your instrument through it (in one end, amp/headphones out the other) with the click mixed in. One clickable thumbroller, an amber 14segment display.</p>
<div class="device">
@ -140,7 +140,7 @@
<!-- TOP FACE: display + roller + speaker -->
<div class="face">
<div class="brandrow">
<div class="silk"><img class="brand-logo" src="data:image/png;base64,@BUILD:logo-dark@" alt="VARASYS" /><span class="model">PM‑µ Micro</span></div>
<div class="silk"><img class="brand-logo" src="data:image/png;base64,@BUILD:logo-dark@" alt="VARASYS" /><span class="model">PM_P1 Practice</span></div>
<div class="meta">
<div class="pwr" title="Powered over USBC — wall adapter or power bank"><span class="dot"></span>USBC&nbsp;PWR</div>
</div>
@ -324,7 +324,7 @@ window.loadProgramString = function(plain){ var s=patchToSetup(plain); tracks=[{
<div id="techinfo" class="pageonly" hidden>
<section class="about">
<h2>PM‑µ — Micro</h2>
<h2>PM_P1 — Practice</h2>
<div class="ff-tags"><span class="hw">Hardware</span><span>Inline practice bar</span><span>~$35 oneoff</span></div>
<p>A long, narrow practice bar you patch <i>into</i> your signal: instrument in one end, amp or headphones out
the other, the click mixed in. One clickable thumbroller does everything (roll = tempo, press = start/stop,

View file

@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
<title>VARASYS PM1 — hardware player (mockup)</title>
<title>VARASYS PM_C1 — Concept (idealized render)</title>
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml;base64,@BUILD:favicon@">
<script>
/* ?embed=1 → strip site chrome (base.css [data-embed]) + auto-size to the host */
@ -211,7 +211,7 @@
/*@BUILD:include:src/header.html@*/
<h1 class="ff-title">PM1 Initial</h1>
<h1 class="ff-title">PM_C1 Concept</h1>
<p class="ff-sum">The idealized concept render — a clean screenfirst player with a colour beat display, setlist navigation, theming and a fullscreen landscape view.</p>
<!-- fullscreen "stage mode" toggle — floats over the page (was a header button before the shared header) -->
@ -222,7 +222,7 @@
<span class="screw bl"></span><span class="screw br"></span>
<div class="brandrow">
<div class="logo"><span class="vk">VARASYS</span><span class="model">PM1 · Polymeter Player</span></div>
<div class="logo"><span class="vk">VARASYS</span><span class="model">PM_C1 · Concept</span></div>
<div class="pwr"><span class="dot"></span>PWR</div>
</div>
@ -496,16 +496,16 @@ requestAnimationFrame(draw);
<label class="info-toggle pageonly"><input type="checkbox" id="infoToggle"> Show technical info</label>
<div id="techinfo" class="pageonly" hidden>
<section class="about">
<h2>PM1 — Initial</h2>
<h2>PM_C1 — Concept</h2>
<div class="ff-tags"><span>Concept</span><span>Idealized device</span><span>Not buildable as drawn</span></div>
<p>The idealized PM1: the player as a clean, screenfirst device with no concession to mechanical parts yet.
<p>The idealized concept (PM_C1): the player as a clean, screenfirst device with no concession to mechanical parts yet.
It's the look we design <i>toward</i> — full setlist navigation, a colour beat display showing every lane,
light/dark theming, and a fullscreen landscape "stage" view. It runs the same engine and program strings as
everything else in the family, but as an <i>idealized</i> object, before deciding which buttons, encoders,
jacks and enclosure actually make it real.</p>
<p>Because it's a concept, there's <b>no bill of materials</b> — there's nothing to source for a render. The
buildable realization of this idea is the <a href="/teacher.html">PM1 Teacher</a> (full priced BOM there);
for the smallest practical unit, see the <a href="/micro.html">PM‑µ Micro</a>.</p>
buildable realization of this idea is the <a href="/teacher.html">PM_T1 Teacher</a> (full priced BOM there);
for the smallest practical unit, see the <a href="/micro.html">PM_P1 Practice</a>.</p>
</section>
</div><!-- /#techinfo -->

View file

@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
<title>VARASYS PMS — Showcase (RGB pendulum metronome)</title>
<title>VARASYS PM_D1 — Display (RGB pendulum metronome)</title>
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml;base64,@BUILD:favicon@">
<script>
(function(){ if(!/[?&]embed=1/.test(location.search)) return;
@ -59,7 +59,7 @@
/*@BUILD:include:src/header.html@*/
<main>
<h1 class="ff-title">PMS Showcase</h1>
<h1 class="ff-title">PM_D1 Display</h1>
<p class="ff-sum">A displaypiece metronome — the pendulum is an RGB light bar that combines every lane's subdivisions &amp; accents; a printed tempo scale with a sliding weight sets the tempo.</p>
<div class="device"><canvas id="stage" width="300" height="470" aria-label="RGB pendulum metronome"></canvas></div>
@ -79,7 +79,7 @@
<div id="techinfo" class="pageonly" hidden>
<section class="about">
<h2>PMS — Showcase</h2>
<h2>PM_D1 — Display</h2>
<div class="ff-tags"><span class="hw">Hardware</span><span>Display piece</span><span>~$41 oneoff</span></div>
<p>A metronome as an object: the silhouette of a classic pyramid windup unit, but the swinging pendulum is
pure <b>RGB light</b>. The whole bar is the display — every lane's subdivisions &amp; accents ride along its
@ -200,7 +200,7 @@ function drawBody(){
g.beginPath(); g.moveTo(tlx,topY); g.lineTo(blx,botY); g.lineWidth=2; g.strokeStyle="rgba(255,255,255,.05)"; g.stroke();
g.textAlign="center"; g.fillStyle="#aab2bc";
g.font="700 9px 'Segoe UI',Roboto,Arial,sans-serif"; g.fillText("V A R A S Y S", CW/2, 33);
g.globalAlpha=.8; g.font="600 7.5px 'Segoe UI',Roboto,Arial,sans-serif"; g.fillText("PMS SHOWCASE", CW/2, 44); g.globalAlpha=1;
g.globalAlpha=.8; g.font="600 7.5px 'Segoe UI',Roboto,Arial,sans-serif"; g.fillText("PM_D1 DISPLAY", CW/2, 44); g.globalAlpha=1;
}
function drawPendulum(){

View file

@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
<title>VARASYS PM1 — Stage (footpedal stompbox)</title>
<title>VARASYS PM_S1 — Stage (footpedal stompbox)</title>
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml;base64,@BUILD:favicon@">
<script>
/* ?embed=1 → strip site chrome + auto-size to the host */
@ -111,7 +111,7 @@
/*@BUILD:include:src/header.html@*/
<h1 class="ff-title">PM1 Stage</h1>
<h1 class="ff-title">PM_S1 Stage</h1>
<p class="ff-sum">Footpedal stompbox for the stage — handsfree with two footswitches and an expression pedal, a big floorreadable RGB beat light, instrument passthrough with the click mixed in.</p>
<div class="device">
@ -126,7 +126,7 @@
</div>
<div class="brandrow">
<div class="silk"><img class="brand-logo" src="data:image/png;base64,@BUILD:logo-dark@" alt="VARASYS" /><span class="model">PM1 Stage</span></div>
<div class="silk"><img class="brand-logo" src="data:image/png;base64,@BUILD:logo-dark@" alt="VARASYS" /><span class="model">PM_S1 Stage</span></div>
<div class="pwr"><span class="dot"></span>USBC&nbsp;PWR</div>
</div>
@ -310,7 +310,7 @@ window.loadProgramString = function(plain){ var s=patchToSetup(plain); tracks=[{
<div id="techinfo" class="pageonly" hidden>
<section class="about">
<h2>PM1 — Stage</h2>
<h2>PM_S1 — Stage</h2>
<div class="ff-tags"><span class="hw">Hardware</span><span>Footpedal stompbox</span><span>~$52 oneoff</span></div>
<p>A footoperated polymeter stompbox for the stage: drive it handsfree with two heavy footswitches and an
expression pedal, read it off the floor from the big RGB beat light, and run your instrument through it with

View file

@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
<title>VARASYS PM1 — Teacher (studio / lesson console)</title>
<title>VARASYS PM_T1 — Teacher (studio / lesson console)</title>
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml;base64,@BUILD:favicon@">
<script>
/* ?embed=1 → strip site chrome (base.css [data-embed]) + auto-size to the host */
@ -204,7 +204,7 @@
/*@BUILD:include:src/header.html@*/
<h1 class="ff-title">PM1 Teacher</h1>
<h1 class="ff-title">PM_T1 Teacher</h1>
<p class="ff-sum">Fullfeature studio / lesson desk console — a colour TFT showing every lane, arcade buttons and a thumbroller, with your instrument running through and the click mixed in.</p>
<div class="cols">
@ -231,7 +231,7 @@
<div class="device">
<div class="brandrow">
<div class="silk"><img class="brand-logo" src="data:image/png;base64,@BUILD:logo-dark@" alt="VARASYS" /><span class="model">PM1 Teacher</span></div>
<div class="silk"><img class="brand-logo" src="data:image/png;base64,@BUILD:logo-dark@" alt="VARASYS" /><span class="model">PM_T1 Teacher</span></div>
<div class="pwr"><span class="dot"></span>PWR</div>
</div>
@ -282,7 +282,7 @@
<div id="techinfo" class="pageonly" hidden>
<section class="about">
<h2>PM1 — Teacher</h2>
<h2>PM_T1 — Teacher</h2>
<div class="ff-tags"><span class="hw">Hardware</span><span>Studio / lesson console</span><span>~$59 oneoff</span></div>
<p>The fullfeature desktop console: a colour readout of every lane, fast setlist navigation, and your
instrument running straight through with the click mixed in — the handson unit for a studio desk or a