kabir0st/gp200-studio

GitHub: kabir0st/gp200-studio

基于浏览器的 Valeton GP-200 效果器编辑器与多层 loop station,通过 Web MIDI 无需安装即可编辑参数、管理预设并录制多层循环。

Stars: 6 | Forks: 1

GP200 Studio logo # GP200 Studio **一款基于浏览器的编辑器、patch 管理器和多层 loop station,专为 Valeton GP-200 设计。** 无需安装。无需账号。无需后端。插上即可演奏。 免费且开源 (GPL-3.0)。 [![TypeScript](https://img.shields.io/badge/TypeScript-strict-3178C6?logo=typescript&logoColor=white)](tsconfig.app.json) [![React](https://img.shields.io/badge/React-19-61DAFB?logo=react&logoColor=black)](package.json) [![Vite](https://img.shields.io/badge/Vite-⚡-646CFF?logo=vite&logoColor=white)](vite.config.ts) [![Web MIDI](https://img.shields.io/badge/Web%20MIDI-SysEx-5df08a)](src/core/SysExCodec.ts) [![Backend](https://img.shields.io/badge/backend-none-success)](#how-it-works) [![Browser](https://img.shields.io/badge/browser-Chrome%20%7C%20Edge-orange?logo=googlechrome&logoColor=white)](#browser-support) [![License](https://img.shields.io/badge/license-GPL--3.0-blue)](LICENSE) The GP200 Studio pedalboard editor
## 为什么开发? Valeton GP-200 是一款出色的综合效果器,但对 Linux 的支持不太友好,因为官方编辑器**仅能在 Windows 和 macOS 上运行**,而且通过 4 英寸的屏幕和两个脚踏开关来管理 256 个 patch,对任何人来说都不是一件乐事。 GP200 Studio 解决了这个问题: - 🐧 **Chrome 能跑的地方它就能跑** — 包括 Linux。通过 Web MIDI + Web Audio,直接从浏览器经 USB 连接到效果器。无需安装任何东西。 - 🗂️ **真正的 patch 管理** — 浏览、搜索、重命名、导入、导出和备份全部 256 个设备插槽。可将你的整个效果器批量导出为一个 ZIP 文件。 - 🎛️ **看起来就像真实设备的 UI** — 你的 patch 就像一块真实的 pedalboard,而不是满是参数的表格。每个效果器都是一个带有直观旋钮的彩色单块。一眼就能看清你的信号链,而无需在菜单中费力寻找。 - 🔁 **效果器本身未搭载的 loop station** — 一个多层 looper,可直接在浏览器中录制 GP-200 的 USB 音频,并支持 MIDI 脚踏开关学习,让你可以直接通过效果器上的开关进行免提操作。 ## 功能特性 - 🎸 **Pedalboard 编辑器** — 整个 patch 呈现为一个舞台风格的板子:包含独立的效果器单块模块、拖拽排序、FX-loop 路由、旋钮/推子参数编辑,以及全部 305 种效果的“基于真实硬件”信息 - ⚡ **实时推送到设备** — 你的编辑会通过 USB-MIDI SysEx 实时流式传输到已连接的 GP-200;硬件端的更改也会同步回编辑器中 - 🗄️ **Patch 管理器** — 包含名称和搜索功能的完整 256 个插槽列表,支持激活/打开/重命名,按插槽导出/导入 `.prst` 文件,以及一键批量 ZIP 备份 - 🦶 **控制器分配** — 支持为每个 patch 单独分配 EXP 踏板和 CTRL 1–8 脚踏开关映射 - 🔁 **Loop station** — 在 GP-200 的 USB 音频上叠加无限数量的相位锁定层,支持通过 MIDI 学习将播放控制绑定到效果器的脚踏开关上
Effect picker Loop station
## Loop station GP-200 内置的 looper 只能录制单层循环。GP200 Studio 将该设备变成了一个**真正的多层 loop station**:将一台笔记本电脑、一部 Android 手机或任何其他能运行 Chrome 的设备,用你平时用的那根 USB 线连接起来,该应用就能直接在浏览器中录制效果器的 USB 音频。 - 🎚️ **无限层数** — 你的首次录音将作为主循环;此后的每一次录音都会增加一条新音轨,并对其进行量化且与主循环相位锁定,因此无论你叠加多少层,所有内容都能保持完美同步 - 🎛️ **逐层控制** — 每条音轨都有独立的播放/暂停、静音、音量和删除功能,此外还有主进度条和一键清除所有内容的功能 - 🦶 **通过效果器免提操作** — MIDI 学习功能可将 GP-200 的物理脚踏开关绑定到录音、播放和音轨选择上,并且接管模式可以防止在你进行循环操作时,踩下开关触发了它们原本的 patch 切换功能 - 🥁 **伴奏节奏** — 鼓机抽屉可通过 MIDI 远程控制设备内置的鼓机(及其自带的单轨 looper 和调音器),让你可以跟着节拍进行循环录制 无需音频接口,无需 DAW,也无需额外的效果器 —— 只需 GP-200、一根 USB 线和一个浏览器。
📸 More screenshots
Landing screen FX loop routing
Landing FX-loop routing
EXP pedal assignment CTRL footswitch assignment
EXP pedal assignment CTRL footswitch assignment
Signal chain info bar Export dialog
Signal chain & effect info Export
## 快速开始 ### 直接使用 1. 在 Chrome 或 Edge 中打开 **[GP200studio](https://kabirtamari.com/gp200studio/)** 2. 将你的 GP-200 插入 USB 并点击 **CONNECT GP-200** — 或者点击 **Open editor** 以离线处理 `.prst` 文件 3. 就是这样。所有操作均在客户端运行;你的预设永远不会离开你的电脑。 ### 在本地运行 ``` git clone https://github.com/kabir0st/gp200-studio.git cd gp200-studio npm install npm run dev # http://localhost:5173 ``` 其他有用的命令:`npm run build`、`npm run typecheck`、`npm run lint`、`npm run test`。 ## 工作原理 所有操作均在客户端通过 TypeScript 运行。位于 [`src/core/`](src/core/) 的纯协议层负责解码/编码 GP-200 的二进制 `.prst` 预设格式(通过 raw-source passthrough 实现字节级精确的往返读写),并通过浏览器的 Web MIDI API 与效果器进行 **逆向工程得出的 USB-MIDI SysEx 协议** 通信 — 涵盖参数更改、效果器替换、开关切换、重新排序、预设拉取和保存等功能。React hooks 层在此基础之上处理连接/会话,而 pedalboard UI 则构建于其上。整个过程没有任何服务器的参与。 ## 鸣谢 - 构建于 **[phash/gp200editor](https://github.com/phash/gp200editor)** 的逆向工程基础之上 — 包括 `.prst` 二进制格式、SysEx MIDI 协议以及 305 种效果的映射 - 由 [Kabir Tamari](https://kabirtamari.com) 开发 ## 开源协议 [GPL-3.0](LICENSE) — 免费使用、学习、分享和改进;衍生作品必须保持开源。
标签:React, Syscalls, Vite, Web MIDI, 前端编辑器, 自动化攻击, 音乐硬件控制, 音效处理器