Safe Haskell | Safe-Inferred |
---|
Documentation
Instances
Generics.Generic Note Source # | |
Defined in Perform.Sc.Note type Generics.Rep Note :: Type -> Type # from :: Note -> Generics.Rep Note x # to :: Generics.Rep Note x -> Note # | |
Show Note Source # | |
Eq Note Source # | |
Pretty.Pretty Note Source # | |
type Generics.Rep Note Source # | |
Defined in Perform.Sc.Note type Generics.Rep Note = Generics.D1 ('Generics.MetaData "Note" "Perform.Sc.Note" "main" 'False) (Generics.C1 ('Generics.MetaCons "Note" 'Generics.PrefixI 'True) (Generics.S1 ('Generics.MetaSel ('Just "patch") 'Generics.NoSourceUnpackedness 'Generics.SourceStrict 'Generics.DecidedStrict) (Generics.Rec0 PatchName) Generics.:*: (Generics.S1 ('Generics.MetaSel ('Just "start") 'Generics.NoSourceUnpackedness 'Generics.SourceStrict 'Generics.DecidedStrict) (Generics.Rec0 RealTime) Generics.:*: Generics.S1 ('Generics.MetaSel ('Just "controls") 'Generics.NoSourceUnpackedness 'Generics.SourceStrict 'Generics.DecidedStrict) (Generics.Rec0 (Map ControlId MSignal.Signal))))) |
type PatchName = ByteString.ByteString Source #
type Notes = [LEvent.LEvent Note] Source #
Store notes with shift (backwards in time) and stretch.
For MIDI, I apply the transformation directly to the msgs because they are already in their low level form so the transform will stream. But SC Notes are at a higher level and converted to low level OSC only in Sc.Play... not for any really good reason, but I guess it seemed simpler to not expose the "perform" step, and keep it inside Sc.Play.