    digraph Ardour {
    	rankdir = BT
    	node [shape=box,arrowhead=normal,arrowtail=normal]

    	Evoral_Control [label=<
    Evoral::Control
ControlList >] Evoral_ControlSet [label=< Evoral::ControlSet
_control_lock
map<Parameter, Control> >] Evoral_Sequence [label=< Evoral::Sequence
_lock
read_lock(): _lock
write_lock(): _lock, _control_lock
Notes, Pitches, SysExes, PatchChanges >] Evoral_ControlList [label=_lock>] ARDOUR_MidiModel [label=< ARDOUR::MidiModel
edit_lock(): source mutex(), _lock, _control_lock
write_lock(): _lock, _control_lock
    >]

    	"ARDOUR::Automatable" -> Evoral_ControlSet;
    	"ARDOUR::AutomatableSequence" -> "ARDOUR::Automatable";
    	"ARDOUR::AutomatableSequence" -> Evoral_Sequence;
    	Evoral_Sequence -> Evoral_ControlSet;
    	ARDOUR_MidiModel -> "ARDOUR::AutomatableSequence";

    	rank=same {Evoral_ControlSet; Evoral_Control; Evoral_ControlList}

    	Evoral_Control -> Evoral_ControlList [arrowhead=box];
    	Evoral_ControlSet -> Evoral_Control [arrowhead=box];
    }