Karya, built on Mon Jul 24 11:39:07 PDT 2017 (patch 33511aca01257b76b88de7c7a2763b7a965c084e)

Safe HaskellNone

Perform.Midi.Types

Contents

Description

Basic types for Perform.Midi.Perform.

Synopsis

Documentation

data Patch Source #

The Patch is derived from a Patch.Patch and contains all the data necessary to render a Event to a midi message. Each Event has an attached Patch.

Constructors

Patch 

Fields

  • patch_name :: !Instrument

    The name for the instrument as used in the score. It should globally identify the instrument within this score.

  • patch_keyswitch :: ![Patch.Keyswitch]

    Keyswitches required by this instrument. At higher levels, a single instrument can respond to a variety of keyswitches, but at the perform level, each instrument of each note is specialized to the particular keyswitches intended. So this is normally empty, but filled in by convert prior to perform.

  • patch_hold_keyswitch :: !Bool

    If true, the keysitch has to be held while the note is playing. Otherwise, it will just be tapped before the note starts.

  • patch_control_map :: !Control.ControlMap

    Map control names to a control number. Some controls are shared by all midi instruments, but some instruments have special controls.

  • patch_pitch_bend_range :: !Control.PbRange
     
  • patch_decay :: !(Maybe RealTime)

    Time from NoteOff to inaudible, in seconds. This can be used to figure out how long to generate control messages, or possibly determine overlap for channel allocation, though I use LRU so it shouldn't matter.

Instances

Eq Patch # 

Methods

(==) :: Patch -> Patch -> Bool #

(/=) :: Patch -> Patch -> Bool #

Ord Patch # 

Methods

compare :: Patch -> Patch -> Ordering #

(<) :: Patch -> Patch -> Bool #

(<=) :: Patch -> Patch -> Bool #

(>) :: Patch -> Patch -> Bool #

(>=) :: Patch -> Patch -> Bool #

max :: Patch -> Patch -> Patch #

min :: Patch -> Patch -> Patch #

Show Patch # 

Methods

showsPrec :: Int -> Patch -> ShowS #

show :: Patch -> String #

showList :: [Patch] -> ShowS #

DeepSeq.NFData Patch # 

Methods

rnf :: Patch -> () #

Pretty.Pretty Patch # 

default_decay :: RealTime Source #

Somewhat conservative default decay which should suit most instruments. decay will probably only rarely be explicitly set.

event

show_short :: Event -> Text Source #

Pretty print the event more briefly than the Pretty instance.