API Sound.QueueEx: Difference between revisions
No edit summary |
m Text replacement - "width="90%" style="background-color:#D8C9D8; color:#4B008D;"" to "width="90%" class="mtx-class-macrohead"" |
||
| (3 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''QueueEx''' | ||
|- | |- | ||
| colspan="2" | Queues a sound for playing, with the format provided | | colspan="2" | Queues a sound for playing, with the format provided | ||
| Line 61: | Line 61: | ||
* Declare a variable 'result' of type BOOL | * Declare a variable 'result' of type BOOL | ||
* Add to a calculation icon: <pre class="brush:[cpp]">result = ::Sound.QueueEx(sounds, _arraydata, byteoffset, ::Sound.Fmt_Signed8, elements, ratemul)</pre> | * Add to a calculation icon: <pre class="brush:[cpp]">result = ::Sound.QueueEx(sounds, _arraydata, byteoffset, ::Sound.Fmt_Signed8, elements, ratemul)</pre> | ||
Latest revision as of 13:17, 13 July 2026
Detailed description
This adds a sound to the queue to be played when the currently playing sound completes. If no sound is currently playing this will play immediately.
The Elements is a maximum, and will be bounded to the size of the input Array if too large. This means passing -1 (unsigned) is the equivalent of 'the full array'. The relevant contents of the Array are copied so the contents may be altered immediately after this call.
The format of each sample in Array is explicitly declared, so the data may be read from a file and its format decided dynamically.
Floating point samples are assumed to be in the range 0 to 1. All integer values have their sign and bit size considered and are in a range from the minimum to the maximum of their type.
RateMul can be used to adjust the sample rate for the sound in software. Linear interpolation is used to scale the input Array by this factor. This means to play at half the sample rate (so the sound plays twice as slow) set RateMul=0.5.
Examples
Calling in a calculation
- Declare a variable 'result' of type BOOL
- Add to a calculation icon:
result = ::Sound.QueueEx(sounds, _arraydata, byteoffset, ::Sound.Fmt_Signed8, elements, ratemul)