I’m tracking down this issue on Logic 10.7.8 and I’m seeing the EXC_BAD_ACCESS crash, under JUCE 6, on line 1949 of juce_AU_Wrapper.mm on the first pass of the process callback:
const auto send = [&]
{
midiCallback.midiOutputCallback (midiCallback.userData, &lastTimeStamp, 0, packetList);
};
That calls a method on APMIDIRouter::handleSetProperty which shows me this text in the stack trace:
MIDI2Util::LegacyMIDIConverter<MIDI::MIDI_1_to_2_Translator>::convertLegacyDataToEventList(unsigned char const*, unsigned int, unsigned long long, caulk::inplace_function<void (MIDI::EventList const&), 48ul, 8ul>)
The end of the trace lands on:
AudioToolboxCore`caulk::inplace_function_detail::vtable<void, MIDI::EventList const&>::vtable<APMIDIRouter::handleSetProperty(void*, AudioUnitPluginDispatch const&, unsigned int, unsigned int, unsigned int, void const*, unsigned int)::$_17::operator()(void*, AudioTimeStamp const*, unsigned int, MIDIPacketList const*) const::'lambda'(MIDIPacket const&)::operator()(MIDIPacket const&) const::'lambda'(MIDI::EventList const&)>(caulk::inplace_function_detail::wrapper<APMIDIRouter::handleSetProperty(void*, AudioUnitPluginDispatch const&, unsigned int, unsigned int, unsigned int, void const*, unsigned int)::$_17::operator()(void*, AudioTimeStamp const*, unsigned int, MIDIPacketList const*) const::'lambda'(MIDIPacket const&)::operator()(MIDIPacket const&) const::'lambda'(MIDI::EventList const&)>)::'lambda'(void*, MIDI::EventList const&)::__invoke(void*, MIDI::EventList const&):
and shows AUOOPRenderingServer-23468019 (17): EXC_BAD_ACCESS (code=1, address=0x10)
No issue when disabling MIDI 2.0 in Settings.
Confirmed that this is not an issue in Logic 10.7.4 with MIDI 2.0 enabled on an M1 Mac.