csound-expression-dynamic 0.0.3 → 0.0.4
raw patch · 2 files changed
+10/−2 lines, 2 files
Files
csound-expression-dynamic.cabal view
@@ -1,5 +1,5 @@ Name: csound-expression-dynamic-Version: 0.0.3+Version: 0.0.4 Cabal-Version: >= 1.6 License: BSD3 License-file: LICENSE
src/Csound/Dynamic/Build.hs view
@@ -13,7 +13,7 @@ prim, opcPrefix, oprPrefix, oprInfix, numExp1, numExp2, tfm, tfmNoInlineArgs, pn, withInits,- double, int, str, verbatim,+ double, int, str, verbatim, instrIdE, -- ** Opcodes constructors Spec1, spec1, opcs, opcsNoInlineArgs, opr1, opr1k, infOpr, oprBy,@@ -56,7 +56,10 @@ withInits :: E -> [E] -> E withInits a es = onExp phi a where phi x = case x of+ -- for opcodes with single output Tfm t xs -> Tfm t (xs ++ (fmap toPrimOr es))+ -- for opcodes with multiple outputs+ Select r n expr -> Select r n $ fmap (\t -> withInits t es) expr _ -> x -- | Converts Haskell's doubles to Csound's doubles@@ -74,6 +77,11 @@ verbatim :: Monad m => String -> DepT m () verbatim = stmtOnlyT . Verbatim +instrIdE :: InstrId -> E+instrIdE x = case x of+ InstrId Nothing m -> int m+ InstrId (Just _) _ -> error "instrId undefined for fractional InstrIds"+ InstrLabel s -> str s ---------------------------------------------------------------------- -- constructing opcodes