module System.Hardware.Arduino.SamplePrograms.JingleBells where
import System.Hardware.Arduino
import System.Hardware.Arduino.Parts.Piezo
jingleBells :: [(Note, Duration)]
jingleBells :: [(Note, Duration)]
jingleBells = [(Note, Duration)]
m1 forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m1 forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m3 forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m4 forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
wait forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m5 forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m6 forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m7 forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m8 forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
wait
forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m1 forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m1 forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m3 forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m4 forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
wait forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m5 forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m6 forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m15 forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m16
where m1 :: [(Note, Duration)]
m1 = [(Note
E, Duration
Quarter), (Note
E, Duration
Quarter), (Note
E, Duration
Half)]
m3 :: [(Note, Duration)]
m3 = [(Note
E, Duration
Quarter), (Note
G, Duration
Quarter), (Note
C, Duration
Quarter), (Note
D, Duration
Quarter)]
m4 :: [(Note, Duration)]
m4 = [(Note
E, Duration
Whole)]
m5 :: [(Note, Duration)]
m5 = forall a. Int -> a -> [a]
replicate Int
4 (Note
F, Duration
Quarter)
m6 :: [(Note, Duration)]
m6 = (Note
F, Duration
Quarter) forall a. a -> [a] -> [a]
: forall a. Int -> a -> [a]
replicate Int
3 (Note
E, Duration
Quarter)
m7 :: [(Note, Duration)]
m7 = [(Note
E, Duration
Quarter), (Note
D, Duration
Quarter), (Note
D, Duration
Quarter), (Note
E, Duration
Quarter)]
m8 :: [(Note, Duration)]
m8 = [(Note
D, Duration
Half), (Note
G, Duration
Half)]
m15 :: [(Note, Duration)]
m15 = [(Note
G, Duration
Quarter), (Note
G, Duration
Quarter), (Note
F, Duration
Quarter), (Note
D, Duration
Quarter)]
m16 :: [(Note, Duration)]
m16 = [(Note
C, Duration
Whole)]
wait :: [(Note, Duration)]
wait = [(Note
R, Duration
Half)]
main :: IO ()
main :: IO ()
main = Bool -> FilePath -> Arduino () -> IO ()
withArduino Bool
False FilePath
"/dev/cu.usbmodemFD131" forall a b. (a -> b) -> a -> b
$ do
Piezo
pz <- Int -> Pin -> Arduino Piezo
speaker Int
75 (Word8 -> Pin
pin Word8
3)
Piezo -> [(Note, Duration)] -> Arduino ()
playNotes Piezo
pz [(Note, Duration)]
jingleBells