music-parts-1.6.2: To be written.

Portabilitynon-portable (TF,GNTD)
Stabilityexperimental
Maintainerhans@hanshoglund.se
Safe HaskellNone

Music.Parts

Contents

Description

Part representation.

Synopsis

Terminology

Parts represent a subset of a group of performers. It is mainly used for instrumental and vocal music, but some concetps may be useful in electronic music as well.

  • Section refers to a set of instrumentfamilies related by sound production method (i.e. woodwind).
  • Family refers to a set of instrument or voice types, which typically differ in size (i.e. saxophones).
  • Instrument refers to a set of instruments or voice types of a given type (i.e. soprano saxophones). Perhaps confusingly, this includes vocal types such as alto, tenor etc as well. However, there is no good general term that incorporate both instrument and voice type.
  • A Part is made up of an Instrument and a Division (i.e. Violin I). Solo parts are treated separately, so i.e. Violin solo II (as in a double concerto) is distinct from Violin II.

Subparts

data Division Source

A division represents a subset of a finite group of performers.

For example a group may be divided into three equal divisions, designated (0, 3), (1, 3) and (2, 3) respectively.

divisions :: Int -> [Division]Source

Get all possible divisions for a given divisor in ascending order.

data Subpart Source

A subpart is a potentially infinite sequence of divisions, each typically designated using a new index type, i.e. I.1.2.

The empty subpart (also known as def) represents all the players of the group, or in the context of Part, all players of the given instrument.

Instruments

data Instrument Source

An Instrument represents the set of all instruments of a given type.

Instances

Enum Instrument 
Eq Instrument 
Ord Instrument 
Show Instrument 
Default Instrument

 This instance is quite arbitrary but very handy.

Parts

data Solo Source

Constructors

Solo 
Tutti 

data Part Source

A part is a subdivided group of instruments of a given type.

Constructors

Part Solo Instrument Subpart 

divide :: Int -> Part -> [Part]Source

 Divide a part inton subparts.

containsPart :: Part -> Part -> BoolSource

a `containsPart` b holds if the set of players represented by a is an improper subset of the set of players represented by b.

Instruments etc

Default values

Basic