Copyright | (c) 2012--2014, Utrecht University |
---|---|
License | LGPL-3 |
Maintainer | W. Bas de Haas <w.b.dehaas@uu.nl> |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | Haskell98 |
Summary: a simple score representation derived from a MidiFile (as parsed by the ZMidi.Core library: https://hackage.haskell.org/package/zmidi-core
- data MidiScore = MidiScore {
- getKey :: [Timed Key]
- getTimeSig :: [Timed TimeSig]
- ticksPerBeat :: TPB
- midiFormat :: MidiFormat
- tempo :: [Timed Time]
- minDur :: Time
- getVoices :: [Voice]
- data Key
- data TimeSig
- type Voice = [Timed ScoreEvent]
- newtype Channel = Channel {}
- newtype Pitch = Pitch (Octave, PitchClass)
- newtype Octave = Octave {}
- newtype PitchClass = PitchClass {
- pitchclass :: Int
- newtype Interval = Interval {}
- newtype Velocity = Velocity {}
- data Timed a = Timed {}
- newtype Time = Time {}
- newtype Bar = Bar {}
- newtype Beat = Beat {}
- newtype BeatRat = BeatRat {}
- newtype BarRat = BarRat {}
- newtype TPB = TPB {}
- data ScoreEvent
Score representation of a MidiFile
Stores the main elements of a musical score that can be derived from a midifile
MidiScore | |
|
Represents a musical key
A TimeSig
nature has a fraction, e.g. 4/4, 3/4, or 6/8.
type Voice = [Timed ScoreEvent] Source
A Voice
is a list of ScoreEvent
s that have time stamps.
The MIDI Channel as stored in the MIDI file
Pitch is represented by a PitchClass
and an Octave
Represents a musical octave
newtype PitchClass Source
A Pitch class representation (there is no check for values > 11)
Represents a musical interval
Represents MIDI velocity
Adds MIDI Time
information to a datatype
Represents MIDI time in ticks
A Bar counter used to interpret a MIDI Time
stamp
A counter for musical beats
data ScoreEvent Source
Within ZMidi.Score we represent four score events: a note, a key change, a time signature or a tempo change