USB-C power for all devices (no batteries); separate Micro end caps; landing Philosophy

Power: standardise the whole family on a single USB-C input — drop the Micro's
2×AA and the Stage's 9V DC pedal jack (+ buck/reverse-polarity). Bring a power
bank; nothing internal to wear out. BOMs updated (Micro ≈$35, Stage ≈$56) and
all copy/cards/READMEs follow.

Micro form: detach the two end caps from the body with a gap (set-back, darker
end faces) so the TRS/USB-C jacks read as being on the ENDS of the bar, not the
front panel.

Landing: add a Philosophy section — "program on the web, play on any device"
(author once → load the program string into whichever form factor fits) and
"USB-C power everywhere — no batteries" (future-proofing rationale).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Me Here 2026-05-28 08:00:00 -05:00
parent 3fdabcc0bd
commit 362e1fa968
7 changed files with 80 additions and 47 deletions

View file

@ -25,7 +25,7 @@ State (set lists, the practice log, theme and UI preferences) lives in `localSto
| `/concepts.html` | **PolyMeter Concepts** — the formfactor gallery (cards → live page + info) | | `/concepts.html` | **PolyMeter Concepts** — the formfactor gallery (cards → live page + info) |
| `/player.html` | **PM1 Initial** — idealized concept device (full display + setlist nav, theme, fullscreen "stage" view) | | `/player.html` | **PM1 Initial** — idealized concept device (full display + setlist nav, theme, fullscreen "stage" view) |
| `/stage.html` | **PM1 Stage** — pedalboard build (colour TFT, arcade buttons, 1/4″ instrument passthrough with analog click injection) | | `/stage.html` | **PM1 Stage** — pedalboard build (colour TFT, arcade buttons, 1/4″ instrument passthrough with analog click injection) |
| `/micro.html` | **PMµ Micro**minimal homepractice unit (one push scrollencoder + 7segment LED) | | `/micro.html` | **PMµ Micro**inline practice bar (instrument in / out passthrough, clickable thumbroller, 14segment display) |
| `/info-editor.html`, `/info-initial.html` | purpose pages (web app / concept — no BOM) | | `/info-editor.html`, `/info-initial.html` | purpose pages (web app / concept — no BOM) |
| `/info-stage.html`, `/info-micro.html` | purpose **+ priced BOM** (buildable hardware only) | | `/info-stage.html`, `/info-micro.html` | purpose **+ priced BOM** (buildable hardware only) |
| `/embed.html` · `/embed.js` | embed docs and the dropin loader | | `/embed.html` · `/embed.js` | embed docs and the dropin loader |

View file

@ -86,7 +86,7 @@
<span class="chip hw">Hardware</span> <span class="chip hw">Hardware</span>
<h3>PM1 — Stage</h3> <h3>PM1 — Stage</h3>
<p>Pedalboard build: 2.0″ colour TFT, arcade buttons, thumbroller, 1/4″ instrument passthrough with <p>Pedalboard build: 2.0″ colour TFT, arcade buttons, thumbroller, 1/4″ instrument passthrough with
analog click injection + balancedTRS out, 9 V DC / USBC. Beadblasted matteblack anodised.</p> analog click injection + balancedTRS out, USBC powered. Beadblasted matteblack anodised.</p>
<div class="links"><a href="/stage.html">Open ↗</a><a href="/info-stage.html">Info &amp; BOM ⓘ</a></div> <div class="links"><a href="/stage.html">Open ↗</a><a href="/info-stage.html">Info &amp; BOM ⓘ</a></div>
</div> </div>
@ -94,7 +94,7 @@
<span class="chip hw">Hardware</span> <span class="chip hw">Hardware</span>
<h3>PMµ — Micro</h3> <h3>PMµ — Micro</h3>
<p>Long, narrow inline practice bar: instrument in one end, amp/headphones out the other, click mixed in. <p>Long, narrow inline practice bar: instrument in one end, amp/headphones out the other, click mixed in.
Clickable thumbroller, amber 14segment display, USBC or 2×AA.</p> Clickable thumbroller, amber 14segment display, USBC powered.</p>
<div class="links"><a href="/micro.html">Open ↗</a><a href="/info-micro.html">Info &amp; BOM ⓘ</a></div> <div class="links"><a href="/micro.html">Open ↗</a><a href="/info-micro.html">Info &amp; BOM ⓘ</a></div>
</div> </div>

View file

@ -53,6 +53,14 @@
.card .links{ display:flex; gap:16px; margin-top:4px; } .card .links{ display:flex; gap:16px; margin-top:4px; }
.card .links a{ color:var(--link); text-decoration:none; font-size:13px; font-weight:600; } .card .links a{ color:var(--link); text-decoration:none; font-size:13px; font-weight:600; }
.more{ text-align:center; margin-top:18px; font-size:14px; } .more{ text-align:center; margin-top:18px; font-size:14px; }
/* philosophy section */
.philosophy{ margin-top:34px; }
.phil-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:16px; }
.phil{ background:var(--panel-bg); border:1px solid var(--panel-bd); border-radius:14px; padding:18px 18px 16px; }
.phil h3{ margin:0 0 8px; font-size:15px; display:flex; align-items:center; gap:8px; }
.phil .ic{ font-size:17px; line-height:1; filter:grayscale(.1); }
.phil p{ margin:0; font-size:13.5px; color:var(--muted); line-height:1.62; }
.phil p b{ color:var(--txt); }
.site-foot{ max-width:980px; margin:42px auto 0; font-size:12px; color:var(--muted); text-align:center; } .site-foot{ max-width:980px; margin:42px auto 0; font-size:12px; color:var(--muted); text-align:center; }
.site-foot a{ color:var(--muted); } .site-foot a{ color:var(--muted); }
</style> </style>
@ -111,7 +119,7 @@
<span class="chip hw">Hardware</span> <span class="chip hw">Hardware</span>
<h3>PMµ — Micro</h3> <h3>PMµ — Micro</h3>
<p>Long, narrow inline practice bar: instrument in one end, amp/headphones out the other, click mixed in. <p>Long, narrow inline practice bar: instrument in one end, amp/headphones out the other, click mixed in.
Clickable thumbroller, amber 14segment display, USBC or 2×AA.</p> Clickable thumbroller, amber 14segment display, USBC powered.</p>
<div class="links"><a href="/micro.html">Open ↗</a><a href="/info-micro.html">Info &amp; BOM ⓘ</a></div> <div class="links"><a href="/micro.html">Open ↗</a><a href="/info-micro.html">Info &amp; BOM ⓘ</a></div>
</div> </div>
@ -124,6 +132,30 @@
</div> </div>
</div> </div>
<p class="more"><a href="/concepts.html">See all concepts, including the PM1 Initial render →</a></p> <p class="more"><a href="/concepts.html">See all concepts, including the PM1 Initial render →</a></p>
<section class="philosophy">
<div class="section-label">Philosophy</div>
<div class="phil-grid">
<div class="phil">
<h3><span class="ic">🛠️</span> Program on the web, play on any device</h3>
<p>The website is the workbench. Design your grooves in the <a href="/editor.html">PE1 editor</a>
stack meters, set perstep accents, build set lists — and every pattern saves to a compact
<b>program string</b> (a whole set list to a single code). That same string loads into whichever
form factor fits the moment: the <a href="/stage.html">Stage</a> on a pedalboard, the
<a href="/micro.html">Micro</a> inline at the practice desk, or an <a href="/embed.html">embedded
widget</a> in someone else's app. One engine, one language — you author once and run it anywhere,
choosing the device by the use scenario rather than relearning a new box each time.</p>
</div>
<div class="phil">
<h3><span class="ic">🔌</span> USBC power everywhere — no batteries</h3>
<p>Every device in the family is powered over a single <b>USBC</b> port — no internal battery to
swell, leak or wear out, and nothing proprietary to replace. Plug into a wall adapter for a
permanent install, or carry a power bank exactly the way you already do for your phone. Standardising
on one connector across the whole range keeps the builds simple and <b>futureproofs</b> the
project as USBC becomes universal.</p>
</div>
</div>
</section>
</main> </main>
<div class="site-foot">VARASYS · Simplifying Complexity · <div class="site-foot">VARASYS · Simplifying Complexity ·

View file

@ -48,10 +48,10 @@
<main> <main>
<h1>PMµ — Micro</h1> <h1>PMµ — Micro</h1>
<div class="tags"><span class="tag hw">Hardware</span><span class="tag">Inline practice bar</span><span class="tag">~$38 oneoff</span></div> <div class="tags"><span class="tag hw">Hardware</span><span class="tag">Inline practice bar</span><span class="tag">~$35 oneoff</span></div>
<p class="lead">A long, narrow practice bar you patch <i>into</i> your signal: instrument in one end, amp or <p class="lead">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, an amber headphones out the other, the click mixed in. One clickable thumbroller does everything, an amber
14segment display shows tempo and track names, and it runs off USBC or 2×AA.</p> 14segment display shows tempo and track names, and it runs over USBC — a wall adapter or a power bank.</p>
<div class="embed-wrap"> <div class="embed-wrap">
<div data-varasys-metronome="micro" <div data-varasys-metronome="micro"
@ -64,10 +64,11 @@
one end, USBC and a 1/4″ TRS output on the other, with the metronome click summed into your signal in the one end, USBC and a 1/4″ TRS output on the other, with the metronome click summed into your signal in the
<b>analog domain</b> (and a small monitor speaker). No menus — a single clickable thumbroller does it all <b>analog domain</b> (and a small monitor speaker). No menus — a single clickable thumbroller does it all
(roll = tempo, press = start/stop, hold + roll = switch track), and the amber 14segment display shows the (roll = tempo, press = start/stop, hold + roll = switch track), and the amber 14segment display shows the
BPM or the track name. Powered from USBC or 2×AA for portability; ships with the editor's grooves built in.</p> BPM or the track name. Powered over USBC — a wall adapter for a permanent practicespace install, or a
pocket power bank when you're mobile (no internal battery to wear out); ships with the editor's grooves built in.</p>
<h2>Bill of materials</h2> <h2>Bill of materials</h2>
<p class="sub">Rough parts list — a portable RP2040 inline bar (USBC or 2×AA) with analog click injection. <p class="sub">Rough parts list — a USBCpowered RP2040 inline bar with analog click injection.
Ballpark oneoff prices (USD); cheaper at volume.</p> Ballpark oneoff prices (USD); cheaper at volume.</p>
<table class="bom"> <table class="bom">
<thead><tr><th>Part</th><th class="q">Qty</th><th class="c">~$</th></tr></thead> <thead><tr><th>Part</th><th class="q">Qty</th><th class="c">~$</th></tr></thead>
@ -83,13 +84,12 @@
<tr><td class="part">PAM8302A mono ClassD + 8 Ω speaker <span class="spec">— monitor</span></td><td class="q">1</td><td class="c">4</td></tr> <tr><td class="part">PAM8302A mono ClassD + 8 Ω speaker <span class="spec">— monitor</span></td><td class="q">1</td><td class="c">4</td></tr>
<tr class="grp"><td colspan="3">Connectors &amp; power</td></tr> <tr class="grp"><td colspan="3">Connectors &amp; power</td></tr>
<tr><td class="part">1/4″ jack <span class="spec">— Inst In (TS) · Out (TRS)</span></td><td class="q">2</td><td class="c">2</td></tr> <tr><td class="part">1/4″ jack <span class="spec">— Inst In (TS) · Out (TRS)</span></td><td class="q">2</td><td class="c">2</td></tr>
<tr><td class="part">USBC bus power (5 V) + PWR LED <span class="spec">— also carries config</span></td><td class="q">1</td><td class="c">1</td></tr> <tr><td class="part">USBC bus power (5 V) + PWR LED <span class="spec">— wall adapter or power bank; also carries config</span></td><td class="q">1</td><td class="c">1</td></tr>
<tr><td class="part">2×AA holder + boost/management + battery gauge <span class="spec">— AA → 3.3/5 V for portable use</span></td><td class="q">1</td><td class="c">3</td></tr>
<tr class="grp"><td colspan="3">Build</td></tr> <tr class="grp"><td colspan="3">Build</td></tr>
<tr><td class="part">Custom PCB (or perfboard)</td><td class="q">1</td><td class="c">4</td></tr> <tr><td class="part">Custom PCB (or perfboard)</td><td class="q">1</td><td class="c">4</td></tr>
<tr><td class="part">Passives, headers, wire <span class="spec">— R/C for the analog stage + decoupling</span></td><td class="q"></td><td class="c">2</td></tr> <tr><td class="part">Passives, headers, wire <span class="spec">— R/C for the analog stage + decoupling</span></td><td class="q"></td><td class="c">2</td></tr>
<tr><td class="part">Extruded aluminium bar enclosure + end caps <span class="spec">— beadblasted, matteblack anodised</span></td><td class="q">1</td><td class="c">8</td></tr> <tr><td class="part">Extruded aluminium bar enclosure + end caps <span class="spec">— beadblasted, matteblack anodised</span></td><td class="q">1</td><td class="c">8</td></tr>
<tr class="total"><td>Total (oneoff)</td><td class="q"></td><td class="c">≈ $38</td></tr> <tr class="total"><td>Total (oneoff)</td><td class="q"></td><td class="c">≈ $35</td></tr>
</tbody> </tbody>
</table> </table>
<p class="sub" style="margin-top:12px">Like the Stage, the click is summed in the <b>analog domain</b>: a highimpedance <p class="sub" style="margin-top:12px">Like the Stage, the click is summed in the <b>analog domain</b>: a highimpedance

View file

@ -63,11 +63,11 @@
<p>The stage and the rehearsal room. Topmounted 1/4″ jacks keep cabling tidy on a board; you plug your <p>The stage and the rehearsal room. Topmounted 1/4″ jacks keep cabling tidy on a board; you plug your
instrument in, the metronome click is summed into the signal in the <b>analog domain</b> (no redigitising, instrument in, the metronome click is summed into the signal in the <b>analog domain</b> (no redigitising,
no added latency) and sent to a balanced 1/4″ TRS output for the desk, plus a small monitor speaker. no added latency) and sent to a balanced 1/4″ TRS output for the desk, plus a small monitor speaker.
Powered from a standard 9 V DC pedal supply or USBC. The colour TFT shows tempo, the item name, and all Powered over USBC — a wall adapter, or a power bank when there's no outlet on the board. The colour TFT
lane patterns; arcade buttons + a recessed thumbroller survive stage abuse.</p> shows tempo, the item name, and all lane patterns; arcade buttons + a recessed thumbroller survive stage abuse.</p>
<h2>Bill of materials</h2> <h2>Bill of materials</h2>
<p class="sub">Rough parts list — a pedalboardfriendly RP2040 build (9 V DC or USBC) with analog click injection. <p class="sub">Rough parts list — a pedalboardfriendly RP2040 build (USBC powered) with analog click injection.
Ballpark oneoff prices (USD); cheaper at volume.</p> Ballpark oneoff prices (USD); cheaper at volume.</p>
<table class="bom"> <table class="bom">
<thead><tr><th>Part</th><th class="q">Qty</th><th class="c">~$</th></tr></thead> <thead><tr><th>Part</th><th class="q">Qty</th><th class="c">~$</th></tr></thead>
@ -86,13 +86,12 @@
<tr><td class="part">PAM8302A mono ClassD + 8 Ω 2 W speaker <span class="spec">— monitor</span></td><td class="q">1</td><td class="c">4</td></tr> <tr><td class="part">PAM8302A mono ClassD + 8 Ω 2 W speaker <span class="spec">— monitor</span></td><td class="q">1</td><td class="c">4</td></tr>
<tr class="grp"><td colspan="3">Connectors &amp; power</td></tr> <tr class="grp"><td colspan="3">Connectors &amp; power</td></tr>
<tr><td class="part">1/4″ jack <span class="spec">— Inst In (TS) · Out (TRS) · Trig In (TS)</span></td><td class="q">3</td><td class="c">3</td></tr> <tr><td class="part">1/4″ jack <span class="spec">— Inst In (TS) · Out (TRS) · Trig In (TS)</span></td><td class="q">3</td><td class="c">3</td></tr>
<tr><td class="part">USBC bus power (5 V) + PWR LED <span class="spec">— same port carries config; no battery</span></td><td class="q">1</td><td class="c">1</td></tr> <tr><td class="part">USBC bus power (5 V) + PWR LED <span class="spec">— wall adapter or power bank; same port carries config; no battery</span></td><td class="q">1</td><td class="c">1</td></tr>
<tr><td class="part">9 V DC pedal jack (2.1 mm centreneg) + 9 V→5 V buck + reversepolarity protect <span class="spec">— pedalboard power</span></td><td class="q">1</td><td class="c">3</td></tr>
<tr class="grp"><td colspan="3">Build</td></tr> <tr class="grp"><td colspan="3">Build</td></tr>
<tr><td class="part">Custom PCB (or perfboard)</td><td class="q">1</td><td class="c">5</td></tr> <tr><td class="part">Custom PCB (or perfboard)</td><td class="q">1</td><td class="c">5</td></tr>
<tr><td class="part">Passives, headers, wire <span class="spec">— R/C for the analog stage + decoupling</span></td><td class="q"></td><td class="c">3</td></tr> <tr><td class="part">Passives, headers, wire <span class="spec">— R/C for the analog stage + decoupling</span></td><td class="q"></td><td class="c">3</td></tr>
<tr><td class="part">Diecast aluminium enclosure (Hammond 1590style) <span class="spec">— beadblasted, matteblack Type II anodise, laseretched legends</span></td><td class="q">1</td><td class="c">12</td></tr> <tr><td class="part">Diecast aluminium enclosure (Hammond 1590style) <span class="spec">— beadblasted, matteblack Type II anodise, laseretched legends</span></td><td class="q">1</td><td class="c">12</td></tr>
<tr class="total"><td>Total (oneoff)</td><td class="q"></td><td class="c">≈ $59</td></tr> <tr class="total"><td>Total (oneoff)</td><td class="q"></td><td class="c">≈ $56</td></tr>
</tbody> </tbody>
</table> </table>
<p class="sub" style="margin-top:12px">Audio is summed in the <b>analog domain</b>: the DAC's click is mixed with a highimpedance <p class="sub" style="margin-top:12px">Audio is summed in the <b>analog domain</b>: the DAC's click is mixed with a highimpedance

View file

@ -16,8 +16,9 @@
<!-- <!--
"Micro" — a long, narrow INLINE practice bar on the same RP2040 firmware. "Micro" — a long, narrow INLINE practice bar on the same RP2040 firmware.
Patch your instrument through it: 1/4" TRS in on one end; USB-C + 1/4" TRS out Patch your instrument through it: 1/4" TRS in on one end; USB-C + 1/4" TRS out
on the other; powered from USB-C or 2×AA. The click is summed into your signal on the other; powered over USB-C (wall adapter or power bank — no internal
in the ANALOG domain (and a small speaker). Display is a 4-char amber 14-segment battery). The click is summed into your signal in the ANALOG domain (and a
small speaker). Display is a 4-char amber 14-segment
(shows BPM *and* short track names). One control — a clickable thumb-ROLLER: (shows BPM *and* short track names). One control — a clickable thumb-ROLLER:
• roll → tempo • roll → tempo
• press (click) → start / stop • press (click) → start / stop
@ -52,19 +53,20 @@
.tbtn{ background:transparent; color:var(--muted); border:1px solid var(--panel-bd); border-radius:8px; padding:3px 9px; font-size:14px; line-height:1; cursor:pointer } .tbtn{ background:transparent; color:var(--muted); border:1px solid var(--panel-bd); border-radius:8px; padding:3px 9px; font-size:14px; line-height:1; cursor:pointer }
.tbtn:hover{ color:var(--txt) } .tbtn:hover{ color:var(--txt) }
/* ---- the micro device: a long, narrow brushed-aluminium bar ---- */ /* ---- the micro device: a long, narrow brushed-aluminium bar ----
.device{ width:100%; max-width:620px; display:flex; align-items:stretch; position:relative; The main body and the two end caps are SEPARATE pieces with a gap between
border-radius:18px; overflow:hidden; border:1px solid var(--device-bd); them, so the jacks read as being on the ENDS of the bar (not the front). */
background: .device{ width:100%; max-width:660px; display:flex; align-items:center; gap:15px; position:relative }
radial-gradient(rgba(255,255,255,.022) .5px, transparent .6px) 0 0/3px 3px, /* bead-blast micro-texture */
linear-gradient(180deg, #2b2d33, #161719); /* matte anodised graphite */
box-shadow:0 24px 50px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.05), inset 0 -2px 8px rgba(0,0,0,.5) }
/* end caps — the extrusion ends, where the jacks exit */ /* end caps — the extrusion's end faces, stood apart from the body; jacks exit here.
.endcap{ flex:0 0 auto; width:76px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:11px; A touch shorter than the body (align-self:stretch + margin) so they look set-back. */
padding:12px 8px; background:linear-gradient(180deg,#202227,#0d0e11) } .endcap{ flex:0 0 auto; width:66px; align-self:stretch; margin:9px 0;
.endcap.left{ box-shadow:inset -7px 0 13px rgba(0,0,0,.55) } display:flex; flex-direction:column; align-items:center; justify-content:center; gap:11px;
.endcap.right{ box-shadow:inset 7px 0 13px rgba(0,0,0,.55) } padding:12px 7px; border-radius:10px; border:1px solid #292b30;
background:linear-gradient(180deg,#1b1d21,#0a0b0e); /* darker end-grain */
box-shadow:0 12px 24px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.04), inset 0 -2px 6px rgba(0,0,0,.55) }
.endcap.left{ border-right-color:#3b3e45 } /* chamfer highlight on the edge facing the body */
.endcap.right{ border-left-color:#3b3e45 }
.endlbl{ font-size:7px; color:var(--silk); text-transform:uppercase; letter-spacing:.1em; text-align:center; line-height:1.35; opacity:.8 } .endlbl{ font-size:7px; color:var(--silk); text-transform:uppercase; letter-spacing:.1em; text-align:center; line-height:1.35; opacity:.8 }
.jk{ display:flex; flex-direction:column; align-items:center; gap:4px } .jk{ display:flex; flex-direction:column; align-items:center; gap:4px }
.jk i{ width:23px; height:23px; border-radius:50%; background:radial-gradient(circle at 40% 34%, #333a44, #07090c 72%); .jk i{ width:23px; height:23px; border-radius:50%; background:radial-gradient(circle at 40% 34%, #333a44, #07090c 72%);
@ -72,8 +74,13 @@
.jk.usb i{ width:25px; height:10px; border-radius:4px; border:2px solid #5b6470; background:#07090c } .jk.usb i{ width:25px; height:10px; border-radius:4px; border:2px solid #5b6470; background:#07090c }
.jk b{ font-size:7px; font-weight:700; color:var(--silk); letter-spacing:.05em; text-transform:uppercase; opacity:.9; text-align:center; line-height:1.25 } .jk b{ font-size:7px; font-weight:700; color:var(--silk); letter-spacing:.05em; text-transform:uppercase; opacity:.9; text-align:center; line-height:1.25 }
/* the top face (between the end caps) */ /* the main body / top face (between the end caps) */
.face{ flex:1; min-width:0; display:flex; flex-direction:column; padding:11px 16px; gap:8px } .face{ flex:1; min-width:0; display:flex; flex-direction:column; padding:11px 16px; gap:8px;
border-radius:16px; border:1px solid var(--device-bd);
background:
radial-gradient(rgba(255,255,255,.022) .5px, transparent .6px) 0 0/3px 3px, /* bead-blast micro-texture */
linear-gradient(180deg, #2b2d33, #161719); /* matte anodised graphite */
box-shadow:0 24px 50px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.05), inset 0 -2px 8px rgba(0,0,0,.5) }
.brandrow{ display:flex; align-items:center; justify-content:space-between; margin:0 } .brandrow{ display:flex; align-items:center; justify-content:space-between; margin:0 }
.brand-logo{ height:13px; width:auto; display:block } .brand-logo{ height:13px; width:auto; display:block }
.silk{ display:flex; align-items:center; gap:7px; color:var(--silk) } .silk{ display:flex; align-items:center; gap:7px; color:var(--silk) }
@ -81,11 +88,6 @@
.meta{ display:flex; align-items:center; gap:12px } .meta{ display:flex; align-items:center; gap:12px }
.pwr{ display:flex; align-items:center; gap:5px; font-size:7.5px; color:var(--silk); text-transform:uppercase; letter-spacing:.12em; opacity:.85 } .pwr{ display:flex; align-items:center; gap:5px; font-size:7.5px; color:var(--silk); text-transform:uppercase; letter-spacing:.12em; opacity:.85 }
.pwr .dot{ width:6px; height:6px; border-radius:50%; background:#2fe07a; box-shadow:0 0 6px #2fe07a } .pwr .dot{ width:6px; height:6px; border-radius:50%; background:#2fe07a; box-shadow:0 0 6px #2fe07a }
/* battery gauge (2×AA) */
.batt{ display:flex; align-items:center; gap:5px; font-size:7.5px; color:var(--silk); text-transform:uppercase; letter-spacing:.1em; opacity:.85 }
.batt .cell{ width:21px; height:10px; border:1px solid var(--silk); border-radius:2px; position:relative }
.batt .cell::after{ content:""; position:absolute; right:-3px; top:2.5px; width:2px; height:5px; background:var(--silk); border-radius:0 1px 1px 0 }
.batt .cell::before{ content:""; position:absolute; left:1.5px; top:1.5px; bottom:1.5px; width:65%; background:#2fe07a; border-radius:1px }
.facemain{ display:flex; align-items:center; gap:14px } .facemain{ display:flex; align-items:center; gap:14px }
/* ---- amber 14-segment alphanumeric display ---- */ /* ---- amber 14-segment alphanumeric display ---- */
@ -116,7 +118,9 @@
/* embed mode: just the device */ /* embed mode: just the device */
[data-embed] .hint { display:none !important; } [data-embed] .hint { display:none !important; }
/* stack the bar's end caps under the face on very narrow screens */ /* stack the bar's end caps under the face on very narrow screens */
@media (max-width:430px){ .device{ flex-wrap:wrap } .endcap{ width:50%; flex-direction:row; gap:18px; justify-content:center } .face{ flex-basis:100%; order:-1 } } @media (max-width:460px){ .device{ flex-wrap:wrap; gap:10px }
.endcap{ width:calc(50% - 5px); align-self:auto; margin:0; flex-direction:row; gap:18px; justify-content:center }
.face{ flex-basis:100%; order:-1 } }
</style> </style>
</head> </head>
<body> <body>
@ -150,8 +154,7 @@
<div class="brandrow"> <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µ Micro</span></div>
<div class="meta"> <div class="meta">
<div class="batt" title="2×AA, or run from USBC"><span class="cell"></span>2×AA</div> <div class="pwr" title="Powered over USBC — wall adapter or power bank"><span class="dot"></span>USBC&nbsp;PWR</div>
<div class="pwr"><span class="dot"></span>PWR</div>
</div> </div>
</div> </div>

View file

@ -29,9 +29,9 @@
(footswitch), a 1/4" instrument pass-through (footswitch), a 1/4" instrument pass-through
with the click mixed in the ANALOG domain (DAC → summing op-amp → balanced with the click mixed in the ANALOG domain (DAC → summing op-amp → balanced
line driver), a shared 1/4" balanced-TRS main out, plus an analog monitor line driver), a shared 1/4" balanced-TRS main out, plus an analog monitor
amp + speaker. Powered from a standard 9 V DC pedal jack (2.1 mm centre- amp + speaker. Powered over USB-C (a wall adapter or a power bank; also
negative, pedalboard-friendly) or USB-C (also carries config), in a carries config), in a bead-blasted matte-black anodised aluminium
bead-blasted matte-black anodised aluminium enclosure (no glare on stage). enclosure (no glare on stage).
Beside the device: a top-edge view and a bill of materials. The front and top Beside the device: a top-edge view and a bill of materials. The front and top
views carry inch dimensions (≈ 4.7 × 5.5 × 1.8 in / 120 × 140 × 45 mm). views carry inch dimensions (≈ 4.7 × 5.5 × 1.8 in / 120 × 140 × 45 mm).
Compare with the initial /player.html. One file, no deps; shares src/engine.js. Compare with the initial /player.html. One file, no deps; shares src/engine.js.
@ -228,11 +228,10 @@
<div class="tv-jack" title="External trigger in — footswitch to start/stop or tap tempo"><i></i><b>Trig In</b></div> <div class="tv-jack" title="External trigger in — footswitch to start/stop or tap tempo"><i></i><b>Trig In</b></div>
<div class="tv-jack" title="Instrument in — 1/4&quot; pass-through; the click is mixed into your signal"><i></i><b>Inst In</b></div> <div class="tv-jack" title="Instrument in — 1/4&quot; pass-through; the click is mixed into your signal"><i></i><b>Inst In</b></div>
<div class="tv-jack" title="Main out — 1/4&quot; balanced TRS (instrument + click); the shared output plug"><i></i><b>Out TRS</b></div> <div class="tv-jack" title="Main out — 1/4&quot; balanced TRS (instrument + click); the shared output plug"><i></i><b>Out TRS</b></div>
<div class="tv-jack dc" title="9 V DC in — standard 2.1 mm centre-negative pedal power"><i></i><b>9V DC</b></div> <div class="tv-jack usb" title="USB-C — power (wall adapter or power bank) &amp; set-list transfer"><i></i><b>USB-C</b></div>
<div class="tv-jack usb" title="USB-C — power &amp; set-list transfer"><i></i><b>USB-C</b></div>
</div> </div>
</div> </div>
<div class="ledbar-cap">Trig in · 1/4″ inst passthrough (click injected) · shared 1/4″ balancedTRS out · 9 V DC / USBC power</div> <div class="ledbar-cap">Trig in · 1/4″ inst passthrough (click injected) · shared 1/4″ balancedTRS out · USBC power</div>
</div> </div>
<!-- ===================== THE DEVICE (front view) ===================== --> <!-- ===================== THE DEVICE (front view) ===================== -->