DocumentTools[Components]
Speaker
generate XML for a Speaker Component
Calling Sequence
Parameters
Options
Description
Examples
Compatibility
Speaker(opts)
opts
-
(optional) ; one or more keyword options as described below
enabled : truefalse:=true; Indicates whether the component is enabled. The default value is true. If enabled is false, then the inserted component is grayed out and interaction with it cannot be initiated.
identity : {name,string}; The reference name of the component.
mute : truefalse:=false; Indicates whether the component is initially muted. The default value is false (not muted).
samplerate : posint:=16000; The sample rate at which audio data is played. The default value is 16000.
stereo : truefalse:=false; Indicates whether audio data is played on two channels (true) or on one channel (false). The default value is false.
tooltip : string:=""; The text that appears when the mouse pointer hovers over the component. The default is the empty string (no tooltip).
visible : truefalse:=true; Indicates whether the component is visible. The default is true.
volume : nonnegint:=5; The volume, an integer between 0 and 10. The default value is 5.
The Speaker command in the Component Constructors package returns an XML function call which represents a Speaker Component.
The generated XML can be used with the results of commands in the Layout Constructors package to create an entire Worksheet or Document in XML form. Such a representation of a Worksheet or Document can be inserted into the current document using the InsertContent command.
with⁡DocumentTools:
with⁡DocumentTools:-Components:
with⁡DocumentTools:-Layout:
Executing the Speaker command produces a function call.
S≔Speaker⁡identity=Speaker0
S≔_XML_EC-Speaker⁡id=Speaker0,enabled=true,visible=true,samplerate=16000,stereo=false,volume=5,mute=false
By using commands from the Layout Constructors package a nested function call can be produced which represents a worksheet.
xml≔Worksheet⁡Group⁡Input⁡Textfield⁡S:
That XML representation of a worksheet can be inserted directly.
InsertContent⁡xml:
S≔Speaker⁡identity=Speaker0,tooltip=My speaker,stereo=false:
The previous example's call to the InsertContent command inserted a component with identity "Speaker0", which still exists in this worksheet. Inserting additional content whose input contains another component with that same identity "Speaker0" incurs a substitution of the input identity in order to avoid a conflict with the identity of the existing component.
The return value of the following call to InsertContent is a table which can be used to reference the substituted identity of the inserted component.
lookup≔InsertContent⁡xml,output=table
lookup≔table⁡Speaker0=Speaker1
lookupSpeaker0
Speaker1
GetProperty⁡lookupSpeaker0,stereo
false
For the next example, an audio clip is read in, and its data is stored in an Array. This data Array is then sent to the speaker component.
data≔AudioTools:-Read⁡cat⁡kernelopts⁡datadir,/audio/MapleSimMono11025.wav
data≔?
The speaker component can play audio data at an arbitrary sample rate. The sound clip being used contains its own intended sample rate. The sample rate is the first attribute of the data Array created by the AudioTools:-Read command.
srate≔attributes⁡data1
srate≔11025
The speaker component's sample rate is set accordingly.
SetProperty⁡lookupSpeaker0,samplerate,srate
The data is now sent to the Speaker component, playing the audio clip.
SetProperty⁡lookupSpeaker0,value,data
Error, (in DocumentTools:-SetProperty) SPEAKER_NOT_AVAILABLE
The DocumentTools:-Components:-Speaker command was introduced in Maple 2015.
For more information on Maple 2015 changes, see Updates in Maple 2015.
See Also
Component Code
Component Constructors
DocumentTools
Embedded Components
Layout Constructors
XMLTools
Download Help Document