  This paper introduces the ACCompanion, an expressive accompaniment system.
Similarly to a musician who accompanies a soloist playing a given musical
piece, our system can produce a human-like rendition of the accompaniment part
that follows the soloist's choices in terms of tempo, dynamics, and
articulation. The ACCompanion works in the symbolic domain, i.e., it needs a
musical instrument capable of producing and playing MIDI data, with explicitly
encoded onset, offset, and pitch for each played note. We describe the
components that go into such a system, from real-time score following and
prediction to expressive performance generation and online adaptation to the
expressive choices of the human player. Based on our experience with repeated
live demonstrations in front of various audiences, we offer an analysis of the
challenges of combining these components into a system that is highly reactive
and precise, while still a reliable musical partner, robust to possible
performance errors and responsive to expressive variations.
