libnds
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Enumerations | Functions
sound.h File Reference

A simple sound playback library for the DS. Provides functionality for starting and stopping sound effects from the ARM9 side as well as access to PSG and noise hardware. Maxmod should be used in most music and sound effect situations. More...

#include <nds/ndstypes.h>

Enumerations

enum  DutyCycle {
  DutyCycle_0 = 7,
  DutyCycle_12 = 0,
  DutyCycle_25 = 1,
  DutyCycle_37 = 2,
  DutyCycle_50 = 3,
  DutyCycle_62 = 4,
  DutyCycle_75 = 5,
  DutyCycle_87 = 6
}
 PSG Duty cycles used by the PSG hardware. More...
 
enum  MicFormat {
  MicFormat_8Bit = 1,
  MicFormat_12Bit = 0
}
 Microphone recording formats DS. More...
 
enum  SoundFormat {
  SoundFormat_16Bit = 1,
  SoundFormat_8Bit = 0,
  SoundFormat_PSG = 3,
  SoundFormat_ADPCM = 2
}
 Sound formats used by the DS. More...
 

Functions

void soundDisable (void)
 Disables Sound on the DS.
 
void soundEnable (void)
 Enables Sound on the DS. Should be called prior to attempting sound playback.
 
void soundKill (int soundId)
 Stops the sound specified by soundId and frees any resources allocated. More...
 
void soundMicOff (void)
 Stops the microphone from recording.
 
int soundMicRecord (void *buffer, u32 bufferLength, MicFormat format, int freq, MicCallback callback)
 Starts a microphone recording to a double buffer specified by buffer. More...
 
void soundPause (int soundId)
 Pause the sound specified by soundId. More...
 
int soundPlayNoise (u16 freq, u8 volume, u8 pan)
 Plays white noise with the specified parameters. More...
 
int soundPlayPSG (DutyCycle cycle, u16 freq, u8 volume, u8 pan)
 Pause a tone with the specified properties. More...
 
int soundPlaySample (const void *data, SoundFormat format, u32 dataSize, u16 freq, u8 volume, u8 pan, bool loop, u16 loopPoint)
 Plays a sound in the specified format at the specified frequency. More...
 
void soundResume (int soundId)
 Resumes a paused sound. More...
 
void soundSetFreq (int soundId, u16 freq)
 Sets the sound frequency. More...
 
void soundSetPan (int soundId, u8 pan)
 Sets the sound pan. More...
 
void soundSetVolume (int soundId, u8 volume)
 Sets the sound volume. More...
 
void soundSetWaveDuty (int soundId, DutyCycle cycle)
 Sets the Wave Duty of a PSG sound. More...
 

Detailed Description

A simple sound playback library for the DS. Provides functionality for starting and stopping sound effects from the ARM9 side as well as access to PSG and noise hardware. Maxmod should be used in most music and sound effect situations.

Enumeration Type Documentation

enum DutyCycle

PSG Duty cycles used by the PSG hardware.

Enumerator
DutyCycle_0 

0.0% duty cycle

DutyCycle_12 

12.5% duty cycle

DutyCycle_25 

25.0% duty cycle

DutyCycle_37 

37.5% duty cycle

DutyCycle_50 

50.0% duty cycle

DutyCycle_62 

62.5% duty cycle

DutyCycle_75 

75.0% duty cycle

DutyCycle_87 

87.5% duty cycle

enum MicFormat

Microphone recording formats DS.

Enumerator
MicFormat_8Bit 

8-bit PCM

MicFormat_12Bit 

12-bit PCM

Sound formats used by the DS.

Enumerator
SoundFormat_16Bit 

16-bit PCM

SoundFormat_8Bit 

8-bit PCM

SoundFormat_PSG 

PSG (programmable sound generator?)

SoundFormat_ADPCM 

IMA ADPCM compressed audio

Function Documentation

void soundKill ( int  soundId)

Stops the sound specified by soundId and frees any resources allocated.

Parameters
soundIdThe sound ID returned by play sound
int soundMicRecord ( void *  buffer,
u32  bufferLength,
MicFormat  format,
int  freq,
MicCallback  callback 
)

Starts a microphone recording to a double buffer specified by buffer.

Parameters
bufferA pointer to the start of the double buffer
bufferLengthThe length of the buffer in bytes (both halfs of the double buffer)
formatMicrophone can record in 8 or 12 bit format. 12 bit is shifted up to 16 bit pcm
freqThe sample frequency
callbackThis will be called every time the buffer is full or half full
Returns
Returns non zero for success.
void soundPause ( int  soundId)

Pause the sound specified by soundId.

Parameters
soundIdThe sound ID returned by play sound
int soundPlayNoise ( u16  freq,
u8  volume,
u8  pan 
)

Plays white noise with the specified parameters.

Parameters
freqThe frequency in Hz of the sample
volumeThe channel volume. 0 to 127 (min to max)
panThe channel pan 0 to 127 (left to right with 64 being centered)
Returns
An integer id coresponding to the channel of playback. This value can be used to pause, resume, or kill the sound as well as adjust volume, pan, and frequency
int soundPlayPSG ( DutyCycle  cycle,
u16  freq,
u8  volume,
u8  pan 
)

Pause a tone with the specified properties.

Parameters
cycleThe DutyCycle of the sound wave
freqThe frequency in Hz of the sample
volumeThe channel volume. 0 to 127 (min to max)
panThe channel pan 0 to 127 (left to right with 64 being centered)
Returns
An integer id coresponding to the channel of playback. This value can be used to pause, resume, or kill the sound as well as adjust volume, pan, and frequency
int soundPlaySample ( const void *  data,
SoundFormat  format,
u32  dataSize,
u16  freq,
u8  volume,
u8  pan,
bool  loop,
u16  loopPoint 
)

Plays a sound in the specified format at the specified frequency.

Parameters
dataA pointer to the sound data
formatThe format of the data (only 16-bit and 8-bit pcm and ADPCM formats are supported by this function)
dataSizeThe size in bytes of the sound data
freqThe frequency in Hz of the sample
volumeThe channel volume. 0 to 127 (min to max)
panThe channel pan 0 to 127 (left to right with 64 being centered)
loopIf true, the sample will loop playing once then repeating starting at the offset stored in loopPoint
loopPointThe offset for the sample loop to restart when repeating
Returns
An integer id coresponding to the channel of playback. This value can be used to pause, resume, or kill the sound as well as adjust volume, pan, and frequency
void soundResume ( int  soundId)

Resumes a paused sound.

Parameters
soundIdThe sound ID returned by play sound
void soundSetFreq ( int  soundId,
u16  freq 
)

Sets the sound frequency.

Parameters
soundIdThe sound ID returned by play sound
freqThe frequency in Hz
void soundSetPan ( int  soundId,
u8  pan 
)

Sets the sound pan.

Parameters
soundIdThe sound ID returned by play sound
panThe new pan value (0 to 127 left to right (64 = center))
void soundSetVolume ( int  soundId,
u8  volume 
)

Sets the sound volume.

Parameters
soundIdThe sound ID returned by play sound
volumeThe new volume (0 to 127 min to max)
void soundSetWaveDuty ( int  soundId,
DutyCycle  cycle 
)

Sets the Wave Duty of a PSG sound.

Parameters
soundIdThe sound ID returned by play sound
cycleThe DutyCycle of the sound wave