testers for random chord sequencer

Hi, I’m almost done with a random chord sequencer I was working on over the past week. I will update this post once I have a build fully ready. If anyone would be interested in testing it before i submit it to the library i’d appreciate it. One specific thing i would like to know is if the knobs/buttons are too small (which can be solved by enlarging the module). In general i would also like to know if the sequencing feels intuitive or not and if the design is off-putting, or if it’s tolerable.


do you have a github we could build it from?

it crushes when connected trigger to trigger input

I would like to try it, but I need win 10 binaries

vcv crashes? the build currently there isn’t final because playback doesn’t work correctly with the trigger input and saving/loading isn’t implemented yet, but i wasn’t seeing it crash when i was testing it. if you send me the patch you’re using i can debug that.

Hello, I have an initial Windows 10 build ready on my github: Release 1.1.0: Fully-featured initial version of randomchordrecorder, adding cpu fix, · terrytheplatypus/Plurm · GitHub . This should fix any possible crashing, as i noticed some incorrect code i had that led to extremely high cpu usage. I don’t have a mac or linux build ready, though i could build a linux version if i get a vm set up.

I can provide a mac build if that helps, if you tell me where to upload it (doesn’t seem possible to upload zip files here).

if you add a google drive link or something like that i can add it to my github release, i’d appreciate that.

Sure, here it is: Plurm Builds - Google Drive

on a very minor note, you can use a cast to get rid of the warnings:

for(int n =0; n < int(occupiedSlots.size()); n++)

or do it “properly”

for(size_t n =0; n < occupiedSlots.size(); n++)

( I do either if those all the time)

Or the new cool kid way:

for (auto slot : occupiedSlots) {

thanks for the tip, i might clean that up

just trying to load the randomchordrecorder
via the stoermelder mb browser crashes VCV here

the stacktrace module loads and works fine

Obviously super unimportant right now. In the future, when you have dozens of modules and hundreds of warnings you are going to get that one warning you wish you didn’t ignore… And will wish you could go back in time…

i don’t use mb browser so i didn’t run into that, thanks for letting me know.

i tried this myself and i didn’t get any error, does it work for you if you open it in the default module browser (not mb)?

yes, it crashes too,

here is an excerpt from the log file:

[116.812 info src/MultiVUMeter.h:40] short 1
[118.358 fatal src/main.cpp:45] Fatal signal 22. Stack trace:
36: ZN4rack10appDestroyEv 0x456435
35: raise 0x8207abe0
34: abort 0x8207f1e0
33: ZN9__gnu_cxx27__verbose_terminate_handlerEv 0x6fc5f170
32: ZN10__cxxabiv111__terminateEPFvvE 0x6fc581b0
31: ZSt9terminatev 0x6fd302b0
30: _cxa_throw 0x6fd39080
29: ZSt21__throw_runtime_errorPKc 0x6fd3a640
28: ZNSt13random_device7_M_initERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE 0x6fcf10f0
27: ZNSt13random_deviceC1Ev 0x7953da20
26: ZN19Randomchordrecorder16getSeededTwisterEv 0x79534880
25: ZN19RandomchordrecorderC1Ev 0x795356b0
24: ZZN4rack11createModelI19Randomchordrecorder25RandomchordrecorderWidgetEEPNS_6plugin5ModelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEN6TModel18createModuleWidgetEv 0x79543520
23: ZN4rack3app11AudioWidget12setAudioPortEPNS_5audio4PortE 0x49839c
22: ZN4rack3app8ModelBox8onButtonERKNS_5event6ButtonE 0x75cbc0
21: ZN4rack6widget6Widget8onButtonERKNS_5event6ButtonE 0x7726f0
20: ZN4rack6widget6Widget8onButtonERKNS_5event6ButtonE 0x7726f0
19: ZN4rack6widget6Widget8onButtonERKNS_5event6ButtonE 0x7726f0
18: ZN4rack2ui12ScrollWidget8onButtonERKNS_5event6ButtonE 0x4a3ed4
17: ZN4rack6widget12OpaqueWidget8onButtonERKNS_5event6ButtonE 0x771cd0
16: ZN4rack3app14BrowserOverlay8onButtonERKNS_5event6ButtonE 0x7530d0
15: ZN4rack6widget12OpaqueWidget8onButtonERKNS_5event6ButtonE 0x771cd0
14: ZN4rack5event5State12handleButtonENS_4math3VecEiii 0x4576c8
13: ZN4rack7updater17isUpdateAvailableEv 0x45914e
12: glfwPlatformUnlockMutex 0x4d78ae
11: CallWindowProcW 0x80f0e460
10: CallWindowProcW 0x80f0e460
9: glPushClientAttrib 0x7a769520
8: CallWindowProcW 0x80f0e460
7: DispatchMessageW 0x80f0e040
6: glfwPlatformPollEvents 0x4daf66
5: ZN4rack6Window3runEv 0x4594ea
4: main 0x781840
3: main 0x781840
2: main 0x781840
1: BaseThreadInitThunk 0x823a7020
0: RtlUserThreadStart 0x824e2630

[123.609 info src/Settings.cpp:69] Saving plugin settings C:\Users\smues\DOCUME~1/Rack/SlimeChild/Substation.json

maybe this helps??

Yes that is helpful, that shows where the issue is happening (random number seeding) but i don’t understand why it’s happening, and i could not reproduce it on my end. I’m not sure if there’s any additional logging I could add that could further help diagnose the issue, or any additional logs you can provide. Are you using windows 10?


yeah, the code looks pretty basic. I wonder what it’s doing when random device constructor seems to be calling some std::string stuff: ZNSt13random_device7_M_initERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE

have you tried demangling the names? Alternatively, can @rsmus7 run this under a debugger?

The code looks so normal, maybe something else is corrupting memory. Are you on a platform where it’s easy to run address sanitizer?