Låt oss göra Arduino musik (3 / 5 steg)
Steg 3: Musiken
Avsikten med detta Instructable är inte att uppfinna hjulet på nytt, utan att förbättra den. Den kod som representerar musikaliskt verk för Arduino har lagts fram många gånger tidigare med smärre variationer. Anteckningar, vilar och notera värden (Obs varaktighet) tilldelas variabler att Arduino tolkar och utgångar som toner av rätt frekvens och varaktighet. Detta är i huvudsak Arduino "MIDI" musik.
Kolla in platsen, readsheetmusic.info/readingmusic.shtml, för en nybörjares guide till läsa musik om det behövs. Jag kommer att täcka några begrepp som kan hjälpa när du skriver musik i skisser. (De av er med en musikalisk bakgrund kan hoppa över denna punkt). Musikaliska skisser skriven för Arduino baseras på piano nyckel frekvenser. Tangenterna på ett piano är indelade i oktaver, börjar med ett C och slutar med nästa C anteckning i följd (C, D, E, F, G, A, B, nextC). Piano tangentbordet innehåller 7 komplett oktaver, numrerade 1-7 från vänster (lägsta C) till höger (högsta C). Anteckningar följs av numret på oktav där de är belägna, så C4 skulle vara början anteckningen i den fjärde Oktaven. C4 kallas också mitten C sedan fjärde Oktaven är också den mellersta oktaven på tangentbordet. En sista punkt – samma Observera dubbel i frekvens varje gång det flyttas upp en oktav. Till exempel A3 har en frekvens på 220 Hz, A4 har en frekvens på 440 Hz och A5 frekvensen 880 Hz.
Anteckningar
Följande tecken representerar de 3 oktaver anteckningar tillgängliga för det här projektet:
C3, c# 3, d3 d #3, e3, f3, f #3, g3, g #3, a3, #3, b3, c, c#, d, d #, e, f, f #, g, g #, a, a #, b, c5, c# 5, d5, d #5, e5, f5, f #5, g5, g #5, a5, en #5, b5, och c6.
Dessa tecken anges i programmen precis som de är skrivna här. Jag har använt små bokstäver och tappade 4 från tonerna i den mellersta oktaven att förenkla datainmatning (hoppas jag). Det finns inga platta anteckningar för varje platta ton är samma som skarpa lägre anteckningen bredvid den. Så om en melodi har ett B-lägenheten, använda motsvarande en # i stället.
Notvärden (Obs varaktighet)
Följande notvärden finns i skisserna:
1, 1., 2, 2., 4, 4., 8, 8., och 16.
1 utgör en helhet noterar, 2 en halv anteckning, 4 en fjärdedelsnot, 8 en åttondel noterar, och 16 en sextonde noterar. Fjärdedelsnot är standard för detta projekt eftersom en majoritet av musik är skrivet i kvartalet tid (3/4, 4/4, etc.), med en fjärdedelsnot får en slå. Jag satt en beat varaktighet till 400 millisekunder eftersom det lät lagom för mig. Detta kan ändras genom att ändra värdet för #define beat uttalande i början av varje skiss. En fjärdedelsnot kommer sista 400 MSEK, en halv Obs 800 MSEK, en åttondelen noterar 200 msec. Det är också prickade anteckningar tillgängliga (1., 2., 4., och 8.) En prickig anteckning har en anteckning värde en och en halv gånger som anteckningen. Till exempel en prickad fjärdedelsnot hålls i ett beat och en halv, eller i vårt fall 600 msec. Obs värden anges innan noteringen vars värde kommer att ändras.
Ex: en <> g <> en <> g <> 2 <> c5 <> 4 <> en <> g <> en <> g <> (<> = retur)
I det här exemplet anges Obs sekvensen från seriella monitor med ArduinoMusic skissen. 4 första anteckningarna är kvartstoner (standard), kommer in 2 ändringar c5 till en halv anteckning, och 4 ändras de sista 4 anteckningarna tillbaka till kvartstoner.
Vilar
Skisserna innehålla följande resten värden:
R1, r2, r4, r4., r8 och r16.
Vilar perioder av tystnad i ett partitur, och är jämförbar med Observera värdena - r1 är en hela resten, r2 en halv resten och så vidare. Mata in r4 skulle resultera i en takt av tystnad; in r16 skulle producera ¼ beat av tystnad. Det finns en prickig resten (r4.).
Spela upp morsekod filen som använder en kombination av notvärden och vilar. Koden redogörs häfdvunna programmerarens fras, "HELLO WORLD".