Appends music list

This commit is contained in:
Sylvain Schneider
2026-02-27 22:51:49 +01:00
parent e8ffae1c3b
commit 8d27ad545d
19 changed files with 728 additions and 0 deletions

23
pitches/pitches/all.h Normal file
View File

@@ -0,0 +1,23 @@
#pragma once
#include "pitches.h"
// Include all the individual song headers
#include "music/amazing_grace.h"
#include "music/an_die_freude.h"
#include "music/auld_lang_syne.h"
#include "music/canon_pachelbel.h"
#include "music/clair_de_la_lune.h"
#include "music/douce_nuit.h"
#include "music/frere_jacques.h"
#include "music/fur_elise.h"
#include "music/god_save_the_queen.h"
#include "music/greensleeves.h"
#include "music/happy_birthday.h"
#include "music/indiana_jones.h"
#include "music/jingle_bells.h"
#include "music/mario.h"
#include "music/marseillaise.h"
#include "music/tetris.h"
#include "music/twinkle_twinkle.h"
#include "music/vive_le_vent.h"

View File

@@ -0,0 +1,40 @@
#pragma once
#include "../pitches.h"
#include <array>
namespace pitches
{
// clang-format off
//--------------------------------------------------------------
constexpr std::array amazing_grace = {
// --- PHRASE 1 ---
Note{ D4, 500 }, // A-
Note{ G4, 1000 }, Note{ B4, 250 }, Note{ G4, 250 }, // -ma-zing
Note{ B4, 1000 }, Note{ A4, 500 }, // grace, how
Note{ G4, 1000 }, Note{ E4, 500 }, // sweet the
Note{ D4, 1000 }, Note{ silent, 100 }, // sound
// --- PHRASE 2 ---
Note{ D4, 500 }, // That
Note{ G4, 1000 }, Note{ B4, 250 }, Note{ G4, 250 }, // saved a
Note{ B4, 1000 }, Note{ A4, 500 }, // wretch like
Note{ D5, 1500 }, Note{ silent, 100 }, // me!
// --- PHRASE 3 ---
Note{ B4, 500 }, // I
Note{ D5, 1000 }, Note{ B4, 250 }, Note{ G4, 250 }, // once was
Note{ B4, 1000 }, Note{ A4, 500 }, // lost, but
Note{ G4, 1000 }, Note{ E4, 500 }, // now am
Note{ D4, 1000 }, Note{ silent, 100 }, // found
// --- PHRASE 4 ---
Note{ D4, 500 }, // Was
Note{ G4, 1000 }, Note{ B4, 250 }, Note{ G4, 250 }, // blind, but
Note{ B4, 1000 }, Note{ A4, 500 }, // now I
Note{ G4, 1500 }, Note{ silent, 500 } // see.
};
//--------------------------------------------------------------
// clang-format on
}; // namespace pitches

View File

@@ -0,0 +1,42 @@
#pragma once
#include "../pitches.h"
#include <array>
namespace pitches
{
// clang-format off
//--------------------------------------------------------------
constexpr std::array an_die_freude = { // Ode à la joie
// Main thème
Note{ E5, 300 }, Note{ E5, 300 }, Note{ F5, 300 }, Note{ G5, 300 },
Note{ G5, 300 }, Note{ F5, 300 }, Note{ E5, 300 }, Note{ D5, 300 },
Note{ C5, 300 }, Note{ C5, 300 }, Note{ D5, 300 }, Note{ E5, 300 },
Note{ E5, 450 }, Note{ D5, 150 }, Note{ D5, 600 },
Note{ silent, 100 },
// Repeat with varied ending
Note{ E5, 300 }, Note{ E5, 300 }, Note{ F5, 300 }, Note{ G5, 300 },
Note{ G5, 300 }, Note{ F5, 300 }, Note{ E5, 300 }, Note{ D5, 300 },
Note{ C5, 300 }, Note{ C5, 300 }, Note{ D5, 300 }, Note{ E5, 300 },
Note{ D5, 450 }, Note{ C5, 150 }, Note{ C5, 600 },
Note{ silent, 100 },
// Central section
Note{ D5, 300 }, Note{ D5, 300 }, Note{ E5, 300 }, Note{ C5, 300 },
Note{ D5, 300 }, Note{ E5, 150 }, Note{ F5, 150 }, Note{ E5, 300 }, Note{ C5, 300 },
Note{ D5, 300 }, Note{ E5, 150 }, Note{ F5, 150 }, Note{ E5, 300 }, Note{ D5, 300 },
Note{ C5, 300 }, Note{ D5, 300 }, Note{ G4, 600 },
Note{ silent, 100 },
// Final reprise
Note{ E5, 300 }, Note{ E5, 300 }, Note{ F5, 300 }, Note{ G5, 300 },
Note{ G5, 300 }, Note{ F5, 300 }, Note{ E5, 300 }, Note{ D5, 300 },
Note{ C5, 300 }, Note{ C5, 300 }, Note{ D5, 300 }, Note{ E5, 300 },
Note{ D5, 450 }, Note{ C5, 150 }, Note{ C5, 600 },
Note{ silent, 200 }
};
//--------------------------------------------------------------
// clang-format on
}; // namespace pitches

