Closed diemoschwarz closed 1 year ago
Thank you
note_to_pitch crash is interesting. May I just ask a couple of questions
1: Are you using any microtuning capabilityes/ MTS-ESP? Entonal studio? etc... Or a hand loaded SCL/KBM 2: Is the midi you are rendering in any way odd or extreme (black midi, notes outside 0..127; lots of channels)? 3: Anything unusual about your patch? Formula modulator or what not? 4: If the answer to 2 or 3 is yes, would you be willing to share the midi or patch (as a zip file here?)
I'll have to learn how to freeze a track in live 11 but I have a demo of it on my Mac so can give it a whirl but a few framing questions first would be great. And holiday weekend here so will be a few days before I look anyway.
Thanks!
Hi, thanks for the quick response!
Thanks. And only when you freeze right? The live performance was fine?
How odd. I wonder if freeze changes the way events are delivered. Will definitely take a look and have tagged the issue into our 1.1.2 release so we won't forget it (but I won't get to it next 48 hours most likely)
Ahh bummer. With this version of live on ARM on osX 12.5.1 I can freeze both the tracks in your project without a crash.
11.0.2 is a very old live and they had some gnarly MPE bugs (including some we helped them fix that Surge tickled - but didn't crash). Is there any way you could upgrade your live version or are you stuck there?
yes, only when freezing (right click on the 2nd track -> freeze track), playing is fine and a lot of fun! I just verified: The crash only happens when there are 2 midi clips in the track, when starting the 2nd clip, since the wav for the 1st clip is always written.
Thanks for the tip with 11.1, will upgrade. Cheers and have a nice weekend!
OK! If the upgrade fixes it lets close this; if not lets compare other aspects of our system to see if we can find it! Thanks
Hi Paul, same crash with Live 11.1.1.
Here is the patch, just in case, and of course MPE has to be enabled in Surge (in Live it had to be enabled for the MIDI input device, but it seems to be stored with the track):
untame FMPE 1.fxp.zip
Thanks for checking, when you have the time, it is not at all urgent for me.
Best!
Process: Live [74965]
Path: /Applications/Ableton Live 11 Suite.app/Contents/MacOS/Live
Identifier: com.ableton.live
Version: 11.1.1 [2022-03-03_2dca2b8193] (11.1.1 [2022-03-03_2dca2b8193])
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: Live [74965]
User ID: 502
Date/Time: 2022-09-02 10:29:14.895 +0200
OS Version: Mac OS X 10.14.6 (18G5033)
Report Version: 12
Bridge OS Version: 4.5 (17P5300)
Anonymous UUID: D443A25F-1411-ED51-C682-69C022D6C765
Sleep/Wake UUID: 04FBC9C4-E05E-4940-9CB0-C3255D96C52A
Time Awake Since Boot: 47000 seconds
Time Since Wake: 8800 seconds
System Integrity Protection: disabled
Crashed Thread: 0 MainThread Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0xffffffff78307500
Exception Note: EXC_CORPSE_NOTIFY
Termination Signal: Segmentation fault: 11
Termination Reason: Namespace SIGNAL, Code 0xb
Terminating Process: exc handler [74965]
VM Regions Near 0xffffffff78307500:
--> shared memory 00007ffffff94000-00007ffffff95000 [ 4K] r-x/r-x SM=SHM
Thread 0 Crashed:: MainThread Dispatch queue: com.apple.main-thread
0 org.surge-synth-team.surge-xt 0x0000000173c0be4b SurgeStorage::note_to_pitch(float) + 139
1 org.surge-synth-team.surge-xt 0x0000000173d09d65 FM2Oscillator::process_block(float, float, bool, bool, float) + 149
2 org.surge-synth-team.surge-xt 0x0000000173c66833 SurgeVoice::process_block(QuadFilterChainState&, int) + 387
3 org.surge-synth-team.surge-xt 0x0000000173c2d65f SurgeSynthesizer::process() + 2719
4 org.surge-synth-team.surge-xt 0x00000001735906c5 SurgeSynthProcessor::processBlock(juce::AudioBuffer<float>&, juce::MidiBuffer&) + 1429
5 org.surge-synth-team.surge-xt 0x0000000173578d51 JuceAU::processBlock(juce::AudioBuffer<float>&, juce::MidiBuffer&) + 145
6 org.surge-synth-team.surge-xt 0x000000017356e966 JuceAU::Render(unsigned int&, AudioTimeStamp const&, unsigned int) + 1734
7 org.surge-synth-team.surge-xt 0x000000017357df92 AUBase::DoRenderBus(unsigned int&, AudioTimeStamp const&, unsigned int, AUOutputElement*, unsigned int, AudioBufferList&) + 242
8 org.surge-synth-team.surge-xt 0x000000017357db42 AUBase::DoRender(unsigned int&, AudioTimeStamp const&, unsigned int, unsigned int, AudioBufferList&) + 594
9 org.surge-synth-team.surge-xt 0x0000000173569ace AUMethodRender(void*, unsigned int*, AudioTimeStamp const*, unsigned int, unsigned int, AudioBufferList*) + 46
10 com.ableton.live 0x000000010979aa52 0x1071f8000 + 39463506
Thanks for the report! By the way it would be better to attach the crashlogs as txt files rather than inlining them, which makes reading the issue a scrolling chore. Thanks for understanding!
good point! I edited the logs to leave only the interesting stuff, and attached the full log (as zip, since GH is picky about file types, and with some effort, since the upload often fails).
Much obliged!
And yeah thanks for the report. Like I said we've tagged this into the 1.1.2 milestone so will definitely look at it in Sept! I wonder what it will turn out to be!!!
Can somebody tell me the exact steps to do in Ableton Live? I want to test it, I have version 11.2.5 (the very latest) on windows but I'm an Ableton beginner and don't know what to do exactly :)
I've been unable to reproduce this with the latest versions of live either
New evidence, I get a sure crash with this Live set and Surge patch, around measure 48. The MPE sequence has to be placed late in the arrangement (measure 32), if it starts at 0 it plays without crash. surge-mpe-crash.als.zip Clavinet MPE.fxp.zip Live 11.2.6, Surge 1.1.1, MacOS 10.14.6 Intel
Thread 16 Crashed:: com.apple.audio.IOThread.client
0 org.surge-synth-team.surge-xt 0x000000015e098f8e SurgeStorage::note_to_pitch_ignoring_tuning(float) + 126
1 org.surge-synth-team.surge-xt 0x000000015e1f3ec2 StringOscillator::configureLpAndHpFromTone(float) + 322
2 org.surge-synth-team.surge-xt 0x000000015e1f7063 void StringOscillator::process_block_internal<false, (StringOscillator::exciter_modes)0, 1>(float, float, bool, float) + 1619
3 org.surge-synth-team.surge-xt 0x000000015e0f3caa SurgeVoice::process_block(QuadFilterChainState&, int) + 1530
4 org.surge-synth-team.surge-xt 0x000000015e0ba65f SurgeSynthesizer::process() + 2719
5 org.surge-synth-team.surge-xt 0x000000015da1d6c5 SurgeSynthProcessor::processBlock(juce::AudioBuffer<float>&, juce::MidiBuffer&) + 1429
6 org.surge-synth-team.surge-xt 0x000000015da05d51 JuceAU::processBlock(juce::AudioBuffer<float>&, juce::MidiBuffer&) + 145
7 org.surge-synth-team.surge-xt 0x000000015d9fb966 JuceAU::Render(unsigned int&, AudioTimeStamp const&, unsigned int) + 1734
8 org.surge-synth-team.surge-xt 0x000000015da0af92 AUBase::DoRenderBus(unsigned int&, AudioTimeStamp const&, unsigned int, AUOutputElement*, unsigned int, AudioBufferList&) + 242
9 org.surge-synth-team.surge-xt 0x000000015da0ab42 AUBase::DoRender(unsigned int&, AudioTimeStamp const&, unsigned int, unsigned int, AudioBufferList&) + 594
10 org.surge-synth-team.surge-xt 0x000000015d9f6ace AUMethodRender(void*, unsigned int*, AudioTimeStamp const*, unsigned int, unsigned int, AudioBufferList*) + 46
just noticed that 1.1.2 is out, downloading now
nope, still crashing with 1.1.2! What's interesting is that one doesn't need to play the sequence from the start at 32, but anywhere from closely before 48 will crash there.
Thread 5 Crashed:: AudioCalc
0 org.surge-synth-team.surge-xt 0x00000001647cf9fe SurgeStorage::note_to_pitch_ignoring_tuning(float) + 126
1 org.surge-synth-team.surge-xt 0x0000000164931a22 StringOscillator::configureLpAndHpFromTone(float) + 322
2 org.surge-synth-team.surge-xt 0x0000000164934bc3 void StringOscillator::process_block_internal<false, (StringOscillator::exciter_modes)0, 1>(float, float, bool, float) + 1619
3 org.surge-synth-team.surge-xt 0x000000016482b67f SurgeVoice::process_block(QuadFilterChainState&, int) + 3135
4 org.surge-synth-team.surge-xt 0x00000001647f1152 SurgeSynthesizer::process() + 2914
5 org.surge-synth-team.surge-xt 0x0000000164149fc5 SurgeSynthProcessor::processBlock(juce::AudioBuffer<float>&, juce::MidiBuffer&) + 1429
6 org.surge-synth-team.surge-xt 0x00000001641325f1 JuceAU::processBlock(juce::AudioBuffer<float>&, juce::MidiBuffer&) + 145
7 org.surge-synth-team.surge-xt 0x0000000164128206 JuceAU::Render(unsigned int&, AudioTimeStamp const&, unsigned int) + 1734
8 org.surge-synth-team.surge-xt 0x0000000164137832 AUBase::DoRenderBus(unsigned int&, AudioTimeStamp const&, unsigned int, AUOutputElement*, unsigned int, AudioBufferList&) + 242
9 org.surge-synth-team.surge-xt 0x00000001641373e2 AUBase::DoRender(unsigned int&, AudioTimeStamp const&, unsigned int, unsigned int, AudioBufferList&) + 594
10 org.surge-synth-team.surge-xt 0x000000016412336e AUMethodRender(void*, unsigned int*, AudioTimeStamp const*, unsigned int, unsigned int, AudioBufferList*) + 46
That’s a super interesting stack. I was seeing that in the rack modules if the initial attack was set up improperly but have never seen it in the vst. Thanks - I will take a look next cycle
I can't for the life of me reproduce this at head. So frustrating.
And looking at that stack the only case in which it would explode is if the note pitch went to NaN
I wonder if this is the same problem we fixed with william fields controller smoothing
I really don't want to check isnan on pitch there and note_to_pitch is appropriately bounded for finite numbers.
Gonna need to think a bit more. @diemoschwarz curious if the latest nightly actually exhibits the problem still?
I haven't been able to get it to crash with the nightly so far. Hope it stays this way! Cheers!
OK, we'll close this issue then! Feel free to reopen with new info if it reappears.
Bug Description: Surge XT as instrument on a MIDI track crashes Live 11 when doing "freeze track".
Surge XT Version
Computer Information (please complete the following!):
Additional Information: crash log excerpt: