fork download
  1. module Main where
  2.  
  3. import Euterpea
  4. import qualified Codec.Midi
  5.  
  6.  
  7. -- primitive rock bass line
  8. tonic = c 5 qn
  9. dmnt = g 4 qn -- dominant
  10. sdmnt = f 5 qn -- subdominant
  11.  
  12. noteList = [sdmnt, tonic, dmnt, tonic] >>= replicate 4
  13. bassLine = instrument ElectricBassPicked $ foldr1 (:+:) noteList
  14.  
  15. -- primitive rock drum beat
  16. chh = perc ClosedHiHat
  17. drumBeat = instrument Percussion $ timesM (8 * 4) (chh en)
  18.  
  19.  
  20. main :: IO ()
  21. main = do
  22. Codec.Midi.exportFile "duet.mid" (testMidi $ tempo (100/120) $ drumBeat :=: bassLine)
  23.  
  24.  
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty