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:
parent
3fdabcc0bd
commit
362e1fa968
7 changed files with 80 additions and 47 deletions
|
|
@ -25,7 +25,7 @@ State (set lists, the practice log, theme and UI preferences) lives in `localSto
|
||||||
| `/concepts.html` | **PolyMeter Concepts** — the form‑factor gallery (cards → live page + info) |
|
| `/concepts.html` | **PolyMeter Concepts** — the form‑factor gallery (cards → live page + info) |
|
||||||
| `/player.html` | **PM‑1 Initial** — idealized concept device (full display + set‑list nav, theme, fullscreen "stage" view) |
|
| `/player.html` | **PM‑1 Initial** — idealized concept device (full display + set‑list nav, theme, fullscreen "stage" view) |
|
||||||
| `/stage.html` | **PM‑1 Stage** — pedalboard build (colour TFT, arcade buttons, 1/4″ instrument pass‑through with analog click injection) |
|
| `/stage.html` | **PM‑1 Stage** — pedalboard build (colour TFT, arcade buttons, 1/4″ instrument pass‑through with analog click injection) |
|
||||||
| `/micro.html` | **PM‑µ Micro** — minimal home‑practice unit (one push scroll‑encoder + 7‑segment LED) |
|
| `/micro.html` | **PM‑µ Micro** — inline practice bar (instrument in / out pass‑through, clickable thumb‑roller, 14‑segment 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 drop‑in loader |
|
| `/embed.html` · `/embed.js` | embed docs and the drop‑in loader |
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,7 @@
|
||||||
<span class="chip hw">Hardware</span>
|
<span class="chip hw">Hardware</span>
|
||||||
<h3>PM‑1 — Stage</h3>
|
<h3>PM‑1 — Stage</h3>
|
||||||
<p>Pedalboard build: 2.0″ colour TFT, arcade buttons, thumb‑roller, 1/4″ instrument pass‑through with
|
<p>Pedalboard build: 2.0″ colour TFT, arcade buttons, thumb‑roller, 1/4″ instrument pass‑through with
|
||||||
analog click injection + balanced‑TRS out, 9 V DC / USB‑C. Bead‑blasted matte‑black anodised.</p>
|
analog click injection + balanced‑TRS out, USB‑C powered. Bead‑blasted matte‑black anodised.</p>
|
||||||
<div class="links"><a href="/stage.html">Open ↗</a><a href="/info-stage.html">Info & BOM ⓘ</a></div>
|
<div class="links"><a href="/stage.html">Open ↗</a><a href="/info-stage.html">Info & 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 thumb‑roller, amber 14‑segment display, USB‑C or 2×AA.</p>
|
Clickable thumb‑roller, amber 14‑segment display, USB‑C powered.</p>
|
||||||
<div class="links"><a href="/micro.html">Open ↗</a><a href="/info-micro.html">Info & BOM ⓘ</a></div>
|
<div class="links"><a href="/micro.html">Open ↗</a><a href="/info-micro.html">Info & BOM ⓘ</a></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
34
index.html
34
index.html
|
|
@ -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 thumb‑roller, amber 14‑segment display, USB‑C or 2×AA.</p>
|
Clickable thumb‑roller, amber 14‑segment display, USB‑C powered.</p>
|
||||||
<div class="links"><a href="/micro.html">Open ↗</a><a href="/info-micro.html">Info & BOM ⓘ</a></div>
|
<div class="links"><a href="/micro.html">Open ↗</a><a href="/info-micro.html">Info & 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 PM‑1 Initial render →</a></p>
|
<p class="more"><a href="/concepts.html">See all concepts, including the PM‑1 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">PE‑1 editor</a> —
|
||||||
|
stack meters, set per‑step 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 re‑learning a new box each time.</p>
|
||||||
|
</div>
|
||||||
|
<div class="phil">
|
||||||
|
<h3><span class="ic">🔌</span> USB‑C power everywhere — no batteries</h3>
|
||||||
|
<p>Every device in the family is powered over a single <b>USB‑C</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>future‑proofs</b> the
|
||||||
|
project as USB‑C becomes universal.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<div class="site-foot">VARASYS · Simplifying Complexity ·
|
<div class="site-foot">VARASYS · Simplifying Complexity ·
|
||||||
|
|
|
||||||
|
|
@ -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 one‑off</span></div>
|
<div class="tags"><span class="tag hw">Hardware</span><span class="tag">Inline practice bar</span><span class="tag">~$35 one‑off</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 thumb‑roller does everything, an amber
|
headphones out the other, the click mixed in. One clickable thumb‑roller does everything, an amber
|
||||||
14‑segment display shows tempo and track names, and it runs off USB‑C or 2×AA.</p>
|
14‑segment display shows tempo and track names, and it runs over USB‑C — 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, USB‑C and a 1/4″ TRS output on the other, with the metronome click summed into your signal in the
|
one end, USB‑C 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 thumb‑roller does it all
|
<b>analog domain</b> (and a small monitor speaker). No menus — a single clickable thumb‑roller does it all
|
||||||
(roll = tempo, press = start/stop, hold + roll = switch track), and the amber 14‑segment display shows the
|
(roll = tempo, press = start/stop, hold + roll = switch track), and the amber 14‑segment display shows the
|
||||||
BPM or the track name. Powered from USB‑C or 2×AA for portability; ships with the editor's grooves built in.</p>
|
BPM or the track name. Powered over USB‑C — a wall adapter for a permanent practice‑space 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 (USB‑C or 2×AA) with analog click injection.
|
<p class="sub">Rough parts list — a USB‑C‑powered RP2040 inline bar with analog click injection.
|
||||||
Ballpark one‑off prices (USD); cheaper at volume.</p>
|
Ballpark one‑off 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 Class‑D + 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 Class‑D + 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 & power</td></tr>
|
<tr class="grp"><td colspan="3">Connectors & 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">USB‑C 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">USB‑C 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">— bead‑blasted, matte‑black 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">— bead‑blasted, matte‑black anodised</span></td><td class="q">1</td><td class="c">8</td></tr>
|
||||||
<tr class="total"><td>Total (one‑off)</td><td class="q"></td><td class="c">≈ $38</td></tr>
|
<tr class="total"><td>Total (one‑off)</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 high‑impedance
|
<p class="sub" style="margin-top:12px">Like the Stage, the click is summed in the <b>analog domain</b>: a high‑impedance
|
||||||
|
|
|
||||||
|
|
@ -63,11 +63,11 @@
|
||||||
<p>The stage and the rehearsal room. Top‑mounted 1/4″ jacks keep cabling tidy on a board; you plug your
|
<p>The stage and the rehearsal room. Top‑mounted 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 re‑digitising,
|
instrument in, the metronome click is summed into the signal in the <b>analog domain</b> (no re‑digitising,
|
||||||
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 USB‑C. The colour TFT shows tempo, the item name, and all
|
Powered over USB‑C — a wall adapter, or a power bank when there's no outlet on the board. The colour TFT
|
||||||
lane patterns; arcade buttons + a recessed thumb‑roller survive stage abuse.</p>
|
shows tempo, the item name, and all lane patterns; arcade buttons + a recessed thumb‑roller survive stage abuse.</p>
|
||||||
|
|
||||||
<h2>Bill of materials</h2>
|
<h2>Bill of materials</h2>
|
||||||
<p class="sub">Rough parts list — a pedalboard‑friendly RP2040 build (9 V DC or USB‑C) with analog click injection.
|
<p class="sub">Rough parts list — a pedalboard‑friendly RP2040 build (USB‑C powered) with analog click injection.
|
||||||
Ballpark one‑off prices (USD); cheaper at volume.</p>
|
Ballpark one‑off 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 Class‑D + 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 Class‑D + 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 & power</td></tr>
|
<tr class="grp"><td colspan="3">Connectors & 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">USB‑C 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">USB‑C 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 centre‑neg) + 9 V→5 V buck + reverse‑polarity 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">Die‑cast aluminium enclosure (Hammond 1590‑style) <span class="spec">— bead‑blasted, matte‑black Type II anodise, laser‑etched legends</span></td><td class="q">1</td><td class="c">12</td></tr>
|
<tr><td class="part">Die‑cast aluminium enclosure (Hammond 1590‑style) <span class="spec">— bead‑blasted, matte‑black Type II anodise, laser‑etched legends</span></td><td class="q">1</td><td class="c">12</td></tr>
|
||||||
<tr class="total"><td>Total (one‑off)</td><td class="q"></td><td class="c">≈ $59</td></tr>
|
<tr class="total"><td>Total (one‑off)</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 high‑impedance
|
<p class="sub" style="margin-top:12px">Audio is summed in the <b>analog domain</b>: the DAC's click is mixed with a high‑impedance
|
||||||
|
|
|
||||||
51
micro.html
51
micro.html
|
|
@ -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 USB‑C"><span class="cell"></span>2×AA</div>
|
<div class="pwr" title="Powered over USB‑C — wall adapter or power bank"><span class="dot"></span>USB‑C PWR</div>
|
||||||
<div class="pwr"><span class="dot"></span>PWR</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
11
stage.html
11
stage.html
|
|
@ -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" 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" 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" balanced TRS (instrument + click); the shared output plug"><i></i><b>Out TRS</b></div>
|
<div class="tv-jack" title="Main out — 1/4" 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) & set-list transfer"><i></i><b>USB-C</b></div>
|
||||||
<div class="tv-jack usb" title="USB-C — power & set-list transfer"><i></i><b>USB-C</b></div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="ledbar-cap">Trig in · 1/4″ inst pass‑through (click injected) · shared 1/4″ balanced‑TRS out · 9 V DC / USB‑C power</div>
|
<div class="ledbar-cap">Trig in · 1/4″ inst pass‑through (click injected) · shared 1/4″ balanced‑TRS out · USB‑C power</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- ===================== THE DEVICE (front view) ===================== -->
|
<!-- ===================== THE DEVICE (front view) ===================== -->
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue