SaveText.Ru

Без имени
  1. // Based on score by https://musescore.com/jestermusician/undertale_megalovania
  2. // Program written by Peter Schaedler, 2016
  3.  
  4. #define buzz 9
  5. #define led 13
  6. #define beat 500 // = 60 s / 120 bpm * 1000 ms
  7.  
  8. #define cnat 16.35
  9. #define csharp 17.32
  10. #define dnat 18.35
  11. #define eb 19.45
  12. #define enat 20.60
  13. #define fnat 21.83
  14. #define fsharp 23.12
  15. #define gnat 24.50
  16. #define gsharp 25.96
  17. #define anat 27.50
  18. #define bb 29.14
  19. #define bnat 30.87
  20.  
  21. #define oct(note, octave) note * pow(2, octave)
  22.  
  23. void setup() {
  24.   pinMode(led, OUTPUT);
  25. }
  26.  
  27. void loop() {
  28.   // Measure 1
  29.   play(dnat, 4, .25);
  30.   play(dnat, 4, .25);
  31.   play(dnat, 5, .25);
  32.   rest(.25);
  33.   play(anat, 4, .25);
  34.   rest(.5);
  35.   play(gsharp, 4, .25);
  36.   rest(.25);
  37.   play(gnat, 4, .25);
  38.   rest(.25);
  39.   play(fnat, 4, .5);
  40.   play(dnat, 4, .25);
  41.   play(fnat, 4, .25);
  42.   play(gnat, 4, .25);
  43.  
  44.   play(cnat, 4, .25);
  45.   play(cnat, 4, .25);
  46.   play(dnat, 5, .25);
  47.   rest(.25);
  48.   play(anat, 4, .25);
  49.   rest(.5);
  50.   play(gsharp, 4, .25);
  51.   rest(.25);
  52.   play(gnat, 4, .25);
  53.   rest(.25);
  54.   play(fnat, 4, .5);
  55.   play(dnat, 4, .25);
  56.   play(fnat, 4, .25);
  57.   play(gnat, 4, .25);
  58.  
  59.   play(bnat, 3, .25);
  60.   play(bnat, 3, .25);
  61.   play(dnat, 5, .25);
  62.   rest(.25);
  63.   play(anat, 4, .25);
  64.   rest(.5);
  65.   play(gsharp, 4, .25);
  66.   rest(.25);
  67.   play(gnat, 4, .25);
  68.   rest(.25);
  69.   play(fnat, 4, .5);
  70.   play(dnat, 4, .25);
  71.   play(fnat, 4, .25);
  72.   play(gnat, 4, .25);
  73.  
  74.   play(bb, 3, .25);
  75.   play(bb, 3, .25);
  76.   play(dnat, 5, .25);
  77.   rest(.25);
  78.   play(anat, 4, .25);
  79.   rest(.5);
  80.   play(gsharp, 4, .25);
  81.   rest(.25);
  82.   play(gnat, 4, .25);
  83.   rest(.25);
  84.   play(fnat, 4, .5);
  85.   play(dnat, 4, .25);
  86.   play(fnat, 4, .25);
  87.   play(gnat, 4, .25);
  88.  
  89.   // 5
  90.   play(dnat, 4, .25);
  91.   play(dnat, 4, .25);
  92.   play(dnat, 5, .25);
  93.   rest(.25);
  94.   play(anat, 4, .25);
  95.   rest(.5);
  96.   play(gsharp, 4, .25);
  97.   rest(.25);
  98.   play(gnat, 4, .25);
  99.   rest(.25);
  100.   play(fnat, 4, .5);
  101.   play(dnat, 4, .25);
  102.   play(fnat, 4, .25);
  103.   play(gnat, 4, .25);
  104.  
  105.   play(cnat, 4, .25);
  106.   play(cnat, 4, .25);
  107.   play(dnat, 5, .25);
  108.   rest(.25);
  109.   play(anat, 4, .25);
  110.   rest(.5);
  111.   play(gsharp, 4, .25);
  112.   rest(.25);
  113.   play(gnat, 4, .25);
  114.   rest(.25);
  115.   play(fnat, 4, .5);
  116.   play(dnat, 4, .25);
  117.   play(fnat, 4, .25);
  118.   play(gnat, 4, .25);
  119.  
  120.   play(bnat, 3, .25);
  121.   play(bnat, 3, .25);
  122.   play(dnat, 5, .25);
  123.   rest(.25);
  124.   play(anat, 4, .25);
  125.   rest(.5);
  126.   play(gsharp, 4, .25);
  127.   rest(.25);
  128.   play(gnat, 4, .25);
  129.   rest(.25);
  130.   play(fnat, 4, .5);
  131.   play(dnat, 4, .25);
  132.   play(fnat, 4, .25);
  133.   play(gnat, 4, .25);
  134.  
  135.   play(bb, 3, .25);
  136.   play(bb, 3, .25);
  137.   play(dnat, 5, .25);
  138.   rest(.25);
  139.   play(anat, 4, .25);
  140.   rest(.5);
  141.   play(gsharp, 4, .25);
  142.   rest(.25);
  143.   play(gnat, 4, .25);
  144.   rest(.25);
  145.   play(fnat, 4, .5);
  146.   play(dnat, 4, .25);
  147.   play(fnat, 4, .25);
  148.   play(gnat, 4, .25);
  149.  
  150.   // 9
  151.   play(dnat, 5, .25);
  152.   play(dnat, 5, .25);
  153.   play(dnat, 6, .25);
  154.   rest(.25);
  155.   play(anat, 5, .25);
  156.   rest(.5);
  157.   play(gsharp, 5, .25);
  158.   rest(.25);
  159.   play(gnat, 5, .25);
  160.   rest(.25);
  161.   play(fnat, 5, .5);
  162.   play(dnat, 5, .25);
  163.   play(fnat, 5, .25);
  164.   play(gnat, 5, .25);
  165.  
  166.   play(cnat, 5, .25);
  167.   play(cnat, 5, .25);
  168.   play(dnat, 6, .25);
  169.   rest(.25);
  170.   play(anat, 5, .25);
  171.   rest(.5);
  172.   play(gsharp, 5, .25);
  173.   rest(.25);
  174.   play(gnat, 5, .25);
  175.   rest(.25);
  176.   play(fnat, 5, .5);
  177.   play(dnat, 5, .25);
  178.   play(fnat, 5, .25);
  179.   play(gnat, 5, .25);
  180.  
  181.   play(bnat, 4, .25);
  182.   play(bnat, 4, .25);
  183.   play(dnat, 6, .25);
  184.   rest(.25);
  185.   play(anat, 5, .25);
  186.   rest(.5);
  187.   play(gsharp, 5, .25);
  188.   rest(.25);
  189.   play(gnat, 5, .25);
  190.   rest(.25);
  191.   play(fnat, 5, .5);
  192.   play(dnat, 5, .25);
  193.   play(fnat, 5, .25);
  194.   play(gnat, 5, .25);
  195.  
  196.   play(bb, 4, .25);
  197.   play(bb, 4, .25);
  198.   play(dnat, 6, .25);
  199.   rest(.25);
  200.   play(anat, 5, .25);
  201.   rest(.5);
  202.   play(gsharp, 5, .25);
  203.   rest(.25);
  204.   play(gnat, 5, .25);
  205.   rest(.25);
  206.   play(fnat, 5, .5);
  207.   play(dnat, 5, .25);
  208.   play(fnat, 5, .25);
  209.   play(gnat, 5, .25);
  210.  
  211.   // Repeat 9
  212.   play(dnat, 5, .25);
  213.   play(dnat, 5, .25);
  214.   play(dnat, 6, .25);
  215.   rest(.25);
  216.   play(anat, 5, .25);
  217.   rest(.5);
  218.   play(gsharp, 5, .25);
  219.   rest(.25);
  220.   play(gnat, 5, .25);
  221.   rest(.25);
  222.   play(fnat, 5, .5);
  223.   play(dnat, 5, .25);
  224.   play(fnat, 5, .25);
  225.   play(gnat, 5, .25);
  226.  
  227.   play(cnat, 5, .25);
  228.   play(cnat, 5, .25);
  229.   play(dnat, 6, .25);
  230.   rest(.25);
  231.   play(anat, 5, .25);
  232.   rest(.5);
  233.   play(gsharp, 5, .25);
  234.   rest(.25);
  235.   play(gnat, 5, .25);
  236.   rest(.25);
  237.   play(fnat, 5, .5);
  238.   play(dnat, 5, .25);
  239.   play(fnat, 5, .25);
  240.   play(gnat, 5, .25);
  241.  
  242.   play(bnat, 4, .25);
  243.   play(bnat, 4, .25);
  244.   play(dnat, 6, .25);
  245.   rest(.25);
  246.   play(anat, 5, .25);
  247.   rest(.5);
  248.   play(gsharp, 5, .25);
  249.   rest(.25);
  250.   play(gnat, 5, .25);
  251.   rest(.25);
  252.   play(fnat, 5, .5);
  253.   play(dnat, 5, .25);
  254.   play(fnat, 5, .25);
  255.   play(gnat, 5, .25);
  256.  
  257.   play(bb, 4, .25);
  258.   play(bb, 4, .25);
  259.   play(dnat, 6, .25);
  260.   rest(.25);
  261.   play(anat, 5, .25);
  262.   rest(.5);
  263.   play(gsharp, 5, .25);
  264.   rest(.25);
  265.   play(gnat, 5, .25);
  266.   rest(.25);
  267.   play(fnat, 5, .5);
  268.   play(dnat, 5, .25);
  269.   play(fnat, 5, .25);
  270.   play(gnat, 5, .25);
  271.  
  272.   // 13
  273.   play(fnat, 5, .5);
  274.   play(fnat, 5, .25);
  275.   play(fnat, 5, .25);
  276.   rest(.25);
  277.   play(fnat, 5, .25);
  278.   rest(.15);
  279.   play(enat, 5, .10);
  280.   play(fnat, 5, .5);
  281.   play(dnat, 5, .5);
  282.   play(dnat, 5, 1.25);
  283.  
  284.   play(fnat, 5, .5);
  285.   play(fnat, 5, .25);
  286.   play(fnat, 5, .25);
  287.   rest(.25);
  288.   play(gnat, 5, .25);
  289.   rest(.25);
  290.   play(gsharp, 5, .5);
  291.   play(gnat, 5, .083);
  292.   play(gsharp, 5, .083);
  293.   play(gnat, 5, .084);
  294.   play(fnat, 5, .25);
  295.   play(dnat, 5, .25);
  296.   play(fnat, 5, .25);
  297.   play(gnat, 5, .25);
  298.   rest(.5);
  299.  
  300.   play(fnat, 5, .5);
  301.   play(fnat, 5, .25);
  302.   play(fnat, 5, .25);
  303.   rest(.25);
  304.   play(gnat, 5, .25);
  305.   rest(.25);
  306.   play(gsharp, 5, .25);
  307.   rest(.25);
  308.   play(anat, 5, .25);
  309.   rest(.25);
  310.   play(cnat, 6, .25);
  311.   rest(.25);
  312.   play(anat, 5, .75);
  313.  
  314.   play(dnat, 6, .25);
  315.   rest(.25);
  316.   play(dnat, 6, .25);
  317.   rest(.25);
  318.   play(dnat, 6, .25);
  319.   play(anat, 5, .25);
  320.   play(dnat, 6, .25);
  321.   play(cnat, 6, 1);
  322.   for (double i = cnat; i < gnat; i += .509375) {
  323.     tone(buzz, oct(i, 6));
  324.     rest(.015625);
  325.   }
  326.   vibrato(gnat, 6, 1);
  327.  
  328.   // 17
  329.   play(anat, 5, .5);
  330.   play(anat, 5, .25);
  331.   play(anat, 5, .25);
  332.   rest(.25);
  333.   play(anat, 5, .25);
  334.   rest(.15);
  335.   play(gnat, 5, .10);
  336.   play(anat, 5, .5);
  337.   play(gnat, 5, .5);
  338.   play(gnat, 5, 1.25);
  339.  
  340.   play(anat, 5, .5);
  341.   play(anat, 5, .25);
  342.   play(anat, 5, .25);
  343.   rest(.25);
  344.   play(anat, 5, .25);
  345.   rest(.25);
  346.   play(gnat, 5, .25);
  347.   rest(.25);
  348.   play(anat, 5, .25);
  349.   rest(.25);
  350.   play(dnat, 6, .25);
  351.   rest(.25);
  352.   play(anat, 5, .25);
  353.   play(gnat, 5, .5);
  354.  
  355.   play(dnat, 6, .5);
  356.   play(anat, 5, .5);
  357.   play(gnat, 5, .5);
  358.   play(fnat, 5, .5);
  359.   play(cnat, 6, .5);
  360.   play(gnat, 5, .5);
  361.   play(fnat, 5, .5);
  362.   play(enat, 5, .5);
  363.  
  364.   play(bb, 4, .5);
  365.   play(cnat, 5, .25);
  366.   play(dnat, 5, .25);
  367.   rest(.25);
  368.   play(fnat, 5, .25);
  369.   rest(.25);
  370.   play(cnat, 6, 2.25);
  371.  
  372.   // 21
  373.   rest(2);
  374.   play(fnat, 5, .25);
  375.   play(dnat, 5, .25);
  376.   play(fnat, 5, .25);
  377.   play(gnat, 5, .25);
  378.   play(gsharp, 5, .25);
  379.   play(gnat, 5, .25);
  380.   play(fnat, 5, .25);
  381.   play(dnat, 5, .25);
  382.  
  383.   play(gsharp, 5, .125);
  384.   play(gnat, 5, .125);
  385.   play(fnat, 5, .125);
  386.   play(dnat, 5, .125);
  387.   play(fnat, 5, .5);
  388.   play(gnat, 5, 2.25);
  389.   play(gsharp, 5, .5);
  390.   play(anat, 5, .25);
  391.  
  392.   play(cnat, 6, .5);
  393.   play(anat, 5, .25);
  394.   play(gsharp, 5, .25);
  395.   play(gnat, 5, .25);
  396.   play(fnat, 5, .25);
  397.   play(dnat, 5, .25);
  398.   play(enat, 5, .25);
  399.   play(fnat, 5, .5);
  400.   play(gnat, 5, .5);
  401.   play(anat, 5, .5);
  402.   play(cnat, 6, .5);
  403.  
  404.   play(csharp, 6, .5);
  405.   play(gsharp, 5, .25);
  406.   rest(.25);
  407.   play(gsharp, 5, .25);
  408.   play(gnat, 5, .25);
  409.   play(fnat, 5, .25);
  410.   play(gnat, 5, 2.25);
  411.  
  412.   // 25
  413.   play(fnat, 4, .5);
  414.   play(gnat, 4, .5);
  415.   play(anat, 4, .5);
  416.   play(fnat, 5, .5);
  417.   play(enat, 5, 1);
  418.   play(dnat, 5, 1);
  419.  
  420.   play(enat, 5, 1);
  421.   play(fnat, 5, 1);
  422.   play(gnat, 5, 1);
  423.   play(enat, 5, 1);
  424.  
  425.   play(anat, 5, 2);
  426.   play(anat, 5, .25);
  427.   play(gsharp, 5, .25);
  428.   play(gnat, 5, .25);
  429.   play(fsharp, 5, .25);
  430.   play(fnat, 5, .25);
  431.   play(enat, 5, .25);
  432.   play(eb, 5, .25);
  433.   play(dnat, 5, .25);
  434.  
  435.   play(csharp, 5, 2);
  436.   play(eb, 5, 2);
  437.  
  438.   // Repeat 21-28
  439.   rest(2);
  440.   play(fnat, 5, .25);
  441.   play(dnat, 5, .25);
  442.   play(fnat, 5, .25);
  443.   play(gnat, 5, .25);
  444.   play(gsharp, 5, .25);
  445.   play(gnat, 5, .25);
  446.   play(fnat, 5, .25);
  447.   play(dnat, 5, .25);
  448.  
  449.   play(gsharp, 5, .125);
  450.   play(gnat, 5, .125);
  451.   play(fnat, 5, .125);
  452.   play(dnat, 5, .125);
  453.   play(fnat, 5, .5);
  454.   play(gnat, 5, 2.25);
  455.   play(gsharp, 5, .5);
  456.   play(anat, 5, .25);
  457.  
  458.   play(cnat, 6, .5);
  459.   play(anat, 5, .25);
  460.   play(gsharp, 5, .25);
  461.   play(gnat, 5, .25);
  462.   play(fnat, 5, .25);
  463.   play(dnat, 5, .25);
  464.   play(enat, 5, .25);
  465.   play(fnat, 5, .5);
  466.   play(gnat, 5, .5);
  467.   play(anat, 5, .5);
  468.   play(cnat, 6, .5);
  469.  
  470.   play(csharp, 6, .5);
  471.   play(gsharp, 5, .25);
  472.   rest(.25);
  473.   play(gsharp, 5, .25);
  474.   play(gnat, 5, .25);
  475.   play(fnat, 5, .25);
  476.   play(gnat, 5, 2.25);
  477.  
  478.   play(fnat, 4, .5);
  479.   play(gnat, 4, .5);
  480.   play(anat, 4, .5);
  481.   play(fnat, 5, .5);
  482.   play(enat, 5, 1);
  483.   play(dnat, 5, 1);
  484.  
  485.   play(enat, 5, 1);
  486.   play(fnat, 5, 1);
  487.   play(gnat, 5, 1);
  488.   play(enat, 5, 1);
  489.  
  490.   play(anat, 5, 2);
  491.   play(anat, 5, .25);
  492.   play(gsharp, 5, .25);
  493.   play(gnat, 5, .25);
  494.   play(fsharp, 5, .25);
  495.   play(fnat, 5, .25);
  496.   play(enat, 5, .25);
  497.   play(eb, 5, .25);
  498.   play(dnat, 5, .25);
  499.  
  500.   play(csharp, 5, 2);
  501.   play(eb, 5, 2);
  502.  
  503.   // 29
  504. }
  505.  
  506. void play(double note, int octave, double note_val) {
  507.   digitalWrite(led, HIGH);
  508.   tone(buzz, oct(note, octave));
  509.   delay((beat * note_val) - 20);
  510.   noTone(buzz);
  511.   digitalWrite(led, LOW);
  512.   delay(20);
  513. }
  514.  
  515. void rest(double note_val) {
  516.   delay(beat * note_val);
  517. }
  518.  
  519. void vibrato(double note, int octave, double note_val) {
  520.   for (int i = 0; i < 4; i++) {
  521.     tone(buzz, oct(note, octave));
  522.     delay(beat * note_val / 16);
  523.     tone(buzz, oct(note, octave) - 20);
  524.     delay(beat * note_val / 16);
  525.     tone(buzz, oct(note, octave));
  526.     delay(beat * note_val / 16);
  527.     tone(buzz, oct(note, octave) + 20);
  528.     delay(beat * note_val / 16);
  529.   }
  530. }

Share with your friends:

Print