packages feed

hommage-0.0.5: doc/Sound.Hommage.Midi.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--Rendered using the Haskell Html Library v0.2-->
<HTML
><HEAD
  ><TITLE
    >Sound.Hommage.Midi</TITLE
    ><LINK HREF = "haddock.css" REL = "stylesheet" TYPE = "text/css"
    ></HEAD
  ><BODY
  ><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
    ><TR
      ><TD CLASS = "topbar"
	><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
	  ><TR
	    ><TD
	      ><IMG SRC = "haskell_icon.gif" WIDTH = "16" HEIGHT = "16" ALT = " "
		></TD
	      ><TD CLASS = "title"
	      ></TD
	      ><TD CLASS = "topbut"
	      ><A HREF = "Sound.Hommage.html"
		>Parent</A
		></TD
	      ><TD CLASS = "topbut"
	      ><A HREF = "index.html"
		>Contents</A
		></TD
	      ><TD CLASS = "topbut"
	      ><A HREF = "doc-index.html"
		>Index</A
		></TD
	      ></TR
	    ></TABLE
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "modulebar"
	><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
	  ><TR
	    ><TD
	      ><FONT SIZE = "6"
		>Sound.Hommage.Midi</FONT
		></TD
	      ></TR
	    ></TABLE
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD
	><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
	  ><TR
	    ><TD CLASS = "section4"
	      ><B
		>Contents</B
		></TD
	      ></TR
	    ><TR
	    ><TD
	      ><DL
		><DT
		  ><A HREF = "#1"
		    > MidiFile</A
		    ></DT
		  ><DT
		  ><A HREF = "#2"
		    > MidiNote</A
		    ></DT
		  ><DT
		  ><A HREF = "#3"
		    > MidiMusic </A
		    ></DT
		  ><DT
		  ><A HREF = "#4"
		    > MidiTrack</A
		    ></DT
		  ><DT
		  ><A HREF = "#5"
		    > MidiEvent</A
		    ></DT
		  ><DT
		  ><A HREF = "#6"
		    > Encoding</A
		    ></DT
		  ></DL
		></TD
	      ></TR
	    ></TABLE
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section1"
	>Synopsis</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "body"
	><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
	  ><TR
	    ><TD CLASS = "decl"
	      ><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
		><TR
		  ><TD CLASS = "decl"
		    ><SPAN CLASS = "keyword"
		      >data</SPAN
		      > <A HREF = "#t%3AMidiFile"
		      >MidiFile</A
		      > </TD
		    ></TR
		  ><TR
		  ><TD CLASS = "body"
		    ><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
		      ><TR
			><TD CLASS = "decl"
			  >= <A HREF = "#v%3AMidiSync"
			    >MidiSync</A
			    > <A HREF = "Sound.Hommage.Midi.html#t%3ATicks"
			    >Ticks</A
			    > [<A HREF = "Sound.Hommage.Midi.html#t%3AMidiTrack"
			    >MidiTrack</A
			    >]</TD
			  ></TR
			><TR
			><TD CLASS = "decl"
			  >| <A HREF = "#v%3AMidiSingle"
			    >MidiSingle</A
			    > <A HREF = "Sound.Hommage.Midi.html#t%3ATicks"
			    >Ticks</A
			    > <A HREF = "Sound.Hommage.Midi.html#t%3AMidiTrack"
			    >MidiTrack</A
			    ></TD
			  ></TR
			><TR
			><TD CLASS = "decl"
			  >| <A HREF = "#v%3AMidiAsync"
			    >MidiAsync</A
			    > <A HREF = "Sound.Hommage.Midi.html#t%3ATicks"
			    >Ticks</A
			    > [<A HREF = "Sound.Hommage.Midi.html#t%3AMidiTrack"
			    >MidiTrack</A
			    >]</TD
			  ></TR
			></TABLE
		      ></TD
		    ></TR
		  ></TABLE
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AwriteMidiFile"
		>writeMidiFile</A
		> :: FilePath -&gt; <A HREF = "Sound.Hommage.Midi.html#t%3AMidiFile"
		>MidiFile</A
		> -&gt; IO ()</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><SPAN CLASS = "keyword"
		>type</SPAN
		> <A HREF = "#t%3ATicks"
		>Ticks</A
		> = Int</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
		><TR
		  ><TD CLASS = "decl"
		    ><SPAN CLASS = "keyword"
		      >data</SPAN
		      > <A HREF = "#t%3AMidiNote"
		      >MidiNote</A
		      > </TD
		    ></TR
		  ><TR
		  ><TD CLASS = "body"
		    ><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
		      ><TR
			><TD CLASS = "decl"
			  >= <A HREF = "#v%3AMidiNote"
			    >MidiNote</A
			    > <A HREF = "Sound.Hommage.Midi.html#t%3AChan"
			    >Chan</A
			    > <A HREF = "Sound.Hommage.Midi.html#t%3AMidiValue"
			    >MidiValue</A
			    > <A HREF = "Sound.Hommage.Midi.html#t%3AMidiValue"
			    >MidiValue</A
			    ></TD
			  ></TR
			><TR
			><TD CLASS = "decl"
			  >| <A HREF = "#v%3AMidiCtrl"
			    >MidiCtrl</A
			    > <A HREF = "Sound.Hommage.Midi.html#t%3AChan"
			    >Chan</A
			    > <A HREF = "Sound.Hommage.Midi.html#t%3AMidiValue"
			    >MidiValue</A
			    > <A HREF = "Sound.Hommage.Midi.html#t%3AMidiValue"
			    >MidiValue</A
			    ></TD
			  ></TR
			></TABLE
		      ></TD
		    ></TR
		  ></TABLE
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><SPAN CLASS = "keyword"
		>type</SPAN
		> <A HREF = "#t%3AChan"
		>Chan</A
		> = Word8</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><SPAN CLASS = "keyword"
		>type</SPAN
		> <A HREF = "#t%3AMidiValue"
		>MidiValue</A
		> = Word8</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><SPAN CLASS = "keyword"
		>type</SPAN
		> <A HREF = "#t%3AMidiMusic"
		>MidiMusic</A
		> = [(<A HREF = "Sound.Hommage.Midi.html#t%3ADelta"
		>Delta</A
		>, Maybe <A HREF = "Sound.Hommage.Midi.html#t%3AMidiEvent"
		>MidiEvent</A
		>)]</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AnoteMidiMusic"
		>noteMidiMusic</A
		> :: Int -&gt; <A HREF = "Sound.Hommage.Midi.html#t%3AMidiNote"
		>MidiNote</A
		> -&gt; <A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
		>MidiMusic</A
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3ArestMidiMusic"
		>restMidiMusic</A
		> :: Int -&gt; <A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
		>MidiMusic</A
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AappendMidiMusic"
		>appendMidiMusic</A
		> :: <A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
		>MidiMusic</A
		> -&gt; <A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
		>MidiMusic</A
		> -&gt; <A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
		>MidiMusic</A
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AmergeMidiMusic"
		>mergeMidiMusic</A
		> :: <A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
		>MidiMusic</A
		> -&gt; <A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
		>MidiMusic</A
		> -&gt; <A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
		>MidiMusic</A
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3ArunMidiMusic"
		>runMidiMusic</A
		> :: <A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
		>MidiMusic</A
		> -&gt; <A HREF = "Sound.Hommage.Midi.html#t%3AMidiTrack"
		>MidiTrack</A
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><SPAN CLASS = "keyword"
		>type</SPAN
		> <A HREF = "#t%3AMidiTrack"
		>MidiTrack</A
		> = [(<A HREF = "Sound.Hommage.Midi.html#t%3ADelta"
		>Delta</A
		>, <A HREF = "Sound.Hommage.Midi.html#t%3AMidiEvent"
		>MidiEvent</A
		>)]</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><SPAN CLASS = "keyword"
		>type</SPAN
		> <A HREF = "#t%3ADelta"
		>Delta</A
		> = Int</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
		><TR
		  ><TD CLASS = "decl"
		    ><SPAN CLASS = "keyword"
		      >data</SPAN
		      > <A HREF = "#t%3AMidiEvent"
		      >MidiEvent</A
		      > </TD
		    ></TR
		  ><TR
		  ><TD CLASS = "body"
		    ><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
		      ><TR
			><TD CLASS = "decl"
			  >= <A HREF = "#v%3AMidiNoteOff"
			    >MidiNoteOff</A
			    > !<A HREF = "Sound.Hommage.Midi.html#t%3AChan"
			    >Chan</A
			    > !<A HREF = "Sound.Hommage.Midi.html#t%3AMidiValue"
			    >MidiValue</A
			    > !<A HREF = "Sound.Hommage.Midi.html#t%3AMidiValue"
			    >MidiValue</A
			    ></TD
			  ></TR
			><TR
			><TD CLASS = "decl"
			  >| <A HREF = "#v%3AMidiNoteOn"
			    >MidiNoteOn</A
			    > !<A HREF = "Sound.Hommage.Midi.html#t%3AChan"
			    >Chan</A
			    > !<A HREF = "Sound.Hommage.Midi.html#t%3AMidiValue"
			    >MidiValue</A
			    > !<A HREF = "Sound.Hommage.Midi.html#t%3AMidiValue"
			    >MidiValue</A
			    ></TD
			  ></TR
			><TR
			><TD CLASS = "decl"
			  >| <A HREF = "#v%3AMidiKeyAfter"
			    >MidiKeyAfter</A
			    > !<A HREF = "Sound.Hommage.Midi.html#t%3AChan"
			    >Chan</A
			    > !<A HREF = "Sound.Hommage.Midi.html#t%3AMidiValue"
			    >MidiValue</A
			    > !<A HREF = "Sound.Hommage.Midi.html#t%3AMidiValue"
			    >MidiValue</A
			    ></TD
			  ></TR
			><TR
			><TD CLASS = "decl"
			  >| <A HREF = "#v%3AMidiControl"
			    >MidiControl</A
			    > !<A HREF = "Sound.Hommage.Midi.html#t%3AChan"
			    >Chan</A
			    > !<A HREF = "Sound.Hommage.Midi.html#t%3AMidiValue"
			    >MidiValue</A
			    > !<A HREF = "Sound.Hommage.Midi.html#t%3AMidiValue"
			    >MidiValue</A
			    ></TD
			  ></TR
			><TR
			><TD CLASS = "decl"
			  >| <A HREF = "#v%3AMidiEndOfTrack"
			    >MidiEndOfTrack</A
			    ></TD
			  ></TR
			></TABLE
		      ></TD
		    ></TR
		  ></TABLE
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AencodeMidiFile"
		>encodeMidiFile</A
		> :: <A HREF = "Sound.Hommage.Midi.html#t%3AMidiFile"
		>MidiFile</A
		> -&gt; [Word8]</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AmidiHeaderSync"
		>midiHeaderSync</A
		> :: [Word8]</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AmidiHeaderSingle"
		>midiHeaderSingle</A
		> :: [Word8]</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AmidiHeaderAsync"
		>midiHeaderAsync</A
		> :: [Word8]</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AencodeMidiTrack"
		>encodeMidiTrack</A
		> :: <A HREF = "Sound.Hommage.Midi.html#t%3AMidiTrack"
		>MidiTrack</A
		> -&gt; [Word8]</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AencodeDelta"
		>encodeDelta</A
		> :: Int -&gt; [Word8]</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AencodeMidiDeltaEvent"
		>encodeMidiDeltaEvent</A
		> :: (<A HREF = "Sound.Hommage.Midi.html#t%3ADelta"
		>Delta</A
		>, <A HREF = "Sound.Hommage.Midi.html#t%3AMidiEvent"
		>MidiEvent</A
		>) -&gt; [Word8]</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AencodeEvent"
		>encodeEvent</A
		> :: <A HREF = "Sound.Hommage.Midi.html#t%3AMidiEvent"
		>MidiEvent</A
		> -&gt; [Word8]</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AlastByte"
		>lastByte</A
		> :: Int -&gt; Word8</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AnextByte"
		>nextByte</A
		> :: Int -&gt; Int</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AtoBytes"
		>toBytes</A
		> :: Int -&gt; Int -&gt; [Word8]</TD
	      ></TR
	    ></TABLE
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section1"
	>Documentation</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> The action <TT
	  ><A HREF = "Sound.Hommage.Midi.html#v%3AwriteMidiFile"
	    >writeMidiFile</A
	    ></TT
	  > stores the datatype <TT
	  ><A HREF = "Sound.Hommage.Midi.html#t%3AMidiFile"
	    >MidiFile</A
	    ></TT
	  > in a MIDI-File. 
   It consists of a field for the <TT
	  ><A HREF = "Sound.Hommage.Midi.html#t%3ATicks"
	    >Ticks</A
	    ></TT
	  > per quarter and a <TT
	  ><A HREF = "Sound.Hommage.Midi.html#t%3AMidiTrack"
	    >MidiTrack</A
	    ></TT
	  > (or some). 
   The function <TT
	  ><A HREF = "Sound.Hommage.Midi.html#v%3ArunMidiMusic"
	    >runMidiMusic</A
	    ></TT
	  > produces such a track from a <TT
	  ><A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
	    >MidiMusic</A
	    ></TT
	  >, which can
   be created using the functions <TT
	  ><A HREF = "Sound.Hommage.Midi.html#v%3AnoteMidiMusic"
	    >noteMidiMusic</A
	    ></TT
	  >, <TT
	  ><A HREF = "Sound.Hommage.Midi.html#v%3ArestMidiMusic"
	    >restMidiMusic</A
	    ></TT
	  >, <TT
	  ><A HREF = "Sound.Hommage.Midi.html#v%3AappendMidiMusic"
	    >appendMidiMusic</A
	    ></TT
	  > and
   <TT
	  ><A HREF = "Sound.Hommage.Midi.html#v%3AmergeMidiMusic"
	    >mergeMidiMusic</A
	    ></TT
	  >. 
   <TT
	  ><A HREF = "Sound.Hommage.Midi.html#t%3AMidiNote"
	    >MidiNote</A
	    ></TT
	  > is used to create note or controller events; it consists of the Midi-Channel
   (<TT
	  ><A HREF = "Sound.Hommage.Midi.html#t%3AChan"
	    >Chan</A
	    ></TT
	  >) and two fields with a <TT
	  ><A HREF = "Sound.Hommage.Midi.html#t%3AMidiValue"
	    >MidiValue</A
	    ></TT
	  >.</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section1"
	><A NAME = "1"
	  > MidiFile</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><SPAN CLASS = "keyword"
	  >data</SPAN
	  > <A NAME = "t%3AMidiFile"
	  ></A
	  ><B
	  >MidiFile</B
	  > </TD
	></TR
      ><TR
      ><TD CLASS = "body"
	><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
	  ><TR
	    ><TD CLASS = "section4"
	      >Constructors</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "body"
	      ><TABLE CLASS = "vanilla" CELLSPACING = "1" CELLPADDING = "0"
		><TR
		  ><TD CLASS = "decl"
		    ><A NAME = "v%3AMidiSync"
		      ></A
		      ><B
		      >MidiSync</B
		      > <A HREF = "Sound.Hommage.Midi.html#t%3ATicks"
		      >Ticks</A
		      > [<A HREF = "Sound.Hommage.Midi.html#t%3AMidiTrack"
		      >MidiTrack</A
		      >]</TD
		    ><TD CLASS = "rdoc"
		    > Some parallel (synchronous) MidiTracks. </TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A NAME = "v%3AMidiSingle"
		      ></A
		      ><B
		      >MidiSingle</B
		      > <A HREF = "Sound.Hommage.Midi.html#t%3ATicks"
		      >Ticks</A
		      > <A HREF = "Sound.Hommage.Midi.html#t%3AMidiTrack"
		      >MidiTrack</A
		      ></TD
		    ><TD CLASS = "rdoc"
		    > A single MidiTrack. (Seems not to work yet)</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A NAME = "v%3AMidiAsync"
		      ></A
		      ><B
		      >MidiAsync</B
		      > <A HREF = "Sound.Hommage.Midi.html#t%3ATicks"
		      >Ticks</A
		      > [<A HREF = "Sound.Hommage.Midi.html#t%3AMidiTrack"
		      >MidiTrack</A
		      >]</TD
		    ><TD CLASS = "rdoc"
		    > Some asynchronous MidiTracks. (Seems not to work yet)</TD
		    ></TR
		  ></TABLE
		></TD
	      ></TR
	    ></TABLE
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AwriteMidiFile"
	  ></A
	  ><B
	  >writeMidiFile</B
	  > :: FilePath -&gt; <A HREF = "Sound.Hommage.Midi.html#t%3AMidiFile"
	  >MidiFile</A
	  > -&gt; IO ()</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> Writes a <TT
	  ><A HREF = "Sound.Hommage.Midi.html#t%3AMidiFile"
	    >MidiFile</A
	    ></TT
	  > to a File.</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><SPAN CLASS = "keyword"
	  >type</SPAN
	  > <A NAME = "t%3ATicks"
	  ></A
	  ><B
	  >Ticks</B
	  > = Int</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> Ticks per Quarter. For some unknown reasons it does not work with any value.
   96 seems to be ok. </TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section1"
	><A NAME = "2"
	  > MidiNote</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><SPAN CLASS = "keyword"
	  >data</SPAN
	  > <A NAME = "t%3AMidiNote"
	  ></A
	  ><B
	  >MidiNote</B
	  > </TD
	></TR
      ><TR
      ><TD CLASS = "body"
	><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
	  ><TR
	    ><TD CLASS = "section4"
	      >Constructors</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "body"
	      ><TABLE CLASS = "vanilla" CELLSPACING = "1" CELLPADDING = "0"
		><TR
		  ><TD CLASS = "decl"
		    ><A NAME = "v%3AMidiNote"
		      ></A
		      ><B
		      >MidiNote</B
		      > <A HREF = "Sound.Hommage.Midi.html#t%3AChan"
		      >Chan</A
		      > <A HREF = "Sound.Hommage.Midi.html#t%3AMidiValue"
		      >MidiValue</A
		      > <A HREF = "Sound.Hommage.Midi.html#t%3AMidiValue"
		      >MidiValue</A
		      ></TD
		    ><TD CLASS = "rdoc"
		    > A note with pitch and volume</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A NAME = "v%3AMidiCtrl"
		      ></A
		      ><B
		      >MidiCtrl</B
		      > <A HREF = "Sound.Hommage.Midi.html#t%3AChan"
		      >Chan</A
		      > <A HREF = "Sound.Hommage.Midi.html#t%3AMidiValue"
		      >MidiValue</A
		      > <A HREF = "Sound.Hommage.Midi.html#t%3AMidiValue"
		      >MidiValue</A
		      ></TD
		    ><TD CLASS = "rdoc"
		    > Controllernumber and value</TD
		    ></TR
		  ></TABLE
		></TD
	      ></TR
	    ></TABLE
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><SPAN CLASS = "keyword"
	  >type</SPAN
	  > <A NAME = "t%3AChan"
	  ></A
	  ><B
	  >Chan</B
	  > = Word8</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> A Midi-Channel (0-15)</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><SPAN CLASS = "keyword"
	  >type</SPAN
	  > <A NAME = "t%3AMidiValue"
	  ></A
	  ><B
	  >MidiValue</B
	  > = Word8</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> A Midi-Value (0-127)</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section1"
	><A NAME = "3"
	  > MidiMusic </A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><SPAN CLASS = "keyword"
	  >type</SPAN
	  > <A NAME = "t%3AMidiMusic"
	  ></A
	  ><B
	  >MidiMusic</B
	  > = [(<A HREF = "Sound.Hommage.Midi.html#t%3ADelta"
	  >Delta</A
	  >, Maybe <A HREF = "Sound.Hommage.Midi.html#t%3AMidiEvent"
	  >MidiEvent</A
	  >)]</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> A kind of extended MidiTrack type, that allows delta-times without events 
   (will be summed up by converting to <TT
	  ><A HREF = "Sound.Hommage.Midi.html#t%3AMidiTrack"
	    >MidiTrack</A
	    ></TT
	  >).</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AnoteMidiMusic"
	  ></A
	  ><B
	  >noteMidiMusic</B
	  > :: Int -&gt; <A HREF = "Sound.Hommage.Midi.html#t%3AMidiNote"
	  >MidiNote</A
	  > -&gt; <A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
	  >MidiMusic</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> Creates a note or controller event with given length (relative to <TT
	  ><A HREF = "Sound.Hommage.Midi.html#t%3ATicks"
	    >Ticks</A
	    ></TT
	  >). 
   The length means the delta-time between note-on and note-off resp. the time after
   the controller event.</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3ArestMidiMusic"
	  ></A
	  ><B
	  >restMidiMusic</B
	  > :: Int -&gt; <A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
	  >MidiMusic</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> A pause with given length.</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AappendMidiMusic"
	  ></A
	  ><B
	  >appendMidiMusic</B
	  > :: <A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
	  >MidiMusic</A
	  > -&gt; <A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
	  >MidiMusic</A
	  > -&gt; <A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
	  >MidiMusic</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> Sequencial composition of <TT
	  ><A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
	    >MidiMusic</A
	    ></TT
	  >.</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AmergeMidiMusic"
	  ></A
	  ><B
	  >mergeMidiMusic</B
	  > :: <A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
	  >MidiMusic</A
	  > -&gt; <A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
	  >MidiMusic</A
	  > -&gt; <A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
	  >MidiMusic</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> Parallel composition of <TT
	  ><A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
	    >MidiMusic</A
	    ></TT
	  >.</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3ArunMidiMusic"
	  ></A
	  ><B
	  >runMidiMusic</B
	  > :: <A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
	  >MidiMusic</A
	  > -&gt; <A HREF = "Sound.Hommage.Midi.html#t%3AMidiTrack"
	  >MidiTrack</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> Converts a <TT
	  ><A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
	    >MidiMusic</A
	    ></TT
	  > to a <TT
	  ><A HREF = "Sound.Hommage.Midi.html#t%3AMidiTrack"
	    >MidiTrack</A
	    ></TT
	  >. </TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section1"
	><A NAME = "4"
	  > MidiTrack</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><SPAN CLASS = "keyword"
	  >type</SPAN
	  > <A NAME = "t%3AMidiTrack"
	  ></A
	  ><B
	  >MidiTrack</B
	  > = [(<A HREF = "Sound.Hommage.Midi.html#t%3ADelta"
	  >Delta</A
	  >, <A HREF = "Sound.Hommage.Midi.html#t%3AMidiEvent"
	  >MidiEvent</A
	  >)]</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> A sequence of MidiEvents with a delta-time which means the number of ticks
   before the event happens (relative to the last event). </TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><SPAN CLASS = "keyword"
	  >type</SPAN
	  > <A NAME = "t%3ADelta"
	  ></A
	  ><B
	  >Delta</B
	  > = Int</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section1"
	><A NAME = "5"
	  > MidiEvent</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><SPAN CLASS = "keyword"
	  >data</SPAN
	  > <A NAME = "t%3AMidiEvent"
	  ></A
	  ><B
	  >MidiEvent</B
	  > </TD
	></TR
      ><TR
      ><TD CLASS = "body"
	><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
	  ><TR
	    ><TD CLASS = "section4"
	      >Constructors</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "body"
	      ><TABLE CLASS = "vanilla" CELLSPACING = "1" CELLPADDING = "0"
		><TR
		  ><TD CLASS = "decl"
		    ><A NAME = "v%3AMidiNoteOff"
		      ></A
		      ><B
		      >MidiNoteOff</B
		      > !<A HREF = "Sound.Hommage.Midi.html#t%3AChan"
		      >Chan</A
		      > !<A HREF = "Sound.Hommage.Midi.html#t%3AMidiValue"
		      >MidiValue</A
		      > !<A HREF = "Sound.Hommage.Midi.html#t%3AMidiValue"
		      >MidiValue</A
		      ></TD
		    ><TD CLASS = "rdoc"
		    ></TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A NAME = "v%3AMidiNoteOn"
		      ></A
		      ><B
		      >MidiNoteOn</B
		      > !<A HREF = "Sound.Hommage.Midi.html#t%3AChan"
		      >Chan</A
		      > !<A HREF = "Sound.Hommage.Midi.html#t%3AMidiValue"
		      >MidiValue</A
		      > !<A HREF = "Sound.Hommage.Midi.html#t%3AMidiValue"
		      >MidiValue</A
		      ></TD
		    ><TD CLASS = "rdoc"
		    ></TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A NAME = "v%3AMidiKeyAfter"
		      ></A
		      ><B
		      >MidiKeyAfter</B
		      > !<A HREF = "Sound.Hommage.Midi.html#t%3AChan"
		      >Chan</A
		      > !<A HREF = "Sound.Hommage.Midi.html#t%3AMidiValue"
		      >MidiValue</A
		      > !<A HREF = "Sound.Hommage.Midi.html#t%3AMidiValue"
		      >MidiValue</A
		      ></TD
		    ><TD CLASS = "rdoc"
		    ></TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A NAME = "v%3AMidiControl"
		      ></A
		      ><B
		      >MidiControl</B
		      > !<A HREF = "Sound.Hommage.Midi.html#t%3AChan"
		      >Chan</A
		      > !<A HREF = "Sound.Hommage.Midi.html#t%3AMidiValue"
		      >MidiValue</A
		      > !<A HREF = "Sound.Hommage.Midi.html#t%3AMidiValue"
		      >MidiValue</A
		      ></TD
		    ><TD CLASS = "rdoc"
		    ></TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A NAME = "v%3AMidiEndOfTrack"
		      ></A
		      ><B
		      >MidiEndOfTrack</B
		      ></TD
		    ><TD CLASS = "rdoc"
		    ></TD
		    ></TR
		  ></TABLE
		></TD
	      ></TR
	    ></TABLE
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section1"
	><A NAME = "6"
	  > Encoding</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AencodeMidiFile"
	  ></A
	  ><B
	  >encodeMidiFile</B
	  > :: <A HREF = "Sound.Hommage.Midi.html#t%3AMidiFile"
	  >MidiFile</A
	  > -&gt; [Word8]</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AmidiHeaderSync"
	  ></A
	  ><B
	  >midiHeaderSync</B
	  > :: [Word8]</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AmidiHeaderSingle"
	  ></A
	  ><B
	  >midiHeaderSingle</B
	  > :: [Word8]</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AmidiHeaderAsync"
	  ></A
	  ><B
	  >midiHeaderAsync</B
	  > :: [Word8]</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AencodeMidiTrack"
	  ></A
	  ><B
	  >encodeMidiTrack</B
	  > :: <A HREF = "Sound.Hommage.Midi.html#t%3AMidiTrack"
	  >MidiTrack</A
	  > -&gt; [Word8]</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AencodeDelta"
	  ></A
	  ><B
	  >encodeDelta</B
	  > :: Int -&gt; [Word8]</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AencodeMidiDeltaEvent"
	  ></A
	  ><B
	  >encodeMidiDeltaEvent</B
	  > :: (<A HREF = "Sound.Hommage.Midi.html#t%3ADelta"
	  >Delta</A
	  >, <A HREF = "Sound.Hommage.Midi.html#t%3AMidiEvent"
	  >MidiEvent</A
	  >) -&gt; [Word8]</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AencodeEvent"
	  ></A
	  ><B
	  >encodeEvent</B
	  > :: <A HREF = "Sound.Hommage.Midi.html#t%3AMidiEvent"
	  >MidiEvent</A
	  > -&gt; [Word8]</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AlastByte"
	  ></A
	  ><B
	  >lastByte</B
	  > :: Int -&gt; Word8</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AnextByte"
	  ></A
	  ><B
	  >nextByte</B
	  > :: Int -&gt; Int</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AtoBytes"
	  ></A
	  ><B
	  >toBytes</B
	  > :: Int -&gt; Int -&gt; [Word8]</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "botbar"
	>Produced by <A HREF = "http://www.haskell.org/haddock/"
	  >Haddock</A
	  > version HADDOCK_VERSION</TD
	></TR
      ></TABLE
    ></BODY
  ></HTML
>