-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | dynamic core for csound-expression library -- -- dynamic core for csound-expression library @package csound-expression-dynamic @version 0.3.2 -- | Csound's command line flags. See original documentation for detailed -- overview: -- http://www.csounds.com/manual/html/CommandFlagsCategory.html module Csound.Dynamic.Types.Flags data Flags Flags :: AudioFileOutput -> IdTags -> Maybe Rtaudio -> Maybe PulseAudio -> MidiIO -> MidiRT -> Maybe Rtmidi -> Displays -> Config -> Maybe String -> Flags [audioFileOutput] :: Flags -> AudioFileOutput [idTags] :: Flags -> IdTags [rtaudio] :: Flags -> Maybe Rtaudio [pulseAudio] :: Flags -> Maybe PulseAudio [midiIO] :: Flags -> MidiIO [midiRT] :: Flags -> MidiRT [rtmidi] :: Flags -> Maybe Rtmidi [displays] :: Flags -> Displays [config] :: Flags -> Config [flagsVerbatim] :: Flags -> Maybe String data AudioFileOutput AudioFileOutput :: Maybe FormatSamples -> Maybe FormatType -> Maybe String -> Maybe String -> Bool -> Bool -> Maybe Dither -> AudioFileOutput [formatSamples] :: AudioFileOutput -> Maybe FormatSamples [formatType] :: AudioFileOutput -> Maybe FormatType [output] :: AudioFileOutput -> Maybe String [input] :: AudioFileOutput -> Maybe String [nosound] :: AudioFileOutput -> Bool [nopeaks] :: AudioFileOutput -> Bool [dither] :: AudioFileOutput -> Maybe Dither data FormatHeader NoHeader :: FormatHeader RewriteHeader :: FormatHeader data FormatSamples Bit24 :: FormatSamples Alaw :: FormatSamples Uchar :: FormatSamples Schar :: FormatSamples FloatSamples :: FormatSamples Ulaw :: FormatSamples Short :: FormatSamples Long :: FormatSamples data FormatType Aiff :: FormatType Au :: FormatType Avr :: FormatType Caf :: FormatType Flac :: FormatType Htk :: FormatType Ircam :: FormatType Mat4 :: FormatType Mat5 :: FormatType Nis :: FormatType Paf :: FormatType Pvf :: FormatType Raw :: FormatType Sd2 :: FormatType Sds :: FormatType Svx :: FormatType Voc :: FormatType W64 :: FormatType Wav :: FormatType Wavex :: FormatType Xi :: FormatType data Dither Triangular :: Dither Uniform :: Dither data IdTags IdTags :: Maybe String -> Maybe String -> Maybe String -> Maybe String -> Maybe String -> Maybe String -> IdTags [idArtist] :: IdTags -> Maybe String [idComment] :: IdTags -> Maybe String [idCopyright] :: IdTags -> Maybe String [idDate] :: IdTags -> Maybe String [idSoftware] :: IdTags -> Maybe String [idTitle] :: IdTags -> Maybe String data Rtaudio PortAudio :: Rtaudio Alsa :: Rtaudio Jack :: String -> String -> String -> Rtaudio [jackClient] :: Rtaudio -> String [jackInport] :: Rtaudio -> String [jackOutport] :: Rtaudio -> String Mme :: Rtaudio CoreAudio :: Rtaudio NoRtaudio :: Rtaudio data PulseAudio PulseAudio :: String -> String -> String -> PulseAudio [paServer] :: PulseAudio -> String [paOutput] :: PulseAudio -> String [paInput] :: PulseAudio -> String data MidiIO MidiIO :: Maybe String -> Maybe String -> Maybe String -> Bool -> Bool -> MidiIO [midiFile] :: MidiIO -> Maybe String [midiOutFile] :: MidiIO -> Maybe String [muteTracks] :: MidiIO -> Maybe String [rawControllerMode] :: MidiIO -> Bool [terminateOnMidi] :: MidiIO -> Bool data MidiRT MidiRT :: Maybe String -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe String -> MidiRT [midiDevice] :: MidiRT -> Maybe String [midiKey] :: MidiRT -> Maybe Int [midiKeyCps] :: MidiRT -> Maybe Int [midiKeyOct] :: MidiRT -> Maybe Int [midiKeyPch] :: MidiRT -> Maybe Int [midiVelocity] :: MidiRT -> Maybe Int [midiVelocityAmp] :: MidiRT -> Maybe Int [midiOutDevice] :: MidiRT -> Maybe String data Rtmidi PortMidi :: Rtmidi AlsaMidi :: Rtmidi AlsaSeq :: Rtmidi CoreMidi :: Rtmidi MmeMidi :: Rtmidi WinmmeMidi :: Rtmidi VirtualMidi :: Rtmidi NoRtmidi :: Rtmidi data Displays Displays :: Maybe Int -> Maybe DisplayMode -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Bool -> Bool -> Maybe Int -> Displays [csdLineNums] :: Displays -> Maybe Int [displayMode] :: Displays -> Maybe DisplayMode [displayHeartbeat] :: Displays -> Maybe Int [messageLevel] :: Displays -> Maybe Int [mAmps] :: Displays -> Maybe Int [mRange] :: Displays -> Maybe Int [mWarnings] :: Displays -> Maybe Int [mDb] :: Displays -> Maybe Int [mColours] :: Displays -> Maybe Int [mBenchmarks] :: Displays -> Maybe Int [msgColor] :: Displays -> Bool [displayVerbose] :: Displays -> Bool [listOpcodes] :: Displays -> Maybe Int data DisplayMode NoDisplay :: DisplayMode PostScriptDisplay :: DisplayMode AsciiDisplay :: DisplayMode data Config Config :: Maybe Int -> Maybe Int -> Maybe Int -> Maybe Int -> Maybe String -> Maybe (String, String) -> Maybe (String, String) -> Bool -> Maybe Int -> Maybe (Int, String) -> Maybe Double -> Maybe Int -> Config [hwBuf] :: Config -> Maybe Int [ioBuf] :: Config -> Maybe Int [newKr] :: Config -> Maybe Int [newSr] :: Config -> Maybe Int [scoreIn] :: Config -> Maybe String [omacro] :: Config -> Maybe (String, String) [smacro] :: Config -> Maybe (String, String) [setSched] :: Config -> Bool [schedNum] :: Config -> Maybe Int [strsetN] :: Config -> Maybe (Int, String) [skipSeconds] :: Config -> Maybe Double [setTempo] :: Config -> Maybe Int instance GHC.Read.Read Csound.Dynamic.Types.Flags.Flags instance GHC.Show.Show Csound.Dynamic.Types.Flags.Flags instance GHC.Classes.Eq Csound.Dynamic.Types.Flags.Flags instance GHC.Read.Read Csound.Dynamic.Types.Flags.Config instance GHC.Show.Show Csound.Dynamic.Types.Flags.Config instance GHC.Classes.Eq Csound.Dynamic.Types.Flags.Config instance GHC.Read.Read Csound.Dynamic.Types.Flags.Displays instance GHC.Show.Show Csound.Dynamic.Types.Flags.Displays instance GHC.Classes.Eq Csound.Dynamic.Types.Flags.Displays instance GHC.Read.Read Csound.Dynamic.Types.Flags.DisplayMode instance GHC.Show.Show Csound.Dynamic.Types.Flags.DisplayMode instance GHC.Classes.Eq Csound.Dynamic.Types.Flags.DisplayMode instance GHC.Read.Read Csound.Dynamic.Types.Flags.Rtmidi instance GHC.Show.Show Csound.Dynamic.Types.Flags.Rtmidi instance GHC.Classes.Eq Csound.Dynamic.Types.Flags.Rtmidi instance GHC.Read.Read Csound.Dynamic.Types.Flags.MidiRT instance GHC.Show.Show Csound.Dynamic.Types.Flags.MidiRT instance GHC.Classes.Eq Csound.Dynamic.Types.Flags.MidiRT instance GHC.Read.Read Csound.Dynamic.Types.Flags.MidiIO instance GHC.Show.Show Csound.Dynamic.Types.Flags.MidiIO instance GHC.Classes.Eq Csound.Dynamic.Types.Flags.MidiIO instance GHC.Read.Read Csound.Dynamic.Types.Flags.PulseAudio instance GHC.Show.Show Csound.Dynamic.Types.Flags.PulseAudio instance GHC.Classes.Eq Csound.Dynamic.Types.Flags.PulseAudio instance GHC.Read.Read Csound.Dynamic.Types.Flags.Rtaudio instance GHC.Show.Show Csound.Dynamic.Types.Flags.Rtaudio instance GHC.Classes.Eq Csound.Dynamic.Types.Flags.Rtaudio instance GHC.Read.Read Csound.Dynamic.Types.Flags.IdTags instance GHC.Show.Show Csound.Dynamic.Types.Flags.IdTags instance GHC.Classes.Eq Csound.Dynamic.Types.Flags.IdTags instance GHC.Read.Read Csound.Dynamic.Types.Flags.AudioFileOutput instance GHC.Show.Show Csound.Dynamic.Types.Flags.AudioFileOutput instance GHC.Classes.Eq Csound.Dynamic.Types.Flags.AudioFileOutput instance GHC.Read.Read Csound.Dynamic.Types.Flags.FormatType instance GHC.Show.Show Csound.Dynamic.Types.Flags.FormatType instance GHC.Classes.Eq Csound.Dynamic.Types.Flags.FormatType instance GHC.Read.Read Csound.Dynamic.Types.Flags.Dither instance GHC.Show.Show Csound.Dynamic.Types.Flags.Dither instance GHC.Classes.Eq Csound.Dynamic.Types.Flags.Dither instance GHC.Read.Read Csound.Dynamic.Types.Flags.FormatSamples instance GHC.Show.Show Csound.Dynamic.Types.Flags.FormatSamples instance GHC.Classes.Eq Csound.Dynamic.Types.Flags.FormatSamples instance GHC.Read.Read Csound.Dynamic.Types.Flags.FormatHeader instance GHC.Show.Show Csound.Dynamic.Types.Flags.FormatHeader instance GHC.Classes.Eq Csound.Dynamic.Types.Flags.FormatHeader instance Data.Default.Class.Default Csound.Dynamic.Types.Flags.Flags instance GHC.Base.Monoid Csound.Dynamic.Types.Flags.Flags instance Data.Default.Class.Default Csound.Dynamic.Types.Flags.AudioFileOutput instance GHC.Base.Monoid Csound.Dynamic.Types.Flags.AudioFileOutput instance Data.Default.Class.Default Csound.Dynamic.Types.Flags.IdTags instance GHC.Base.Monoid Csound.Dynamic.Types.Flags.IdTags instance Data.Default.Class.Default Csound.Dynamic.Types.Flags.MidiIO instance GHC.Base.Monoid Csound.Dynamic.Types.Flags.MidiIO instance Data.Default.Class.Default Csound.Dynamic.Types.Flags.MidiRT instance GHC.Base.Monoid Csound.Dynamic.Types.Flags.MidiRT instance Data.Default.Class.Default Csound.Dynamic.Types.Flags.Displays instance GHC.Base.Monoid Csound.Dynamic.Types.Flags.Displays instance Data.Default.Class.Default Csound.Dynamic.Types.Flags.Config instance GHC.Base.Monoid Csound.Dynamic.Types.Flags.Config instance Text.PrettyPrint.Leijen.Pretty Csound.Dynamic.Types.Flags.Flags instance Text.PrettyPrint.Leijen.Pretty Csound.Dynamic.Types.Flags.AudioFileOutput instance Text.PrettyPrint.Leijen.Pretty Csound.Dynamic.Types.Flags.Dither instance Text.PrettyPrint.Leijen.Pretty Csound.Dynamic.Types.Flags.IdTags instance Text.PrettyPrint.Leijen.Pretty Csound.Dynamic.Types.Flags.Rtaudio instance Text.PrettyPrint.Leijen.Pretty Csound.Dynamic.Types.Flags.PulseAudio instance Text.PrettyPrint.Leijen.Pretty Csound.Dynamic.Types.Flags.MidiIO instance Text.PrettyPrint.Leijen.Pretty Csound.Dynamic.Types.Flags.MidiRT instance Text.PrettyPrint.Leijen.Pretty Csound.Dynamic.Types.Flags.Rtmidi instance Text.PrettyPrint.Leijen.Pretty Csound.Dynamic.Types.Flags.Displays instance Text.PrettyPrint.Leijen.Pretty Csound.Dynamic.Types.Flags.DisplayMode instance Text.PrettyPrint.Leijen.Pretty Csound.Dynamic.Types.Flags.Config -- | Main types module Csound.Dynamic.Types.Exp -- | The inner representation of csound expressions. type E = Fix RatedExp data RatedExp a RatedExp :: Maybe Rate -> Maybe LineNum -> Exp a -> RatedExp a -- | Rate (can be undefined or Nothing, it means that rate should be -- deduced automatically from the context) [ratedExpRate] :: RatedExp a -> Maybe Rate -- | Dependency (it is used for expressions with side effects, value -- contains the privious statement) [ratedExpDepends] :: RatedExp a -> Maybe LineNum -- | Main expression [ratedExpExp] :: RatedExp a -> Exp a isEmptyExp :: E -> Bool -- | RatedVar is for pretty printing of the wiring ports. type RatedVar = Var Rate -- | Makes an rated variable. ratedVar :: Rate -> Int -> RatedVar -- | Querries a rate. ratedVarRate :: RatedVar -> Rate -- | Querries an integral identifier. ratedVarId :: RatedVar -> Int ratedExp :: Maybe Rate -> Exp E -> E noRate :: Exp E -> E withRate :: Rate -> Exp E -> E setRate :: Rate -> E -> E type Exp a = MainExp (PrimOr a) -- | Constructs PrimOr values from the expressions. It does inlining in -- case of primitive values. toPrimOr :: E -> PrimOr E -- | Constructs PrimOr values from the expressions. It does inlining in -- case of primitive values. toPrimOrTfm :: Rate -> E -> PrimOr E -- | It's a primitive value or something else. It's used for inlining of -- the constants (primitive values). newtype PrimOr a PrimOr :: Either Prim a -> PrimOr a [unPrimOr] :: PrimOr a -> Either Prim a data MainExp a EmptyExp :: MainExp a -- | Primitives ExpPrim :: Prim -> MainExp a -- | Application of the opcode: we have opcode information (Info) and the -- arguments [a] Tfm :: Info -> [a] -> MainExp a -- | Rate conversion ConvertRate :: Rate -> Rate -> a -> MainExp a -- | Selects a cell from the tuple, here argument is always a tuple (result -- of opcode that returns several outputs) Select :: Rate -> Int -> a -> MainExp a -- | if-then-else If :: (CondInfo a) -> a -> a -> MainExp a -- | Boolean expressions (rendered in infix notation in the Csound) ExpBool :: (BoolExp a) -> MainExp a -- | Numerical expressions (rendered in infix notation in the Csound) ExpNum :: (NumExp a) -> MainExp a -- | Reading/writing a named variable InitVar :: Var -> a -> MainExp a ReadVar :: Var -> MainExp a WriteVar :: Var -> a -> MainExp a -- | Arrays InitArr :: Var -> (ArrSize a) -> MainExp a ReadArr :: Var -> (ArrIndex a) -> MainExp a WriteArr :: Var -> (ArrIndex a) -> a -> MainExp a WriteInitArr :: Var -> (ArrIndex a) -> a -> MainExp a TfmArr :: IsArrInit -> Var -> Info -> [a] -> MainExp a -- | Imperative If-then-else IfBegin :: Rate -> (CondInfo a) -> MainExp a ElseBegin :: MainExp a IfEnd :: MainExp a -- | looping constructions UntilBegin :: (CondInfo a) -> MainExp a UntilEnd :: MainExp a WhileBegin :: (CondInfo a) -> MainExp a WhileRefBegin :: Var -> MainExp a WhileEnd :: MainExp a -- | Verbatim stmt Verbatim :: String -> MainExp a -- | Dependency tracking Starts :: MainExp a Seq :: a -> a -> MainExp a Ends :: a -> MainExp a -- | read macros arguments InitMacrosInt :: String -> Int -> MainExp a InitMacrosDouble :: String -> Double -> MainExp a InitMacrosString :: String -> String -> MainExp a ReadMacrosInt :: String -> MainExp a ReadMacrosDouble :: String -> MainExp a ReadMacrosString :: String -> MainExp a type Name = String -- | An instrument identifier data InstrId InstrId :: Maybe Int -> Int -> InstrId [instrIdFrac] :: InstrId -> Maybe Int [instrIdCeil] :: InstrId -> Int InstrLabel :: String -> InstrId -- | Constructs an instrument id with the integer. intInstrId :: Int -> InstrId -- | Constructs an instrument id with fractional part. ratioInstrId :: Int -> Int -> InstrId -- | Constructs an instrument id with the string label. stringInstrId :: String -> InstrId data VarType LocalVar :: VarType GlobalVar :: VarType data Var Var :: VarType -> Rate -> Name -> Var [varType] :: Var -> VarType [varRate] :: Var -> Rate [varName] :: Var -> Name VarVerbatim :: Rate -> Name -> Var [varRate] :: Var -> Rate [varName] :: Var -> Name data Info Info :: Name -> Signature -> OpcFixity -> Info [infoName] :: Info -> Name [infoSignature] :: Info -> Signature [infoOpcFixity] :: Info -> OpcFixity data OpcFixity Prefix :: OpcFixity Infix :: OpcFixity Opcode :: OpcFixity -- | The Csound rates. data Rate Xr :: Rate Ar :: Rate Kr :: Rate Ir :: Rate Sr :: Rate Fr :: Rate Wr :: Rate Tvar :: Rate data Signature SingleRate :: (Map Rate [Rate]) -> Signature MultiRate :: [Rate] -> [Rate] -> Signature [outMultiRate] :: Signature -> [Rate] [inMultiRate] :: Signature -> [Rate] isInfix :: Info -> Bool isPrefix :: Info -> Bool data Prim P :: Int -> Prim PString :: Int -> Prim PrimInt :: Int -> Prim PrimDouble :: Double -> Prim PrimString :: String -> Prim PrimInstrId :: InstrId -> Prim PrimVar :: Rate -> Var -> Prim [primVarTargetRate] :: Prim -> Rate [primVar] :: Prim -> Var data Gen Gen :: Int -> GenId -> [Double] -> Maybe String -> Gen [genSize] :: Gen -> Int [genId] :: Gen -> GenId [genArgs] :: Gen -> [Double] [genFile] :: Gen -> Maybe String data GenId IntGenId :: Int -> GenId StringGenId :: String -> GenId data Inline a b Inline :: InlineExp a -> IntMap b -> Inline a b [inlineExp] :: Inline a b -> InlineExp a [inlineEnv] :: Inline a b -> IntMap b data InlineExp a InlinePrim :: Int -> InlineExp a InlineExp :: a -> [InlineExp a] -> InlineExp a data PreInline a b PreInline :: a -> [b] -> PreInline a b type BoolExp a = PreInline CondOp a type CondInfo a = Inline CondOp a data CondOp TrueOp :: CondOp FalseOp :: CondOp And :: CondOp Or :: CondOp Equals :: CondOp NotEquals :: CondOp Less :: CondOp Greater :: CondOp LessEquals :: CondOp GreaterEquals :: CondOp isTrue :: CondInfo a -> Bool isFalse :: CondInfo a -> Bool type NumExp a = PreInline NumOp a data NumOp Add :: NumOp Sub :: NumOp Neg :: NumOp Mul :: NumOp Div :: NumOp Pow :: NumOp Mod :: NumOp type Note = [Prim] -- | Multiple output. Specify the number of outputs to get the result. type MultiOut a = Int -> a type IsArrInit = Bool type ArrSize a = [a] type ArrIndex a = [a] instance GHC.Generics.Generic (Csound.Dynamic.Types.Exp.RatedExp a) instance Data.Traversable.Traversable Csound.Dynamic.Types.Exp.RatedExp instance Data.Foldable.Foldable Csound.Dynamic.Types.Exp.RatedExp instance GHC.Base.Functor Csound.Dynamic.Types.Exp.RatedExp instance GHC.Classes.Ord a => GHC.Classes.Ord (Csound.Dynamic.Types.Exp.RatedExp a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Csound.Dynamic.Types.Exp.RatedExp a) instance GHC.Show.Show a => GHC.Show.Show (Csound.Dynamic.Types.Exp.RatedExp a) instance GHC.Generics.Generic (Csound.Dynamic.Types.Exp.MainExp a) instance Data.Traversable.Traversable Csound.Dynamic.Types.Exp.MainExp instance Data.Foldable.Foldable Csound.Dynamic.Types.Exp.MainExp instance GHC.Base.Functor Csound.Dynamic.Types.Exp.MainExp instance GHC.Classes.Ord a => GHC.Classes.Ord (Csound.Dynamic.Types.Exp.MainExp a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Csound.Dynamic.Types.Exp.MainExp a) instance GHC.Show.Show a => GHC.Show.Show (Csound.Dynamic.Types.Exp.MainExp a) instance GHC.Generics.Generic Csound.Dynamic.Types.Exp.NumOp instance GHC.Classes.Ord Csound.Dynamic.Types.Exp.NumOp instance GHC.Classes.Eq Csound.Dynamic.Types.Exp.NumOp instance GHC.Show.Show Csound.Dynamic.Types.Exp.NumOp instance GHC.Generics.Generic Csound.Dynamic.Types.Exp.CondOp instance GHC.Classes.Ord Csound.Dynamic.Types.Exp.CondOp instance GHC.Classes.Eq Csound.Dynamic.Types.Exp.CondOp instance GHC.Show.Show Csound.Dynamic.Types.Exp.CondOp instance GHC.Generics.Generic (Csound.Dynamic.Types.Exp.PreInline a b) instance Data.Traversable.Traversable (Csound.Dynamic.Types.Exp.PreInline a) instance Data.Foldable.Foldable (Csound.Dynamic.Types.Exp.PreInline a) instance GHC.Base.Functor (Csound.Dynamic.Types.Exp.PreInline a) instance (GHC.Classes.Ord b, GHC.Classes.Ord a) => GHC.Classes.Ord (Csound.Dynamic.Types.Exp.PreInline a b) instance (GHC.Classes.Eq b, GHC.Classes.Eq a) => GHC.Classes.Eq (Csound.Dynamic.Types.Exp.PreInline a b) instance (GHC.Show.Show b, GHC.Show.Show a) => GHC.Show.Show (Csound.Dynamic.Types.Exp.PreInline a b) instance Data.Traversable.Traversable (Csound.Dynamic.Types.Exp.Inline a) instance Data.Foldable.Foldable (Csound.Dynamic.Types.Exp.Inline a) instance GHC.Base.Functor (Csound.Dynamic.Types.Exp.Inline a) instance (GHC.Classes.Ord b, GHC.Classes.Ord a) => GHC.Classes.Ord (Csound.Dynamic.Types.Exp.Inline a b) instance (GHC.Classes.Eq b, GHC.Classes.Eq a) => GHC.Classes.Eq (Csound.Dynamic.Types.Exp.Inline a b) instance (GHC.Show.Show b, GHC.Show.Show a) => GHC.Show.Show (Csound.Dynamic.Types.Exp.Inline a b) instance GHC.Generics.Generic (Csound.Dynamic.Types.Exp.InlineExp a) instance GHC.Classes.Ord a => GHC.Classes.Ord (Csound.Dynamic.Types.Exp.InlineExp a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Csound.Dynamic.Types.Exp.InlineExp a) instance GHC.Show.Show a => GHC.Show.Show (Csound.Dynamic.Types.Exp.InlineExp a) instance GHC.Generics.Generic Csound.Dynamic.Types.Exp.Gen instance GHC.Classes.Ord Csound.Dynamic.Types.Exp.Gen instance GHC.Classes.Eq Csound.Dynamic.Types.Exp.Gen instance GHC.Show.Show Csound.Dynamic.Types.Exp.Gen instance GHC.Generics.Generic Csound.Dynamic.Types.Exp.GenId instance GHC.Classes.Ord Csound.Dynamic.Types.Exp.GenId instance GHC.Classes.Eq Csound.Dynamic.Types.Exp.GenId instance GHC.Show.Show Csound.Dynamic.Types.Exp.GenId instance GHC.Generics.Generic (Csound.Dynamic.Types.Exp.PrimOr a) instance GHC.Base.Functor Csound.Dynamic.Types.Exp.PrimOr instance GHC.Classes.Ord a => GHC.Classes.Ord (Csound.Dynamic.Types.Exp.PrimOr a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Csound.Dynamic.Types.Exp.PrimOr a) instance GHC.Show.Show a => GHC.Show.Show (Csound.Dynamic.Types.Exp.PrimOr a) instance GHC.Generics.Generic Csound.Dynamic.Types.Exp.Prim instance GHC.Classes.Ord Csound.Dynamic.Types.Exp.Prim instance GHC.Classes.Eq Csound.Dynamic.Types.Exp.Prim instance GHC.Show.Show Csound.Dynamic.Types.Exp.Prim instance GHC.Generics.Generic Csound.Dynamic.Types.Exp.Info instance GHC.Classes.Ord Csound.Dynamic.Types.Exp.Info instance GHC.Classes.Eq Csound.Dynamic.Types.Exp.Info instance GHC.Show.Show Csound.Dynamic.Types.Exp.Info instance GHC.Classes.Ord Csound.Dynamic.Types.Exp.Signature instance GHC.Classes.Eq Csound.Dynamic.Types.Exp.Signature instance GHC.Show.Show Csound.Dynamic.Types.Exp.Signature instance GHC.Generics.Generic Csound.Dynamic.Types.Exp.Var instance GHC.Classes.Ord Csound.Dynamic.Types.Exp.Var instance GHC.Classes.Eq Csound.Dynamic.Types.Exp.Var instance GHC.Show.Show Csound.Dynamic.Types.Exp.Var instance GHC.Generics.Generic Csound.Dynamic.Types.Exp.Rate instance GHC.Enum.Bounded Csound.Dynamic.Types.Exp.Rate instance GHC.Enum.Enum Csound.Dynamic.Types.Exp.Rate instance GHC.Classes.Ord Csound.Dynamic.Types.Exp.Rate instance GHC.Classes.Eq Csound.Dynamic.Types.Exp.Rate instance GHC.Show.Show Csound.Dynamic.Types.Exp.Rate instance GHC.Generics.Generic Csound.Dynamic.Types.Exp.OpcFixity instance GHC.Classes.Ord Csound.Dynamic.Types.Exp.OpcFixity instance GHC.Classes.Eq Csound.Dynamic.Types.Exp.OpcFixity instance GHC.Show.Show Csound.Dynamic.Types.Exp.OpcFixity instance GHC.Generics.Generic Csound.Dynamic.Types.Exp.VarType instance GHC.Classes.Ord Csound.Dynamic.Types.Exp.VarType instance GHC.Classes.Eq Csound.Dynamic.Types.Exp.VarType instance GHC.Show.Show Csound.Dynamic.Types.Exp.VarType instance GHC.Generics.Generic Csound.Dynamic.Types.Exp.InstrId instance GHC.Classes.Ord Csound.Dynamic.Types.Exp.InstrId instance GHC.Classes.Eq Csound.Dynamic.Types.Exp.InstrId instance GHC.Show.Show Csound.Dynamic.Types.Exp.InstrId instance Data.Hashable.Class.Hashable Csound.Dynamic.Types.Exp.E instance Data.Hashable.Class.Hashable Csound.Dynamic.Types.Exp.Signature instance (Data.Hashable.Class.Hashable a, Data.Hashable.Class.Hashable b) => Data.Hashable.Class.Hashable (Csound.Dynamic.Types.Exp.Inline a b) instance Data.Foldable.Foldable Csound.Dynamic.Types.Exp.PrimOr instance Data.Traversable.Traversable Csound.Dynamic.Types.Exp.PrimOr instance (Data.Hashable.Class.Hashable a, Data.Hashable.Class.Hashable b) => Data.Hashable.Class.Hashable (Csound.Dynamic.Types.Exp.PreInline a b) instance Data.Hashable.Class.Hashable a => Data.Hashable.Class.Hashable (Csound.Dynamic.Types.Exp.InlineExp a) instance Data.Hashable.Class.Hashable Csound.Dynamic.Types.Exp.CondOp instance Data.Hashable.Class.Hashable Csound.Dynamic.Types.Exp.NumOp instance Data.Hashable.Class.Hashable Csound.Dynamic.Types.Exp.Gen instance Data.Hashable.Class.Hashable Csound.Dynamic.Types.Exp.GenId instance Data.Hashable.Class.Hashable Csound.Dynamic.Types.Exp.Prim instance Data.Hashable.Class.Hashable Csound.Dynamic.Types.Exp.Rate instance Data.Hashable.Class.Hashable Csound.Dynamic.Types.Exp.OpcFixity instance Data.Hashable.Class.Hashable Csound.Dynamic.Types.Exp.Info instance Data.Hashable.Class.Hashable Csound.Dynamic.Types.Exp.VarType instance Data.Hashable.Class.Hashable Csound.Dynamic.Types.Exp.Var instance Data.Hashable.Class.Hashable a => Data.Hashable.Class.Hashable (Csound.Dynamic.Types.Exp.MainExp a) instance Data.Hashable.Class.Hashable a => Data.Hashable.Class.Hashable (Csound.Dynamic.Types.Exp.PrimOr a) instance Data.Hashable.Class.Hashable a => Data.Hashable.Class.Hashable (Csound.Dynamic.Types.Exp.RatedExp a) instance Data.Hashable.Class.Hashable Csound.Dynamic.Types.Exp.InstrId -- | Dependency tracking module Csound.Dynamic.Types.Dep -- | Csound's synonym for IO-monad. Dep means Side Effect. -- You will bump into Dep trying to read and write to delay -- lines, making random signals or trying to save your audio to file. -- Instrument is expected to return a value of Dep [Sig]. So -- it's okay to do some side effects when playing a note. newtype DepT m a DepT :: StateT LocalHistory m a -> DepT m a [unDepT] :: DepT m a -> StateT LocalHistory m a data LocalHistory LocalHistory :: E -> Int -> Int -> LocalHistory [expDependency] :: LocalHistory -> E [newLineNum] :: LocalHistory -> Int [newLocalVarId] :: LocalHistory -> Int runDepT :: (Functor m, Monad m) => DepT m a -> m (a, LocalHistory) execDepT :: (Functor m, Monad m) => DepT m () -> m E evalDepT :: (Functor m, Monad m) => DepT m a -> m a depT :: Monad m => E -> DepT m E depT_ :: (Monad m) => E -> DepT m () mdepT :: (Monad m) => MultiOut [E] -> MultiOut (DepT m [E]) stripDepT :: Monad m => DepT m a -> m a stmtOnlyT :: Monad m => Exp E -> DepT m () newLocalVar :: Monad m => Rate -> m E -> DepT m Var newLocalVars :: Monad m => [Rate] -> m [E] -> DepT m [Var] writeVar :: Monad m => Var -> E -> DepT m () readVar :: Monad m => Var -> DepT m E readOnlyVar :: Var -> E initVar :: Monad m => Var -> E -> DepT m () appendVarBy :: Monad m => (E -> E -> E) -> Var -> E -> DepT m () newLocalArrVar :: Monad m => Rate -> m [E] -> DepT m Var newTmpArrVar :: Monad m => Rate -> DepT m Var readArr :: Monad m => Var -> [E] -> DepT m E readOnlyArr :: Var -> [E] -> E writeArr :: Monad m => Var -> [E] -> E -> DepT m () writeInitArr :: Monad m => Var -> [E] -> E -> DepT m () initArr :: Monad m => Var -> [E] -> DepT m () appendArrBy :: Monad m => (E -> E -> E) -> Var -> [E] -> E -> DepT m () readMacrosDouble :: String -> E readMacrosInt :: String -> E readMacrosString :: String -> E initMacrosDouble :: Monad m => String -> Double -> DepT m () initMacrosString :: Monad m => String -> String -> DepT m () initMacrosInt :: Monad m => String -> Int -> DepT m () instance Data.Default.Class.Default Csound.Dynamic.Types.Dep.LocalHistory instance GHC.Base.Monad m => GHC.Base.Functor (Csound.Dynamic.Types.Dep.DepT m) instance GHC.Base.Monad m => GHC.Base.Applicative (Csound.Dynamic.Types.Dep.DepT m) instance GHC.Base.Monad m => GHC.Base.Monad (Csound.Dynamic.Types.Dep.DepT m) instance Control.Monad.Trans.Class.MonadTrans Csound.Dynamic.Types.Dep.DepT module Csound.Dynamic.Build toExp :: E -> Exp E onExp :: (Exp E -> Exp E) -> E -> E getRates :: MainExp a -> [Rate] isMultiOutSignature :: Signature -> Bool getPrimUnsafe :: E -> Prim prim :: Prim -> E opcPrefix :: Name -> Signature -> Info oprPrefix :: Name -> Signature -> Info oprInfix :: Name -> Signature -> Info numExp1 :: NumOp -> E -> E numExp2 :: NumOp -> E -> E -> E tfm :: Info -> [E] -> E tfmNoInlineArgs :: Info -> [E] -> E pn :: Int -> E withInits :: E -> [E] -> E -- | Converts Haskell's doubles to Csound's doubles double :: Double -> E -- | Converts Haskell's integers to Csound's doubles int :: Int -> E -- | Converts Haskell's strings to Csound's strings str :: String -> E verbatim :: Monad m => String -> DepT m () instrIdE :: InstrId -> E inlineVar :: Var -> E type Spec1 = [(Rate, [Rate])] spec1 :: Spec1 -> Signature opcs :: Name -> Spec1 -> [E] -> E opcsNoInlineArgs :: Name -> Spec1 -> [E] -> E opr1 :: Name -> E -> E opr1k :: Name -> E -> E infOpr :: Name -> E -> E -> E oprBy :: Name -> Spec1 -> [E] -> E type Specs = ([Rate], [Rate]) specs :: Specs -> Signature -- | Multiple output. Specify the number of outputs to get the result. type MultiOut a = Int -> a mopcs :: Name -> Specs -> [E] -> MultiOut [E] mo :: Int -> E -> [E] setSr :: Monad m => Int -> DepT m () setKsmps :: Monad m => Int -> DepT m () setNchnls :: Monad m => Int -> DepT m () setNchnls_i :: Monad m => Int -> DepT m () setKr :: Monad m => Int -> DepT m () setZeroDbfs :: Monad m => Double -> DepT m () opcsArr :: Monad m => IsArrInit -> Var -> Name -> Spec1 -> [E] -> DepT m () infOprArr :: Monad m => IsArrInit -> Var -> Name -> E -> E -> DepT m () -- | Numeric instances module Csound.Dynamic.Build.Numeric ceilE :: E -> E floorE :: E -> E roundE :: E -> E intE :: E -> E fracE :: E -> E instance GHC.Base.Monoid Csound.Dynamic.Types.Exp.E instance GHC.Num.Num Csound.Dynamic.Types.Exp.E instance GHC.Real.Fractional Csound.Dynamic.Types.Exp.E instance GHC.Float.Floating Csound.Dynamic.Types.Exp.E instance GHC.Enum.Enum Csound.Dynamic.Types.Exp.E instance GHC.Real.Real Csound.Dynamic.Types.Exp.E instance GHC.Real.Integral Csound.Dynamic.Types.Exp.E -- | The Csound file module Csound.Dynamic.Types.CsdFile data Csd Csd :: Flags -> Orc -> Sco -> [Plugin] -> Csd [csdFlags] :: Csd -> Flags [csdOrc] :: Csd -> Orc [csdSco] :: Csd -> Sco [csdPlugins] :: Csd -> [Plugin] data Flags data Orc Orc :: InstrBody -> [Instr] -> Orc [orcHead] :: Orc -> InstrBody [orcInstruments] :: Orc -> [Instr] data Sco Sco :: Maybe Double -> [(Int, Gen)] -> [(InstrId, [CsdEvent])] -> Sco [scoTotalDur] :: Sco -> Maybe Double [scoGens] :: Sco -> [(Int, Gen)] [scoNotes] :: Sco -> [(InstrId, [CsdEvent])] data Plugin Plugin :: String -> String -> Plugin [pluginName] :: Plugin -> String [pluginContent] :: Plugin -> String data Instr Instr :: InstrId -> InstrBody -> Instr [instrName] :: Instr -> InstrId [instrBody] :: Instr -> InstrBody type InstrBody = E -- | The Csound note. It's a triple of -- --
-- (startTime, duration, parameters) --type CsdEvent = (Double, Double, Note) csdEventStart :: CsdEvent -> Double csdEventDur :: CsdEvent -> Double csdEventContent :: CsdEvent -> Note csdEventTotalDur :: CsdEvent -> Double intInstr :: Int -> E -> Instr alwaysOn :: InstrId -> (InstrId, [CsdEvent]) module Csound.Dynamic.Types -- | Boolean instances module Csound.Dynamic.Build.Logic when1 :: Monad m => Rate -> E -> DepT m () -> DepT m () whens :: Monad m => Rate -> [(E, DepT m ())] -> DepT m () -> DepT m () ifBegin :: Monad m => Rate -> E -> DepT m () ifEnd :: Monad m => DepT m () elseBegin :: Monad m => DepT m () untilDo :: Monad m => E -> DepT m () -> DepT m () untilBegin :: Monad m => E -> DepT m () untilEnd :: Monad m => DepT m () whileDo :: Monad m => E -> DepT m () -> DepT m () whileBegin :: Monad m => E -> DepT m () whileRef :: Monad m => Var -> DepT m () whileEnd :: Monad m => DepT m () instance Data.Boolean.Boolean Csound.Dynamic.Types.Exp.E instance Data.Boolean.IfB Csound.Dynamic.Types.Exp.E instance Data.Boolean.EqB Csound.Dynamic.Types.Exp.E instance Data.Boolean.OrdB Csound.Dynamic.Types.Exp.E module Csound.Dynamic.Render.Pretty -- | The abstract data type Doc represents pretty documents. -- -- Doc is an instance of the Show class. (show -- doc) pretty prints document doc with a page width of 100 -- characters and a ribbon width of 40 characters. -- --
-- show (text "hello" <$> text "world") ---- -- Which would return the string "hello\nworld", i.e. -- --
-- hello -- world --data Doc :: * vcatSep :: [Doc] -> Doc ppCsdFile :: Doc -> Doc -> Doc -> [Plugin] -> Doc ppGen :: Int -> Gen -> Doc ppNotes :: InstrId -> [CsdEvent] -> Doc ppInstr :: InstrId -> Doc -> Doc ppStmt :: [RatedVar] -> Exp RatedVar -> State TabDepth Doc ppTotalDur :: Double -> Doc module Csound.Dynamic.Render.Instr renderInstr :: Instr -> Doc renderInstrBody :: E -> Doc module Csound.Dynamic.Render renderCsd :: Csd -> String -- | Exports everything. module Csound.Dynamic