How to send messages between components?

Building on what Gavin has said, I think the key design pattern for you to consider here is broadcasters / listeners. We’ve been suggesting you use ValueTree::Listener, but if you don’t like that data model then maybe you should think about other listener options. The basic idea is that you should have one central system which keeps track of which time points are selected, and broadcasts a change message any time this changes. Your two timeline views can then pick up the change messages and react to them accordingly. To accomplish this, you can either use ValueTree::Listener, ChangeListener, or you could make a custom listener and then use ListenerList to keep track of it.