VCVRack / AudibleInstruments

VCV Rack plugin based on Mutable Instruments Eurorack modules
https://vcvrack.com/AudibleInstruments.html
Other
383 stars 84 forks source link

Tidal Modulator 2 crashes on Rack v1 #80

Open vcvrackideas opened 5 years ago

vcvrackideas commented 5 years ago

So here is the topic. I noticed that it crashes when switching left modes under Frequency knob

AndrewBelt commented 5 years ago

I can't reproduce this issue. I need more information, steps, platform details, etc.

spectromas commented 4 years ago

I can reproduce this. It doesn't crash every time but it happened with these settings (amongst others):

Screenshot_20191019_152319

The crash happens when you cycle through the modes on the left, usually on the second or third time through the cycle. Seems to happen regardless of what is patched in or out.

I'm using linux if that's relevant, latest Rack and AI releases. Some system info:

System:    Host: hyperion Kernel: 5.0.0-23-lowlatency x86_64 bits: 64 gcc: 7.4.0
           Desktop: KDE Plasma 5.17.0 (Qt 5.13.1) Distro: KDE neon User Edition 5.17
Machine:   Device: laptop System: Hewlett-Packard product: HP EliteBook 8570w v: A1029D1102 serial: N/A
           Mobo: Hewlett-Packard model: 176B v: KBC Version 50.1B serial: N/A
           BIOS: Hewlett-Packard v: 68IAV Ver. F.41 date: 05/20/2013
Battery    BAT0: charge: 62.8 Wh 98.4% condition: 63.8/63.8 Wh (100%) model: Hewlett-Packard Primary status: N/A
CPU:       Quad core Intel Core i7-3720QM (-MT-MCP-) arch: Ivy Bridge rev.9 cache: 6144 KB
           flags: (lm nx sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx) bmips: 20752
           clock speeds: max: 3600 MHz 1: 2976 MHz 2: 2561 MHz 3: 2884 MHz 4: 2664 MHz 5: 2824 MHz 6: 2894 MHz
           7: 2078 MHz 8: 2890 MHz
Graphics:  Card: NVIDIA GK107GLM [Quadro K2000M] bus-ID: 01:00.0
           Display Server: x11 (X.Org 1.19.6 ) drivers: nvidia (unloaded: modesetting,fbdev,vesa,nouveau)
           Resolution: 1920x1080@59.98hz
           OpenGL: renderer: Quadro K2000M/PCIe/SSE2 version: 4.6.0 NVIDIA 430.26 Direct Render: Yes
Audio:     Card-1 NVIDIA GK107 HDMI Audio Controller driver: snd_hda_intel bus-ID: 01:00.1
           Card-2 Intel 7 Series/C216 Family High Definition Audio Controller
           driver: snd_hda_intel bus-ID: 00:1b.0
           Card-3 Focusrite-Novation driver: USB Audio usb-ID: 003-004
           Sound: Advanced Linux Sound Architecture v: k5.0.0-23-lowlatency
Network:   Card-1: Intel 82579LM Gigabit Network Connection (Lewisville)
           driver: e1000e v: 3.2.6-k port: 5040 bus-ID: 00:19.0
           IF: enp0s25 state: down mac: 2c:44:fd:65:23:13
           Card-2: Intel Centrino Ultimate-N 6300 driver: iwlwifi bus-ID: 25:00.0
           IF: wlo1 state: up mac: 3c:a9:f4:4f:0d:0c
Drives:    HDD Total Size: 1250.3GB (67.4% used)
           ID-1: /dev/sda model: CT250MX500SSD1 size: 250.1GB
           ID-2: /dev/sdb model: TOSHIBA_MQ01ABD1 size: 1000.2GB
Partition: ID-1: / size: 34G used: 14G (41%) fs: ext4 dev: /dev/sda3
           ID-2: /home size: 81G used: 48G (60%) fs: ext4 dev: /dev/sda4
