File: CastleSoundEngine.TSoundInfo.html

package info (click to toggle)
castle-game-engine 5.2.0-3
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 185,428 kB
  • sloc: pascal: 260,781; cpp: 1,363; objc: 713; makefile: 537; xml: 496; sh: 480; php: 4
file content (226 lines) | stat: -rw-r--r-- 14,308 bytes parent folder | download
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<title>Castle Game Engine: CastleSoundEngine: Class TSoundInfo</title>
<meta name="generator" content="PasDoc 0.13.0">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="StyleSheet" type="text/css" href="pasdoc.css">
</head>
<body>
<table class="container"><tr><td class="navigation">
<h2>Castle Game Engine</h2><p><a href="introduction.html" class="navigation">Introduction</a></p><p><a href="AllUnits.html" class="navigation">Units</a></p><p><a href="ClassHierarchy.html" class="navigation">Class Hierarchy</a></p><p><a href="AllClasses.html" class="navigation">Classes, Interfaces, Objects and Records</a></p><p><a href="AllTypes.html" class="navigation">Types</a></p><p><a href="AllVariables.html" class="navigation">Variables</a></p><p><a href="AllConstants.html" class="navigation">Constants</a></p><p><a href="AllFunctions.html" class="navigation">Functions and Procedures</a></p><p><a href="AllIdentifiers.html" class="navigation">Identifiers</a></p></td><td class="content">
<a name="TSoundInfo"></a><h1 class="cio">Class TSoundInfo</h1>
<table class="sections wide_list">
<tr>
<td><a class="section" href="#PasDoc-Description">Description</a></td><td><a class="section" href="#PasDoc-Hierarchy">Hierarchy</a></td><td><a class="section" href="#PasDoc-Fields">Fields</a></td><td>Methods</td><td>Properties</td></tr></table>
<a name="PasDoc-Description"></a><h2 class="unit">Unit</h2>
<p class="unitlink">
<a  href="CastleSoundEngine.html">CastleSoundEngine</a></p>
<h2 class="declaration">Declaration</h2>
<p class="declaration">
<code>type TSoundInfo = class(TObject)</code></p>
<h2 class="description">Description</h2>
<p>
Sound information, internally used by <a class="normal" href="CastleSoundEngine.TRepoSoundEngine.html">TRepoSoundEngine</a>.

<p>The fields correspond to appropriate attributes in sounds XML file. All of the fields except Buffer are initialized only by ReadSounds.

<p>From the point of view of end-user the number of sounds is constant for given game and their properties (expressed in <code>TSoundInfo</code> below) are also constant. However, for the sake of debugging/testing the game, and for content designers, the actual values of Sounds are loaded at initialization by ReadSounds (called automatically by ALContextOpen) from sounds XML file, and later can be changed by calling ReadSounds once again during the game (debug menu may have command like &quot;Reload sounds/index.xml&quot;).</p>
<a name="PasDoc-Hierarchy"></a><h2 class="hierarchy">Hierarchy</h2>
<ul class="hierarchy"><li class="ancestor">TObject</li>
<li class="thisitem">TSoundInfo</li></ul><h2 class="overview">Overview</h2>
<a name="PasDoc-Fields"></a><h3 class="summary">Fields</h3>
<table class="summary wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code><b><a  href="CastleSoundEngine.TSoundInfo.html#Name">Name</a></b>: string;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code><b><a  href="CastleSoundEngine.TSoundInfo.html#URL">URL</a></b>: string;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code><b><a  href="CastleSoundEngine.TSoundInfo.html#Gain">Gain</a></b>: Single;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code><b><a  href="CastleSoundEngine.TSoundInfo.html#MinGain">MinGain</a></b>: Single;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code><b><a  href="CastleSoundEngine.TSoundInfo.html#MaxGain">MaxGain</a></b>: Single;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code><b><a  href="CastleSoundEngine.TSoundInfo.html#DefaultImportance">DefaultImportance</a></b>: Cardinal;</code></td>
</tr>
</table>
<h2 class="description">Description</h2>
<h3 class="detail">Fields</h3>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Name"></a><code><b>Name</b>: string;</code></td>
</tr>
<tr><td colspan="2">
<p>
Unique sound name. Empty for the special sound <a class="normal" href="CastleSoundEngine.html#stNone">stNone</a>.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="URL"></a><code><b>URL</b>: string;</code></td>
</tr>
<tr><td colspan="2">
<p>
<code>URL</code> from which to load sound data.

