Skip to content

research: the eight ASSIGN blocks per memory, and a MIDI assignments editor #76

Description

@AliceLafox

What

Every memory in a MEMORY*.RC0 carries eight <ASSIGN1..8> blocks, each with the
same six fields:

<ASSIGN1>
	<Sw>0</Sw>
	<Source>0</Source>
	<SourceMode>0</SourceMode>
	<Target>0</Target>
	<TargetMin>0</TargetMin>
	<TargetMax>1</TargetMax>
</ASSIGN1>

This is the pedal's MIDI control surface: the RC series has no fixed CC
implementation chart at all — a player maps a CC number to a function through
ASSIGN 1-8, with CC#1-31 and 64-95 assignable and a source mode of MOMENT or
TOGGLE. Editing that on the hardware means a menu inside a menu, eight slots deep,
repeated per memory. It is exactly the kind of thing a companion app should own.

LooperCat touches these blocks nowhere today: a grep over core/, app/ and
fixtures/ finds no reference to ASSIGN.

State of knowledge

Confirmed by reading a real card: the block layout and field names above, and that
the eight blocks exist per memory for all 99 memories.

Not yet known, and needed before any editor:

  • Whether the RC-5 carries the same eight blocks. No RC-5 RC0 sample is checked
    into this repo, and fixtures/golden.json records only TRACK1 / MASTER / RHYTHM.
    This is the first question to settle, since the RC-5 is the pedal we support.
  • The enum maps behind Source and Target — which integer means which CC number
    and which means which function. The vendor Parameter Guide documents the target
    list in prose; the numeric encoding has to be pinned against hardware.
  • Whether TargetMin / TargetMax are raw parameter values or an index into the
    target's own range.

Research plan

  1. Dump a memory pair, change one assignment on the pedal, dump again, diff. The
    same differential method that pinned the Count-In triple — it yields exact
    values rather than an interpretation of documentation.
  2. Repeat per field until Source and Target are mapped, recording each value
    with the capture that proves it.
  3. Only then design the editor. As with the memory editor, usecase-first: the
    assignments a player actually wants ("a footswitch that starts the rhythm")
    before an eight-row grid of raw enums.

Notes

Related to #23 (can the pedal be told to save a loop over MIDI) — same MIDI tier,
different question: #23 is about commanding the pedal live, this is about the
assignments stored on the card.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions