Thsound
From ProjectWiki
(Difference between revisions)
(New page: ==What is this?== ==Plz clean this up :p== <source lang="c"> //common functions void thSndInit(void); </source> <source lang="c"> thSample_t *thSampleLoadWav(const char *name); void thSa...) |
|||
Line 1: | Line 1: | ||
==What is this?== | ==What is this?== | ||
− | == | + | ==Functions common to both CPU== |
+ | '''thSndInit'''<br> | ||
+ | This needs to be called at startup on both CPU before any other audio functions. | ||
<source lang="c"> | <source lang="c"> | ||
− | |||
void thSndInit(void); | void thSndInit(void); | ||
</source> | </source> | ||
+ | ==Sample loading and management functions== | ||
+ | '''thSampleLoadWav'''<br> | ||
+ | Load a sample from .wav file. Supported formats are 8bit mono, 16bit mono, and IMA-ADPCM. Stereo sample support MAY be added later. | ||
+ | * name - name of file to load | ||
<source lang="c"> | <source lang="c"> | ||
thSample_t *thSampleLoadWav(const char *name); | thSample_t *thSampleLoadWav(const char *name); | ||
− | + | </source> | |
+ | Returns pointer to newly created sample. | ||
+ | |||
+ | '''mmSampleCreate'''<br> | ||
+ | Create a sample from raw audio data. | ||
+ | * start - pointer to start of sample in memory | ||
+ | * len - length of sample (in samples) | ||
+ | * loopstart - Loop point of sample. in number of samples from start. | ||
+ | * rate - sample rate in hertz (44100, 11025, etc etc) | ||
+ | * opts - options. Should include one each of: SNDPCM8, SNDPCM16, SNDADPCM. Additionally may OR on SNDLOOP (or even specify a default volume, pan, but wont get into this yet.. :P) | ||
+ | <source lang="c"> | ||
thSample_t *mmSampleCreate(void *start, int len, void *loopstart, int rate, u8 opts); | thSample_t *mmSampleCreate(void *start, int len, void *loopstart, int rate, u8 opts); | ||
+ | </source> | ||
+ | Returns Pointer to newly created sample. | ||
+ | |||
+ | |||
+ | ==Sound Playback functions== | ||
+ | '''thPlayDefaults'''<br> | ||
+ | Sets default sample playback options. | ||
+ | <source lang="c"> | ||
+ | void thPlayDefaults(int rate, char level, char pan, u32 flags); | ||
+ | </source> | ||
+ | |||
+ | '''thSndPlaySample'''<br> | ||
+ | Starts playing a previously loaded sample. | ||
+ | * chan - channel to use for playback | ||
+ | * sample - previously loaded sample | ||
+ | * vol - playback volume (0 to 127) | ||
+ | * pan - playback pan (0 to 127, 0 = left, 127 = right, 64 = center) | ||
+ | <source lang="c"> | ||
void thSndPlaySample(char chan, thSample_t *sample, char vol, char pan); | void thSndPlaySample(char chan, thSample_t *sample, char vol, char pan); | ||
+ | </source> | ||
+ | |||
+ | '''thSndPlayRaw'''<br> | ||
+ | <source lang="c"> | ||
void thSndPlayRaw(char chan, void *start, int len, int rate, char vol, char pan, u32 loopstart, u32 opts); | void thSndPlayRaw(char chan, void *start, int len, int rate, char vol, char pan, u32 loopstart, u32 opts); | ||
+ | </source> | ||
+ | |||
+ | '''thSndRegDirect'''<br> | ||
+ | <source lang="c"> | ||
void thSndRegDirect(char chan, u32 start, int len, int rate, u32 loopstart, u32 opts); | void thSndRegDirect(char chan, u32 start, int len, int rate, u32 loopstart, u32 opts); | ||
+ | </source> | ||
+ | |||
+ | '''thSndEzPlaySample'''<br> | ||
+ | <source lang="c"> | ||
void thSndEzPlaySample(char chan, thSample_t *sample); | void thSndEzPlaySample(char chan, thSample_t *sample); | ||
+ | </source> | ||
+ | |||
+ | '''thSndEzPlayRaw'''<br> | ||
+ | <source lang="c"> | ||
void thSndEzPlayRaw(char chan, void *start, int len); | void thSndEzPlayRaw(char chan, void *start, int len); | ||
+ | </source> | ||
+ | |||
+ | '''thSndPlayNoise'''<br> | ||
+ | <source lang="c"> | ||
void thSndPlayNoise(char chan, u16 rate, char vol, char pan); | void thSndPlayNoise(char chan, u16 rate, char vol, char pan); | ||
+ | </source> | ||
+ | |||
+ | '''thSndPlayNote'''<br> | ||
+ | <source lang="c"> | ||
void thSndPlayNote(char chan, char note, char duty, char vol, char pan); | void thSndPlayNote(char chan, char note, char duty, char vol, char pan); | ||
+ | </source> | ||
+ | |||
+ | '''thSndStop'''<br> | ||
+ | <source lang="c"> | ||
void thSndStop(char chan); | void thSndStop(char chan); | ||
+ | </source> | ||
+ | |||
+ | '''thSndSetVol'''<br> | ||
+ | <source lang="c"> | ||
void thSndSetVol(char chan, char vol); | void thSndSetVol(char chan, char vol); | ||
+ | </source> | ||
+ | |||
+ | '''thSndSetPan'''<br> | ||
+ | <source lang="c"> | ||
void thSndSetPan(char chan, char pan); | void thSndSetPan(char chan, char pan); | ||
+ | </source> | ||
+ | |||
+ | '''thSndSetRate'''<br> | ||
+ | <source lang="c"> | ||
void thSndSetRate(char chan, u32 rate); | void thSndSetRate(char chan, u32 rate); | ||
+ | </source> | ||
+ | |||
+ | '''thSndSetDuty'''<br> | ||
+ | <source lang="c"> | ||
void thSndSetDuty(char chan, char duty); | void thSndSetDuty(char chan, char duty); | ||
+ | </source> | ||
+ | |||
+ | '''thSndFade'''<br> | ||
+ | <source lang="c"> | ||
void thSndFade(char chan, u16 faderate); | void thSndFade(char chan, u16 faderate); | ||
</source> | </source> | ||
+ | |||
+ | [[Category:NDS]] | ||
+ | [[Category:C]] | ||
+ | [[Category:LIBTHDS]] |
Revision as of 11:11, 12 August 2008
Contents |
What is this?
Functions common to both CPU
thSndInit
This needs to be called at startup on both CPU before any other audio functions.
void thSndInit(void);
Sample loading and management functions
thSampleLoadWav
Load a sample from .wav file. Supported formats are 8bit mono, 16bit mono, and IMA-ADPCM. Stereo sample support MAY be added later.
- name - name of file to load
thSample_t *thSampleLoadWav(const char *name);
Returns pointer to newly created sample.
mmSampleCreate
Create a sample from raw audio data.
- start - pointer to start of sample in memory
- len - length of sample (in samples)
- loopstart - Loop point of sample. in number of samples from start.
- rate - sample rate in hertz (44100, 11025, etc etc)
- opts - options. Should include one each of: SNDPCM8, SNDPCM16, SNDADPCM. Additionally may OR on SNDLOOP (or even specify a default volume, pan, but wont get into this yet.. :P)
thSample_t *mmSampleCreate(void *start, int len, void *loopstart, int rate, u8 opts);
Returns Pointer to newly created sample.
Sound Playback functions
thPlayDefaults
Sets default sample playback options.
void thPlayDefaults(int rate, char level, char pan, u32 flags);
thSndPlaySample
Starts playing a previously loaded sample.
- chan - channel to use for playback
- sample - previously loaded sample
- vol - playback volume (0 to 127)
- pan - playback pan (0 to 127, 0 = left, 127 = right, 64 = center)
void thSndPlaySample(char chan, thSample_t *sample, char vol, char pan);
thSndPlayRaw
void thSndPlayRaw(char chan, void *start, int len, int rate, char vol, char pan, u32 loopstart, u32 opts);
thSndRegDirect
void thSndRegDirect(char chan, u32 start, int len, int rate, u32 loopstart, u32 opts);
thSndEzPlaySample
void thSndEzPlaySample(char chan, thSample_t *sample);
thSndEzPlayRaw
void thSndEzPlayRaw(char chan, void *start, int len);
thSndPlayNoise
void thSndPlayNoise(char chan, u16 rate, char vol, char pan);
thSndPlayNote
void thSndPlayNote(char chan, char note, char duty, char vol, char pan);
thSndStop
void thSndStop(char chan);
thSndSetVol
void thSndSetVol(char chan, char vol);
thSndSetPan
void thSndSetPan(char chan, char pan);
thSndSetRate
void thSndSetRate(char chan, u32 rate);
thSndSetDuty
void thSndSetDuty(char chan, char duty);
thSndFade
void thSndFade(char chan, u16 faderate);