4ms / metamodule-core-modules

Other
2 stars 1 forks source link

Complex EG - Gates via MIDI not sustaining #6

Closed dpisarcik closed 2 months ago

dpisarcik commented 3 months ago

Firmware: 1.0.11

Below is a dump of my patch "quadMidiComplexEG2.yml". Quicky summary of this patch:

Outputs 1-4 take the output of 4 Complex EG's, with gates fed from MIDI -> Split (polyphony 4) Outputs 5-8 are the direct MIDI (gate) -> Split

When I run this in VCV Rack, it runs fine. When I run the hardware module, Complex EG's do not sustain (HW outs 1-4). However, the MIDI gate outs (HW outs 5-8) do sustain as expected. When I use the hardware "GateIn" instead of a MIDI Gate In, the Complex EG sustains.

PatchData:
  patch_name: quadMidiComplexEG2
  description: Tests MIDI to Complex EG behavior
  module_slugs:
    0: '4msCompany:HubMedium'
    1: '4msCompany:ComplexEG'
    2: '4msCompany:ComplexEG'
    3: '4msCompany:ComplexEG'
    4: '4msCompany:ComplexEG'
  int_cables: []
  mapped_ins:
    - panel_jack_id: 272
      ins:
        - module_id: 1
          jack_id: 0
        - module_id: 0
          jack_id: 4
    - panel_jack_id: 273
      ins:
        - module_id: 2
          jack_id: 0
        - module_id: 0
          jack_id: 5
    - panel_jack_id: 274
      ins:
        - module_id: 3
          jack_id: 0
        - module_id: 0
          jack_id: 6
    - panel_jack_id: 275
      ins:
        - module_id: 4
          jack_id: 0
        - module_id: 0
          jack_id: 7
  mapped_outs:
    - panel_jack_id: 0
      out:
        module_id: 1
        jack_id: 5
    - panel_jack_id: 1
      out:
        module_id: 2
        jack_id: 5
    - panel_jack_id: 2
      out:
        module_id: 3
        jack_id: 5
    - panel_jack_id: 3
      out:
        module_id: 4
        jack_id: 5
  static_knobs:
    - module_id: 1
      param_id: 0
      value: 0
    - module_id: 1
      param_id: 1
      value: 0
    - module_id: 1
      param_id: 2
      value: 0
    - module_id: 1
      param_id: 3
      value: 0.5
    - module_id: 1
      param_id: 4
      value: 0.5
    - module_id: 1
      param_id: 5
      value: 0.5
    - module_id: 1
      param_id: 6
      value: 0.75
    - module_id: 1
      param_id: 7
      value: 0
    - module_id: 1
      param_id: 8
      value: 0
    - module_id: 2
      param_id: 0
      value: 0
    - module_id: 2
      param_id: 1
      value: 0
    - module_id: 2
      param_id: 2
      value: 0
    - module_id: 2
      param_id: 3
      value: 0.5
    - module_id: 2
      param_id: 4
      value: 0.5
    - module_id: 2
      param_id: 5
      value: 0.5
    - module_id: 2
      param_id: 6
      value: 0.75
    - module_id: 2
      param_id: 7
      value: 0
    - module_id: 2
      param_id: 8
      value: 0
    - module_id: 3
      param_id: 0
      value: 0
    - module_id: 3
      param_id: 1
      value: 0
    - module_id: 3
      param_id: 2
      value: 0
    - module_id: 3
      param_id: 3
      value: 0.5
    - module_id: 3
      param_id: 4
      value: 0.5
    - module_id: 3
      param_id: 5
      value: 0.5
    - module_id: 3
      param_id: 6
      value: 0.75
    - module_id: 3
      param_id: 7
      value: 0
    - module_id: 3
      param_id: 8
      value: 0
    - module_id: 4
      param_id: 0
      value: 0
    - module_id: 4
      param_id: 1
      value: 0
    - module_id: 4
      param_id: 2
      value: 0
    - module_id: 4
      param_id: 3
      value: 0.5
    - module_id: 4
      param_id: 4
      value: 0.5
    - module_id: 4
      param_id: 5
      value: 0.5
    - module_id: 4
      param_id: 6
      value: 0.75
    - module_id: 4
      param_id: 7
      value: 0
    - module_id: 4
      param_id: 8
      value: 0
  mapped_knobs:
    - name: ''
      set: []
    - name: ''
      set: []
    - name: ''
      set: []
    - name: ''
      set: []
    - name: ''
      set: []
    - name: ''
      set: []
    - name: ''
      set: []
    - name: ''
      set: []
  midi_maps:
    name: ''
    set: []
  midi_poly_num: 4
  vcvModuleStates: []
danngreen commented 3 months ago

Ok, thanks. I think I know what this is. MIDI on the MetaModule only sends updated values when there's an event, but in VCV Rack (or when using a Gate In jack on the MetaModule hardware), values are streamed every frame. And there's a bug in ComplexEG that resets the trigger input to 0 if no new value is written. I'll post a fix when I can.

danngreen commented 3 months ago

I went through all modules and made sure this doesn't show up in other places (even unlikely ones, like mapping MIDI to an audio input): https://github.com/4ms/metamodule-core-modules/tree/fix-getInput

I want to do more tests on hardware before merging, since this only shows up on hardware.

danngreen commented 3 months ago

I think the fix this is complete for all modules, CoreModules. I plan to roll it into v1.0.12

danngreen commented 3 months ago

Merged into firmware v1.0.12. Let me know if that fixes it for you