Module

Data.Euterpea.Transform

Package
purescript-school-of-music
Repository
newlandsvalley/purescript-school-of-music

#foldr1 Source

foldr1 :: forall a. (a -> a -> a) -> NonEmptyList a -> a

utility functions that should probably belong in various Purescript libraries

#(/=:) Source

Operator alias for Data.Euterpea.Transform.cutm (left-associative / precedence 5)

MoreMusic proper

#line Source

line :: forall a. List (Music a) -> Music a

#chord Source

chord :: forall a. List (Music a) -> Music a

#line1 Source

line1 :: forall a. NonEmptyList (Music a) -> Music a

#chord1 Source

chord1 :: forall a. NonEmptyList (Music a) -> Music a

#offset Source

offset :: forall a. Dur -> Music a -> Music a

#times Source

times :: forall a. Int -> Music a -> Music a

#lineToList Source

lineToList :: forall a. Music a -> List (Music a)

how do I pattern match on Rationals? how do I return an error?

#invertAt1 Source

invertAt1 :: forall a. Pitch -> Music (Tuple Pitch a) -> Music (Tuple Pitch a)

#invert1 Source

invert1 :: forall a. Music (Tuple Pitch a) -> Music (Tuple Pitch a)

#retro Source

retro :: forall a. Music a -> Music a

#dur Source

dur :: forall a. Music a -> Dur

#cut Source

cut :: forall a. Dur -> Music a -> Music a

#remove Source

remove :: forall a. Dur -> Music a -> Music a

#removeZeros Source

removeZeros :: forall a. Music a -> Music a

#LazyDur Source

#durL Source

durL :: forall a. Music a -> LazyDur

#minL Source

minL :: LazyDur -> Dur -> Dur

#cutL Source

cutL :: forall a. LazyDur -> Music a -> Music a

#cutm Source

cutm :: forall a. Music a -> Music a -> Music a

#mFold Source

mFold :: forall b a. (Primitive a -> b) -> (b -> b -> b) -> (b -> b -> b) -> (Control -> b -> b) -> Music a -> b

#shiftPitches Source

shiftPitches :: AbsPitch -> Music Pitch -> Music Pitch

Sometimes we may wish to alter the internal structure of a Music value rather than wrapping it with Modify. The following functions allow this.

#shiftPitches1 Source

shiftPitches1 :: forall a. AbsPitch -> Music (Tuple Pitch a) -> Music (Tuple Pitch a)

shiftPitches2 is useless unless we model Note1 as a Tuple

#scaleDurations Source

scaleDurations :: forall a. Rational -> Music a -> Music a

#changeInstrument Source

#removeInstruments Source

removeInstruments :: forall a. Music a -> Music a