61#ifndef OPENSNES_AUDIO_H
62#define OPENSNES_AUDIO_H
76#define AUDIO_MAX_SAMPLES 64
79#define AUDIO_MAX_VOICES 8
82#define AUDIO_VOICE_AUTO 0xFF
85#define AUDIO_VOL_MAX 127
86#define AUDIO_VOL_MIN 0
89#define AUDIO_PAN_LEFT 0
90#define AUDIO_PAN_CENTER 8
91#define AUDIO_PAN_RIGHT 15
94#define AUDIO_PITCH_DEFAULT 0x1000
97#define AUDIO_PITCH_C3 0x085F
98#define AUDIO_PITCH_C4 0x10BE
99#define AUDIO_PITCH_C5 0x217C
102#define AUDIO_ATTACK_INSTANT 15
103#define AUDIO_ATTACK_FAST 12
104#define AUDIO_ATTACK_MEDIUM 8
105#define AUDIO_ATTACK_SLOW 4
108#define AUDIO_DECAY_NONE 0
109#define AUDIO_DECAY_FAST 7
110#define AUDIO_DECAY_MEDIUM 4
111#define AUDIO_DECAY_SLOW 1
114#define AUDIO_SUSTAIN_FULL 7
115#define AUDIO_SUSTAIN_HALF 3
116#define AUDIO_SUSTAIN_QUARTER 1
119#define AUDIO_RELEASE_INSTANT 31
120#define AUDIO_RELEASE_FAST 24
121#define AUDIO_RELEASE_MEDIUM 16
122#define AUDIO_RELEASE_SLOW 8
125#define AUDIO_ECHO_DELAY_MIN 1
126#define AUDIO_ECHO_DELAY_MAX 15
130#define AUDIO_ERR_NO_MEMORY 1
131#define AUDIO_ERR_INVALID_ID 2
132#define AUDIO_ERR_NOT_LOADED 3
133#define AUDIO_ERR_TIMEOUT 4
428#define audioStop() audioStopAll()
431#define audioStopSample(id) audioStopVoice(id)
434#define audioSetPan(id, pan)
void audioSetADSR(u8 voice, u8 attack, u8 decay, u8 sustain, u8 release)
Set ADSR envelope for a voice.
void audioSetGain(u8 voice, u8 mode)
Set GAIN mode for a voice (alternative to ADSR).
void audioEnableEcho(u8 voiceMask)
Enable echo for specific voices.
void audioDisableEcho(void)
Disable echo for all voices.
void audioSetEchoFilter(const s8 fir[8])
Set FIR filter coefficients for echo.
void audioSetEcho(u8 delay, s8 feedback, s8 volumeL, s8 volumeR)
Configure echo parameters.
u8 audioIsReady(void)
Check if audio system is ready.
void audioUpdate(void)
Process audio updates.
void audioInit(void)
Initialize the audio system.
void audioStopAll(void)
Stop all audio playback.
void audioStopVoice(u8 voice)
Stop a specific voice.
u8 audioPlaySampleEx(u8 sampleId, u8 volume, u8 pan, u16 pitch)
Play a sample with custom settings.
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 audioSetVoicePitch(u8 voice, u16 pitch)
Set pitch for a specific voice.
void audioSetVoiceVolume(u8 voice, u8 volumeL, u8 volumeR)
Set volume for a specific voice.
void audioSetVolume(u8 volume)
Set master volume.
void audioGetVoiceState(u8 voice, AudioVoiceState *state)
Get current state of a voice.
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:144
u8 flags
Definition audio.h:148
u16 spcAddress
Definition audio.h:145
u16 size
Definition audio.h:146
u8 reserved
Definition audio.h:149
u16 loopPoint
Definition audio.h:147
Voice state information.
Definition audio.h:155
u8 sampleId
Definition audio.h:157
u16 pitch
Definition audio.h:160
u8 volume
Definition audio.h:158
u8 pan
Definition audio.h:159
u8 active
Definition audio.h:156