View File

@@ -0,0 +1,36 @@
#pragma once
#include "../pitches.h"
#include <array>
namespace pitches
{
// clang-format off
//--------------------------------------------------------------
constexpr std::array auld_lang_syne = {
// --- COUPLET ---
Note{ D4, 375 }, Note{ G4, 750 }, Note{ FS4, 375 }, Note{ G4, 750 }, Note{ B4, 375 }, // Should auld ac-quain-
Note{ A4, 750 }, Note{ G4, 375 }, Note{ A4, 750 }, Note{ B4, 375 }, // -tance be for-got,
Note{ G4, 750 }, Note{ G4, 375 }, Note{ B4, 750 }, Note{ D5, 375 }, // and ne-ver brought to
Note{ E5, 1500 }, Note{ silent, 100 }, // mind?
Note{ E5, 375 }, Note{ D5, 750 }, Note{ B4, 375 }, Note{ B4, 750 }, Note{ G4, 375 }, // Should auld ac-quain-
Note{ A4, 750 }, Note{ G4, 375 }, Note{ A4, 750 }, Note{ B4, 375 }, // -tance be for-got,
Note{ G4, 750 }, Note{ E4, 375 }, Note{ E4, 750 }, Note{ D4, 375 }, // and days of auld lang
Note{ G4, 1500 }, Note{ silent, 200 }, // syne?
// --- REFRAIN ---
Note{ E5, 375 }, Note{ D5, 750 }, Note{ B4, 375 }, Note{ B4, 750 }, Note{ G4, 375 }, // For auld lang syne,
Note{ A4, 750 }, Note{ G4, 375 }, Note{ A4, 750 }, Note{ E5, 375 }, // my dear,
Note{ D5, 750 }, Note{ B4, 375 }, Note{ B4, 750 }, Note{ D5, 375 }, // for auld lang
Note{ E5, 1500 }, Note{ silent, 100 }, // syne,
Note{ E5, 375 }, Note{ D5, 750 }, Note{ B4, 375 }, Note{ B4, 750 }, Note{ G4, 375 }, // we'll take a cup o'
Note{ A4, 750 }, Note{ G4, 375 }, Note{ A4, 750 }, Note{ B4, 375 }, // kind-ness yet,
Note{ G4, 750 }, Note{ E4, 375 }, Note{ E4, 750 }, Note{ D4, 375 }, // for auld lang
Note{ G4, 1500 } // syne.
};
//--------------------------------------------------------------
// clang-format on
}; // namespace pitches

View File

@@ -0,0 +1,41 @@
#pragma once
#include "../pitches.h"
#include <array>
namespace pitches
{
// clang-format off
//--------------------------------------------------------------
constexpr std::array canon_pachelbel = {
// --- LE THÈME DE BASE (La structure de 8 notes) ---
Note{ D5, 1000 }, Note{ A4, 1000 },
Note{ B4, 1000 }, Note{ FS4, 1000 },
Note{ G4, 1000 }, Note{ D4, 1000 },
Note{ G4, 1000 }, Note{ A4, 1000 },
// --- VARIATION 1 (Mélodie classique) ---
Note{ FS5, 1000 }, Note{ E5, 1000 },
Note{ D5, 1000 }, Note{ CS5, 1000 },
Note{ B4, 1000 }, Note{ A4, 1000 },
Note{ B4, 1000 }, Note{ CS5, 1000 },
// --- VARIATION 2 (Plus fluide) ---
Note{ D5, 500 }, Note{ CS5, 500 }, Note{ D5, 500 }, Note{ FS4, 500 },
Note{ A4, 500 }, Note{ G4, 500 }, Note{ FS4, 500 }, Note{ D4, 500 },
Note{ FS4, 500 }, Note{ E4, 500 }, Note{ D4, 500 }, Note{ B3, 500 },
Note{ D4, 500 }, Note{ CS4, 500 }, Note{ B3, 500 }, Note{ A3, 500 },
// --- VARIATION 3 (Les célèbres triolets) ---
Note{ G4, 500 }, Note{ FS4, 500 }, Note{ G4, 500 }, Note{ B4, 500 },
Note{ A4, 500 }, Note{ G4, 500 }, Note{ FS4, 500 }, Note{ E4, 500 },
Note{ D4, 500 }, Note{ E4, 500 }, Note{ FS4, 500 }, Note{ G4, 500 },
Note{ A4, 500 }, Note{ B4, 500 }, Note{ CS5, 500 }, Note{ A4, 500 },
// --- FINAL ---
Note{ D5, 2000 }
};
//--------------------------------------------------------------
// clang-format on
}; // namespace pitches

