Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Music.cpp@0:430445550a2f, 2022-11-27 (annotated)
- Committer:
- dpavetic
- Date:
- Sun Nov 27 10:36:47 2022 +0000
- Revision:
- 0:430445550a2f
Initial version of Music library with sounds, pitches and tempos.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| dpavetic | 0:430445550a2f | 1 | // Melodije i tempo-i su preuzeti sa interneta |
| dpavetic | 0:430445550a2f | 2 | |
| dpavetic | 0:430445550a2f | 3 | #include "Music.h" |
| dpavetic | 0:430445550a2f | 4 | #include "pitches.h" |
| dpavetic | 0:430445550a2f | 5 | #include "tempos.h" |
| dpavetic | 0:430445550a2f | 6 | |
| dpavetic | 0:430445550a2f | 7 | float default_tempo = float(animato); // default tempo - beats per minute |
| dpavetic | 0:430445550a2f | 8 | float current_tempo = default_tempo; |
| dpavetic | 0:430445550a2f | 9 | |
| dpavetic | 0:430445550a2f | 10 | // Holds timings for each defined note/rest time value |
| dpavetic | 0:430445550a2f | 11 | float timings[7] = { |
| dpavetic | 0:430445550a2f | 12 | 60 / float(current_tempo) * 4, 60 / float(current_tempo) * 3, |
| dpavetic | 0:430445550a2f | 13 | 60 / float(current_tempo) * 2, 60 / float(current_tempo), |
| dpavetic | 0:430445550a2f | 14 | 60 / float(current_tempo) / 2, 60 / float(current_tempo) / 4, |
| dpavetic | 0:430445550a2f | 15 | 60 / float(current_tempo) / 8}; |
| dpavetic | 0:430445550a2f | 16 | |
| dpavetic | 0:430445550a2f | 17 | // We wish you a merry Christmas |
| dpavetic | 0:430445550a2f | 18 | float wish_tempo = float(animato); |
| dpavetic | 0:430445550a2f | 19 | |
| dpavetic | 0:430445550a2f | 20 | int wish_melody[] = { |
| dpavetic | 0:430445550a2f | 21 | NOTE_D4, NOTE_G4, NOTE_G4, NOTE_A4, NOTE_G4, NOTE_FS4, NOTE_E4, NOTE_E4, |
| dpavetic | 0:430445550a2f | 22 | NOTE_E4, NOTE_A4, NOTE_A4, NOTE_B4, NOTE_A4, NOTE_G4, NOTE_FS4, NOTE_D4, |
| dpavetic | 0:430445550a2f | 23 | NOTE_D4, NOTE_B4, NOTE_B4, NOTE_C5, NOTE_B4, NOTE_A4, NOTE_G4, NOTE_E4, |
| dpavetic | 0:430445550a2f | 24 | NOTE_D4, NOTE_D4, NOTE_E4, NOTE_A4, NOTE_FS4, NOTE_G4, NOTE_D4, NOTE_G4, |
| dpavetic | 0:430445550a2f | 25 | NOTE_G4, NOTE_G4, NOTE_FS4, NOTE_FS4, NOTE_G4, NOTE_FS4, NOTE_E4, NOTE_D4, |
| dpavetic | 0:430445550a2f | 26 | NOTE_A4, NOTE_B4, NOTE_A4, NOTE_G4, NOTE_D5, NOTE_D4, NOTE_D4, NOTE_D4, |
| dpavetic | 0:430445550a2f | 27 | NOTE_E4, NOTE_A4, NOTE_FS4, NOTE_G4}; |
| dpavetic | 0:430445550a2f | 28 | |
| dpavetic | 0:430445550a2f | 29 | float wish_note_durations[] = { |
| dpavetic | 0:430445550a2f | 30 | crot, crot, quav, quav, quav, quav, crot, crot, crot, crot, quav, |
| dpavetic | 0:430445550a2f | 31 | quav, quav, quav, crot, crot, crot, crot, quav, quav, quav, quav, |
| dpavetic | 0:430445550a2f | 32 | crot, crot, quav, quav, crot, crot, crot, minim, crot, crot, crot, |
| dpavetic | 0:430445550a2f | 33 | crot, minim, crot, crot, crot, crot, minim, crot, crot, crot, crot, |
| dpavetic | 0:430445550a2f | 34 | crot, crot, quav, quav, crot, crot, crot, minim}; |
| dpavetic | 0:430445550a2f | 35 | |
| dpavetic | 0:430445550a2f | 36 | // Silent night |
| dpavetic | 0:430445550a2f | 37 | float silent_night_tempo = float(animato); |
| dpavetic | 0:430445550a2f | 38 | |
| dpavetic | 0:430445550a2f | 39 | int silent_night_melody[] = { |
| dpavetic | 0:430445550a2f | 40 | NOTE_G4, NOTE_A4, NOTE_G4, NOTE_E4, NOTE_G4, NOTE_A4, NOTE_G4, NOTE_E4, |
| dpavetic | 0:430445550a2f | 41 | NOTE_D5, NOTE_D5, NOTE_B4, NOTE_C5, NOTE_C5, NOTE_G4, NOTE_A4, NOTE_A4, |
| dpavetic | 0:430445550a2f | 42 | NOTE_C5, NOTE_B4, NOTE_A4, NOTE_G4, NOTE_A4, NOTE_G4, NOTE_E4, NOTE_A4, |
| dpavetic | 0:430445550a2f | 43 | NOTE_A4, NOTE_C5, NOTE_B4, NOTE_A4, NOTE_G4, NOTE_A4, NOTE_G4, NOTE_E4, |
| dpavetic | 0:430445550a2f | 44 | NOTE_D5, NOTE_D5, NOTE_F5, NOTE_D5, NOTE_B4, NOTE_C5, NOTE_E5, NOTE_C5, |
| dpavetic | 0:430445550a2f | 45 | NOTE_G4, NOTE_E4, NOTE_G4, NOTE_F4, NOTE_D4, NOTE_C4}; |
| dpavetic | 0:430445550a2f | 46 | |
| dpavetic | 0:430445550a2f | 47 | float silent_night_note_durations[] = {crot + quav, quav, |
| dpavetic | 0:430445550a2f | 48 | crot, dot_minim, |
| dpavetic | 0:430445550a2f | 49 | crot + quav, quav, |
| dpavetic | 0:430445550a2f | 50 | crot, dot_minim, |
| dpavetic | 0:430445550a2f | 51 | minim, crot, |
| dpavetic | 0:430445550a2f | 52 | dot_minim, minim, |
| dpavetic | 0:430445550a2f | 53 | crot, dot_minim, |
| dpavetic | 0:430445550a2f | 54 | minim, crot, |
| dpavetic | 0:430445550a2f | 55 | crot + quav, quav, |
| dpavetic | 0:430445550a2f | 56 | crot, crot + quav, |
| dpavetic | 0:430445550a2f | 57 | quav, crot, |
| dpavetic | 0:430445550a2f | 58 | dot_minim, minim, |
| dpavetic | 0:430445550a2f | 59 | crot, crot + quav, |
| dpavetic | 0:430445550a2f | 60 | quav, crot, |
| dpavetic | 0:430445550a2f | 61 | crot + quav, quav, |
| dpavetic | 0:430445550a2f | 62 | crot, dot_minim, |
| dpavetic | 0:430445550a2f | 63 | |
| dpavetic | 0:430445550a2f | 64 | minim, crot, |
| dpavetic | 0:430445550a2f | 65 | crot + quav, quav, |
| dpavetic | 0:430445550a2f | 66 | crot, dot_minim, |
| dpavetic | 0:430445550a2f | 67 | dot_minim, crot, |
| dpavetic | 0:430445550a2f | 68 | crot, crot, |
| dpavetic | 0:430445550a2f | 69 | crot + quav, quav, |
| dpavetic | 0:430445550a2f | 70 | crot, dot_minim + dot_minim}; |
| dpavetic | 0:430445550a2f | 71 | |
| dpavetic | 0:430445550a2f | 72 | // Jingle bells |
| dpavetic | 0:430445550a2f | 73 | float jingle_bells_tempo = float(default_tempo * 2); |
| dpavetic | 0:430445550a2f | 74 | |
| dpavetic | 0:430445550a2f | 75 | int jingle_bells_melody[] = { |
| dpavetic | 0:430445550a2f | 76 | NOTE_B3, NOTE_B3, NOTE_B3, NOTE_B3, NOTE_B3, NOTE_B3, NOTE_B3, |
| dpavetic | 0:430445550a2f | 77 | NOTE_D4, NOTE_G3, NOTE_A3, NOTE_B3, NOTE_C4, NOTE_C4, NOTE_C4, |
| dpavetic | 0:430445550a2f | 78 | NOTE_C4, NOTE_C4, NOTE_B3, NOTE_B3, NOTE_B3, NOTE_B3, NOTE_A3, |
| dpavetic | 0:430445550a2f | 79 | NOTE_A3, NOTE_B3, NOTE_A3, NOTE_D4, NOTE_B3, NOTE_B3, NOTE_B3, |
| dpavetic | 0:430445550a2f | 80 | NOTE_B3, NOTE_B3, NOTE_B3, NOTE_B3, NOTE_D4, NOTE_G3, NOTE_A3, |
| dpavetic | 0:430445550a2f | 81 | NOTE_B3, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_B3, |
| dpavetic | 0:430445550a2f | 82 | NOTE_B3, NOTE_B3, NOTE_D4, NOTE_D4, NOTE_C4, NOTE_A3, NOTE_G3}; |
| dpavetic | 0:430445550a2f | 83 | |
| dpavetic | 0:430445550a2f | 84 | float jingle_bells_note_durations[] = { |
| dpavetic | 0:430445550a2f | 85 | crot, crot, minim, crot, crot, minim, crot, crot, crot, crot, |
| dpavetic | 0:430445550a2f | 86 | semib, crot, crot, crot, crot, crot, crot, crot, crot, crot, |
| dpavetic | 0:430445550a2f | 87 | crot, crot, crot, minim, minim, crot, crot, minim, crot, crot, |
| dpavetic | 0:430445550a2f | 88 | minim, crot, crot, crot, crot, semib, crot, crot, crot, crot, |
| dpavetic | 0:430445550a2f | 89 | crot, crot, crot, crot, crot, crot, crot, crot, semib}; |