Skip to content

Repository files navigation

PO-20 Arcade Companion 👾

An intuitive, browser-based companion web application designed to visually document, map, and save patterns and chord sets from the Teenage Engineering Pocket Operator PO-20 Arcade.

Since the PO-20 hardware lacks a native project-saving or export feature, this companion app acts as your external, paperless notebook. It allows you to back up your hardware creations, map out complex chord progressions, and keep your arcade tracks safe for future live performances or recording sessions.


PO-20 Arcade Companion Pattern Editor

Interactive 16-step sequencer matrix showing Bass Drum program with retro pixel LCD display.


✨ Features

  • 🎛️ Morphing 4x4 Grid Matrix: Visually log step-sequencer data and melody patterns exactly as they look on your pocket operator hardware.
  • 📟 Simulated Pixel LCD Screen: Implements a retro, digital-style screen that mimics the PO-20 layout, showing the active steps, sound types, and automation states.
  • 🎚️ Step Parameter Automation: Program parameter values (Value-A for Pitch/Notes and Value-B for Filter/Values) on a step-by-step basis to document knob tweaks.
  • 🎹 Chord Progression Builder & Synthesizer: Arrange custom chord chains using the PO-20's 16 signature chord variants. Features a built-in Web Audio synth for live previewing.
  • 🌓 Dual Retro Themes: Switch between a glowing, cyber-dark Arcade theme and a cozy, paper-like Light theme.
  • 💾 Local Persistence: Automatically saves your patterns and progressions in the browser session, so your work is always there when you reload.

🚀 Getting Started

Prerequisites

  • Node.js (v18+ recommended)
  • A modern web browser

Local Installation & Run

  1. Clone the repository:

    git clone https://github.com/warmsynths/po20.git
  2. Navigate into the project directory:

    cd po20
  3. Install dependencies:

    npm install
  4. Start the local development server:

    npm run dev
  5. Open the application: Navigate to the local URL shown in your terminal (usually http://localhost:3005).

📦 Production Build

To compile the static production bundle into the docs directory:

npm run build

🛠️ Built With

  • Lit: Simple, fast, and web-standard native web components.
  • Vite: Ultra-fast next-generation frontend tooling.
  • Web Audio API: Built-in synth for chord playback preview.
  • TypeScript & CSS Custom Properties: Clean code and responsive variables.

🤝 Contributing

Contributions, bug reports, and feature requests are welcome! Feel free to open a pull request or an issue if you want to add new layout styles, backup options, or workflow optimizations.


📝 License

This project is open-source and available under the GNU GPLv3 License.

Disclaimer: This project is an independent utility and is not affiliated with, authorized, or endorsed by Teenage Engineering.

About

A lightweight Lit-based web companion for the Teenage Engineering Pocket Operator PO-20 Arcade to visually log, document, and save patterns and chord sets.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Contributors

Languages