View File

@@ -0,0 +1,46 @@
#pragma once
#include "../pitches.h"
#include <array>
namespace pitches
{
// clang-format off
//--------------------------------------------------------------
constexpr std::array au_clair_lune = {
// "Au clair de la lune"
Note{ C4, 400 }, Note{ C4, 400 }, Note{ C4, 400 }, Note{ D4, 400 },
Note{ E4, 800 }, Note{ D4, 800 },
// "Mon ami Pierrot"
Note{ C4, 400 }, Note{ E4, 400 }, Note{ D4, 400 }, Note{ D4, 400 },
Note{ C4, 1200 }, Note{ silent, 200 },
// "Prête-moi ta plume"
Note{ C4, 400 }, Note{ C4, 400 }, Note{ C4, 400 }, Note{ D4, 400 },
Note{ E4, 800 }, Note{ D4, 800 },
// "Pour écrire un mot"
Note{ C4, 400 }, Note{ E4, 400 }, Note{ D4, 400 }, Note{ D4, 400 },
Note{ C4, 1200 }, Note{ silent, 200 },
// "Ma chandelle est morte"
Note{ D4, 400 }, Note{ D4, 400 }, Note{ D4, 400 }, Note{ D4, 400 },
Note{ A3, 800 }, Note{ A3, 800 },
// "Je n'ai plus de feu"
Note{ D4, 400 }, Note{ C4, 400 }, Note{ B3, 400 }, Note{ A3, 400 },
Note{ G3, 1200 }, Note{ silent, 200 },
// "Ouvre-moi ta porte"
Note{ C4, 400 }, Note{ C4, 400 }, Note{ C4, 400 }, Note{ D4, 400 },
Note{ E4, 800 }, Note{ D4, 800 },
// "Pour l'amour de Dieu"
Note{ C4, 400 }, Note{ E4, 400 }, Note{ D4, 400 }, Note{ D4, 400 },
Note{ C4, 1200 }, Note{ silent, 200 }
};
//--------------------------------------------------------------
// clang-format on
}; // namespace pitches

View File

@@ -0,0 +1,45 @@
#pragma once
#include "../pitches.h"
#include <array>
namespace pitches
{
// clang-format off
//--------------------------------------------------------------
constexpr std::array douce_nuit = {
// "Douce nuit, sainte nuit"
Note{ G4, 900 }, Note{ A4, 300 }, Note{ G4, 600 },
Note{ E4, 1200 }, Note{ silent, 100 },
Note{ G4, 900 }, Note{ A4, 300 }, Note{ G4, 600 },
Note{ E4, 1200 }, Note{ silent, 100 },
// "Dans les cieux, l'astre luit"
Note{ D5, 1200 }, Note{ D5, 600 },
Note{ B4, 1200 }, Note{ silent, 100 },
Note{ C5, 1200 }, Note{ C5, 600 },
Note{ G4, 1200 }, Note{ silent, 100 },
// "Le mystère annoncé"
Note{ A4, 1200 }, Note{ A4, 600 },
Note{ C5, 900 }, Note{ B4, 300 }, Note{ A4, 600 },
Note{ G4, 900 }, Note{ A4, 300 }, Note{ G4, 600 },
Note{ E4, 1200 }, Note{ silent, 100 },
// "S'accomplit cette nuit"
Note{ A4, 1200 }, Note{ A4, 600 },
Note{ C5, 900 }, Note{ B4, 300 }, Note{ A4, 600 },
Note{ G4, 900 }, Note{ A4, 300 }, Note{ G4, 600 },
Note{ E4, 1200 }, Note{ silent, 100 },
// "Noël! Noël! Voici le Rédempteur"
Note{ D5, 1200 }, Note{ D5, 600 },
Note{ F5, 900 }, Note{ D5, 300 }, Note{ B4, 600 },
Note{ C5, 1800 }, Note{ silent, 100 },
Note{ E5, 1800 },
Note{ C5, 2400 }, Note{ silent, 200 }
};
//--------------------------------------------------------------
// clang-format on
}; // namespace pitches

View File

