diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs index c44df7f..e61a33d 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' }, ], @@ -37,16 +40,16 @@ export default defineConfig({ { label: 'Reference', collapsed: true, - autogenerate: { directory: 'reference' } + items: [ + { label: 'Releases', link: '/reference/releases' }, + 'reference/button-layout', + 'reference/faq', + ] }, { label: 'Development', collapsed: true, autogenerate: { directory: 'development' } - }, - { - label: 'Releases', - link: '/releases', } ], })], diff --git a/docs/src/components/Btn.astro b/docs/src/components/Btn.astro index 5fdaadb..54c562b 100644 --- a/docs/src/components/Btn.astro +++ b/docs/src/components/Btn.astro @@ -12,23 +12,35 @@ 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': '', + 'interval-1': '', + 'interval-2': '', + 'interval-3': '', + 'interval-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', 'page-4': '4', + 'interval-1': '1', + 'interval-2': '2', + 'interval-3': '3', + 'interval-4': '4', 'circle': '', 'double': '', 'quantise': '', @@ -38,25 +50,31 @@ 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', + 'interval-1': '#3c3c3c', + 'interval-2': '#3c3c3c', + 'interval-3': '#ff00ff', + 'interval-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', 'page-1', 'page-2', 'page-3', 'page-4', 'interval-1', 'interval-2', 'interval-3', 'interval-4', 'circle', 'double', 'quantise', 'shift'].includes(name); const icon = buttonIcons[name]; const label = buttonLabels[name]; const bgColor = buttonColors[name] || '#3c3c3c'; --- - {icon && showLabel && } - {label && showLabel && {label}} + {icon && } + {label && (showLabel || !icon) && {label}} 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..0a594ee 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 @@ -21,7 +21,7 @@ Welcome to PolyBoard! This guide will get you playing in minutes. 1. **Download** the latest `polyboard.syx` from [GitHub Releases](https://github.com/b4nst/PolyBoard/releases/latest) -2. **Enter bootloader mode** - Hold **Setup** (top-left) while plugging in USB +2. **Enter bootloader mode** - Hold **Setup** (top-left) while powering up 3. **Upload** the firmware using your SysEx tool @@ -29,33 +29,28 @@ 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 -- **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 -- [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..99b59f4 100644 --- a/docs/src/content/docs/index.mdx +++ b/docs/src/content/docs/index.mdx @@ -3,18 +3,21 @@ 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 - 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. diff --git a/docs/src/content/docs/installation/upload.mdx b/docs/src/content/docs/installation/upload.mdx index 4973116..b547a85 100644 --- a/docs/src/content/docs/installation/upload.mdx +++ b/docs/src/content/docs/installation/upload.mdx @@ -32,15 +32,11 @@ You'll need a SysEx tool for your operating system: -1. **Disconnect the Launchpad Pro** +1. **Enter Bootloader Mode** - Unplug the USB cable from your Launchpad Pro. + Hold down the **Setup** button (top-left corner) while powering up the device. The device will start in bootloader mode. -2. **Enter Bootloader Mode** - - Hold down the **Setup** button (top-left corner) while reconnecting the USB cable. The device will start in bootloader mode. - -3. **Send the Firmware** +2. **Send the Firmware** @@ -68,11 +64,11 @@ You'll need a SysEx tool for your operating system: -4. **Wait for Completion** +3. **Wait for Completion** The grid will briefly scroll "upgrading..." across the display. Wait for the device to reboot automatically. -5. **Verify Installation** +4. **Verify Installation** After reboot, you should see the PolyBoard logo (a magenta and teal checkerboard pattern) displayed briefly on the grid. @@ -82,7 +78,7 @@ You'll need a SysEx tool for your operating system: ### Device not recognized in bootloader mode -- Ensure you're holding **Setup** before connecting USB +- Ensure you're holding **Setup** while powering up - Try a different USB port or cable - Make sure the device is connected directly to your computer, not through a hub diff --git a/docs/src/content/docs/reference/button-layout.mdx b/docs/src/content/docs/reference/button-layout.mdx index 9fea38a..32d71a1 100644 --- a/docs/src/content/docs/reference/button-layout.mdx +++ b/docs/src/content/docs/reference/button-layout.mdx @@ -6,6 +6,7 @@ sidebar: --- import { Aside } from '@astrojs/starlight/components'; +import LaunchpadGrid from '../../../components/LaunchpadGrid.astro';