[WIP] standardize per card /web deployments and add new info.yaml fields#177
[WIP] standardize per card /web deployments and add new info.yaml fields#177philmillman wants to merge 2 commits into
Conversation
|
@TomWhitwell @chrisgjohnson the |
| panel: | ||
| inputs: | ||
| - id: PulseIn1 | ||
| name: Pulse In 1 | ||
| description: External clock; when patched, internal clock is bypassed (swing ignored) | ||
| - id: PulseIn2 | ||
| name: Pulse In 2 | ||
| description: Reset on rising edge | ||
| - id: CVIn1 | ||
| name: CV In 1 | ||
| description: Map modulation (X, Y, or XY blend per config). Held off after Z middle↔up flip until X or Y is moved past takeover deadband | ||
| - id: CVIn2 | ||
| name: CV In 2 | ||
| description: Fill modulation — global in Z middle; all lane densities in Z up (after knob takeover) | ||
| outputs: | ||
| - id: PulseOut1 | ||
| name: Pulse Out 1 | ||
| description: Trigger lane 1 | ||
| - id: PulseOut2 | ||
| name: Pulse Out 2 | ||
| description: Trigger lane 2 | ||
| - id: CVOut1 | ||
| name: CV Out 1 | ||
| description: Trigger lane 3 (digital pulse) | ||
| - id: CVOut2 | ||
| name: CV Out 2 | ||
| description: Aux output (accent, clock, or lane 3 mirror — configurable) | ||
|
|
||
| controls: | ||
| knobs: | ||
| - when: { z: middle } | ||
| main: | ||
| name: Main | ||
| description: Global fill macro (per-lane scale/offset from config) | ||
| x: | ||
| name: X | ||
| description: Pattern map X | ||
| y: | ||
| name: Y | ||
| description: Pattern map Y | ||
|
|
||
| - when: { z: up } | ||
| main: | ||
| name: Main | ||
| description: Lane 1 density (PulseOut1) | ||
| x: | ||
| name: X | ||
| description: Lane 2 density (PulseOut2) | ||
| y: | ||
| name: Y | ||
| description: Lane 3 density (CVOut1). Map X/Y held from last Z middle position until knob takeover | ||
|
|
||
| - when: { z: middle, layer: alt } | ||
| main: | ||
| name: Main | ||
| description: Chaos / randomness (pattern engine) | ||
| x: | ||
| name: X | ||
| description: Internal BPM (bpm10) | ||
| y: | ||
| name: Y | ||
| description: Swing (50% straight … 75% shuffle) | ||
|
|
||
| - when: { z: down, gesture: momentary } | ||
| main: | ||
| name: Main | ||
| description: Tap tempo (internal clock only) | ||
|
|
||
| - when: { z: down, gesture: hold } | ||
| main: | ||
| name: Main | ||
| description: Long press toggles alt layer (knob pickup/catch) | ||
|
|
||
| leds: | ||
| - when: { z: middle } | ||
| display: list | ||
| items: | ||
| - id: LED0 | ||
| name: LED 0 | ||
| description: Beat tick blink | ||
| - id: LED1 | ||
| name: LED 1 | ||
| description: Fill macro brightness | ||
| - id: LED2 | ||
| name: LED 2 | ||
| description: Lane 1 trigger activity | ||
| - id: LED3 | ||
| name: LED 3 | ||
| description: Map X brightness | ||
| - id: LED4 | ||
| name: LED 4 | ||
| description: Lane 2 trigger activity | ||
| - id: LED5 | ||
| name: LED 5 | ||
| description: Lane 3 / aux activity or alt-layer indicator | ||
|
|
||
| - when: { z: up } | ||
| display: list | ||
| items: | ||
| - id: LED0 | ||
| name: LED 0 | ||
| description: Beat tick blink | ||
| - id: LED1 | ||
| name: LED 1 | ||
| description: Lane 1 density | ||
| - id: LED2 | ||
| name: LED 2 | ||
| description: Lane 1 trigger activity | ||
| - id: LED3 | ||
| name: LED 3 | ||
| description: Lane 2 density | ||
| - id: LED4 | ||
| name: LED 4 | ||
| description: Lane 2 trigger activity | ||
| - id: LED5 | ||
| name: LED 5 | ||
| description: Lane 3 density brightness |
There was a problem hiding this comment.
Elaborate, but cool if this is going to work. Could maybe even used to generate these mapping svg's automatically, which up till now I've been too lazy to create 😓 .
I know it's always hard to setup these kind of meta data things. But if you're going to do this, maybe it also time to add some linting tool and check if the existing and new info.yaml are matching the definition. And maybe run them on each new MR, before accepting. I think most people using LLM's or code harnesses will have no trouble adding these and it could lead to great and up-to-date documentation for each project.
Nice initiative! 🙌🏻
There was a problem hiding this comment.
Yeah that's the plan! I opened this initial draft as a way of getting public comments and once we land on the shape of the schema I can add some tooling for linting, etc.
| | 77_Placeholder | Reserved for secret project | 0.0<br>None | None | None | | ||
| | 78_Talker | Proof of concept speech synthesizer, based on TalkiePCM, inspired by 1970s LPC speech synths. | 0.1<br>Proof of concept | C++ (ComputerCard) | Chris Johnson | | ||
| | 82_Computer_Grids | Grids-inspired trigger sequencer with Web MIDI SysEx configuration.<br>[Web editor](https://computergrids.webmidi.cc/) | 0.1.0<br>Released | C++ | Phil Miller | | ||
| | 82_Computer_Grids | Grids-inspired trigger sequencer with Web MIDI SysEx configuration.<br>[Web editor](https://tomwhitwell.github.io/Workshop_Computer/programs/82-computer-grids/web/index.html) | 0.1.0<br>Released | C++ | Phil Miller | |
There was a problem hiding this comment.
Centralized? Would also be very cool.
There was a problem hiding this comment.
Yeah, it will deploy whatever you put in the /web folder (by default) with the option to override that folder and the entrypoint (defaults to index.html)
|
Though I agree with "none of the new fields are being rendered in the UI (yet), it felt like we should agree on the schema first", I wonder if it would be worth thinking explicitly about use cases and maybe even testing with some quick vibe-coded prototypes , before finalising a yaml spec. On that note, is the |
Yeah agreed some UI will help to see the final product, I was just trying to rein in the scope of this PR a bit in hopes of being incremental. I can add the UI stuff I tested back in if it's helpful, per Tom's suggestions from discord. Re: items:
- id: LED0
name: LED 0
description: Beat tick blinkcould be: items:
- id: LED0
name: Beat Tick
description: flashing every time the beat ticks over (1 PPQ) |
|
Re: I agree, we are going to have to do this step-by-step as there's a lot of ground to cover to get to a working version of Tom's screenshots. |
updated the sample |
Deployments
/web(default) or custom folder (overridable viaEditor)info.yaml
info.yamlfields see schema docs for more information