46#ifndef OPENSNES_AUDIO_H
47#define OPENSNES_AUDIO_H
61#define AUDIO_MAX_SAMPLES 64
64#define AUDIO_MAX_VOICES 8
67#define AUDIO_VOICE_AUTO 0xFF
70#define AUDIO_VOL_MAX 127
71#define AUDIO_VOL_MIN 0
74#define AUDIO_PAN_LEFT 0
75#define AUDIO_PAN_CENTER 8
76#define AUDIO_PAN_RIGHT 15
79#define AUDIO_PITCH_DEFAULT 0x1000
82#define AUDIO_PITCH_C3 0x085F
83#define AUDIO_PITCH_C4 0x10BE
84#define AUDIO_PITCH_C5 0x217C
87#define AUDIO_ATTACK_INSTANT 15
88#define AUDIO_ATTACK_FAST 12
89#define AUDIO_ATTACK_MEDIUM 8
90#define AUDIO_ATTACK_SLOW 4
93#define AUDIO_DECAY_NONE 0
94#define AUDIO_DECAY_FAST 7
95#define AUDIO_DECAY_MEDIUM 4
96#define AUDIO_DECAY_SLOW 1
99#define AUDIO_SUSTAIN_FULL 7
100#define AUDIO_SUSTAIN_HALF 3
101#define AUDIO_SUSTAIN_QUARTER 1
104#define AUDIO_RELEASE_INSTANT 31
105#define AUDIO_RELEASE_FAST 24
106#define AUDIO_RELEASE_MEDIUM 16
107#define AUDIO_RELEASE_SLOW 8
110#define AUDIO_ECHO_DELAY_MIN 1
111#define AUDIO_ECHO_DELAY_MAX 15
115#define AUDIO_ERR_NO_MEMORY 1
116#define AUDIO_ERR_INVALID_ID 2
117#define AUDIO_ERR_NOT_LOADED 3
118#define AUDIO_ERR_TIMEOUT 4
404#define audioStop() audioStopAll()
407#define audioStopSample(id) audioStopVoice(id)
410#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:43
unsigned short u16
16-bit unsigned integer (0 to 65535)
Definition types.h:52
unsigned char u8
8-bit unsigned integer (0 to 255)
Definition types.h:46
BRR sample descriptor.
Definition audio.h:129
u8 flags
Definition audio.h:133
u16 spcAddress
Definition audio.h:130
u16 size
Definition audio.h:131
u8 reserved
Definition audio.h:134
u16 loopPoint
Definition audio.h:132
Voice state information.
Definition audio.h:140
u8 sampleId
Definition audio.h:142
u16 pitch
Definition audio.h:145
u8 volume
Definition audio.h:143
u8 pan
Definition audio.h:144
u8 active
Definition audio.h:141