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 as Event import qualified Sound.MIDI.Message.Channel as ChannelMsg import qualified Sound.MIDI.Message.Channel.Voice as VoiceMsg import qualified Data.EventList.Relative.TimeBody as EventList import qualified Data.ByteString.Lazy as B 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)