File corruption

Description


Sometimes addressings.json and pedalboard-name.ttl get corrupted… old Control Chain or MIDI-learn assignments don’t always get properly removed when a pedalboard is edited and then saved. Note that this happens sporadically; I’ve seen it for a while, but have just now got a clear example of an incorrect addressings.json.

In this case, I initially labeled the footswitch assignment for the FOMP 4-Band Parametric Filter presets as “INSTR”. Then I removed that footswitch assignment, while editing some of the presets and making some new ones. Then, when re-assigning the footswitch to the presets, I decided to make the label “EQ” instead – the display on the footswitch still came up as “INSTR”, and you can see that addressings,json ended up with duplicate “https://github.com/moddevices/cc-fw-footswitch:0:3” entries (one for the old “INSTR” label, and one for the new “EQ” label) – the old one did not get removed, and the hardware appears to only read the first one in the file. Here’s the file, as it ended up on the MOD:

{"/hmi/knob2": [{"minimum": 40.0, "label": "DELAY FDBK", "instance": "/graph/bolliedelay", "steps": 65, "maximum": 99.656336640000006, "port": "feedback"}, {"minimum": 0.0, "label": "PCH-2  .38  .53  .81", "instance": "/graph/ewham_1", "steps": 33, "maximum": 1.0, "port": "EXPRESSION"}, {"minimum": -20.0, "label": "PCH LEVEL", "instance": "/graph/mono_4", "steps": 33, "maximum": 0.0, "port": "gain"}, {"minimum": 6.0, "label": "SYN urgency", "instance": "/graph/bolliedelay_1", "steps": 65, "maximum": 1000.0, "port": "tempo_user"}, {"minimum": -1.0, "label": "MIDI Transpose", "instance": "/graph/miditranspose", "steps": 33, "maximum": 7, "port": ":presets"}], "/hmi/knob1": [{"minimum": -20.0, "label": "DELAY LEVEL", "instance": "/graph/mono_2", "steps": 33, "maximum": -0.26000000000000001, "port": "gain"}, {"minimum": 0.0, "label": "PCH-1   .41  .69  .78", "instance": "/graph/ewham", "steps": 33, "maximum": 1.0, "port": "EXPRESSION"}, {"minimum": -1.0, "label": "PCH 1 | 2 BALANCE", "instance": "/graph/xfade_1", "steps": 33, "maximum": 1.0, "port": "xfade"}, {"minimum": -1.0, "label": "RM BALANCE", "instance": "/graph/xfade_2", "steps": 33, "maximum": 1.0, "port": "xfade"}, {"minimum": -1.0, "label": "MIDI Note Transp", "instance": "/graph/mapkeyscale", "steps": 33, "maximum": 5, "port": ":presets"}], "/hmi/footswitch1": [{"minimum": 0.0, "label": "DELAY", "instance": "/graph/ToggleSwitch4", "steps": 1, "maximum": 1.0, "port": "channel1"}], "/hmi/footswitch2": [{"minimum": 20.0, "label": "TAP", "instance": "/pedalboard", "steps": 260, "maximum": 280.0, "port": ":bpm"}], "https://github.com/moddevices/cc-fw-footswitch:0:3": [{"minimum": -1.0, "label": "INSTR", "instance": "/graph/parametric1", "steps": 33, "maximum": 7, "port": ":presets"}], "https://github.com/moddevices/cc-fw-footswitch:0:3": [{"minimum": -1.0, "label": "EQ", "instance": "/graph/parametric1", "steps": 33, "maximum": 7, "port": ":presets"}], "https://github.com/moddevices/cc-fw-footswitch:0:2": [{"minimum": 0.0, "label": "PCH", "instance": "/graph/ToggleSwitch4_1", "steps": 1, "maximum": 1.0, "port": "channel1"}], "https://github.com/moddevices/cc-fw-footswitch:0:1": [{"minimum": 0.0, "label": "RM", "instance": "/graph/ToggleSwitch4_2", "steps": 1, "maximum": 1.0, "port": "channel1"}], "https://github.com/moddevices/cc-fw-footswitch:0:0": [{"minimum": 0.0, "label": "CRY", "instance": "/graph/_gcb_95_", "steps": 33, "maximum": 1.0, "port": ":bypass"}]}

…I ssh’d into the MOD and edited the file directly, removing the extra entry, which fixed the problem.

How to reproduce


  1. make a pedalboard
  2. assign some MIDI control by MIDI-learn and/or some Control Chain addressings
  3. save the pedalboard
  4. change some of those assignments
  5. observe the assignments label or function not necessarily changing appropriately (if it’s a MIDI assignment, the MIDI CC will just fail to “learn”, even though that CC was previously removed)
  6. N.B. unfortunately, it happens inconsistently – most of the time everything works fine. (it seems to happen more with complicated pedalboards and/or ones which have had more edits and re-saves)

Expected/suggested solution


MIDI or Control Change edits should reliably be able to be removed or changed, and properly updated when the files are saved.

Additional information


  • release: 1.5.0.519-RC1
  • controller: a5aa6d3

Also provide some information about your system if possible.

  • Operating system: Linux - Ubuntu
  • System version: 4.4.0-96-lowlatency #119-Ubuntu SMP PREEMPT x86_64
2 Likes