@@ -0,0 +1,31 @@
#pragma once
#include "../pitches.h"
#include <array>
namespace pitches
{
// clang-format off
//--------------------------------------------------------------
constexpr std::array frere_jacques = {
// "Frère Jacques, Frère Jacques"
Note{ C4, 400 }, Note{ D4, 400 }, Note{ E4, 400 }, Note{ C4, 400 },
Note{ C4, 400 }, Note{ D4, 400 }, Note{ E4, 400 }, Note{ C4, 400 },
// "Dormez-vous? Dormez-vous?"
Note{ E4, 400 }, Note{ F4, 400 }, Note{ G4, 800 },
Note{ E4, 400 }, Note{ F4, 400 }, Note{ G4, 800 },
// "Sonnez les matines, Sonnez les matines"
Note{ G4, 300 }, Note{ A4, 120 }, Note{ G4, 180 }, Note{ F4, 280 }, Note{ E4, 400 }, Note{ C4, 400 },
Note{ G4, 300 }, Note{ A4, 120 }, Note{ G4, 180 }, Note{ F4, 280 }, Note{ E4, 400 }, Note{ C4, 400 },
// "Ding, dang, dong. Ding, dang, dong."
Note{ C4, 400 }, Note{ G3, 400 }, Note{ C4, 800 },
Note{ C4, 400 }, Note{ G3, 400 }, Note{ C4, 800 },
Note{ silent, 200 }
};
//--------------------------------------------------------------
// clang-format on
}; // namespace pitches

View File

@@ -0,0 +1,32 @@
#pragma once
#include "../pitches.h"
#include <array>
namespace pitches
{
// clang-format off
//--------------------------------------------------------------
constexpr std::array fur_elise = {
// Introduction célèbre (répétée 2 fois)
Note{ E5, 150 }, Note{ DS5, 150 }, Note{ E5, 150 }, Note{ DS5, 150 },
Note{ E5, 150 }, Note{ B4, 150 }, Note{ D5, 150 }, Note{ C5, 150 },
Note{ A4, 300 }, Note{ silent, 150 },
Note{ C4, 150 }, Note{ E4, 150 }, Note{ A4, 150 },
Note{ B4, 300 }, Note{ silent, 150 },
Note{ E4, 150 }, Note{ GS4, 150 }, Note{ B4, 150 },
Note{ C5, 300 }, Note{ silent, 150 },
Note{ E4, 150 }, Note{ E5, 150 }, Note{ DS5, 150 },
// Répétition
Note{ E5, 150 }, Note{ DS5, 150 }, Note{ E5, 150 }, Note{ B4, 150 },
Note{ D5, 150 }, Note{ C5, 150 }, Note{ A4, 300 }, Note{ silent, 150 },
Note{ C4, 150 }, Note{ E4, 150 }, Note{ A4, 150 },
Note{ B4, 300 }, Note{ silent, 150 },
Note{ E4, 150 }, Note{ C5, 150 }, Note{ B4, 150 },
Note{ A4, 450 }, Note{ silent, 150 }
};
//--------------------------------------------------------------
// clang-format on
}; // namespace pitches

View File

@@ -0,0 +1,34 @@
#pragma once
#include "../pitches.h"
#include <array>
namespace pitches
{
// clang-format off
//--------------------------------------------------------------
constexpr std::array god_save_the_queen = {
// --- SECTION 1 ---
Note{ G4, 600 }, Note{ G4, 600 }, Note{ A4, 600 }, // God save our
Note{ FS4, 900 }, Note{ G4, 300 }, Note{ A4, 600 }, // gra-cious Queen (ou King)
Note{ B4, 600 }, Note{ B4, 600 }, Note{ C5, 600 }, // Long live our
Note{ B4, 900 }, Note{ A4, 300 }, Note{ G4, 600 }, // no-ble Queen
Note{ A4, 600 }, Note{ G4, 600 }, Note{ FS4, 600 }, // God save the
Note{ G4, 1200 }, Note{ silent, 300 }, // Queen!
// --- SECTION 2 ---
Note{ D5, 600 }, Note{ D5, 600 }, Note{ D5, 600 }, // Send her vic-
Note{ D5, 900 }, Note{ C5, 300 }, Note{ B4, 600 }, // -to-ri-ous
Note{ C5, 600 }, Note{ C5, 600 }, Note{ C5, 600 }, // Hap-py and
Note{ C5, 900 }, Note{ B4, 300 }, Note{ A4, 600 }, // glo-ri-ous
// --- FINAL ---
Note{ B4, 450 }, Note{ C5, 150 }, Note{ B4, 300 }, Note{ A4, 300 }, Note{ G4, 600 }, // Long to reign
Note{ B4, 600 }, Note{ C5, 600 }, Note{ D5, 600 }, // o - ver us
Note{ E5, 450 }, Note{ C5, 150 }, Note{ B4, 600 }, Note{ A4, 600 }, // God save the
Note{ G4, 1800 } // Queen!
};
//--------------------------------------------------------------
// clang-format on
}; // namespace pitches

View File

