\begin{haskelllisting}
> module Haskore.Melody.Standard
>           (Note, T, NoteAttributes, fromMelodyNullAttr,
>            na, velocity1, vibrato, tremolo,
>            cf,c,cs,df,d,ds,ef,e,es,ff,f,fs,gf,g,gs,af,a,as,bf,b,bs) where
> import Haskore.Melody
>           (cf,c,cs,df,d,ds,ef,e,es,ff,f,fs,gf,g,gs,af,a,as,bf,b,bs)
> import qualified Haskore.Music  as Music
> import qualified Haskore.Melody as Melody
> import qualified Data.Accessor.Basic      as Accessor
> import qualified Data.Accessor.Show as AccShow
> type Note = Melody.Note NoteAttributes
> type T    = Melody.T    NoteAttributes
\end{haskelllisting} % | Dynamics String % | Fingering Int Recall that the \code{Note} constructor contained a field of \code{NoteAttribute}s. These are values that are attached to notes for the purpose of notation or musical interpretation. \begin{haskelllisting}
> data NoteAttributes =
>    NoteAttributes {
>       velocity_ :: Rational, -- intensity of playing between 0 and 1
>       vibrato_  :: (Rational, Rational),
>       tremolo_  :: (Rational, Rational)
>    } deriving (Eq, Ord)
>
> instance Show NoteAttributes where
>    showsPrec =
>       AccShow.showsPrec
>          [AccShow.field "velocity1" velocity1,
>           AccShow.field "vibrato"   vibrato,
>           AccShow.field "tremolo"   tremolo]
>          "na" na
>
> na :: NoteAttributes
> na = NoteAttributes 1 (0,0) (0,0)
>
> velocity1 :: Accessor.T NoteAttributes Rational
> velocity1 =
>    Accessor.fromSetGet (\v nas -> nas{velocity_ = v}) velocity_
>
> vibrato :: Accessor.T NoteAttributes (Rational, Rational)
> vibrato =
>    Accessor.fromSetGet (\v nas -> nas{vibrato_ = v}) vibrato_
>
> tremolo :: Accessor.T NoteAttributes (Rational, Rational)
> tremolo =
>    Accessor.fromSetGet (\v nas -> nas{tremolo_ = v}) tremolo_
\end{haskelllisting} \begin{haskelllisting}
> fromMelodyNullAttr :: Melody.T () -> T
> fromMelodyNullAttr =
>    Music.mapNote (\(Melody.Note _ p) -> Melody.Note na p)
\end{haskelllisting} % Music.mapNote (Accessor.set Melody.noteAttrs na)