RAID:      No RAID devices: /proc/mdstat, md_mod kernel module present
Sensors:   System Temperatures: cpu: 57.0C mobo: N/A gpu: 0.0:51C
           Fan Speeds (in rpm): cpu: N/A
Info:      Processes: 279 Uptime: 7:33 Memory: 4066.2/11937.3MB Init: systemd runlevel: 5 Gcc sys: 7.4.0
           Client: Shell (bash 4.4.201) inxi: 2.3.56

The crash in the log:

[27.783 fatal src/main.cpp:39] Fatal signal 11. Stack trace:
8: /home/alex/.local/opt/Rack/Rack() [0x56b981]
7: /lib/x86_64-linux-gnu/libc.so.6(+0x3ef20) [0x7fd6ebb71f20]
6: /home/alex/.Rack/plugins-v1/AudibleInstruments/plugin.so(_ZN6tides218PolySlopeGenerator18RenderInternal_RAMILNS_8RampModeE1ELNS_10OutputModeE0ELNS_5RangeE1EEEvfffffPKhPKfPNS0_12OutputSampleEm+0x47b) [0x7fd6e117ecbb]
5: /home/alex/.Rack/plugins-v1/AudibleInstruments/plugin.so(_ZN6Tides27processERKN4rack6engine6Module11ProcessArgsE+0x7c4) [0x7fd6e1175994]
4: /home/alex/.local/opt/Rack/Rack() [0x5b3eb3]
3: /home/alex/.local/opt/Rack/Rack() [0x5b65bf]
2: /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xbd9e0) [0x7fd6ec5979e0]
1: /lib/x86_64-linux-gnu/libpthread.so.0(+0x76db) [0x7fd6ee1426db]
0: /lib/x86_64-linux-gnu/libc.so.6(clone+0x3f) [0x7fd6ebc5488f]

My settings-v1.json:

{
  "token": "HfsPyez0SsWoETy+WKO1",
  "windowSize": [
    0.0,
    0.0
  ],
  "windowPos": [
    0.0,
    0.0
  ],
  "zoom": 1.25,
  "invertZoom": false,
  "cableOpacity": 0.420000106,
  "cableTension": 0.5,
  "allowCursorLock": true,
  "realTime": false,
  "sampleRate": 44100.0,
  "threadCount": 3,
  "paramTooltip": true,
  "cpuMeter": false,
  "lockModules": false,
  "frameSwapInterval": 1,
  "autosavePeriod": 15.0,
  "patchPath": "",
  "cableColors": [
    "#c9b70e",
    "#0c8e15",
    "#c91847",
    "#0986ad"
  ]
}
mhetrick commented 4 years ago

Getting a crash as well when changing the frequency range:

{
  "id": 17,
  "plugin": "AudibleInstruments",
  "version": "1.0.0",
  "model": "Tides2",
  "params": [
    {
      "id": 0,
      "value": 0.0
    },
    {
      "id": 1,
      "value": 0.0
    },
    {
      "id": 2,
      "value": 0.0
    },
    {
      "id": 3,
      "value": -30.1919975
    },
    {
      "id": 4,
      "value": 0.5
    },
    {
      "id": 5,
      "value": 0.652000368
    },
    {
      "id": 6,
      "value": 0.0
    },
    {
      "id": 7,
      "value": 0.840999961
    },
    {
      "id": 8,
      "value": 0.0
    },
    {
      "id": 9,
      "value": 0.0
    },
    {
      "id": 10,
      "value": 0.0
    },
    {
      "id": 11,
      "value": 0.0
    },
    {
      "id": 12,
      "value": 0.0
    }
  ],
  "rightModuleId": 13,
  "data": {
    "range": 1,
    "output": 3,
    "ramp": 1
  }
}
Kautenja commented 4 years ago

I'm also seeing a crash: when randomizing the tidal modulator 2, a segmentation fault always occurs after some time. No inputs or outputs need to be patched to reproduce the issue, just the module itself. ~When I comment out the line range = random::u32() % 3; in the onRandomize function, the module no longer crashes when I hold down the randomize function.~

Edit: nope, still crashes actually