@@ -0,0 +1,38 @@
#pragma once
#include "../pitches.h"
#include <array>
namespace pitches
{
// clang-format off
//--------------------------------------------------------------
constexpr std::array greensleeves = {
// --- Part A (major theme: "Alas, my love, you do me wrong") ---
Note{ A4, 300 },
Note{ C5, 600 }, Note{ D5, 300 }, Note{ E5, 450 }, Note{ F5, 150 }, Note{ E5, 300 },
Note{ D5, 600 }, Note{ B4, 300 }, Note{ G4, 450 }, Note{ A4, 150 }, Note{ B4, 300 },
Note{ C5, 600 }, Note{ A4, 300 }, Note{ A4, 450 }, Note{ GS4, 150 }, Note{ A4, 300 },
Note{ B4, 600 }, Note{ GS4, 300 }, Note{ E4, 500 }, Note{ silent, 100 },
Note{ A4, 300 },
Note{ C5, 600 }, Note{ D5, 300 }, Note{ E5, 450 }, Note{ F5, 150 }, Note{ E5, 300 },
Note{ D5, 600 }, Note{ B4, 300 }, Note{ G4, 450 }, Note{ A4, 150 }, Note{ B4, 300 },
Note{ C5, 450 }, Note{ B4, 150 }, Note{ A4, 300 }, Note{ GS4, 450 }, Note{ FS4, 150 }, Note{ GS4, 300 },
Note{ A4, 900 }, Note{ A4, 800 }, Note{ silent, 100 },
// --- Part B (minor theme: "Greensleeves was all my joy") ---
Note{ G5, 900 }, Note{ G5, 450 }, Note{ F5, 150 }, Note{ E5, 300 },
Note{ D5, 600 }, Note{ B4, 300 }, Note{ G4, 450 }, Note{ A4, 150 }, Note{ B4, 300 },
Note{ C5, 600 }, Note{ A4, 300 }, Note{ A4, 450 }, Note{ GS4, 150 }, Note{ A4, 300 },
Note{ B4, 600 }, Note{ GS4, 300 }, Note{ E4, 800 }, Note{ silent, 100 },
Note{ G5, 900 }, Note{ G5, 450 }, Note{ F5, 150 }, Note{ E5, 300 },
Note{ D5, 600 }, Note{ B4, 300 }, Note{ G4, 450 }, Note{ A4, 150 }, Note{ B4, 300 },
Note{ C5, 450 }, Note{ B4, 150 }, Note{ A4, 300 }, Note{ GS4, 450 }, Note{ FS4, 150 }, Note{ GS4, 300 },
Note{ A4, 1200 }
};
//--------------------------------------------------------------
// clang-format on
}; // namespace pitches

View File

@@ -0,0 +1,35 @@
#pragma once
#include "../pitches.h"
#include <array>
namespace pitches
{
// clang-format off
//--------------------------------------------------------------
constexpr std::array happy_birthday = {
// "Happy birthday to you"
Note{ C4, 300 }, Note{ C4, 150 }, Note{ D4, 600 },
Note{ C4, 600 }, Note{ F4, 600 },
Note{ E4, 1200 }, Note{ silent, 100 },
// "Happy birthday to you"
Note{ C4, 300 }, Note{ C4, 150 }, Note{ D4, 600 },
Note{ C4, 600 }, Note{ G4, 600 },
Note{ F4, 1200 }, Note{ silent, 100 },
// "Happy birthday dear [name]"
Note{ C4, 300 }, Note{ C4, 150 }, Note{ C5, 600 },
Note{ A4, 600 }, Note{ F4, 600 },
Note{ E4, 600 }, Note{ D4, 600 },
Note{ silent, 100 },
// "Happy birthday to you"
Note{ AS4, 300 }, Note{ AS4, 150 }, Note{ A4, 600 },
Note{ F4, 600 }, Note{ G4, 600 },
Note{ F4, 1200 }, Note{ silent, 200 }
};
//--------------------------------------------------------------
// clang-format on
}; // namespace pitches

View File

@@ -0,0 +1,37 @@
#pragma once
#include "../pitches.h"
#include <array>
namespace pitches
{
// clang-format off
//--------------------------------------------------------------
constexpr std::array indiana_jones = {
// --- MOTIF CÉLÈBRE (L'appel) ---
Note{ E4, 250 }, Note{ F4, 150 }, Note{ G4, 150 }, Note{ C5, 600 }, // Ta-ta-ta-Taaa !
Note{ silent, 50 },
Note{ D4, 250 }, Note{ E4, 150 }, Note{ F4, 900 }, // Ta-ta-Taaaa
Note{ silent, 50 },
Note{ G4, 250 }, Note{ A4, 150 }, Note{ B4, 150 }, Note{ F5, 600 }, // Ta-ta-ta-Taaa !
Note{ silent, 50 },
Note{ A4, 250 }, Note{ B4, 150 }, Note{ C5, 450 }, Note{ D5, 450 }, Note{ E5, 450 }, // Montée finale
// --- DEUXIÈME PHRASE (Le thème principal) ---
Note{ E4, 150 }, Note{ F4, 150 }, Note{ G4, 150 }, Note{ C5, 600 },
Note{ silent, 50 },
Note{ D5, 150 }, Note{ E5, 150 }, Note{ F5, 900 },
Note{ silent, 50 },
Note{ G5, 150 }, Note{ G5, 150 }, // Les deux notes rapides avant la fin
Note{ E5, 450 }, Note{ D5, 150 }, Note{ G5, 450 }, Note{ E5, 150 },
Note{ D5, 450 }, Note{ G5, 150 }, Note{ E5, 450 }, Note{ D5, 150 },
// Résolution
Note{ C5, 900 }
};
//--------------------------------------------------------------
// clang-format on
}; // namespace pitches

