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 [(Note, Duration)] -> [(Note, Duration)] -> [(Note, Duration)]
forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m1 [(Note, Duration)] -> [(Note, Duration)] -> [(Note, Duration)]
forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m3 [(Note, Duration)] -> [(Note, Duration)] -> [(Note, Duration)]
forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m4 [(Note, Duration)] -> [(Note, Duration)] -> [(Note, Duration)]
forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
wait [(Note, Duration)] -> [(Note, Duration)] -> [(Note, Duration)]
forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m5 [(Note, Duration)] -> [(Note, Duration)] -> [(Note, Duration)]
forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m6 [(Note, Duration)] -> [(Note, Duration)] -> [(Note, Duration)]
forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m7 [(Note, Duration)] -> [(Note, Duration)] -> [(Note, Duration)]
forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m8 [(Note, Duration)] -> [(Note, Duration)] -> [(Note, Duration)]
forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
wait
[(Note, Duration)] -> [(Note, Duration)] -> [(Note, Duration)]
forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m1 [(Note, Duration)] -> [(Note, Duration)] -> [(Note, Duration)]
forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m1 [(Note, Duration)] -> [(Note, Duration)] -> [(Note, Duration)]
forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m3 [(Note, Duration)] -> [(Note, Duration)] -> [(Note, Duration)]
forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m4 [(Note, Duration)] -> [(Note, Duration)] -> [(Note, Duration)]
forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
wait [(Note, Duration)] -> [(Note, Duration)] -> [(Note, Duration)]
forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m5 [(Note, Duration)] -> [(Note, Duration)] -> [(Note, Duration)]
forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m6 [(Note, Duration)] -> [(Note, Duration)] -> [(Note, Duration)]
forall a. [a] -> [a] -> [a]
++ [(Note, Duration)]
m15 [(Note, Duration)] -> [(Note, Duration)] -> [(Note, Duration)]
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 = Int -> (Note, Duration) -> [(Note, Duration)]
forall a. Int -> a -> [a]
replicate Int
4 (Note
F, Duration
Quarter)
m6 :: [(Note, Duration)]
m6 = (Note
F, Duration
Quarter) (Note, Duration) -> [(Note, Duration)] -> [(Note, Duration)]
forall a. a -> [a] -> [a]
: Int -> (Note, Duration) -> [(Note, Duration)]
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" (Arduino () -> IO ()) -> Arduino () -> IO ()
forall a b. (a -> b) -> a -> b
$ do
pz <- Int -> Pin -> Arduino Piezo
speaker Int
75 (Word8 -> Pin
pin Word8
3)
playNotes pz jingleBells