tomsynth commented 3 years ago

Turn the SMOOTHNESS knob all the way to the RIGHT . then click the top left button a couple times. seems to crash it every time.

Kautenja commented 3 years ago

The following patch file for me is in a simple state with only Tides2 with locked parameters that will consistently crash when the patch file is loaded and the "frequency range" is set to red by pressing the button.

{
  "version": "1.dev.476a49b",
  "modules": [
    {
      "id": 8,
      "plugin": "Core",
      "version": "1.1.6",
      "model": "Notes",
      "params": [],
      "leftModuleId": 149,
      "text": "To crash, just change the ramp mode to red.\n\n\n\n\nTo get to the current state:\n1. Bring Frequency all the way down\n2. bring smoothness all the way up\n3. send slope to one side.\n4. set frequency range to red\n5. set frequency range back to yellow\n5. send slope to the other side.\n6. send frequency range to red\n7. crash\n",
      "pos": [
        14,
        0
      ]
    },
    {
      "id": 149,
      "plugin": "AudibleInstruments",
      "version": "1.3.1",
      "model": "Tides2",
      "params": [
        {
          "id": 0,
          "value": 0.0
        },
        {
          "id": 1,
          "value": 0.0
        },
        {
          "id": 2,
          "value": 0.0
        },
        {
          "id": 3,
          "value": -48.0
        },
        {
          "id": 4,
          "value": 0.5
        },
        {
          "id": 5,
          "value": 1.0
        },
        {
          "id": 6,
          "value": 0.0
        },
        {
          "id": 7,
          "value": 0.5
        },
        {
          "id": 8,
          "value": 0.0
        },
        {
          "id": 9,
          "value": 0.0
        },
        {
          "id": 10,
          "value": 0.0
        },
        {
          "id": 11,
          "value": 0.0
        },
        {
          "id": 12,
          "value": 0.0
        }
      ],
      "rightModuleId": 8,
      "data": {
        "range": 1,
        "output": 0,
        "ramp": 1
      },
      "pos": [
        0,
        0
      ]
    }
  ],
  "cables": []
}

To reproduce the patch / seg fault:

  1. Drop Tides onto the rack
  2. Bring frequency all the way down
  3. Bring smoothness all the way up
  4. Bring slope all the way down
  5. Change frequency range from yellow to red
  6. Crash

EDIT:

This is reproducible for me on both MacOS and Ubuntu, but I have not tried a Windows machine.

spectromas commented 3 years ago

To reproduce the patch / seg fault:

1. Drop Tides onto the rack

2. Bring frequency all the way down

3. Bring smoothness all the way up

4. Bring slope all the way down

5. Change frequency range from yellow to red

6. Crash

EDIT:

This is reproducible for me on both MacOS and Ubuntu, but I have not tried a Windows machine.

I can reproduce this on windows and linux.

Kautenja commented 3 years ago

I dug into the code for a little while and discovered that it results from the call to the (PolySlopeGenerator)::Fold (within the call to Render) being passed an index that evaluates to a negative number inside stmlib::Interpolate when attempting to lookup a value in a table, thus yielding the segmentation fault. This happens on the exact sample that the frequency range changes from yellow to red when I test with my patch file.

tdaonp commented 2 years ago

Hi,

I know it is an old topic, but I have the same issue in the latest version. Is there an update on this bug?

Info: Ubuntu Studio (based on Ubuntu 20.04.2 LTS), VCV Rack v1.1.6, Tidal Modulator 2 v1.5.0.