View File

@@ -0,0 +1,39 @@
#pragma once
#include "../pitches.h"
#include <array>
namespace pitches
{
// clang-format off
//--------------------------------------------------------------
constexpr std::array jingle_bells = {
// "Dashing through the snow"
Note{ E5, 400 }, Note{ E5, 400 }, Note{ E5, 800 },
Note{ E5, 400 }, Note{ E5, 400 }, Note{ E5, 800 },
Note{ E5, 400 }, Note{ G5, 400 }, Note{ C5, 400 }, Note{ D5, 400 },
Note{ E5, 1200 }, Note{ silent, 100 },
// "In a one-horse open sleigh"
Note{ F5, 400 }, Note{ F5, 400 }, Note{ F5, 400 }, Note{ F5, 400 },
Note{ F5, 400 }, Note{ E5, 400 }, Note{ E5, 400 }, Note{ E5, 200 }, Note{ E5, 200 },
Note{ E5, 400 }, Note{ D5, 400 }, Note{ D5, 400 }, Note{ E5, 400 },
Note{ D5, 800 }, Note{ G5, 800 },
Note{ silent, 100 },
// Refrain: "Jingle bells, jingle bells"
Note{ E5, 400 }, Note{ E5, 400 }, Note{ E5, 800 },
Note{ E5, 400 }, Note{ E5, 400 }, Note{ E5, 800 },
Note{ E5, 400 }, Note{ G5, 400 }, Note{ C5, 400 }, Note{ D5, 400 },
Note{ E5, 1200 }, Note{ silent, 100 },
// "Oh what fun it is to ride"
Note{ F5, 400 }, Note{ F5, 400 }, Note{ F5, 400 }, Note{ F5, 400 },
Note{ F5, 400 }, Note{ E5, 400 }, Note{ E5, 400 }, Note{ E5, 200 }, Note{ E5, 200 },
Note{ G5, 400 }, Note{ G5, 400 }, Note{ F5, 400 }, Note{ D5, 400 },
Note{ C5, 1200 }, Note{ silent, 200 }
};
//--------------------------------------------------------------
// clang-format on
}; // namespace pitches

View File

