packages feed

csound-expression-dynamic 0.1.6 → 0.2.0

raw patch · 8 files changed

+36/−23 lines, 8 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Csound.Dynamic.Types.Exp: instance (GHC.Classes.Eq a, GHC.Classes.Eq b) => GHC.Classes.Eq (Csound.Dynamic.Types.Exp.Inline a b)
- Csound.Dynamic.Types.Exp: instance (GHC.Classes.Eq a, GHC.Classes.Eq b) => GHC.Classes.Eq (Csound.Dynamic.Types.Exp.PreInline a b)
- Csound.Dynamic.Types.Exp: instance (GHC.Classes.Ord a, GHC.Classes.Ord b) => GHC.Classes.Ord (Csound.Dynamic.Types.Exp.Inline a b)
- Csound.Dynamic.Types.Exp: instance (GHC.Classes.Ord a, GHC.Classes.Ord b) => GHC.Classes.Ord (Csound.Dynamic.Types.Exp.PreInline a b)
- Csound.Dynamic.Types.Exp: instance (GHC.Show.Show a, GHC.Show.Show b) => GHC.Show.Show (Csound.Dynamic.Types.Exp.Inline a b)
- Csound.Dynamic.Types.Exp: instance (GHC.Show.Show a, GHC.Show.Show b) => GHC.Show.Show (Csound.Dynamic.Types.Exp.PreInline a b)
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_0CondOp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_0Gen
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_0GenId
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_0Info
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_0InlineExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_0InstrId
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_0MainExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_0NumOp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_0OpcFixity
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_0PreInline
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_0Prim
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_0PrimOr
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_0Rate
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_0RatedExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_0Var
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_0VarType
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_10MainExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_11MainExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_12MainExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_13MainExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_14MainExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_15MainExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_16MainExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_17MainExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_18MainExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_19MainExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_1CondOp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_1GenId
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_1InlineExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_1InstrId
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_1MainExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_1NumOp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_1OpcFixity
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_1Prim
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_1Rate
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_1Var
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_1VarType
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_2CondOp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_2MainExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_2NumOp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_2OpcFixity
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_2Prim
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_2Rate
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_3CondOp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_3MainExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_3NumOp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_3Prim
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_3Rate
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_4CondOp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_4MainExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_4NumOp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_4Prim
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_4Rate
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_5CondOp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_5MainExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_5NumOp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_5Prim
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_5Rate
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_6CondOp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_6MainExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_6NumOp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_6Prim
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_6Rate
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_7CondOp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_7MainExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_7Rate
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_8CondOp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_8MainExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_9CondOp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Constructor Csound.Dynamic.Types.Exp.C1_9MainExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Datatype Csound.Dynamic.Types.Exp.D1CondOp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Datatype Csound.Dynamic.Types.Exp.D1Gen
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Datatype Csound.Dynamic.Types.Exp.D1GenId
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Datatype Csound.Dynamic.Types.Exp.D1Info
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Datatype Csound.Dynamic.Types.Exp.D1InlineExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Datatype Csound.Dynamic.Types.Exp.D1InstrId
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Datatype Csound.Dynamic.Types.Exp.D1MainExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Datatype Csound.Dynamic.Types.Exp.D1NumOp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Datatype Csound.Dynamic.Types.Exp.D1OpcFixity
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Datatype Csound.Dynamic.Types.Exp.D1PreInline
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Datatype Csound.Dynamic.Types.Exp.D1Prim
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Datatype Csound.Dynamic.Types.Exp.D1PrimOr
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Datatype Csound.Dynamic.Types.Exp.D1Rate
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Datatype Csound.Dynamic.Types.Exp.D1RatedExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Datatype Csound.Dynamic.Types.Exp.D1Var
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Datatype Csound.Dynamic.Types.Exp.D1VarType
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Selector Csound.Dynamic.Types.Exp.S1_0_0Gen
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Selector Csound.Dynamic.Types.Exp.S1_0_0Info
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Selector Csound.Dynamic.Types.Exp.S1_0_0InstrId
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Selector Csound.Dynamic.Types.Exp.S1_0_0PrimOr
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Selector Csound.Dynamic.Types.Exp.S1_0_0RatedExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Selector Csound.Dynamic.Types.Exp.S1_0_0Var
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Selector Csound.Dynamic.Types.Exp.S1_0_1Gen
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Selector Csound.Dynamic.Types.Exp.S1_0_1Info
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Selector Csound.Dynamic.Types.Exp.S1_0_1InstrId
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Selector Csound.Dynamic.Types.Exp.S1_0_1RatedExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Selector Csound.Dynamic.Types.Exp.S1_0_1Var
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Selector Csound.Dynamic.Types.Exp.S1_0_2Gen
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Selector Csound.Dynamic.Types.Exp.S1_0_2Info
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Selector Csound.Dynamic.Types.Exp.S1_0_2RatedExp
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Selector Csound.Dynamic.Types.Exp.S1_0_2Var
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Selector Csound.Dynamic.Types.Exp.S1_0_3Gen
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Selector Csound.Dynamic.Types.Exp.S1_1_0Var
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Selector Csound.Dynamic.Types.Exp.S1_1_1Var
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Selector Csound.Dynamic.Types.Exp.S1_6_0Prim
- Csound.Dynamic.Types.Exp: instance GHC.Generics.Selector Csound.Dynamic.Types.Exp.S1_6_1Prim
+ Csound.Dynamic.Types.CsdFile: Plugin :: String -> String -> Plugin
+ Csound.Dynamic.Types.CsdFile: [csdPlugins] :: Csd -> [Plugin]
+ Csound.Dynamic.Types.CsdFile: [pluginContent] :: Plugin -> String
+ Csound.Dynamic.Types.CsdFile: [pluginName] :: Plugin -> String
+ Csound.Dynamic.Types.CsdFile: data Plugin
+ Csound.Dynamic.Types.Exp: instance (GHC.Classes.Eq b, GHC.Classes.Eq a) => GHC.Classes.Eq (Csound.Dynamic.Types.Exp.Inline a b)
+ Csound.Dynamic.Types.Exp: instance (GHC.Classes.Eq b, GHC.Classes.Eq a) => GHC.Classes.Eq (Csound.Dynamic.Types.Exp.PreInline a b)
+ Csound.Dynamic.Types.Exp: instance (GHC.Classes.Ord b, GHC.Classes.Ord a) => GHC.Classes.Ord (Csound.Dynamic.Types.Exp.Inline a b)
+ Csound.Dynamic.Types.Exp: instance (GHC.Classes.Ord b, GHC.Classes.Ord a) => GHC.Classes.Ord (Csound.Dynamic.Types.Exp.PreInline a b)
+ Csound.Dynamic.Types.Exp: instance (GHC.Show.Show b, GHC.Show.Show a) => GHC.Show.Show (Csound.Dynamic.Types.Exp.Inline a b)
+ Csound.Dynamic.Types.Exp: instance (GHC.Show.Show b, GHC.Show.Show a) => GHC.Show.Show (Csound.Dynamic.Types.Exp.PreInline a b)
+ Csound.Dynamic.Types.Flags: AlsaSeq :: Rtmidi
- Csound.Dynamic.Build.Logic: ifBegin :: Monad m => E -> DepT m ()
+ Csound.Dynamic.Build.Logic: ifBegin :: Monad m => Rate -> E -> DepT m ()
- Csound.Dynamic.Build.Logic: when1 :: Monad m => E -> DepT m () -> DepT m ()
+ Csound.Dynamic.Build.Logic: when1 :: Monad m => Rate -> E -> DepT m () -> DepT m ()
- Csound.Dynamic.Build.Logic: whens :: Monad m => [(E, DepT m ())] -> DepT m () -> DepT m ()
+ Csound.Dynamic.Build.Logic: whens :: Monad m => Rate -> [(E, DepT m ())] -> DepT m () -> DepT m ()
- Csound.Dynamic.Types.CsdFile: Csd :: Flags -> Orc -> Sco -> Csd
+ Csound.Dynamic.Types.CsdFile: Csd :: Flags -> Orc -> Sco -> [Plugin] -> Csd
- Csound.Dynamic.Types.Exp: IfBegin :: (CondInfo a) -> MainExp a
+ Csound.Dynamic.Types.Exp: IfBegin :: Rate -> (CondInfo a) -> MainExp a