<p>Empty means that the sound data is not defined, so the OpenAL buffer will not be initialized and trying to play this sound (with methods like TSoundEngine.Sound or TSoundEngine.Sound3D) will do nothing. This is useful if you want to use a sound name in code, but you do not have the actual sound file for this yet.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Gain"></a><code><b>Gain</b>: Single;</code></td>
</tr>
<tr><td colspan="2">
<p>
Gain (how loud the sound is). They are mapped directly to respective OpenAL source properties, so see OpenAL specification for exact details what they mean. In short:

<p></p>

<ul class="paragraph_spacing">
  <li><p>Gain scales the sound loudness. Use this to indicate that e.g. a plane engine is louder than a mouse squeak (when heard from the same distance).

<p>Do <i>not</i> make the actual sound data (in wav, ogg and such files) louder/more silent for this purpose. This is usually bad for sound quality. Instead, keep your sound data at max loudness (normalized), and use this <a class="normal" href="CastleSoundEngine.TSoundInfo.html#Gain">Gain</a> property to scale sound.

<p>It can be antything from 0 to +infinity. The default is 1.</p></li>
  <li><p><a class="normal" href="CastleSoundEngine.TSoundInfo.html#MinGain">MinGain</a> and <a class="normal" href="CastleSoundEngine.TSoundInfo.html#MaxGain">MaxGain</a> force a minimum/maximum sound loudness. These can be used to &quot;cheat&quot; around default distance attenuation calculation.

<p>These must be in [0, 1] range. By default <a class="normal" href="CastleSoundEngine.TSoundInfo.html#MinGain">MinGain</a> is 0 and <a class="normal" href="CastleSoundEngine.TSoundInfo.html#MaxGain">MaxGain</a> is 1.</p></li>
</ul>

<p>

<p>Note that Gain value &gt; 1 is allowed. Although OpenAL may clip the resulting sound (after all calculations taking into account 3D position will be done). The resulting sound is also clamped by <a class="normal" href="CastleSoundEngine.TSoundInfo.html#MaxGain">MaxGain</a> (that generally must be in [0, 1], although some OpenAL implementations allow values &gt; 1).

<p>When this sound is used for MusicPlayer.Sound: </p>

<ol class="paragraph_spacing">
  <li value="1"><p><a class="normal" href="CastleSoundEngine.TSoundInfo.html#MinGain">MinGain</a>, <a class="normal" href="CastleSoundEngine.TSoundInfo.html#MaxGain">MaxGain</a> are ignored.</p></li>
  <li value="2"><p>Effective Gain (passed to OpenAL sound source) is the <a class="normal" href="CastleSoundEngine.TMusicPlayer.html#MusicVolume">TMusicPlayer.MusicVolume</a> multiplied by our <a class="normal" href="CastleSoundEngine.TSoundInfo.html#Gain">Gain</a>.</p></li>
</ol>

<p></p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="MinGain"></a><code><b>MinGain</b>: Single;</code></td>
</tr>
<tr><td colspan="2">
<p>
Gain (how loud the sound is). They are mapped directly to respective OpenAL source properties, so see OpenAL specification for exact details what they mean. In short:

<p></p>

<ul class="paragraph_spacing">
  <li><p>Gain scales the sound loudness. Use this to indicate that e.g. a plane engine is louder than a mouse squeak (when heard from the same distance).

<p>Do <i>not</i> make the actual sound data (in wav, ogg and such files) louder/more silent for this purpose. This is usually bad for sound quality. Instead, keep your sound data at max loudness (normalized), and use this <a class="normal" href="CastleSoundEngine.TSoundInfo.html#Gain">Gain</a> property to scale sound.

<p>It can be antything from 0 to +infinity. The default is 1.</p></li>
  <li><p><code>MinGain</code> and <a class="normal" href="CastleSoundEngine.TSoundInfo.html#MaxGain">MaxGain</a> force a minimum/maximum sound loudness. These can be used to &quot;cheat&quot; around default distance attenuation calculation.

<p>These must be in [0, 1] range. By default <code>MinGain</code> is 0 and <a class="normal" href="CastleSoundEngine.TSoundInfo.html#MaxGain">MaxGain</a> is 1.</p></li>
</ul>

<p>

<p>Note that Gain value &gt; 1 is allowed. Although OpenAL may clip the resulting sound (after all calculations taking into account 3D position will be done). The resulting sound is also clamped by <a class="normal" href="CastleSoundEngine.TSoundInfo.html#MaxGain">MaxGain</a> (that generally must be in [0, 1], although some OpenAL implementations allow values &gt; 1).

