packages feed

hommage-0.0.5: doc/Sound.Hommage.Notation.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.Notation</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.Notation</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"
		    > Duration</A
		    ></DT
		  ><DT
		  ><A HREF = "#2"
		    > Music Notation</A
		    ></DT
		  ><DT
		  ><A HREF = "#3"
		    > Musical class</A
		    ></DT
		  ><DT
		  ><A HREF = "#4"
		    > Notation and Midi </A
		    ></DT
		  ><DT
		  ><A HREF = "#5"
		    > More Notation functions</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"
	      ><SPAN CLASS = "keyword"
		>type</SPAN
		> <A HREF = "#t%3ADur"
		>Dur</A
		> = Ratio Int</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AabsDur"
		>absDur</A
		> :: <A HREF = "Sound.Hommage.Notation.html#t%3ADur"
		>Dur</A
		> -&gt; Int</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><SPAN CLASS = "keyword"
		>class</SPAN
		> <A HREF = "#t%3AIsDur"
		>IsDur</A
		> d  <SPAN CLASS = "keyword"
		>where</SPAN
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "body"
	      ><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
		><TR
		  ><TD CLASS = "decl"
		    ><A HREF = "#v%3AdurFrom"
		      >durFrom</A
		      > :: d -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ADur"
		      >Dur</A
		      ></TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A HREF = "#v%3AdurUpdate"
		      >durUpdate</A
		      > :: (<A HREF = "Sound.Hommage.Notation.html#t%3ADur"
		      >Dur</A
		      > -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ADur"
		      >Dur</A
		      >) -&gt; d -&gt; d</TD
		    ></TR
		  ></TABLE
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><SPAN CLASS = "keyword"
		>newtype</SPAN
		> <A HREF = "#t%3AWithDur"
		>WithDur</A
		> d a = <A HREF = "#v%3AWithDur"
		>WithDur</A
		> {<TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
		><TR
		  ><TD CLASS = "recfield"
		    ><A HREF = "#v%3AunWithDur"
		      >unWithDur</A
		      > :: (d -&gt; a)</TD
		    ></TR
		  ></TABLE
		>}</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%3ANotation"
		      >Notation</A
		      > a</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "body"
		    ><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
		      ><TR
			><TD CLASS = "decl"
			  >= <A HREF = "#v%3ANote"
			    >Note</A
			    > <A HREF = "Sound.Hommage.Notation.html#t%3ADur"
			    >Dur</A
			    > a</TD
			  ></TR
			><TR
			><TD CLASS = "decl"
			  >| <A HREF = "#v%3ARest"
			    >Rest</A
			    > <A HREF = "Sound.Hommage.Notation.html#t%3ADur"
			    >Dur</A
			    ></TD
			  ></TR
			><TR
			><TD CLASS = "decl"
			  >| <A HREF = "#v%3A%3A%2B%3A"
			    >(:+:)</A
			    > (<A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
			    >Notation</A
			    > a) (<A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
			    >Notation</A
			    > a)</TD
			  ></TR
			><TR
			><TD CLASS = "decl"
			  >| <A HREF = "#v%3A%3A%3D%3A"
			    >(:=:)</A
			    > (<A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
			    >Notation</A
			    > a) (<A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
			    >Notation</A
			    > a)</TD
			  ></TR
			><TR
			><TD CLASS = "decl"
			  >| <A HREF = "#v%3AStretch"
			    >Stretch</A
			    > <A HREF = "Sound.Hommage.Notation.html#t%3ADur"
			    >Dur</A
			    > (<A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
			    >Notation</A
			    > a)</TD
			  ></TR
			></TABLE
		      ></TD
		    ></TR
		  ></TABLE
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3ArunNotation"
		>runNotation</A
		> :: (<A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
		>Musical</A
		> m) =&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		>Notation</A
		> m -&gt; m</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3ArunNotationWith"
		>runNotationWith</A
		> :: (<A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
		>Musical</A
		> m) =&gt; (a -&gt; m) -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		>Notation</A
		> a -&gt; m</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><SPAN CLASS = "keyword"
		>class</SPAN
		> <A HREF = "#t%3AStretchable"
		>Stretchable</A
		> a  <SPAN CLASS = "keyword"
		>where</SPAN
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "body"
	      ><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
		><TR
		  ><TD CLASS = "decl"
		    ><A HREF = "#v%3Astretch"
		      >stretch</A
		      > :: <A HREF = "Sound.Hommage.Notation.html#t%3ADur"
		      >Dur</A
		      > -&gt; a -&gt; a</TD
		    ></TR
		  ></TABLE
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><SPAN CLASS = "keyword"
		>class</SPAN
		> <A HREF = "#t%3AArrangeable"
		>Arrangeable</A
		> a  <SPAN CLASS = "keyword"
		>where</SPAN
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "body"
	      ><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
		><TR
		  ><TD CLASS = "decl"
		    ><A HREF = "#v%3Aparallel"
		      >parallel</A
		      > :: a -&gt; a -&gt; a</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A HREF = "#v%3Asequent"
		      >sequent</A
		      > :: a -&gt; a -&gt; a</TD
		    ></TR
		  ></TABLE
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><SPAN CLASS = "keyword"
		>class</SPAN
		> (<A HREF = "Sound.Hommage.Notation.html#t%3AStretchable"
		>Stretchable</A
		> a, <A HREF = "Sound.Hommage.Notation.html#t%3AArrangeable"
		>Arrangeable</A
		> a) =&gt; <A HREF = "#t%3AMusical"
		>Musical</A
		> a  <SPAN CLASS = "keyword"
		>where</SPAN
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "body"
	      ><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
		><TR
		  ><TD CLASS = "decl"
		    ><A HREF = "#v%3Arest"
		      >rest</A
		      > :: a</TD
		    ></TR
		  ></TABLE
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3Arest0"
		>rest0</A
		> :: (<A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
		>Musical</A
		> a) =&gt; a</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3A-%3D-"
		>(-=-)</A
		> :: (<A HREF = "Sound.Hommage.Notation.html#t%3AArrangeable"
		>Arrangeable</A
		> a) =&gt; a -&gt; a -&gt; a</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3A-%3E-"
		>(-&gt;-)</A
		> :: (<A HREF = "Sound.Hommage.Notation.html#t%3AArrangeable"
		>Arrangeable</A
		> a) =&gt; a -&gt; a -&gt; a</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3Aline"
		>line</A
		> :: (<A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
		>Musical</A
		> a) =&gt; [a] -&gt; a</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3Aline'"
		>line'</A
		> :: (<A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
		>Musical</A
		> a) =&gt; [a] -&gt; a</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3Achord"
		>chord</A
		> :: (<A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
		>Musical</A
		> a) =&gt; [a] -&gt; a</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3Aproportional"
		>proportional</A
		> :: (<A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
		>Musical</A
		> a) =&gt; (Int, Int) -&gt; a -&gt; a -&gt; a</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AwriteMidiSyncNotation"
		>writeMidiSyncNotation</A
		> :: FilePath -&gt; [<A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		>Notation</A
		> <A HREF = "Sound.Hommage.Midi.html#t%3AMidiNote"
		>MidiNote</A
		>] -&gt; IO ()</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3Amidi"
		>midi</A
		> :: (<A HREF = "Sound.Hommage.Notation.html#t%3AIsDur"
		>IsDur</A
		> d) =&gt; <A HREF = "Sound.Hommage.Midi.html#t%3AMidiNote"
		>MidiNote</A
		> -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3AWithDur"
		>WithDur</A
		> d <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%3Amidi'"
		>midi'</A
		> :: (<A HREF = "Sound.Hommage.Notation.html#t%3AIsDur"
		>IsDur</A
		> d) =&gt; <A HREF = "Sound.Hommage.Notation.html#t%3AWithDur"
		>WithDur</A
		> d <A HREF = "Sound.Hommage.Midi.html#t%3AMidiNote"
		>MidiNote</A
		> -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3AWithDur"
		>WithDur</A
		> d <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%3AmidiSyncFile"
		>midiSyncFile</A
		> :: <A HREF = "Sound.Hommage.Midi.html#t%3ATicks"
		>Ticks</A
		> -&gt; [<A HREF = "Sound.Hommage.Notation.html#t%3AWithDur"
		>WithDur</A
		> <A HREF = "Sound.Hommage.Notation.html#t%3ADur"
		>Dur</A
		> <A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
		>MidiMusic</A
		>] -&gt; <A HREF = "Sound.Hommage.Midi.html#t%3AMidiFile"
		>MidiFile</A
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3Anote"
		>note</A
		> :: a -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		>Notation</A
		> a</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AmapNotation"
		>mapNotation</A
		> :: (a -&gt; b) -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		>Notation</A
		> a -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		>Notation</A
		> b</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AjoinNotation"
		>joinNotation</A
		> :: <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		>Notation</A
		> (<A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		>Notation</A
		> a) -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		>Notation</A
		> a</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AunmaybeNotation"
		>unmaybeNotation</A
		> :: <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		>Notation</A
		> (Maybe a) -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		>Notation</A
		> a</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AdurationNotation"
		>durationNotation</A
		> :: <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		>Notation</A
		> a -&gt; Ratio Int</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3ApositionNotation"
		>positionNotation</A
		> :: <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		>Notation</A
		> a -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		>Notation</A
		> (<A HREF = "Sound.Hommage.Notation.html#t%3ADur"
		>Dur</A
		>, a)</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AreverseNotation"
		>reverseNotation</A
		> :: <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		>Notation</A
		> a -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		>Notation</A
		> a</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AtakeNotation"
		>takeNotation</A
		> :: Ratio Int -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		>Notation</A
		> a -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		>Notation</A
		> a</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AdropNotation"
		>dropNotation</A
		> :: Ratio Int -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		>Notation</A
		> a -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		>Notation</A
		> a</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AfilterNotation"
		>filterNotation</A
		> :: (<A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
		>Musical</A
		> (m a), Monad m) =&gt; (a -&gt; Bool) -&gt; m a -&gt; m a</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AfilterNotation'"
		>filterNotation'</A
		> :: (<A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
		>Musical</A
		> (m a), <A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
		>Musical</A
		> (m b), Monad m) =&gt; (a -&gt; Maybe b) -&gt; m a -&gt; m b</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AsequenceNotation"
		>sequenceNotation</A
		> :: (a -&gt; b -&gt; c) -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ADur"
		>Dur</A
		> -&gt; [a] -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		>Notation</A
		> b -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		>Notation</A
		> c</TD
	      ></TR
	    ></TABLE
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section1"
	><A NAME = "1"
	  > Duration</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><SPAN CLASS = "keyword"
	  >type</SPAN
	  > <A NAME = "t%3ADur"
	  ></A
	  ><B
	  >Dur</B
	  > = Ratio Int</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> The duration (of a note, e. g).</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AabsDur"
	  ></A
	  ><B
	  >absDur</B
	  > :: <A HREF = "Sound.Hommage.Notation.html#t%3ADur"
	  >Dur</A
	  > -&gt; Int</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> Calculates the absolute duration by dividing the numerator with the denominator. 
   Because of rounding error this makes only sense if the result is a relative big 
   number. </TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><SPAN CLASS = "keyword"
	  >class</SPAN
	  > <A NAME = "t%3AIsDur"
	  ></A
	  ><B
	  >IsDur</B
	  > d  <SPAN CLASS = "keyword"
	  >where</SPAN
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "body"
	><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
	  ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "section4"
	      >Methods</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "body"
	      ><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
		><TR
		  ><TD CLASS = "decl"
		    ><A NAME = "v%3AdurFrom"
		      ></A
		      ><B
		      >durFrom</B
		      > :: d -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ADur"
		      >Dur</A
		      ></TD
		    ></TR
		  ><TR
		  ><TD CLASS = "s8"
		    ></TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A NAME = "v%3AdurUpdate"
		      ></A
		      ><B
		      >durUpdate</B
		      > :: (<A HREF = "Sound.Hommage.Notation.html#t%3ADur"
		      >Dur</A
		      > -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ADur"
		      >Dur</A
		      >) -&gt; d -&gt; d</TD
		    ></TR
		  ></TABLE
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "section4"
	      >Instances</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "body"
	      ><TABLE CLASS = "vanilla" CELLSPACING = "1" CELLPADDING = "0"
		><TR
		  ><TD CLASS = "decl"
		    ><A HREF = "Sound.Hommage.Notation.html#t%3AIsDur"
		      >IsDur</A
		      > <A HREF = "Sound.Hommage.Notation.html#t%3ADur"
		      >Dur</A
		      ></TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A HREF = "Sound.Hommage.Notation.html#t%3AIsDur"
		      >IsDur</A
		      > <A HREF = "Sound.Hommage.Play.html#t%3ADuration"
		      >Duration</A
		      ></TD
		    ></TR
		  ></TABLE
		></TD
	      ></TR
	    ></TABLE
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><SPAN CLASS = "keyword"
	  >newtype</SPAN
	  > <A NAME = "t%3AWithDur"
	  ></A
	  ><B
	  >WithDur</B
	  > d a</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 = "5" CELLPADDING = "0"
		><TR
		  ><TD CLASS = "decl"
		    ><A NAME = "v%3AWithDur"
		      ></A
		      ><B
		      >WithDur</B
		      ></TD
		    ><TD CLASS = "rdoc"
		    ></TD
		    ></TR
		  ><TR
		  ><TD CLASS = "body" COLSPAN = "2"
		    ><TABLE CLASS = "vanilla" CELLSPACING = "1" CELLPADDING = "0"
		      ><TR
			><TD CLASS = "decl"
			  ><A NAME = "v%3AunWithDur"
			    ></A
			    ><B
			    >unWithDur</B
			    > :: (d -&gt; a)</TD
			  ><TD CLASS = "rdoc"
			  ></TD
			  ></TR
			></TABLE
		      ></TD
		    ></TR
		  ></TABLE
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "section4"
	      >Instances</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "body"
	      ><TABLE CLASS = "vanilla" CELLSPACING = "1" CELLPADDING = "0"
		><TR
		  ><TD CLASS = "decl"
		    >(<A HREF = "Sound.Hommage.Notation.html#t%3AIsDur"
		      >IsDur</A
		      > d) =&gt; <A HREF = "Sound.Hommage.Notation.html#t%3AStretchable"
		      >Stretchable</A
		      > (<A HREF = "Sound.Hommage.Notation.html#t%3AWithDur"
		      >WithDur</A
		      > d a)</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    >(<A HREF = "Sound.Hommage.Notation.html#t%3AIsDur"
		      >IsDur</A
		      > d, <A HREF = "Sound.Hommage.Notation.html#t%3AArrangeable"
		      >Arrangeable</A
		      > a) =&gt; <A HREF = "Sound.Hommage.Notation.html#t%3AArrangeable"
		      >Arrangeable</A
		      > (<A HREF = "Sound.Hommage.Notation.html#t%3AWithDur"
		      >WithDur</A
		      > d a)</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    >(<A HREF = "Sound.Hommage.Notation.html#t%3AIsDur"
		      >IsDur</A
		      > d) =&gt; <A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
		      >Musical</A
		      > (<A HREF = "Sound.Hommage.Notation.html#t%3AWithDur"
		      >WithDur</A
		      > d <A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
		      >MidiMusic</A
		      >)</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    >(<A HREF = "Sound.Hommage.Notation.html#t%3AIsDur"
		      >IsDur</A
		      > d) =&gt; <A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
		      >Musical</A
		      > (<A HREF = "Sound.Hommage.Notation.html#t%3AWithDur"
		      >WithDur</A
		      > d (<A HREF = "Sound.Hommage.Seq.html#t%3ASeq"
		      >Seq</A
		      > a))</TD
		    ></TR
		  ></TABLE
		></TD
	      ></TR
	    ></TABLE
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section1"
	><A NAME = "2"
	  > Music Notation</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><SPAN CLASS = "keyword"
	  >data</SPAN
	  > <A NAME = "t%3ANotation"
	  ></A
	  ><B
	  >Notation</B
	  > a</TD
	></TR
      ><TR
      ><TD CLASS = "body"
	><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
	  ><TR
	    ><TD CLASS = "ndoc"
	      > A <TT
		><A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		  >Notation</A
		  ></TT
		> is a constant, tree-like structure that represents a musical
   notation. It has a type parameter for flexible usage reasons. </TD
	      ></TR
	    ><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%3ANote"
		      ></A
		      ><B
		      >Note</B
		      > <A HREF = "Sound.Hommage.Notation.html#t%3ADur"
		      >Dur</A
		      > a</TD
		    ><TD CLASS = "rdoc"
		    > A note with given duration and a value of type <TT
		      >a</TT
		      >.</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A NAME = "v%3ARest"
		      ></A
		      ><B
		      >Rest</B
		      > <A HREF = "Sound.Hommage.Notation.html#t%3ADur"
		      >Dur</A
		      ></TD
		    ><TD CLASS = "rdoc"
		    > A rest with given duration.</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A NAME = "v%3A%3A%2B%3A"
		      ></A
		      ><B
		      >(:+:)</B
		      > (<A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		      >Notation</A
		      > a) (<A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		      >Notation</A
		      > a)</TD
		    ><TD CLASS = "rdoc"
		    > Sequential composition of two notations.</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A NAME = "v%3A%3A%3D%3A"
		      ></A
		      ><B
		      >(:=:)</B
		      > (<A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		      >Notation</A
		      > a) (<A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		      >Notation</A
		      > a)</TD
		    ><TD CLASS = "rdoc"
		    > Parallel composition of two notations.</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A NAME = "v%3AStretch"
		      ></A
		      ><B
		      >Stretch</B
		      > <A HREF = "Sound.Hommage.Notation.html#t%3ADur"
		      >Dur</A
		      > (<A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		      >Notation</A
		      > a)</TD
		    ><TD CLASS = "rdoc"
		    > Stretches the duration of the sub-music by given factor.</TD
		    ></TR
		  ></TABLE
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "section4"
	      >Instances</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "body"
	      ><TABLE CLASS = "vanilla" CELLSPACING = "1" CELLPADDING = "0"
		><TR
		  ><TD CLASS = "decl"
		    >Functor <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		      >Notation</A
		      ></TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A HREF = "Sound.Hommage.Notation.html#t%3AStretchable"
		      >Stretchable</A
		      > (<A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		      >Notation</A
		      > a)</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A HREF = "Sound.Hommage.Notation.html#t%3AArrangeable"
		      >Arrangeable</A
		      > (<A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		      >Notation</A
		      > a)</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
		      >Musical</A
		      > (<A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		      >Notation</A
		      > a)</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    >Monad <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		      >Notation</A
		      ></TD
		    ></TR
		  ></TABLE
		></TD
	      ></TR
	    ></TABLE
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3ArunNotation"
	  ></A
	  ><B
	  >runNotation</B
	  > :: (<A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
	  >Musical</A
	  > m) =&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	  >Notation</A
	  > m -&gt; m</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> A <TT
	  ><A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	    >Notation</A
	    ></TT
	  > can be interpreted if the contained type is an
   instance of class <TT
	  ><A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
	    >Musical</A
	    ></TT
	  >.</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3ArunNotationWith"
	  ></A
	  ><B
	  >runNotationWith</B
	  > :: (<A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
	  >Musical</A
	  > m) =&gt; (a -&gt; m) -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	  >Notation</A
	  > a -&gt; m</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section1"
	><A NAME = "3"
	  > Musical class</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><SPAN CLASS = "keyword"
	  >class</SPAN
	  > <A NAME = "t%3AStretchable"
	  ></A
	  ><B
	  >Stretchable</B
	  > a  <SPAN CLASS = "keyword"
	  >where</SPAN
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "body"
	><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
	  ><TR
	    ><TD CLASS = "ndoc"
	      > A type/structure that can be stretched.</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "section4"
	      >Methods</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "body"
	      ><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
		><TR
		  ><TD CLASS = "decl"
		    ><A NAME = "v%3Astretch"
		      ></A
		      ><B
		      >stretch</B
		      > :: <A HREF = "Sound.Hommage.Notation.html#t%3ADur"
		      >Dur</A
		      > -&gt; a -&gt; a</TD
		    ></TR
		  ></TABLE
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "section4"
	      >Instances</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "body"
	      ><TABLE CLASS = "vanilla" CELLSPACING = "1" CELLPADDING = "0"
		><TR
		  ><TD CLASS = "decl"
		    >(<A HREF = "Sound.Hommage.Notation.html#t%3AIsDur"
		      >IsDur</A
		      > d) =&gt; <A HREF = "Sound.Hommage.Notation.html#t%3AStretchable"
		      >Stretchable</A
		      > (<A HREF = "Sound.Hommage.Notation.html#t%3AWithDur"
		      >WithDur</A
		      > d a)</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    >(<A HREF = "Sound.Hommage.Notation.html#t%3AStretchable"
		      >Stretchable</A
		      > a) =&gt; <A HREF = "Sound.Hommage.Notation.html#t%3AStretchable"
		      >Stretchable</A
		      > (s -&gt; a)</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A HREF = "Sound.Hommage.Notation.html#t%3AStretchable"
		      >Stretchable</A
		      > (<A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		      >Notation</A
		      > a)</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A HREF = "Sound.Hommage.Notation.html#t%3AStretchable"
		      >Stretchable</A
		      > (<A HREF = "Sound.Hommage.Play.html#t%3APlay"
		      >Play</A
		      > a)</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A HREF = "Sound.Hommage.Notation.html#t%3AStretchable"
		      >Stretchable</A
		      > (<A HREF = "Sound.Hommage.Rand.html#t%3ARM"
		      >RM</A
		      > a)</TD
		    ></TR
		  ></TABLE
		></TD
	      ></TR
	    ></TABLE
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><SPAN CLASS = "keyword"
	  >class</SPAN
	  > <A NAME = "t%3AArrangeable"
	  ></A
	  ><B
	  >Arrangeable</B
	  > a  <SPAN CLASS = "keyword"
	  >where</SPAN
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "body"
	><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
	  ><TR
	    ><TD CLASS = "ndoc"
	      > Types/structures that can be composed in two ways, parallel and sequent.</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "section4"
	      >Methods</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "body"
	      ><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
		><TR
		  ><TD CLASS = "decl"
		    ><A NAME = "v%3Aparallel"
		      ></A
		      ><B
		      >parallel</B
		      > :: a -&gt; a -&gt; a</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "s8"
		    ></TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A NAME = "v%3Asequent"
		      ></A
		      ><B
		      >sequent</B
		      > :: a -&gt; a -&gt; a</TD
		    ></TR
		  ></TABLE
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "section4"
	      >Instances</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "body"
	      ><TABLE CLASS = "vanilla" CELLSPACING = "1" CELLPADDING = "0"
		><TR
		  ><TD CLASS = "decl"
		    >(<A HREF = "Sound.Hommage.Notation.html#t%3AIsDur"
		      >IsDur</A
		      > d, <A HREF = "Sound.Hommage.Notation.html#t%3AArrangeable"
		      >Arrangeable</A
		      > a) =&gt; <A HREF = "Sound.Hommage.Notation.html#t%3AArrangeable"
		      >Arrangeable</A
		      > (<A HREF = "Sound.Hommage.Notation.html#t%3AWithDur"
		      >WithDur</A
		      > d a)</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    >(<A HREF = "Sound.Hommage.Notation.html#t%3AArrangeable"
		      >Arrangeable</A
		      > a) =&gt; <A HREF = "Sound.Hommage.Notation.html#t%3AArrangeable"
		      >Arrangeable</A
		      > (s -&gt; a)</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A HREF = "Sound.Hommage.Notation.html#t%3AArrangeable"
		      >Arrangeable</A
		      > (<A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		      >Notation</A
		      > a)</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A HREF = "Sound.Hommage.Notation.html#t%3AArrangeable"
		      >Arrangeable</A
		      > <A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
		      >MidiMusic</A
		      ></TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A HREF = "Sound.Hommage.Notation.html#t%3AArrangeable"
		      >Arrangeable</A
		      > (<A HREF = "Sound.Hommage.Rand.html#t%3ARM"
		      >RM</A
		      > a)</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A HREF = "Sound.Hommage.Notation.html#t%3AArrangeable"
		      >Arrangeable</A
		      > (<A HREF = "Sound.Hommage.Seq.html#t%3ASeq"
		      >Seq</A
		      > a)</TD
		    ></TR
		  ></TABLE
		></TD
	      ></TR
	    ></TABLE
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><SPAN CLASS = "keyword"
	  >class</SPAN
	  > (<A HREF = "Sound.Hommage.Notation.html#t%3AStretchable"
	  >Stretchable</A
	  > a, <A HREF = "Sound.Hommage.Notation.html#t%3AArrangeable"
	  >Arrangeable</A
	  > a) =&gt; <A NAME = "t%3AMusical"
	  ></A
	  ><B
	  >Musical</B
	  > a  <SPAN CLASS = "keyword"
	  >where</SPAN
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "body"
	><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
	  ><TR
	    ><TD CLASS = "ndoc"
	      > Instances of class <TT
		><A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
		  >Musical</A
		  ></TT
		> must be <TT
		><A HREF = "Sound.Hommage.Notation.html#t%3AStretchable"
		  >Stretchable</A
		  ></TT
		>, <TT
		><A HREF = "Sound.Hommage.Notation.html#t%3AArrangeable"
		  >Arrangeable</A
		  ></TT
		> and
   they must implement the method <TT
		><A HREF = "Sound.Hommage.Notation.html#v%3Arest"
		  >rest</A
		  ></TT
		>. </TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "section4"
	      >Methods</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "body"
	      ><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
		><TR
		  ><TD CLASS = "decl"
		    ><A NAME = "v%3Arest"
		      ></A
		      ><B
		      >rest</B
		      > :: a</TD
		    ></TR
		  ></TABLE
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "section4"
	      >Instances</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "body"
	      ><TABLE CLASS = "vanilla" CELLSPACING = "1" CELLPADDING = "0"
		><TR
		  ><TD CLASS = "decl"
		    >(<A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
		      >Musical</A
		      > a) =&gt; <A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
		      >Musical</A
		      > (s -&gt; a)</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
		      >Musical</A
		      > (<A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
		      >Notation</A
		      > a)</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    >(<A HREF = "Sound.Hommage.Notation.html#t%3AIsDur"
		      >IsDur</A
		      > d) =&gt; <A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
		      >Musical</A
		      > (<A HREF = "Sound.Hommage.Notation.html#t%3AWithDur"
		      >WithDur</A
		      > d <A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
		      >MidiMusic</A
		      >)</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    ><A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
		      >Musical</A
		      > (<A HREF = "Sound.Hommage.Rand.html#t%3ARM"
		      >RM</A
		      > a)</TD
		    ></TR
		  ><TR
		  ><TD CLASS = "decl"
		    >(<A HREF = "Sound.Hommage.Notation.html#t%3AIsDur"
		      >IsDur</A
		      > d) =&gt; <A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
		      >Musical</A
		      > (<A HREF = "Sound.Hommage.Notation.html#t%3AWithDur"
		      >WithDur</A
		      > d (<A HREF = "Sound.Hommage.Seq.html#t%3ASeq"
		      >Seq</A
		      > a))</TD
		    ></TR
		  ></TABLE
		></TD
	      ></TR
	    ></TABLE
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3Arest0"
	  ></A
	  ><B
	  >rest0</B
	  > :: (<A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
	  >Musical</A
	  > a) =&gt; a</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3A-%3D-"
	  ></A
	  ><B
	  >(-=-)</B
	  > :: (<A HREF = "Sound.Hommage.Notation.html#t%3AArrangeable"
	  >Arrangeable</A
	  > a) =&gt; a -&gt; a -&gt; a</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3A-%3E-"
	  ></A
	  ><B
	  >(-&gt;-)</B
	  > :: (<A HREF = "Sound.Hommage.Notation.html#t%3AArrangeable"
	  >Arrangeable</A
	  > a) =&gt; a -&gt; a -&gt; a</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3Aline"
	  ></A
	  ><B
	  >line</B
	  > :: (<A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
	  >Musical</A
	  > a) =&gt; [a] -&gt; a</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> A sequence of sounds</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3Aline'"
	  ></A
	  ><B
	  >line'</B
	  > :: (<A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
	  >Musical</A
	  > a) =&gt; [a] -&gt; a</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> A sequence of sounds that will be stretched to length=1</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3Achord"
	  ></A
	  ><B
	  >chord</B
	  > :: (<A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
	  >Musical</A
	  > a) =&gt; [a] -&gt; a</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3Aproportional"
	  ></A
	  ><B
	  >proportional</B
	  > :: (<A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
	  >Musical</A
	  > a) =&gt; (Int, Int) -&gt; a -&gt; a -&gt; a</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> Composes the notations sequentially and stretches them proportionally.</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section1"
	><A NAME = "4"
	  > Notation and Midi </A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AwriteMidiSyncNotation"
	  ></A
	  ><B
	  >writeMidiSyncNotation</B
	  > :: FilePath -&gt; [<A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	  >Notation</A
	  > <A HREF = "Sound.Hommage.Midi.html#t%3AMidiNote"
	  >MidiNote</A
	  >] -&gt; IO ()</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> A convenient function to write a set of midi notations to a synchronous MIDI-file.
   NOTE: For unknown reasons not any Ticks value seemes to work. This function uses
   96 Ticks per quarter. </TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3Amidi"
	  ></A
	  ><B
	  >midi</B
	  > :: (<A HREF = "Sound.Hommage.Notation.html#t%3AIsDur"
	  >IsDur</A
	  > d) =&gt; <A HREF = "Sound.Hommage.Midi.html#t%3AMidiNote"
	  >MidiNote</A
	  > -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3AWithDur"
	  >WithDur</A
	  > d <A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
	  >MidiMusic</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> A <TT
	  > Notation MidiNote </TT
	  > can be interpreted using <TT
	  ><A HREF = "Sound.Hommage.Notation.html#v%3ArunNotationWith"
	    >runNotationWith</A
	    ></TT
	  > and <TT
	  ><A HREF = "Sound.Hommage.Notation.html#v%3Amidi"
	    >midi</A
	    ></TT
	  >. </TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3Amidi'"
	  ></A
	  ><B
	  >midi'</B
	  > :: (<A HREF = "Sound.Hommage.Notation.html#t%3AIsDur"
	  >IsDur</A
	  > d) =&gt; <A HREF = "Sound.Hommage.Notation.html#t%3AWithDur"
	  >WithDur</A
	  > d <A HREF = "Sound.Hommage.Midi.html#t%3AMidiNote"
	  >MidiNote</A
	  > -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3AWithDur"
	  >WithDur</A
	  > d <A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
	  >MidiMusic</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AmidiSyncFile"
	  ></A
	  ><B
	  >midiSyncFile</B
	  > :: <A HREF = "Sound.Hommage.Midi.html#t%3ATicks"
	  >Ticks</A
	  > -&gt; [<A HREF = "Sound.Hommage.Notation.html#t%3AWithDur"
	  >WithDur</A
	  > <A HREF = "Sound.Hommage.Notation.html#t%3ADur"
	  >Dur</A
	  > <A HREF = "Sound.Hommage.Midi.html#t%3AMidiMusic"
	  >MidiMusic</A
	  >] -&gt; <A HREF = "Sound.Hommage.Midi.html#t%3AMidiFile"
	  >MidiFile</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section1"
	><A NAME = "5"
	  > More Notation functions</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3Anote"
	  ></A
	  ><B
	  >note</B
	  > :: a -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	  >Notation</A
	  > a</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> Creates a note with length 1. Is a synonym for <TT
	  >Note (1%1)</TT
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AmapNotation"
	  ></A
	  ><B
	  >mapNotation</B
	  > :: (a -&gt; b) -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	  >Notation</A
	  > a -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	  >Notation</A
	  > b</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> <TT
	  ><A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	    >Notation</A
	    ></TT
	  > is instance of the class Functor.</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AjoinNotation"
	  ></A
	  ><B
	  >joinNotation</B
	  > :: <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	  >Notation</A
	  > (<A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	  >Notation</A
	  > a) -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	  >Notation</A
	  > a</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> <TT
	  ><A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	    >Notation</A
	    ></TT
	  > is instance of the class Monad. Joining will replace
    every (outer) Note by its contained (inner) Notation. The inner
    Notation will be stretched by the duration of the (outer) Note.</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AunmaybeNotation"
	  ></A
	  ><B
	  >unmaybeNotation</B
	  > :: <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	  >Notation</A
	  > (Maybe a) -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	  >Notation</A
	  > a</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> Replaces any Note that contains Nothing by a rest (with same duration).</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AdurationNotation"
	  ></A
	  ><B
	  >durationNotation</B
	  > :: <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	  >Notation</A
	  > a -&gt; Ratio Int</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> Calculates the (relative) duration of a <TT
	  ><A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	    >Notation</A
	    ></TT
	  > (Must be finite!).</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3ApositionNotation"
	  ></A
	  ><B
	  >positionNotation</B
	  > :: <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	  >Notation</A
	  > a -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	  >Notation</A
	  > (<A HREF = "Sound.Hommage.Notation.html#t%3ADur"
	  >Dur</A
	  >, a)</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> Calculates the offset for each note.</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AreverseNotation"
	  ></A
	  ><B
	  >reverseNotation</B
	  > :: <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	  >Notation</A
	  > a -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	  >Notation</A
	  > a</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> Reverses a <TT
	  ><A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	    >Notation</A
	    ></TT
	  > (Must be finite!).</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AtakeNotation"
	  ></A
	  ><B
	  >takeNotation</B
	  > :: Ratio Int -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	  >Notation</A
	  > a -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	  >Notation</A
	  > a</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> Takes the beginning of <TT
	  ><A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	    >Notation</A
	    ></TT
	  >, result has the given duration if possible or is shorter otherwise.
   Notes that overlap with the end of duration are not taken but replaced by the (fitted) rests.</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AdropNotation"
	  ></A
	  ><B
	  >dropNotation</B
	  > :: Ratio Int -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	  >Notation</A
	  > a -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	  >Notation</A
	  > a</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> Drops the beginning of <TT
	  ><A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	    >Notation</A
	    ></TT
	  >. Notes that would be split are replaced by fitted rests.</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AfilterNotation"
	  ></A
	  ><B
	  >filterNotation</B
	  > :: (<A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
	  >Musical</A
	  > (m a), Monad m) =&gt; (a -&gt; Bool) -&gt; m a -&gt; m a</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> Replaces notes where the predicate fails with rests.
filterNotation :: (a -&gt; Bool) -&gt; Notation a -&gt; Notation a</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AfilterNotation'"
	  ></A
	  ><B
	  >filterNotation'</B
	  > :: (<A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
	  >Musical</A
	  > (m a), <A HREF = "Sound.Hommage.Notation.html#t%3AMusical"
	  >Musical</A
	  > (m b), Monad m) =&gt; (a -&gt; Maybe b) -&gt; m a -&gt; m b</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AsequenceNotation"
	  ></A
	  ><B
	  >sequenceNotation</B
	  > :: (a -&gt; b -&gt; c) -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ADur"
	  >Dur</A
	  > -&gt; [a] -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	  >Notation</A
	  > b -&gt; <A HREF = "Sound.Hommage.Notation.html#t%3ANotation"
	  >Notation</A
	  > c</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> A parallel composition of a sequence of values and a Notation
   Each value of the sequence has the same given duration.
   Every Note is updated by a function that gets the actual value of the sequence. 
   NOTE: This function is not tested yet! </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
>