midi-0.1.5.1: src/Sound/MIDI/Example/ControllerRamp.hs
module Sound.MIDI.Example.ControllerRamp {- Main -} where
import qualified Sound.MIDI.File as MidiFile
import qualified Sound.MIDI.File.Save as Save
-- import qualified Sound.MIDI.File.Event.Meta as MetaEvent
import qualified Sound.MIDI.File.Event as Event
import qualified Sound.MIDI.Message.Channel as ChannelMsg
import qualified Sound.MIDI.Message.Channel.Voice as VoiceMsg
-- import qualified Sound.MIDI.Parser.Report as Report
import qualified Data.EventList.Relative.TimeBody as EventList
-- import Data.EventList.Relative.MixedBody ((/.), (./), )
import qualified Data.ByteString.Lazy as B
-- import qualified Numeric.NonNegative.Wrapper as NonNeg
example :: MidiFile.T
example =
let chan = ChannelMsg.toChannel 0
in MidiFile.Cons MidiFile.Parallel (MidiFile.Ticks 10)
[EventList.fromPairList $
map (\x -> (50, Event.MIDIEvent (ChannelMsg.Cons chan (ChannelMsg.Voice (VoiceMsg.Control VoiceMsg.mainVolume x)))))
[0..127]]
main :: IO ()
main =
B.writeFile "controller-ramp.mid"
(Save.toByteString example)