diff --git a/docs/api/concepts.rst b/docs/api/concepts.rst index 68718935..d127561b 100644 --- a/docs/api/concepts.rst +++ b/docs/api/concepts.rst @@ -6,14 +6,15 @@ Architecture and concepts The overall architecture of Mopidy is organized around multiple frontends and backends. The frontends use the core API. The core actor makes multiple backends -work as one. The backends connect to various music sources. Both the core actor -and the backends use the audio actor to play audio and control audio volume. +work as one. The backends connect to various music sources. The core actor use +the mixer actor to control volume, while the backends use the audio actor to +play audio. .. digraph:: overall_architecture "Multiple frontends" -> Core Core -> "Multiple backends" - Core -> Audio + Core -> Mixer "Multiple backends" -> Audio @@ -93,7 +94,15 @@ Audio ===== The audio actor is a thin wrapper around the parts of the GStreamer library we -use. In addition to playback, it's responsible for volume control through both -GStreamer's own volume mixers, and mixers we've created ourselves. If you -implement an advanced backend, you may need to implement your own playback -provider using the :ref:`audio-api`. +use. If you implement an advanced backend, you may need to implement your own +playback provider using the :ref:`audio-api`. + + +Mixer +===== + +The mixer actor is responsible for volume control and muting. The default +mixer use the audio actor to control volume in software. The alternative +implementations are typically independent of the audio actor, but instead use +some third party Python library or a serial interface to control other forms +of volume controls.