summaryrefslogtreecommitdiffstats
path: root/src/multimedia/doc/src/spatialaudiooverview.qdoc
blob: 1502829f2cd72ba240e2dcfeba0f7429655472b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
/****************************************************************************
**
** Copyright (C) 2022 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt for Multimedia module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 3 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL3 included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 3 requirements
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 2.0 or (at your option) the GNU General
** Public license version 3 or any later version approved by the KDE Free
** Qt Foundation. The licenses are as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
** https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/

/*!
\page spatialaudiooverview.html
\title Spatial Audio Overview
\brief Support for spatial audio.

The Qt Multimedia API provides a number of classes that allow the creation of
three dimensional sound scene. It is defined by objects located in 3D space
that emit sound and surrounding geometry that can be modelled using
one or several rooms. Finally a listener can be placed into this
sound scene at a specified position and orientation.

There are both C++ and QML APIs that can be used.

\section1 Creating a sound scene

To create the sound scene, one first instantiates a \l QSpatialAudioEngine. This engine
processes input sound data and geometries to create a realistic
representation of the sound scene as it would be experienced by a person placed
at a specific location inside the scene.

The \l QSpatialAudioEngine::OutputMode property can be used to optimize the output either
for headphones using binaural (virtual 3D) rendering or for a stereo or surround speaker
configuration.

The output device can be selected using \l QSpatialAudioEngine::outputDevice property.

Once the engine is set up, we can place various sound objects into the scene by creating
\l QSpatialAudioSoundSource objects and specifying a url to a sound file using the \l
QSpatialAudioSoundSource::source property.

\l QSpatialAudioListener can be used to define the position and orientation of a person
listening to the sound scene. At max one listener per engine can be used. If no listener
is specified, the engine assumes that the listener is at the origin of the coordinate system
facing into a positive z direction, with positive y pointing upwards.

In addition to sound sources and a listener, you can define a geometry that influences how the
sound is being experienced by the listener through a set of \l QSpatialAudioRoom objects. Rooms
are rectangular and support a wide variety of materials for each wall giving a different experience
with different sound reflections and reverb. Room effects will get applied if the listener is
located inside one of the rooms. If he is inside multiple rooms, the room with the smallest
geometrical volume will take precedence.

If you need some stereo overlay that is independent of the position and orientation of
the listener (such as background music or a voice-over), you can use
\l QSpatialAudioStereoSource to create the sound overlay.

\section1 Reference Documentation

\section2 C++ Classes

\annotatedlist multimedia_spatialaudio

\section2 QML Types

\annotatedlist quick3d_spatialaudio

*/