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:
parent
295f838258
commit
5a805a292b
9 changed files with 45 additions and 45 deletions
18
README.md
18
README.md
|
|
@ -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 **PE‑1 PolyMeter Editor** — a full
|
||||
A landing page is the front door; the main app is the **PM_E‑1 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 per‑step pattern with accents. Layering lanes
|
||||
produces polymeter and true ratio polyrhythm. The same engine drives an ever‑expanding 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 / form‑factor gallery; each box embeds the live widget |
|
||||
| `/editor.html` | **PE‑1 — PolyMeter Editor** (the main app) |
|
||||
| `/player.html` | **PM‑1 Initial** — idealized concept device (full display + set‑list nav, theme, fullscreen "stage" view) |
|
||||
| `/teacher.html` | **PM‑1 Teacher** — studio / lesson console (colour TFT, arcade buttons, 1/4″ instrument pass‑through with analog click injection) |
|
||||
| `/stage.html` | **PM‑1 Stage** — foot‑pedal stompbox (two footswitches, expression‑pedal in, RGB beat light, instrument pass‑through) |
|
||||
| `/micro.html` | **PM‑µ Micro** — inline practice bar (instrument in / out pass‑through, clickable thumb‑roller, 14‑segment display) |
|
||||
| `/showcase.html` | **PM‑S Showcase** — pyramid display piece; the pendulum is an RGB light bar combining every lane's subdivisions/accents |
|
||||
| `/editor.html` | **PM_E‑1 — PolyMeter Editor** (the main app) |
|
||||
| `/player.html` | **PM_C‑1 Concept** — idealized concept device (full display + set‑list nav, theme, fullscreen "stage" view) |
|
||||
| `/teacher.html` | **PM_T‑1 Teacher** — studio / lesson console (colour TFT, arcade buttons, 1/4″ instrument pass‑through with analog click injection) |
|
||||
| `/stage.html` | **PM_S‑1 Stage** — foot‑pedal stompbox (two footswitches, expression‑pedal in, RGB beat light, instrument pass‑through) |
|
||||
| `/micro.html` | **PM_P‑1 Practice** — inline practice bar (instrument in / out pass‑through, clickable thumb‑roller, 14‑segment display) |
|
||||
| `/showcase.html` | **PM_D‑1 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 drop‑in loader |
|
||||
|
||||
Each form‑factor page is self‑contained ("Open" = "Info"): a more‑detailed 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 **PE‑1 editor** app (source, with `@BUILD:*` markers) |
|
||||
| `editor.html` | the **PM_E‑1 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 (PM‑1 Initial / Teacher / Stage, PM‑µ Micro, PM‑S Showcase) |
|
||||
| `player.html` · `teacher.html` · `stage.html` · `micro.html` · `showcase.html` | the device mockups (PM_C‑1 Concept / Teacher / Stage, PM_P‑1 Practice, PM_D‑1 Display) |
|
||||
| `embed.html` · `embed.js` | embed docs and the drop‑in widget loader |
|
||||
| `src/` | shared partials inlined into every page: `engine.js`, `setlists.js`, `base.css` |
|
||||
| `assets/` | base64 blobs inlined at build (samples, logos, favicon) |
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>PE‑1 — PolyMeter Editor</title>
|
||||
<title>PM_E‑1 — 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">PE‑1 <span style="font-weight:400; opacity:.75">PolyMeter Editor</span></h1>
|
||||
<h1 style="margin:0">PM_E‑1 <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>
|
||||
|
|
|
|||
|
|
@ -63,10 +63,10 @@
|
|||
<table>
|
||||
<thead><tr><th>value</th><th>widget</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td class="k">editor</td><td>PE‑1 PolyMeter Editor (full app)</td></tr>
|
||||
<tr><td class="k">initial</td><td>PM‑1 Initial (idealized device)</td></tr>
|
||||
<tr><td class="k">teacher</td><td>PM‑1 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_E‑1 PolyMeter Editor (full app)</td></tr>
|
||||
<tr><td class="k">initial</td><td>PM_C‑1 Concept (idealized device)</td></tr>
|
||||
<tr><td class="k">teacher</td><td>PM_T‑1 Teacher (studio / lesson console)</td></tr>
|
||||
<tr><td class="k">micro</td><td>PM_P‑1 Practice (inline practice bar)</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
|
|
|||
14
index.html
14
index.html
|
|
@ -93,7 +93,7 @@
|
|||
<div class="panes" id="panes"></div>
|
||||
|
||||
<div class="viewport">
|
||||
<div class="vp-bar"><span id="vpName"><b>PE‑1 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_E‑1 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:"PE‑1 Editor", chip:"app", h:620, sum:"Design grooves: stack meter lanes, per‑step accents/ghosts/mutes, swing & polyrhythm, set lists, per‑lane dB gain." },
|
||||
{ key:"teacher", file:"/teacher.html", name:"PM‑1 Teacher", chip:"hw", h:440, sum:"Studio / lesson desk console — colour TFT of every lane, arcade buttons, instrument pass‑through." },
|
||||
{ key:"stage", file:"/stage.html", name:"PM‑1 Stage", chip:"hw", h:430, sum:"Live foot pedal — two footswitches, expression‑pedal tempo, a big floor‑readable RGB beat light." },
|
||||
{ key:"micro", file:"/micro.html", name:"PM‑µ Micro", chip:"hw", h:240, sum:"Inline practice bar — clickable thumb‑roller, amber 14‑segment, instrument in/out pass‑through." },
|
||||
{ key:"showcase", file:"/showcase.html",name:"PM‑S Showcase", chip:"hw", h:540, sum:"Pyramid display piece — an RGB‑light pendulum combining every lane's subdivisions & accents." },
|
||||
{ key:"initial", file:"/player.html", name:"PM‑1 Initial", chip:"", h:440, sum:"The idealized concept render — full multi‑lane display and set‑list navigation." },
|
||||
{ key:"editor", file:"/editor.html", name:"PM_E‑1 Editor", chip:"app", h:620, sum:"Design grooves: stack meter lanes, per‑step accents/ghosts/mutes, swing & polyrhythm, set lists, per‑lane dB gain." },
|
||||
{ key:"teacher", file:"/teacher.html", name:"PM_T‑1 Teacher", chip:"hw", h:440, sum:"Studio / lesson desk console — colour TFT of every lane, arcade buttons, instrument pass‑through." },
|
||||
{ key:"stage", file:"/stage.html", name:"PM_S‑1 Stage", chip:"hw", h:430, sum:"Live foot pedal — two footswitches, expression‑pedal tempo, a big floor‑readable RGB beat light." },
|
||||
{ key:"micro", file:"/micro.html", name:"PM_P‑1 Practice", chip:"hw", h:240, sum:"Inline practice bar — clickable thumb‑roller, amber 14‑segment, instrument in/out pass‑through." },
|
||||
{ key:"showcase", file:"/showcase.html",name:"PM_D‑1 Display", chip:"hw", h:540, sum:"Pyramid display piece — an RGB‑light pendulum combining every lane's subdivisions & accents." },
|
||||
{ key:"initial", file:"/player.html", name:"PM_C‑1 Concept", chip:"", h:440, sum:"The idealized concept render — full multi‑lane display and set‑list 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";
|
||||
|
||||
|
|
|
|||
|
|
@ -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_P‑1 — 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_P‑1 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 thumb‑roller, an amber 14‑segment 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_P‑1 Practice</span></div>
|
||||
<div class="meta">
|
||||
<div class="pwr" title="Powered over USB‑C — wall adapter or power bank"><span class="dot"></span>USB‑C 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_P‑1 — Practice</h2>
|
||||
<div class="ff-tags"><span class="hw">Hardware</span><span>Inline practice bar</span><span>~$35 one‑off</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 thumb‑roller does everything (roll = tempo, press = start/stop,
|
||||
|
|
|
|||
14
player.html
14
player.html
|
|
@ -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‑1 — hardware player (mockup)</title>
|
||||
<title>VARASYS PM_C‑1 — 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">PM‑1 Initial</h1>
|
||||
<h1 class="ff-title">PM_C‑1 Concept</h1>
|
||||
<p class="ff-sum">The idealized concept render — a clean screen‑first player with a colour beat display, set‑list 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">PM‑1 · Polymeter Player</span></div>
|
||||
<div class="logo"><span class="vk">VARASYS</span><span class="model">PM_C‑1 · 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>PM‑1 — Initial</h2>
|
||||
<h2>PM_C‑1 — Concept</h2>
|
||||
<div class="ff-tags"><span>Concept</span><span>Idealized device</span><span>Not buildable as drawn</span></div>
|
||||
<p>The idealized PM‑1: the player as a clean, screen‑first device with no concession to mechanical parts yet.
|
||||
<p>The idealized concept (PM_C‑1): the player as a clean, screen‑first device with no concession to mechanical parts yet.
|
||||
It's the look we design <i>toward</i> — full set‑list 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">PM‑1 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_T‑1 Teacher</a> (full priced BOM there);
|
||||
for the smallest practical unit, see the <a href="/micro.html">PM_P‑1 Practice</a>.</p>
|
||||
</section>
|
||||
</div><!-- /#techinfo -->
|
||||
|
||||
|
|
|
|||
|
|
@ -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‑S — Showcase (RGB pendulum metronome)</title>
|
||||
<title>VARASYS PM_D‑1 — 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">PM‑S Showcase</h1>
|
||||
<h1 class="ff-title">PM_D‑1 Display</h1>
|
||||
<p class="ff-sum">A display‑piece metronome — the pendulum is an RGB light bar that combines every lane's subdivisions & 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>PM‑S — Showcase</h2>
|
||||
<h2>PM_D‑1 — Display</h2>
|
||||
<div class="ff-tags"><span class="hw">Hardware</span><span>Display piece</span><span>~$41 one‑off</span></div>
|
||||
<p>A metronome as an object: the silhouette of a classic pyramid wind‑up unit, but the swinging pendulum is
|
||||
pure <b>RGB light</b>. The whole bar is the display — every lane's subdivisions & 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("PM‑S SHOWCASE", CW/2, 44); g.globalAlpha=1;
|
||||
g.globalAlpha=.8; g.font="600 7.5px 'Segoe UI',Roboto,Arial,sans-serif"; g.fillText("PM_D‑1 DISPLAY", CW/2, 44); g.globalAlpha=1;
|
||||
}
|
||||
|
||||
function drawPendulum(){
|
||||
|
|
|
|||
|
|
@ -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‑1 — Stage (foot‑pedal stompbox)</title>
|
||||
<title>VARASYS PM_S‑1 — Stage (foot‑pedal 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">PM‑1 Stage</h1>
|
||||
<h1 class="ff-title">PM_S‑1 Stage</h1>
|
||||
<p class="ff-sum">Foot‑pedal stompbox for the stage — hands‑free with two footswitches and an expression pedal, a big floor‑readable RGB beat light, instrument pass‑through 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">PM‑1 Stage</span></div>
|
||||
<div class="silk"><img class="brand-logo" src="data:image/png;base64,@BUILD:logo-dark@" alt="VARASYS" /><span class="model">PM_S‑1 Stage</span></div>
|
||||
<div class="pwr"><span class="dot"></span>USB‑C 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>PM‑1 — Stage</h2>
|
||||
<h2>PM_S‑1 — Stage</h2>
|
||||
<div class="ff-tags"><span class="hw">Hardware</span><span>Foot‑pedal stompbox</span><span>~$52 one‑off</span></div>
|
||||
<p>A foot‑operated polymeter stompbox for the stage: drive it hands‑free 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
|
||||
|
|
|
|||
|
|
@ -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‑1 — Teacher (studio / lesson console)</title>
|
||||
<title>VARASYS PM_T‑1 — 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">PM‑1 Teacher</h1>
|
||||
<h1 class="ff-title">PM_T‑1 Teacher</h1>
|
||||
<p class="ff-sum">Full‑feature studio / lesson desk console — a colour TFT showing every lane, arcade buttons and a thumb‑roller, 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">PM‑1 Teacher</span></div>
|
||||
<div class="silk"><img class="brand-logo" src="data:image/png;base64,@BUILD:logo-dark@" alt="VARASYS" /><span class="model">PM_T‑1 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>PM‑1 — Teacher</h2>
|
||||
<h2>PM_T‑1 — Teacher</h2>
|
||||
<div class="ff-tags"><span class="hw">Hardware</span><span>Studio / lesson console</span><span>~$59 one‑off</span></div>
|
||||
<p>The full‑feature desktop console: a colour readout of every lane, fast set‑list navigation, and your
|
||||
instrument running straight through with the click mixed in — the hands‑on unit for a studio desk or a
|
||||
|
|
|
|||
Loading…
Reference in a new issue