Is It Feasible to Access Extended Future MIDI Data?

Hello JUCE community.

I’m new to using JUCE and am working on a synthesizer that requires access to the upcoming 5-10 seconds of MIDI signal prior to processing.

My current approach is considering a lookahead buffer of approximately 5 seconds. However, I’m concerned this might introduce significant latency to the track. Another idea is to require users to play the MIDI sequence first, then have the plugin process the entire sequence afterward, similar to how Melodyne operates outside of ARA.

I’ve thought about a MIDI variant of ARA as a potential solution, but as far as I understand, ARA is primarily for audio.

Does anyone have suggestions or a more efficient method to achieve this?

I would also like to design a plugin which would shift midi messages “backwards” in time. I have come across at least three posts whose crux is how best to impliment this functionality or if this is even possible. Did you ever come up with a solution to this?