Stochastic Telegraph Announcements

StochasticTelegraphMahlen Morris fabulous module and great combo now!

problem is that Brainwash (I think?!) crashed vcvrack (intel mac) sometimes. this is the issue- made a rig using it and the others (had no issue with the others in loop pack) - saved it - when loading sometimes crashes vcvrack2 on load, sometimes it doesnt. its no big deal because once in 2-3 loads it works but still… maybe it can be fixed. thank you!

…and here is the problematic file: looper_stochastic_v5_Brainwash.vcv (4.7 KB)

1 Like

I’m assuming that Simpliciter has a file it loads on startup, so after a few loads I assigned it one.

But even after doing that, after 5-10 startups, i never saw it crash.

Can you post the log.txt file that you get after a crash (I believe it would be found in ~/Library/Application Support/Rack2/) ?

mahlen

Mahlen: here it is! log.txt (107.9 KB)

I should mention that I was running on Windows, not Intel mac.

Here’s the exception that got thrown in that log.txt:

[9.603 info src/window/Window.cpp:52 loadFile] Loaded font /Users/wakax/Library/Application Support/Rack2/plugins-mac-x64/NYSTHI/res/fonts/Roboto_Condensed/RobotoCondensed-Bold.ttf
[9.604 info src/window/Window.cpp:52 loadFile] Loaded font /Users/wakax/Library/Application Support/Rack2/plugins-mac-x64/ImpromptuModular/res/fonts/Segment14.ttf
[10.074 fatal adapters/standalone.cpp:49 fatalSignalHandler] Fatal signal 11. Stack trace:
14: Rack(fatalSignalHandler(int)+27)
13: libsystem_platform.dylib(_sigtramp+26)
12: libsystem_malloc.dylib(free+96)
11: libRack.dylib(rack::engine::Module::doProcess(rack::engine::Module::ProcessArgs const&)+116)
10: libRack.dylib(rack::engine::Engine::stepBlock(int)+772)
9: libRack.dylib(rack::audio::Device::processBuffer(float const*, int, float*, int, int)+348)
8: libRack.dylib(rack::RtAudioDevice::rtAudioCallback(void*, void*, unsigned int, double, unsigned int, void*)+123)
7: libRack.dylib(RtApiCore::callbackEvent(unsigned int, AudioBufferList const*, AudioBufferList const*)+348)
6: libRack.dylib(callbackHandler(unsigned int, AudioTimeStamp const*, AudioBufferList const*, AudioTimeStamp const*, AudioBufferList*, AudioTimeStamp const*, void*)+21)
5: CoreAudio(HALC_ProxyIOContext::IOWorkLoop()+5021)
4: CoreAudio(HALC_ProxyIOContext::IOThreadEntry(void*)+128)
3: CoreAudio(HALB_IOThread::Entry(void*)+72)
2: libsystem_pthread.dylib(_pthread_body+340)
1: libsystem_pthread.dylib(_pthread_body+0)
0: libsystem_pthread.dylib(thread_start+13)

There’s nothing here to suggest that Brainwash or any other specific module is involved in this crash. That doesn’t rule out a problem on my end, of course! But it doesn’t point to it either.

And given that the crash sometimes does not happen, I don’t even have a “de-install/re-install plugin X” idea for you.

I’ll suggest you send the log.txt and the patch to support@vcvrack.com.

Good luck!

1 Like

I decided to try this on my Debian Linux system. I got the crash to happen also.

I started with the patch above from @nate.reeves called looper_stochastic_v5_Brainwash.vcv. I loaded a WAV file into Simpliciter, set my audio device and let it play a while. No problem. Then I closed the patch and opened it again. It crashed in 0.439 seconds of opening.

[0.439 fatal adapters/standalone.cpp:49 fatalSignalHandler] Fatal signal 11. Stack trace:
10: /home/don/Rack/2.6.0/Rack() [0x404c5b]
9: /lib/x86_64-linux-gnu/libc.so.6(+0x38dd0)
8: /home/don/.local/share/Rack2/plugins-lin-x64/StochasticTelegraph/plugin.so(Brainwash::process(rack::engine::Module::ProcessArgs const&)+0x220)
7: ./libRack.so(rack::engine::Module::doProcess(rack::engine::Module::ProcessArgs const&)+0xb62)
6: ./libRack.so(rack::engine::Engine::stepBlock(int)+0x461)
5: ./libRack.so(rack::audio::Device::processBuffer(float const*, int, float*, int, int)+0x13b)
4: ./libRack.so(rack::RtAudioDevice::rtAudioCallback(void*, void*, unsigned int, double, unsigned int, void*)+0x9a)
3: ./libRack.so(+0xa55ad1)
2: ./libRack.so(+0xa55f45)
1: /lib/x86_64-linux-gnu/libpthread.so.0(+0x7ea7)
0: /lib/x86_64-linux-gnu/libc.so.6(clone+0x3f)

