61#ifndef OPENSNES_AUDIO_H
62#define OPENSNES_AUDIO_H
79#define AUDIO_MAX_SAMPLES 64
82#define AUDIO_MAX_VOICES 8
86#define AUDIO_VOICE_AUTO 0xFF
91#define AUDIO_VOICE_NONE 0xFF
94#define AUDIO_VOL_MAX 127
95#define AUDIO_VOL_MIN 0
98#define AUDIO_PAN_LEFT 0
99#define AUDIO_PAN_CENTER 8
100#define AUDIO_PAN_RIGHT 15
103#define AUDIO_PITCH_DEFAULT 0x1000
110#define AUDIO_PITCH_C3 0x085F
111#define AUDIO_PITCH_C4 0x10BE
112#define AUDIO_PITCH_C5 0x217C
115#define AUDIO_ATTACK_INSTANT 15
116#define AUDIO_ATTACK_FAST 12
117#define AUDIO_ATTACK_MEDIUM 8
118#define AUDIO_ATTACK_SLOW 4
121#define AUDIO_DECAY_NONE 0
122#define AUDIO_DECAY_FAST 7
123#define AUDIO_DECAY_MEDIUM 4
124#define AUDIO_DECAY_SLOW 1
127#define AUDIO_SUSTAIN_FULL 7
128#define AUDIO_SUSTAIN_HALF 3
129#define AUDIO_SUSTAIN_QUARTER 1
139#define AUDIO_RELEASE_INSTANT 31
140#define AUDIO_RELEASE_FAST 24
141#define AUDIO_RELEASE_MEDIUM 16
142#define AUDIO_RELEASE_SLOW 8
145#define AUDIO_ECHO_DELAY_MIN 1
146#define AUDIO_ECHO_DELAY_MAX 7
150#define AUDIO_ERR_NO_MEMORY 1
151#define AUDIO_ERR_INVALID_ID 2
152#define AUDIO_ERR_NOT_LOADED 3
153#define AUDIO_ERR_TIMEOUT 4
513#define audioStop() audioStopAll()
516#define audioStopSample(id) audioStopVoice(id)
519#define audioSetPan(id, pan)
u8 audioSetGain(u8 voice, u8 mode)
Set GAIN mode for a voice (alternative to ADSR).
u8 audioSetADSR(u8 voice, u8 attack, u8 decay, u8 sustain, u8 release)
Set ADSR envelope for a voice.
u8 audioEnableEcho(u8 voiceMask)
Enable echo for specific voices.
u8 audioDisableEcho(void)
Disable echo for all voices.
u8 audioSetEcho(u8 delay, s8 feedback, s8 volumeL, s8 volumeR)
Configure echo parameters.
u8 audioSetEchoFilter(const s8 fir[8])
Set FIR filter coefficients for echo.
u8 audioIsReady(void)
Check if audio system is ready.
u8 audioInit(void)
Initialize the audio system.
u8 audioStopAll(void)
Stop all audio playback.
u8 audioStopVoice(u8 voice)
Stop a specific voice.
u8 audioPlaySampleEx(u8 sampleId, u8 volume, u8 pan, u16 pitch)
Play a sample with custom settings.
u8 audioPlaySampleOn(u8 voice, u8 sampleId, u8 volume, u8 pan, u16 pitch)
Play a sample on a voice YOU choose.
u8 audioPlaySample(u8 sampleId)
Play a sample with default settings.
void audioUnloadSample(u8 id)
Unload a sample from a slot.
u16 audioGetFreeMemory(void)
Get available SPC700 RAM for samples.
u8 audioLoadSample(u8 id, const u8 *brrData, u16 size, u16 loopPoint)
Load a BRR sample into SPC700 RAM.
u8 audioGetSampleInfo(u8 id, AudioSample *info)
Get information about a loaded sample.
u8 audioGetVolume(void)
Get current master volume.
void audioGetVoiceState(u8 voice, AudioVoiceState *state)
Get current state of a voice.
u8 audioSetVoiceVolume(u8 voice, u8 volumeL, u8 volumeR)
Set volume for a specific voice.
u8 audioSetVoicePitch(u8 voice, u16 pitch)
Set pitch for a specific voice.
u8 audioSetVolume(u8 volume)
Set master volume.
signed char s8
8-bit signed integer (-128 to 127)
Definition types.h:44
unsigned short u16
16-bit unsigned integer (0 to 65535)
Definition types.h:53
unsigned char u8
8-bit unsigned integer (0 to 255)
Definition types.h:47
BRR sample descriptor.
Definition audio.h:164
u8 flags
Definition audio.h:168
u16 spcAddress
Definition audio.h:165
u16 size
Definition audio.h:166
u8 reserved
Definition audio.h:169
u16 loopPoint
Definition audio.h:167
Voice state information.
Definition audio.h:175
u8 sampleId
Definition audio.h:177
u16 pitch
Definition audio.h:180
u8 volume
Definition audio.h:178
u8 pan
Definition audio.h:179
u8 active
Definition audio.h:176