@@ -0,0 +1,61 @@
#pragma once
#include "../pitches.h"
#include <array>
namespace pitches
{
// clang-format off
//--------------------------------------------------------------
constexpr std::array mario = {
// --- L'INTRODUCTION (Fanfare) ---
Note{ E5, 125 }, Note{ E5, 125 }, Note{ silent, 125 }, Note{ E5, 125 },
Note{ silent, 125 }, Note{ C5, 125 }, Note{ E5, 125 }, Note{ silent, 125 },
Note{ G5, 125 }, Note{ silent, 375 }, Note{ G4, 125 }, Note{ silent, 375 },
// --- SECTION A (Le Thème Principal) ---
Note{ C5, 250 }, Note{ G4, 250 }, Note{ E4, 250 },
Note{ A4, 250 }, Note{ B4, 250 }, Note{ AS4, 125 }, Note{ A4, 250 },
Note{ G4, 175 }, Note{ E5, 175 }, Note{ G5, 175 },
Note{ A5, 250 }, Note{ F5, 125 }, Note{ G5, 125 },
Note{ silent, 125 }, Note{ E5, 125 }, Note{ silent, 125 }, Note{ C5, 125 },
Note{ D5, 125 }, Note{ B4, 125 }, Note{ silent, 250 },
// --- REPRISE SECTION A ---
Note{ C5, 250 }, Note{ G4, 250 }, Note{ E4, 250 },
Note{ A4, 250 }, Note{ B4, 250 }, Note{ AS4, 125 }, Note{ A4, 250 },
Note{ G4, 175 }, Note{ E5, 175 }, Note{ G5, 175 },
Note{ A5, 250 }, Note{ F5, 125 }, Note{ G5, 125 },
Note{ silent, 125 }, Note{ E5, 125 }, Note{ silent, 125 }, Note{ C5, 125 },
Note{ D5, 125 }, Note{ B4, 125 }, Note{ silent, 250 },
// --- SECTION B (La Descente) ---
Note{ silent, 250 }, Note{ G5, 125 }, Note{ FS5, 125 }, Note{ F5, 125 },
Note{ DS5, 250 }, Note{ E5, 250 }, Note{ silent, 125 },
Note{ GS4, 125 }, Note{ A4, 125 }, Note{ C5, 125 }, Note{ silent, 125 },
Note{ A4, 125 }, Note{ C5, 125 }, Note{ D5, 125 },
Note{ silent, 250 }, Note{ G5, 125 }, Note{ FS5, 125 }, Note{ F5, 125 },
Note{ DS5, 250 }, Note{ E5, 250 }, Note{ silent, 125 },
Note{ C6, 125 }, Note{ silent, 125 }, Note{ C6, 125 }, Note{ C6, 125 },
Note{ silent, 250 }, Note{ G4, 125 }, Note{ silent, 250 },
// --- SECTION C (Le Pont - Rythme Syncopé) ---
Note{ C5, 250 }, Note{ G4, 250 }, Note{ E4, 250 },
Note{ A4, 250 }, Note{ B4, 250 }, Note{ AS4, 125 }, Note{ A4, 250 },
Note{ G4, 175 }, Note{ E5, 175 }, Note{ G5, 175 },
Note{ A5, 250 }, Note{ F5, 125 }, Note{ G5, 125 },
Note{ silent, 125 }, Note{ E5, 125 }, Note{ silent, 125 }, Note{ C5, 125 },
Note{ D5, 125 }, Note{ B4, 125 }, Note{ silent, 250 },
// Final de la boucle (Transition vers le début)
Note{ E5, 125 }, Note{ C5, 250 }, Note{ G4, 250 }, Note{ GS4, 125 },
Note{ A4, 250 }, Note{ F5, 125 }, Note{ F5, 125 }, Note{ A4, 250 },
Note{ B4, 125 }, Note{ A5, 125 }, Note{ A5, 125 }, Note{ A5, 125 },
Note{ G5, 125 }, Note{ F5, 125 }, Note{ E5, 125 }, Note{ C5, 125 },
Note{ A4, 125 }, Note{ G4, 125 }, Note{ silent, 500 }
};
//--------------------------------------------------------------
// clang-format on
}; // namespace pitches

View File

@@ -0,0 +1,32 @@
#pragma once
#include "../pitches.h"
#include <array>
namespace pitches
{
// clang-format off
//--------------------------------------------------------------
constexpr std::array marseillaise = {
// --- Allons enfants de la Patrie ---
Note{ D4, 450 }, Note{ D4, 150 },
Note{ G4, 600 }, Note{ G4, 600 }, Note{ A4, 600 }, Note{ A4, 600 },
Note{ D5, 900 }, Note{ B4, 300 }, Note{ G4, 600 }, Note{ silent, 50 },
// --- Le jour de gloire est arrivé ---
Note{ G4, 450 }, Note{ B4, 150 }, Note{ D5, 600 }, Note{ B4, 600 }, Note{ G4, 600 },
Note{ A4, 1200 }, Note{ silent, 200 },
// --- Aux armes citoyens ! (Refrain) ---
Note{ A4, 450 }, Note{ B4, 150 }, Note{ C5, 600 }, Note{ C5, 600 },
Note{ B4, 600 }, Note{ A4, 600 }, Note{ G4, 600 },
Note{ FS4, 600 }, Note{ G4, 600 }, Note{ A4, 900 }, Note{ D4, 300 },
// --- Formez vos bataillons ---
Note{ B4, 600 }, Note{ C5, 600 }, Note{ D5, 600 }, Note{ G4, 600 },
Note{ B4, 900 }, Note{ A4, 300 }, Note{ G4, 1200 }
};
//--------------------------------------------------------------
// clang-format on
}; // namespace pitches

View File

@@ -0,0 +1,38 @@
#pragma once
#include "../pitches.h"
#include <array>
namespace pitches
{
// clang-format off
//--------------------------------------------------------------
constexpr std::array tetris = {
// Main theme
Note{ E5, 250 }, Note{ silent, 62 },
Note{ B4, 125 }, Note{ C5, 125 }, Note{ D5, 250 }, Note{ silent, 62 },
Note{ C5, 125 }, Note{ B4, 125 }, Note{ A4, 250 }, Note{ silent, 62 },
Note{ A4, 125 }, Note{ C5, 125 }, Note{ E5, 250 }, Note{ silent, 62 },
Note{ D5, 125 }, Note{ C5, 125 }, Note{ B4, 375 }, Note{ silent, 62 },
Note{ C5, 125 }, Note{ D5, 250 }, Note{ silent, 62 },
Note{ E5, 250 }, Note{ silent, 62 },
Note{ C5, 250 }, Note{ silent, 62 },
Note{ A4, 250 }, Note{ silent, 62 },
Note{ A4, 250 }, Note{ silent, 500 },
// Variation 1
Note{ D5, 250 }, Note{ silent, 62 },
Note{ F5, 125 }, Note{ A5, 250 }, Note{ silent, 62 },
Note{ G5, 125 }, Note{ F5, 125 }, Note{ E5, 375 }, Note{ silent, 62 },
Note{ C5, 125 }, Note{ E5, 250 }, Note{ silent, 62 },
Note{ D5, 125 }, Note{ C5, 125 }, Note{ B4, 250 }, Note{ silent, 62 },
Note{ B4, 125 }, Note{ C5, 125 }, Note{ D5, 250 }, Note{ silent, 62 },
Note{ E5, 250 }, Note{ silent, 62 },
Note{ C5, 250 }, Note{ silent, 62 },
Note{ A4, 250 }, Note{ silent, 62 },
Note{ A4, 250 }, Note{ silent, 500 }
};
//--------------------------------------------------------------
// clang-format on
}; // namespace pitches