Crash log: _[535.694 fatal src/main.cpp:45] Fatal signal 11. Stack trace: 8: /home/henk/opt/Rack/Rack() [0x56d2b1] 7: /lib/x86_64-linux-gnu/libc.so.6(+0x46210) [0x7f7de1ee5210] 6: /home/henk/.Rack/plugins-v1/AudibleInstruments/plugin.so(_ZN6tides218PolySlopeGenerator18RenderInternal_RAMILNS_8RampModeE1ELNS_10OutputModeE3ELNS_5RangeE1EEEvfffffPKhPKfPNS0_12OutputSampleEm+0x50c) [0x7f7dd675383a] 5: /home/henk/.Rack/plugins-v1/AudibleInstruments/plugin.so(_ZN6Tides27processERKN4rack6engine6Module11ProcessArgsE+0x5e1) [0x7f7dd6751e61] 4: /home/henk/opt/Rack/Rack() [0x5b5da3] 3: /home/henk/opt/Rack/Rack() [0x5b84af] 2: /lib/x86_64-linux-gnu/libstdc++.so.6(+0xd7172) [0x7f7de22d4172] 1: /lib/x86_64-linux-gnu/libpthread.so.0(+0x9609) [0x7f7de2cdf609] 0: /lib/x8664-linux-gnu/libc.so.6(clone+0x43) [0x7f7de1fc1293]

The crash happens cycling the Frequency Range (top left mode button). It is a persistent issue every time I cycle the modes a couple of times.

If more info or testing is required, I'm happy to help solve this issue so please let me know.

Kind regards,

Henk

spectromas commented 4 months ago

To reproduce the patch / seg fault:

1. Drop Tides onto the rack

2. Bring frequency all the way down

3. Bring smoothness all the way up

4. Bring slope all the way down

5. Change frequency range from yellow to red

6. Crash

EDIT: This is reproducible for me on both MacOS and Ubuntu, but I have not tried a Windows machine.

I can reproduce this on windows and linux.

This is still reproducible. I thought that v2 of Rack somehow fixed it but I was wrong.

[27.224 info src/app/Browser.cpp:89 chooseModel] Creating module Audible Instruments Tidal Modulator 2
[27.228 info src/app/Browser.cpp:93 chooseModel] Creating module widget Audible Instruments Tidal Modulator 2
[30.009 info src/patch.cpp:254 saveAutosave] Saving autosave /home/alex/.Rack2/autosave/patch.json
[30.011 info src/settings.cpp:498 save] Saving settings /home/alex/.Rack2/settings.json
[45.019 info src/patch.cpp:254 saveAutosave] Saving autosave /home/alex/.Rack2/autosave/patch.json
[45.021 info src/settings.cpp:498 save] Saving settings /home/alex/.Rack2/settings.json
[53.542 fatal adapters/standalone.cpp:49 fatalSignalHandler] Fatal signal 11. Stack trace:
14: /home/alex/.local/share/VCV/Rack2Pro/Rack() [0x4043ed]
13: /usr/lib/libc.so.6(+0x3c770)
12: /home/alex/.Rack2/plugins-lin-x64/AudibleInstruments/plugin.so(void tides2::PolySlopeGenerator::RenderInternal_RAM<(tides2::RampMode)1, (tides2::OutputMode)0, (tides2::Range)1>(float, float, float, float, float, unsigned char const*, float const*, tides2::PolySlopeGenerator::OutputSample*, unsigned long)+0x240)
11: /home/alex/.Rack2/plugins-lin-x64/AudibleInstruments/plugin.so(Tides2::process(rack::engine::Module::ProcessArgs const&)+0x64b)
10: ./libRack.so(rack::engine::Module::doProcess(rack::engine::Module::ProcessArgs const&)+0x9dc)
9: ./libRack.so(rack::engine::Engine::stepBlock(int)+0x779)
8: ./libRack.so(rack::audio::Device::processBuffer(float const*, int, float*, int, int)+0x183)
7: ./libRack.so(rack::RtAudioDevice::rtAudioCallback(void*, void*, unsigned int, double, unsigned int, void*)+0xa3)
6: ./libRack.so(+0x7b0a55)
5: ./libRack.so(+0x7b0d81)
4: /usr/lib/libjack.so.0(+0x170a6)
3: /usr/lib/spa-0.2/support/libspa-support.so(+0x83f5)
2: /usr/lib/libpipewire-0.3.so.0(+0x45db2)
1: /usr/lib/libc.so.6(+0x8b55a)
0: /usr/lib/libc.so.6(+0x108a3c)