Close

Westminster Quarters

A project log for Audible notifications by a Grandfather's clock

Eight chimes can sound in different patterns whenever I receive a notification through IFTTT

borazsloborazslo 04/23/2017 at 14:480 Comments

After I had changed from python to arduino, I added to the new arduino code the melodies of the Westminster Quarters.

#define GIS D7
#define FIS D6
#define E D5
#define B D2
#define BIGBEN D1

// https://en.wikipedia.org/wiki/Westminster_Quarters

void WestminsterFirstQuarter(int speed = 900) {
  // 1 g♯4, f♯4, e4, b3
  dong(GIS);
  delay(speed);
  dong(FIS);
  delay(speed);
  dong(E);
  delay(speed);
  dong(B);
  delay(speed * 2);
}

void WestminsterHalfHour(int speed = 900) {
  // 2 e4, g♯4, f♯4, b3
  dong(E);
  delay(speed);
  dong(GIS);
  delay(speed);
  dong(FIS);
  delay(speed);
  dong(B);
  delay(speed * 2);

  // 3 e4, f♯4, g♯4, e4
  dong(E);
  delay(speed);
  dong(FIS);
  delay(speed);
  dong(GIS);
  delay(speed);
  dong(E);
  delay(speed * 2);

}

void WestminsterThirdQuarter(int speed = 900) {
  // 4 g♯4, e4, f♯4, b3
  dong(GIS);
  delay(speed);
  dong(E);
  delay(speed);
  dong(FIS);
  delay(speed);
  dong(B);
  delay(speed * 2);

  // 5 b3, f♯4, g♯4, e4
  dong(B);
  delay(speed);
  dong(FIS);
  delay(speed);
  dong(GIS);
  delay(speed);
  dong(E);
  delay(speed * 2);

  WestminsterFirstQuarter(speed);
}

void WestminsterFullHour(int hour = 0, int speed = 900) {
  WestminsterHalfHour();

  // 4 g♯4, e4, f♯4, b3
  dong(GIS);
  delay(speed);
  dong(E);
  delay(speed);
  dong(FIS);
  delay(speed);
  dong(B);
  delay(speed * 2);

  // 5 b3, f♯4, g♯4, e4
  dong(B);
  delay(speed);
  dong(FIS);
  delay(speed);
  dong(GIS);
  delay(speed);
  dong(E);
  delay(speed * 2);

  for (int i = 0; i < hour; i++) {
    dong(BIGBEN);
    delay(speed * 4);
  }
}

Discussions