From 1136905d021987e86a66664b6b1551dce4644463 Mon Sep 17 00:00:00 2001 From: banst Date: Mon, 26 Jan 2026 13:11:12 +0100 Subject: [PATCH 01/17] docs: polish documentation for GitHub Pages deployment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Update all internal links to include /PolyBoard base path - Add LaunchpadGrid component to landing page - Change active page indicator to orange (matches real device) - Use bars icon for quantize button (better semantic fit) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- docs/astro.config.mjs | 4 ++-- docs/src/components/LaunchpadGrid.astro | 6 +++--- docs/src/content/docs/development/architecture.mdx | 6 +++--- docs/src/content/docs/development/contributing.mdx | 6 +++--- docs/src/content/docs/development/modules.mdx | 4 ++-- docs/src/content/docs/development/sdk-constraints.mdx | 4 ++-- docs/src/content/docs/getting-started.mdx | 10 +++++----- docs/src/content/docs/index.mdx | 11 +++++++---- docs/src/content/docs/installation/download.mdx | 2 +- 9 files changed, 28 insertions(+), 25 deletions(-) diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs index c44df7f..d9ef102 100644 --- a/docs/astro.config.mjs +++ b/docs/astro.config.mjs @@ -23,7 +23,7 @@ export default defineConfig({ sidebar: [ { label: 'Getting Started', - link: '/getting-started', + link: '/PolyBoard/getting-started', badge: { text: 'Start Here', variant: 'tip' } }, { @@ -46,7 +46,7 @@ export default defineConfig({ }, { label: 'Releases', - link: '/releases', + link: '/PolyBoard/releases', } ], })], diff --git a/docs/src/components/LaunchpadGrid.astro b/docs/src/components/LaunchpadGrid.astro index 599b9cb..2e032cb 100644 --- a/docs/src/components/LaunchpadGrid.astro +++ b/docs/src/components/LaunchpadGrid.astro @@ -14,7 +14,7 @@ const COLOR_CHROMATIC = '#3c3c3c'; const COLOR_BLACK = '#1a1a1a'; const COLOR_SELECTED = '#ff00ff'; const COLOR_OPTION = '#003c3c'; -const COLOR_PAGE_ACTIVE = '#ffffff'; +const COLOR_PAGE_ACTIVE = '#ff7f00'; // Orange for active page const COLOR_PAGE_INACTIVE = '#3c3c3c'; const COLOR_CTRL_HINT = '#3c3c3c'; const COLOR_WHITE = '#ffffff'; @@ -75,7 +75,7 @@ function isRoot(semitone: number): boolean { } type CellType = 'grid' | 'control' | 'empty'; -type IconName = 'up-caret' | 'down-caret' | 'approve-check-circle' | 'list-format' | 'random' | 'rocket'; +type IconName = 'up-caret' | 'down-caret' | 'approve-check-circle' | 'list-format' | 'bars' | 'rocket'; interface Cell { color: string; @@ -157,7 +157,7 @@ function getGridData(): Cell[][] { // Left column controls grid[1][0] = { color: COLOR_CTRL_HINT, icon: 'approve-check-circle', type: 'control' }; // Circle grid[2][0] = { color: COLOR_CTRL_HINT, icon: 'list-format', type: 'control' }; // Double - grid[4][0] = { color: COLOR_WHITE, icon: 'random', type: 'control' }; // Quantise + grid[4][0] = { color: COLOR_WHITE, icon: 'bars', type: 'control' }; // Quantise grid[8][0] = { color: COLOR_CTRL_HINT, icon: 'rocket', type: 'control' }; // Shift // Right column - velocity curve indicator diff --git a/docs/src/content/docs/development/architecture.mdx b/docs/src/content/docs/development/architecture.mdx index 5b74801..59369fc 100644 --- a/docs/src/content/docs/development/architecture.mdx +++ b/docs/src/content/docs/development/architecture.mdx @@ -218,6 +218,6 @@ RAM (20KB) ## See Also -- [SDK Constraints](/development/sdk-constraints) - Hardware limitations -- [Modules Reference](/development/modules) - Detailed module documentation -- [Contributing Guide](/development/contributing) - Build and test instructions +- [SDK Constraints](/PolyBoard/development/sdk-constraints) - Hardware limitations +- [Modules Reference](/PolyBoard/development/modules) - Detailed module documentation +- [Contributing Guide](/PolyBoard/development/contributing) - Build and test instructions diff --git a/docs/src/content/docs/development/contributing.mdx b/docs/src/content/docs/development/contributing.mdx index 3de4443..2e7d8a0 100644 --- a/docs/src/content/docs/development/contributing.mdx +++ b/docs/src/content/docs/development/contributing.mdx @@ -408,6 +408,6 @@ Use [Conventional Commits](https://www.conventionalcommits.org/): ## See Also -- [Architecture Overview](/development/architecture) - System design -- [SDK Constraints](/development/sdk-constraints) - Hardware limitations -- [Modules Reference](/development/modules) - Code documentation +- [Architecture Overview](/PolyBoard/development/architecture) - System design +- [SDK Constraints](/PolyBoard/development/sdk-constraints) - Hardware limitations +- [Modules Reference](/PolyBoard/development/modules) - Code documentation diff --git a/docs/src/content/docs/development/modules.mdx b/docs/src/content/docs/development/modules.mdx index 29f6a31..dc598f8 100644 --- a/docs/src/content/docs/development/modules.mdx +++ b/docs/src/content/docs/development/modules.mdx @@ -477,5 +477,5 @@ flash.c ## See Also -- [Architecture Overview](/development/architecture) - High-level design -- [Contributing Guide](/development/contributing) - Adding features +- [Architecture Overview](/PolyBoard/development/architecture) - High-level design +- [Contributing Guide](/PolyBoard/development/contributing) - Adding features diff --git a/docs/src/content/docs/development/sdk-constraints.mdx b/docs/src/content/docs/development/sdk-constraints.mdx index 7df3077..e25fb26 100644 --- a/docs/src/content/docs/development/sdk-constraints.mdx +++ b/docs/src/content/docs/development/sdk-constraints.mdx @@ -269,5 +269,5 @@ void debug_value(u8 value) { ## See Also -- [Architecture Overview](/development/architecture) - System design -- [Modules Reference](/development/modules) - Implementation details +- [Architecture Overview](/PolyBoard/development/architecture) - System design +- [Modules Reference](/PolyBoard/development/modules) - Implementation details diff --git a/docs/src/content/docs/getting-started.mdx b/docs/src/content/docs/getting-started.mdx index fc382f9..745ae9e 100644 --- a/docs/src/content/docs/getting-started.mdx +++ b/docs/src/content/docs/getting-started.mdx @@ -13,7 +13,7 @@ Welcome to PolyBoard! This guide will get you playing in minutes. - **Novation Launchpad Pro** (original model, not MK3) - **USB Cable** for firmware upload -- **SysEx Tool** - see [Installation](/installation/upload/) for options +- **SysEx Tool** - see [Installation](/PolyBoard/installation/upload/) for options ## Install the Firmware @@ -29,7 +29,7 @@ Welcome to PolyBoard! This guide will get you playing in minutes. -See [Installation](/installation/download/) for detailed instructions. +See [Installation](/PolyBoard/installation/download/) for detailed instructions. ## The Layout @@ -56,6 +56,6 @@ See [Installation](/installation/download/) for detailed instructions. ## Next Steps -- [Playing with Pages](/usage/pages/) - Use 4 configs during performance -- [Scales & Root Selection](/usage/scales/) - Circle of fifths and scale types -- [All Controls](/usage/controls/) - Complete control reference +- [Playing with Pages](/PolyBoard/usage/pages/) - Use 4 configs during performance +- [Scales & Root Selection](/PolyBoard/usage/scales/) - Circle of fifths and scale types +- [All Controls](/PolyBoard/usage/controls/) - Complete control reference diff --git a/docs/src/content/docs/index.mdx b/docs/src/content/docs/index.mdx index 551c060..545b0fd 100644 --- a/docs/src/content/docs/index.mdx +++ b/docs/src/content/docs/index.mdx @@ -7,14 +7,17 @@ hero: tagline: Transform your Launchpad Pro into a standalone, scale-aware MIDI instrument actions: - text: Getting Started - link: /getting-started/ + link: /PolyBoard/getting-started/ variant: primary - text: Installation - link: /installation/download/ + link: /PolyBoard/installation/download/ variant: secondary --- import { Card, CardGrid } from '@astrojs/starlight/components'; +import LaunchpadGrid from '../../components/LaunchpadGrid.astro'; + + ## Features @@ -49,8 +52,8 @@ PolyBoard is open-source custom firmware for the **Novation Launchpad Pro** (ori ## Quick Start -1. [Download](/installation/download/) the latest firmware -2. [Upload](/installation/upload/) it to your Launchpad Pro +1. [Download](/PolyBoard/installation/download/) the latest firmware +2. [Upload](/PolyBoard/installation/upload/) it to your Launchpad Pro 3. Start playing! ## Repository diff --git a/docs/src/content/docs/installation/download.mdx b/docs/src/content/docs/installation/download.mdx index d9fc38b..5c99097 100644 --- a/docs/src/content/docs/installation/download.mdx +++ b/docs/src/content/docs/installation/download.mdx @@ -41,4 +41,4 @@ The compiled `polyboard.syx` will be in the `build/` directory. ## Next Step -Once you have the firmware file, proceed to [Upload](/installation/upload/) to install it on your device. +Once you have the firmware file, proceed to [Upload](/PolyBoard/installation/upload/) to install it on your device. From e07803287f88b64e632e47f2061a47a558bae531 Mon Sep 17 00:00:00 2001 From: banst Date: Mon, 26 Jan 2026 13:14:36 +0100 Subject: [PATCH 02/17] fix(docs): improve LaunchpadGrid control buttons display MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Use dark icon color for quantize button (visible on white background) - Light all bottom row control buttons with dim hint 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- docs/src/components/LaunchpadGrid.astro | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/docs/src/components/LaunchpadGrid.astro b/docs/src/components/LaunchpadGrid.astro index 2e032cb..e267ac2 100644 --- a/docs/src/components/LaunchpadGrid.astro +++ b/docs/src/components/LaunchpadGrid.astro @@ -82,6 +82,7 @@ interface Cell { label?: string; icon?: IconName; type: CellType; + darkIcon?: boolean; // Use dark icon color for bright backgrounds } function getGridData(): Cell[][] { @@ -157,15 +158,16 @@ function getGridData(): Cell[][] { // Left column controls grid[1][0] = { color: COLOR_CTRL_HINT, icon: 'approve-check-circle', type: 'control' }; // Circle grid[2][0] = { color: COLOR_CTRL_HINT, icon: 'list-format', type: 'control' }; // Double - grid[4][0] = { color: COLOR_WHITE, icon: 'bars', type: 'control' }; // Quantise + grid[4][0] = { color: COLOR_WHITE, icon: 'bars', type: 'control', darkIcon: true }; // Quantise grid[8][0] = { color: COLOR_CTRL_HINT, icon: 'rocket', type: 'control' }; // Shift // Right column - velocity curve indicator grid[2][9] = { color: COLOR_CTRL_HINT, type: 'control' }; // Scene 2 (Linear active) - // Bottom row - transpose indicator (neutral) - grid[0][4] = { color: COLOR_CTRL_HINT, type: 'control' }; - grid[0][5] = { color: COLOR_CTRL_HINT, type: 'control' }; + // Bottom row controls - all lit with dim hint + for (let col = 1; col <= 8; col++) { + grid[0][col] = { color: COLOR_CTRL_HINT, type: 'control' }; + } } return grid; @@ -187,7 +189,7 @@ const gridData = getGridData();
{row.map((cell) => (
{cell.icon && } @@ -245,6 +247,14 @@ const gridData = getGridData(); border-radius: 50%; } + .pad.dark-icon { + color: #1a1a1a; + } + + .pad.dark-icon :global(svg) { + color: #1a1a1a; + } + .pad :global(svg) { margin: 0; padding: 0; From bd58391634b615beeada81c1dcffa53569ecea9a Mon Sep 17 00:00:00 2001 From: banst Date: Mon, 26 Jan 2026 13:16:27 +0100 Subject: [PATCH 03/17] fix(docs): improve LaunchpadGrid corner buttons MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove control buttons from corners (keep space for alignment) - Add small dark circle in top-left for setup button representation - Handle responsive sizing for setup button on mobile 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- docs/src/components/LaunchpadGrid.astro | 54 +++++++++++++++++++++---- 1 file changed, 46 insertions(+), 8 deletions(-) diff --git a/docs/src/components/LaunchpadGrid.astro b/docs/src/components/LaunchpadGrid.astro index e267ac2..e55c7af 100644 --- a/docs/src/components/LaunchpadGrid.astro +++ b/docs/src/components/LaunchpadGrid.astro @@ -74,7 +74,7 @@ function isRoot(semitone: number): boolean { return (semitone % 12) === 0; } -type CellType = 'grid' | 'control' | 'empty'; +type CellType = 'grid' | 'control' | 'empty' | 'setup'; type IconName = 'up-caret' | 'down-caret' | 'approve-check-circle' | 'list-format' | 'bars' | 'rocket'; interface Cell { @@ -97,12 +97,21 @@ function getGridData(): Cell[][] { const isBottomRow = row === 0; const isLeftCol = col === 0; const isRightCol = col === 9; - const isControl = isTopRow || isBottomRow || isLeftCol || isRightCol; - - grid[row][col] = { - color: COLOR_BLACK, - type: isControl ? 'control' : 'grid' - }; + const isCorner = (isTopRow || isBottomRow) && (isLeftCol || isRightCol); + const isControl = (isTopRow || isBottomRow || isLeftCol || isRightCol) && !isCorner; + + // Top-left corner is the setup button (small dark circle) + if (row === 9 && col === 0) { + grid[row][col] = { color: COLOR_BLACK, type: 'setup' }; + } else if (isCorner) { + // Other corners are empty space + grid[row][col] = { color: 'transparent', type: 'empty' }; + } else { + grid[row][col] = { + color: COLOR_BLACK, + type: isControl ? 'control' : 'grid' + }; + } } } @@ -189,7 +198,12 @@ const gridData = getGridData();
{row.map((cell) => (
{cell.icon && } @@ -247,6 +261,21 @@ const gridData = getGridData(); border-radius: 50%; } + .pad.setup { + border-radius: 50%; + width: 20px; + height: 20px; + min-width: 20px; + min-height: 20px; + max-width: 20px; + max-height: 20px; + margin: 8px; + } + + .pad.empty { + background: transparent !important; + } + .pad.dark-icon { color: #1a1a1a; } @@ -278,6 +307,15 @@ const gridData = getGridData(); max-width: 28px; max-height: 28px; } + .pad.setup { + width: 16px; + height: 16px; + min-width: 16px; + min-height: 16px; + max-width: 16px; + max-height: 16px; + margin: 6px; + } .label { font-size: 8px; } From 3c847706f1e0cde32de816d435c379a13e034229 Mon Sep 17 00:00:00 2001 From: banst Date: Mon, 26 Jan 2026 13:19:31 +0100 Subject: [PATCH 04/17] fix(docs): update LaunchpadGrid control buttons MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Change quantise button to dim hint color (consistent with other controls) - Add left/right arrow buttons for scale transposition 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- docs/src/components/LaunchpadGrid.astro | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/src/components/LaunchpadGrid.astro b/docs/src/components/LaunchpadGrid.astro index e55c7af..12d3819 100644 --- a/docs/src/components/LaunchpadGrid.astro +++ b/docs/src/components/LaunchpadGrid.astro @@ -75,7 +75,7 @@ function isRoot(semitone: number): boolean { } type CellType = 'grid' | 'control' | 'empty' | 'setup'; -type IconName = 'up-caret' | 'down-caret' | 'approve-check-circle' | 'list-format' | 'bars' | 'rocket'; +type IconName = 'up-caret' | 'down-caret' | 'left-caret' | 'right-caret' | 'approve-check-circle' | 'list-format' | 'bars' | 'rocket'; interface Cell { color: string; @@ -159,6 +159,8 @@ function getGridData(): Cell[][] { // Top row controls grid[9][1] = { color: COLOR_CTRL_HINT, icon: 'down-caret', type: 'control' }; // Oct down grid[9][2] = { color: COLOR_CTRL_HINT, icon: 'up-caret', type: 'control' }; // Oct up + grid[9][3] = { color: COLOR_CTRL_HINT, icon: 'left-caret', type: 'control' }; // Transpose down + grid[9][4] = { color: COLOR_CTRL_HINT, icon: 'right-caret', type: 'control' }; // Transpose up grid[9][5] = { color: COLOR_PAGE_ACTIVE, label: '1', type: 'control' }; // Page 1 grid[9][6] = { color: COLOR_PAGE_INACTIVE, label: '2', type: 'control' }; // Page 2 grid[9][7] = { color: COLOR_PAGE_INACTIVE, label: '3', type: 'control' }; // Page 3 @@ -167,7 +169,7 @@ function getGridData(): Cell[][] { // Left column controls grid[1][0] = { color: COLOR_CTRL_HINT, icon: 'approve-check-circle', type: 'control' }; // Circle grid[2][0] = { color: COLOR_CTRL_HINT, icon: 'list-format', type: 'control' }; // Double - grid[4][0] = { color: COLOR_WHITE, icon: 'bars', type: 'control', darkIcon: true }; // Quantise + grid[4][0] = { color: COLOR_CTRL_HINT, icon: 'bars', type: 'control' }; // Quantise grid[8][0] = { color: COLOR_CTRL_HINT, icon: 'rocket', type: 'control' }; // Shift // Right column - velocity curve indicator From bc6c88b4e80edf9723e42e2903d81fa2e361c6a8 Mon Sep 17 00:00:00 2001 From: banst Date: Mon, 26 Jan 2026 13:39:57 +0100 Subject: [PATCH 05/17] fix(docs): remove duplicate base path from internal links MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Astro automatically prepends the base path to internal links, so links should not include /PolyBoard prefix. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- docs/astro.config.mjs | 4 ++-- docs/src/content/docs/development/architecture.mdx | 6 +++--- docs/src/content/docs/development/contributing.mdx | 6 +++--- docs/src/content/docs/development/modules.mdx | 4 ++-- docs/src/content/docs/development/sdk-constraints.mdx | 4 ++-- docs/src/content/docs/getting-started.mdx | 10 +++++----- docs/src/content/docs/index.mdx | 8 ++++---- docs/src/content/docs/installation/download.mdx | 2 +- 8 files changed, 22 insertions(+), 22 deletions(-) diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs index d9ef102..c44df7f 100644 --- a/docs/astro.config.mjs +++ b/docs/astro.config.mjs @@ -23,7 +23,7 @@ export default defineConfig({ sidebar: [ { label: 'Getting Started', - link: '/PolyBoard/getting-started', + link: '/getting-started', badge: { text: 'Start Here', variant: 'tip' } }, { @@ -46,7 +46,7 @@ export default defineConfig({ }, { label: 'Releases', - link: '/PolyBoard/releases', + link: '/releases', } ], })], diff --git a/docs/src/content/docs/development/architecture.mdx b/docs/src/content/docs/development/architecture.mdx index 59369fc..5b74801 100644 --- a/docs/src/content/docs/development/architecture.mdx +++ b/docs/src/content/docs/development/architecture.mdx @@ -218,6 +218,6 @@ RAM (20KB) ## See Also -- [SDK Constraints](/PolyBoard/development/sdk-constraints) - Hardware limitations -- [Modules Reference](/PolyBoard/development/modules) - Detailed module documentation -- [Contributing Guide](/PolyBoard/development/contributing) - Build and test instructions +- [SDK Constraints](/development/sdk-constraints) - Hardware limitations +- [Modules Reference](/development/modules) - Detailed module documentation +- [Contributing Guide](/development/contributing) - Build and test instructions diff --git a/docs/src/content/docs/development/contributing.mdx b/docs/src/content/docs/development/contributing.mdx index 2e7d8a0..3de4443 100644 --- a/docs/src/content/docs/development/contributing.mdx +++ b/docs/src/content/docs/development/contributing.mdx @@ -408,6 +408,6 @@ Use [Conventional Commits](https://www.conventionalcommits.org/): ## See Also -- [Architecture Overview](/PolyBoard/development/architecture) - System design -- [SDK Constraints](/PolyBoard/development/sdk-constraints) - Hardware limitations -- [Modules Reference](/PolyBoard/development/modules) - Code documentation +- [Architecture Overview](/development/architecture) - System design +- [SDK Constraints](/development/sdk-constraints) - Hardware limitations +- [Modules Reference](/development/modules) - Code documentation diff --git a/docs/src/content/docs/development/modules.mdx b/docs/src/content/docs/development/modules.mdx index dc598f8..29f6a31 100644 --- a/docs/src/content/docs/development/modules.mdx +++ b/docs/src/content/docs/development/modules.mdx @@ -477,5 +477,5 @@ flash.c ## See Also -- [Architecture Overview](/PolyBoard/development/architecture) - High-level design -- [Contributing Guide](/PolyBoard/development/contributing) - Adding features +- [Architecture Overview](/development/architecture) - High-level design +- [Contributing Guide](/development/contributing) - Adding features diff --git a/docs/src/content/docs/development/sdk-constraints.mdx b/docs/src/content/docs/development/sdk-constraints.mdx index e25fb26..7df3077 100644 --- a/docs/src/content/docs/development/sdk-constraints.mdx +++ b/docs/src/content/docs/development/sdk-constraints.mdx @@ -269,5 +269,5 @@ void debug_value(u8 value) { ## See Also -- [Architecture Overview](/PolyBoard/development/architecture) - System design -- [Modules Reference](/PolyBoard/development/modules) - Implementation details +- [Architecture Overview](/development/architecture) - System design +- [Modules Reference](/development/modules) - Implementation details diff --git a/docs/src/content/docs/getting-started.mdx b/docs/src/content/docs/getting-started.mdx index 745ae9e..fc382f9 100644 --- a/docs/src/content/docs/getting-started.mdx +++ b/docs/src/content/docs/getting-started.mdx @@ -13,7 +13,7 @@ Welcome to PolyBoard! This guide will get you playing in minutes. - **Novation Launchpad Pro** (original model, not MK3) - **USB Cable** for firmware upload -- **SysEx Tool** - see [Installation](/PolyBoard/installation/upload/) for options +- **SysEx Tool** - see [Installation](/installation/upload/) for options ## Install the Firmware @@ -29,7 +29,7 @@ Welcome to PolyBoard! This guide will get you playing in minutes. -See [Installation](/PolyBoard/installation/download/) for detailed instructions. +See [Installation](/installation/download/) for detailed instructions. ## The Layout @@ -56,6 +56,6 @@ See [Installation](/PolyBoard/installation/download/) for detailed instructions. ## Next Steps -- [Playing with Pages](/PolyBoard/usage/pages/) - Use 4 configs during performance -- [Scales & Root Selection](/PolyBoard/usage/scales/) - Circle of fifths and scale types -- [All Controls](/PolyBoard/usage/controls/) - Complete control reference +- [Playing with Pages](/usage/pages/) - Use 4 configs during performance +- [Scales & Root Selection](/usage/scales/) - Circle of fifths and scale types +- [All Controls](/usage/controls/) - Complete control reference diff --git a/docs/src/content/docs/index.mdx b/docs/src/content/docs/index.mdx index 545b0fd..2738d75 100644 --- a/docs/src/content/docs/index.mdx +++ b/docs/src/content/docs/index.mdx @@ -7,10 +7,10 @@ hero: tagline: Transform your Launchpad Pro into a standalone, scale-aware MIDI instrument actions: - text: Getting Started - link: /PolyBoard/getting-started/ + link: /getting-started/ variant: primary - text: Installation - link: /PolyBoard/installation/download/ + link: /installation/download/ variant: secondary --- @@ -52,8 +52,8 @@ PolyBoard is open-source custom firmware for the **Novation Launchpad Pro** (ori ## Quick Start -1. [Download](/PolyBoard/installation/download/) the latest firmware -2. [Upload](/PolyBoard/installation/upload/) it to your Launchpad Pro +1. [Download](/installation/download/) the latest firmware +2. [Upload](/installation/upload/) it to your Launchpad Pro 3. Start playing! ## Repository diff --git a/docs/src/content/docs/installation/download.mdx b/docs/src/content/docs/installation/download.mdx index 5c99097..d9fc38b 100644 --- a/docs/src/content/docs/installation/download.mdx +++ b/docs/src/content/docs/installation/download.mdx @@ -41,4 +41,4 @@ The compiled `polyboard.syx` will be in the `build/` directory. ## Next Step -Once you have the firmware file, proceed to [Upload](/PolyBoard/installation/upload/) to install it on your device. +Once you have the firmware file, proceed to [Upload](/installation/upload/) to install it on your device. From 301c22a86755c63a0ca8494ba4f0a82d033f5a81 Mon Sep 17 00:00:00 2001 From: banst Date: Mon, 26 Jan 2026 13:42:47 +0100 Subject: [PATCH 06/17] feat(docs): add bi-color logo (Poly cyan, Board magenta) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add custom SiteTitle component with colored spans - Use HTML spans in hero title for bi-color effect - Add CSS for .poly (cyan) and .board (magenta) colors 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- docs/astro.config.mjs | 3 +++ docs/src/components/SiteTitle.astro | 28 ++++++++++++++++++++++++++++ docs/src/content/docs/index.mdx | 2 +- docs/src/styles/custom.css | 9 +++++++++ 4 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 docs/src/components/SiteTitle.astro diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs index c44df7f..3af3b12 100644 --- a/docs/astro.config.mjs +++ b/docs/astro.config.mjs @@ -17,6 +17,9 @@ export default defineConfig({ title: 'PolyBoard', description: 'Custom firmware for Launchpad Pro', customCss: ['./src/styles/custom.css'], + components: { + SiteTitle: './src/components/SiteTitle.astro', + }, social: [ { icon: 'github', label: 'GitHub', href: 'https://github.com/b4nst/PolyBoard' }, ], diff --git a/docs/src/components/SiteTitle.astro b/docs/src/components/SiteTitle.astro new file mode 100644 index 0000000..f3ca406 --- /dev/null +++ b/docs/src/components/SiteTitle.astro @@ -0,0 +1,28 @@ +--- +/** + * Custom SiteTitle component with bi-color logo + * Poly (cyan) + Board (magenta) + */ +--- + + + PolyBoard + + + diff --git a/docs/src/content/docs/index.mdx b/docs/src/content/docs/index.mdx index 2738d75..590e21b 100644 --- a/docs/src/content/docs/index.mdx +++ b/docs/src/content/docs/index.mdx @@ -3,7 +3,7 @@ title: PolyBoard description: Custom firmware for Launchpad Pro template: splash hero: - title: PolyBoard + title: PolyBoard tagline: Transform your Launchpad Pro into a standalone, scale-aware MIDI instrument actions: - text: Getting Started diff --git a/docs/src/styles/custom.css b/docs/src/styles/custom.css index 332d8ac..fc227f2 100644 --- a/docs/src/styles/custom.css +++ b/docs/src/styles/custom.css @@ -8,4 +8,13 @@ --sl-color-accent: hsl(300, 100%, 50%); --sl-color-accent-high: hsl(300, 100%, 65%); } + + /* Bi-color logo: Poly(cyan) Board(magenta) */ + .poly { + color: #00ffff; + } + + .board { + color: #ff00ff; + } } From cf0813ef8402ba38577aca7b1f24c754b6634d08 Mon Sep 17 00:00:00 2001 From: banst Date: Mon, 26 Jan 2026 13:48:53 +0100 Subject: [PATCH 07/17] fix(docs): add base path to markdown and frontmatter links MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Astro does not automatically prepend base path to: - Frontmatter hero action links - Markdown content links These need explicit /PolyBoard prefix. Sidebar links (in astro.config.mjs) are handled by Starlight and should NOT include the base. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- docs/src/content/docs/development/architecture.mdx | 6 +++--- docs/src/content/docs/development/contributing.mdx | 6 +++--- docs/src/content/docs/development/modules.mdx | 4 ++-- docs/src/content/docs/development/sdk-constraints.mdx | 4 ++-- docs/src/content/docs/getting-started.mdx | 10 +++++----- docs/src/content/docs/index.mdx | 8 ++++---- docs/src/content/docs/installation/download.mdx | 2 +- 7 files changed, 20 insertions(+), 20 deletions(-) diff --git a/docs/src/content/docs/development/architecture.mdx b/docs/src/content/docs/development/architecture.mdx index 5b74801..59369fc 100644 --- a/docs/src/content/docs/development/architecture.mdx +++ b/docs/src/content/docs/development/architecture.mdx @@ -218,6 +218,6 @@ RAM (20KB) ## See Also -- [SDK Constraints](/development/sdk-constraints) - Hardware limitations -- [Modules Reference](/development/modules) - Detailed module documentation -- [Contributing Guide](/development/contributing) - Build and test instructions +- [SDK Constraints](/PolyBoard/development/sdk-constraints) - Hardware limitations +- [Modules Reference](/PolyBoard/development/modules) - Detailed module documentation +- [Contributing Guide](/PolyBoard/development/contributing) - Build and test instructions diff --git a/docs/src/content/docs/development/contributing.mdx b/docs/src/content/docs/development/contributing.mdx index 3de4443..2e7d8a0 100644 --- a/docs/src/content/docs/development/contributing.mdx +++ b/docs/src/content/docs/development/contributing.mdx @@ -408,6 +408,6 @@ Use [Conventional Commits](https://www.conventionalcommits.org/): ## See Also -- [Architecture Overview](/development/architecture) - System design -- [SDK Constraints](/development/sdk-constraints) - Hardware limitations -- [Modules Reference](/development/modules) - Code documentation +- [Architecture Overview](/PolyBoard/development/architecture) - System design +- [SDK Constraints](/PolyBoard/development/sdk-constraints) - Hardware limitations +- [Modules Reference](/PolyBoard/development/modules) - Code documentation diff --git a/docs/src/content/docs/development/modules.mdx b/docs/src/content/docs/development/modules.mdx index 29f6a31..dc598f8 100644 --- a/docs/src/content/docs/development/modules.mdx +++ b/docs/src/content/docs/development/modules.mdx @@ -477,5 +477,5 @@ flash.c ## See Also -- [Architecture Overview](/development/architecture) - High-level design -- [Contributing Guide](/development/contributing) - Adding features +- [Architecture Overview](/PolyBoard/development/architecture) - High-level design +- [Contributing Guide](/PolyBoard/development/contributing) - Adding features diff --git a/docs/src/content/docs/development/sdk-constraints.mdx b/docs/src/content/docs/development/sdk-constraints.mdx index 7df3077..e25fb26 100644 --- a/docs/src/content/docs/development/sdk-constraints.mdx +++ b/docs/src/content/docs/development/sdk-constraints.mdx @@ -269,5 +269,5 @@ void debug_value(u8 value) { ## See Also -- [Architecture Overview](/development/architecture) - System design -- [Modules Reference](/development/modules) - Implementation details +- [Architecture Overview](/PolyBoard/development/architecture) - System design +- [Modules Reference](/PolyBoard/development/modules) - Implementation details diff --git a/docs/src/content/docs/getting-started.mdx b/docs/src/content/docs/getting-started.mdx index fc382f9..745ae9e 100644 --- a/docs/src/content/docs/getting-started.mdx +++ b/docs/src/content/docs/getting-started.mdx @@ -13,7 +13,7 @@ Welcome to PolyBoard! This guide will get you playing in minutes. - **Novation Launchpad Pro** (original model, not MK3) - **USB Cable** for firmware upload -- **SysEx Tool** - see [Installation](/installation/upload/) for options +- **SysEx Tool** - see [Installation](/PolyBoard/installation/upload/) for options ## Install the Firmware @@ -29,7 +29,7 @@ Welcome to PolyBoard! This guide will get you playing in minutes. -See [Installation](/installation/download/) for detailed instructions. +See [Installation](/PolyBoard/installation/download/) for detailed instructions. ## The Layout @@ -56,6 +56,6 @@ See [Installation](/installation/download/) for detailed instructions. ## Next Steps -- [Playing with Pages](/usage/pages/) - Use 4 configs during performance -- [Scales & Root Selection](/usage/scales/) - Circle of fifths and scale types -- [All Controls](/usage/controls/) - Complete control reference +- [Playing with Pages](/PolyBoard/usage/pages/) - Use 4 configs during performance +- [Scales & Root Selection](/PolyBoard/usage/scales/) - Circle of fifths and scale types +- [All Controls](/PolyBoard/usage/controls/) - Complete control reference diff --git a/docs/src/content/docs/index.mdx b/docs/src/content/docs/index.mdx index 590e21b..9914357 100644 --- a/docs/src/content/docs/index.mdx +++ b/docs/src/content/docs/index.mdx @@ -7,10 +7,10 @@ hero: tagline: Transform your Launchpad Pro into a standalone, scale-aware MIDI instrument actions: - text: Getting Started - link: /getting-started/ + link: /PolyBoard/getting-started/ variant: primary - text: Installation - link: /installation/download/ + link: /PolyBoard/installation/download/ variant: secondary --- @@ -52,8 +52,8 @@ PolyBoard is open-source custom firmware for the **Novation Launchpad Pro** (ori ## Quick Start -1. [Download](/installation/download/) the latest firmware -2. [Upload](/installation/upload/) it to your Launchpad Pro +1. [Download](/PolyBoard/installation/download/) the latest firmware +2. [Upload](/PolyBoard/installation/upload/) it to your Launchpad Pro 3. Start playing! ## Repository diff --git a/docs/src/content/docs/installation/download.mdx b/docs/src/content/docs/installation/download.mdx index d9fc38b..5c99097 100644 --- a/docs/src/content/docs/installation/download.mdx +++ b/docs/src/content/docs/installation/download.mdx @@ -41,4 +41,4 @@ The compiled `polyboard.syx` will be in the `build/` directory. ## Next Step -Once you have the firmware file, proceed to [Upload](/installation/upload/) to install it on your device. +Once you have the firmware file, proceed to [Upload](/PolyBoard/installation/upload/) to install it on your device. From d9cff327a1e45be1e6c8a4d838baef3f5e9672d0 Mon Sep 17 00:00:00 2001 From: banst Date: Mon, 26 Jan 2026 14:30:22 +0100 Subject: [PATCH 08/17] fix(docs): update Getting Started page controls documentation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove redundant bullet points under The Layout section - Fix Btn component: page-1 now orange, quantise uses bars icon - Add transpose-up/transpose-down buttons with left/right caret icons - Update Quick Controls table with correct icons and add transpose row - Reorder octave buttons to match visual layout (down, up) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- docs/src/components/Btn.astro | 14 ++++++++++---- docs/src/content/docs/getting-started.mdx | 13 ++++--------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/docs/src/components/Btn.astro b/docs/src/components/Btn.astro index 5fdaadb..78cb7c7 100644 --- a/docs/src/components/Btn.astro +++ b/docs/src/components/Btn.astro @@ -12,19 +12,23 @@ const { name, showLabel = true } = Astro.props; const buttonIcons: Record = { 'oct-up': 'up-caret', 'oct-down': 'down-caret', + 'transpose-up': 'right-caret', + 'transpose-down': 'left-caret', 'page-1': '', 'page-2': '', 'page-3': '', 'page-4': '', 'circle': 'approve-check-circle', 'double': 'list-format', - 'quantise': 'random', + 'quantise': 'bars', 'shift': 'rocket', }; const buttonLabels: Record = { 'oct-up': '', 'oct-down': '', + 'transpose-up': '', + 'transpose-down': '', 'page-1': '1', 'page-2': '2', 'page-3': '3', @@ -38,17 +42,19 @@ const buttonLabels: Record = { const buttonColors: Record = { 'oct-up': '#3c3c3c', 'oct-down': '#3c3c3c', - 'page-1': '#ffffff', + 'transpose-up': '#3c3c3c', + 'transpose-down': '#3c3c3c', + 'page-1': '#ff7f00', 'page-2': '#3c3c3c', 'page-3': '#3c3c3c', 'page-4': '#3c3c3c', 'circle': '#3c3c3c', 'double': '#3c3c3c', - 'quantise': '#ffffff', + 'quantise': '#3c3c3c', 'shift': '#3c3c3c', }; -const isRound = ['oct-up', 'oct-down', 'circle', 'double', 'quantise', 'shift'].includes(name); +const isRound = ['oct-up', 'oct-down', 'transpose-up', 'transpose-down', 'circle', 'double', 'quantise', 'shift'].includes(name); const icon = buttonIcons[name]; const label = buttonLabels[name]; const bgColor = buttonColors[name] || '#3c3c3c'; diff --git a/docs/src/content/docs/getting-started.mdx b/docs/src/content/docs/getting-started.mdx index 745ae9e..cddf165 100644 --- a/docs/src/content/docs/getting-started.mdx +++ b/docs/src/content/docs/getting-started.mdx @@ -35,24 +35,19 @@ See [Installation](/PolyBoard/installation/download/) for detailed instructions. -- **8×8 Grid** - Your isomorphic keyboard -- - Page select (or Shift + page for interval) -- - Octave up/down -- - Hold to select root note -- - Hold to select scale type - ## Quick Controls | Action | How | |--------|-----| | **Play notes** | Press the 8×8 grid | -| **Change octave** | Press or | +| **Change octave** | Press or | +| **Transpose scale** | Press or | | **Switch page** | Tap or | -| **Change interval** | Hold + tap page button | +| **Change interval** | Hold + tap or | | **Change root** | Hold , tap a note on the circle | | **Change scale** | Hold , tap a scale | | **Copy page** | Hold source page, tap target page | -| **Scale lock** | Tap to toggle (can't play wrong notes) | +| **Scale lock** | Tap to toggle | ## Next Steps From 6c1d5b8af0642563bf356b387511487983191234 Mon Sep 17 00:00:00 2001 From: banst Date: Mon, 26 Jan 2026 18:39:19 +0100 Subject: [PATCH 09/17] fix(docs): fix Btn component icon display and page button shape MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Icons now always display (not tied to showLabel prop) - Page buttons now render as circles (added to isRound list) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- docs/src/components/Btn.astro | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/src/components/Btn.astro b/docs/src/components/Btn.astro index 78cb7c7..313b2ce 100644 --- a/docs/src/components/Btn.astro +++ b/docs/src/components/Btn.astro @@ -54,14 +54,14 @@ const buttonColors: Record = { 'shift': '#3c3c3c', }; -const isRound = ['oct-up', 'oct-down', 'transpose-up', 'transpose-down', 'circle', 'double', 'quantise', 'shift'].includes(name); +const isRound = ['oct-up', 'oct-down', 'transpose-up', 'transpose-down', 'page-1', 'page-2', 'page-3', 'page-4', 'circle', 'double', 'quantise', 'shift'].includes(name); const icon = buttonIcons[name]; const label = buttonLabels[name]; const bgColor = buttonColors[name] || '#3c3c3c'; --- - {icon && showLabel && } + {icon && } {label && showLabel && {label}} From 12de9efdf99932fe490705a1203d30aafef8f3b2 Mon Sep 17 00:00:00 2001 From: banst Date: Mon, 26 Jan 2026 18:41:17 +0100 Subject: [PATCH 10/17] fix(docs): show page button labels even when showLabel=false MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Labels now always show for buttons without icons (like page buttons), regardless of the showLabel prop. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- docs/src/components/Btn.astro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/components/Btn.astro b/docs/src/components/Btn.astro index 313b2ce..32bf699 100644 --- a/docs/src/components/Btn.astro +++ b/docs/src/components/Btn.astro @@ -62,7 +62,7 @@ const bgColor = buttonColors[name] || '#3c3c3c'; {icon && } - {label && showLabel && {label}} + {label && (showLabel || !icon) && {label}}