The crash happens inside Brainwash::process(), so that suggests the first place to look, although it doesn’t by itself prove fault for the crash belongs to Brainwash.

I repeated opening VCV Rack with this patch a few times. It crashes about 1/3 or 1/4 of the time.

I hope this helps!

1 Like

Update: I added some debug prints and I may have found something. I changed BrainwashThread::RecordSample to

  void RecordSample(int position, float left, float right) {
    if (position >= max_sample_count) {
      return;
    }
    INFO("static_left=%p, static_right=%p, position=%d, left=%g, right=%g", static_left, static_right, position, left, right);
    static_left[position] = left;
    INFO("survived left");
    static_right[position] = right;
    INFO("survived right");
  }

Reproduced the crash and I can see the pointers static_left and static_right are null when it tries to write to them. This happens when Brainwash::process is called 85 times.

[1.635 info src/Brainwash.cpp:217 process] before worker->RecordSample: worker = 0x368ee040
[1.635 info src/Brainwash.cpp:52 RecordSample] static_left=(nil), static_right=(nil), position=83, left=-0.066465, right=-0.0562251
[1.637 fatal adapters/standalone.cpp:49 fatalSignalHandler] Fatal signal 11. Stack trace:
10: /home/don/Rack/2.6.0/Rack() [0x404c5b]
9: /lib/x86_64-linux-gnu/libc.so.6(+0x38dd0)
8: /home/don/.local/share/Rack2/plugins-lin-x64/StochasticTelegraph/plugin.so(Brainwash::process(rack::engine::Module::ProcessArgs const&)+0x437)
7: ./libRack.so(rack::engine::Module::doProcess(rack::engine::Module::ProcessArgs const&)+0xb62)
6: ./libRack.so(rack::engine::Engine::stepBlock(int)+0x461)
5: ./libRack.so(rack::audio::Device::processBuffer(float const*, int, float*, int, int)+0x13b)
4: ./libRack.so(rack::RtAudioDevice::rtAudioCallback(void*, void*, unsigned int, double, unsigned int, void*)+0x9a)
3: ./libRack.so(+0xa55ad1)
2: ./libRack.so(+0xa55f45)
1: /lib/x86_64-linux-gnu/libpthread.so.0(+0x7ea7)
0: /lib/x86_64-linux-gnu/libc.so.6(clone+0x3f)

Complete log attached:

log.txt (79.1 KB)

2 Likes

Bless you, @cosinekitty, for making that effort. I noticed that this patch starts recording on startup and thought, huuuh, I wonder if I’m doing the right thing then…and, I’m not. There’s a race condition when the patch starts Brainwash recording from the very start, which explains why it sometimes works, and sometimes doesn’t. Unclear why it never repro’d on my windows machine, but whatever.

I’ll fix this up and do a new release. Thanks, @nate.reeves, for mentioning it.

2 Likes

Great! Once you get a fix pushed to GitHub, I will be happy to re-test if that is helpful.

great detective nose, [cosinekitty] and thank you Mahlen for the next fix. I will use it in live acts so its good to know is not/less buggy…

Updated builds are here.

When I get a thumbs up from you, I’ll send out for publishing to the library.

5 Likes

Mahlen! bigups. problem solved! no crashes here with this build.

big thanks to you and Don Cross.

2 Likes

I built locally from your branch 2.0.19-Brainwash-bug-fix, and the build warnings are all gone, plus I was able to start up the test patch 10 times in a row without a crash. It looks good here in Linux world!

2 Likes

Good to hear, and again, thanks for bringing it up.

And if you ever publish video of you using this in your live acts, I would be thrilled to see it in action.

2 Likes

This fix should now be live in the library in version 2.0.19.

3 Likes

:frowning: StochasticTelegraph

bad news… in latest build Brainwash is fixed but VENN is buggy now:(

it crashes rack2 on win10 and mac (intel) when added in any rack…:frowning:

thanks

Sadly, I’m thousands of miles from my development environment for the next few weeks, so I’m powerless to intervene. Anything interesting at the bottom of log.txt in your user directory?

1 Like

@nate.reeves, can you post an example patch that crashes with Venn? I tried using Venn on my system but there is no crash. I want to see if I can reproduce the crash here. Maybe I can help figure something out while @StochasticTelegraph is traveling.

2 Likes

found the culprit! problem solved. I deleted Stochastic dir and forced vcvrack2 to reinstall the modules. (latest) funny enough - all works ok now… it could be that I had the previous nightly build before. and that had issues.

big thanks for help! problem solved!!! if anyone has this issue- do as I did.

3 Likes

These modules are Stellar. Thank you so much. My fav sample mangling modules on VCV. Very playable, intuitive - i get nice organic results. Would be a dream to be able to use them on 4ms Meta🥳

2 Likes