The MIDI learn spec does not say what New and Open do to learn mode

Open Beginner friendly
#656 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
1/5
Estimated time
1-3 hours
Newbie friendliness
86/100
Issue type
Documentation
Clarity
Clearly specified
Activity status
Active
Tech stack
rust
Domain
documentation

Research direction

Read the Behaviour table in docs/design/midi-learn.md and the decision context in this issue. Update the table to state what New and Open do to learn mode and why. If the documented decision changes the current behavior, update the test in crates/loom-app/src/file_commands/tests.rs; done when the table explains both actions and any changed behavior is covered by the test.

Written by the indexing model from the issue text.

Description

area:midi area:ui could docs

PatchSession holds learn mode (crates/loom-app/src/session.rs), so New and Open end it: the toolbar button goes dark and the status bar stops saying Learning. A test pins this today (crates/loom-app/src/file_commands/tests.rs). #624 kept the behaviour on purpose, but nobody chose it, and the old *self = fresh reset hid it.

The MIDI learn spec lists two ways to end learn mode, a second press of MIDI learn and Escape. It does not mention a new patch.

The decision

What should New and Open do to learn mode?

  • It ends (what the code does). Proposed. Mappings are saved with the patch, so learning is work on one patch. An armed parameter cannot carry over in any case, because module IDs repeat between patches.
  • It stays on, with nothing armed. Someone mapping a controller across several patches would keep the mode, but they would also see dead knobs in a patch they just opened, which the Learning word exists to warn about.

Done when

  • The Behaviour table in docs/design/midi-learn.md says what New and Open do to learn mode, and why.
  • If the decision changes the behaviour, the test in crates/loom-app/src/file_commands/tests.rs changes with it.

Related: #624, #166.


Generated by Claude Code

Dominant language
Rust
Stars
2
Forks
8
Avg merge
2h 53m
Merged PRs (30d)
223

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from brylie/LoomDSP

All issues in brylie/LoomDSP

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.