Add fan sound

This commit is contained in:
Miloslav Ciz 2025-01-31 14:20:49 +01:00
parent 67e0814afb
commit 2ff43a0d1a
4 changed files with 38 additions and 8 deletions

36
audio.h
View file

@ -11,13 +11,15 @@
file, left to be optionally loaded and played by the frontend).
*/
#define LCR_SOUND_NONE 0
#define LCR_SOUND_CLICK 1
#define LCR_SOUND_NONE 0
#define LCR_SOUND_CLICK 1
#define LCR_SOUND_CRASH_SMALL 2
#define LCR_SOUND_CRASH_BIG 3
#define LCR_SOUND_CRASH_BIG 3
#define LCR_SOUND_ACCELERATOR 4
#define LCR_SOUND_FAN 5
#define LCR_AUDIO_CRASH_LEN 2048
#define LCR_AUDIO_CRASH_SOUND_LEN 2048
#define LCR_AUDIO_FAN_SOUND_LEN 4096
struct
{
@ -100,10 +102,10 @@ uint8_t LCR_audioGetNextSample(void)
case LCR_SOUND_CRASH_BIG:
{
int limit = (LCR_audio.soundPlayed == LCR_SOUND_CRASH_BIG ? 256 : 96) -
(LCR_audio.soundPlayedFrame * 256) / LCR_AUDIO_CRASH_LEN;
(LCR_audio.soundPlayedFrame * 256) / LCR_AUDIO_CRASH_SOUND_LEN;
if (LCR_audio.frame % 2 || // lower frequency
LCR_audio.soundPlayedFrame < LCR_AUDIO_CRASH_LEN / 4)
LCR_audio.soundPlayedFrame < LCR_AUDIO_CRASH_SOUND_LEN / 4)
LCR_audio.crashSample = _LCR_audioNoise();
if (LCR_audio.crashSample > limit)
@ -127,6 +129,28 @@ uint8_t LCR_audioGetNextSample(void)
break;
case LCR_SOUND_FAN:
{
int limit = LCR_AUDIO_FAN_SOUND_LEN - LCR_audio.soundPlayedFrame;
if (limit > LCR_AUDIO_FAN_SOUND_LEN / 2)
limit = LCR_AUDIO_FAN_SOUND_LEN - limit;
limit = (limit * 256) / (LCR_AUDIO_FAN_SOUND_LEN / 2);
result = _LCR_audioNoise();
if (result > limit)
result = limit;
result = 128 - limit / 2 + result;
if (LCR_audio.soundPlayedFrame >= LCR_AUDIO_FAN_SOUND_LEN)
LCR_audio.soundPlayed = LCR_SOUND_NONE;
break;
}
case LCR_SOUND_CLICK:
{
int v = ((LCR_audio.soundPlayedFrame >> 6) *