<p>When this sound is used for MusicPlayer.Sound: </p>

<ol class="paragraph_spacing">
  <li value="1"><p><code>MinGain</code>, <a class="normal" href="CastleSoundEngine.TSoundInfo.html#MaxGain">MaxGain</a> are ignored.</p></li>
  <li value="2"><p>Effective Gain (passed to OpenAL sound source) is the <a class="normal" href="CastleSoundEngine.TMusicPlayer.html#MusicVolume">TMusicPlayer.MusicVolume</a> multiplied by our <a class="normal" href="CastleSoundEngine.TSoundInfo.html#Gain">Gain</a>.</p></li>
</ol>

<p></p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="MaxGain"></a><code><b>MaxGain</b>: Single;</code></td>
</tr>
<tr><td colspan="2">
<p>
Gain (how loud the sound is). They are mapped directly to respective OpenAL source properties, so see OpenAL specification for exact details what they mean. In short:

<p></p>

<ul class="paragraph_spacing">
  <li><p>Gain scales the sound loudness. Use this to indicate that e.g. a plane engine is louder than a mouse squeak (when heard from the same distance).

<p>Do <i>not</i> make the actual sound data (in wav, ogg and such files) louder/more silent for this purpose. This is usually bad for sound quality. Instead, keep your sound data at max loudness (normalized), and use this <a class="normal" href="CastleSoundEngine.TSoundInfo.html#Gain">Gain</a> property to scale sound.

<p>It can be antything from 0 to +infinity. The default is 1.</p></li>
  <li><p><a class="normal" href="CastleSoundEngine.TSoundInfo.html#MinGain">MinGain</a> and <code>MaxGain</code> force a minimum/maximum sound loudness. These can be used to &quot;cheat&quot; around default distance attenuation calculation.

<p>These must be in [0, 1] range. By default <a class="normal" href="CastleSoundEngine.TSoundInfo.html#MinGain">MinGain</a> is 0 and <code>MaxGain</code> is 1.</p></li>
</ul>

<p>

<p>Note that Gain value &gt; 1 is allowed. Although OpenAL may clip the resulting sound (after all calculations taking into account 3D position will be done). The resulting sound is also clamped by <code>MaxGain</code> (that generally must be in [0, 1], although some OpenAL implementations allow values &gt; 1).

<p>When this sound is used for MusicPlayer.Sound: </p>

<ol class="paragraph_spacing">
  <li value="1"><p><a class="normal" href="CastleSoundEngine.TSoundInfo.html#MinGain">MinGain</a>, <code>MaxGain</code> are ignored.</p></li>
  <li value="2"><p>Effective Gain (passed to OpenAL sound source) is the <a class="normal" href="CastleSoundEngine.TMusicPlayer.html#MusicVolume">TMusicPlayer.MusicVolume</a> multiplied by our <a class="normal" href="CastleSoundEngine.TSoundInfo.html#Gain">Gain</a>.</p></li>
</ol>

<p></p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DefaultImportance"></a><code><b>DefaultImportance</b>: Cardinal;</code></td>
</tr>
<tr><td colspan="2">
<p>
How important the sound is. Influences what happens when we have a lot of sounds playing at once. See <a class="normal" href="CastleSoundAllocator.TSound.html#Importance">TSound.Importance</a>.

<p>Ignored when this sound is used for MusicPlayer.Sound.</p>
</td></tr>
</table>
<!-- Piwik -->
<script type="text/javascript">
  var _paq = _paq || [];
  _paq.push(["trackPageView"]);
  _paq.push(["enableLinkTracking"]);

  (function() {
    var u=(("https:" == document.location.protocol) ? "https" : "http") + "://michalis.ii.uni.wroc.pl/piwik-castle-engine/";
    _paq.push(["setTrackerUrl", u+"piwik.php"]);
    _paq.push(["setSiteId", "1"]);
    var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript";
    g.defer=true; g.async=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s);
  })();
</script>
<!-- End Piwik Code -->

<noscript>
<!-- Piwik Image Tracker -->
<img src="http://michalis.ii.uni.wroc.pl/piwik-castle-engine/piwik.php?idsite=1&amp;rec=1" style="border:0" alt="" />
<!-- End Piwik -->
</noscript>
<hr noshade size="1"><span class="appinfo"><em>Generated by <a  href="http://pasdoc.sourceforge.net/">PasDoc 0.13.0</a> on 2015-06-15 04:43:12</em>
</span>
</td></tr></table></body></html>