Kautenja / PotatoChips

Eurorack modules based on programmable sound chip emulation.
Other
45 stars 4 forks source link

YM2612 Triggers fail sometimes in SSG mode #82

Open Kautenja opened 3 years ago

Kautenja commented 3 years ago

Describe the bug

Sometimes the triggers to YM2612-based modules in SSG mode fail.

To Reproduce

Steps to reproduce the behavior:

  1. put MinIBoss into a polyphonic mode with a MIDI controller using 4+ channels
  2. place the envelope generator into SSG with a fast cycle
  3. turn on "prevent clicks" from the context menu (behavior happens in both modes)
  4. press buttons on a MIDI controller to trigger notes until a trigger failure occurs

Expected behavior

Retriggering in SSG mode should always behave like an LFO with hard reset. Sometimes this fails and a one-shot note leaks through using the envelope generator settings.

Additional context

Patch file

{
  "version": "1.dev.476a49b",
  "modules": [
    {
      "id": 1,
      "plugin": "Core",
      "version": "1.1.6",
      "model": "AudioInterface",
      "params": [],
      "leftModuleId": 154,
      "data": {
        "audio": {
          "driver": 1,
          "deviceName": "default",
          "offset": 0,
          "maxChannels": 8,
          "sampleRate": 44100,
          "blockSize": 512
        }
      },
      "pos": [
        57,
        0
      ]
    },
    {
      "id": 2,
      "plugin": "Fundamental",
      "version": "1.4.0",
      "model": "VCMixer",
      "params": [
        {
          "id": 0,
          "value": 1.0
        },
        {
          "id": 1,
          "value": 1.0
        },
        {
          "id": 2,
          "value": 1.0
        },
        {
          "id": 3,
          "value": 1.0
        },
        {
          "id": 4,
          "value": 1.0
        }
      ],
      "leftModuleId": 142,
      "rightModuleId": 150,
      "pos": [
        24,
        0
      ]
    },
    {
      "id": 5,
      "plugin": "Core",
      "version": "1.1.6",
      "model": "MIDIToCVInterface",
      "params": [],
      "rightModuleId": 142,
      "data": {
        "channels": 4,
        "polyMode": 0,
        "clockDivision": 24,
        "lastPitch": 8192,
        "lastMod": 0,
        "midi": {
          "driver": -11,
          "deviceName": "QWERTY keyboard (US)",
          "channel": -1
        }
      },
      "pos": [
        0,
        0
      ]
    },
    {
      "id": 142,
      "plugin": "KautenjaDSP-PotatoChips",
      "version": "1.10.1",
      "model": "MiniBoss",
      "params": [
        {
          "id": 0,
          "value": 15.0
        },
        {
          "id": 1,
          "value": 100.0
        },
        {
          "id": 2,
          "value": 31.0
        },
        {
          "id": 3,
          "value": 5.0
        },
        {
          "id": 4,
          "value": 7.0
        },
        {
          "id": 5,
          "value": 0.0
        },
        {
          "id": 6,
          "value": 1.0
        },
        {
          "id": 7,
          "value": 0.0
        },
        {
          "id": 8,
          "value": -1.18500173
        },
        {
          "id": 9,
          "value": 0.0
        },
        {
          "id": 10,
          "value": 0.0
        },
        {
          "id": 11,
          "value": 0.0
        },
        {
          "id": 12,
          "value": 0.0
        },
        {
          "id": 13,
          "value": 1.0
        },
        {
          "id": 14,
          "value": 3.0
        },
        {
          "id": 15,
          "value": 127.0
        }
      ],
      "leftModuleId": 5,
      "rightModuleId": 2,
      "data": {
        "prevent_clicks": true
      },
      "pos": [
        8,
        0
      ]
    },
    {
      "id": 150,
      "plugin": "Bogaudio",
      "version": "1.1.35",
      "model": "Bogaudio-VU",
      "params": [],
      "leftModuleId": 2,
      "rightModuleId": 154,
      "data": {},
      "pos": [
        34,
        0
      ]
    },
    {
      "id": 154,
      "plugin": "Bogaudio",
      "version": "1.1.35",
      "model": "Bogaudio-Analyzer",
      "params": [
        {
          "id": 0,
          "value": 0.0
        },
        {
          "id": 1,
          "value": 0.385500133
        },
        {
          "id": 2,
          "value": 1.0
        },
        {
          "id": 3,
          "value": 0.0
        },
        {
          "id": 4,
          "value": 1.0
        },
        {
          "id": 5,
          "value": 0.0
        }
      ],
      "leftModuleId": 150,
      "rightModuleId": 1,
      "data": {
        "frequency_plot": "log",
        "amplitude_plot": "decibels_140"
      },
      "pos": [
        37,
        0
      ]
    },
    {
      "id": 156,
      "plugin": "KautenjaDSP",
      "version": "1.0.0",
      "model": "Oscilloscope",
      "params": [
        {
          "id": 0,
          "value": 0.0
        },
        {
          "id": 1,
          "value": 0.0
        },
        {
          "id": 2,
          "value": 0.0
        },
        {
          "id": 3,
          "value": 0.0
        },
        {
          "id": 4,
          "value": 14.0
        },
        {
          "id": 5,
          "value": 0.0
        },
        {
          "id": 6,
          "value": 0.0
        },
        {
          "id": 7,
          "value": 0.0
        }
      ],
      "data": {
        "lissajous": 0,
        "external": 0
      },
      "pos": [
        0,
        1
      ]
    }
  ],
  "cables": [
    {
      "id": 1408,
      "outputModuleId": 2,
      "outputId": 1,
      "inputModuleId": 1,
      "inputId": 0,
      "color": "#0986ad"
    },
    {
      "id": 1317,
      "outputModuleId": 2,
      "outputId": 1,
      "inputModuleId": 150,
      "inputId": 0,
      "color": "#0986ad"
    },
    {
      "id": 1316,
      "outputModuleId": 150,
      "outputId": 0,
      "inputModuleId": 154,
      "inputId": 0,
      "color": "#0986ad"
    },
    {
      "id": 1428,
      "outputModuleId": 2,
      "outputId": 1,
      "inputModuleId": 1,
      "inputId": 1,
      "color": "#0986ad"
    },
    {
      "id": 1429,
      "outputModuleId": 5,
      "outputId": 1,
      "inputModuleId": 142,
      "inputId": 6,
      "color": "#c9b70e"
    },
    {
      "id": 1430,
      "outputModuleId": 5,
      "outputId": 6,
      "inputModuleId": 142,
      "inputId": 7,
      "color": "#c9b70e"
    },
    {
      "id": 1431,
      "outputModuleId": 5,
      "outputId": 0,
      "inputModuleId": 142,
      "inputId": 8,
      "color": "#c9b70e"
    },
    {
      "id": 1432,
      "outputModuleId": 142,
      "outputId": 0,
      "inputModuleId": 2,
      "inputId": 1,
      "color": "#0986ad"
    },
    {
      "id": 1434,
      "outputModuleId": 2,
      "outputId": 2,
      "inputModuleId": 154,
      "inputId": 1,
      "color": "#c91847"
    },
    {
      "id": 1320,
      "outputModuleId": 154,
      "outputId": 0,
      "inputModuleId": 156,
      "inputId": 0,
      "color": "#0986ad"
    },
    {
      "id": 1470,
      "outputModuleId": 142,
      "outputId": 0,
      "inputModuleId": 142,
      "inputId": 9,
      "color": "#0986ad"
    }
  ]
}