diff --git a/internal/c/parts/audio/audio.cpp b/internal/c/parts/audio/audio.cpp index 793ef2f58..919bb9968 100644 --- a/internal/c/parts/audio/audio.cpp +++ b/internal/c/parts/audio/audio.cpp @@ -806,25 +806,18 @@ void sub_sound(double frequency, double lengthInClockTicks) { SendWaveformToQueue(data, soundwave_bytes, !audioEngine.musicBackground); } -/// -/// This generates a default 'beep' sound. -/// -void sub_beep() { sub_sound(900, 5); } +/// @brief This generates a default 'beep' sound +void sub_beep() { + sub_sound(900, 4.5); + sub_sound(32767, 0.5); // we'll send a very short silence after the beep so that two successive beeps sound unique +} -/// -/// This was designed to returned the number of notes in the background music queue. -/// However, here we'll just return the number of sample frame remaining to play when Play(), Sound() or Beep() are used. -/// This allows programs like the following to compile and work. -/// -/// Music$ = "MBT180o2P2P8L8GGGL2E-P24P8L8FFFL2D" -/// PLAY Music$ -/// WHILE PLAY(0) > 5: WEND -/// PRINT "Just about done!" -/// -/// Well, it's ignored -/// Returns the number of sample frames left to play for Play(), Sound() & Beep() +/// @brief This was designed to returned the number of notes in the background music queue. +/// However, here we'll just return the number of sample frame remaining to play when Play(), Sound() or Beep() are used +/// @param ignore Well, it's ignored +/// @return Returns the number of sample frames left to play for Play(), Sound() & Beep() int32_t func_play(int32_t ignore) { - if (audioEngine.isInitialized && audioEngine.sndInternal == 0) { + if (audioEngine.isInitialized && audioEngine.sndInternal == 0 && audioEngine.soundHandles[audioEngine.sndInternal]->rawStream) { return (int32_t)audioEngine.soundHandles[audioEngine.sndInternal]->rawStream->GetSampleFramesRemaining(); }