music( asset ) music( asset, loop ) music( asset, loop, volume ) music( asset, loop, volume, pan )
Calling this function immediately plays the music track specified by asset
. The loop
parameter controls whether the music track plays continuously, or stops when finished.
Only one music track can be played at a time. You can modify the currently playing music track by accessing elements of the music
table, such as music.volume
.
Do not call this function repeatedly in your draw loop. The music
function is intended to be called once each time you wish to start playing music, or when you wish to change music tracks.
asset | asset key, the asset key of the music track to play |
loop | boolean, specifies whether this track should continue playing in a loop |
volume | number, the initial volume of playback from 0.0 to 1.0 |
pan | number, the stereo panning of playback, from -1.0 to 1.0 |
-- Getting vol = music.volume -- Setting music.volume = 0.5
This variable controls the currently playing music track's volume. It ranges from 0.0 to 1.0.
Volume of the currently playing music track
-- Getting pan = music.pan -- Setting music.pan = -1.0
This variable controls the currently playing music track's stereo panning. It ranges from -1.0 to 1.0.
Panning amount of the currently playing music track
-- Getting time = music.currentTime -- Setting music.currentTime = music.duration * 0.5
This variable controls the seek position of the currently playing music track. It ranges from 0.0 (start of the track) to music.duration
(end of the track).
Current time into the playing music track
-- Getting isPaused = music.paused -- Setting music.paused = true
This variable sets the paused state of the current music track.
Paused state of the currently music track.
-- Getting muted = music.muted -- Setting music.muted = true
This variable controls whether the music track is currently muted.
Whether the current track is muted
duration = music.duration
Read only. This variable returns the length of the current music track in seconds.
Length of the current music track in seconds.
channels = music.channels
Read only. This variable returns the number of channels supported by the current track (usually 1 or 2).
Number of channels supported by the current track.
print( music.name )
Read only. This value returns the asset string of the currently playing music.
Asset string of current music track
music.stop()
Stops the currently playing music track.
-- For sound assets sound( name, volume ) sound( name, volume, pitch ) sound( name, volume, pitch, pan ) sound( name, volume, pitch, pan, loop ) -- For generated sounds sound( name ) sound( name, seed ) sound( parameterTable ) sound( buffer )
Calling this function immediately plays a sound effect, or a randomly generated sound with a type specified by name
or encoded with the given parameters.
If using a sound asset (a sound from an asset pack) the sound
function accepts the following optional parameters: volume
, pitch
, pan
and loop
. Please see the parameter table for an explanation of these.
sound()
can use sfxr to randomly generate sounds of a given type. The name
parameter is a string specifying the type of sound (see related items), and the seed
parameter allows you to choose a particular random sound. Sounds with the same name and seed always sound the same. If no seed
is specified the resulting sound will be a random sound of the specified type. If a parameterTable
is passed in, those values are used to generate the sound.
Do not call this function repeatedly in your draw loop. The sound
function is intended to be called when you wish to play a sound effect (on a game event such as the player getting hit).
name | asset, the sound effect asset or type of sound to play This can be an asset name, such as asset.builtin.A_Hero_s_Quest.Arrow_Shoot_1 or it can be used to specify a randomly generated sound effect from the following: Can also be |
volume | number, specifies the volume of the sound effect from 0.0 to 1.0 (only for sounds from an asset pack) |
pitch | number, specifies the pitch of the sound effect, where 1.0 is the normal pitch (only for sounds from an asset pack) |
pan | number, specifies the stereo panning of the sound effect from -1.0 to 1.0 (only for sounds from an asset pack) |
loop | boolean, specifies whether this sound effect plays on a loop (only for sounds from an asset pack) |
seed | int, specifies the random seed to use when generating a sound of this type |
buffer | soundbuffer, specifies the raw sound data to play |
parameterTable | table, specifies the parameters to use when generating a sound. This is an advanced option, the parameters will change the noise in subtle ways. Play with the Sounds Plus example app to see what these parameters do. Any missing keys will cause the sound to use a default value for that parameter The table can contain the following (case sensitive) keys:
|
soundbuffer( data, format, freq )
This object represents a sound buffer containing arbitrary audio data. You may create soundbuffer
objects using soundbuffer( data, format, freq )
where the data is uncompressed PCM audio and the format is one of FORMAT_MONO8
, FORMAT_MONO16
, FORMAT_STEREO8
, or FORMAT_STEREO16
.
data | string, uncompressed audio data |
format |
|
freq | integer, the frequency of the data |
A new soundbuffer object
soundBufferSize( size ) soundBufferSize()
Calling this function will set the maximum buffer size for sounds. Sounds are stored in a buffer so that they do not need to be recreated if reused. Sounds are removed from this buffer on a least recently used basis when the buffer is full and a new sound is added. For example, if the buffer is 2 megabytes (the default), and we add a sound that puts it over the limit, the sound we used the longest time ago is removed from the buffer and will have to be re-created if played again. Generating the sound data can take a considerable amount of time for longer sounds.Playing a sound at 0 volume counts as playing and can be used to keep a sound in the cache (and to pre-generate a sound in the setup function.) Calling this method with 0 for the size sets the buffer to no limit. This can cause Codea to crash if too many sounds are generated as it may run out of memory.Calling this with no parameters returns the max size and current size of the buffer.
size | number, the maximum size of the buffer in megabytes. This can be a fraction. If this is 0, the buffer size is unlimited. An unlimited buffer size can cause Codea to crash if it runs out of memory, so take care if it is used. |
If no parameters are given, a pair of values: maxBufferSize, currentBufferSize
source = sound(foo)
Created when calling the sound
command, represents a live sound currently playing. Can be controlled to alter the playing sound
volume | number, the current volume of the sound source |
pitch | number, the current pitch of the sound source |
pan | number, the 2D spatial location of the sound (-1 left, +1 right, 0 center) |
looping | boolean, whether to loop the sound when it reaches the end of playback |
paused | boolean, whether the sound source is currently paused |
muted | boolean, whether the sound source is currently muted |
soundsource.stop()
Stops the sound if it is currently playing
soundsource.rewind()
Start the sound again from the beginning next time it is played
soundsource.fadeTo(volume, duration)
Fades the volume of the soundsource to the specified volume
over the time specified by duration
volume | number, volume to fade to, between 0 and 1 |
duration | number, seconds over which to fade volume |
soundsource.stopFade()
Cancels the current fading action, if possible
soundsource.pitchTo(pitch, duration)
Adjustes the pitch of the soundsource to the specified pitch
over the time specified by duration
pitch | number, pitch to fade to |
duration | number, seconds over which to adjust pitch |
soundsource.stopPitch()
Cancels the current pitch change action, if possible
soundsource.panTo(pan, duration)
Adjustes the pan of the soundsource to pan
over the time specified by duration
pitch | number, pan to fade to (-1 left, +1 right, 0 center) |
duration | number, seconds over which to pan the sound |
soundsource.stopPan()
Cancels the current pan change action, if possible
soundsource.stopActions()
Cancels all active actions on the soundsource, if possible
SOUND_JUMP
This constant specifies a jump sound. Similar to a character jumping in a platform game.
The string "jump"
SOUND_HIT
This constant specifies a hit sound. For example, when the enemy collides with the player.
The string "hit"
SOUND_PICKUP
This constant specifies a pickup sound. For example, collecting coins in a game.
The string "pickup"
SOUND_POWERUP
This constant specifies a powerup sound. For example, collecting bonuses in a game.
The string "powerup"
SOUND_SHOOT
This constant specifies a shooting sound. For example, firing a bullet in a game.
The string "shoot"
SOUND_EXPLODE
This constant specifies an explosion sound. For example, a space ship blowing up.
The string "explode"
SOUND_BLIT
This constant specifies a generic "blit" sound.
The string "blit"
SOUND_RANDOM
This constant specifies a randomly generated sound. You can use this in conjunction with the seed value of the sound()
function to find a sound that you like.
The string "random"
SOUND_NOISE
This specifices to use a white noise function as the waveform for this sound
The integer 3
SOUND_SAWTOOTH
This specifices to use a sawtooth function as the waveform for this sound
The integer 1
SOUND_SINEWAVE
This specifices to use a sine wave function as the waveform for this sound
The integer 2
SOUND_SQUAREWAVE
This specifices to use a square wave function as the waveform for this sound
The integer 0
speech( string ) speech.pitch speech.volume speech.rate speech.preDelay speech.postDelay
This type represents a spoken utterance that can be played back using the speech.say()
function. It consists of a string and other properties which determine the volume, speed and pitch of playback.
Multiple utterances can be queued for playback with the speech.say()
function. The utterances will be separated by their respective preDelay
and postDelay
intervals.
Note that speech
can be used to construct utterances to be used later, but it can also be used as a global table that can be configured for all future speech. See the two examples for both kinds of use.
string | string, the utterance to be spoken |
pitch | float, a value between 0.5 and 2.0, raises or lowers the pitch (default is 1.0) |
rate | float, a value between 0.0 and 1.0, the speed at which the utterance is spoken (default is 0.1) |
preDelay | float, the amount of time to wait before speaking this utterance |
postDelay | float, the amount of time to wait after speaking this utterance |
volume | float, a value between 0.0 and 1.0 (default is 1.0) |
voices | table, an array of available |
voice | voice, the default voice to use for speech, use |
language | string, the language string representing the voice you wish to use |
The newly created utterance to be used with speech.say
speech.say( string ) speech.say( utterance )
This function can be used to speak a particular string or utterance. Calling this function multiple times will add more utterances to the queue to be spoken, it will not stop anything currently being spoken. Use speech.stop
or speech.pause
to control playback.
string | string, a string to speak |
utterance | utterance, an utterance to speak |
speech.pause() speech.pause( immediate )
This function can be used to pause anything currently being spoken. Speech will pause after the next word by default. Pass a value of true
to this function to pause speech immediately.
After speech is paused, it can be continued with the speech.continue()
function.
immediate | boolean, whether to pause immediately or after the next word |
speech.stop() speech.stop( immediate )
This function can be used to stop anything currently being spoken. Speech will stop after the next word by default. Pass a value of true
to this function to stop speech immediately.
Unlike speech.pause
speech which has been stopped cannot be resumed with the speech.continue()
function.
immediate | boolean, whether to stop immediately or after the next word |
speech.continue()
Use this function to resume speech which has been paused with speech.pause
speech.speaking
Check this value to see if the speech synthesizer is currently speaking.
Boolean value indicating whether the system is currently speaking
speech.paused
Check this value to see if the speech synthesizer is currently paused.
Boolean value indicating whether the system is currently paused
speech.pitch = 2.0
Set this value to control the pitch of speech playback with speech.say
. This value ranges from 0.5 to 2.0, the default is 1.0.
float value, the current global speech pitch
speech.rate = 0.1
Set this value to control the rate (speed) of speech playback with speech.say
. This value ranges from 0.0 to 1.0, the default is 0.5.
float value, the current global speech rate
speech.preDelay = 0.0
Set this value to control the pre delay of speech played back with speech.say
. Speech will be delayed by this amount prior to playback. Defaults to 0.0.
float value, the delay in seconds prior to playing speech
speech.postDelay = 0.0
Set this value to control the post delay of speech played back with speech.say
. A pause for this amount of time will occur after speech played back and before the next queued speech.
float value, the delay in seconds after playing speech
speech.volume = 1.0
Set this value to control volume of speech played back with speech.say
. This value can range between 0.0 and 1.0. It defaults to 1.0.
float value, the volume of speech
mic.start()
Use this function to start tracking input from the device microphone
mic.stop()
Use this function to stop tracking input from the device microphone
local amp = mic.amplitude
Sample this value to determine the volume of sound coming into the microphone
local freq = mic.frequency
Sample this value to determine the pitch of sound coming into the microphone