Components and supplies
1
Arduino UNO
2
Jumper wires (generic)
1
Resistor 100 ohm
1
Speaker: 0.25W, 8 ohms
1
Solderless Breadboard Half Size
Apps and platforms
1
Arduino IDE
Project description
Code
Let's Make Music Sketch
c_cpp
All you need to make music with Arduino and a simply connected speaker
1// 2// let's make music 3// 4// Ron D Bentley, Stafford, UK, August 2021 5// Modified: 6// Oct 2022 to remove compliler warning re redfinition 7// of macros for some macro locally defined notes, eg B0, B1, etc. 8// Local naming convention for notes now prefixed with "note_". 9// 10// This example and code is in the public domain and 11// may be used without restriction and without warranty. 12// 13// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 14// % music/tone data and functions... % 15// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 16 17// 18// Tempos, by common musical names 19// 20#define grave 40 21#define largo 46 22#define lento 52 23#define adagio 56 24#define larghetto 60 25#define adagietto 66 26#define andante 72 27#define andantino 80 28#define maestroso 88 29#define moderato 100 30#define allegretto 104 31#define animato 120 32#define allegro 132 33#define allegro_assai 144 34#define vivace 160 35#define presto 184 36#define prestissimo 208 37 38// 39// Public constants - reflects the 'pitches.h' file, 40// but with a different (shortened) note naming convention. 41// The values are the frequencies (hz) of the notes. 42// 43#define note_B0 31 44#define note_C1 33 45#define note_CS1 35 46#define note_DF1 35 47#define note_D1 37 48#define note_DS1 39 49#define note_EF1 39 50#define note_E1 41 51#define note_F1 44 52#define note_FS1 46 53#define note_GF1 46 54#define note_G1 49 55#define note_GS1 52 56#define note_AF1 52 57#define note_A1 55 58#define note_AS1 58 59#define note_BF1 58 60#define note_b1 62 61#define note_C2 65 62#define note_CS2 69 63#define note_DF2 69 64#define note_D2 73 65#define note_DS2 78 66#define note_EF2 78 67#define note_E2 82 68#define note_F2 87 69#define note_FS2 93 70#define note_GF2 93 71#define note_G2 98 72#define note_GS2 104 73#define note_AF2 104 74#define note_A2 110 75#define note_as2 117 76#define note_BF2 117 77#define note_B2 123 78#define note_C3 131 79#define note_CS3 139 80#define note_DF3 139 81#define note_D3 147 82#define note_DS3 156 83#define note_EF3 156 84#define note_E3 165 85#define note_F3 175 86#define note_FS3 185 87#define note_GF3 185 88#define note_G3 196 89#define note_GS3 208 90#define note_AF3 208 91#define note_A3 220 92#define note_AS3 233 93#define note_BF3 233 94#define note_B3 247 95#define note_C4 262 // <--------- middle C 96#define note_CS4 277 97#define note_DF4 277 98#define note_D4 294 99#define note_DS4 311 100#define note_EF4 311 101#define note_E4 330 102#define note_F4 349 103#define note_FS4 370 104#define note_GF4 370 105#define note_G4 392 106#define note_GS4 415 107#define note_AF4 415 108#define note_A4 440 109#define note_AS4 466 110#define note_BF4 466 111#define note_B4 494 112#define note_C5 523 113#define note_CS5 554 114#define note_DF5 554 115#define note_D5 587 116#define note_DS5 622 117#define note_EF5 622 118#define note_E5 659 119#define note_F5 698 120#define note_FS5 740 121#define note_GF5 740 122#define note_G5 784 123#define note_GS5 831 124#define note_AF5 831 125#define note_A5 880 126#define note_AS5 932 127#define note_BF5 932 128#define note_B5 988 129#define note_C6 1047 130#define note_CS6 1109 131#define note_DF6 1109 132#define note_D6 1175 133#define note_DS6 1245 134#define note_EF6 1245 135#define note_E6 1319 136#define note_F6 1397 137#define note_FS6 1480 138#define note_GF6 1480 139#define note_G6 1568 140#define note_GS6 1661 141#define note_AF6 1661 142#define note_A6 1760 143#define note_AS6 1865 144#define note_BF6 1865 145#define note_B6 1976 146#define note_C7 2093 147#define note_CS7 2217 148#define note_DF7 2217 149#define note_D7 2349 150#define note_DS7 2489 151#define note_EF7 2489 152#define note_E7 2637 153#define note_F7 2794 154#define note_FS7 2960 155#define note_GF7 2960 156#define note_G7 3136 157#define note_GS7 3322 158#define note_AF7 3322 159#define note_A7 3520 160#define note_AS7 3729 161#define note_BF7 3729 162#define note_B7 3951 163#define note_C8 4186 164#define note_CS8 4435 165#define note_DF8 4435 166#define note_D8 4699 167#define note_DS8 4978 168#define note_EF8 4978 169 170#define speaker 11 // digital pin number for speaker/buzzer 171 172float default_tempo = float(animato); // default tempo - beats per minute 173float current_tempo = default_tempo; 174float timings[7]; // holds timings for each defined note/rest time value 175#define trills_per_crotchet 8 // number of note changes in a trill per crotchet 176float trill_duration; // set depending on the tempo selected 177 178// 179// Standard note/rest duration definitions, set in the set_tempo function 180// 181#define semib timings[0] // 4 beats 182#define dot_minim timings[1] // 3 beats 183#define minim timings[2] // 2 beats 184#define crot timings[3] // 1 beat 185#define quav timings[4] // 1/2 beat 186#define semiq timings[5] // 1/4 beat 187#define demi_semiq timings[6] // 1/8 beat 188 189// 190// Function waits for the given time in seconds, or part thereof. 191// 192void wait(float duration) { 193 uint32_t start; 194 start = millis(); 195 duration = duration * 1000; // convert to milliseconds 196 do { 197 } while (millis() - start <= duration); 198} 199 200// 201// Set tempo by adjusting durations of note/rest timings 202// 203void set_tempo(float new_tempo) { 204 float crotchet_duration; 205 current_tempo = new_tempo; // keep current tempo up to date in case it needs to be queried 206 crotchet_duration = 60 / new_tempo; // timing in seconds for 1 beat 207 semib = crotchet_duration * 4; // semibrieve, 4 beats 208 dot_minim = crotchet_duration * 3; // dotted mimin, 3 beats 209 minim = crotchet_duration * 2; // minim, 2 beats 210 crot = crotchet_duration; // crotchet, 1 beat 211 quav = crotchet_duration / 2; // quaver, 1/2 beat 212 semiq = crotchet_duration / 4; // semiquaver, 1/4 beat 213 demi_semiq = crotchet_duration / 8; // demi-semi-quaver, 1/8 beat 214 215 // Set the note duration time for one note in a trill depending on the 216 // defined number of note changes in a trill per crotchet. 217 trill_duration = crot / trills_per_crotchet; 218} 219 220// 221// Play given note for given duration in seconds, or part thereof. 222// Observe that this function is 'blocking', although the tone 223// function is 'non-blocking', ie control stays with the function 224// until note has completed. 225// 226void play(int note, float note_duration) { 227 tone(speaker, note, note_duration * 1000); // play the given note for the given duration 228 wait(note_duration); // wait for note to complete 229} 230 231// 232// Function performs a basic trill with given two notes for the given duration 233// 234void trill(int note_1, int note_2, float note_duration) { 235 note_duration = note_duration * 1000; // convert to milliseconds 236 uint32_t start = millis(); 237 do { 238 play(note_1, trill_duration); 239 play(note_2, trill_duration); 240 } while (millis() - start < note_duration); 241} 242 243// 244// Rest for given duration in seconds, or part thereof. 245// 246void rest(float rest_duration) { 247 noTone(speaker); // ensure no tone is currently playing 248 wait(rest_duration); // wait for given rest to complete 249} 250 251void setup() { 252 // set up speaker 253 pinMode(speaker, OUTPUT); 254 // set up note/rest timings, based on the default unit beat time (default_tempo) 255 set_tempo(default_tempo); 256} 257 258void loop() { 259 // some music examples... 260 261 middle_C(); 262 wait(3); 263 264 twinkle_twinkle(); 265 wait(3); 266 267 silent_night(); 268 wait(3); 269 270 jingle_bells(); 271 wait(3); 272 273 happy_birthday(); 274 wait(3); 275 276 ditty_1(); 277 wait(3); 278 279 door_bell_1(); 280 wait(3); 281 282 door_bell_2(); 283 wait(3); 284 285 ode_to_joy(); 286 wait(3); 287 288 canon_in_D(); 289 wait(3); 290 291 scarborough_fair(); 292 wait(3); 293 294 // and back to the beginning... 295} 296 297// 298// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 299// % Example out-of-the-box 'shrink-wrapped' music commands % 300// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 301 302 303 304void middle_C() { 305 // 4/4 time 306 // C major scale - up 307 // bar 1 308 play(note_C4, crot); 309 play(note_D4, crot); 310 play(note_E4, crot); 311 play(note_F4, crot); 312 // bar 2 313 play(note_G4, crot); 314 play(note_A4, crot); 315 play(note_B4, crot); 316 play(note_C5, crot); 317 // bar 3 318 rest(semib); 319 // C major scale - down 320 // bar 4 321 play(note_C5, crot); 322 play(note_B4, crot); 323 play(note_A4, crot); 324 play(note_G4, crot); 325 // bar 5 326 play(note_F4, crot); 327 play(note_E4, crot); 328 play(note_D4, crot); 329 play(note_C4, crot); 330} 331 332void twinkle_twinkle() { 333 set_tempo(default_tempo); 334 // 4/4 time 335 // bar 1 - Twinkle, twinkle 336 play(note_C4, crot); 337 play(note_C4, crot); 338 play(note_G4, crot); 339 play(note_G4, crot); 340 // bar 2 - little star 341 play(note_A4, crot); 342 play(note_A4, crot); 343 play(note_G4, crot); 344 rest(crot); 345 // bar 3 - How I wonder 346 play(note_F4, crot); 347 play(note_F4, crot); 348 play(note_E4, crot); 349 play(note_E4, crot); 350 // bar 4 - what you are 351 play(note_D4, crot); 352 play(note_D4, crot); 353 play(note_C4, crot); 354 rest(crot); 355 // bar 5 - Up above the 356 play(note_G4, crot); 357 play(note_G4, crot); 358 play(note_F4, crot); 359 play(note_F4, crot); 360 // bar 6 - world so high 361 play(note_E4, crot); 362 play(note_E4, crot); 363 play(note_D4, crot); 364 rest(crot); 365 // bar 7 - Like a diamond 366 play(note_G4, crot); 367 play(note_G4, crot); 368 play(note_F4, crot); 369 play(note_F4, crot); 370 // bar 8 - in the sky 371 play(note_E4, crot); 372 play(note_E4, crot); 373 play(note_D4, crot); 374 rest(crot); 375 // bar 9 - Twinkle, twinkle 376 play(note_C4, crot); 377 play(note_C4, crot); 378 play(note_G4, crot); 379 play(note_G4, crot); 380 // bar 10 - little star 381 play(note_A4, crot); 382 play(note_A4, crot); 383 play(note_G4, crot); 384 rest(crot); 385 // bar 11 - How I wonder 386 play(note_F4, crot); 387 play(note_F4, crot); 388 play(note_E4, crot); 389 play(note_E4, crot); 390 // bar 12 - what you are 391 play(note_D4, crot); 392 play(note_D4, crot); 393 play(note_C4, crot); 394 rest(crot); 395} 396 397void jingle_bells() { 398 set_tempo(default_tempo * 2); // very lively 399 // 4/4 time 400 // bar 1 401 play(note_B3, crot); 402 play(note_B3, crot); 403 play(note_B3, minim); 404 // bar 2 405 play(note_B3, crot); 406 play(note_B3, crot); 407 play(note_B3, minim); 408 // bar 3 409 play(note_B3, crot); 410 play(note_D4, crot); 411 play(note_G3, crot); 412 play(note_A3, crot); 413 // bar 4 414 play(note_B3, semib); 415 // bar 5 416 play(note_C4, crot); 417 play(note_C4, crot); 418 play(note_C4, crot); 419 play(note_C4, crot); 420 // bar 6 421 play(note_C4, crot); 422 play(note_B3, crot); 423 play(note_B3, crot); 424 play(note_B3, crot); 425 // bar 7 426 play(note_B3, crot); 427 play(note_A3, crot); 428 play(note_A3, crot); 429 play(note_B3, crot); 430 // bar 8 431 play(note_A3, minim); 432 play(note_D4, minim); 433 // bar 9 434 play(note_B3, crot); 435 play(note_B3, crot); 436 play(note_B3, minim); 437 // bar 10 438 play(note_B3, crot); 439 play(note_B3, crot); 440 play(note_B3, minim); 441 // bar 11 442 play(note_B3, crot); 443 play(note_D4, crot); 444 play(note_G3, crot); 445 play(note_A3, crot); 446 // bar 12 447 play(note_B3, semib); 448 // bar 13 449 play(note_C4, crot); 450 play(note_C4, crot); 451 play(note_C4, crot); 452 play(note_C4, crot); 453 // bar 14 454 play(note_C4, crot); 455 play(note_B3, crot); 456 play(note_B3, crot); 457 play(note_B3, crot); 458 // bar 15 459 play(note_D4, crot); 460 play(note_D4, crot); 461 play(note_C4, crot); 462 play(note_A3, crot); 463 // bar 16 464 play(note_G3, semib); 465 set_tempo(default_tempo); // reset tempo 466} 467 468void happy_birthday() { 469 set_tempo(default_tempo); 470 // 3/4 time 471 // bar 1 472 play(note_G3, quav); 473 play(note_G3, quav); 474 play(note_A3, crot); 475 play(note_G3, crot); 476 // bar 2 477 play(note_C4, crot); 478 play(note_B3, minim); 479 // bar 3 480 play(note_G3, quav); 481 play(note_G3, quav); 482 play(note_A3, crot); 483 play(note_G3, crot); 484 // bar 4 485 play(note_D4, crot); 486 play(note_C4, minim); 487 // bar 5 488 play(note_G3, quav); 489 play(note_G3, quav); 490 play(note_G4, crot); 491 play(note_E4, crot); 492 // bar 6 493 play(note_C4, crot); 494 play(note_B3, crot); 495 play(note_A3, crot); 496 // bar 7 497 play(note_F4, quav); 498 play(note_F4, quav); 499 play(note_E4, crot); 500 play(note_C4, crot); 501 // bar 8 502 play(note_D4, crot); 503 play(note_C4, minim); 504} 505 506void ditty_1() { 507 set_tempo(default_tempo * 2); // lively pace 508 // 3/4 time 509 // bar 1 510 play(note_C4, minim); 511 play(note_G3, crot); 512 // bar 2 513 play(note_G3, crot); 514 play(note_GS3, minim); 515 // bar 3 516 play(note_G3, minim); 517 rest(crot); 518 // bar 4 519 play(note_B3, minim); 520 play(note_C4, crot); 521 set_tempo(default_tempo); // reset tempo 522} 523 524void door_bell_1() { 525 set_tempo(default_tempo); 526 // 4/4 time 527 // bar 1 528 play(note_E4, minim); 529 play(note_C4, minim); 530 // bar 2 531 play(note_D4, minim); 532 play(note_G3, minim); 533 // bar 3 534 rest(semib); 535 // bar 4 536 play(note_G3, minim); 537 play(note_D4, minim); 538 // bar 5 539 play(note_E4, minim); 540 play(note_C4, minim); 541} 542 543void door_bell_2() {// basic bing/bong door chime 544 set_tempo(default_tempo * 2); // lively pace 545 // 3/4 time 546 // bar 1 547 play(note_E5, dot_minim); 548 // bar 2 549 play(note_C5, dot_minim); 550 // bar 3 551 rest(dot_minim); 552 // bar 4 553 play(note_E5, dot_minim); 554 // bar 5 555 play(note_C5, dot_minim); 556 set_tempo(default_tempo); // reset tempo 557} 558 559void ode_to_joy() { 560 set_tempo(allegro); 561 // 4/4 time 562 //bar 1 563 play(note_B4, crot); 564 play(note_B4, crot); 565 play(note_C5, crot); 566 play(note_D5, crot); 567 //bar 2 568 play(note_D5, crot); 569 play(note_C5, crot); 570 play(note_B4, crot); 571 play(note_A4, crot); 572 //bar 3 573 play(note_G4, crot); 574 play(note_G4, crot); 575 play(note_A4, crot); 576 play(note_B4, crot); 577 //bar 4 578 play(note_B4, crot + quav); 579 play(note_A4, quav); 580 play(note_A4, minim); 581 //bar 5 582 play(note_B4, crot); 583 play(note_B4, crot); 584 play(note_C5, crot); 585 play(note_D5, crot); 586 //bar 6 587 play(note_D5, crot); 588 play(note_C5, crot); 589 play(note_B4, crot); 590 play(note_A4, crot); 591 //bar 7 592 play(note_G4, crot); 593 play(note_G4, crot); 594 play(note_A4, crot); 595 play(note_B4, crot); 596 //bar 8 597 play(note_A4, crot + quav); 598 play(note_G4, quav); 599 play(note_G4, minim); 600 //bar 9 601 play(note_A4, crot); 602 play(note_A4, crot); 603 play(note_B4, crot); 604 play(note_G4, crot); 605 //bar 10 606 play(note_A4, crot); 607 play(note_B4, quav); 608 play(note_C5, quav); 609 play(note_B4, crot); 610 play(note_G4, crot); 611 //bar 11 612 play(note_A4, crot); 613 play(note_B4, quav); 614 play(note_C5, quav); 615 play(note_B4, crot); 616 play(note_A4, crot); 617 //bar 12 618 play(note_G4, crot); 619 play(note_A4, crot); 620 play(note_D4, minim); 621 //bar 13 622 play(note_B4, crot); 623 play(note_B4, crot); 624 play(note_C5, crot); 625 play(note_D5, crot); 626 //bar 14 627 play(note_D5, crot); 628 play(note_C5, crot); 629 play(note_B4, crot); 630 play(note_A4, crot); 631 //bar 15 632 play(note_G4, crot); 633 play(note_G4, crot); 634 play(note_A4, crot); 635 play(note_B4, crot); 636 //bar 16 637 play(note_A4, crot + quav); 638 play(note_G4, quav); 639 play(note_G4, minim); 640} 641 642void canon_in_D() { 643 set_tempo(110); 644 // 4/4 time 645 // melody starts at bar 5 646 // bar 5 647 play(note_FS5, minim); 648 play(note_E5, minim); 649 // bar 6 650 play(note_D5, minim); 651 play(note_CS5, minim); 652 // bar 7 653 play(note_B4, minim); 654 play(note_A4, minim); 655 // bar 8 656 play(note_B4, minim); 657 play(note_CS5, minim); 658 // bar 9 659 play(note_FS5, minim); 660 play(note_E5, minim); 661 // bar 10 662 play(note_D5, minim); 663 play(note_CS5, minim); 664 // bar 11 665 play(note_B4, minim); 666 play(note_A4, minim); 667 // bar 12 668 play(note_B4, minim); 669 play(note_CS5, minim); 670 // bar 13 671 play(note_D4, crot); 672 play(note_FS4, crot); 673 play(note_A4, crot); 674 play(note_G4, crot); 675 // bar 14 676 play(note_FS4, crot); 677 play(note_D4, crot); 678 play(note_FS4, crot); 679 play(note_E4, crot); 680 // bar 15 681 play(note_D4, crot); 682 play(note_B3, crot); 683 play(note_D4, crot); 684 play(note_A4, crot); 685 // bar 16 686 play(note_G4, crot); 687 play(note_B4, crot); 688 play(note_A4, crot); 689 play(note_G4, crot); 690 // bar 17 691 play(note_FS4, crot); 692 play(note_D4, crot); 693 play(note_E4, crot); 694 play(note_CS5, crot); 695 // bar 18 696 play(note_D5, crot); 697 play(note_FS5, crot); 698 play(note_A5, crot); 699 play(note_A4, crot); 700 // bar 19 701 play(note_B4, crot); 702 play(note_G4, crot); 703 play(note_A4, crot); 704 play(note_FS4, crot); 705 // bar 20 706 play(note_E4, crot); 707 play(note_D5, crot); 708 play(note_D5, crot + quav); 709 play(note_CS5, quav); 710 // bar 21 711 play(note_D5, quav); 712 play(note_CS5, quav); 713 play(note_D5, quav); 714 play(note_D4, quav); 715 716 play(note_CS4, quav); 717 play(note_A4, quav); 718 play(note_E4, quav); 719 play(note_FS4, quav); 720 // bar 22 721 play(note_D4, quav); 722 play(note_D5, quav); 723 play(note_CS5, quav); 724 play(note_B4, quav); 725 726 play(note_CS5, quav); 727 play(note_FS5, quav); 728 play(note_A5, quav); 729 play(note_B5, quav); 730 // bar 23 731 play(note_G5, quav); 732 play(note_FS5, quav); 733 play(note_E5, quav); 734 play(note_G5, quav); 735 736 play(note_FS5, quav); 737 play(note_E5, quav); 738 play(note_D5, quav); 739 play(note_CS5, quav); 740 // bar 24 741 play(note_B4, quav); 742 play(note_A4, quav); 743 play(note_G4, quav); 744 play(note_FS4, quav); 745 746 play(note_E4, quav); 747 play(note_G4, quav); 748 play(note_FS4, quav); 749 play(note_E4, quav); 750 // bar 25 751 play(note_D4, quav); 752 play(note_E4, quav); 753 play(note_FS4, quav); 754 play(note_G4, quav); 755 756 play(note_A4, quav); 757 play(note_E4, quav); 758 play(note_A4, quav); 759 play(note_G4, quav); 760 // bar 26 761 play(note_FS4, quav); 762 play(note_B4, quav); 763 play(note_A4, quav); 764 play(note_G4, quav); 765 766 play(note_A4, quav); 767 play(note_G4, quav); 768 play(note_FS4, quav); 769 play(note_E4, quav); 770 // bar 27 771 play(note_D4, quav); 772 play(note_B3, quav); 773 play(note_B4, quav); 774 play(note_CS5, quav); 775 776 play(note_D5, quav); 777 play(note_CS5, quav); 778 play(note_B4, quav); 779 play(note_A4, quav); 780 // bar 28 781 play(note_G4, quav); 782 play(note_FS4, quav); 783 play(note_E4, quav); 784 play(note_B4, quav); 785 786 play(note_A4, quav); 787 play(note_B4, quav); 788 play(note_A4, quav); 789 play(note_G4, quav); 790 // bar 29 791 play(note_FS4, crot); 792 play(note_FS5, crot); 793 play(note_E5, minim); 794 // bar 30 795 rest(crot); 796 play(note_D5, crot); 797 play(note_FS5, minim); 798 // bar 31 799 play(note_B5, minim); 800 play(note_A5, minim); 801 // bar 32 802 play(note_B5, minim); 803 play(note_CS6, minim); 804 // bar 33 805 play(note_D6, crot); 806 play(note_D5, crot); 807 play(note_CS5, minim); 808 // bar 34 809 rest(crot); 810 play(note_B5, crot); 811 play(note_D5, minim); 812 // bar 35 813 play(note_D5, dot_minim); 814 play(note_D5, crot); 815 // bar 36 816 play(note_D5, crot); 817 play(note_G5, crot); 818 play(note_E5, crot); 819 play(note_A5, crot); 820 // bar 37 821 play(note_A5, quav); 822 play(note_FS5, semiq); 823 play(note_G5, semiq); 824 825 play(note_A5, quav); 826 play(note_FS5, semiq); 827 play(note_G5, semiq); 828 829 play(note_A5, semiq); 830 play(note_A4, semiq); 831 play(note_B4, semiq); 832 play(note_CS5, semiq); 833 834 play(note_D5, semiq); 835 play(note_E5, semiq); 836 play(note_FS5, semiq); 837 play(note_G5, semiq); 838 // bar 38 839 play(note_FS5, quav); 840 play(note_D5, semiq); 841 play(note_E5, semiq); 842 843 play(note_FS5, quav); 844 play(note_FS4, semiq); 845 play(note_G4, semiq); 846 847 play(note_A4, semiq); 848 play(note_B4, semiq); 849 play(note_A4, semiq); 850 play(note_G4, semiq); 851 852 play(note_A4, semiq); 853 play(note_FS4, semiq); 854 play(note_G4, semiq); 855 play(note_A4, semiq); 856 // bar 39 857 play(note_G4, quav); 858 play(note_B4, semiq); 859 play(note_A4, semiq); 860 861 play(note_G4, quav); 862 play(note_FS4, semiq); 863 play(note_E4, semiq); 864 865 play(note_FS4, semiq); 866 play(note_E4, semiq); 867 play(note_D4, semiq); 868 play(note_E4, semiq); 869 870 play(note_FS4, semiq); 871 play(note_G4, semiq); 872 play(note_A4, semiq); 873 play(note_B4, semiq); 874 // bar 40 875 play(note_G4, quav); 876 play(note_B4, semiq); 877 play(note_A4, semiq); 878 879 play(note_B4, quav); 880 play(note_CS5, semiq); 881 play(note_D5, semiq); 882 883 play(note_A4, semiq); 884 play(note_B4, semiq); 885 play(note_CS5, semiq); 886 play(note_D5, semiq); 887 888 play(note_E5, semiq); 889 play(note_FS5, semiq); 890 play(note_G5, semiq); 891 play(note_A5, semiq); 892 // bar 41 893 play(note_FS5, quav); 894 play(note_D5, semiq); 895 play(note_E5, semiq); 896 897 play(note_FS5, quav); 898 play(note_E4, semiq); 899 play(note_D5, semiq); 900 901 play(note_E5, semiq); 902 play(note_CS5, semiq); 903 play(note_D5, semiq); 904 play(note_E5, semiq); 905 906 play(note_FS5, semiq); 907 play(note_E5, semiq); 908 play(note_D5, semiq); 909 play(note_CS5, semiq); 910 // bar 42 911 play(note_D5, quav); 912 play(note_B5, semiq); 913 play(note_CS5, semiq); 914 915 play(note_D5, quav); 916 play(note_D4, semiq); 917 play(note_E4, semiq); 918 919 play(note_FS4, semiq); 920 play(note_G4, semiq); 921 play(note_FS4, semiq); 922 play(note_E4, semiq); 923 924 play(note_FS4, semiq); 925 play(note_D5, semiq); 926 play(note_CS5, semiq); 927 play(note_D5, semiq); 928 // bar 43 929 play(note_B4, quav); 930 play(note_D5, semiq); 931 play(note_CS5, semiq); 932 933 play(note_B4, quav); 934 play(note_A4, semiq); 935 play(note_G4, semiq); 936 937 play(note_A4, semiq); 938 play(note_G4, semiq); 939 play(note_FS4, semiq); 940 play(note_G4, semiq); 941 942 play(note_A4, semiq); 943 play(note_B4, semiq); 944 play(note_CS5, semiq); 945 play(note_D5, semiq); 946 // bar 44 947 play(note_B4, quav); 948 play(note_D5, semiq); 949 play(note_CS5, semiq); 950 951 play(note_D5, quav); 952 play(note_D5, semiq); 953 play(note_CS5, semiq); 954 955 play(note_CS5, semiq); 956 play(note_D5, semiq); 957 play(note_E5, semiq); 958 play(note_D5, semiq); 959 960 play(note_CS5, semiq); 961 play(note_D5, semiq); 962 play(note_B4, semiq); 963 play(note_CS5, semiq); 964 // bar 45 965 play(note_D5, crot + quav); 966 play(note_FS5, quav); 967 play(note_FS5, quav); 968 play(note_G5, quav); 969 play(note_FS5, quav); 970 play(note_E5, quav); 971 // bar 46 972 play(note_D5, crot + quav); 973 play(note_D5, quav); 974 play(note_D5, quav); 975 play(note_E5, quav); 976 play(note_D5, quav); 977 play(note_CS5, quav); 978 // bar 47 979 play(note_B4, minim); 980 play(note_D5, minim); 981 // bar 48 982 play(note_D5, quav); 983 play(note_C5, quav); 984 play(note_B4, quav); 985 play(note_C5, quav); 986 play(note_A4, crot); 987 play(note_CS5, crot); 988 // bar 49 989 play(note_D5, crot + quav); 990 play(note_A5, quav); 991 play(note_A5, quav); 992 play(note_B5, quav); 993 play(note_A5, quav); 994 play(note_G5, quav); 995 // bar 50 996 play(note_FS5, crot + quav); 997 play(note_FS5, quav); 998 play(note_FS5, quav); 999 play(note_G5, quav); 1000 play(note_FS5, quav); 1001 play(note_E5, quav); 1002 // bar 51 1003 play(note_D5, quav); 1004 play(note_C5, quav); 1005 play(note_B4, quav); 1006 play(note_C5, quav); 1007 play(note_A4, crot + quav); 1008 play(note_A4, quav); 1009 // bar 52 1010 play(note_G4, crot); 1011 play(note_D5, crot); 1012 play(note_CS5, crot + quav); 1013 play(note_CS5, quav); 1014 // bar 53 1015 play(note_D5, semib); 1016} 1017 1018void scarborough_fair() { 1019 // B flat / A sharp, 3/4 time 1020 // bar 1 1021 // run through twice 1022 for (uint8_t pass = 1; pass <= 2; pass++) { 1023 set_tempo(180); 1024 play(note_D4, minim); 1025 play(note_D4, crot); 1026 // bar 2 1027 play(note_A4, minim); 1028 play(note_A4, crot); 1029 // bar 3 1030 play(note_E4, crot + quav); 1031 play(note_F4, quav); 1032 play(note_E4, crot); 1033 // bar 4 1034 play(note_D4, dot_minim); 1035 // bar 5 1036 rest(crot); 1037 play(note_A4, crot); 1038 play(note_C5, crot); 1039 // bar 6 1040 play(note_D5, minim); 1041 play(note_C5, crot); 1042 // bar 7 1043 play(note_A4, crot); 1044 play(note_B4, crot); 1045 play(note_G4, crot); 1046 // bar 8 & 9 1047 play(note_A4, dot_minim + minim); 1048 play(note_D5, crot); 1049 // bar 10 1050 play(note_D5, minim); 1051 play(note_D5, crot); 1052 // bar 11 1053 play(note_C5, minim); 1054 play(note_A4, crot); 1055 // bar 12 1056 play(note_A4, crot); 1057 play(note_G4, crot); 1058 play(note_F4, crot); 1059 // bar 13 1060 play(note_E4, minim ); 1061 play(note_A4, crot); 1062 // bar 14 1063 play(note_D4, minim); 1064 play(note_A4, crot); 1065 // bar 15 1066 play(note_G4, minim); 1067 play(note_F4, crot); 1068 // bar 16 1069 play(note_E4, crot); 1070 play(note_D4, crot); 1071 play(note_C4, crot); 1072 // bar 17 & 18 1073 play(note_D4, dot_minim + dot_minim); 1074 rest(dot_minim); 1075 } 1076 1077} 1078 1079void silent_night() { 1080 // 3/4 time 1081 set_tempo(default_tempo); 1082 // bar 1 1083 play(note_G4, crot + quav); 1084 play(note_A4, quav); 1085 play(note_G4, crot); 1086 // bar 2 1087 play(note_E4, dot_minim); 1088 // bar 3 1089 play(note_G4, crot + quav); 1090 play(note_A4, quav); 1091 play(note_G4, crot); 1092 // bar 4 1093 play(note_E4, dot_minim); 1094 // bar 5 1095 play(note_D5, minim); 1096 play(note_D5, crot); 1097 // bar 6 1098 play(note_B4, dot_minim); 1099 // bar 7 1100 play(note_C5, minim); 1101 play(note_C5, crot); 1102 // bar 8 1103 play(note_G4, dot_minim); 1104 // bars 9-12 and 13-16 are identical so repeat twice 1105 for (uint8_t pass = 1; pass <= 2; pass++) { 1106 // bar 9, bar 13 1107 play(note_A4, minim); 1108 play(note_A4, crot); 1109 // bar 10, bar 14 1110 play(note_C5, crot + quav); 1111 play(note_B4, quav); 1112 play(note_A4, crot); 1113 // bar 11, bar 15 1114 play(note_G4, crot + quav); 1115 play(note_A4, quav); 1116 play(note_G4, crot); 1117 // bar 12, bar 16 1118 play(note_E4, dot_minim); 1119 } 1120 // bar 17 1121 play(note_D5, minim); 1122 play(note_D5, crot); 1123 // bar 18 1124 play(note_F5, crot + quav); 1125 play(note_D5, quav); 1126 play(note_B4, crot); 1127 // bar 19 1128 play(note_C5, dot_minim); 1129 // bar 20 1130 play(note_E5, dot_minim); 1131 // bar 21 1132 play(note_C5, crot); 1133 play(note_G4, crot); 1134 play(note_E4, crot); 1135 // bar 22 1136 play(note_G4, crot + quav); 1137 play(note_F4, quav); 1138 play(note_D4, crot); 1139 // bars 23 & 24 1140 play(note_C4, dot_minim + dot_minim); 1141} 1142
Downloadable files
Arduino with 8 ohm 0.25 W Speaker
Arduino with 8 ohm 0.25 W Speaker

Arduino with 8 ohm 0.25 W Speaker
Arduino with 8 ohm 0.25 W Speaker

Comments
Only logged in users can leave comments