View File

@@ -0,0 +1,39 @@
#pragma once
#include "../pitches.h"
#include <array>
namespace pitches
{
// clang-format off
//--------------------------------------------------------------
constexpr std::array twinkle_twinkle = {
// "Twinkle, twinkle, little star"
Note{ C4, 400 }, Note{ C4, 400 }, Note{ G4, 400 }, Note{ G4, 400 },
Note{ A4, 400 }, Note{ A4, 400 }, Note{ G4, 800 },
// "How I wonder what you are"
Note{ F4, 400 }, Note{ F4, 400 }, Note{ E4, 400 }, Note{ E4, 400 },
Note{ D4, 400 }, Note{ D4, 400 }, Note{ C4, 800 },
// "Up above the world so high"
Note{ G4, 400 }, Note{ G4, 400 }, Note{ F4, 400 }, Note{ F4, 400 },
Note{ E4, 400 }, Note{ E4, 400 }, Note{ D4, 800 },
// "Like a diamond in the sky"
Note{ G4, 400 }, Note{ G4, 400 }, Note{ F4, 400 }, Note{ F4, 400 },
Note{ E4, 400 }, Note{ E4, 400 }, Note{ D4, 800 },
// "Twinkle, twinkle, little star"
Note{ C4, 400 }, Note{ C4, 400 }, Note{ G4, 400 }, Note{ G4, 400 },
Note{ A4, 400 }, Note{ A4, 400 }, Note{ G4, 800 },
// "How I wonder what you are"
Note{ F4, 400 }, Note{ F4, 400 }, Note{ E4, 400 }, Note{ E4, 400 },
Note{ D4, 400 }, Note{ D4, 400 }, Note{ C4, 800 },
Note{ silent, 200 }
};
//--------------------------------------------------------------
// clang-format on
}; // namespace pitches

View File

@@ -0,0 +1,39 @@
#pragma once
#include "../pitches.h"
#include <array>
namespace pitches
{
// clang-format off
//--------------------------------------------------------------
constexpr std::array vive_le_vent = {
// "Vive le vent, vive le vent"
Note{ E5, 400 }, Note{ E5, 400 }, Note{ E5, 800 },
Note{ E5, 400 }, Note{ E5, 400 }, Note{ E5, 800 },
Note{ E5, 400 }, Note{ G5, 400 }, Note{ C5, 400 }, Note{ D5, 400 },
Note{ E5, 1200 }, Note{ silent, 100 },
// "Vive le vent d'hiver"
Note{ F5, 400 }, Note{ F5, 400 }, Note{ F5, 400 }, Note{ F5, 400 },
Note{ F5, 400 }, Note{ E5, 400 }, Note{ E5, 400 }, Note{ E5, 200 }, Note{ E5, 200 },
Note{ E5, 400 }, Note{ D5, 400 }, Note{ D5, 400 }, Note{ E5, 400 },
Note{ D5, 800 }, Note{ G5, 800 },
Note{ silent, 100 },
// "Qui s'en va sifflant, soufflant"
Note{ E5, 400 }, Note{ E5, 400 }, Note{ E5, 800 },
Note{ E5, 400 }, Note{ E5, 400 }, Note{ E5, 800 },
Note{ E5, 400 }, Note{ G5, 400 }, Note{ C5, 400 }, Note{ D5, 400 },
Note{ E5, 1200 }, Note{ silent, 100 },
// "Dans les grands sapins verts"
Note{ F5, 400 }, Note{ F5, 400 }, Note{ F5, 400 }, Note{ F5, 400 },
Note{ F5, 400 }, Note{ E5, 400 }, Note{ E5, 400 }, Note{ E5, 200 }, Note{ E5, 200 },
Note{ G5, 400 }, Note{ G5, 400 }, Note{ F5, 400 }, Note{ D5, 400 },
Note{ C5, 1200 }, Note{ silent, 200 }
};
//--------------------------------------------------------------
// clang-format on
}; // namespace pitches