OLED countdown not working with Piezo

After several hours of google searches with no luck I decided to make an account. I'm trying to make a 30 second timer that plays a pre written melody on the piezo while a number countdown is displayed on a 32spi OLED

If I remove the code for the piezo I can get the numbers to countdown, but when the code is added the numbers only countdown after the melody has fully played through.

Any help would greatly be appreciated!!

void loop()
{
  display.setTextSize(5);
  display.setTextColor(WHITE);
  display.setCursor(textPos, 0);
  display.println(secondsValue);
  display.display();


  // Timer logic
  unsigned long currentMillis = millis();
  if (startTimer) {
    sing();
    if (currentMillis - timerCountDownMillis > countDownMillis) {
      display.clearDisplay();
      secondsValue = secondsValue.toInt() - 1;
      timerCountDownMillis = currentMillis;
      if (secondsValue.toInt() == 0) {
        secondsValue = "0";
      }
      if (secondsValue.toInt() < "10") {
        textPos = sTextPos;
      }
      if (secondsValue == "0") {
        startTimer = false;
      }
    }
  }
}
// Piezo logic
void sing() {
  int size = sizeof(songMelody) / sizeof(int);
  if (startTimer) {
    for (int thisNote = 0; thisNote < size; thisNote++) {

      int songNoteDuration = 1000 / songNoteDurations[thisNote];
      tone(SND, songMelody[thisNote], songNoteDuration);

      // to distinguish the notes, set a minimum time between them.
      // the note's duration + 30% seems to work well:
      int pauseBetweenNotes = songNoteDuration * 1.30;
      delay(pauseBetweenNotes);
      //tunePlayed = true;
      // stop the tone playing:
      noTone(SND);
    }
  }
}

I'm very new to arduino and coding in general so i'm sorry if my code is cringe-worthy hahaha

Here is the entire problem:

      delay(pauseBetweenNotes);

This is freezing all the rest of your code. You need to use cooperative multitasking (doing more than one thing at a time), just follow the links in the sticky threads at the top of the forum to learn how to do that.

Thank you! I'll do that now