Files

csound-expression-dynamic.cabal view
@@ -1,5 +1,5 @@ Name:          csound-expression-dynamic-Version:       0.1.6+Version:       0.2.0 Cabal-Version: >= 1.6 License:       BSD3 License-file:  LICENSE
src/Csound/Dynamic/Build/Logic.hs view
@@ -18,26 +18,26 @@ ------------------------------------------------------ -- imperative if-then-else -when1 :: Monad m => E -> DepT m () -> DepT m ()-when1 p body = do-    ifBegin p+when1 :: Monad m => Rate -> E -> DepT m () -> DepT m ()+when1 rate p body = do+    ifBegin rate p     body     ifEnd -whens :: Monad m => [(E, DepT m ())] -> DepT m () -> DepT m ()-whens bodies el = case bodies of+whens :: Monad m => Rate -> [(E, DepT m ())] -> DepT m () -> DepT m ()+whens rate bodies el = case bodies of     []   -> el     a:as -> do-        ifBegin (fst a)+        ifBegin rate (fst a)         snd a         elseIfs as         elseBegin          el         foldl1 (>>) $ replicate (1 + length as) ifEnd-    where elseIfs = mapM_ (\(p, body) -> elseBegin >> ifBegin p >> body)+    where elseIfs = mapM_ (\(p, body) -> elseBegin >> ifBegin rate p >> body) -ifBegin :: Monad m => E -> DepT m ()-ifBegin = withCond IfBegin+ifBegin :: Monad m => Rate -> E -> DepT m ()+ifBegin rate = withCond $ IfBegin rate  elseBegin :: Monad m => DepT m () elseBegin = stmtOnlyT ElseBegin
src/Csound/Dynamic/Render.hs view
@@ -13,6 +13,7 @@     (renderFlags $ csdFlags a)     (renderOrc $ csdOrc a)     (renderSco   $ csdSco a)+    (csdPlugins a)  renderFlags :: Flags -> Doc renderFlags = P.pretty
src/Csound/Dynamic/Render/Instr.hs view
@@ -43,7 +43,7 @@ getFrameInfo :: RatedExp a -> FrameInfo getFrameInfo x = case ratedExpExp x of     -- Imperative If-then-else-    IfBegin _     -> StartFrame+    IfBegin _ _   -> StartFrame --     ElseIfBegin _ -> NextFrame     ElseBegin     -> NextFrame      IfEnd         -> StopFrame@@ -167,7 +167,7 @@     WriteVar v a -> WriteVar v $ rec1 (varRate v) a     InitVar v a -> InitVar v $ rec1 Ir a -- rec1 (varRate v) a     ExpPrim p -> ExpPrim p-    IfBegin _ -> rec2 condRate expr+    IfBegin rootRate _ -> rec2 rootRate expr     UntilBegin _ -> rec2 condRate expr --    ElseIfBegin _ -> rec2 condRate expr     ElseBegin -> ElseBegin
src/Csound/Dynamic/Render/Pretty.hs view
@@ -27,13 +27,18 @@ func :: String -> Doc -> Doc func op a = text op <> parens a -ppCsdFile :: Doc -> Doc -> Doc -> Doc-ppCsdFile flags orc sco = +ppCsdFile :: Doc -> Doc -> Doc -> [Plugin] -> Doc+ppCsdFile flags orc sco plugins =      tag "CsoundSynthesizer" $ vcatSep [         tag "CsOptions" flags,         tag "CsInstruments" orc,-        tag "CsScore" sco]    +        tag "CsScore" sco,+        ppPlugins plugins+        ]    +ppPlugins :: [Plugin] -> Doc+ppPlugins plugins = vcatSep $ fmap (\(Plugin name body) -> tag name (text body)) plugins+ tag :: String -> Doc -> Doc tag name content = vcatSep [     char '<' <> text name <> char '>', @@ -125,7 +130,7 @@     InitVar v a                     -> tab $ ppOpc (ppVar v) "init" [a]     ReadVar v                       -> tab $ res $= ppVar v -    IfBegin a                       -> succTab          $ text "if "     <> ppCond a <> text " then"+    IfBegin _ a                     -> succTab          $ text "if "     <> ppCond a <> text " then" --     ElseIfBegin a                   -> left >> (succTab $ text "elseif " <> ppCond a <> text " then")         ElseBegin                       -> left >> (succTab $ text "else")     IfEnd                           -> left >> (tab     $ text "endif")
src/Csound/Dynamic/Types/CsdFile.hs view
@@ -1,6 +1,6 @@ -- | The Csound file module Csound.Dynamic.Types.CsdFile(            -    Csd(..), Flags, Orc(..), Sco(..), Instr(..), InstrBody,+    Csd(..), Flags, Orc(..), Sco(..), Plugin(..), Instr(..), InstrBody,     CsdEvent, csdEventStart, csdEventDur, csdEventContent, csdEventTotalDur,     intInstr, alwaysOn ) where@@ -10,9 +10,10 @@ import Csound.Dynamic.Types.Flags  data Csd = Csd-    { csdFlags  :: Flags-    , csdOrc    :: Orc-    , csdSco    :: Sco+    { csdFlags   :: Flags+    , csdOrc     :: Orc+    , csdSco     :: Sco+    , csdPlugins :: [Plugin]     }   data Orc = Orc@@ -31,6 +32,11 @@     { scoTotalDur   :: Maybe Double     , scoGens       :: [(Int, Gen)]     , scoNotes      :: [(InstrId, [CsdEvent])]  }++data Plugin = Plugin+    { pluginName    :: String+    , pluginContent :: String+    }  ---------------------------------------------------------------- -- instruments
src/Csound/Dynamic/Types/Exp.hs view
@@ -154,7 +154,7 @@     | ReadVar Var     | WriteVar Var a         -- | Imperative If-then-else-    | IfBegin (CondInfo a)+    | IfBegin Rate (CondInfo a) --  | ElseIfBegin (CondInfo a) -- It's expressed with nested if-else     | ElseBegin     | IfEnd
src/Csound/Dynamic/Types/Flags.hs view
@@ -194,7 +194,7 @@         , midiVelocityAmp   = midiVelocityAmp a <|> midiVelocityAmp b         , midiOutDevice     = midiOutDevice a <|> midiOutDevice b } -data Rtmidi = PortMidi | AlsaMidi | CoreMidi | MmeMidi | WinmmeMidi | VirtualMidi | NoRtmidi+data Rtmidi = PortMidi | AlsaMidi | AlsaSeq | CoreMidi | MmeMidi | WinmmeMidi | VirtualMidi | NoRtmidi  -- Display @@ -374,7 +374,7 @@         Jack name ins outs -> rt "jack" <+> jackFields name ins outs         Mme -> rt "mme"         Alsa  -> rt "alsa"-        CoreAudio -> rt "CoreAudio"+        CoreAudio -> rt "auhal"         NoRtaudio   -> rt "0"         where              rt = text . p3 "rtaudio"@@ -413,6 +413,7 @@         VirtualMidi -> "virtual"         PortMidi    -> "PortMidi"         AlsaMidi    -> "alsa"+        AlsaSeq     -> "alsaseq"         CoreMidi    -> "coremidi"         MmeMidi     -> "mme"         WinmmeMidi  -> "winmme"