packages feed

csound-expression-typed 0.2.7 → 0.2.7.1

raw patch · 31 files changed

+550/−531 lines, 31 filesdep +bytestringdep +textdep +wl-pprint-textdep −wl-pprintPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: bytestring, text, wl-pprint-text

Dependencies removed: wl-pprint

API changes (from Hackage documentation)

- Csound.Typed: HeadPanSpec :: D -> D -> HeadPanSpec
- Csound.Typed: [headPanPhase] :: HeadPanSpec -> D
- Csound.Typed: [hradPanFade] :: HeadPanSpec -> D
- Csound.Typed: data HeadPanSpec
- Csound.Typed: headPan :: (Sig, Sig) -> Sig -> Sig2
- Csound.Typed: headPan' :: HeadPanSpec -> (Sig, Sig) -> Sig -> Sig2
- Csound.Typed: infiniteDur :: Num a => a
- Csound.Typed: staticHeadPan :: (D, D) -> Sig -> Sig2
- Csound.Typed.Control: LocalHistory :: E -> Int -> Int -> LocalHistory
- Csound.Typed.Control: RawSync :: SyncSmooth
- Csound.Typed.Control: Ref :: [Var] -> Ref a
- Csound.Typed.Control: SE :: Dep a -> SE a
- Csound.Typed.Control: SawSync :: SyncSmooth
- Csound.Typed.Control: Sf :: String -> Int -> Int -> Sf
- Csound.Typed.Control: SfId :: GE E -> Sf
- Csound.Typed.Control: TrapSync :: SyncSmooth
- Csound.Typed.Control: TriSync :: SyncSmooth
- Csound.Typed.Control: UserSync :: Tab -> SyncSmooth
- Csound.Typed.Control: [expDependency] :: LocalHistory -> E
- Csound.Typed.Control: [newLineNum] :: LocalHistory -> Int
- Csound.Typed.Control: [newLocalVarId] :: LocalHistory -> Int
- Csound.Typed.Control: [sfBank] :: Sf -> Int
- Csound.Typed.Control: [sfName] :: Sf -> String
- Csound.Typed.Control: [sfProg] :: Sf -> Int
- Csound.Typed.Control: [unSE] :: SE a -> Dep a
- Csound.Typed.Control: addFracInstrRef :: D -> D -> InstrRef a -> InstrRef a
- Csound.Typed.Control: blosc :: Tab -> Sig -> Sig
- Csound.Typed.Control: blosc' :: Tab -> D -> Sig -> Sig
- Csound.Typed.Control: bloscSync :: Tab -> Sig -> Sig -> Sig
- Csound.Typed.Control: bloscSync' :: Tab -> D -> Sig -> Sig -> Sig
- Csound.Typed.Control: bloscSyncAbs :: Tab -> Sig -> Sig -> Sig
- Csound.Typed.Control: bloscSyncAbs' :: Tab -> D -> Sig -> Sig -> Sig
- Csound.Typed.Control: bloscSyncAbsBy :: SyncSmooth -> Tab -> Sig -> Sig -> Sig
- Csound.Typed.Control: bloscSyncAbsBy' :: SyncSmooth -> Tab -> D -> Sig -> Sig -> Sig
- Csound.Typed.Control: bloscSyncBy :: SyncSmooth -> Tab -> Sig -> Sig -> Sig
- Csound.Typed.Control: bloscSyncBy' :: SyncSmooth -> Tab -> D -> Sig -> Sig -> Sig
- Csound.Typed.Control: chnGetCtrl :: Str -> SE Sig
- Csound.Typed.Control: chnGetD :: Str -> SE D
- Csound.Typed.Control: chnGetSig :: Str -> SE Sig
- Csound.Typed.Control: chnGetStr :: Str -> SE Str
- Csound.Typed.Control: chnSetCtrl :: Sig -> Str -> SE ()
- Csound.Typed.Control: chnSetD :: D -> Str -> SE ()
- Csound.Typed.Control: chnSetSig :: Sig -> Str -> SE ()
- Csound.Typed.Control: chnSetStr :: Str -> Str -> SE ()
- Csound.Typed.Control: class Tuple a => OscVal a
- Csound.Typed.Control: concatRef :: (Tuple a, Tuple b) => Ref a -> Ref b -> Ref (a, b)
- Csound.Typed.Control: concatRef3 :: (Tuple a, Tuple b, Tuple c) => Ref a -> Ref b -> Ref c -> Ref (a, b, c)
- Csound.Typed.Control: concatRef4 :: (Tuple a, Tuple b, Tuple c, Tuple d) => Ref a -> Ref b -> Ref c -> Ref d -> Ref (a, b, c, d)
- Csound.Typed.Control: concatRef5 :: (Tuple a, Tuple b, Tuple c, Tuple d, Tuple e) => Ref a -> Ref b -> Ref c -> Ref d -> Ref e -> Ref (a, b, c, d, e)
- Csound.Typed.Control: data InstrRef a
- Csound.Typed.Control: data LocalHistory
- Csound.Typed.Control: data Mix a
- Csound.Typed.Control: data Msg
- Csound.Typed.Control: data OscRef
- Csound.Typed.Control: data Sf
- Csound.Typed.Control: data SyncSmooth
- Csound.Typed.Control: eff :: (Sigs a, Sigs b) => (a -> SE b) -> Sco (Mix a) -> Sco (Mix b)
- Csound.Typed.Control: evalSE :: SE a -> GE a
- Csound.Typed.Control: evtLoop :: (Num a, Tuple a, Sigs a) => Maybe (Evt Unit) -> [SE a] -> [Evt Unit] -> a
- Csound.Typed.Control: evtLoopOnce :: (Num a, Tuple a, Sigs a) => Maybe (Evt Unit) -> [SE a] -> [Evt Unit] -> a
- Csound.Typed.Control: execGEinSE :: SE (GE a) -> SE a
- Csound.Typed.Control: execSE :: SE () -> GE InstrBody
- Csound.Typed.Control: foldArr :: (Tuple ix, Tuple a, Tuple b) => ((ix, a) -> b -> SE b) -> b -> Arr ix a -> SE b
- Csound.Typed.Control: foldColumnArr :: (Tuple a, Tuple b) => ((Sig, a) -> b -> SE b) -> b -> Sig -> Arr Sig2 a -> SE b
- Csound.Typed.Control: foldColumnsArrD :: (Tuple a, Tuple b) => ((D, a) -> b -> SE b) -> b -> D -> Arr D2 a -> SE b
- Csound.Typed.Control: foldRowArr :: (Tuple a, Tuple b) => ((Sig, a) -> b -> SE b) -> b -> Sig -> Arr Sig2 a -> SE b
- Csound.Typed.Control: foldRowsArrD :: (Tuple a, Tuple b) => ((D, a) -> b -> SE b) -> b -> D -> Arr D2 a -> SE b
- Csound.Typed.Control: forColumnArr :: Tuple a => Sig -> Arr Sig2 a -> ((Sig, a) -> SE ()) -> SE ()
- Csound.Typed.Control: forColumnArrD :: Tuple a => D -> Arr D2 a -> ((D, a) -> SE ()) -> SE ()
- Csound.Typed.Control: forRowArr :: Tuple a => Sig -> Arr Sig2 a -> ((Sig, a) -> SE ()) -> SE ()
- Csound.Typed.Control: forRowArrD :: Tuple a => D -> Arr D2 a -> ((D, a) -> SE ()) -> SE ()
- Csound.Typed.Control: foreachArr :: (Tuple ix, Tuple a) => Arr ix a -> ((ix, a) -> SE ()) -> SE ()
- Csound.Typed.Control: foreachArrD :: (Tuple ix, Tuple a) => Arr ix a -> ((ix, a) -> SE ()) -> SE ()
- Csound.Typed.Control: fromDep :: Dep a -> SE (GE a)
- Csound.Typed.Control: fromDep_ :: Dep () -> SE ()
- Csound.Typed.Control: geToSe :: GE a -> SE a
- Csound.Typed.Control: globalSensorsSE :: Tuple a => a -> SE (SE a, a -> SE ())
- Csound.Typed.Control: hideGEinDep :: GE (Dep a) -> Dep a
- Csound.Typed.Control: initMidiCtrl :: D -> D -> D -> SE ()
- Csound.Typed.Control: initOsc :: OscPort -> OscRef
- Csound.Typed.Control: isaw :: Sig -> Sig
- Csound.Typed.Control: isaw' :: D -> Sig -> Sig
- Csound.Typed.Control: isawSync :: Sig -> Sig -> Sig
- Csound.Typed.Control: isawSync' :: D -> Sig -> Sig -> Sig
- Csound.Typed.Control: isawSyncAbs :: Sig -> Sig -> Sig
- Csound.Typed.Control: isawSyncAbs' :: D -> Sig -> Sig -> Sig
- Csound.Typed.Control: isawSyncAbsBy :: SyncSmooth -> Sig -> Sig -> Sig
- Csound.Typed.Control: isawSyncAbsBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig
- Csound.Typed.Control: isawSyncBy :: SyncSmooth -> Sig -> Sig -> Sig
- Csound.Typed.Control: isawSyncBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig
- Csound.Typed.Control: listenOsc :: forall a. Tuple a => OscRef -> OscAddress -> OscType -> Evt a
- Csound.Typed.Control: listenOscVal :: (Tuple a, OscVal a) => OscRef -> String -> a -> SE a
- Csound.Typed.Control: midi :: (Num a, Sigs a) => (Msg -> SE a) -> SE a
- Csound.Typed.Control: midi_ :: (Msg -> SE ()) -> SE ()
- Csound.Typed.Control: midin :: (Num a, Sigs a) => Channel -> (Msg -> SE a) -> SE a
- Csound.Typed.Control: midin_ :: Channel -> (Msg -> SE ()) -> SE ()
- Csound.Typed.Control: mix :: Sigs a => Sco (Mix a) -> a
- Csound.Typed.Control: mixBy :: (Arg a, Sigs b) => (a -> Sco (Mix b)) -> a -> b
- Csound.Typed.Control: mixBy_ :: Arg a => (a -> Sco (Mix Unit)) -> a -> SE ()
- Csound.Typed.Control: mixRef :: (Num a, Tuple a) => Ref a -> a -> SE ()
- Csound.Typed.Control: mix_ :: Sco (Mix Unit) -> SE ()
- Csound.Typed.Control: modifyRef :: Tuple a => Ref a -> (a -> a) -> SE ()
- Csound.Typed.Control: monoSched :: Evt (Sco (D, D)) -> SE MonoArg
- Csound.Typed.Control: monoSchedHarp :: Evt (D, D) -> SE MonoArg
- Csound.Typed.Control: monoSchedUntil :: Evt (D, D) -> Evt a -> SE MonoArg
- Csound.Typed.Control: monoSco :: forall a. Sigs a => (MonoArg -> SE a) -> Sco (D, D) -> Sco (Mix a)
- Csound.Typed.Control: namedMonoMsg :: String -> SE MonoArg
- Csound.Typed.Control: negateInstrRef :: InstrRef a -> InstrRef a
- Csound.Typed.Control: newClearableGlobalRef :: Tuple a => a -> SE (Ref a)
- Csound.Typed.Control: newClearableGlobalVars :: [Rate] -> GE [E] -> SE [Var]
- Csound.Typed.Control: newCtrlRef :: Tuple a => a -> SE (Ref a)
- Csound.Typed.Control: newGlobalArrVar :: Rate -> GE [E] -> SE Var
- Csound.Typed.Control: newGlobalCtrlRef :: Tuple a => a -> SE (Ref a)
- Csound.Typed.Control: newGlobalRef :: Tuple a => a -> SE (Ref a)
- Csound.Typed.Control: newGlobalTab :: Int -> SE Tab
- Csound.Typed.Control: newGlobalVars :: [Rate] -> GE [E] -> SE [Var]
- Csound.Typed.Control: newInstr :: Arg a => (a -> SE ()) -> SE (InstrRef a)
- Csound.Typed.Control: newLocalArrVar :: Rate -> GE [E] -> SE Var
- Csound.Typed.Control: newLocalVar :: Rate -> GE E -> SE Var
- Csound.Typed.Control: newLocalVars :: [Rate] -> GE [E] -> SE [Var]
- Csound.Typed.Control: newOutInstr :: (Arg a, Sigs b) => (a -> SE b) -> SE (InstrRef a, b)
- Csound.Typed.Control: newRef :: Tuple a => a -> SE (Ref a)
- Csound.Typed.Control: newTab :: D -> SE Tab
- Csound.Typed.Control: newTmpArrVar :: Rate -> SE Var
- Csound.Typed.Control: newtype Ref a
- Csound.Typed.Control: newtype SE a
- Csound.Typed.Control: noteOff :: (Default a, Arg a) => D -> D -> InstrRef a -> SE ()
- Csound.Typed.Control: noteOn :: Arg a => D -> D -> InstrRef a -> a -> SE ()
- Csound.Typed.Control: pgmidi :: (Num a, Sigs a) => Maybe Int -> Channel -> (Msg -> SE a) -> SE a
- Csound.Typed.Control: pgmidi_ :: Maybe Int -> Channel -> (Msg -> SE ()) -> SE ()
- Csound.Typed.Control: pulse :: Sig -> Sig
- Csound.Typed.Control: pulse' :: D -> Sig -> Sig
- Csound.Typed.Control: pulseSync :: Sig -> Sig -> Sig
- Csound.Typed.Control: pulseSync' :: D -> Sig -> Sig -> Sig
- Csound.Typed.Control: pulseSyncAbs :: Sig -> Sig -> Sig
- Csound.Typed.Control: pulseSyncAbs' :: D -> Sig -> Sig -> Sig
- Csound.Typed.Control: pulseSyncAbsBy :: SyncSmooth -> Sig -> Sig -> Sig
- Csound.Typed.Control: pulseSyncAbsBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig
- Csound.Typed.Control: pulseSyncBy :: SyncSmooth -> Sig -> Sig -> Sig
- Csound.Typed.Control: pulseSyncBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig
- Csound.Typed.Control: readMacrosDouble :: String -> Double -> D
- Csound.Typed.Control: readMacrosInt :: String -> Int -> D
- Csound.Typed.Control: readMacrosString :: String -> String -> Str
- Csound.Typed.Control: readRef :: Tuple a => Ref a -> SE a
- Csound.Typed.Control: retrigs :: (Arg a, Sigs b) => (a -> SE b) -> Evt [a] -> b
- Csound.Typed.Control: runSE :: SE a -> GE a
- Csound.Typed.Control: saw :: Sig -> Sig
- Csound.Typed.Control: saw' :: D -> Sig -> Sig
- Csound.Typed.Control: sawSync :: Sig -> Sig -> Sig
- Csound.Typed.Control: sawSync' :: D -> Sig -> Sig -> Sig
- Csound.Typed.Control: sawSyncAbs :: Sig -> Sig -> Sig
- Csound.Typed.Control: sawSyncAbs' :: D -> Sig -> Sig -> Sig
- Csound.Typed.Control: sawSyncAbsBy :: SyncSmooth -> Sig -> Sig -> Sig
- Csound.Typed.Control: sawSyncAbsBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig
- Csound.Typed.Control: sawSyncBy :: SyncSmooth -> Sig -> Sig -> Sig
- Csound.Typed.Control: sawSyncBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig
- Csound.Typed.Control: sched :: (Arg a, Sigs b) => (a -> SE b) -> Evt (Sco a) -> b
- Csound.Typed.Control: schedBy :: (Arg a, Sigs b, Arg c) => (a -> SE b) -> (c -> Evt (Sco a)) -> c -> b
- Csound.Typed.Control: schedHarp :: (Arg a, Sigs b) => D -> (a -> SE b) -> Evt [a] -> b
- Csound.Typed.Control: schedHarpBy :: (Arg a, Sigs b, Arg c) => D -> (a -> SE b) -> (c -> Evt [a]) -> c -> b
- Csound.Typed.Control: sched_ :: Arg a => (a -> SE ()) -> Evt (Sco a) -> SE ()
- Csound.Typed.Control: scheduleEvent :: Arg a => InstrRef a -> D -> D -> a -> SE ()
- Csound.Typed.Control: sco :: (Arg a, Sigs b) => (a -> SE b) -> Sco a -> Sco (Mix b)
- Csound.Typed.Control: sco_ :: Arg a => (a -> SE ()) -> Sco a -> Sco (Mix Unit)
- Csound.Typed.Control: sendOsc :: forall a. Tuple a => OscHost -> OscPort -> OscAddress -> OscType -> Evt a -> SE ()
- Csound.Typed.Control: sensorsSE :: Tuple a => a -> SE (SE a, a -> SE ())
- Csound.Typed.Control: sqr :: Sig -> Sig
- Csound.Typed.Control: sqr' :: D -> Sig -> Sig
- Csound.Typed.Control: sqrSync :: Sig -> Sig -> Sig
- Csound.Typed.Control: sqrSync' :: D -> Sig -> Sig -> Sig
- Csound.Typed.Control: sqrSyncAbs :: Sig -> Sig -> Sig
- Csound.Typed.Control: sqrSyncAbs' :: D -> Sig -> Sig -> Sig
- Csound.Typed.Control: sqrSyncAbsBy :: SyncSmooth -> Sig -> Sig -> Sig
- Csound.Typed.Control: sqrSyncAbsBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig
- Csound.Typed.Control: sqrSyncBy :: SyncSmooth -> Sig -> Sig -> Sig
- Csound.Typed.Control: sqrSyncBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig
- Csound.Typed.Control: tri :: Sig -> Sig
- Csound.Typed.Control: tri' :: D -> Sig -> Sig
- Csound.Typed.Control: triSync :: Sig -> Sig -> Sig
- Csound.Typed.Control: triSync' :: D -> Sig -> Sig -> Sig
- Csound.Typed.Control: triSyncAbs :: Sig -> Sig -> Sig
- Csound.Typed.Control: triSyncAbs' :: D -> Sig -> Sig -> Sig
- Csound.Typed.Control: triSyncAbsBy :: SyncSmooth -> Sig -> Sig -> Sig
- Csound.Typed.Control: triSyncAbsBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig
- Csound.Typed.Control: triSyncBy :: SyncSmooth -> Sig -> Sig -> Sig
- Csound.Typed.Control: triSyncBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig
- Csound.Typed.Control: trigByName :: (Arg a, Sigs b) => String -> (a -> SE b) -> SE b
- Csound.Typed.Control: trigByNameMidi :: (Arg a, Sigs b) => String -> ((D, D, a) -> SE b) -> SE b
- Csound.Typed.Control: trigByNameMidi_ :: forall a. Arg a => String -> ((D, D, a) -> SE ()) -> SE ()
- Csound.Typed.Control: trigByName_ :: Arg a => String -> (a -> SE ()) -> SE ()
- Csound.Typed.Control: turnoff2 :: InstrRef a -> Sig -> Sig -> SE ()
- Csound.Typed.Control: type Channel = Int
- Csound.Typed.Control: type CsdEvent = (Double, Double, Note)
- Csound.Typed.Control: type CsdEventList a = Track Sig a
- Csound.Typed.Control: type OscAddress = String
- Csound.Typed.Control: type OscHost = String
- Csound.Typed.Control: type OscPort = Int
- Csound.Typed.Control: type OscType = String
- Csound.Typed.Control: type Sco a = Track Sig a
- Csound.Typed.Control: unSf :: Sf -> GE E
- Csound.Typed.Control: whileRef :: forall st. Tuple st => st -> (st -> SE BoolSig) -> (st -> SE st) -> SE ()
- Csound.Typed.Control: whileRefD :: forall st. Tuple st => st -> (st -> SE BoolD) -> (st -> SE st) -> SE ()
- Csound.Typed.Control: writeRef :: Tuple a => Ref a -> a -> SE ()
- Csound.Typed.Gui: ArrowDown :: Key
- Csound.Typed.Gui: ArrowLeft :: Key
- Csound.Typed.Gui: ArrowRight :: Key
- Csound.Typed.Gui: ArrowUp :: Key
- Csound.Typed.Gui: Backspace :: Key
- Csound.Typed.Gui: BlackLine :: BorderType
- Csound.Typed.Gui: Bold :: Emphasis
- Csound.Typed.Gui: BoldItalic :: Emphasis
- Csound.Typed.Gui: BorderBox :: BoxType
- Csound.Typed.Gui: Box :: String -> Elem
- Csound.Typed.Gui: ButBank :: Int -> Int -> Elem
- Csound.Typed.Gui: Button :: InstrId -> Elem
- Csound.Typed.Gui: CapsLook :: Key
- Csound.Typed.Gui: CharKey :: Char -> Key
- Csound.Typed.Gui: CheckButton :: ButtonType
- Csound.Typed.Gui: Clock :: KnobType
- Csound.Typed.Gui: Count :: ValDiap -> ValStep -> Maybe ValStep -> Elem
- Csound.Typed.Gui: Courier :: FontType
- Csound.Typed.Gui: Delete :: Key
- Csound.Typed.Gui: DiamondDownBox :: BoxType
- Csound.Typed.Gui: DiamondUpBox :: BoxType
- Csound.Typed.Gui: Dingbats :: FontType
- Csound.Typed.Gui: DownBox :: BoxType
- Csound.Typed.Gui: DownBoxBorder :: BorderType
- Csound.Typed.Gui: EmbossedBorder :: BorderType
- Csound.Typed.Gui: EmbossedBox :: BoxType
- Csound.Typed.Gui: EmbossedLabel :: LabelType
- Csound.Typed.Gui: End :: Key
- Csound.Typed.Gui: Engraved :: SliderType
- Csound.Typed.Gui: EngravedBorder :: BorderType
- Csound.Typed.Gui: EngravedBox :: BoxType
- Csound.Typed.Gui: EngravedLabel :: LabelType
- Csound.Typed.Gui: Enter :: Key
- Csound.Typed.Gui: Exponential :: ValScaleType
- Csound.Typed.Gui: F1 :: Key
- Csound.Typed.Gui: F10 :: Key
- Csound.Typed.Gui: F11 :: Key
- Csound.Typed.Gui: F12 :: Key
- Csound.Typed.Gui: F2 :: Key
- Csound.Typed.Gui: F3 :: Key
- Csound.Typed.Gui: F4 :: Key
- Csound.Typed.Gui: F5 :: Key
- Csound.Typed.Gui: F6 :: Key
- Csound.Typed.Gui: F7 :: Key
- Csound.Typed.Gui: F8 :: Key
- Csound.Typed.Gui: F9 :: Key
- Csound.Typed.Gui: Fill :: SliderType
- Csound.Typed.Gui: Flat :: KnobType
- Csound.Typed.Gui: FlatBox :: BoxType
- Csound.Typed.Gui: Gui :: LowGui -> Gui
- Csound.Typed.Gui: GuiHandle :: Int -> GuiHandle
- Csound.Typed.Gui: GuiNode :: Gui -> GuiHandle -> GuiNode
- Csound.Typed.Gui: GuiVar :: GuiHandle -> Elem
- Csound.Typed.Gui: Helvetica :: FontType
- Csound.Typed.Gui: Home :: Key
- Csound.Typed.Gui: Hor :: Orient
- Csound.Typed.Gui: InitMe :: Var -> Double -> InitMe
- Csound.Typed.Gui: Insert :: Key
- Csound.Typed.Gui: Italic :: Emphasis
- Csound.Typed.Gui: Joy :: ValSpan -> ValSpan -> Elem
- Csound.Typed.Gui: Knob :: ValSpan -> Elem
- Csound.Typed.Gui: LeftAlt :: Key
- Csound.Typed.Gui: LeftCtrl :: Key
- Csound.Typed.Gui: LeftShift :: Key
- Csound.Typed.Gui: LeftWinKey :: Key
- Csound.Typed.Gui: LightButton :: ButtonType
- Csound.Typed.Gui: Linear :: ValScaleType
- Csound.Typed.Gui: Nice :: SliderType
- Csound.Typed.Gui: NoBorder :: BorderType
- Csound.Typed.Gui: NoDrag :: TextType
- Csound.Typed.Gui: NoEdit :: TextType
- Csound.Typed.Gui: NoEmphasis :: Emphasis
- Csound.Typed.Gui: NoLabel :: LabelType
- Csound.Typed.Gui: NoPlastic :: Material
- Csound.Typed.Gui: NormalButton :: ButtonType
- Csound.Typed.Gui: NormalLabel :: LabelType
- Csound.Typed.Gui: NormalText :: TextType
- Csound.Typed.Gui: Num0 :: Key
- Csound.Typed.Gui: Num1 :: Key
- Csound.Typed.Gui: Num2 :: Key
- Csound.Typed.Gui: Num3 :: Key
- Csound.Typed.Gui: Num4 :: Key
- Csound.Typed.Gui: Num5 :: Key
- Csound.Typed.Gui: Num6 :: Key
- Csound.Typed.Gui: Num7 :: Key
- Csound.Typed.Gui: Num8 :: Key
- Csound.Typed.Gui: Num9 :: Key
- Csound.Typed.Gui: NumArrowDown :: Key
- Csound.Typed.Gui: NumArrowLeft :: Key
- Csound.Typed.Gui: NumArrowRight :: Key
- Csound.Typed.Gui: NumArrowUp :: Key
- Csound.Typed.Gui: NumDel :: Key
- Csound.Typed.Gui: NumDiv :: Key
- Csound.Typed.Gui: NumDot :: Key
- Csound.Typed.Gui: NumEnd :: Key
- Csound.Typed.Gui: NumEnter :: Key
- Csound.Typed.Gui: NumHome :: Key
- Csound.Typed.Gui: NumIns :: Key
- Csound.Typed.Gui: NumLock :: Key
- Csound.Typed.Gui: NumMul :: Key
- Csound.Typed.Gui: NumPgDown :: Key
- Csound.Typed.Gui: NumPgUp :: Key
- Csound.Typed.Gui: NumPlus :: Key
- Csound.Typed.Gui: NumSpace :: Key
- Csound.Typed.Gui: NumSub :: Key
- Csound.Typed.Gui: OvalBox :: BoxType
- Csound.Typed.Gui: OvalFlatBox :: BoxType
- Csound.Typed.Gui: OvalShadowBox :: BoxType
- Csound.Typed.Gui: PgDown :: Key
- Csound.Typed.Gui: PgUp :: Key
- Csound.Typed.Gui: Pie :: KnobType
- Csound.Typed.Gui: Plastic :: Material
- Csound.Typed.Gui: Press :: Key -> KeyEvt
- Csound.Typed.Gui: Rect :: Int -> Int -> Int -> Int -> Rect
- Csound.Typed.Gui: Release :: Key -> KeyEvt
- Csound.Typed.Gui: RightAlt :: Key
- Csound.Typed.Gui: RightCtrl :: Key
- Csound.Typed.Gui: RightShift :: Key
- Csound.Typed.Gui: RightWinKey :: Key
- Csound.Typed.Gui: Roller :: ValSpan -> ValStep -> Elem
- Csound.Typed.Gui: RoundButton :: ButtonType
- Csound.Typed.Gui: RoundedDownBox :: BoxType
- Csound.Typed.Gui: RoundedFlatBox :: BoxType
- Csound.Typed.Gui: RoundedShadowBox :: BoxType
- Csound.Typed.Gui: RoundedUpBox :: BoxType
- Csound.Typed.Gui: Roundedbox :: BoxType
- Csound.Typed.Gui: Screen :: FontType
- Csound.Typed.Gui: Scroll :: Key
- Csound.Typed.Gui: SetBoxType :: BoxType -> Prop
- Csound.Typed.Gui: SetButtonType :: ButtonType -> Prop
- Csound.Typed.Gui: SetColor1 :: Color -> Prop
- Csound.Typed.Gui: SetColor2 :: Color -> Prop
- Csound.Typed.Gui: SetEmphasis :: Emphasis -> Prop
- Csound.Typed.Gui: SetFontSize :: Int -> Prop
- Csound.Typed.Gui: SetFontType :: FontType -> Prop
- Csound.Typed.Gui: SetKnobType :: KnobType -> Prop
- Csound.Typed.Gui: SetLabel :: String -> Prop
- Csound.Typed.Gui: SetLabelType :: LabelType -> Prop
- Csound.Typed.Gui: SetMaterial :: Material -> Prop
- Csound.Typed.Gui: SetOrient :: Orient -> Prop
- Csound.Typed.Gui: SetSliderType :: SliderType -> Prop
- Csound.Typed.Gui: SetTextColor :: Color -> Prop
- Csound.Typed.Gui: SetTextType :: TextType -> Prop
- Csound.Typed.Gui: ShadowBox :: BoxType
- Csound.Typed.Gui: ShadowLabel :: LabelType
- Csound.Typed.Gui: Single :: Win -> Bool -> Panel
- Csound.Typed.Gui: Slider :: ValSpan -> Elem
- Csound.Typed.Gui: Symbol :: FontType
- Csound.Typed.Gui: SymbolLabel :: LabelType
- Csound.Typed.Gui: Tabs :: String -> Maybe Rect -> [Win] -> Bool -> Panel
- Csound.Typed.Gui: Text :: ValDiap -> ValStep -> Elem
- Csound.Typed.Gui: ThinDown :: BorderType
- Csound.Typed.Gui: ThinDownBox :: BoxType
- Csound.Typed.Gui: ThinUp :: BorderType
- Csound.Typed.Gui: ThinUpBox :: BoxType
- Csound.Typed.Gui: ThreeD :: Maybe Int -> KnobType
- Csound.Typed.Gui: Times :: FontType
- Csound.Typed.Gui: Toggle :: Elem
- Csound.Typed.Gui: UpBox :: BoxType
- Csound.Typed.Gui: UpBoxBorder :: BorderType
- Csound.Typed.Gui: ValDiap :: Double -> Double -> ValDiap
- Csound.Typed.Gui: ValSpan :: ValDiap -> ValScaleType -> ValSpan
- Csound.Typed.Gui: Value :: Elem
- Csound.Typed.Gui: Ver :: Orient
- Csound.Typed.Gui: Vkeybd :: Elem
- Csound.Typed.Gui: Win :: String -> Maybe Rect -> Gui -> Win
- Csound.Typed.Gui: [guiNodeElem] :: GuiNode -> Gui
- Csound.Typed.Gui: [guiNodeHandle] :: GuiNode -> GuiHandle
- Csound.Typed.Gui: [height] :: Rect -> Int
- Csound.Typed.Gui: [initHandle] :: InitMe -> Var
- Csound.Typed.Gui: [initValue] :: InitMe -> Double
- Csound.Typed.Gui: [px] :: Rect -> Int
- Csound.Typed.Gui: [py] :: Rect -> Int
- Csound.Typed.Gui: [singleContent] :: Panel -> Win
- Csound.Typed.Gui: [singleIsKeybdSensitive] :: Panel -> Bool
- Csound.Typed.Gui: [tabsContent] :: Panel -> [Win]
- Csound.Typed.Gui: [tabsIsKeybdSensitive] :: Panel -> Bool
- Csound.Typed.Gui: [tabsRect] :: Panel -> Maybe Rect
- Csound.Typed.Gui: [tabsTitle] :: Panel -> String
- Csound.Typed.Gui: [unGuiHandle] :: GuiHandle -> Int
- Csound.Typed.Gui: [unGui] :: Gui -> LowGui
- Csound.Typed.Gui: [valDiapMax] :: ValDiap -> Double
- Csound.Typed.Gui: [valDiapMin] :: ValDiap -> Double
- Csound.Typed.Gui: [valSpanDiap] :: ValSpan -> ValDiap
- Csound.Typed.Gui: [valSpanScale] :: ValSpan -> ValScaleType
- Csound.Typed.Gui: [width] :: Rect -> Int
- Csound.Typed.Gui: [winGui] :: Win -> Gui
- Csound.Typed.Gui: [winRect] :: Win -> Maybe Rect
- Csound.Typed.Gui: [winTitle] :: Win -> String
- Csound.Typed.Gui: box :: String -> Display
- Csound.Typed.Gui: bspan :: ValSpan
- Csound.Typed.Gui: butBank :: String -> Int -> Int -> (Int, Int) -> Source (Evt (D, D))
- Csound.Typed.Gui: butBank1 :: String -> Int -> Int -> (Int, Int) -> Source (Evt D)
- Csound.Typed.Gui: butBankSig :: String -> Int -> Int -> (Int, Int) -> Source (Sig, Sig)
- Csound.Typed.Gui: butBankSig1 :: String -> Int -> Int -> (Int, Int) -> Source Sig
- Csound.Typed.Gui: button :: String -> Source (Evt Unit)
- Csound.Typed.Gui: count :: ValDiap -> ValStep -> Maybe ValStep -> Double -> Source (Evt D)
- Csound.Typed.Gui: countSig :: ValDiap -> ValStep -> Maybe ValStep -> Double -> Source Sig
- Csound.Typed.Gui: data BorderType
- Csound.Typed.Gui: data BoxType
- Csound.Typed.Gui: data ButtonType
- Csound.Typed.Gui: data Elem
- Csound.Typed.Gui: data Emphasis
- Csound.Typed.Gui: data FontType
- Csound.Typed.Gui: data GuiNode
- Csound.Typed.Gui: data InitMe
- Csound.Typed.Gui: data Key
- Csound.Typed.Gui: data KeyEvt
- Csound.Typed.Gui: data KnobType
- Csound.Typed.Gui: data LabelType
- Csound.Typed.Gui: data Material
- Csound.Typed.Gui: data Orient
- Csound.Typed.Gui: data Panel
- Csound.Typed.Gui: data Prop
- Csound.Typed.Gui: data Rect
- Csound.Typed.Gui: data SliderType
- Csound.Typed.Gui: data TextType
- Csound.Typed.Gui: data ValDiap
- Csound.Typed.Gui: data ValScaleType
- Csound.Typed.Gui: data ValSpan
- Csound.Typed.Gui: data Win
- Csound.Typed.Gui: defText :: String -> Gui
- Csound.Typed.Gui: display :: SE Gui -> Display
- Csound.Typed.Gui: expSpan :: Double -> Double -> ValSpan
- Csound.Typed.Gui: forceProps :: [Prop] -> Gui -> Gui
- Csound.Typed.Gui: fromElem :: ElemOuts -> [InitMe] -> Elem -> Gui
- Csound.Typed.Gui: fromGuiHandle :: GuiHandle -> Gui
- Csound.Typed.Gui: guiMap :: [GuiNode] -> GuiMap
- Csound.Typed.Gui: guiStmt :: Monad m => ScaleFactor -> [Panel] -> DepT m ()
- Csound.Typed.Gui: hor :: [Gui] -> Gui
- Csound.Typed.Gui: horSca :: [(Double, Gui)] -> Gui
- Csound.Typed.Gui: joy :: ValSpan -> ValSpan -> (Double, Double) -> Source (Sig, Sig)
- Csound.Typed.Gui: keyIn :: KeyEvt -> Evt Unit
- Csound.Typed.Gui: keyPanel :: Gui -> SE ()
- Csound.Typed.Gui: keyPanelBy :: String -> Maybe Rect -> Gui -> SE ()
- Csound.Typed.Gui: keyPanels :: [Gui] -> SE ()
- Csound.Typed.Gui: keyTabs :: [(String, Gui)] -> SE ()
- Csound.Typed.Gui: keyTabsBy :: String -> Maybe Rect -> [(String, Maybe Rect, Gui)] -> SE ()
- Csound.Typed.Gui: knob :: String -> ValSpan -> Double -> Source Sig
- Csound.Typed.Gui: linSpan :: Double -> Double -> ValSpan
- Csound.Typed.Gui: mapGuiOnPanel :: (Gui -> Gui) -> Panel -> Panel
- Csound.Typed.Gui: mapGuiSource :: (Gui -> Gui) -> Source a -> Source a
- Csound.Typed.Gui: mapSource :: (a -> b) -> Source a -> Source b
- Csound.Typed.Gui: margin :: Int -> Gui -> Gui
- Csound.Typed.Gui: meter :: String -> ValSpan -> Double -> Sink Sig
- Csound.Typed.Gui: mhor :: Monoid a => [Source a] -> Source a
- Csound.Typed.Gui: msca :: Double -> Source a -> Source a
- Csound.Typed.Gui: mver :: Monoid a => [Source a] -> Source a
- Csound.Typed.Gui: newtype Gui
- Csound.Typed.Gui: newtype GuiHandle
- Csound.Typed.Gui: noInner :: Inner
- Csound.Typed.Gui: noInput :: Input ()
- Csound.Typed.Gui: noOutput :: Output ()
- Csound.Typed.Gui: numeric :: String -> ValDiap -> ValStep -> Double -> Source Sig
- Csound.Typed.Gui: padding :: Int -> Gui -> Gui
- Csound.Typed.Gui: panel :: Gui -> SE ()
- Csound.Typed.Gui: panelBy :: String -> Maybe Rect -> Gui -> SE ()
- Csound.Typed.Gui: panelIsKeybdSensitive :: Panel -> Bool
- Csound.Typed.Gui: panels :: [Gui] -> SE ()
- Csound.Typed.Gui: props :: [Prop] -> Gui -> Gui
- Csound.Typed.Gui: resizeGui :: ScaleFactor -> Gui -> Gui
- Csound.Typed.Gui: restoreTree :: GuiMap -> Gui -> Gui
- Csound.Typed.Gui: roller :: String -> ValSpan -> ValStep -> Double -> Source Sig
- Csound.Typed.Gui: sca :: Double -> Gui -> Gui
- Csound.Typed.Gui: setBorder :: BorderType -> Gui -> Gui
- Csound.Typed.Gui: setBoxType :: BoxType -> Gui -> Gui
- Csound.Typed.Gui: setButtonType :: ButtonType -> Gui -> Gui
- Csound.Typed.Gui: setColor1 :: Color -> Gui -> Gui
- Csound.Typed.Gui: setColor2 :: Color -> Gui -> Gui
- Csound.Typed.Gui: setColors :: Color -> Color -> Gui -> Gui
- Csound.Typed.Gui: setEmphasis :: Emphasis -> Gui -> Gui
- Csound.Typed.Gui: setFontSize :: Int -> Gui -> Gui
- Csound.Typed.Gui: setFontType :: FontType -> Gui -> Gui
- Csound.Typed.Gui: setKnob :: String -> ValSpan -> Double -> SinkSource Sig
- Csound.Typed.Gui: setKnobType :: KnobType -> Gui -> Gui
- Csound.Typed.Gui: setLabel :: String -> Gui -> Gui
- Csound.Typed.Gui: setLabelType :: LabelType -> Gui -> Gui
- Csound.Typed.Gui: setMaterial :: Material -> Gui -> Gui
- Csound.Typed.Gui: setNumeric :: String -> ValDiap -> ValStep -> Double -> Sink Sig
- Csound.Typed.Gui: setOrient :: Orient -> Gui -> Gui
- Csound.Typed.Gui: setSlider :: String -> ValSpan -> Double -> SinkSource Sig
- Csound.Typed.Gui: setSliderType :: SliderType -> Gui -> Gui
- Csound.Typed.Gui: setTextColor :: Color -> Gui -> Gui
- Csound.Typed.Gui: setTextType :: TextType -> Gui -> Gui
- Csound.Typed.Gui: setTitle :: String -> Gui -> SE Gui
- Csound.Typed.Gui: setToggle :: String -> Bool -> SinkSource (Evt D)
- Csound.Typed.Gui: setToggleSig :: String -> Bool -> SinkSource Sig
- Csound.Typed.Gui: sink :: SE (Gui, Output a) -> Sink a
- Csound.Typed.Gui: sinkSlice :: SinkSource a -> Sink a
- Csound.Typed.Gui: sinkSource :: SE (Gui, Output a, Input a) -> SinkSource a
- Csound.Typed.Gui: slider :: String -> ValSpan -> Double -> Source Sig
- Csound.Typed.Gui: sliderBank :: String -> [Double] -> Source [Sig]
- Csound.Typed.Gui: source :: SE (Gui, Input a) -> Source a
- Csound.Typed.Gui: sourceSlice :: SinkSource a -> Source a
- Csound.Typed.Gui: space :: Gui
- Csound.Typed.Gui: tabs :: [(String, Gui)] -> SE ()
- Csound.Typed.Gui: tabsBy :: String -> Maybe Rect -> [(String, Maybe Rect, Gui)] -> SE ()
- Csound.Typed.Gui: toggle :: String -> Bool -> Source (Evt D)
- Csound.Typed.Gui: toggleSig :: String -> Bool -> Source Sig
- Csound.Typed.Gui: type Color = Colour Double
- Csound.Typed.Gui: type Display = SE Gui
- Csound.Typed.Gui: type Inner = SE ()
- Csound.Typed.Gui: type Input a = a
- Csound.Typed.Gui: type Output a = a -> SE ()
- Csound.Typed.Gui: type ScaleFactor = (Double, Double)
- Csound.Typed.Gui: type Sink a = SE (Gui, Output a)
- Csound.Typed.Gui: type SinkSource a = SE (Gui, Output a, Input a)
- Csound.Typed.Gui: type Source a = SE (Gui, Input a)
- Csound.Typed.Gui: type ValStep = Double
- Csound.Typed.Gui: type Widget a b = SE (Gui, Output a, Input b, Inner)
- Csound.Typed.Gui: uspan :: ValSpan
- Csound.Typed.Gui: uspanExp :: ValSpan
- Csound.Typed.Gui: ver :: [Gui] -> Gui
- Csound.Typed.Gui: verSca :: [(Double, Gui)] -> Gui
- Csound.Typed.Gui: widget :: SE (Gui, Output a, Input b, Inner) -> Widget a b
- Csound.Typed.Render: Jacko :: String -> String -> [JackoConnect] -> [JackoConnect] -> [JackoConnect] -> [JackoConnect] -> Bool -> Bool -> Jacko
- Csound.Typed.Render: Options :: Flags -> Maybe Int -> Maybe Int -> Maybe Double -> Maybe TabFi -> Maybe (Double, Double) -> Maybe Jacko -> Maybe [(String, String)] -> Maybe Bool -> Options
- Csound.Typed.Render: TabFi :: Int -> IntMap Int -> Map String Int -> TabFi
- Csound.Typed.Render: [csdBlockSize] :: Options -> Maybe Int
- Csound.Typed.Render: [csdFlags] :: Options -> Flags
- Csound.Typed.Render: [csdGain] :: Options -> Maybe Double
- Csound.Typed.Render: [csdJackConnect] :: Options -> Maybe [(String, String)]
- Csound.Typed.Render: [csdJacko] :: Options -> Maybe Jacko
- Csound.Typed.Render: [csdSampleRate] :: Options -> Maybe Int
- Csound.Typed.Render: [csdScaleUI] :: Options -> Maybe (Double, Double)
- Csound.Typed.Render: [csdTabFi] :: Options -> Maybe TabFi
- Csound.Typed.Render: [csdTrace] :: Options -> Maybe Bool
- Csound.Typed.Render: [jackoAudioIns] :: Jacko -> [JackoConnect]
- Csound.Typed.Render: [jackoAudioOuts] :: Jacko -> [JackoConnect]
- Csound.Typed.Render: [jackoClient] :: Jacko -> String
- Csound.Typed.Render: [jackoFreewheel] :: Jacko -> Bool
- Csound.Typed.Render: [jackoInfo] :: Jacko -> Bool
- Csound.Typed.Render: [jackoMidiIns] :: Jacko -> [JackoConnect]
- Csound.Typed.Render: [jackoMidiOuts] :: Jacko -> [JackoConnect]
- Csound.Typed.Render: [jackoServer] :: Jacko -> String
- Csound.Typed.Render: [tabFiBase] :: TabFi -> Int
- Csound.Typed.Render: [tabFiGens] :: TabFi -> IntMap Int
- Csound.Typed.Render: [tabNamedFiGens] :: TabFi -> Map String Int
- Csound.Typed.Render: coarseFi :: Int -> TabFi
- Csound.Typed.Render: csdNeedTrace :: Options -> Bool
- Csound.Typed.Render: data Jacko
- Csound.Typed.Render: data Options
- Csound.Typed.Render: data TabFi
- Csound.Typed.Render: defBlockSize :: Options -> Int
- Csound.Typed.Render: defGain :: Options -> Double
- Csound.Typed.Render: defSampleRate :: Options -> Int
- Csound.Typed.Render: defScaleUI :: Options -> (Double, Double)
- Csound.Typed.Render: defTabFi :: Options -> TabFi
- Csound.Typed.Render: fineFi :: Int -> [(Int, Int)] -> [(String, Int)] -> TabFi
- Csound.Typed.Render: idBessels :: Int
- Csound.Typed.Render: idBuzzes :: Int
- Csound.Typed.Render: idChebs1 :: Int
- Csound.Typed.Render: idChebs2 :: Int
- Csound.Typed.Render: idConsts :: Int
- Csound.Typed.Render: idCubes :: Int
- Csound.Typed.Render: idDoubles :: Int
- Csound.Typed.Render: idExp :: String
- Csound.Typed.Render: idExps :: Int
- Csound.Typed.Render: idExpsBreakPoints :: Int
- Csound.Typed.Render: idFarey :: String
- Csound.Typed.Render: idLinTab :: Int
- Csound.Typed.Render: idLins :: Int
- Csound.Typed.Render: idLinsBreakPoints :: Int
- Csound.Typed.Render: idMixOnTab :: Int
- Csound.Typed.Render: idMixSines1 :: Int
- Csound.Typed.Render: idMixSines2 :: Int
- Csound.Typed.Render: idMixTabs :: Int
- Csound.Typed.Render: idMp3s :: Int
- Csound.Typed.Render: idMultichannel :: Int
- Csound.Typed.Render: idNormTab :: Int
- Csound.Typed.Render: idPadsynth :: String
- Csound.Typed.Render: idPartials :: Int
- Csound.Typed.Render: idPolynomFuns :: Int
- Csound.Typed.Render: idPolys :: Int
- Csound.Typed.Render: idPvocex :: Int
- Csound.Typed.Render: idRandDists :: Int
- Csound.Typed.Render: idRandHist :: Int
- Csound.Typed.Render: idRandPairs :: Int
- Csound.Typed.Render: idRandRanges :: Int
- Csound.Typed.Render: idReadNumFile :: Int
- Csound.Typed.Render: idReadNumTab :: Int
- Csound.Typed.Render: idReadTrajectoryFile :: Int
- Csound.Typed.Render: idSines :: Int
- Csound.Typed.Render: idSines2 :: Int
- Csound.Typed.Render: idSines3 :: Int
- Csound.Typed.Render: idSines4 :: Int
- Csound.Typed.Render: idSone :: String
- Csound.Typed.Render: idSplines :: Int
- Csound.Typed.Render: idStartEnds :: Int
- Csound.Typed.Render: idTabHarmonics :: Int
- Csound.Typed.Render: idTanh :: String
- Csound.Typed.Render: idTuning :: Int
- Csound.Typed.Render: idWave :: String
- Csound.Typed.Render: idWavs :: Int
- Csound.Typed.Render: idWins :: Int
- Csound.Typed.Render: renderJacko :: Jacko -> String
- Csound.Typed.Render: type JackoConnect = (String, String)
- Csound.Typed.Types.Prim: untilBeginD :: BoolD -> SE ()
- Csound.Typed.Types.SigSpace: type family AtOut a b c :: *;
+ Csound.Typed.Constants: infiniteDur :: Num a => a
+ Csound.Typed.Control.Api: namedMonoMsg :: Text -> SE MonoArg
+ Csound.Typed.Control.Api: trigByName :: (Arg a, Sigs b) => Text -> (a -> SE b) -> SE b
+ Csound.Typed.Control.Api: trigByNameMidi :: (Arg a, Sigs b) => Text -> ((D, D, a) -> SE b) -> SE b
+ Csound.Typed.Control.Api: trigByNameMidi_ :: forall a. Arg a => Text -> ((D, D, a) -> SE ()) -> SE ()
+ Csound.Typed.Control.Api: trigByName_ :: Arg a => Text -> (a -> SE ()) -> SE ()
+ Csound.Typed.Control.ArrayTraverse: foldArr :: (Tuple ix, Tuple a, Tuple b) => ((ix, a) -> b -> SE b) -> b -> Arr ix a -> SE b
+ Csound.Typed.Control.ArrayTraverse: foldColumnArr :: (Tuple a, Tuple b) => ((Sig, a) -> b -> SE b) -> b -> Sig -> Arr Sig2 a -> SE b
+ Csound.Typed.Control.ArrayTraverse: foldColumnsArrD :: (Tuple a, Tuple b) => ((D, a) -> b -> SE b) -> b -> D -> Arr D2 a -> SE b
+ Csound.Typed.Control.ArrayTraverse: foldRowArr :: (Tuple a, Tuple b) => ((Sig, a) -> b -> SE b) -> b -> Sig -> Arr Sig2 a -> SE b
+ Csound.Typed.Control.ArrayTraverse: foldRowsArrD :: (Tuple a, Tuple b) => ((D, a) -> b -> SE b) -> b -> D -> Arr D2 a -> SE b
+ Csound.Typed.Control.ArrayTraverse: forColumnArr :: Tuple a => Sig -> Arr Sig2 a -> ((Sig, a) -> SE ()) -> SE ()
+ Csound.Typed.Control.ArrayTraverse: forColumnArrD :: Tuple a => D -> Arr D2 a -> ((D, a) -> SE ()) -> SE ()
+ Csound.Typed.Control.ArrayTraverse: forRowArr :: Tuple a => Sig -> Arr Sig2 a -> ((Sig, a) -> SE ()) -> SE ()
+ Csound.Typed.Control.ArrayTraverse: forRowArrD :: Tuple a => D -> Arr D2 a -> ((D, a) -> SE ()) -> SE ()
+ Csound.Typed.Control.ArrayTraverse: foreachArr :: (Tuple ix, Tuple a) => Arr ix a -> ((ix, a) -> SE ()) -> SE ()
+ Csound.Typed.Control.ArrayTraverse: foreachArrD :: (Tuple ix, Tuple a) => Arr ix a -> ((ix, a) -> SE ()) -> SE ()
+ Csound.Typed.Control.Channel: chnGetCtrl :: Str -> SE Sig
+ Csound.Typed.Control.Channel: chnGetD :: Str -> SE D
+ Csound.Typed.Control.Channel: chnGetSig :: Str -> SE Sig
+ Csound.Typed.Control.Channel: chnGetStr :: Str -> SE Str
+ Csound.Typed.Control.Channel: chnSetCtrl :: Sig -> Str -> SE ()
+ Csound.Typed.Control.Channel: chnSetD :: D -> Str -> SE ()
+ Csound.Typed.Control.Channel: chnSetSig :: Sig -> Str -> SE ()
+ Csound.Typed.Control.Channel: chnSetStr :: Str -> Str -> SE ()
+ Csound.Typed.Control.Evt: evtLoop :: (Num a, Tuple a, Sigs a) => Maybe (Evt Unit) -> [SE a] -> [Evt Unit] -> a
+ Csound.Typed.Control.Evt: evtLoopOnce :: (Num a, Tuple a, Sigs a) => Maybe (Evt Unit) -> [SE a] -> [Evt Unit] -> a
+ Csound.Typed.Control.Evt: monoSched :: Evt (Sco (D, D)) -> SE MonoArg
+ Csound.Typed.Control.Evt: monoSchedHarp :: Evt (D, D) -> SE MonoArg
+ Csound.Typed.Control.Evt: monoSchedUntil :: Evt (D, D) -> Evt a -> SE MonoArg
+ Csound.Typed.Control.Evt: retrigs :: (Arg a, Sigs b) => (a -> SE b) -> Evt [a] -> b
+ Csound.Typed.Control.Evt: sched :: (Arg a, Sigs b) => (a -> SE b) -> Evt (Sco a) -> b
+ Csound.Typed.Control.Evt: schedBy :: (Arg a, Sigs b, Arg c) => (a -> SE b) -> (c -> Evt (Sco a)) -> c -> b
+ Csound.Typed.Control.Evt: schedHarp :: (Arg a, Sigs b) => D -> (a -> SE b) -> Evt [a] -> b
+ Csound.Typed.Control.Evt: schedHarpBy :: (Arg a, Sigs b, Arg c) => D -> (a -> SE b) -> (c -> Evt [a]) -> c -> b
+ Csound.Typed.Control.Evt: sched_ :: Arg a => (a -> SE ()) -> Evt (Sco a) -> SE ()
+ Csound.Typed.Control.Instr: Arity :: Int -> Int -> Arity
+ Csound.Typed.Control.Instr: [arityIns] :: Arity -> Int
+ Csound.Typed.Control.Instr: [arityOuts] :: Arity -> Int
+ Csound.Typed.Control.Instr: apInstr :: forall a b. (Arg a, Sigs b) => GE InstrId -> a -> b
+ Csound.Typed.Control.Instr: apInstr0 :: Sigs b => GE InstrId -> b
+ Csound.Typed.Control.Instr: constArity :: Tuple a => SE a -> Arity
+ Csound.Typed.Control.Instr: data Arity
+ Csound.Typed.Control.Instr: effExp :: (Tuple a, Tuple b) => (a -> SE b) -> EffExp
+ Csound.Typed.Control.Instr: funArity :: forall a b. (Tuple a, Tuple b) => (a -> SE b) -> Arity
+ Csound.Typed.Control.Instr: insExp :: (Arg a, Tuple b) => (a -> SE b) -> InsExp
+ Csound.Typed.Control.Instr: masterExp :: Tuple a => SE a -> InsExp
+ Csound.Typed.Control.Instr: midiExp :: Tuple a => (Msg -> SE a) -> InsExp
+ Csound.Typed.Control.Instr: type EffExp = [E] -> SE [E]
+ Csound.Typed.Control.Instr: type InsExp = SE [E]
+ Csound.Typed.Control.Instr: unitExp :: SE Unit -> UnitExp
+ Csound.Typed.Control.InstrRef: addFracInstrRef :: D -> D -> InstrRef a -> InstrRef a
+ Csound.Typed.Control.InstrRef: data InstrRef a
+ Csound.Typed.Control.InstrRef: negateInstrRef :: InstrRef a -> InstrRef a
+ Csound.Typed.Control.InstrRef: newInstr :: Arg a => (a -> SE ()) -> SE (InstrRef a)
+ Csound.Typed.Control.InstrRef: newOutInstr :: (Arg a, Sigs b) => (a -> SE b) -> SE (InstrRef a, b)
+ Csound.Typed.Control.InstrRef: noteOff :: (Default a, Arg a) => D -> D -> InstrRef a -> SE ()
+ Csound.Typed.Control.InstrRef: noteOn :: Arg a => D -> D -> InstrRef a -> a -> SE ()
+ Csound.Typed.Control.InstrRef: scheduleEvent :: Arg a => InstrRef a -> D -> D -> a -> SE ()
+ Csound.Typed.Control.InstrRef: turnoff2 :: InstrRef a -> Sig -> Sig -> SE ()
+ Csound.Typed.Control.MacrosArgs: readMacrosDouble :: Text -> Double -> D
+ Csound.Typed.Control.MacrosArgs: readMacrosInt :: Text -> Int -> D
+ Csound.Typed.Control.MacrosArgs: readMacrosString :: Text -> Text -> Str
+ Csound.Typed.Control.Midi: data Msg
+ Csound.Typed.Control.Midi: initMidiCtrl :: D -> D -> D -> SE ()
+ Csound.Typed.Control.Midi: midi :: (Num a, Sigs a) => (Msg -> SE a) -> SE a
+ Csound.Typed.Control.Midi: midi_ :: (Msg -> SE ()) -> SE ()
+ Csound.Typed.Control.Midi: midin :: (Num a, Sigs a) => Channel -> (Msg -> SE a) -> SE a
+ Csound.Typed.Control.Midi: midin_ :: Channel -> (Msg -> SE ()) -> SE ()
+ Csound.Typed.Control.Midi: pgmidi :: (Num a, Sigs a) => Maybe Int -> Channel -> (Msg -> SE a) -> SE a
+ Csound.Typed.Control.Midi: pgmidi_ :: Maybe Int -> Channel -> (Msg -> SE ()) -> SE ()
+ Csound.Typed.Control.Midi: type Channel = Int
+ Csound.Typed.Control.Mix: data Mix a
+ Csound.Typed.Control.Mix: eff :: (Sigs a, Sigs b) => (a -> SE b) -> Sco (Mix a) -> Sco (Mix b)
+ Csound.Typed.Control.Mix: instance (Csound.Typed.Types.Tuple.Sigs a, Csound.Typed.Types.SigSpace.SigSpace a) => Csound.Typed.Types.SigSpace.SigSpace (Csound.Typed.Control.Mix.Sco (Csound.Typed.Control.Mix.Mix a))
+ Csound.Typed.Control.Mix: instance (Csound.Typed.Types.Tuple.Sigs a, Csound.Typed.Types.SigSpace.SigSpace2 a) => Csound.Typed.Types.SigSpace.SigSpace2 (Csound.Typed.Control.Mix.Sco (Csound.Typed.Control.Mix.Mix a))
+ Csound.Typed.Control.Mix: instance Csound.Typed.Types.SigSpace.At Csound.Typed.Types.Prim.Sig (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (Csound.Typed.Control.Mix.Sco (Csound.Typed.Control.Mix.Mix Csound.Typed.Types.Prim.Sig))
+ Csound.Typed.Control.Mix: instance Csound.Typed.Types.SigSpace.At Csound.Typed.Types.Prim.Sig (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (Csound.Typed.Control.Mix.Sco (Csound.Typed.Control.Mix.Mix Csound.Typed.Types.Prim.Sig2))
+ Csound.Typed.Control.Mix: instance Csound.Typed.Types.SigSpace.At Csound.Typed.Types.Prim.Sig (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (Csound.Typed.Control.Mix.Sco (Csound.Typed.Control.Mix.Mix Csound.Typed.Types.Prim.Sig3))
+ Csound.Typed.Control.Mix: instance Csound.Typed.Types.SigSpace.At Csound.Typed.Types.Prim.Sig (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (Csound.Typed.Control.Mix.Sco (Csound.Typed.Control.Mix.Mix Csound.Typed.Types.Prim.Sig4))
+ Csound.Typed.Control.Mix: instance Csound.Typed.Types.SigSpace.At Csound.Typed.Types.Prim.Sig (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) (Csound.Typed.Control.Mix.Sco (Csound.Typed.Control.Mix.Mix Csound.Typed.Types.Prim.Sig))
+ Csound.Typed.Control.Mix: instance Csound.Typed.Types.SigSpace.At Csound.Typed.Types.Prim.Sig Csound.Typed.Types.Prim.Sig2 (Csound.Typed.Control.Mix.Sco (Csound.Typed.Control.Mix.Mix Csound.Typed.Types.Prim.Sig))
+ Csound.Typed.Control.Mix: instance Csound.Typed.Types.SigSpace.At Csound.Typed.Types.Prim.Sig2 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) (Csound.Typed.Control.Mix.Sco (Csound.Typed.Control.Mix.Mix Csound.Typed.Types.Prim.Sig))
+ Csound.Typed.Control.Mix: instance Csound.Typed.Types.SigSpace.At Csound.Typed.Types.Prim.Sig2 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) (Csound.Typed.Control.Mix.Sco (Csound.Typed.Control.Mix.Mix Csound.Typed.Types.Prim.Sig2))
+ Csound.Typed.Control.Mix: instance Csound.Typed.Types.SigSpace.At Csound.Typed.Types.Prim.Sig2 Csound.Typed.Types.Prim.Sig2 (Csound.Typed.Control.Mix.Sco (Csound.Typed.Control.Mix.Mix Csound.Typed.Types.Prim.Sig))
+ Csound.Typed.Control.Mix: instance Csound.Typed.Types.SigSpace.At Csound.Typed.Types.Prim.Sig2 Csound.Typed.Types.Prim.Sig2 (Csound.Typed.Control.Mix.Sco (Csound.Typed.Control.Mix.Mix Csound.Typed.Types.Prim.Sig2))
+ Csound.Typed.Control.Mix: instance Csound.Typed.Types.SigSpace.MixAt Csound.Typed.Types.Prim.Sig (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (Csound.Typed.Control.Mix.Sco (Csound.Typed.Control.Mix.Mix Csound.Typed.Types.Prim.Sig))
+ Csound.Typed.Control.Mix: instance Csound.Typed.Types.SigSpace.MixAt Csound.Typed.Types.Prim.Sig (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (Csound.Typed.Control.Mix.Sco (Csound.Typed.Control.Mix.Mix Csound.Typed.Types.Prim.Sig2))
+ Csound.Typed.Control.Mix: instance Csound.Typed.Types.SigSpace.MixAt Csound.Typed.Types.Prim.Sig (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (Csound.Typed.Control.Mix.Sco (Csound.Typed.Control.Mix.Mix Csound.Typed.Types.Prim.Sig3))
+ Csound.Typed.Control.Mix: instance Csound.Typed.Types.SigSpace.MixAt Csound.Typed.Types.Prim.Sig (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig) (Csound.Typed.Control.Mix.Sco (Csound.Typed.Control.Mix.Mix Csound.Typed.Types.Prim.Sig4))
+ Csound.Typed.Control.Mix: instance Csound.Typed.Types.SigSpace.MixAt Csound.Typed.Types.Prim.Sig (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) (Csound.Typed.Control.Mix.Sco (Csound.Typed.Control.Mix.Mix Csound.Typed.Types.Prim.Sig))
+ Csound.Typed.Control.Mix: instance Csound.Typed.Types.SigSpace.MixAt Csound.Typed.Types.Prim.Sig Csound.Typed.Types.Prim.Sig2 (Csound.Typed.Control.Mix.Sco (Csound.Typed.Control.Mix.Mix Csound.Typed.Types.Prim.Sig))
+ Csound.Typed.Control.Mix: instance Csound.Typed.Types.SigSpace.MixAt Csound.Typed.Types.Prim.Sig2 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) (Csound.Typed.Control.Mix.Sco (Csound.Typed.Control.Mix.Mix Csound.Typed.Types.Prim.Sig))
+ Csound.Typed.Control.Mix: instance Csound.Typed.Types.SigSpace.MixAt Csound.Typed.Types.Prim.Sig2 (Csound.Typed.GlobalState.SE.SE Csound.Typed.Types.Prim.Sig2) (Csound.Typed.Control.Mix.Sco (Csound.Typed.Control.Mix.Mix Csound.Typed.Types.Prim.Sig2))
+ Csound.Typed.Control.Mix: instance Csound.Typed.Types.SigSpace.MixAt Csound.Typed.Types.Prim.Sig2 Csound.Typed.Types.Prim.Sig2 (Csound.Typed.Control.Mix.Sco (Csound.Typed.Control.Mix.Mix Csound.Typed.Types.Prim.Sig))
+ Csound.Typed.Control.Mix: instance Csound.Typed.Types.SigSpace.MixAt Csound.Typed.Types.Prim.Sig2 Csound.Typed.Types.Prim.Sig2 (Csound.Typed.Control.Mix.Sco (Csound.Typed.Control.Mix.Mix Csound.Typed.Types.Prim.Sig2))
+ Csound.Typed.Control.Mix: mix :: Sigs a => Sco (Mix a) -> a
+ Csound.Typed.Control.Mix: mixBy :: (Arg a, Sigs b) => (a -> Sco (Mix b)) -> a -> b
+ Csound.Typed.Control.Mix: mixBy_ :: Arg a => (a -> Sco (Mix Unit)) -> a -> SE ()
+ Csound.Typed.Control.Mix: mix_ :: Sco (Mix Unit) -> SE ()
+ Csound.Typed.Control.Mix: monoSco :: forall a. Sigs a => (MonoArg -> SE a) -> Sco (D, D) -> Sco (Mix a)
+ Csound.Typed.Control.Mix: sco :: (Arg a, Sigs b) => (a -> SE b) -> Sco a -> Sco (Mix b)
+ Csound.Typed.Control.Mix: sco_ :: Arg a => (a -> SE ()) -> Sco a -> Sco (Mix Unit)
+ Csound.Typed.Control.Mix: type CsdEvent = (Double, Double, Note)
+ Csound.Typed.Control.Mix: type CsdEventList a = Track Sig a
+ Csound.Typed.Control.Mix: type Sco a = Track Sig a
+ Csound.Typed.Control.Osc: class Tuple a => OscVal a
+ Csound.Typed.Control.Osc: data OscRef
+ Csound.Typed.Control.Osc: initOsc :: OscPort -> OscRef
+ Csound.Typed.Control.Osc: instance (Csound.Typed.Control.Osc.OscVal a, Csound.Typed.Control.Osc.OscVal b) => Csound.Typed.Control.Osc.OscVal (a, b)
+ Csound.Typed.Control.Osc: instance (Csound.Typed.Control.Osc.OscVal a, Csound.Typed.Control.Osc.OscVal b, Csound.Typed.Control.Osc.OscVal c) => Csound.Typed.Control.Osc.OscVal (a, b, c)
+ Csound.Typed.Control.Osc: instance (Csound.Typed.Control.Osc.OscVal a, Csound.Typed.Control.Osc.OscVal b, Csound.Typed.Control.Osc.OscVal c, Csound.Typed.Control.Osc.OscVal d) => Csound.Typed.Control.Osc.OscVal (a, b, c, d)
+ Csound.Typed.Control.Osc: instance (Csound.Typed.Control.Osc.OscVal a, Csound.Typed.Control.Osc.OscVal b, Csound.Typed.Control.Osc.OscVal c, Csound.Typed.Control.Osc.OscVal d, Csound.Typed.Control.Osc.OscVal e) => Csound.Typed.Control.Osc.OscVal (a, b, c, d, e)
+ Csound.Typed.Control.Osc: instance Csound.Typed.Control.Osc.OscVal Csound.Typed.Types.Prim.Sig
+ Csound.Typed.Control.Osc: instance Csound.Typed.Control.Osc.OscVal Csound.Typed.Types.Prim.Str
+ Csound.Typed.Control.Osc: listenOsc :: forall a. Tuple a => OscRef -> OscAddress -> OscType -> Evt a
+ Csound.Typed.Control.Osc: listenOscVal :: (Tuple a, OscVal a) => OscRef -> String -> a -> SE a
+ Csound.Typed.Control.Osc: sendOsc :: forall a. Tuple a => OscHost -> OscPort -> OscAddress -> OscType -> Evt a -> SE ()
+ Csound.Typed.Control.Osc: type OscAddress = String
+ Csound.Typed.Control.Osc: type OscHost = String
+ Csound.Typed.Control.Osc: type OscPort = Int
+ Csound.Typed.Control.Osc: type OscType = String
+ Csound.Typed.Control.Ref: Ref :: [Var] -> Ref a
+ Csound.Typed.Control.Ref: concatRef :: (Tuple a, Tuple b) => Ref a -> Ref b -> Ref (a, b)
+ Csound.Typed.Control.Ref: concatRef3 :: (Tuple a, Tuple b, Tuple c) => Ref a -> Ref b -> Ref c -> Ref (a, b, c)
+ Csound.Typed.Control.Ref: concatRef4 :: (Tuple a, Tuple b, Tuple c, Tuple d) => Ref a -> Ref b -> Ref c -> Ref d -> Ref (a, b, c, d)
+ Csound.Typed.Control.Ref: concatRef5 :: (Tuple a, Tuple b, Tuple c, Tuple d, Tuple e) => Ref a -> Ref b -> Ref c -> Ref d -> Ref e -> Ref (a, b, c, d, e)
+ Csound.Typed.Control.Ref: globalSensorsSE :: Tuple a => a -> SE (SE a, a -> SE ())
+ Csound.Typed.Control.Ref: mixRef :: (Num a, Tuple a) => Ref a -> a -> SE ()
+ Csound.Typed.Control.Ref: modifyRef :: Tuple a => Ref a -> (a -> a) -> SE ()
+ Csound.Typed.Control.Ref: newClearableGlobalRef :: forall a. Tuple a => a -> SE (Ref a)
+ Csound.Typed.Control.Ref: newCtrlRef :: forall a. Tuple a => a -> SE (Ref a)
+ Csound.Typed.Control.Ref: newGlobalCtrlRef :: forall a. Tuple a => a -> SE (Ref a)
+ Csound.Typed.Control.Ref: newGlobalRef :: forall a. Tuple a => a -> SE (Ref a)
+ Csound.Typed.Control.Ref: newGlobalTab :: Int -> SE Tab
+ Csound.Typed.Control.Ref: newRef :: forall a. Tuple a => a -> SE (Ref a)
+ Csound.Typed.Control.Ref: newTab :: D -> SE Tab
+ Csound.Typed.Control.Ref: newtype Ref a
+ Csound.Typed.Control.Ref: readRef :: Tuple a => Ref a -> SE a
+ Csound.Typed.Control.Ref: sensorsSE :: Tuple a => a -> SE (SE a, a -> SE ())
+ Csound.Typed.Control.Ref: whileRef :: forall st. Tuple st => st -> (st -> SE BoolSig) -> (st -> SE st) -> SE ()
+ Csound.Typed.Control.Ref: whileRefD :: forall st. Tuple st => st -> (st -> SE BoolD) -> (st -> SE st) -> SE ()
+ Csound.Typed.Control.Ref: writeRef :: Tuple a => Ref a -> a -> SE ()
+ Csound.Typed.Control.Sf2: Sf :: Text -> Int -> Int -> Sf
+ Csound.Typed.Control.Sf2: SfId :: GE E -> Sf
+ Csound.Typed.Control.Sf2: [sfBank] :: Sf -> Int
+ Csound.Typed.Control.Sf2: [sfName] :: Sf -> Text
+ Csound.Typed.Control.Sf2: [sfProg] :: Sf -> Int
+ Csound.Typed.Control.Sf2: data Sf
+ Csound.Typed.Control.Sf2: instance Csound.Typed.Types.Prim.Val Csound.Typed.Control.Sf2.Sf
+ Csound.Typed.Control.Sf2: instance Data.Boolean.IfB Csound.Typed.Control.Sf2.Sf
+ Csound.Typed.Control.Sf2: instance Data.Default.Class.Default Csound.Typed.Control.Sf2.Sf
+ Csound.Typed.Control.Sf2: unSf :: Sf -> GE E
+ Csound.Typed.Control.Vco: RawSync :: SyncSmooth
+ Csound.Typed.Control.Vco: SawSync :: SyncSmooth
+ Csound.Typed.Control.Vco: TrapSync :: SyncSmooth
+ Csound.Typed.Control.Vco: TriSync :: SyncSmooth
+ Csound.Typed.Control.Vco: UserSync :: Tab -> SyncSmooth
+ Csound.Typed.Control.Vco: blosc :: Tab -> Sig -> Sig
+ Csound.Typed.Control.Vco: blosc' :: Tab -> D -> Sig -> Sig
+ Csound.Typed.Control.Vco: bloscSync :: Tab -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: bloscSync' :: Tab -> D -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: bloscSyncAbs :: Tab -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: bloscSyncAbs' :: Tab -> D -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: bloscSyncAbsBy :: SyncSmooth -> Tab -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: bloscSyncAbsBy' :: SyncSmooth -> Tab -> D -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: bloscSyncBy :: SyncSmooth -> Tab -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: bloscSyncBy' :: SyncSmooth -> Tab -> D -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: data SyncSmooth
+ Csound.Typed.Control.Vco: instance Data.Default.Class.Default Csound.Typed.Control.Vco.SyncSmooth
+ Csound.Typed.Control.Vco: isaw :: Sig -> Sig
+ Csound.Typed.Control.Vco: isaw' :: D -> Sig -> Sig
+ Csound.Typed.Control.Vco: isawSync :: Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: isawSync' :: D -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: isawSyncAbs :: Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: isawSyncAbs' :: D -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: isawSyncAbsBy :: SyncSmooth -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: isawSyncAbsBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: isawSyncBy :: SyncSmooth -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: isawSyncBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: pulse :: Sig -> Sig
+ Csound.Typed.Control.Vco: pulse' :: D -> Sig -> Sig
+ Csound.Typed.Control.Vco: pulseSync :: Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: pulseSync' :: D -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: pulseSyncAbs :: Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: pulseSyncAbs' :: D -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: pulseSyncAbsBy :: SyncSmooth -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: pulseSyncAbsBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: pulseSyncBy :: SyncSmooth -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: pulseSyncBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: saw :: Sig -> Sig
+ Csound.Typed.Control.Vco: saw' :: D -> Sig -> Sig
+ Csound.Typed.Control.Vco: sawSync :: Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: sawSync' :: D -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: sawSyncAbs :: Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: sawSyncAbs' :: D -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: sawSyncAbsBy :: SyncSmooth -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: sawSyncAbsBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: sawSyncBy :: SyncSmooth -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: sawSyncBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: sqr :: Sig -> Sig
+ Csound.Typed.Control.Vco: sqr' :: D -> Sig -> Sig
+ Csound.Typed.Control.Vco: sqrSync :: Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: sqrSync' :: D -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: sqrSyncAbs :: Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: sqrSyncAbs' :: D -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: sqrSyncAbsBy :: SyncSmooth -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: sqrSyncAbsBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: sqrSyncBy :: SyncSmooth -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: sqrSyncBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: tri :: Sig -> Sig
+ Csound.Typed.Control.Vco: tri' :: D -> Sig -> Sig
+ Csound.Typed.Control.Vco: triSync :: Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: triSync' :: D -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: triSyncAbs :: Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: triSyncAbs' :: D -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: triSyncAbsBy :: SyncSmooth -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: triSyncAbsBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: triSyncBy :: SyncSmooth -> Sig -> Sig -> Sig
+ Csound.Typed.Control.Vco: triSyncBy' :: SyncSmooth -> D -> Sig -> Sig -> Sig
+ Csound.Typed.GlobalState: IdMap :: Map a Int -> Int -> IdMap a
+ Csound.Typed.GlobalState: Instrs :: Map ByteString InstrId -> Int -> [(InstrId, InstrBody)] -> Instrs
+ Csound.Typed.GlobalState: IntegratedSaw :: BandLimited
+ Csound.Typed.GlobalState: Massign :: MidiType
+ Csound.Typed.GlobalState: Pgmassign :: Maybe Int -> MidiType
+ Csound.Typed.GlobalState: Pulse :: BandLimited
+ Csound.Typed.GlobalState: Saw :: BandLimited
+ Csound.Typed.GlobalState: SfFluid :: Int -> [Var] -> SfFluid
+ Csound.Typed.GlobalState: SfSpec :: Text -> Int -> Int -> SfSpec
+ Csound.Typed.GlobalState: Square :: BandLimited
+ Csound.Typed.GlobalState: Triangle :: BandLimited
+ Csound.Typed.GlobalState: UserGen :: Gen -> BandLimited
+ Csound.Typed.GlobalState: [idMapContent] :: IdMap a -> Map a Int
+ Csound.Typed.GlobalState: [idMapNewId] :: IdMap a -> Int
+ Csound.Typed.GlobalState: [instrsCache] :: Instrs -> Map ByteString InstrId
+ Csound.Typed.GlobalState: [instrsContent] :: Instrs -> [(InstrId, InstrBody)]
+ Csound.Typed.GlobalState: [instrsNewId] :: Instrs -> Int
+ Csound.Typed.GlobalState: [sfBank] :: SfSpec -> Int
+ Csound.Typed.GlobalState: [sfId] :: SfFluid -> Int
+ Csound.Typed.GlobalState: [sfName] :: SfSpec -> Text
+ Csound.Typed.GlobalState: [sfProgram] :: SfSpec -> Int
+ Csound.Typed.GlobalState: [sfVars] :: SfFluid -> [Var]
+ Csound.Typed.GlobalState: chnGet :: Monad m => Rate -> E -> DepT m E
+ Csound.Typed.GlobalState: chnSet :: Monad m => Rate -> E -> E -> DepT m ()
+ Csound.Typed.GlobalState: chnUpdateUdo :: Monad m => DepT m ()
+ Csound.Typed.GlobalState: data BandLimited
+ Csound.Typed.GlobalState: data IdMap a
+ Csound.Typed.GlobalState: data Instrs
+ Csound.Typed.GlobalState: data MidiType
+ Csound.Typed.GlobalState: data SfFluid
+ Csound.Typed.GlobalState: data SfSpec
+ Csound.Typed.GlobalState: exitnow :: Monad m => DepT m ()
+ Csound.Typed.GlobalState: freeChn :: Monad m => DepT m E
+ Csound.Typed.GlobalState: getIn :: Monad m => Int -> DepT m [E]
+ Csound.Typed.GlobalState: getInstrIds :: Instrs -> [InstrId]
+ Csound.Typed.GlobalState: getRetrigVal :: Int -> E
+ Csound.Typed.GlobalState: masterUpdateChnAlive :: Monad m => ChnRef -> E -> DepT m ()
+ Csound.Typed.GlobalState: masterUpdateChnRetrig :: Monad m => ChnRef -> E -> DepT m ()
+ Csound.Typed.GlobalState: oscInit :: E -> E
+ Csound.Typed.GlobalState: oscListen :: Monad m => E -> E -> E -> [Var] -> DepT m E
+ Csound.Typed.GlobalState: oscSend :: Monad m => [E] -> DepT m ()
+ Csound.Typed.GlobalState: readBandLimited :: Maybe E -> BandLimitedId -> E -> E
+ Csound.Typed.GlobalState: readChnEvtLoop :: Monad m => ChnRef -> DepT m E
+ Csound.Typed.GlobalState: readHardSyncBandLimited :: Maybe BandLimitedId -> Maybe E -> BandLimitedId -> E -> E -> E
+ Csound.Typed.GlobalState: renderBandLimited :: Monad m => GenMap -> BandLimitedMap -> DepT m ()
+ Csound.Typed.GlobalState: renderGlobals :: Monad m => Globals -> (DepT m (), DepT m ())
+ Csound.Typed.GlobalState: renderSf :: Monad m => SfSpec -> Int -> DepT m ()
+ Csound.Typed.GlobalState: servantUpdateChnAlive :: Monad m => Int -> DepT m ()
+ Csound.Typed.GlobalState: servantUpdateChnEvtLoop :: Monad m => Int -> DepT m ()
+ Csound.Typed.GlobalState: servantUpdateChnRetrig :: Monad m => Int -> DepT m ()
+ Csound.Typed.GlobalState: sfSetList :: Monad m => Text -> [(Int, Int, Int)] -> DepT m ()
+ Csound.Typed.GlobalState: sfVar :: Int -> E
+ Csound.Typed.GlobalState: tableI :: E -> E -> E
+ Csound.Typed.GlobalState: tableK :: E -> E -> E
+ Csound.Typed.GlobalState: turnoff :: Monad m => DepT m ()
+ Csound.Typed.GlobalState: turnoff2 :: Monad m => E -> DepT m ()
+ Csound.Typed.GlobalState: type Channel = Int
+ Csound.Typed.GlobalState.Cache: Cache :: CacheMix -> CacheMixProc m -> CacheEvt -> CacheEvtProc m -> Cache m
+ Csound.Typed.GlobalState.Cache: EvtKey :: HashKey -> HashKey -> EvtKey
+ Csound.Typed.GlobalState.Cache: MixKey :: HashKey -> MixKey
+ Csound.Typed.GlobalState.Cache: [cacheEvtProc] :: Cache m -> CacheEvtProc m
+ Csound.Typed.GlobalState.Cache: [cacheEvt] :: Cache m -> CacheEvt
+ Csound.Typed.GlobalState.Cache: [cacheMixProc] :: Cache m -> CacheMixProc m
+ Csound.Typed.GlobalState.Cache: [cacheMix] :: Cache m -> CacheMix
+ Csound.Typed.GlobalState.Cache: data Cache m
+ Csound.Typed.GlobalState.Cache: data EvtKey
+ Csound.Typed.GlobalState.Cache: getEvtKey :: GetKey m EvtKey EvtVal
+ Csound.Typed.GlobalState.Cache: getEvtProcKey :: GetKey m EvtKey (DepT m ())
+ Csound.Typed.GlobalState.Cache: getMixKey :: GetKey m MixKey MixVal
+ Csound.Typed.GlobalState.Cache: getMixProcKey :: GetKey m MixKey (DepT m ())
+ Csound.Typed.GlobalState.Cache: instance Data.Default.Class.Default (Csound.Typed.GlobalState.Cache.Cache m)
+ Csound.Typed.GlobalState.Cache: instance GHC.Classes.Eq Csound.Typed.GlobalState.Cache.EvtKey
+ Csound.Typed.GlobalState.Cache: instance GHC.Classes.Eq Csound.Typed.GlobalState.Cache.MixKey
+ Csound.Typed.GlobalState.Cache: instance GHC.Classes.Ord Csound.Typed.GlobalState.Cache.EvtKey
+ Csound.Typed.GlobalState.Cache: instance GHC.Classes.Ord Csound.Typed.GlobalState.Cache.MixKey
+ Csound.Typed.GlobalState.Cache: newtype MixKey
+ Csound.Typed.GlobalState.Cache: saveEvtKey :: SaveKey m EvtKey EvtVal
+ Csound.Typed.GlobalState.Cache: saveEvtProcKey :: SaveKey m EvtKey (DepT m ())
+ Csound.Typed.GlobalState.Cache: saveMixKey :: SaveKey m MixKey MixVal
+ Csound.Typed.GlobalState.Cache: saveMixProcKey :: SaveKey m MixKey (DepT m ())
+ Csound.Typed.GlobalState.Cache: type CacheEvt = Map EvtKey EvtVal
+ Csound.Typed.GlobalState.Cache: type CacheEvtProc m = Map EvtKey (DepT m ())
+ Csound.Typed.GlobalState.Cache: type CacheMix = Map MixKey MixVal
+ Csound.Typed.GlobalState.Cache: type CacheMixProc m = Map MixKey (DepT m ())
+ Csound.Typed.GlobalState.Cache: type HashKey = Int
+ Csound.Typed.GlobalState.Elements: BandLimitedMap :: Map BandLimited BandLimitedId -> GenMap -> BandLimitedMap
+ Csound.Typed.GlobalState.Elements: ChnRef :: E -> [E] -> ChnRef
+ Csound.Typed.GlobalState.Elements: Event :: E -> E -> E -> [E] -> Event
+ Csound.Typed.GlobalState.Elements: Globals :: Int -> [AllocVar] -> Globals
+ Csound.Typed.GlobalState.Elements: IdMap :: Map a Int -> Int -> IdMap a
+ Csound.Typed.GlobalState.Elements: Instrs :: Map ByteString InstrId -> Int -> [(InstrId, InstrBody)] -> Instrs
+ Csound.Typed.GlobalState.Elements: IntegratedSaw :: BandLimited
+ Csound.Typed.GlobalState.Elements: MacrosInitDouble :: Text -> Double -> MacrosInit
+ Csound.Typed.GlobalState.Elements: MacrosInitInt :: Text -> Int -> MacrosInit
+ Csound.Typed.GlobalState.Elements: MacrosInitString :: Text -> Text -> MacrosInit
+ Csound.Typed.GlobalState.Elements: Massign :: MidiType
+ Csound.Typed.GlobalState.Elements: MidiKey :: MidiType -> Channel -> MidiKey
+ Csound.Typed.GlobalState.Elements: NamedInstrs :: [(Text, InstrBody)] -> NamedInstrs
+ Csound.Typed.GlobalState.Elements: Pgmassign :: Maybe Int -> MidiType
+ Csound.Typed.GlobalState.Elements: Pulse :: BandLimited
+ Csound.Typed.GlobalState.Elements: Saw :: BandLimited
+ Csound.Typed.GlobalState.Elements: SfFluid :: Int -> [Var] -> SfFluid
+ Csound.Typed.GlobalState.Elements: SfSpec :: Text -> Int -> Int -> SfSpec
+ Csound.Typed.GlobalState.Elements: SimpleBandLimitedWave :: Int -> BandLimitedId
+ Csound.Typed.GlobalState.Elements: Square :: BandLimited
+ Csound.Typed.GlobalState.Elements: Triangle :: BandLimited
+ Csound.Typed.GlobalState.Elements: UserBandLimitedWave :: Int -> BandLimitedId
+ Csound.Typed.GlobalState.Elements: UserGen :: Gen -> BandLimited
+ Csound.Typed.GlobalState.Elements: [chnRefId] :: ChnRef -> E
+ Csound.Typed.GlobalState.Elements: [chnRefNames] :: ChnRef -> [E]
+ Csound.Typed.GlobalState.Elements: [eventArgs] :: Event -> [E]
+ Csound.Typed.GlobalState.Elements: [eventDur] :: Event -> E
+ Csound.Typed.GlobalState.Elements: [eventInstrId] :: Event -> E
+ Csound.Typed.GlobalState.Elements: [eventStart] :: Event -> E
+ Csound.Typed.GlobalState.Elements: [globalsNewId] :: Globals -> Int
+ Csound.Typed.GlobalState.Elements: [globalsVars] :: Globals -> [AllocVar]
+ Csound.Typed.GlobalState.Elements: [idMapContent] :: IdMap a -> Map a Int
+ Csound.Typed.GlobalState.Elements: [idMapNewId] :: IdMap a -> Int
+ Csound.Typed.GlobalState.Elements: [instrsCache] :: Instrs -> Map ByteString InstrId
+ Csound.Typed.GlobalState.Elements: [instrsContent] :: Instrs -> [(InstrId, InstrBody)]
+ Csound.Typed.GlobalState.Elements: [instrsNewId] :: Instrs -> Int
+ Csound.Typed.GlobalState.Elements: [macrosInitName] :: MacrosInit -> Text
+ Csound.Typed.GlobalState.Elements: [macrosInitValueDouble] :: MacrosInit -> Double
+ Csound.Typed.GlobalState.Elements: [macrosInitValueInt] :: MacrosInit -> Int
+ Csound.Typed.GlobalState.Elements: [macrosInitValueString] :: MacrosInit -> Text
+ Csound.Typed.GlobalState.Elements: [sfBank] :: SfSpec -> Int
+ Csound.Typed.GlobalState.Elements: [sfId] :: SfFluid -> Int
+ Csound.Typed.GlobalState.Elements: [sfName] :: SfSpec -> Text
+ Csound.Typed.GlobalState.Elements: [sfProgram] :: SfSpec -> Int
+ Csound.Typed.GlobalState.Elements: [sfVars] :: SfFluid -> [Var]
+ Csound.Typed.GlobalState.Elements: [simpleBandLimitedMap] :: BandLimitedMap -> Map BandLimited BandLimitedId
+ Csound.Typed.GlobalState.Elements: [unNamedInstrs] :: NamedInstrs -> [(Text, InstrBody)]
+ Csound.Typed.GlobalState.Elements: [vcoInitMap] :: BandLimitedMap -> GenMap
+ Csound.Typed.GlobalState.Elements: addUdoPlugin :: UdoPlugin -> State [UdoPlugin] ()
+ Csound.Typed.GlobalState.Elements: adsr140Plugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: ambiRowMp3Plugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: ambiRowPlugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: analogDelayPlugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: audaciouseqPlugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: autoOff :: Monad m => E -> [E] -> DepT m [E]
+ Csound.Typed.GlobalState.Elements: bpmVar :: Var
+ Csound.Typed.GlobalState.Elements: bpmVarName :: Text
+ Csound.Typed.GlobalState.Elements: changed :: E -> E
+ Csound.Typed.GlobalState.Elements: chnPargId :: Int -> Int
+ Csound.Typed.GlobalState.Elements: chnRefAlloc :: Monad m => Int -> DepT m ChnRef
+ Csound.Typed.GlobalState.Elements: chnRefFromParg :: Int -> Int -> ChnRef
+ Csound.Typed.GlobalState.Elements: chnUpdateUdo :: Monad m => DepT m ()
+ Csound.Typed.GlobalState.Elements: data BandLimited
+ Csound.Typed.GlobalState.Elements: data BandLimitedId
+ Csound.Typed.GlobalState.Elements: data BandLimitedMap
+ Csound.Typed.GlobalState.Elements: data ChnRef
+ Csound.Typed.GlobalState.Elements: data Event
+ Csound.Typed.GlobalState.Elements: data Globals
+ Csound.Typed.GlobalState.Elements: data IdMap a
+ Csound.Typed.GlobalState.Elements: data Instrs
+ Csound.Typed.GlobalState.Elements: data MacrosInit
+ Csound.Typed.GlobalState.Elements: data MidiKey
+ Csound.Typed.GlobalState.Elements: data MidiType
+ Csound.Typed.GlobalState.Elements: data OscListenPorts
+ Csound.Typed.GlobalState.Elements: data SfFluid
+ Csound.Typed.GlobalState.Elements: data SfSpec
+ Csound.Typed.GlobalState.Elements: data UdoPlugin
+ Csound.Typed.GlobalState.Elements: delay1kPlugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: diodePlugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: distortionPlugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: envelopeFolollowerPlugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: event :: Monad m => Event -> DepT m ()
+ Csound.Typed.GlobalState.Elements: event_i :: Monad m => Event -> DepT m ()
+ Csound.Typed.GlobalState.Elements: flangerPlugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: freqShifterPlugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: getIn :: Monad m => Int -> DepT m [E]
+ Csound.Typed.GlobalState.Elements: getInstrIds :: Instrs -> [InstrId]
+ Csound.Typed.GlobalState.Elements: getOscPortVar :: Int -> State (OscListenPorts, Globals) Var
+ Csound.Typed.GlobalState.Elements: getUdoPluginNames :: [UdoPlugin] -> [Text]
+ Csound.Typed.GlobalState.Elements: initMacros :: MacrosInit -> State MacrosInits ()
+ Csound.Typed.GlobalState.Elements: instance Data.Default.Class.Default (Csound.Typed.GlobalState.Elements.IdMap a)
+ Csound.Typed.GlobalState.Elements: instance Data.Default.Class.Default Csound.Typed.GlobalState.Elements.BandLimitedMap
+ Csound.Typed.GlobalState.Elements: instance Data.Default.Class.Default Csound.Typed.GlobalState.Elements.Globals
+ Csound.Typed.GlobalState.Elements: instance Data.Default.Class.Default Csound.Typed.GlobalState.Elements.Instrs
+ Csound.Typed.GlobalState.Elements: instance Data.Default.Class.Default Csound.Typed.GlobalState.Elements.NamedInstrs
+ Csound.Typed.GlobalState.Elements: instance Data.Default.Class.Default Csound.Typed.GlobalState.Elements.OscListenPorts
+ Csound.Typed.GlobalState.Elements: instance GHC.Classes.Eq Csound.Typed.GlobalState.Elements.BandLimited
+ Csound.Typed.GlobalState.Elements: instance GHC.Classes.Eq Csound.Typed.GlobalState.Elements.BandLimitedId
+ Csound.Typed.GlobalState.Elements: instance GHC.Classes.Eq Csound.Typed.GlobalState.Elements.BandLimitedMap
+ Csound.Typed.GlobalState.Elements: instance GHC.Classes.Eq Csound.Typed.GlobalState.Elements.GlobalVarType
+ Csound.Typed.GlobalState.Elements: instance GHC.Classes.Eq Csound.Typed.GlobalState.Elements.MacrosInit
+ Csound.Typed.GlobalState.Elements: instance GHC.Classes.Eq Csound.Typed.GlobalState.Elements.MidiKey
+ Csound.Typed.GlobalState.Elements: instance GHC.Classes.Eq Csound.Typed.GlobalState.Elements.MidiType
+ Csound.Typed.GlobalState.Elements: instance GHC.Classes.Eq Csound.Typed.GlobalState.Elements.SfSpec
+ Csound.Typed.GlobalState.Elements: instance GHC.Classes.Eq a => GHC.Classes.Eq (Csound.Typed.GlobalState.Elements.IdMap a)
+ Csound.Typed.GlobalState.Elements: instance GHC.Classes.Ord Csound.Typed.GlobalState.Elements.BandLimited
+ Csound.Typed.GlobalState.Elements: instance GHC.Classes.Ord Csound.Typed.GlobalState.Elements.BandLimitedId
+ Csound.Typed.GlobalState.Elements: instance GHC.Classes.Ord Csound.Typed.GlobalState.Elements.BandLimitedMap
+ Csound.Typed.GlobalState.Elements: instance GHC.Classes.Ord Csound.Typed.GlobalState.Elements.MacrosInit
+ Csound.Typed.GlobalState.Elements: instance GHC.Classes.Ord Csound.Typed.GlobalState.Elements.MidiKey
+ Csound.Typed.GlobalState.Elements: instance GHC.Classes.Ord Csound.Typed.GlobalState.Elements.MidiType
+ Csound.Typed.GlobalState.Elements: instance GHC.Classes.Ord Csound.Typed.GlobalState.Elements.SfSpec
+ Csound.Typed.GlobalState.Elements: instance GHC.Classes.Ord a => GHC.Classes.Ord (Csound.Typed.GlobalState.Elements.IdMap a)
+ Csound.Typed.GlobalState.Elements: instance GHC.Show.Show Csound.Typed.GlobalState.Elements.MacrosInit
+ Csound.Typed.GlobalState.Elements: instance GHC.Show.Show Csound.Typed.GlobalState.Elements.MidiKey
+ Csound.Typed.GlobalState.Elements: instance GHC.Show.Show Csound.Typed.GlobalState.Elements.MidiType
+ Csound.Typed.GlobalState.Elements: instance GHC.Show.Show Csound.Typed.GlobalState.Elements.SfSpec
+ Csound.Typed.GlobalState.Elements: korg35Plugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: liveRowPlugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: liveRowsPlugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: loFiPlugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: monoTremPlugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: newClearableGlobalVar :: Rate -> E -> State Globals Var
+ Csound.Typed.GlobalState.Elements: newGen :: Gen -> State GenMap Int
+ Csound.Typed.GlobalState.Elements: newGenId :: State GenMap Int
+ Csound.Typed.GlobalState.Elements: newIdMapId :: State (IdMap a) Int
+ Csound.Typed.GlobalState.Elements: newPersistentGloabalArrVar :: Rate -> [E] -> State Globals Var
+ Csound.Typed.GlobalState.Elements: newPersistentGlobalVar :: Rate -> E -> State Globals Var
+ Csound.Typed.GlobalState.Elements: newSf :: SfSpec -> State SfMap Int
+ Csound.Typed.GlobalState.Elements: newString :: Text -> State StringMap Prim
+ Csound.Typed.GlobalState.Elements: newTabOfGens :: [Gen] -> State GenMap Int
+ Csound.Typed.GlobalState.Elements: newWriteGen :: Gen -> State WriteGenMap E
+ Csound.Typed.GlobalState.Elements: newWriteTab :: Int -> State WriteGenMap E
+ Csound.Typed.GlobalState.Elements: newtype NamedInstrs
+ Csound.Typed.GlobalState.Elements: nextGlobalGenCounter :: State Int Int
+ Csound.Typed.GlobalState.Elements: panTremPlugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: phaserPlugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: pitchShifterDelayPlugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: pitchShifterPlugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: readBandLimited :: Maybe E -> BandLimitedId -> E -> E
+ Csound.Typed.GlobalState.Elements: readChn :: Monad m => ChnRef -> DepT m [E]
+ Csound.Typed.GlobalState.Elements: readHardSyncBandLimited :: Maybe BandLimitedId -> Maybe E -> BandLimitedId -> E -> E -> E
+ Csound.Typed.GlobalState.Elements: renderBandLimited :: Monad m => GenMap -> BandLimitedMap -> DepT m ()
+ Csound.Typed.GlobalState.Elements: renderGlobals :: Monad m => Globals -> (DepT m (), DepT m ())
+ Csound.Typed.GlobalState.Elements: renderSf :: Monad m => SfSpec -> Int -> DepT m ()
+ Csound.Typed.GlobalState.Elements: reversePlugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: ringModulatorPlugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: safeOut :: Double -> [E] -> [E]
+ Csound.Typed.GlobalState.Elements: saveBandLimited :: BandLimited -> State BandLimitedMap BandLimitedId
+ Csound.Typed.GlobalState.Elements: saveId :: Ord a => a -> State (IdMap a) Int
+ Csound.Typed.GlobalState.Elements: saveInstr :: InstrBody -> State Instrs InstrId
+ Csound.Typed.GlobalState.Elements: saveMidiInstr :: Monad m => MidiType -> Channel -> DepT m () -> MidiMap m -> MidiMap m
+ Csound.Typed.GlobalState.Elements: saveNamedInstr :: Text -> InstrBody -> State NamedInstrs ()
+ Csound.Typed.GlobalState.Elements: sendChn :: Monad m => Int -> Int -> [E] -> DepT m ()
+ Csound.Typed.GlobalState.Elements: sendGlobal :: Monad m => Int -> [E] -> State Globals ([E], DepT m ())
+ Csound.Typed.GlobalState.Elements: sendOut :: Monad m => Int -> [E] -> DepT m ()
+ Csound.Typed.GlobalState.Elements: sfVar :: Int -> E
+ Csound.Typed.GlobalState.Elements: solinaChorusPlugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: stChorusPlugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: stereoPingPongDelayPlugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: subinstr :: Int -> InstrId -> [E] -> [E]
+ Csound.Typed.GlobalState.Elements: subinstr_ :: Monad m => InstrId -> [E] -> DepT m ()
+ Csound.Typed.GlobalState.Elements: tabQueue2Plugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: tabQueuePlugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: tapeEchoPlugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: type Channel = Int
+ Csound.Typed.GlobalState.Elements: type GenMap = IdMap Gen
+ Csound.Typed.GlobalState.Elements: type InstrBody = E
+ Csound.Typed.GlobalState.Elements: type MacrosInits = Map Text MacrosInit
+ Csound.Typed.GlobalState.Elements: type MidiMap m = Map MidiKey (DepT m ())
+ Csound.Typed.GlobalState.Elements: type SfMap = IdMap SfSpec
+ Csound.Typed.GlobalState.Elements: type StringMap = IdMap Text
+ Csound.Typed.GlobalState.Elements: type WriteGenMap = [(Int, Gen)]
+ Csound.Typed.GlobalState.Elements: writeChn :: Monad m => ChnRef -> [E] -> DepT m ()
+ Csound.Typed.GlobalState.Elements: zdfPlugin :: UdoPlugin
+ Csound.Typed.GlobalState.Elements: zeroDelayConvolutionPlugin :: UdoPlugin
+ Csound.Typed.GlobalState.GE: ArrowDown :: Key
+ Csound.Typed.GlobalState.GE: ArrowLeft :: Key
+ Csound.Typed.GlobalState.GE: ArrowRight :: Key
+ Csound.Typed.GlobalState.GE: ArrowUp :: Key
+ Csound.Typed.GlobalState.GE: Backspace :: Key
+ Csound.Typed.GlobalState.GE: CapsLook :: Key
+ Csound.Typed.GlobalState.GE: CharKey :: Char -> Key
+ Csound.Typed.GlobalState.GE: Delete :: Key
+ Csound.Typed.GlobalState.GE: End :: Key
+ Csound.Typed.GlobalState.GE: Enter :: Key
+ Csound.Typed.GlobalState.GE: ExpDur :: E -> TotalDur
+ Csound.Typed.GlobalState.GE: F1 :: Key
+ Csound.Typed.GlobalState.GE: F10 :: Key
+ Csound.Typed.GlobalState.GE: F11 :: Key
+ Csound.Typed.GlobalState.GE: F12 :: Key
+ Csound.Typed.GlobalState.GE: F2 :: Key
+ Csound.Typed.GlobalState.GE: F3 :: Key
+ Csound.Typed.GlobalState.GE: F4 :: Key
+ Csound.Typed.GlobalState.GE: F5 :: Key
+ Csound.Typed.GlobalState.GE: F6 :: Key
+ Csound.Typed.GlobalState.GE: F7 :: Key
+ Csound.Typed.GlobalState.GE: F8 :: Key
+ Csound.Typed.GlobalState.GE: F9 :: Key
+ Csound.Typed.GlobalState.GE: Guis :: Int -> DepT GE () -> [GuiNode] -> [Panel] -> KeyCodeMap -> Guis
+ Csound.Typed.GlobalState.GE: History :: !GenMap -> !WriteGenMap -> !Int -> !StringMap -> !SfMap -> !MidiMap GE -> !Globals -> !Instrs -> ![UdoPlugin] -> !NamedInstrs -> ![MidiAssign] -> ![MidiCtrl] -> !Maybe TotalDur -> ![InstrId] -> ![(InstrId, CsdEvent)] -> !Dep () -> !BandLimitedMap -> !Cache GE -> !Guis -> !OscListenPorts -> !Maybe Lang -> !MacrosInits -> History
+ Csound.Typed.GlobalState.GE: Home :: Key
+ Csound.Typed.GlobalState.GE: InfiniteDur :: TotalDur
+ Csound.Typed.GlobalState.GE: Insert :: Key
+ Csound.Typed.GlobalState.GE: LeftAlt :: Key
+ Csound.Typed.GlobalState.GE: LeftCtrl :: Key
+ Csound.Typed.GlobalState.GE: LeftShift :: Key
+ Csound.Typed.GlobalState.GE: LeftWinKey :: Key
+ Csound.Typed.GlobalState.GE: MacrosInitDouble :: Text -> Double -> MacrosInit
+ Csound.Typed.GlobalState.GE: MacrosInitInt :: Text -> Int -> MacrosInit
+ Csound.Typed.GlobalState.GE: MacrosInitString :: Text -> Text -> MacrosInit
+ Csound.Typed.GlobalState.GE: MidiAssign :: MidiType -> Channel -> InstrId -> MidiAssign
+ Csound.Typed.GlobalState.GE: MidiCtrl :: E -> E -> E -> MidiCtrl
+ Csound.Typed.GlobalState.GE: Msg :: Msg
+ Csound.Typed.GlobalState.GE: Num0 :: Key
+ Csound.Typed.GlobalState.GE: Num1 :: Key
+ Csound.Typed.GlobalState.GE: Num2 :: Key
+ Csound.Typed.GlobalState.GE: Num3 :: Key
+ Csound.Typed.GlobalState.GE: Num4 :: Key
+ Csound.Typed.GlobalState.GE: Num5 :: Key
+ Csound.Typed.GlobalState.GE: Num6 :: Key
+ Csound.Typed.GlobalState.GE: Num7 :: Key
+ Csound.Typed.GlobalState.GE: Num8 :: Key
+ Csound.Typed.GlobalState.GE: Num9 :: Key
+ Csound.Typed.GlobalState.GE: NumArrowDown :: Key
+ Csound.Typed.GlobalState.GE: NumArrowLeft :: Key
+ Csound.Typed.GlobalState.GE: NumArrowRight :: Key
+ Csound.Typed.GlobalState.GE: NumArrowUp :: Key
+ Csound.Typed.GlobalState.GE: NumDel :: Key
+ Csound.Typed.GlobalState.GE: NumDiv :: Key
+ Csound.Typed.GlobalState.GE: NumDot :: Key
+ Csound.Typed.GlobalState.GE: NumEnd :: Key
+ Csound.Typed.GlobalState.GE: NumEnter :: Key
+ Csound.Typed.GlobalState.GE: NumHome :: Key
+ Csound.Typed.GlobalState.GE: NumIns :: Key
+ Csound.Typed.GlobalState.GE: NumLock :: Key
+ Csound.Typed.GlobalState.GE: NumMul :: Key
+ Csound.Typed.GlobalState.GE: NumPgDown :: Key
+ Csound.Typed.GlobalState.GE: NumPgUp :: Key
+ Csound.Typed.GlobalState.GE: NumPlus :: Key
+ Csound.Typed.GlobalState.GE: NumSpace :: Key
+ Csound.Typed.GlobalState.GE: NumSub :: Key
+ Csound.Typed.GlobalState.GE: PgDown :: Key
+ Csound.Typed.GlobalState.GE: PgUp :: Key
+ Csound.Typed.GlobalState.GE: Press :: Key -> KeyEvt
+ Csound.Typed.GlobalState.GE: Release :: Key -> KeyEvt
+ Csound.Typed.GlobalState.GE: RightAlt :: Key
+ Csound.Typed.GlobalState.GE: RightCtrl :: Key
+ Csound.Typed.GlobalState.GE: RightShift :: Key
+ Csound.Typed.GlobalState.GE: RightWinKey :: Key
+ Csound.Typed.GlobalState.GE: Scroll :: Key
+ Csound.Typed.GlobalState.GE: [alwaysOnInstrs] :: History -> ![InstrId]
+ Csound.Typed.GlobalState.GE: [bandLimitedMap] :: History -> !BandLimitedMap
+ Csound.Typed.GlobalState.GE: [cabbageGui] :: History -> !Maybe Lang
+ Csound.Typed.GlobalState.GE: [cache] :: History -> !Cache GE
+ Csound.Typed.GlobalState.GE: [genMap] :: History -> !GenMap
+ Csound.Typed.GlobalState.GE: [globalGenCounter] :: History -> !Int
+ Csound.Typed.GlobalState.GE: [globals] :: History -> !Globals
+ Csound.Typed.GlobalState.GE: [guiKeyEvents] :: Guis -> KeyCodeMap
+ Csound.Typed.GlobalState.GE: [guiStateInstr] :: Guis -> DepT GE ()
+ Csound.Typed.GlobalState.GE: [guiStateNewId] :: Guis -> Int
+ Csound.Typed.GlobalState.GE: [guiStateRoots] :: Guis -> [Panel]
+ Csound.Typed.GlobalState.GE: [guiStateToDraw] :: Guis -> [GuiNode]
+ Csound.Typed.GlobalState.GE: [guis] :: History -> !Guis
+ Csound.Typed.GlobalState.GE: [instrs] :: History -> !Instrs
+ Csound.Typed.GlobalState.GE: [macrosInitName] :: MacrosInit -> Text
+ Csound.Typed.GlobalState.GE: [macrosInitValueDouble] :: MacrosInit -> Double
+ Csound.Typed.GlobalState.GE: [macrosInitValueInt] :: MacrosInit -> Int
+ Csound.Typed.GlobalState.GE: [macrosInitValueString] :: MacrosInit -> Text
+ Csound.Typed.GlobalState.GE: [macrosInits] :: History -> !MacrosInits
+ Csound.Typed.GlobalState.GE: [midiCtrls] :: History -> ![MidiCtrl]
+ Csound.Typed.GlobalState.GE: [midiMap] :: History -> !MidiMap GE
+ Csound.Typed.GlobalState.GE: [midis] :: History -> ![MidiAssign]
+ Csound.Typed.GlobalState.GE: [namedInstrs] :: History -> !NamedInstrs
+ Csound.Typed.GlobalState.GE: [notes] :: History -> ![(InstrId, CsdEvent)]
+ Csound.Typed.GlobalState.GE: [oscListenPorts] :: History -> !OscListenPorts
+ Csound.Typed.GlobalState.GE: [sfMap] :: History -> !SfMap
+ Csound.Typed.GlobalState.GE: [stringMap] :: History -> !StringMap
+ Csound.Typed.GlobalState.GE: [totalDur] :: History -> !Maybe TotalDur
+ Csound.Typed.GlobalState.GE: [udoPlugins] :: History -> ![UdoPlugin]
+ Csound.Typed.GlobalState.GE: [userInstr0] :: History -> !Dep ()
+ Csound.Typed.GlobalState.GE: [writeGenMap] :: History -> !WriteGenMap
+ Csound.Typed.GlobalState.GE: addNote :: InstrId -> CsdEvent -> GE ()
+ Csound.Typed.GlobalState.GE: addUdoPlugin :: UdoPlugin -> GE ()
+ Csound.Typed.GlobalState.GE: appendToGui :: GuiNode -> DepT GE () -> GE ()
+ Csound.Typed.GlobalState.GE: bpmVar :: Var
+ Csound.Typed.GlobalState.GE: cabbage :: Cab -> GE ()
+ Csound.Typed.GlobalState.GE: data GE a
+ Csound.Typed.GlobalState.GE: data () => GenId
+ Csound.Typed.GlobalState.GE: data Guis
+ Csound.Typed.GlobalState.GE: data History
+ Csound.Typed.GlobalState.GE: data Key
+ Csound.Typed.GlobalState.GE: data KeyEvt
+ Csound.Typed.GlobalState.GE: data MacrosInit
+ Csound.Typed.GlobalState.GE: data MidiAssign
+ Csound.Typed.GlobalState.GE: data MidiCtrl
+ Csound.Typed.GlobalState.GE: data Msg
+ Csound.Typed.GlobalState.GE: data TotalDur
+ Csound.Typed.GlobalState.GE: evalGE :: Options -> GE a -> IO a
+ Csound.Typed.GlobalState.GE: execGE :: Options -> GE a -> IO History
+ Csound.Typed.GlobalState.GE: getHistory :: GE History
+ Csound.Typed.GlobalState.GE: getKeyEventListener :: GE (Maybe Instr)
+ Csound.Typed.GlobalState.GE: getNextGlobalGenId :: GE Int
+ Csound.Typed.GlobalState.GE: getOptions :: GE Options
+ Csound.Typed.GlobalState.GE: getOscPortHandle :: Int -> GE E
+ Csound.Typed.GlobalState.GE: getPanels :: History -> [Panel]
+ Csound.Typed.GlobalState.GE: getSysExpr :: InstrId -> GE (Dep ())
+ Csound.Typed.GlobalState.GE: getTotalDurForTerminator :: GE E
+ Csound.Typed.GlobalState.GE: guiHandleToVar :: GuiHandle -> Var
+ Csound.Typed.GlobalState.GE: guiInstrExp :: GE (DepT GE ())
+ Csound.Typed.GlobalState.GE: instance Control.Monad.IO.Class.MonadIO Csound.Typed.GlobalState.GE.GE
+ Csound.Typed.GlobalState.GE: instance Data.Default.Class.Default Csound.Typed.GlobalState.GE.Guis
+ Csound.Typed.GlobalState.GE: instance Data.Default.Class.Default Csound.Typed.GlobalState.GE.History
+ Csound.Typed.GlobalState.GE: instance GHC.Base.Applicative Csound.Typed.GlobalState.GE.GE
+ Csound.Typed.GlobalState.GE: instance GHC.Base.Functor Csound.Typed.GlobalState.GE.GE
+ Csound.Typed.GlobalState.GE: instance GHC.Base.Monad Csound.Typed.GlobalState.GE.GE
+ Csound.Typed.GlobalState.GE: instance GHC.Classes.Eq Csound.Typed.GlobalState.GE.Key
+ Csound.Typed.GlobalState.GE: instance GHC.Classes.Eq Csound.Typed.GlobalState.GE.KeyEvt
+ Csound.Typed.GlobalState.GE: instance GHC.Show.Show Csound.Typed.GlobalState.GE.Key
+ Csound.Typed.GlobalState.GE: instance GHC.Show.Show Csound.Typed.GlobalState.GE.KeyEvt
+ Csound.Typed.GlobalState.GE: listenKeyEvt :: KeyEvt -> GE Var
+ Csound.Typed.GlobalState.GE: newGuiHandle :: GE GuiHandle
+ Csound.Typed.GlobalState.GE: newGuiVar :: GE (Var, GuiHandle)
+ Csound.Typed.GlobalState.GE: onGlobals :: UpdField Globals a
+ Csound.Typed.GlobalState.GE: onInstr :: UpdField Instrs a
+ Csound.Typed.GlobalState.GE: pureGetTotalDurForF0 :: Maybe TotalDur -> Double
+ Csound.Typed.GlobalState.GE: putHistory :: History -> GE ()
+ Csound.Typed.GlobalState.GE: readMacrosDouble :: Text -> Double -> GE E
+ Csound.Typed.GlobalState.GE: readMacrosInt :: Text -> Int -> GE E
+ Csound.Typed.GlobalState.GE: readMacrosString :: Text -> Text -> GE E
+ Csound.Typed.GlobalState.GE: renderMidiAssign :: Monad m => MidiAssign -> DepT m ()
+ Csound.Typed.GlobalState.GE: renderMidiCtrl :: Monad m => MidiCtrl -> DepT m ()
+ Csound.Typed.GlobalState.GE: renderUdoPlugins :: History -> IO Text
+ Csound.Typed.GlobalState.GE: saveAlwaysOnInstr :: InstrId -> GE ()
+ Csound.Typed.GlobalState.GE: saveBandLimitedWave :: BandLimited -> GE BandLimitedId
+ Csound.Typed.GlobalState.GE: saveDefKeybdPanel :: GE ()
+ Csound.Typed.GlobalState.GE: saveGen :: Gen -> GE Int
+ Csound.Typed.GlobalState.GE: saveGuiRoot :: Panel -> GE ()
+ Csound.Typed.GlobalState.GE: saveMidi :: MidiAssign -> GE ()
+ Csound.Typed.GlobalState.GE: saveMidiCtrl :: MidiCtrl -> GE ()
+ Csound.Typed.GlobalState.GE: saveNamedInstr :: Text -> InstrBody -> GE ()
+ Csound.Typed.GlobalState.GE: saveSf :: SfSpec -> GE Int
+ Csound.Typed.GlobalState.GE: saveStr :: Text -> GE E
+ Csound.Typed.GlobalState.GE: saveTabs :: [Gen] -> GE E
+ Csound.Typed.GlobalState.GE: saveToMidiInstr :: MidiType -> Channel -> Dep () -> GE ()
+ Csound.Typed.GlobalState.GE: saveUserInstr0 :: Dep () -> GE ()
+ Csound.Typed.GlobalState.GE: saveWriteGen :: Gen -> GE E
+ Csound.Typed.GlobalState.GE: saveWriteTab :: Int -> GE E
+ Csound.Typed.GlobalState.GE: setDuration :: E -> GE ()
+ Csound.Typed.GlobalState.GE: setDurationForce :: E -> GE ()
+ Csound.Typed.GlobalState.GE: setDurationToInfinite :: GE ()
+ Csound.Typed.GlobalState.GE: sfTable :: History -> [(SfSpec, Int)]
+ Csound.Typed.GlobalState.GE: simpleHrtfmove :: E -> E -> E -> E -> E -> E -> GE (E, E)
+ Csound.Typed.GlobalState.GE: simpleHrtfstat :: E -> E -> E -> E -> E -> GE (E, E)
+ Csound.Typed.GlobalState.GE: type Dep a = DepT GE a
+ Csound.Typed.GlobalState.GE: type GetCache a b = a -> Cache GE -> Maybe b
+ Csound.Typed.GlobalState.GE: type SetCache a b = a -> b -> Cache GE -> Cache GE
+ Csound.Typed.GlobalState.GE: withCache :: TotalDur -> GetCache key val -> SetCache key val -> key -> GE val -> GE val
+ Csound.Typed.GlobalState.GE: withHistory :: (History -> a) -> GE a
+ Csound.Typed.GlobalState.GE: withOptions :: (Options -> a) -> GE a
+ Csound.Typed.GlobalState.Instr: Arity :: Int -> Int -> Arity
+ Csound.Typed.GlobalState.Instr: [arityIns] :: Arity -> Int
+ Csound.Typed.GlobalState.Instr: [arityOuts] :: Arity -> Int
+ Csound.Typed.GlobalState.Instr: data Arity
+ Csound.Typed.GlobalState.Instr: livenessWatch :: Arity -> SE ()
+ Csound.Typed.GlobalState.Instr: retrigWatch :: Arity -> SE ()
+ Csound.Typed.GlobalState.Instr: saveEffectInstr :: Arity -> EffExp -> GE InstrId
+ Csound.Typed.GlobalState.Instr: saveIns0 :: Int -> [Rate] -> SE [E] -> GE [E]
+ Csound.Typed.GlobalState.Instr: saveInstr :: SE () -> GE InstrId
+ Csound.Typed.GlobalState.Instr: saveMasterInstr :: Arity -> InsExp -> GE ()
+ Csound.Typed.GlobalState.Instr: saveMidiInstr :: MidiType -> Channel -> Arity -> InsExp -> GE [E]
+ Csound.Typed.GlobalState.Instr: saveMidiInstr_ :: MidiType -> Channel -> UnitExp -> GE ()
+ Csound.Typed.GlobalState.Instr: saveMidiMap :: GE ()
+ Csound.Typed.GlobalState.Instr: saveMixInstr :: Int -> CsdEventList M -> GE InstrId
+ Csound.Typed.GlobalState.Instr: saveMixInstr_ :: CsdEventList M -> GE (DepT GE ())
+ Csound.Typed.GlobalState.Instr: saveSourceInstrCached :: Arity -> InsExp -> GE InstrId
+ Csound.Typed.GlobalState.Instr: saveSourceInstrCachedWithLivenessWatch :: Arity -> InsExp -> GE InstrId
+ Csound.Typed.GlobalState.Instr: saveSourceInstrCachedWithLivenessWatchAndRetrig :: Arity -> InsExp -> GE InstrId
+ Csound.Typed.GlobalState.Instr: saveSourceInstrCachedWithLivenessWatchAndRetrigAndEvtLoop :: Arity -> InsExp -> UnitExp -> GE (InstrId, InstrId)
+ Csound.Typed.GlobalState.Instr: saveSourceInstrCachedWithLivenessWatch_ :: Arity -> UnitExp -> GE InstrId
+ Csound.Typed.GlobalState.Instr: saveSourceInstrCached_ :: UnitExp -> GE InstrId
+ Csound.Typed.GlobalState.Instr: terminatorInstr :: GE (SE ())
+ Csound.Typed.GlobalState.Instr: type EffExp = [E] -> SE [E]
+ Csound.Typed.GlobalState.Instr: type InsExp = SE [E]
+ Csound.Typed.GlobalState.Instr: type UnitExp = SE ()
+ Csound.Typed.GlobalState.InstrApi: data InstrId a
+ Csound.Typed.GlobalState.InstrApi: event :: Arg a => InstrId a -> (Sig, Sig, a) -> SE ()
+ Csound.Typed.GlobalState.InstrApi: eventi :: Arg a => InstrId a -> (D, D, a) -> SE ()
+ Csound.Typed.GlobalState.InstrApi: newInstr :: Arg a => (a -> SE ()) -> InstrId a
+ Csound.Typed.GlobalState.InstrApi: newInstrLinked :: forall a. Arg a => (a -> SE ()) -> SE (InstrId a)
+ Csound.Typed.GlobalState.InstrApi: turnoff :: SE ()
+ Csound.Typed.GlobalState.InstrApi: turnoff2 :: InstrId a -> SE ()
+ Csound.Typed.GlobalState.Opcodes: ChnRef :: E -> [E] -> ChnRef
+ Csound.Typed.GlobalState.Opcodes: Event :: E -> E -> E -> [E] -> Event
+ Csound.Typed.GlobalState.Opcodes: [chnRefId] :: ChnRef -> E
+ Csound.Typed.GlobalState.Opcodes: [chnRefNames] :: ChnRef -> [E]
+ Csound.Typed.GlobalState.Opcodes: [eventArgs] :: Event -> [E]
+ Csound.Typed.GlobalState.Opcodes: [eventDur] :: Event -> E
+ Csound.Typed.GlobalState.Opcodes: [eventInstrId] :: Event -> E
+ Csound.Typed.GlobalState.Opcodes: [eventStart] :: Event -> E
+ Csound.Typed.GlobalState.Opcodes: active :: E -> E
+ Csound.Typed.GlobalState.Opcodes: activeKr :: E -> E
+ Csound.Typed.GlobalState.Opcodes: appendChn :: E -> Event -> Event
+ Csound.Typed.GlobalState.Opcodes: autoOff :: Monad m => E -> [E] -> DepT m [E]
+ Csound.Typed.GlobalState.Opcodes: changed :: E -> E
+ Csound.Typed.GlobalState.Opcodes: chnGet :: Monad m => Rate -> E -> DepT m E
+ Csound.Typed.GlobalState.Opcodes: chnName :: Int -> E -> E
+ Csound.Typed.GlobalState.Opcodes: chnRefAlloc :: Monad m => Int -> DepT m ChnRef
+ Csound.Typed.GlobalState.Opcodes: chnRefFromParg :: Int -> Int -> ChnRef
+ Csound.Typed.GlobalState.Opcodes: chnSet :: Monad m => Rate -> E -> E -> DepT m ()
+ Csound.Typed.GlobalState.Opcodes: chnUpdateUdo :: Monad m => DepT m ()
+ Csound.Typed.GlobalState.Opcodes: chnget :: Monad m => E -> DepT m E
+ Csound.Typed.GlobalState.Opcodes: chngetK :: Monad m => E -> DepT m E
+ Csound.Typed.GlobalState.Opcodes: chnset :: Monad m => E -> E -> DepT m ()
+ Csound.Typed.GlobalState.Opcodes: chnsetK :: Monad m => E -> E -> DepT m ()
+ Csound.Typed.GlobalState.Opcodes: data ChnRef
+ Csound.Typed.GlobalState.Opcodes: data Event
+ Csound.Typed.GlobalState.Opcodes: delay1 :: E -> E
+ Csound.Typed.GlobalState.Opcodes: diff :: E -> E
+ Csound.Typed.GlobalState.Opcodes: downsamp :: E -> E
+ Csound.Typed.GlobalState.Opcodes: event :: Monad m => Event -> DepT m ()
+ Csound.Typed.GlobalState.Opcodes: event_i :: Monad m => Event -> DepT m ()
+ Csound.Typed.GlobalState.Opcodes: eventi :: Monad m => Event -> DepT m ()
+ Csound.Typed.GlobalState.Opcodes: exitnow :: Monad m => DepT m ()
+ Csound.Typed.GlobalState.Opcodes: fluidEngine :: Monad m => DepT m E
+ Csound.Typed.GlobalState.Opcodes: fluidLoad :: Monad m => String -> E -> DepT m E
+ Csound.Typed.GlobalState.Opcodes: fluidProgramSelect :: Monad m => E -> E -> Int -> Int -> DepT m E
+ Csound.Typed.GlobalState.Opcodes: freeChn :: Monad m => DepT m E
+ Csound.Typed.GlobalState.Opcodes: ftgen :: E -> Gen -> E
+ Csound.Typed.GlobalState.Opcodes: getRetrigVal :: Int -> E
+ Csound.Typed.GlobalState.Opcodes: hrtfmove :: E -> E -> E -> E -> E -> E -> E -> E -> (E, E)
+ Csound.Typed.GlobalState.Opcodes: hrtfstat :: E -> E -> E -> E -> E -> E -> E -> (E, E)
+ Csound.Typed.GlobalState.Opcodes: initSig :: E -> E
+ Csound.Typed.GlobalState.Opcodes: masterUpdateChnAlive :: Monad m => ChnRef -> E -> DepT m ()
+ Csound.Typed.GlobalState.Opcodes: masterUpdateChnRetrig :: Monad m => ChnRef -> E -> DepT m ()
+ Csound.Typed.GlobalState.Opcodes: metro :: E -> E
+ Csound.Typed.GlobalState.Opcodes: midiVolumeFactor :: E -> E
+ Csound.Typed.GlobalState.Opcodes: oscInit :: E -> E
+ Csound.Typed.GlobalState.Opcodes: oscListen :: Monad m => E -> E -> E -> [Var] -> DepT m E
+ Csound.Typed.GlobalState.Opcodes: oscSend :: Monad m => [E] -> DepT m ()
+ Csound.Typed.GlobalState.Opcodes: oscili :: E -> E -> E -> Maybe E -> E
+ Csound.Typed.GlobalState.Opcodes: oscilikt :: E -> E -> E -> Maybe E -> E
+ Csound.Typed.GlobalState.Opcodes: out :: Monad m => E -> DepT m ()
+ Csound.Typed.GlobalState.Opcodes: outs :: Monad m => [E] -> DepT m ()
+ Csound.Typed.GlobalState.Opcodes: overWriteChn :: Monad m => ChnRef -> [E] -> DepT m ()
+ Csound.Typed.GlobalState.Opcodes: port :: E -> E -> E
+ Csound.Typed.GlobalState.Opcodes: primInstrId :: InstrId -> E
+ Csound.Typed.GlobalState.Opcodes: readChn :: Monad m => ChnRef -> DepT m [E]
+ Csound.Typed.GlobalState.Opcodes: readChnEvtLoop :: Monad m => ChnRef -> DepT m E
+ Csound.Typed.GlobalState.Opcodes: safeOut :: Double -> [E] -> [E]
+ Csound.Typed.GlobalState.Opcodes: servantUpdateChnAlive :: Monad m => Int -> DepT m ()
+ Csound.Typed.GlobalState.Opcodes: servantUpdateChnEvtLoop :: Monad m => Int -> DepT m ()
+ Csound.Typed.GlobalState.Opcodes: servantUpdateChnRetrig :: Monad m => Int -> DepT m ()
+ Csound.Typed.GlobalState.Opcodes: sfSetList :: Monad m => Text -> [(Int, Int, Int)] -> DepT m ()
+ Csound.Typed.GlobalState.Opcodes: sprintf :: E -> [E] -> E
+ Csound.Typed.GlobalState.Opcodes: subinstr :: Int -> InstrId -> [E] -> [E]
+ Csound.Typed.GlobalState.Opcodes: subinstr_ :: Monad m => InstrId -> [E] -> DepT m ()
+ Csound.Typed.GlobalState.Opcodes: syncphasor :: E -> E -> Maybe E -> (E, E)
+ Csound.Typed.GlobalState.Opcodes: tableI :: E -> E -> E
+ Csound.Typed.GlobalState.Opcodes: tableK :: E -> E -> E
+ Csound.Typed.GlobalState.Opcodes: tableikt :: E -> E -> E
+ Csound.Typed.GlobalState.Opcodes: times :: Monad m => DepT m E
+ Csound.Typed.GlobalState.Opcodes: turnoff :: Monad m => DepT m ()
+ Csound.Typed.GlobalState.Opcodes: turnoff2 :: Monad m => E -> DepT m ()
+ Csound.Typed.GlobalState.Opcodes: vco2ft :: E -> E -> E
+ Csound.Typed.GlobalState.Opcodes: vco2ift :: E -> E -> E
+ Csound.Typed.GlobalState.Opcodes: vco2init :: [E] -> E
+ Csound.Typed.GlobalState.Opcodes: writeChn :: Monad m => ChnRef -> [E] -> DepT m ()
+ Csound.Typed.GlobalState.Options: Jacko :: Text -> Text -> [JackoConnect] -> [JackoConnect] -> [JackoConnect] -> [JackoConnect] -> Bool -> Bool -> Jacko
+ Csound.Typed.GlobalState.Options: Options :: Flags -> Maybe Int -> Maybe Int -> Maybe Double -> Maybe TabFi -> Maybe (Double, Double) -> Maybe Jacko -> Maybe [(Text, Text)] -> Maybe Bool -> Maybe RenderOptions -> Options
+ Csound.Typed.GlobalState.Options: TabFi :: Int -> IntMap Int -> Map Text Int -> TabFi
+ Csound.Typed.GlobalState.Options: [csdBlockSize] :: Options -> Maybe Int
+ Csound.Typed.GlobalState.Options: [csdFlags] :: Options -> Flags
+ Csound.Typed.GlobalState.Options: [csdGain] :: Options -> Maybe Double
+ Csound.Typed.GlobalState.Options: [csdJackConnect] :: Options -> Maybe [(Text, Text)]
+ Csound.Typed.GlobalState.Options: [csdJacko] :: Options -> Maybe Jacko
+ Csound.Typed.GlobalState.Options: [csdRender] :: Options -> Maybe RenderOptions
+ Csound.Typed.GlobalState.Options: [csdSampleRate] :: Options -> Maybe Int
+ Csound.Typed.GlobalState.Options: [csdScaleUI] :: Options -> Maybe (Double, Double)
+ Csound.Typed.GlobalState.Options: [csdTabFi] :: Options -> Maybe TabFi
+ Csound.Typed.GlobalState.Options: [csdTrace] :: Options -> Maybe Bool
+ Csound.Typed.GlobalState.Options: [jackoAudioIns] :: Jacko -> [JackoConnect]
+ Csound.Typed.GlobalState.Options: [jackoAudioOuts] :: Jacko -> [JackoConnect]
+ Csound.Typed.GlobalState.Options: [jackoClient] :: Jacko -> Text
+ Csound.Typed.GlobalState.Options: [jackoFreewheel] :: Jacko -> Bool
+ Csound.Typed.GlobalState.Options: [jackoInfo] :: Jacko -> Bool
+ Csound.Typed.GlobalState.Options: [jackoMidiIns] :: Jacko -> [JackoConnect]
+ Csound.Typed.GlobalState.Options: [jackoMidiOuts] :: Jacko -> [JackoConnect]
+ Csound.Typed.GlobalState.Options: [jackoServer] :: Jacko -> Text
+ Csound.Typed.GlobalState.Options: [tabFiBase] :: TabFi -> Int
+ Csound.Typed.GlobalState.Options: [tabFiGens] :: TabFi -> IntMap Int
+ Csound.Typed.GlobalState.Options: [tabNamedFiGens] :: TabFi -> Map Text Int
+ Csound.Typed.GlobalState.Options: coarseFi :: Int -> TabFi
+ Csound.Typed.GlobalState.Options: csdNeedTrace :: Options -> Bool
+ Csound.Typed.GlobalState.Options: data Jacko
+ Csound.Typed.GlobalState.Options: data Options
+ Csound.Typed.GlobalState.Options: data TabFi
+ Csound.Typed.GlobalState.Options: defBlockSize :: Options -> Int
+ Csound.Typed.GlobalState.Options: defGain :: Options -> Double
+ Csound.Typed.GlobalState.Options: defSampleRate :: Options -> Int
+ Csound.Typed.GlobalState.Options: defScaleUI :: Options -> (Double, Double)
+ Csound.Typed.GlobalState.Options: defTabFi :: Options -> TabFi
+ Csound.Typed.GlobalState.Options: fineFi :: Int -> [(Int, Int)] -> [(Text, Int)] -> TabFi
+ Csound.Typed.GlobalState.Options: idBessels :: Int
+ Csound.Typed.GlobalState.Options: idBuzzes :: Int
+ Csound.Typed.GlobalState.Options: idChebs1 :: Int
+ Csound.Typed.GlobalState.Options: idChebs2 :: Int
+ Csound.Typed.GlobalState.Options: idConsts :: Int
+ Csound.Typed.GlobalState.Options: idCubes :: Int
+ Csound.Typed.GlobalState.Options: idDoubles :: Int
+ Csound.Typed.GlobalState.Options: idExp :: Text
+ Csound.Typed.GlobalState.Options: idExps :: Int
+ Csound.Typed.GlobalState.Options: idExpsBreakPoints :: Int
+ Csound.Typed.GlobalState.Options: idFarey :: Text
+ Csound.Typed.GlobalState.Options: idLinTab :: Int
+ Csound.Typed.GlobalState.Options: idLins :: Int
+ Csound.Typed.GlobalState.Options: idLinsBreakPoints :: Int
+ Csound.Typed.GlobalState.Options: idMixOnTab :: Int
+ Csound.Typed.GlobalState.Options: idMixSines1 :: Int
+ Csound.Typed.GlobalState.Options: idMixSines2 :: Int
+ Csound.Typed.GlobalState.Options: idMixTabs :: Int
+ Csound.Typed.GlobalState.Options: idMp3s :: Int
+ Csound.Typed.GlobalState.Options: idMultichannel :: Int
+ Csound.Typed.GlobalState.Options: idNormTab :: Int
+ Csound.Typed.GlobalState.Options: idPadsynth :: Text
+ Csound.Typed.GlobalState.Options: idPartials :: Int
+ Csound.Typed.GlobalState.Options: idPolynomFuns :: Int
+ Csound.Typed.GlobalState.Options: idPolys :: Int
+ Csound.Typed.GlobalState.Options: idPvocex :: Int
+ Csound.Typed.GlobalState.Options: idRandDists :: Int
+ Csound.Typed.GlobalState.Options: idRandHist :: Int
+ Csound.Typed.GlobalState.Options: idRandPairs :: Int
+ Csound.Typed.GlobalState.Options: idRandRanges :: Int
+ Csound.Typed.GlobalState.Options: idReadNumFile :: Int
+ Csound.Typed.GlobalState.Options: idReadNumTab :: Int
+ Csound.Typed.GlobalState.Options: idReadTrajectoryFile :: Int
+ Csound.Typed.GlobalState.Options: idSines :: Int
+ Csound.Typed.GlobalState.Options: idSines2 :: Int
+ Csound.Typed.GlobalState.Options: idSines3 :: Int
+ Csound.Typed.GlobalState.Options: idSines4 :: Int
+ Csound.Typed.GlobalState.Options: idSone :: Text
+ Csound.Typed.GlobalState.Options: idSplines :: Int
+ Csound.Typed.GlobalState.Options: idStartEnds :: Int
+ Csound.Typed.GlobalState.Options: idTabHarmonics :: Int
+ Csound.Typed.GlobalState.Options: idTanh :: Text
+ Csound.Typed.GlobalState.Options: idTuning :: Int
+ Csound.Typed.GlobalState.Options: idWave :: Text
+ Csound.Typed.GlobalState.Options: idWavs :: Int
+ Csound.Typed.GlobalState.Options: idWins :: Int
+ Csound.Typed.GlobalState.Options: instance Data.Default.Class.Default Csound.Typed.GlobalState.Options.Jacko
+ Csound.Typed.GlobalState.Options: instance Data.Default.Class.Default Csound.Typed.GlobalState.Options.Options
+ Csound.Typed.GlobalState.Options: instance Data.Default.Class.Default Csound.Typed.GlobalState.Options.TabFi
+ Csound.Typed.GlobalState.Options: instance GHC.Base.Monoid Csound.Typed.GlobalState.Options.Options
+ Csound.Typed.GlobalState.Options: instance GHC.Base.Semigroup Csound.Typed.GlobalState.Options.Options
+ Csound.Typed.GlobalState.Options: instance GHC.Classes.Eq Csound.Typed.GlobalState.Options.Jacko
+ Csound.Typed.GlobalState.Options: instance GHC.Classes.Eq Csound.Typed.GlobalState.Options.Options
+ Csound.Typed.GlobalState.Options: instance GHC.Classes.Eq Csound.Typed.GlobalState.Options.TabFi
+ Csound.Typed.GlobalState.Options: instance GHC.Read.Read Csound.Typed.GlobalState.Options.Jacko
+ Csound.Typed.GlobalState.Options: instance GHC.Read.Read Csound.Typed.GlobalState.Options.Options
+ Csound.Typed.GlobalState.Options: instance GHC.Read.Read Csound.Typed.GlobalState.Options.TabFi
+ Csound.Typed.GlobalState.Options: instance GHC.Show.Show Csound.Typed.GlobalState.Options.Jacko
+ Csound.Typed.GlobalState.Options: instance GHC.Show.Show Csound.Typed.GlobalState.Options.Options
+ Csound.Typed.GlobalState.Options: instance GHC.Show.Show Csound.Typed.GlobalState.Options.TabFi
+ Csound.Typed.GlobalState.Options: renderJacko :: Jacko -> Text
+ Csound.Typed.GlobalState.Options: type JackoConnect = (Text, Text)
+ Csound.Typed.GlobalState.Port: Port :: GE E -> Port a
+ Csound.Typed.GlobalState.Port: PortCtrl :: GE E -> PortCtrl a
+ Csound.Typed.GlobalState.Port: [unPortCtrl] :: PortCtrl a -> GE E
+ Csound.Typed.GlobalState.Port: [unPort] :: Port a -> GE E
+ Csound.Typed.GlobalState.Port: class IsPort p
+ Csound.Typed.GlobalState.Port: freePort :: forall a. Sigs a => SE (Port a)
+ Csound.Typed.GlobalState.Port: freePortCtrl :: forall a. Sigs a => SE (PortCtrl a)
+ Csound.Typed.GlobalState.Port: instance Csound.Typed.GlobalState.Port.IsPort Csound.Typed.GlobalState.Port.Port
+ Csound.Typed.GlobalState.Port: instance Csound.Typed.GlobalState.Port.IsPort Csound.Typed.GlobalState.Port.PortCtrl
+ Csound.Typed.GlobalState.Port: instance Csound.Typed.Types.Tuple.Sigs a => Csound.Typed.Types.Tuple.Arg (Csound.Typed.GlobalState.Port.Port a)
+ Csound.Typed.GlobalState.Port: instance Csound.Typed.Types.Tuple.Sigs a => Csound.Typed.Types.Tuple.Arg (Csound.Typed.GlobalState.Port.PortCtrl a)
+ Csound.Typed.GlobalState.Port: instance Csound.Typed.Types.Tuple.Sigs a => Csound.Typed.Types.Tuple.Tuple (Csound.Typed.GlobalState.Port.Port a)
+ Csound.Typed.GlobalState.Port: instance Csound.Typed.Types.Tuple.Sigs a => Csound.Typed.Types.Tuple.Tuple (Csound.Typed.GlobalState.Port.PortCtrl a)
+ Csound.Typed.GlobalState.Port: mixPort :: Sigs a => IsPort port => port a -> a -> SE ()
+ Csound.Typed.GlobalState.Port: modifyPort :: (Sigs a, IsPort port) => port a -> (a -> a) -> SE ()
+ Csound.Typed.GlobalState.Port: newtype Port a
+ Csound.Typed.GlobalState.Port: newtype PortCtrl a
+ Csound.Typed.GlobalState.Port: readPort :: (IsPort p, Sigs a) => p a -> SE a
+ Csound.Typed.GlobalState.Port: writePort :: (IsPort p, Sigs a) => p a -> a -> SE ()
+ Csound.Typed.GlobalState.SE: LocalHistory :: !E -> !Int -> !Int -> LocalHistory
+ Csound.Typed.GlobalState.SE: SE :: Dep a -> SE a
+ Csound.Typed.GlobalState.SE: [expDependency] :: LocalHistory -> !E
+ Csound.Typed.GlobalState.SE: [newLineNum] :: LocalHistory -> !Int
+ Csound.Typed.GlobalState.SE: [newLocalVarId] :: LocalHistory -> !Int
+ Csound.Typed.GlobalState.SE: [unSE] :: SE a -> Dep a
+ Csound.Typed.GlobalState.SE: data () => LocalHistory
+ Csound.Typed.GlobalState.SE: evalSE :: SE a -> GE a
+ Csound.Typed.GlobalState.SE: execGEinSE :: SE (GE a) -> SE a
+ Csound.Typed.GlobalState.SE: execSE :: SE () -> GE InstrBody
+ Csound.Typed.GlobalState.SE: fromDep :: Dep a -> SE (GE a)
+ Csound.Typed.GlobalState.SE: fromDep_ :: Dep () -> SE ()
+ Csound.Typed.GlobalState.SE: geToSe :: GE a -> SE a
+ Csound.Typed.GlobalState.SE: hideGEinDep :: GE (Dep a) -> Dep a
+ Csound.Typed.GlobalState.SE: instance GHC.Base.Applicative Csound.Typed.GlobalState.SE.SE
+ Csound.Typed.GlobalState.SE: instance GHC.Base.Functor Csound.Typed.GlobalState.SE.SE
+ Csound.Typed.GlobalState.SE: instance GHC.Base.Monad Csound.Typed.GlobalState.SE.SE
+ Csound.Typed.GlobalState.SE: newClearableGlobalVars :: [Rate] -> GE [E] -> SE [Var]
+ Csound.Typed.GlobalState.SE: newGlobalArrVar :: Rate -> GE [E] -> SE Var
+ Csound.Typed.GlobalState.SE: newGlobalVars :: [Rate] -> GE [E] -> SE [Var]
+ Csound.Typed.GlobalState.SE: newLocalArrVar :: Rate -> GE [E] -> SE Var
+ Csound.Typed.GlobalState.SE: newLocalVar :: Rate -> GE E -> SE Var
+ Csound.Typed.GlobalState.SE: newLocalVars :: [Rate] -> GE [E] -> SE [Var]
+ Csound.Typed.GlobalState.SE: newTmpArrVar :: Rate -> SE Var
+ Csound.Typed.GlobalState.SE: newtype SE a
+ Csound.Typed.GlobalState.SE: runSE :: SE a -> GE a
+ Csound.Typed.Gui.BoxModel: Context :: ctx -> Scene ctx a -> Scene ctx a
+ Csound.Typed.Gui.BoxModel: Ctx :: !Rect -> !ctx -> !AbsScene ctx a -> AbsScene ctx a
+ Csound.Typed.Gui.BoxModel: Elem :: !Rect -> !a -> AbsScene ctx a
+ Csound.Typed.Gui.BoxModel: EmptyScene :: AbsScene ctx a
+ Csound.Typed.Gui.BoxModel: Group :: ![AbsScene ctx a] -> AbsScene ctx a
+ Csound.Typed.Gui.BoxModel: Hor :: Offset -> [Scene ctx a] -> Scene ctx a
+ Csound.Typed.Gui.BoxModel: Offset :: Int -> Int -> Offset
+ Csound.Typed.Gui.BoxModel: Prim :: a -> Scene ctx a
+ Csound.Typed.Gui.BoxModel: Rect :: !Int -> !Int -> !Int -> !Int -> Rect
+ Csound.Typed.Gui.BoxModel: Scale :: Double -> Scene ctx a -> Scene ctx a
+ Csound.Typed.Gui.BoxModel: Space :: Scene ctx a
+ Csound.Typed.Gui.BoxModel: Ver :: Offset -> [Scene ctx a] -> Scene ctx a
+ Csound.Typed.Gui.BoxModel: [height] :: Rect -> !Int
+ Csound.Typed.Gui.BoxModel: [offsetInner] :: Offset -> Int
+ Csound.Typed.Gui.BoxModel: [offsetOuter] :: Offset -> Int
+ Csound.Typed.Gui.BoxModel: [px] :: Rect -> !Int
+ Csound.Typed.Gui.BoxModel: [py] :: Rect -> !Int
+ Csound.Typed.Gui.BoxModel: [width] :: Rect -> !Int
+ Csound.Typed.Gui.BoxModel: appendContext :: Monoid ctx => ctx -> Scene ctx a -> Scene ctx a
+ Csound.Typed.Gui.BoxModel: boundingRect :: Scene ctx Rect -> Rect
+ Csound.Typed.Gui.BoxModel: cascade :: (totalCtx -> Rect -> a -> res) -> res -> ([res] -> res) -> (Rect -> ctx -> res -> res) -> (ctx -> totalCtx -> totalCtx) -> totalCtx -> AbsScene ctx a -> res
+ Csound.Typed.Gui.BoxModel: data AbsScene ctx a
+ Csound.Typed.Gui.BoxModel: data Offset
+ Csound.Typed.Gui.BoxModel: data Rect
+ Csound.Typed.Gui.BoxModel: data Scene ctx a
+ Csound.Typed.Gui.BoxModel: draw :: Rect -> Scene ctx a -> AbsScene ctx a
+ Csound.Typed.Gui.BoxModel: hor :: [Scene a b] -> Scene a b
+ Csound.Typed.Gui.BoxModel: instance (GHC.Show.Show a, GHC.Show.Show ctx) => GHC.Show.Show (Csound.Typed.Gui.BoxModel.AbsScene ctx a)
+ Csound.Typed.Gui.BoxModel: instance (GHC.Show.Show a, GHC.Show.Show ctx) => GHC.Show.Show (Csound.Typed.Gui.BoxModel.Scene ctx a)
+ Csound.Typed.Gui.BoxModel: instance Data.Default.Class.Default Csound.Typed.Gui.BoxModel.Offset
+ Csound.Typed.Gui.BoxModel: instance GHC.Base.Applicative (Csound.Typed.Gui.BoxModel.Scene ctx)
+ Csound.Typed.Gui.BoxModel: instance GHC.Base.Functor (Csound.Typed.Gui.BoxModel.Scene ctx)
+ Csound.Typed.Gui.BoxModel: instance GHC.Base.Monad (Csound.Typed.Gui.BoxModel.Scene ctx)
+ Csound.Typed.Gui.BoxModel: instance GHC.Base.Monoid (Csound.Typed.Gui.BoxModel.AbsScene ctx a)
+ Csound.Typed.Gui.BoxModel: instance GHC.Base.Semigroup (Csound.Typed.Gui.BoxModel.AbsScene ctx a)
+ Csound.Typed.Gui.BoxModel: instance GHC.Show.Show Csound.Typed.Gui.BoxModel.Interval
+ Csound.Typed.Gui.BoxModel: instance GHC.Show.Show Csound.Typed.Gui.BoxModel.Offset
+ Csound.Typed.Gui.BoxModel: instance GHC.Show.Show Csound.Typed.Gui.BoxModel.Rect
+ Csound.Typed.Gui.BoxModel: margin :: Int -> Scene a b -> Scene a b
+ Csound.Typed.Gui.BoxModel: padding :: Int -> Scene a b -> Scene a b
+ Csound.Typed.Gui.BoxModel: prim :: a -> Scene ctx a
+ Csound.Typed.Gui.BoxModel: sca :: Double -> Scene a b -> Scene a b
+ Csound.Typed.Gui.BoxModel: space :: Scene a b
+ Csound.Typed.Gui.BoxModel: ver :: [Scene a b] -> Scene a b
+ Csound.Typed.Gui.BoxModel: zeroRect :: Rect
+ Csound.Typed.Gui.Cabbage.Cabbage: Hash :: Text -> Col
+ Csound.Typed.Gui.Cabbage.Cabbage: Rgb :: Int -> Int -> Int -> Col
+ Csound.Typed.Gui.Cabbage.Cabbage: active :: Bool -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: align :: Text -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: alpha :: Float -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: backgroundcolour :: Col -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: bounds :: Int -> Int -> Int -> Int -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: button :: CabProp -> Cab
+ Csound.Typed.Gui.Cabbage.Cabbage: caption :: Text -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: channel :: Text -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: channeltype :: Text -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: checkbox :: CabProp -> Cab
+ Csound.Typed.Gui.Cabbage.Cabbage: child :: Bool -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: colour :: Col -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: colour0 :: Col -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: colour1 :: Col -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: combobox :: CabProp -> Cab
+ Csound.Typed.Gui.Cabbage.Cabbage: corners :: Float -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: csoundoutput :: CabProp -> Cab
+ Csound.Typed.Gui.Cabbage.Cabbage: data Col
+ Csound.Typed.Gui.Cabbage.Cabbage: displaytype :: Text -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: encoder :: CabProp -> Cab
+ Csound.Typed.Gui.Cabbage.Cabbage: file :: Text -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: filebutton :: CabProp -> Cab
+ Csound.Typed.Gui.Cabbage.Cabbage: fontcolour :: Col -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: fontcolour0 :: Col -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: fontcolour1 :: Col -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: fontstyle :: Text -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: form :: CabProp -> Cab
+ Csound.Typed.Gui.Cabbage.Cabbage: gentable :: CabProp -> Cab
+ Csound.Typed.Gui.Cabbage.Cabbage: groupbox :: CabProp -> Cab
+ Csound.Typed.Gui.Cabbage.Cabbage: guirefresh :: Int -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: hrange :: CabProp -> Cab
+ Csound.Typed.Gui.Cabbage.Cabbage: hslider :: CabProp -> Cab
+ Csound.Typed.Gui.Cabbage.Cabbage: identchannel :: Text -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: image :: CabProp -> Cab
+ Csound.Typed.Gui.Cabbage.Cabbage: infobutton :: CabProp -> Cab
+ Csound.Typed.Gui.Cabbage.Cabbage: instance GHC.Base.Applicative Csound.Typed.Gui.Cabbage.Cabbage.Cab'
+ Csound.Typed.Gui.Cabbage.Cabbage: instance GHC.Base.Applicative Csound.Typed.Gui.Cabbage.Cabbage.CabProp'
+ Csound.Typed.Gui.Cabbage.Cabbage: instance GHC.Base.Functor Csound.Typed.Gui.Cabbage.Cabbage.Cab'
+ Csound.Typed.Gui.Cabbage.Cabbage: instance GHC.Base.Functor Csound.Typed.Gui.Cabbage.Cabbage.CabProp'
+ Csound.Typed.Gui.Cabbage.Cabbage: instance GHC.Base.Monad Csound.Typed.Gui.Cabbage.Cabbage.Cab'
+ Csound.Typed.Gui.Cabbage.Cabbage: instance GHC.Base.Monad Csound.Typed.Gui.Cabbage.Cabbage.CabProp'
+ Csound.Typed.Gui.Cabbage.Cabbage: keyboard :: CabProp -> Cab
+ Csound.Typed.Gui.Cabbage.Cabbage: keywidth :: Int -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: label :: CabProp -> Cab
+ Csound.Typed.Gui.Cabbage.Cabbage: latched :: Bool -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: linethickness :: Float -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: max :: Float -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: middlec :: Int -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: min :: Float -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: mode :: Text -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: outlinecolour :: Col -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: plant :: Text -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: pluginid :: Text -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: populate :: Text -> Text -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: popuptext :: Text -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: range :: Float -> Float -> (Float, Float) -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: range2 :: Float -> Float -> (Float, Float) -> Maybe Float -> Maybe Float -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: rotate :: Float -> Float -> Float -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: rslider :: CabProp -> Cab
+ Csound.Typed.Gui.Cabbage.Cabbage: runCab :: Cab -> [Line]
+ Csound.Typed.Gui.Cabbage.Cabbage: scrollbars :: Bool -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: scrubberpos :: Int -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: shape :: Text -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: show :: Bool -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: signaldisplay :: CabProp -> Cab
+ Csound.Typed.Gui.Cabbage.Cabbage: size :: Int -> Int -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: sliderincr :: Float -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: soundfiler :: CabProp -> Cab
+ Csound.Typed.Gui.Cabbage.Cabbage: svgfile :: Text -> Text -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: text1 :: Text -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: text2 :: Text -> Text -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: textbox :: CabProp -> Cab
+ Csound.Typed.Gui.Cabbage.Cabbage: textbox' :: Bool -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: textcolour :: Col -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: texteditor :: CabProp -> Cab
+ Csound.Typed.Gui.Cabbage.Cabbage: trackercolour :: Col -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: trackerthickness :: Float -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: type Cab = Cab' ()
+ Csound.Typed.Gui.Cabbage.Cabbage: type CabProp = CabProp' ()
+ Csound.Typed.Gui.Cabbage.Cabbage: updaterate :: Int -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: value :: Float -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: visible :: Bool -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: vrange :: CabProp -> Cab
+ Csound.Typed.Gui.Cabbage.Cabbage: vslider :: CabProp -> Cab
+ Csound.Typed.Gui.Cabbage.Cabbage: widgetarray :: Text -> Int -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: wrap :: Bool -> CabProp
+ Csound.Typed.Gui.Cabbage.Cabbage: xypad :: CabProp -> Cab
+ Csound.Typed.Gui.Cabbage.Cabbage: zoom :: Float -> CabProp
+ Csound.Typed.Gui.Cabbage.CabbageLang: ColonArg :: Float -> Float -> Arg
+ Csound.Typed.Gui.Cabbage.CabbageLang: FloatArg :: Float -> Arg
+ Csound.Typed.Gui.Cabbage.CabbageLang: IntArg :: Int -> Arg
+ Csound.Typed.Gui.Cabbage.CabbageLang: Line :: Text -> [Property] -> Line
+ Csound.Typed.Gui.Cabbage.CabbageLang: Property :: Text -> [Arg] -> Property
+ Csound.Typed.Gui.Cabbage.CabbageLang: StringArg :: Text -> Arg
+ Csound.Typed.Gui.Cabbage.CabbageLang: [lineDef] :: Line -> Text
+ Csound.Typed.Gui.Cabbage.CabbageLang: [lineProperties] :: Line -> [Property]
+ Csound.Typed.Gui.Cabbage.CabbageLang: [propertyArgs] :: Property -> [Arg]
+ Csound.Typed.Gui.Cabbage.CabbageLang: [propertyName] :: Property -> Text
+ Csound.Typed.Gui.Cabbage.CabbageLang: data Arg
+ Csound.Typed.Gui.Cabbage.CabbageLang: data Line
+ Csound.Typed.Gui.Cabbage.CabbageLang: data Property
+ Csound.Typed.Gui.Cabbage.CabbageLang: ppCabbage :: Lang -> Doc
+ Csound.Typed.Gui.Cabbage.CabbageLang: type Lang = [Line]
+ Csound.Typed.Gui.Gui: BlackLine :: BorderType
+ Csound.Typed.Gui.Gui: Bold :: Emphasis
+ Csound.Typed.Gui.Gui: BoldItalic :: Emphasis
+ Csound.Typed.Gui.Gui: BorderBox :: BoxType
+ Csound.Typed.Gui.Gui: Box :: Text -> Elem
+ Csound.Typed.Gui.Gui: ButBank :: Int -> Int -> Elem
+ Csound.Typed.Gui.Gui: Button :: InstrId -> Elem
+ Csound.Typed.Gui.Gui: CheckButton :: ButtonType
+ Csound.Typed.Gui.Gui: Clock :: KnobType
+ Csound.Typed.Gui.Gui: Count :: ValDiap -> ValStep -> Maybe ValStep -> Elem
+ Csound.Typed.Gui.Gui: Courier :: FontType
+ Csound.Typed.Gui.Gui: DiamondDownBox :: BoxType
+ Csound.Typed.Gui.Gui: DiamondUpBox :: BoxType
+ Csound.Typed.Gui.Gui: Dingbats :: FontType
+ Csound.Typed.Gui.Gui: DownBox :: BoxType
+ Csound.Typed.Gui.Gui: DownBoxBorder :: BorderType
+ Csound.Typed.Gui.Gui: EmbossedBorder :: BorderType
+ Csound.Typed.Gui.Gui: EmbossedBox :: BoxType
+ Csound.Typed.Gui.Gui: EmbossedLabel :: LabelType
+ Csound.Typed.Gui.Gui: Engraved :: SliderType
+ Csound.Typed.Gui.Gui: EngravedBorder :: BorderType
+ Csound.Typed.Gui.Gui: EngravedBox :: BoxType
+ Csound.Typed.Gui.Gui: EngravedLabel :: LabelType
+ Csound.Typed.Gui.Gui: Exponential :: ValScaleType
+ Csound.Typed.Gui.Gui: Fill :: SliderType
+ Csound.Typed.Gui.Gui: Flat :: KnobType
+ Csound.Typed.Gui.Gui: FlatBox :: BoxType
+ Csound.Typed.Gui.Gui: Gui :: LowGui -> Gui
+ Csound.Typed.Gui.Gui: GuiHandle :: Int -> GuiHandle
+ Csound.Typed.Gui.Gui: GuiNode :: Gui -> GuiHandle -> GuiNode
+ Csound.Typed.Gui.Gui: GuiVar :: GuiHandle -> Elem
+ Csound.Typed.Gui.Gui: Helvetica :: FontType
+ Csound.Typed.Gui.Gui: Hor :: Orient
+ Csound.Typed.Gui.Gui: InitMe :: Var -> Double -> InitMe
+ Csound.Typed.Gui.Gui: Italic :: Emphasis
+ Csound.Typed.Gui.Gui: Joy :: ValSpan -> ValSpan -> Elem
+ Csound.Typed.Gui.Gui: Knob :: ValSpan -> Elem
+ Csound.Typed.Gui.Gui: LightButton :: ButtonType
+ Csound.Typed.Gui.Gui: Linear :: ValScaleType
+ Csound.Typed.Gui.Gui: Nice :: SliderType
+ Csound.Typed.Gui.Gui: NoBorder :: BorderType
+ Csound.Typed.Gui.Gui: NoDrag :: TextType
+ Csound.Typed.Gui.Gui: NoEdit :: TextType
+ Csound.Typed.Gui.Gui: NoEmphasis :: Emphasis
+ Csound.Typed.Gui.Gui: NoLabel :: LabelType
+ Csound.Typed.Gui.Gui: NoPlastic :: Material
+ Csound.Typed.Gui.Gui: NormalButton :: ButtonType
+ Csound.Typed.Gui.Gui: NormalLabel :: LabelType
+ Csound.Typed.Gui.Gui: NormalText :: TextType
+ Csound.Typed.Gui.Gui: OvalBox :: BoxType
+ Csound.Typed.Gui.Gui: OvalFlatBox :: BoxType
+ Csound.Typed.Gui.Gui: OvalShadowBox :: BoxType
+ Csound.Typed.Gui.Gui: Pie :: KnobType
+ Csound.Typed.Gui.Gui: Plastic :: Material
+ Csound.Typed.Gui.Gui: Rect :: !Int -> !Int -> !Int -> !Int -> Rect
+ Csound.Typed.Gui.Gui: Roller :: ValSpan -> ValStep -> Elem
+ Csound.Typed.Gui.Gui: RoundButton :: ButtonType
+ Csound.Typed.Gui.Gui: RoundedDownBox :: BoxType
+ Csound.Typed.Gui.Gui: RoundedFlatBox :: BoxType
+ Csound.Typed.Gui.Gui: RoundedShadowBox :: BoxType
+ Csound.Typed.Gui.Gui: RoundedUpBox :: BoxType
+ Csound.Typed.Gui.Gui: Roundedbox :: BoxType
+ Csound.Typed.Gui.Gui: Screen :: FontType
+ Csound.Typed.Gui.Gui: SetBoxType :: BoxType -> Prop
+ Csound.Typed.Gui.Gui: SetButtonType :: ButtonType -> Prop
+ Csound.Typed.Gui.Gui: SetColor1 :: Color -> Prop
+ Csound.Typed.Gui.Gui: SetColor2 :: Color -> Prop
+ Csound.Typed.Gui.Gui: SetEmphasis :: Emphasis -> Prop
+ Csound.Typed.Gui.Gui: SetFontSize :: Int -> Prop
+ Csound.Typed.Gui.Gui: SetFontType :: FontType -> Prop
+ Csound.Typed.Gui.Gui: SetKnobType :: KnobType -> Prop
+ Csound.Typed.Gui.Gui: SetLabel :: Text -> Prop
+ Csound.Typed.Gui.Gui: SetLabelType :: LabelType -> Prop
+ Csound.Typed.Gui.Gui: SetMaterial :: Material -> Prop
+ Csound.Typed.Gui.Gui: SetOrient :: Orient -> Prop
+ Csound.Typed.Gui.Gui: SetSliderType :: SliderType -> Prop
+ Csound.Typed.Gui.Gui: SetTextColor :: Color -> Prop
+ Csound.Typed.Gui.Gui: SetTextType :: TextType -> Prop
+ Csound.Typed.Gui.Gui: ShadowBox :: BoxType
+ Csound.Typed.Gui.Gui: ShadowLabel :: LabelType
+ Csound.Typed.Gui.Gui: Single :: Win -> Bool -> Panel
+ Csound.Typed.Gui.Gui: Slider :: ValSpan -> Elem
+ Csound.Typed.Gui.Gui: Symbol :: FontType
+ Csound.Typed.Gui.Gui: SymbolLabel :: LabelType
+ Csound.Typed.Gui.Gui: Tabs :: Text -> Maybe Rect -> [Win] -> Bool -> Panel
+ Csound.Typed.Gui.Gui: Text :: ValDiap -> ValStep -> Elem
+ Csound.Typed.Gui.Gui: ThinDown :: BorderType
+ Csound.Typed.Gui.Gui: ThinDownBox :: BoxType
+ Csound.Typed.Gui.Gui: ThinUp :: BorderType
+ Csound.Typed.Gui.Gui: ThinUpBox :: BoxType
+ Csound.Typed.Gui.Gui: ThreeD :: Maybe Int -> KnobType
+ Csound.Typed.Gui.Gui: Times :: FontType
+ Csound.Typed.Gui.Gui: Toggle :: Elem
+ Csound.Typed.Gui.Gui: UpBox :: BoxType
+ Csound.Typed.Gui.Gui: UpBoxBorder :: BorderType
+ Csound.Typed.Gui.Gui: ValDiap :: Double -> Double -> ValDiap
+ Csound.Typed.Gui.Gui: ValSpan :: !ValDiap -> !ValScaleType -> ValSpan
+ Csound.Typed.Gui.Gui: Value :: Elem
+ Csound.Typed.Gui.Gui: Ver :: Orient
+ Csound.Typed.Gui.Gui: Vkeybd :: Elem
+ Csound.Typed.Gui.Gui: Win :: Text -> Maybe Rect -> Gui -> Win
+ Csound.Typed.Gui.Gui: [guiNodeElem] :: GuiNode -> Gui
+ Csound.Typed.Gui.Gui: [guiNodeHandle] :: GuiNode -> GuiHandle
+ Csound.Typed.Gui.Gui: [height] :: Rect -> !Int
+ Csound.Typed.Gui.Gui: [initHandle] :: InitMe -> Var
+ Csound.Typed.Gui.Gui: [initValue] :: InitMe -> Double
+ Csound.Typed.Gui.Gui: [px] :: Rect -> !Int
+ Csound.Typed.Gui.Gui: [py] :: Rect -> !Int
+ Csound.Typed.Gui.Gui: [singleContent] :: Panel -> Win
+ Csound.Typed.Gui.Gui: [singleIsKeybdSensitive] :: Panel -> Bool
+ Csound.Typed.Gui.Gui: [tabsContent] :: Panel -> [Win]
+ Csound.Typed.Gui.Gui: [tabsIsKeybdSensitive] :: Panel -> Bool
+ Csound.Typed.Gui.Gui: [tabsRect] :: Panel -> Maybe Rect
+ Csound.Typed.Gui.Gui: [tabsTitle] :: Panel -> Text
+ Csound.Typed.Gui.Gui: [unGuiHandle] :: GuiHandle -> Int
+ Csound.Typed.Gui.Gui: [unGui] :: Gui -> LowGui
+ Csound.Typed.Gui.Gui: [valDiapMax] :: ValDiap -> Double
+ Csound.Typed.Gui.Gui: [valDiapMin] :: ValDiap -> Double
+ Csound.Typed.Gui.Gui: [valSpanDiap] :: ValSpan -> !ValDiap
+ Csound.Typed.Gui.Gui: [valSpanScale] :: ValSpan -> !ValScaleType
+ Csound.Typed.Gui.Gui: [width] :: Rect -> !Int
+ Csound.Typed.Gui.Gui: [winGui] :: Win -> Gui
+ Csound.Typed.Gui.Gui: [winRect] :: Win -> Maybe Rect
+ Csound.Typed.Gui.Gui: [winTitle] :: Win -> Text
+ Csound.Typed.Gui.Gui: bspan :: ValSpan
+ Csound.Typed.Gui.Gui: data BorderType
+ Csound.Typed.Gui.Gui: data BoxType
+ Csound.Typed.Gui.Gui: data ButtonType
+ Csound.Typed.Gui.Gui: data Elem
+ Csound.Typed.Gui.Gui: data Emphasis
+ Csound.Typed.Gui.Gui: data FontType
+ Csound.Typed.Gui.Gui: data GuiNode
+ Csound.Typed.Gui.Gui: data InitMe
+ Csound.Typed.Gui.Gui: data KnobType
+ Csound.Typed.Gui.Gui: data LabelType
+ Csound.Typed.Gui.Gui: data Material
+ Csound.Typed.Gui.Gui: data Orient
+ Csound.Typed.Gui.Gui: data Panel
+ Csound.Typed.Gui.Gui: data Prop
+ Csound.Typed.Gui.Gui: data Rect
+ Csound.Typed.Gui.Gui: data SliderType
+ Csound.Typed.Gui.Gui: data TextType
+ Csound.Typed.Gui.Gui: data ValDiap
+ Csound.Typed.Gui.Gui: data ValScaleType
+ Csound.Typed.Gui.Gui: data ValSpan
+ Csound.Typed.Gui.Gui: data Win
+ Csound.Typed.Gui.Gui: defText :: Text -> Gui
+ Csound.Typed.Gui.Gui: expSpan :: Double -> Double -> ValSpan
+ Csound.Typed.Gui.Gui: forceProps :: [Prop] -> Gui -> Gui
+ Csound.Typed.Gui.Gui: fromElem :: ElemOuts -> [InitMe] -> Elem -> Gui
+ Csound.Typed.Gui.Gui: fromGuiHandle :: GuiHandle -> Gui
+ Csound.Typed.Gui.Gui: guiMap :: [GuiNode] -> GuiMap
+ Csound.Typed.Gui.Gui: guiStmt :: Monad m => ScaleFactor -> [Panel] -> DepT m ()
+ Csound.Typed.Gui.Gui: hor :: [Gui] -> Gui
+ Csound.Typed.Gui.Gui: horSca :: [(Double, Gui)] -> Gui
+ Csound.Typed.Gui.Gui: linSpan :: Double -> Double -> ValSpan
+ Csound.Typed.Gui.Gui: mapGuiOnPanel :: (Gui -> Gui) -> Panel -> Panel
+ Csound.Typed.Gui.Gui: margin :: Int -> Gui -> Gui
+ Csound.Typed.Gui.Gui: newtype Gui
+ Csound.Typed.Gui.Gui: newtype GuiHandle
+ Csound.Typed.Gui.Gui: padding :: Int -> Gui -> Gui
+ Csound.Typed.Gui.Gui: panelIsKeybdSensitive :: Panel -> Bool
+ Csound.Typed.Gui.Gui: props :: [Prop] -> Gui -> Gui
+ Csound.Typed.Gui.Gui: resizeGui :: ScaleFactor -> Gui -> Gui
+ Csound.Typed.Gui.Gui: restoreTree :: GuiMap -> Gui -> Gui
+ Csound.Typed.Gui.Gui: sca :: Double -> Gui -> Gui
+ Csound.Typed.Gui.Gui: setBorder :: BorderType -> Gui -> Gui
+ Csound.Typed.Gui.Gui: setBoxType :: BoxType -> Gui -> Gui
+ Csound.Typed.Gui.Gui: setButtonType :: ButtonType -> Gui -> Gui
+ Csound.Typed.Gui.Gui: setColor1 :: Color -> Gui -> Gui
+ Csound.Typed.Gui.Gui: setColor2 :: Color -> Gui -> Gui
+ Csound.Typed.Gui.Gui: setColors :: Color -> Color -> Gui -> Gui
+ Csound.Typed.Gui.Gui: setEmphasis :: Emphasis -> Gui -> Gui
+ Csound.Typed.Gui.Gui: setFontSize :: Int -> Gui -> Gui
+ Csound.Typed.Gui.Gui: setFontType :: FontType -> Gui -> Gui
+ Csound.Typed.Gui.Gui: setKnobType :: KnobType -> Gui -> Gui
+ Csound.Typed.Gui.Gui: setLabel :: Text -> Gui -> Gui
+ Csound.Typed.Gui.Gui: setLabelType :: LabelType -> Gui -> Gui
+ Csound.Typed.Gui.Gui: setMaterial :: Material -> Gui -> Gui
+ Csound.Typed.Gui.Gui: setOrient :: Orient -> Gui -> Gui
+ Csound.Typed.Gui.Gui: setSliderType :: SliderType -> Gui -> Gui
+ Csound.Typed.Gui.Gui: setTextColor :: Color -> Gui -> Gui
+ Csound.Typed.Gui.Gui: setTextType :: TextType -> Gui -> Gui
+ Csound.Typed.Gui.Gui: space :: Gui
+ Csound.Typed.Gui.Gui: type Color = Colour Double
+ Csound.Typed.Gui.Gui: type ScaleFactor = (Double, Double)
+ Csound.Typed.Gui.Gui: type ValStep = Double
+ Csound.Typed.Gui.Gui: uspan :: ValSpan
+ Csound.Typed.Gui.Gui: uspanExp :: ValSpan
+ Csound.Typed.Gui.Gui: ver :: [Gui] -> Gui
+ Csound.Typed.Gui.Gui: verSca :: [(Double, Gui)] -> Gui
+ Csound.Typed.Gui.Pretty: appMaterial :: PropCtx -> Int -> Int
+ Csound.Typed.Gui.Pretty: genGetColor :: Color -> (PropCtx -> Maybe Color) -> PropCtx -> Doc
+ Csound.Typed.Gui.Pretty: getBoxType :: PropCtx -> Doc
+ Csound.Typed.Gui.Pretty: getButtonBankType :: PropCtx -> Doc
+ Csound.Typed.Gui.Pretty: getButtonType :: PropCtx -> Doc
+ Csound.Typed.Gui.Pretty: getColor1 :: PropCtx -> Doc
+ Csound.Typed.Gui.Pretty: getColor2 :: PropCtx -> Doc
+ Csound.Typed.Gui.Pretty: getDefOrient :: Rect -> Orient
+ Csound.Typed.Gui.Pretty: getFontSize :: PropCtx -> Doc
+ Csound.Typed.Gui.Pretty: getFontType :: PropCtx -> Doc
+ Csound.Typed.Gui.Pretty: getIntFontSize :: PropCtx -> Int
+ Csound.Typed.Gui.Pretty: getKnobCursorSize :: PropCtx -> [Doc]
+ Csound.Typed.Gui.Pretty: getKnobType :: PropCtx -> Doc
+ Csound.Typed.Gui.Pretty: getLabelType :: PropCtx -> Doc
+ Csound.Typed.Gui.Pretty: getOrient :: Orient -> PropCtx -> Orient
+ Csound.Typed.Gui.Pretty: getRollerType :: Orient -> PropCtx -> Doc
+ Csound.Typed.Gui.Pretty: getScale :: ValScaleType -> Doc
+ Csound.Typed.Gui.Pretty: getSliderType :: Orient -> PropCtx -> Doc
+ Csound.Typed.Gui.Pretty: getTextColor :: PropCtx -> Doc
+ Csound.Typed.Gui.Pretty: getTextType :: PropCtx -> Doc
+ Csound.Typed.Gui.Pretty: getToggleType :: PropCtx -> Doc
+ Csound.Typed.Gui.Pretty: intProp :: Default a => (PropCtx -> Maybe a) -> (a -> Int) -> PropCtx -> Doc
+ Csound.Typed.Gui.Pretty: ppMoOpc :: [Doc] -> Text -> [Doc] -> Doc
+ Csound.Typed.Gui.Pretty: ppProc :: Text -> [Doc] -> Doc
+ Csound.Typed.Gui.Pretty: ppRate :: Rate -> Doc
+ Csound.Typed.Gui.Pretty: ppVar :: Var -> Doc
+ Csound.Typed.Gui.Pretty: ppVarType :: VarType -> Doc
+ Csound.Typed.Gui.Pretty: varPrefix :: VarType -> Char
+ Csound.Typed.Gui.Types: BlackLine :: BorderType
+ Csound.Typed.Gui.Types: Bold :: Emphasis
+ Csound.Typed.Gui.Types: BoldItalic :: Emphasis
+ Csound.Typed.Gui.Types: BorderBox :: BoxType
+ Csound.Typed.Gui.Types: CheckButton :: ButtonType
+ Csound.Typed.Gui.Types: Clock :: KnobType
+ Csound.Typed.Gui.Types: Courier :: FontType
+ Csound.Typed.Gui.Types: DiamondDownBox :: BoxType
+ Csound.Typed.Gui.Types: DiamondUpBox :: BoxType
+ Csound.Typed.Gui.Types: Dingbats :: FontType
+ Csound.Typed.Gui.Types: DownBox :: BoxType
+ Csound.Typed.Gui.Types: DownBoxBorder :: BorderType
+ Csound.Typed.Gui.Types: EmbossedBorder :: BorderType
+ Csound.Typed.Gui.Types: EmbossedBox :: BoxType
+ Csound.Typed.Gui.Types: EmbossedLabel :: LabelType
+ Csound.Typed.Gui.Types: Engraved :: SliderType
+ Csound.Typed.Gui.Types: EngravedBorder :: BorderType
+ Csound.Typed.Gui.Types: EngravedBox :: BoxType
+ Csound.Typed.Gui.Types: EngravedLabel :: LabelType
+ Csound.Typed.Gui.Types: Exponential :: ValScaleType
+ Csound.Typed.Gui.Types: Fill :: SliderType
+ Csound.Typed.Gui.Types: Flat :: KnobType
+ Csound.Typed.Gui.Types: FlatBox :: BoxType
+ Csound.Typed.Gui.Types: Helvetica :: FontType
+ Csound.Typed.Gui.Types: Hor :: Orient
+ Csound.Typed.Gui.Types: Italic :: Emphasis
+ Csound.Typed.Gui.Types: LightButton :: ButtonType
+ Csound.Typed.Gui.Types: Linear :: ValScaleType
+ Csound.Typed.Gui.Types: Nice :: SliderType
+ Csound.Typed.Gui.Types: NoBorder :: BorderType
+ Csound.Typed.Gui.Types: NoDrag :: TextType
+ Csound.Typed.Gui.Types: NoEdit :: TextType
+ Csound.Typed.Gui.Types: NoEmphasis :: Emphasis
+ Csound.Typed.Gui.Types: NoLabel :: LabelType
+ Csound.Typed.Gui.Types: NoPlastic :: Material
+ Csound.Typed.Gui.Types: NormalButton :: ButtonType
+ Csound.Typed.Gui.Types: NormalLabel :: LabelType
+ Csound.Typed.Gui.Types: NormalText :: TextType
+ Csound.Typed.Gui.Types: OvalBox :: BoxType
+ Csound.Typed.Gui.Types: OvalFlatBox :: BoxType
+ Csound.Typed.Gui.Types: OvalShadowBox :: BoxType
+ Csound.Typed.Gui.Types: Pie :: KnobType
+ Csound.Typed.Gui.Types: Plastic :: Material
+ Csound.Typed.Gui.Types: PropCtx :: Maybe Text -> Maybe Material -> Maybe LabelType -> Maybe BoxType -> Maybe Color -> Maybe Color -> Maybe Color -> Maybe Int -> Maybe FontType -> Maybe Emphasis -> Maybe Orient -> Maybe SliderType -> Maybe ButtonType -> Maybe TextType -> Maybe KnobType -> PropCtx
+ Csound.Typed.Gui.Types: Props :: Maybe BorderType -> Maybe ScaleFactor -> [Prop] -> Props
+ Csound.Typed.Gui.Types: Rect :: !Int -> !Int -> !Int -> !Int -> Rect
+ Csound.Typed.Gui.Types: RoundButton :: ButtonType
+ Csound.Typed.Gui.Types: RoundedDownBox :: BoxType
+ Csound.Typed.Gui.Types: RoundedFlatBox :: BoxType
+ Csound.Typed.Gui.Types: RoundedShadowBox :: BoxType
+ Csound.Typed.Gui.Types: RoundedUpBox :: BoxType
+ Csound.Typed.Gui.Types: Roundedbox :: BoxType
+ Csound.Typed.Gui.Types: Screen :: FontType
+ Csound.Typed.Gui.Types: SetBoxType :: BoxType -> Prop
+ Csound.Typed.Gui.Types: SetButtonType :: ButtonType -> Prop
+ Csound.Typed.Gui.Types: SetColor1 :: Color -> Prop
+ Csound.Typed.Gui.Types: SetColor2 :: Color -> Prop
+ Csound.Typed.Gui.Types: SetEmphasis :: Emphasis -> Prop
+ Csound.Typed.Gui.Types: SetFontSize :: Int -> Prop
+ Csound.Typed.Gui.Types: SetFontType :: FontType -> Prop
+ Csound.Typed.Gui.Types: SetKnobType :: KnobType -> Prop
+ Csound.Typed.Gui.Types: SetLabel :: Text -> Prop
+ Csound.Typed.Gui.Types: SetLabelType :: LabelType -> Prop
+ Csound.Typed.Gui.Types: SetMaterial :: Material -> Prop
+ Csound.Typed.Gui.Types: SetOrient :: Orient -> Prop
+ Csound.Typed.Gui.Types: SetSliderType :: SliderType -> Prop
+ Csound.Typed.Gui.Types: SetTextColor :: Color -> Prop
+ Csound.Typed.Gui.Types: SetTextType :: TextType -> Prop
+ Csound.Typed.Gui.Types: ShadowBox :: BoxType
+ Csound.Typed.Gui.Types: ShadowLabel :: LabelType
+ Csound.Typed.Gui.Types: Symbol :: FontType
+ Csound.Typed.Gui.Types: SymbolLabel :: LabelType
+ Csound.Typed.Gui.Types: ThinDown :: BorderType
+ Csound.Typed.Gui.Types: ThinDownBox :: BoxType
+ Csound.Typed.Gui.Types: ThinUp :: BorderType
+ Csound.Typed.Gui.Types: ThinUpBox :: BoxType
+ Csound.Typed.Gui.Types: ThreeD :: Maybe Int -> KnobType
+ Csound.Typed.Gui.Types: Times :: FontType
+ Csound.Typed.Gui.Types: UpBox :: BoxType
+ Csound.Typed.Gui.Types: UpBoxBorder :: BorderType
+ Csound.Typed.Gui.Types: ValDiap :: Double -> Double -> ValDiap
+ Csound.Typed.Gui.Types: ValSpan :: !ValDiap -> !ValScaleType -> ValSpan
+ Csound.Typed.Gui.Types: Ver :: Orient
+ Csound.Typed.Gui.Types: [ctxBoxType] :: PropCtx -> Maybe BoxType
+ Csound.Typed.Gui.Types: [ctxButtonType] :: PropCtx -> Maybe ButtonType
+ Csound.Typed.Gui.Types: [ctxColor1] :: PropCtx -> Maybe Color
+ Csound.Typed.Gui.Types: [ctxColor2] :: PropCtx -> Maybe Color
+ Csound.Typed.Gui.Types: [ctxEmphasis] :: PropCtx -> Maybe Emphasis
+ Csound.Typed.Gui.Types: [ctxFontSize] :: PropCtx -> Maybe Int
+ Csound.Typed.Gui.Types: [ctxFontType] :: PropCtx -> Maybe FontType
+ Csound.Typed.Gui.Types: [ctxKnobType] :: PropCtx -> Maybe KnobType
+ Csound.Typed.Gui.Types: [ctxLabelType] :: PropCtx -> Maybe LabelType
+ Csound.Typed.Gui.Types: [ctxLabel] :: PropCtx -> Maybe Text
+ Csound.Typed.Gui.Types: [ctxMaterial] :: PropCtx -> Maybe Material
+ Csound.Typed.Gui.Types: [ctxOrient] :: PropCtx -> Maybe Orient
+ Csound.Typed.Gui.Types: [ctxSliderType] :: PropCtx -> Maybe SliderType
+ Csound.Typed.Gui.Types: [ctxTextColor] :: PropCtx -> Maybe Color
+ Csound.Typed.Gui.Types: [ctxTextType] :: PropCtx -> Maybe TextType
+ Csound.Typed.Gui.Types: [height] :: Rect -> !Int
+ Csound.Typed.Gui.Types: [otherProps] :: Props -> [Prop]
+ Csound.Typed.Gui.Types: [propsBorder] :: Props -> Maybe BorderType
+ Csound.Typed.Gui.Types: [propsScaleFactor] :: Props -> Maybe ScaleFactor
+ Csound.Typed.Gui.Types: [px] :: Rect -> !Int
+ Csound.Typed.Gui.Types: [py] :: Rect -> !Int
+ Csound.Typed.Gui.Types: [valDiapMax] :: ValDiap -> Double
+ Csound.Typed.Gui.Types: [valDiapMin] :: ValDiap -> Double
+ Csound.Typed.Gui.Types: [valSpanDiap] :: ValSpan -> !ValDiap
+ Csound.Typed.Gui.Types: [valSpanScale] :: ValSpan -> !ValScaleType
+ Csound.Typed.Gui.Types: [width] :: Rect -> !Int
+ Csound.Typed.Gui.Types: bspan :: ValSpan
+ Csound.Typed.Gui.Types: data BorderType
+ Csound.Typed.Gui.Types: data BoxType
+ Csound.Typed.Gui.Types: data ButtonType
+ Csound.Typed.Gui.Types: data Emphasis
+ Csound.Typed.Gui.Types: data FontType
+ Csound.Typed.Gui.Types: data KnobType
+ Csound.Typed.Gui.Types: data LabelType
+ Csound.Typed.Gui.Types: data Material
+ Csound.Typed.Gui.Types: data Orient
+ Csound.Typed.Gui.Types: data Prop
+ Csound.Typed.Gui.Types: data PropCtx
+ Csound.Typed.Gui.Types: data Props
+ Csound.Typed.Gui.Types: data Rect
+ Csound.Typed.Gui.Types: data SliderType
+ Csound.Typed.Gui.Types: data TextType
+ Csound.Typed.Gui.Types: data ValDiap
+ Csound.Typed.Gui.Types: data ValScaleType
+ Csound.Typed.Gui.Types: data ValSpan
+ Csound.Typed.Gui.Types: defFontSize :: Int
+ Csound.Typed.Gui.Types: expSpan :: Double -> Double -> ValSpan
+ Csound.Typed.Gui.Types: getLabel :: PropCtx -> Text
+ Csound.Typed.Gui.Types: instance Data.Default.Class.Default Csound.Typed.Gui.Types.BoxType
+ Csound.Typed.Gui.Types: instance Data.Default.Class.Default Csound.Typed.Gui.Types.ButtonType
+ Csound.Typed.Gui.Types: instance Data.Default.Class.Default Csound.Typed.Gui.Types.Emphasis
+ Csound.Typed.Gui.Types: instance Data.Default.Class.Default Csound.Typed.Gui.Types.FontType
+ Csound.Typed.Gui.Types: instance Data.Default.Class.Default Csound.Typed.Gui.Types.KnobType
+ Csound.Typed.Gui.Types: instance Data.Default.Class.Default Csound.Typed.Gui.Types.LabelType
+ Csound.Typed.Gui.Types: instance Data.Default.Class.Default Csound.Typed.Gui.Types.Material
+ Csound.Typed.Gui.Types: instance Data.Default.Class.Default Csound.Typed.Gui.Types.PropCtx
+ Csound.Typed.Gui.Types: instance Data.Default.Class.Default Csound.Typed.Gui.Types.Props
+ Csound.Typed.Gui.Types: instance Data.Default.Class.Default Csound.Typed.Gui.Types.SliderType
+ Csound.Typed.Gui.Types: instance Data.Default.Class.Default Csound.Typed.Gui.Types.TextType
+ Csound.Typed.Gui.Types: instance GHC.Base.Monoid Csound.Typed.Gui.Types.Props
+ Csound.Typed.Gui.Types: instance GHC.Base.Semigroup Csound.Typed.Gui.Types.Props
+ Csound.Typed.Gui.Types: instance GHC.Enum.Enum Csound.Typed.Gui.Types.BorderType
+ Csound.Typed.Gui.Types: instance GHC.Enum.Enum Csound.Typed.Gui.Types.BoxType
+ Csound.Typed.Gui.Types: linSpan :: Double -> Double -> ValSpan
+ Csound.Typed.Gui.Types: setPropCtx :: Prop -> PropCtx -> PropCtx
+ Csound.Typed.Gui.Types: type Color = Colour Double
+ Csound.Typed.Gui.Types: type ScaleFactor = (Double, Double)
+ Csound.Typed.Gui.Types: type ValStep = Double
+ Csound.Typed.Gui.Types: uspan :: ValSpan
+ Csound.Typed.Gui.Types: uspanExp :: ValSpan
+ Csound.Typed.Gui.Widget: ArrowDown :: Key
+ Csound.Typed.Gui.Widget: ArrowLeft :: Key
+ Csound.Typed.Gui.Widget: ArrowRight :: Key
+ Csound.Typed.Gui.Widget: ArrowUp :: Key
+ Csound.Typed.Gui.Widget: Backspace :: Key
+ Csound.Typed.Gui.Widget: CapsLook :: Key
+ Csound.Typed.Gui.Widget: CharKey :: Char -> Key
+ Csound.Typed.Gui.Widget: Delete :: Key
+ Csound.Typed.Gui.Widget: End :: Key
+ Csound.Typed.Gui.Widget: Enter :: Key
+ Csound.Typed.Gui.Widget: F1 :: Key
+ Csound.Typed.Gui.Widget: F10 :: Key
+ Csound.Typed.Gui.Widget: F11 :: Key
+ Csound.Typed.Gui.Widget: F12 :: Key
+ Csound.Typed.Gui.Widget: F2 :: Key
+ Csound.Typed.Gui.Widget: F3 :: Key
+ Csound.Typed.Gui.Widget: F4 :: Key
+ Csound.Typed.Gui.Widget: F5 :: Key
+ Csound.Typed.Gui.Widget: F6 :: Key
+ Csound.Typed.Gui.Widget: F7 :: Key
+ Csound.Typed.Gui.Widget: F8 :: Key
+ Csound.Typed.Gui.Widget: F9 :: Key
+ Csound.Typed.Gui.Widget: Home :: Key
+ Csound.Typed.Gui.Widget: Insert :: Key
+ Csound.Typed.Gui.Widget: LeftAlt :: Key
+ Csound.Typed.Gui.Widget: LeftCtrl :: Key
+ Csound.Typed.Gui.Widget: LeftShift :: Key
+ Csound.Typed.Gui.Widget: LeftWinKey :: Key
+ Csound.Typed.Gui.Widget: Num0 :: Key
+ Csound.Typed.Gui.Widget: Num1 :: Key
+ Csound.Typed.Gui.Widget: Num2 :: Key
+ Csound.Typed.Gui.Widget: Num3 :: Key
+ Csound.Typed.Gui.Widget: Num4 :: Key
+ Csound.Typed.Gui.Widget: Num5 :: Key
+ Csound.Typed.Gui.Widget: Num6 :: Key
+ Csound.Typed.Gui.Widget: Num7 :: Key
+ Csound.Typed.Gui.Widget: Num8 :: Key
+ Csound.Typed.Gui.Widget: Num9 :: Key
+ Csound.Typed.Gui.Widget: NumArrowDown :: Key
+ Csound.Typed.Gui.Widget: NumArrowLeft :: Key
+ Csound.Typed.Gui.Widget: NumArrowRight :: Key
+ Csound.Typed.Gui.Widget: NumArrowUp :: Key
+ Csound.Typed.Gui.Widget: NumDel :: Key
+ Csound.Typed.Gui.Widget: NumDiv :: Key
+ Csound.Typed.Gui.Widget: NumDot :: Key
+ Csound.Typed.Gui.Widget: NumEnd :: Key
+ Csound.Typed.Gui.Widget: NumEnter :: Key
+ Csound.Typed.Gui.Widget: NumHome :: Key
+ Csound.Typed.Gui.Widget: NumIns :: Key
+ Csound.Typed.Gui.Widget: NumLock :: Key
+ Csound.Typed.Gui.Widget: NumMul :: Key
+ Csound.Typed.Gui.Widget: NumPgDown :: Key
+ Csound.Typed.Gui.Widget: NumPgUp :: Key
+ Csound.Typed.Gui.Widget: NumPlus :: Key
+ Csound.Typed.Gui.Widget: NumSpace :: Key
+ Csound.Typed.Gui.Widget: NumSub :: Key
+ Csound.Typed.Gui.Widget: PgDown :: Key
+ Csound.Typed.Gui.Widget: PgUp :: Key
+ Csound.Typed.Gui.Widget: Press :: Key -> KeyEvt
+ Csound.Typed.Gui.Widget: Release :: Key -> KeyEvt
+ Csound.Typed.Gui.Widget: RightAlt :: Key
+ Csound.Typed.Gui.Widget: RightCtrl :: Key
+ Csound.Typed.Gui.Widget: RightShift :: Key
+ Csound.Typed.Gui.Widget: RightWinKey :: Key
+ Csound.Typed.Gui.Widget: Scroll :: Key
+ Csound.Typed.Gui.Widget: box :: Text -> Display
+ Csound.Typed.Gui.Widget: butBank :: Text -> Int -> Int -> (Int, Int) -> Source (Evt (D, D))
+ Csound.Typed.Gui.Widget: butBank1 :: Text -> Int -> Int -> (Int, Int) -> Source (Evt D)
+ Csound.Typed.Gui.Widget: butBankSig :: Text -> Int -> Int -> (Int, Int) -> Source (Sig, Sig)
+ Csound.Typed.Gui.Widget: butBankSig1 :: Text -> Int -> Int -> (Int, Int) -> Source Sig
+ Csound.Typed.Gui.Widget: button :: Text -> Source (Evt Unit)
+ Csound.Typed.Gui.Widget: count :: ValDiap -> ValStep -> Maybe ValStep -> Double -> Source (Evt D)
+ Csound.Typed.Gui.Widget: countSig :: ValDiap -> ValStep -> Maybe ValStep -> Double -> Source Sig
+ Csound.Typed.Gui.Widget: data Key
+ Csound.Typed.Gui.Widget: data KeyEvt
+ Csound.Typed.Gui.Widget: display :: SE Gui -> Display
+ Csound.Typed.Gui.Widget: joy :: ValSpan -> ValSpan -> (Double, Double) -> Source (Sig, Sig)
+ Csound.Typed.Gui.Widget: keyIn :: KeyEvt -> Evt Unit
+ Csound.Typed.Gui.Widget: keyPanel :: Gui -> SE ()
+ Csound.Typed.Gui.Widget: keyPanelBy :: Text -> Maybe Rect -> Gui -> SE ()
+ Csound.Typed.Gui.Widget: keyPanels :: [Gui] -> SE ()
+ Csound.Typed.Gui.Widget: keyTabs :: [(Text, Gui)] -> SE ()
+ Csound.Typed.Gui.Widget: keyTabsBy :: Text -> Maybe Rect -> [(Text, Maybe Rect, Gui)] -> SE ()
+ Csound.Typed.Gui.Widget: knob :: Text -> ValSpan -> Double -> Source Sig
+ Csound.Typed.Gui.Widget: mapGuiSource :: (Gui -> Gui) -> Source a -> Source a
+ Csound.Typed.Gui.Widget: mapSource :: (a -> b) -> Source a -> Source b
+ Csound.Typed.Gui.Widget: meter :: Text -> ValSpan -> Double -> Sink Sig
+ Csound.Typed.Gui.Widget: mhor :: Monoid a => [Source a] -> Source a
+ Csound.Typed.Gui.Widget: msca :: Double -> Source a -> Source a
+ Csound.Typed.Gui.Widget: mver :: Monoid a => [Source a] -> Source a
+ Csound.Typed.Gui.Widget: noInner :: Inner
+ Csound.Typed.Gui.Widget: noInput :: Input ()
+ Csound.Typed.Gui.Widget: noOutput :: Output ()
+ Csound.Typed.Gui.Widget: numeric :: Text -> ValDiap -> ValStep -> Double -> Source Sig
+ Csound.Typed.Gui.Widget: panel :: Gui -> SE ()
+ Csound.Typed.Gui.Widget: panelBy :: Text -> Maybe Rect -> Gui -> SE ()
+ Csound.Typed.Gui.Widget: panels :: [Gui] -> SE ()
+ Csound.Typed.Gui.Widget: roller :: Text -> ValSpan -> ValStep -> Double -> Source Sig
+ Csound.Typed.Gui.Widget: setKnob :: Text -> ValSpan -> Double -> SinkSource Sig
+ Csound.Typed.Gui.Widget: setNumeric :: Text -> ValDiap -> ValStep -> Double -> Sink Sig
+ Csound.Typed.Gui.Widget: setSlider :: Text -> ValSpan -> Double -> SinkSource Sig
+ Csound.Typed.Gui.Widget: setTitle :: Text -> Gui -> SE Gui
+ Csound.Typed.Gui.Widget: setToggle :: Text -> Bool -> SinkSource (Evt D)
+ Csound.Typed.Gui.Widget: setToggleSig :: Text -> Bool -> SinkSource Sig
+ Csound.Typed.Gui.Widget: sink :: SE (Gui, Output a) -> Sink a
+ Csound.Typed.Gui.Widget: sinkSlice :: SinkSource a -> Sink a
+ Csound.Typed.Gui.Widget: sinkSource :: SE (Gui, Output a, Input a) -> SinkSource a
+ Csound.Typed.Gui.Widget: slider :: Text -> ValSpan -> Double -> Source Sig
+ Csound.Typed.Gui.Widget: sliderBank :: Text -> [Double] -> Source [Sig]
+ Csound.Typed.Gui.Widget: source :: SE (Gui, Input a) -> Source a
+ Csound.Typed.Gui.Widget: sourceSlice :: SinkSource a -> Source a
+ Csound.Typed.Gui.Widget: tabs :: [(Text, Gui)] -> SE ()
+ Csound.Typed.Gui.Widget: tabsBy :: Text -> Maybe Rect -> [(Text, Maybe Rect, Gui)] -> SE ()
+ Csound.Typed.Gui.Widget: toggle :: Text -> Bool -> Source (Evt D)
+ Csound.Typed.Gui.Widget: toggleSig :: Text -> Bool -> Source Sig
+ Csound.Typed.Gui.Widget: type Display = SE Gui
+ Csound.Typed.Gui.Widget: type Inner = SE ()
+ Csound.Typed.Gui.Widget: type Input a = a
+ Csound.Typed.Gui.Widget: type Output a = a -> SE ()
+ Csound.Typed.Gui.Widget: type Sink a = SE (Gui, Output a)
+ Csound.Typed.Gui.Widget: type SinkSource a = SE (Gui, Output a, Input a)
+ Csound.Typed.Gui.Widget: type Source a = SE (Gui, Input a)
+ Csound.Typed.Gui.Widget: type Widget a b = SE (Gui, Output a, Input b, Inner)
+ Csound.Typed.Gui.Widget: widget :: SE (Gui, Output a, Input b, Inner) -> Widget a b
+ Csound.Typed.InnerOpcodes: changed :: [Sig] -> Sig
+ Csound.Typed.Misc: HeadPanSpec :: D -> D -> HeadPanSpec
+ Csound.Typed.Misc: [headPanPhase] :: HeadPanSpec -> D
+ Csound.Typed.Misc: [hradPanFade] :: HeadPanSpec -> D
+ Csound.Typed.Misc: data HeadPanSpec
+ Csound.Typed.Misc: headPan :: (Sig, Sig) -> Sig -> Sig2
+ Csound.Typed.Misc: headPan' :: HeadPanSpec -> (Sig, Sig) -> Sig -> Sig2
+ Csound.Typed.Misc: instance Data.Default.Class.Default Csound.Typed.Misc.HeadPanSpec
+ Csound.Typed.Misc: staticHeadPan :: (D, D) -> Sig -> Sig2
+ Csound.Typed.Plugins.Adsr140: adsr140 :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.AmbiRow: ambiRow :: Arr1 Str -> Sig -> Sig -> D -> Sig2
+ Csound.Typed.Plugins.AmbiRow: ambiRowMp3 :: Arr1 Str -> Sig -> Sig -> D -> Sig2
+ Csound.Typed.Plugins.Audaciouseq: audaciousEq :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Diode: diode :: Sig -> Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Diode: linDiode :: Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Diode: noNormDiode :: Sig -> Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Iain: fxAnalogDelay :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Iain: fxChorus2 :: Sig -> Sig -> Sig -> Sig2 -> Sig2
+ Csound.Typed.Plugins.Iain: fxDistortion :: Sig -> Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Iain: fxEnvelopeFollower :: Sig -> Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Iain: fxFlanger :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Iain: fxFreqShifter :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Iain: fxLoFi :: Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Iain: fxMonoTrem :: Sig -> Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Iain: fxPanTrem :: Sig -> Sig -> Sig -> Sig -> Sig2 -> Sig2
+ Csound.Typed.Plugins.Iain: fxPhaser :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Iain: fxPingPong :: D -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig2 -> Sig2
+ Csound.Typed.Plugins.Iain: fxPitchShifter :: D -> Sig -> Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Iain: fxReverse :: Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Iain: fxRingModulator :: Sig -> Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Iain: pitchShifterDelay :: D -> (Sig, Sig) -> Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Korg35: korg_hp :: Sig -> Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Korg35: korg_lp :: Sig -> Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Korg35: linKorg_hp :: Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Korg35: linKorg_lp :: Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.LiveRow: liveRow :: D -> TabList -> D -> D -> Sig -> Tab -> Sig
+ Csound.Typed.Plugins.LiveRow: liveRows :: D -> TabList -> TabList -> D -> D -> Sig -> Tab -> Sig2
+ Csound.Typed.Plugins.SolinaChorus: solinaChorus :: (Sig, Sig) -> (Sig, Sig) -> Sig -> Sig
+ Csound.Typed.Plugins.SolinaChorus: testSolinaChorus :: Sig -> Sig
+ Csound.Typed.Plugins.TabQueue: tabQueue2_append :: Tab -> (D, D) -> SE ()
+ Csound.Typed.Plugins.TabQueue: tabQueue2_delete :: Tab -> D -> SE ()
+ Csound.Typed.Plugins.TabQueue: tabQueue2_hasElements :: Tab -> BoolSig
+ Csound.Typed.Plugins.TabQueue: tabQueue2_readLastElement :: Tab -> (Sig, Sig)
+ Csound.Typed.Plugins.TapeEcho: tapeEcho :: D -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.TapeEcho: tapeRead :: Sig -> Sig -> Sig -> SE Sig
+ Csound.Typed.Plugins.TapeEcho: tapeWrite :: Sig -> Sig -> Sig -> SE ()
+ Csound.Typed.Plugins.Utilities: delay1k :: Sig -> Sig
+ Csound.Typed.Plugins.Zdf: highShelf :: Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Zdf: lowShelf :: Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Zdf: peakEq :: Sig -> Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Zdf: zap1 :: Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Zdf: zbp :: Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Zdf: zbp4 :: Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Zdf: zbr :: Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Zdf: zdf1 :: Sig -> Sig -> (Sig, Sig)
+ Csound.Typed.Plugins.Zdf: zdf2 :: Sig -> Sig -> Sig -> (Sig, Sig, Sig)
+ Csound.Typed.Plugins.Zdf: zdf2_notch :: Sig -> Sig -> Sig -> (Sig, Sig, Sig, Sig)
+ Csound.Typed.Plugins.Zdf: zdf4 :: Sig -> Sig -> Sig -> (Sig, Sig, Sig, Sig, Sig, Sig)
+ Csound.Typed.Plugins.Zdf: zdf_4pole_hp :: Sig -> Sig -> Sig -> (Sig, Sig, Sig, Sig, Sig, Sig)
+ Csound.Typed.Plugins.Zdf: zhp :: Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Zdf: zhp1 :: Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Zdf: zhp4 :: Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Zdf: zladder :: Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Zdf: zlp :: Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Zdf: zlp1 :: Sig -> Sig -> Sig
+ Csound.Typed.Plugins.Zdf: zlp4 :: Sig -> Sig -> Sig -> Sig
+ Csound.Typed.Plugins.ZeroDelayConvolution: ZConvSpec :: D -> D -> D -> ZConvSpec
+ Csound.Typed.Plugins.ZeroDelayConvolution: [zconvNp] :: ZConvSpec -> D
+ Csound.Typed.Plugins.ZeroDelayConvolution: [zconvPartSize] :: ZConvSpec -> D
+ Csound.Typed.Plugins.ZeroDelayConvolution: [zconvRatio] :: ZConvSpec -> D
+ Csound.Typed.Plugins.ZeroDelayConvolution: data ZConvSpec
+ Csound.Typed.Plugins.ZeroDelayConvolution: instance Data.Default.Class.Default Csound.Typed.Plugins.ZeroDelayConvolution.ZConvSpec
+ Csound.Typed.Plugins.ZeroDelayConvolution: zconv :: Tab -> Sig -> Sig
+ Csound.Typed.Plugins.ZeroDelayConvolution: zconv' :: ZConvSpec -> Tab -> Sig -> Sig
+ Csound.Typed.Types.MixSco: Eff :: InstrId -> CsdEventList M -> Int -> M
+ Csound.Typed.Types.MixSco: MonoSnd :: InstrId -> InstrId -> CsdEventList [E] -> M
+ Csound.Typed.Types.MixSco: Snd :: InstrId -> CsdEventList [E] -> M
+ Csound.Typed.Types.MixSco: [monoSndArgs] :: M -> InstrId
+ Csound.Typed.Types.MixSco: [monoSndInstr] :: M -> InstrId
+ Csound.Typed.Types.MixSco: [monoSndNotes] :: M -> CsdEventList [E]
+ Csound.Typed.Types.MixSco: csdEventListDur :: CsdEventList a -> Sig
+ Csound.Typed.Types.MixSco: csdEventListNotes :: CsdEventList a -> [(Sig, Sig, a)]
+ Csound.Typed.Types.MixSco: data M
+ Csound.Typed.Types.MixSco: delayAndRescaleCsdEventListM :: CsdEventList M -> CsdEventList M
+ Csound.Typed.Types.MixSco: renderMixSco :: Int -> CsdEventList M -> Dep [E]
+ Csound.Typed.Types.MixSco: renderMixSco_ :: CsdEventList M -> Dep ()
+ Csound.Typed.Types.MixSco: type CsdEventList a = Track Sig a
+ Csound.Typed.Types.PureArray: data PureArr a
+ Csound.Typed.Types.PureArray: data PureArrD a
+ Csound.Typed.Types.PureArray: newPureArr :: Tuple a => [a] -> PureArr a
+ Csound.Typed.Types.PureArray: newPureArrD :: Arg a => [a] -> PureArrD a
+ Csound.Typed.Types.PureArray: readPureArr :: Tuple a => PureArr a -> Sig -> a
+ Csound.Typed.Types.PureArray: readPureArrD :: Arg a => PureArrD a -> D -> a
+ Csound.Typed.Types.SigSpace: type AtOut a b c :: Type;
+ Csound.Typed.Types.TupleHelpers: cons3 :: (a, (b, c)) -> (a, b, c)
+ Csound.Typed.Types.TupleHelpers: cons4 :: (a, (b, c, d)) -> (a, b, c, d)
+ Csound.Typed.Types.TupleHelpers: cons5 :: (a, (b, c, d, e)) -> (a, b, c, d, e)
+ Csound.Typed.Types.TupleHelpers: cons6 :: (a, (b, c, d, e, f)) -> (a, b, c, d, e, f)
+ Csound.Typed.Types.TupleHelpers: cons7 :: (a, (b, c, d, e, f, g)) -> (a, b, c, d, e, f, g)
+ Csound.Typed.Types.TupleHelpers: cons8 :: (a, (b, c, d, e, f, g, h)) -> (a, b, c, d, e, f, g, h)
+ Csound.Typed.Types.TupleHelpers: split3 :: (a, b, c) -> (a, (b, c))
+ Csound.Typed.Types.TupleHelpers: split4 :: (a, b, c, d) -> (a, (b, c, d))
+ Csound.Typed.Types.TupleHelpers: split5 :: (a, b, c, d, e) -> (a, (b, c, d, e))
+ Csound.Typed.Types.TupleHelpers: split6 :: (a, b, c, d, e, f) -> (a, (b, c, d, e, f))
+ Csound.Typed.Types.TupleHelpers: split7 :: (a, b, c, d, e, f, g) -> (a, (b, c, d, e, f, g))
+ Csound.Typed.Types.TupleHelpers: split8 :: (a, b, c, d, e, f, g, h) -> (a, (b, c, d, e, f, g, h))
+ Paths_csound_expression_typed: getBinDir :: IO FilePath
+ Paths_csound_expression_typed: getDataDir :: IO FilePath
+ Paths_csound_expression_typed: getDataFileName :: FilePath -> IO FilePath
+ Paths_csound_expression_typed: getDynLibDir :: IO FilePath
+ Paths_csound_expression_typed: getLibDir :: IO FilePath
+ Paths_csound_expression_typed: getLibexecDir :: IO FilePath
+ Paths_csound_expression_typed: getSysconfDir :: IO FilePath
+ Paths_csound_expression_typed: version :: Version
- Csound.Typed.Control: getIns :: Sigs a => SE a
+ Csound.Typed.Control: getIns :: forall a. Sigs a => SE a
- Csound.Typed.Control: instr0 :: Tuple a => SE a -> SE a
+ Csound.Typed.Control: instr0 :: forall a. Tuple a => SE a -> SE a
- Csound.Typed.Gui.Cab: Hash :: String -> Col
+ Csound.Typed.Gui.Cab: Hash :: Text -> Col
- Csound.Typed.Gui.Cab: align :: String -> CabProp
+ Csound.Typed.Gui.Cab: align :: Text -> CabProp
- Csound.Typed.Gui.Cab: caption :: String -> CabProp
+ Csound.Typed.Gui.Cab: caption :: Text -> CabProp
- Csound.Typed.Gui.Cab: channel :: String -> CabProp
+ Csound.Typed.Gui.Cab: channel :: Text -> CabProp
- Csound.Typed.Gui.Cab: channeltype :: String -> CabProp
+ Csound.Typed.Gui.Cab: channeltype :: Text -> CabProp
- Csound.Typed.Gui.Cab: displaytype :: String -> CabProp
+ Csound.Typed.Gui.Cab: displaytype :: Text -> CabProp
- Csound.Typed.Gui.Cab: file :: String -> CabProp
+ Csound.Typed.Gui.Cab: file :: Text -> CabProp
- Csound.Typed.Gui.Cab: fontstyle :: String -> CabProp
+ Csound.Typed.Gui.Cab: fontstyle :: Text -> CabProp
- Csound.Typed.Gui.Cab: identchannel :: String -> CabProp
+ Csound.Typed.Gui.Cab: identchannel :: Text -> CabProp
- Csound.Typed.Gui.Cab: mode :: String -> CabProp
+ Csound.Typed.Gui.Cab: mode :: Text -> CabProp
- Csound.Typed.Gui.Cab: plant :: String -> CabProp
+ Csound.Typed.Gui.Cab: plant :: Text -> CabProp
- Csound.Typed.Gui.Cab: pluginid :: String -> CabProp
+ Csound.Typed.Gui.Cab: pluginid :: Text -> CabProp
- Csound.Typed.Gui.Cab: populate :: String -> String -> CabProp
+ Csound.Typed.Gui.Cab: populate :: Text -> Text -> CabProp
- Csound.Typed.Gui.Cab: popuptext :: String -> CabProp
+ Csound.Typed.Gui.Cab: popuptext :: Text -> CabProp
- Csound.Typed.Gui.Cab: shape :: String -> CabProp
+ Csound.Typed.Gui.Cab: shape :: Text -> CabProp
- Csound.Typed.Gui.Cab: svgfile :: String -> String -> CabProp
+ Csound.Typed.Gui.Cab: svgfile :: Text -> Text -> CabProp
- Csound.Typed.Gui.Cab: text1 :: String -> CabProp
+ Csound.Typed.Gui.Cab: text1 :: Text -> CabProp
- Csound.Typed.Gui.Cab: text2 :: String -> String -> CabProp
+ Csound.Typed.Gui.Cab: text2 :: Text -> Text -> CabProp
- Csound.Typed.Gui.Cab: widgetarray :: String -> Int -> CabProp
+ Csound.Typed.Gui.Cab: widgetarray :: Text -> Int -> CabProp
- Csound.Typed.Types.Evt: filterAccumE :: Tuple s => s -> (a -> s -> (BoolD, b, s)) -> Evt a -> Evt b
+ Csound.Typed.Types.Evt: filterAccumE :: Tuple s => s -> (a -> s -> (BoolSig, b, s)) -> Evt a -> Evt b
- Csound.Typed.Types.Evt: filterAccumSE :: Tuple s => s -> (a -> s -> SE (BoolD, b, s)) -> Evt a -> Evt b
+ Csound.Typed.Types.Evt: filterAccumSE :: Tuple s => s -> (a -> s -> SE (BoolSig, b, s)) -> Evt a -> Evt b
- Csound.Typed.Types.Evt: filterE :: (a -> BoolD) -> Evt a -> Evt a
+ Csound.Typed.Types.Evt: filterE :: (a -> BoolSig) -> Evt a -> Evt a
- Csound.Typed.Types.Evt: filterSE :: (a -> SE BoolD) -> Evt a -> Evt a
+ Csound.Typed.Types.Evt: filterSE :: (a -> SE BoolSig) -> Evt a -> Evt a
- Csound.Typed.Types.Evt: type family Snap a :: *
+ Csound.Typed.Types.Evt: type family Snap a :: Type
- Csound.Typed.Types.Lift: fromDm :: Tuple a => Dm -> SE a
+ Csound.Typed.Types.Lift: fromDm :: forall a. Tuple a => Dm -> SE a
- Csound.Typed.Types.Lift: fromPm :: Tuple a => Pm -> a
+ Csound.Typed.Types.Lift: fromPm :: forall a. Tuple a => Pm -> a
- Csound.Typed.Types.Prim: preStringTab :: TabSize -> String -> TabArgs -> Tab
+ Csound.Typed.Types.Prim: preStringTab :: TabSize -> Text -> TabArgs -> Tab
- Csound.Typed.Types.Tuple: argArity :: Arg a => a -> Int
+ Csound.Typed.Types.Tuple: argArity :: forall a. Arg a => a -> Int
- Csound.Typed.Types.Tuple: caseArg :: (Tuple b, Arg b) => a -> [(a -> BoolD, b)] -> b -> b
+ Csound.Typed.Types.Tuple: caseArg :: (Tuple b, Arg b) => a -> [(a -> BoolSig, b)] -> b -> b
- Csound.Typed.Types.Tuple: dirtyTuple :: Tuple a => GE (MultiOut [E]) -> SE a
+ Csound.Typed.Types.Tuple: dirtyTuple :: forall a. Tuple a => GE (MultiOut [E]) -> SE a
- Csound.Typed.Types.Tuple: guardedArg :: (Tuple b, Arg b) => [(BoolD, b)] -> b -> b
+ Csound.Typed.Types.Tuple: guardedArg :: Tuple b => [(BoolSig, b)] -> b -> b
- Csound.Typed.Types.Tuple: ifArg :: (Arg a, Tuple a) => BoolD -> a -> a -> a
+ Csound.Typed.Types.Tuple: ifArg :: (Arg a, Tuple a) => BoolSig -> a -> a -> a
- Csound.Typed.Types.Tuple: multiOuts :: Tuple a => E -> a
+ Csound.Typed.Types.Tuple: multiOuts :: forall a. Tuple a => E -> a
- Csound.Typed.Types.Tuple: outArity :: Tuple a => SE a -> Int
+ Csound.Typed.Types.Tuple: outArity :: forall a. Tuple a => SE a -> Int
- Csound.Typed.Types.Tuple: pureTuple :: Tuple a => GE (MultiOut [E]) -> a
+ Csound.Typed.Types.Tuple: pureTuple :: forall a. Tuple a => GE (MultiOut [E]) -> a
- Csound.Typed.Types.Tuple: toNote :: Arg a => a -> GE [E]
+ Csound.Typed.Types.Tuple: toNote :: forall a. Arg a => a -> GE [E]
- Csound.Typed.Types.Tuple: tupleArity :: Tuple a => a -> Int
+ Csound.Typed.Types.Tuple: tupleArity :: Tuple a => Proxy a -> Int
- Csound.Typed.Types.Tuple: tupleRates :: Tuple a => a -> [Rate]
+ Csound.Typed.Types.Tuple: tupleRates :: Tuple a => Proxy a -> [Rate]

Files

csound-expression-typed.cabal view
@@ -1,6 +1,6 @@ Name:          csound-expression-typed-Version:       0.2.7-Cabal-Version: >= 1.22+Version:       0.2.7.1+Cabal-Version: 1.12 License:       BSD3 License-file:  LICENSE Author:	       Anton Kholomiov@@ -67,8 +67,9 @@ Library   Ghc-Options:    -Wall   Build-Depends:-        base >= 4.6,+        base >= 4.10,         base < 5,+        bytestring,         ghc-prim,         containers,         transformers >= 0.3,@@ -79,10 +80,11 @@         NumInstances,         filepath,         directory,-        wl-pprint >= 1.2.1,-        csound-expression-dynamic >= 0.3.8,+        wl-pprint-text >= 1.2.0,+        csound-expression-dynamic >= 0.3.9.1,         temporal-media >= 0.6.3,-        hashable+        hashable,+        text   Hs-Source-Dirs:      src/   Exposed-Modules:     Csound.Typed@@ -99,12 +101,12 @@     Csound.Typed.Types.Tuple     Csound.Typed.Types.Lift     Csound.Typed.Types.Array+    Csound.Typed.Types.PureArray     Csound.Typed.Types.MonoArg     Csound.Typed.Types.SigSpace      Csound.Typed.Plugins -  Other-Modules:     Csound.Typed.GlobalState     Csound.Typed.GlobalState.Options     Csound.Typed.GlobalState.GE@@ -163,4 +165,8 @@    Default-Language: Haskell2010   Default-extensions:+    ImportQualifiedPost     LambdaCase+    OverloadedStrings+    ScopedTypeVariables+    TypeApplications
src/Csound/Typed/Control.hs view
@@ -1,3 +1,4 @@+{-# Language ScopedTypeVariables #-} module Csound.Typed.Control (     -- * SE     module Csound.Typed.GlobalState.SE,@@ -25,12 +26,13 @@     module Csound.Typed.Control.Vco,     -- * Imperative instruments     module Csound.Typed.Control.InstrRef,-    -- * Array folding and traversals    +    -- * Array folding and traversals     module Csound.Typed.Control.ArrayTraverse,     -- * Reads global config arguments from command line     module Csound.Typed.Control.MacrosArgs ) where +import Data.Proxy import Csound.Typed.GlobalState.SE import Csound.Typed.Control.Ref @@ -49,23 +51,14 @@ import Csound.Typed.Types import Csound.Typed.GlobalState -instr0 :: Tuple a => SE a -> SE a-instr0 a = return $ toTuple $ saveIns0 ins0Arity (tupleRates $ proxy a) ins0Exp+instr0 :: forall a. Tuple a => SE a -> SE a+instr0 a = return $ toTuple $ saveIns0 ins0Arity (tupleRates (Proxy :: Proxy a)) ins0Exp     where         ins0Exp = execGEinSE $ fmap fromTuple a--        ins0Arity = tupleArity $ proxy a--        proxy :: Tuple a => SE a -> a-        proxy = const (toTuple $ return $ repeat undefined)--getIns :: Sigs a => SE a-getIns = res-    where -        res = fmap toTuple $ fromDep $ getIn (tupleArity $ proxy res) +        ins0Arity = tupleArity (Proxy :: Proxy a) -        proxy :: SE a -> a-        proxy = const undefined+getIns :: forall a. Sigs a => SE a+getIns = fmap toTuple $ fromDep $ getIn (tupleArity (Proxy :: Proxy a))  -- | Sets the global duration of the file or output signal to the given value. -- It should be used only once! The proper place is in the top-most@@ -79,4 +72,4 @@  -- | Gets new id. freshId :: SE D-freshId = SE $ fmap fromE freeChn +freshId = SE $ fmap fromE freeChn
src/Csound/Typed/Control/Api.hs view
@@ -14,6 +14,7 @@ import Csound.Typed.GlobalState import Csound.Typed.GlobalState.Opcodes(eventi, Event(..), downsamp) import Csound.Typed.InnerOpcodes+import Data.Text (Text)  import Csound.Typed.Plugins.TabQueue @@ -23,7 +24,7 @@ -- With Csound API we can send messages -- -- > i "name" time duration arg1 arg2 arg3-trigByName_ :: Arg a => String -> (a -> SE ()) -> SE ()+trigByName_ :: Arg a => Text -> (a -> SE ()) -> SE () trigByName_ name instr = geToSe $ saveNamedInstr name =<< (execSE $ instr toArg)  -- | Creates an instrument that can be triggered by name with Csound API.@@ -33,7 +34,7 @@ -- @p1@ is the name of teh instrument, @p2@ is the start time of the note, -- @p3@ is the duration of the note. Then @p4@ and @p5@ are going to be doubles and @p6@ -- is an integer that denotes a functional table.-trigByName  :: (Arg a, Sigs b) => String -> (a -> SE b) -> SE b+trigByName  :: (Arg a, Sigs b) => Text -> (a -> SE b) -> SE b trigByName name instr = do     ref <- newClearableGlobalRef 0     trigByName_ name (go ref)@@ -43,7 +44,7 @@  -- | It behaves just like the function @trigByNameMidi@. Only it doesn't produce an audio -- signal. It performs some procedure on note on and stops doing the precedure on note off.-trigByNameMidi_ :: forall a . Arg a => String -> ((D, D, a) -> SE ()) -> SE ()+trigByNameMidi_ :: forall a . Arg a => Text -> ((D, D, a) -> SE ()) -> SE () trigByNameMidi_ name instr = do     instrId <- geToSe $ saveInstr (instr toArg)     trigByName_ name (go instrId)@@ -55,10 +56,10 @@             noteFlagExpr <- toGE noteFlag             args <- fromTuple (pch, vol, other)             return $ do-                    D.when1 D.Ir (noteFlagExpr ==* 1) $ do-                        eventi (Event instrIdExpr 0 (-1) args)-                    D.when1 D.Ir (noteFlagExpr ==* 0) $ do-                        eventi (Event (negate instrIdExpr) 0 0 args)+                    D.when1 D.IfIr (noteFlagExpr ==* 1) $ do+                        D.toBlock $ eventi (Event instrIdExpr 0 (-1) args)+                    D.when1 D.IfIr (noteFlagExpr ==* 0) $ do+                        D.toBlock $ eventi (Event (negate instrIdExpr) 0 0 args)                     turnoff  -- | Creates an instrument that can be triggered by name with Csound API.@@ -87,14 +88,14 @@ -- Csound procedure invokes: -- -- > turnoff 18.pitchKey-trigByNameMidi  :: (Arg a, Sigs b) => String -> ((D, D, a) -> SE b) -> SE b+trigByNameMidi  :: (Arg a, Sigs b) => Text -> ((D, D, a) -> SE b) -> SE b trigByNameMidi name instr = do     ref <- newClearableGlobalRef 0     trigByNameMidi_ name (go ref)     readRef ref     where go ref x = mixRef ref =<< instr x -namedMonoMsg :: String -> SE MonoArg+namedMonoMsg :: Text -> SE MonoArg namedMonoMsg name = do     refPch <- newGlobalRef 0     refVol <- newGlobalRef 0@@ -118,7 +119,7 @@         onNote = tabQueue2_append         offNote tab (pch, _vol) = tabQueue2_delete tab pch -trigByNameMidiCbk :: String -> ((D, D) -> SE ())  -> ((D, D) -> SE ()) -> SE ()+trigByNameMidiCbk :: Text -> ((D, D) -> SE ())  -> ((D, D) -> SE ()) -> SE () trigByNameMidiCbk name noteOn noteOff =     trigByName_ name go     where
src/Csound/Typed/Control/ArrayTraverse.hs view
@@ -5,6 +5,7 @@     foldArr, foldRowArr, foldColumnArr, foldRowsArrD, foldColumnsArrD ) where +import Data.Proxy import Csound.Typed.Types import Csound.Typed.Control.Ref import Csound.Typed.GlobalState@@ -56,10 +57,7 @@                  fromDep_ D.whileEnd -        arity = tupleArity $ proxy array--        proxy :: Arr ix a -> ix-        proxy = const undefined+        arity = tupleArity (Proxy :: Proxy ix)          concatRefs :: [Ref b] -> Ref ix         concatRefs vs = Ref $ vs >>= \(Ref xs) -> xs
src/Csound/Typed/Control/Instr.hs view
@@ -1,3 +1,4 @@+{-# Language ScopedTypeVariables #-} -- | Converts to low-level instruments module Csound.Typed.Control.Instr(     Arity(..), InsExp, EffExp,@@ -6,19 +7,15 @@     apInstr, apInstr0 ) where +import Data.Proxy import Csound.Dynamic(InstrId(..)) import qualified Csound.Typed.GlobalState.Elements as C  import Csound.Typed.Types import Csound.Typed.GlobalState -funProxy :: (a -> f b) -> (a, b)-funProxy = const (msg, msg)-    where msg = error "I'm a Csound.Typed.Control.Instr.funProxy"--funArity :: (Tuple a, Tuple b) => (a -> SE b) -> Arity-funArity instr = Arity (tupleArity a) (tupleArity b)-    where (a, b) = funProxy instr+funArity :: forall a b. (Tuple a, Tuple b) => (a -> SE b) -> Arity+funArity _instr = Arity (tupleArity (Proxy :: Proxy a)) (tupleArity (Proxy :: Proxy b))  constArity :: (Tuple a) => SE a -> Arity constArity a = Arity 0 (outArity a)@@ -38,13 +35,12 @@ unitExp :: SE Unit -> UnitExp unitExp = execGEinSE . fmap unUnit -apInstr :: (Arg a, Sigs b) => GE InstrId -> a -> b-apInstr instrIdGE args = res-    where-        res = toTuple $ do-            instrId <- instrIdGE-            argList <- fromTuple args-            return $ C.subinstr (tupleArity res) instrId argList+apInstr :: forall a b. (Arg a, Sigs b) => GE InstrId -> a -> b+apInstr instrIdGE args =+  toTuple $ do+    instrId <- instrIdGE+    argList <- fromTuple args+    return $ C.subinstr (tupleArity (Proxy :: Proxy b)) instrId argList  apInstr0 :: (Sigs b) => GE InstrId -> b apInstr0 instrId = apInstr instrId unit
src/Csound/Typed/Control/MacrosArgs.hs view
@@ -5,12 +5,13 @@  import Csound.Typed.Types import qualified Csound.Typed.GlobalState as G(readMacrosString, readMacrosDouble, readMacrosInt)+import Data.Text (Text) -readMacrosString :: String -> String -> Str+readMacrosString :: Text -> Text -> Str readMacrosString name value = fromGE $ G.readMacrosString name value -readMacrosDouble :: String -> Double -> D+readMacrosDouble :: Text -> Double -> D readMacrosDouble name value = fromGE $ G.readMacrosDouble name value -readMacrosInt :: String -> Int -> D+readMacrosInt :: Text -> Int -> D readMacrosInt name value = fromGE $ G.readMacrosInt  name value
src/Csound/Typed/Control/Mix.hs view
@@ -13,6 +13,7 @@     Sco, CsdEventList, CsdEvent ) where +import Data.Proxy import Data.Boolean  import Control.Monad.IO.Class@@ -158,17 +159,11 @@ toEventList :: Sco (Mix a) -> GE (CsdEventList M) toEventList evts = fmap delayAndRescaleCsdEventListM $ traverse unMix $ evts -mixArity :: Sigs b => f (Mix b) -> Int-mixArity = tupleArity . proxy-    where-        proxy :: f (Mix b) -> b-        proxy = const undefined+mixArity :: forall b f. Sigs b => f (Mix b) -> Int+mixArity _ = tupleArity (Proxy :: Proxy b) -mixArityFun :: Sigs b => (a -> f (Mix b)) -> Int-mixArityFun = tupleArity . proxy-    where-        proxy :: (a -> f (Mix b)) -> b-        proxy = const undefined+mixArityFun :: forall a b f. Sigs b => (a -> f (Mix b)) -> Int+mixArityFun _ = tupleArity (Proxy :: Proxy b)  ----------------------------------------------------------- -- instances
src/Csound/Typed/Control/Ref.hs view
@@ -9,6 +9,7 @@ ) where  import Data.Boolean+import Data.Proxy  import Control.Monad import Control.Monad.Trans.Class@@ -42,19 +43,18 @@  -- | Allocates a new local (it is visible within the instrument) mutable value and initializes it with value. -- A reference can contain a tuple of variables.-newRef :: Tuple a => a -> SE (Ref a)-newRef t = fmap Ref $ newLocalVars (tupleRates t) (fromTuple t)+newRef :: forall a. Tuple a => a -> SE (Ref a)+newRef t = fmap Ref $ newLocalVars (tupleRates (Proxy :: Proxy a)) (fromTuple t)  -- | Allocates a new local (it is visible within the instrument) mutable value and initializes it with value. -- A reference can contain a tuple of variables. -- It contains control signals (k-rate) and constants for numbers (i-rates).-newCtrlRef :: Tuple a => a -> SE (Ref a)-newCtrlRef t = fmap Ref $ newLocalVars (fmap toCtrlRate $ tupleRates t) (fromTuple t)+newCtrlRef :: forall a. Tuple a => a -> SE (Ref a)+newCtrlRef t = fmap Ref $ newLocalVars (fmap toCtrlRate $ tupleRates (Proxy :: Proxy a)) (fromTuple t)  toCtrlRate :: Rate -> Rate toCtrlRate x = case x of     Ar -> Kr-    Kr -> Ir     _  -> x  concatRef :: (Tuple a, Tuple b) => Ref a -> Ref b -> Ref (a, b)@@ -85,19 +85,19 @@ -- to mutable value but a pair of reader and writer functions. sensorsSE :: Tuple a => a -> SE (SE a, a -> SE ()) sensorsSE a = do-    ref <- newRef a+    ref <- newCtrlRef a     return $ (readRef ref, writeRef ref)  -- | Allocates a new global mutable value and initializes it with value. -- A reference can contain a tuple of variables.-newGlobalRef :: Tuple a => a -> SE (Ref a)-newGlobalRef t = fmap Ref $ newGlobalVars (tupleRates t) (fromTuple t)+newGlobalRef :: forall a. Tuple a => a -> SE (Ref a)+newGlobalRef t = fmap Ref $ newGlobalVars (tupleRates (Proxy :: Proxy a)) (fromTuple t)  -- | Allocates a new global mutable value and initializes it with value. -- A reference can contain a tuple of variables. -- It contains control signals (k-rate) and constants for numbers (i-rates).-newGlobalCtrlRef :: Tuple a => a -> SE (Ref a)-newGlobalCtrlRef t = fmap Ref $ newGlobalVars (fmap toCtrlRate $ tupleRates t) (fromTuple t)+newGlobalCtrlRef :: forall a . Tuple a => a -> SE (Ref a)+newGlobalCtrlRef t = fmap Ref $ newGlobalVars (fmap toCtrlRate $ tupleRates (Proxy :: Proxy a)) (fromTuple t)  -- | An alias for the function @newRef@. It returns not the reference -- to mutable value but a pair of reader and writer functions.@@ -110,8 +110,8 @@ -- A reference can contain a tuple of variables. -- The variable is set to zero at the end of every iteration. -- It's useful for accumulation of audio values from several instruments.-newClearableGlobalRef :: Tuple a => a -> SE (Ref a)-newClearableGlobalRef t = fmap Ref $ newClearableGlobalVars (tupleRates t) (fromTuple t)+newClearableGlobalRef :: forall a . Tuple a => a -> SE (Ref a)+newClearableGlobalRef t = fmap Ref $ newClearableGlobalVars (tupleRates (Proxy :: Proxy a)) (fromTuple t)  ------------------------------------------------------------------------------- -- writable tables
src/Csound/Typed/Control/Sf2.hs view
@@ -5,6 +5,7 @@  import Data.Boolean import Data.Default+import Data.Text (Text)  import qualified Csound.Dynamic as D @@ -13,12 +14,12 @@  -- | The sf2 sound font preset. It is defined with -- file name, bank and program integers.-data Sf = Sf -    { sfName :: String+data Sf = Sf+    { sfName :: Text     , sfBank :: Int-    , sfProg :: Int } +    , sfProg :: Int }     | SfId (GE E)-    + instance Val Sf where     fromGE = SfId     toGE   = unSf@@ -28,9 +29,9 @@     SfId a -> a     Sf name bank prog -> fmap D.int $ saveSf (SfSpec name bank prog) -instance Default Sf where +instance Default Sf where     def = fromE 0  type instance BooleanOf Sf  = BoolD-instance IfB Sf where ifB = on3 ifB+instance IfB Sf where ifB = on3 (D.ifExp D.IfIr) 
src/Csound/Typed/GlobalState/Elements.hs view
@@ -49,12 +49,12 @@ ) where  import Data.List-import Data.Hashable+import Data.ByteString (ByteString)  import Control.Monad.Trans.State.Strict import Control.Monad(zipWithM_) import Data.Default-import qualified Data.Map as M+import qualified Data.Map.Strict as M import qualified Data.IntMap as IM  import Csound.Dynamic.Types hiding (genId)@@ -62,6 +62,8 @@ import Csound.Dynamic.Build.Numeric()  import Csound.Typed.GlobalState.Opcodes+import Data.Text (Text)+import Data.Text qualified as Text  -- tables of identifiers @@ -156,9 +158,9 @@  -- strings -type StringMap = IdMap String+type StringMap = IdMap Text -newString :: String -> State StringMap Prim+newString :: Text -> State StringMap Prim newString = fmap PrimInt . saveId  -- gen counter@@ -173,7 +175,7 @@     , sfVars :: [Var] }  data SfSpec = SfSpec-    { sfName    :: String+    { sfName    :: Text     , sfBank    :: Int     , sfProgram :: Int     } deriving (Eq, Ord, Show)@@ -186,22 +188,24 @@ sfVar :: Int -> E sfVar n = readOnlyVar (VarVerbatim Ir $ sfEngineName n) -sfEngineName :: Int -> String-sfEngineName n = "gi_Sf_engine_" ++ show n+sfEngineName :: Int -> Text+sfEngineName n = "gi_Sf_engine_" <> Text.pack (show n) -sfInstrName :: Int -> String-sfInstrName n = "i_Sf_instr_" ++ show n+sfInstrName :: Int -> Text+sfInstrName n = "i_Sf_instr_" <> Text.pack (show n)  renderSf :: Monad m => SfSpec -> Int -> DepT m () renderSf (SfSpec name bank prog) n = verbatim $-    engineStr ++ "\n" ++-    loadStr   ++ "\n" ++-    selectProgStr ++ "\n"+  Text.unlines+    [ engineStr+    , loadStr+    , selectProgStr+    ]     where-        engineStr = engineName ++ " fluidEngine"-        loadStr   = insName ++ " fluidLoad \"" ++ name ++ "\", " ++  engineName ++ ", 1"-        selectProgStr = "fluidProgramSelect " ++ engineName ++ ", 1, " ++ insName-            ++ ", " ++ show bank ++ ", " ++ show prog+        engineStr = engineName <> " fluidEngine"+        loadStr   = insName <> " fluidLoad \"" <> name <> "\", " <>  engineName <> ", 1"+        selectProgStr = "fluidProgramSelect " <> engineName <> ", 1, " <> insName+            <> ", " <> Text.pack (show bank) <> ", " <> Text.pack (show prog)          engineName = sfEngineName n         insName    = sfInstrName n@@ -220,7 +224,7 @@     UserBandLimitedWave   userId   -> noRate $ ReadVar $ bandLimitedVar userId  bandLimitedVar :: Show a => a -> Var-bandLimitedVar userId = Var GlobalVar Ir ("BandLim" ++ show userId)+bandLimitedVar userId = Var GlobalVar Ir ("BandLim" <> Text.pack (show userId))  data BandLimitedMap = BandLimitedMap     { simpleBandLimitedMap :: M.Map BandLimited BandLimitedId@@ -271,7 +275,7 @@             renderVcoVarAssignment genId          freeVcoVar = Var GlobalVar Ir "free_vco"-        ftVar n = Var GlobalVar Ir $ "vco_table_" ++ show n+        ftVar n = Var GlobalVar Ir $ "vco_table_" <> Text.pack (show n)          renderFtgen lastGenId (g, n) = writeVar (ftVar n) $ ftgen (int $ lastGenId + n) g @@ -343,13 +347,13 @@ bpmVar :: Var bpmVar = Var GlobalVar Kr bpmVarName -bpmVarName :: String+bpmVarName :: Text bpmVarName = "gBpmVar"  newGlobalVar :: GlobalVarType -> Rate -> E -> State Globals Var newGlobalVar ty rate initVal = state $ \s ->     let newId = globalsNewId s-        var   = Var GlobalVar rate ('g' : show newId)+        var   = Var GlobalVar rate (Text.cons 'g' (Text.pack $ show newId))         s1    = s { globalsNewId = succ newId                   , globalsVars  = AllocVar ty var initVal : globalsVars s }     in  (var, s1)@@ -363,7 +367,7 @@ newPersistentGloabalArrVar :: Rate -> [E] -> State Globals Var newPersistentGloabalArrVar rate sizes = state $ \s ->     let newId = globalsNewId s-        var   = Var GlobalVar rate ('g' : show newId)+        var   = Var GlobalVar rate (Text.cons 'g' (Text.pack $ show newId))         s1    = s { globalsNewId = succ newId                   , globalsVars  = AllocArrVar var sizes : globalsVars s }     in (var, s1)@@ -392,13 +396,13 @@ -- instrs  data Instrs = Instrs-    { instrsCache   :: IM.IntMap InstrId+    { instrsCache   :: M.Map ByteString InstrId     , instrsNewId   :: Int     , instrsContent :: [(InstrId, InstrBody)]     }  instance Default Instrs where-    def = Instrs IM.empty 18 []+    def = Instrs M.empty 18 []  getInstrIds :: Instrs -> [InstrId] getInstrIds = fmap fst . instrsContent@@ -406,58 +410,27 @@ ----------------------------------------------------------------- -- - saveInstr :: InstrBody -> State Instrs InstrId saveInstr body = state $ \s ->-    let h = hash body-    in  case IM.lookup h $ instrsCache s of+    let h = hashE body+    in  case M.lookup h $ instrsCache s of             Just  n -> (n, s)             Nothing ->                 let newId = instrsNewId s-                    s1    = s { instrsCache   = IM.insert h (intInstrId newId) $ instrsCache s+                    s1    = s { instrsCache   = M.insert h (intInstrId newId) $ instrsCache s                               , instrsNewId   = succ newId                               , instrsContent = (intInstrId newId, body) : instrsContent s }                 in  (intInstrId newId, s1) -{--saveCachedInstr :: InstrBody -> State Instrs InstrId-saveCachedInstr name body = state $ \s ->-    case IM.lookup name $ instrsCache s of-        Just n  -> (n, s)-        Nothing ->-            let newId   = instrsNewId s-                s1      = s { instrsCache   = IM.insert name (intInstrId newId) $ instrsCache s-                            , instrsNewId   = succ newId-                            , instrsContent = (intInstrId newId, body) : instrsContent s }-            in  (intInstrId newId, s1)--newInstrId :: State Instrs InstrId-newInstrId = state $ \s ->-    let newId   = instrsNewId s-        s1      = s { instrsNewId = succ newId }-    in  (intInstrId newId, s1)--saveInstrById :: InstrId -> InstrBody -> State Instrs ()-saveInstrById instrId body = state $ \s ->-    let s1 = s { instrsContent = (instrId, body) : instrsContent s }-    in  ((), s1)--saveInstr :: InstrBody -> State Instrs InstrId-saveInstr body = do-    newId <- newInstrId-    saveInstrById newId body-    return newId--}- ----------------------------------------------------------------- -- named instrs -newtype NamedInstrs = NamedInstrs { unNamedInstrs :: [(String, InstrBody)] }+newtype NamedInstrs = NamedInstrs { unNamedInstrs :: [(Text, InstrBody)] }  instance Default NamedInstrs where     def = NamedInstrs [] -saveNamedInstr :: String -> InstrBody -> State NamedInstrs ()+saveNamedInstr :: Text -> InstrBody -> State NamedInstrs () saveNamedInstr name body = state $ \(NamedInstrs xs) -> ((), NamedInstrs $ (name, body) : xs)  -----------------------------------------------------------------@@ -528,12 +501,12 @@ ---------------------------------------------------------- -- macros arguments -type MacrosInits = M.Map String MacrosInit+type MacrosInits = M.Map Text MacrosInit  data MacrosInit-    = MacrosInitDouble { macrosInitName :: String, macrosInitValueDouble :: Double }-    | MacrosInitString { macrosInitName :: String, macrosInitValueString :: String }-    | MacrosInitInt    { macrosInitName :: String, macrosInitValueInt    :: Int  }+    = MacrosInitDouble { macrosInitName :: Text, macrosInitValueDouble :: Double }+    | MacrosInitString { macrosInitName :: Text, macrosInitValueString :: Text }+    | MacrosInitInt    { macrosInitName :: Text, macrosInitValueInt    :: Int  }     deriving (Show, Eq, Ord)  initMacros :: MacrosInit -> State MacrosInits ()@@ -542,12 +515,12 @@ -------------------------------------------------------- -- Udo plugins -newtype UdoPlugin  = UdoPlugin { unUdoPlugin :: String }+newtype UdoPlugin  = UdoPlugin { unUdoPlugin :: Text }  addUdoPlugin :: UdoPlugin -> State [UdoPlugin] () addUdoPlugin a = modify (a :) -getUdoPluginNames :: [UdoPlugin] -> [String]+getUdoPluginNames :: [UdoPlugin] -> [Text] getUdoPluginNames xs = nub (fmap unUdoPlugin xs)  -- tabQueue
src/Csound/Typed/GlobalState/GE.hs view
@@ -52,6 +52,8 @@ import Control.Monad import Data.Boolean import Data.Default+import Data.Text (Text)+import Data.Text qualified as Text import qualified Data.IntMap as IM import qualified Data.Map    as M @@ -93,39 +95,39 @@     fmap f = GE . fmap f . unGE  instance Applicative GE where-    pure = return+    pure = GE . return     (<*>) = ap  instance Monad GE where-    return = GE . return     ma >>= mf = GE $ unGE ma >>= unGE . mf  instance MonadIO GE where     liftIO = GE . liftIO . liftIO  data History = History-    { genMap            :: GenMap-    , writeGenMap       :: WriteGenMap-    , globalGenCounter  :: Int-    , stringMap         :: StringMap-    , sfMap             :: SfMap-    , midiMap           :: MidiMap GE-    , globals           :: Globals-    , instrs            :: Instrs-    , udoPlugins        :: [UdoPlugin]-    , namedInstrs       :: NamedInstrs-    , midis             :: [MidiAssign]-    , midiCtrls         :: [MidiCtrl]-    , totalDur          :: Maybe TotalDur-    , alwaysOnInstrs    :: [InstrId]-    , notes             :: [(InstrId, CsdEvent)]-    , userInstr0        :: Dep ()-    , bandLimitedMap    :: BandLimitedMap-    , cache             :: Cache GE-    , guis              :: Guis-    , oscListenPorts    :: OscListenPorts-    , cabbageGui        :: Maybe Cabbage.Lang-    , macrosInits       :: MacrosInits }+    { genMap            :: !GenMap+    , writeGenMap       :: !WriteGenMap+    , globalGenCounter  :: !Int+    , stringMap         :: !StringMap+    , sfMap             :: !SfMap+    , midiMap           :: !(MidiMap GE)+    , globals           :: !Globals+    , instrs            :: !Instrs+    , udoPlugins        :: ![UdoPlugin]+    , namedInstrs       :: !NamedInstrs+    , midis             :: ![MidiAssign]+    , midiCtrls         :: ![MidiCtrl]+    , totalDur          :: !(Maybe TotalDur)+    , alwaysOnInstrs    :: ![InstrId]+    , notes             :: ![(InstrId, CsdEvent)]+    , userInstr0        :: !(Dep ())+    , bandLimitedMap    :: !BandLimitedMap+    , cache             :: !(Cache GE)+    , guis              :: !Guis+    , oscListenPorts    :: !OscListenPorts+    , cabbageGui        :: !(Maybe Cabbage.Lang)+    , macrosInits       :: !MacrosInits+    }  instance Default History where     def = History def def def def def def def def def def def def def def def (return ()) def def def def def def@@ -175,7 +177,7 @@ setDurationForce :: E -> GE () setDurationForce = setTotalDur . ExpDur -saveStr :: String -> GE E+saveStr :: Text -> GE E saveStr = fmap prim . onStringMap . newString     where onStringMap = onHistory stringMap (\val h -> h{ stringMap = val }) @@ -300,7 +302,7 @@ ---------------------------------------------------------------------- -- named instruments -saveNamedInstr :: String -> InstrBody -> GE ()+saveNamedInstr :: Text -> InstrBody -> GE () saveNamedInstr name body = onNamedInstrs $ E.saveNamedInstr name body     where onNamedInstrs = onHistory namedInstrs (\a h -> h { namedInstrs = a }) @@ -354,7 +356,7 @@     in  (GuiHandle n, h{ guis = g' })  guiHandleToVar :: GuiHandle -> Var-guiHandleToVar (GuiHandle n) = Var GlobalVar Ir ('h' : show n)+guiHandleToVar (GuiHandle n) = Var GlobalVar Ir (Text.cons 'h' $ Text.pack $ show n)  newGuiVar :: GE (Var, GuiHandle) newGuiVar = liftA2 (,) (onGlobals $ newPersistentGlobalVar Kr 0) newGuiHandle@@ -507,12 +509,12 @@ keyEventInstrBody keyMap = execDepT $ do     let keys     = flKeyIn         isChange = changed keys ==* 1-    when1 Kr isChange $ do-        whens Kr (fmap (uncurry $ listenEvt keys) events) doNothing+    when1 IfKr isChange $ do+        toBlock $ whens IfKr (fmap (uncurry $ listenEvt keys) events) (toBlock doNothing)     where         doNothing = return () -        listenEvt keySig keyCode var = (keySig ==* int keyCode, writeVar var 1)+        listenEvt keySig keyCode var = (keySig ==* int keyCode, toBlock $ writeVar var 1)          events = IM.toList keyMap @@ -569,16 +571,16 @@ ----------------------------------------------- -- read macros -readMacrosDouble :: String -> Double -> GE E+readMacrosDouble :: Text -> Double -> GE E readMacrosDouble = readMacrosBy D.readMacrosDouble MacrosInitDouble -readMacrosString :: String -> String -> GE E+readMacrosString :: Text -> Text -> GE E readMacrosString = readMacrosBy D.readMacrosString MacrosInitString -readMacrosInt :: String -> Int -> GE E+readMacrosInt :: Text -> Int -> GE E readMacrosInt    = readMacrosBy D.readMacrosInt    MacrosInitInt -readMacrosBy :: (String ->  E) -> (String -> a -> MacrosInit) -> String -> a -> GE E+readMacrosBy :: (Text ->  E) -> (Text -> a -> MacrosInit) -> Text -> a -> GE E readMacrosBy extract allocator name initValue = do     onMacrosInits $ initMacros $ allocator name initValue     return $ extract name@@ -591,13 +593,9 @@ addUdoPlugin p = onUdo (E.addUdoPlugin p)     where onUdo = onHistory udoPlugins (\val h -> h{ udoPlugins = val }) -renderUdoPlugins :: History -> IO String-renderUdoPlugins h = fmap concat $ mapM getUdoPluginBody $ getUdoPluginNames $ udoPlugins h--getUdoPluginBody :: String -> IO String-getUdoPluginBody name = readFile =<< getDataFileName filename-    where filename = concat ["data/opcodes/", name, ".udo"]---+renderUdoPlugins :: History -> IO Text+renderUdoPlugins h = fmap mconcat $ mapM getUdoPluginBody $ getUdoPluginNames $ udoPlugins h +getUdoPluginBody :: Text -> IO Text+getUdoPluginBody name = fmap Text.pack $ readFile =<< getDataFileName filename+    where filename = concat ["data/opcodes/", Text.unpack name, ".udo"]
src/Csound/Typed/GlobalState/Opcodes.hs view
@@ -37,11 +37,14 @@     downsamp ) where +import Control.Monad import Prelude hiding ((<*)) import Control.Monad(zipWithM_, forM_) import Data.Boolean  import Csound.Dynamic+import Data.Text (Text)+import Data.Text qualified as Text  -- channels @@ -88,8 +91,8 @@ servantUpdateChnAlive pargId = do     let sName = chnAliveName (pn pargId)     kAlive <- chngetK sName-    when1 Kr (kAlive <* -10) $ do-        turnoff+    when1 IfKr (kAlive <* -10) $ do+        toBlock turnoff     chnsetK sName (kAlive - 1)  getRetrigVal :: Int -> E@@ -100,14 +103,14 @@     let sName = chnRetrigName (pn pargId)     let retrigVal = pn $ pargId + 1     kRetrig <- chngetK sName-    when1 Kr (kRetrig /=* retrigVal) $ do-        turnoff+    when1 IfKr (kRetrig /=* retrigVal) $ do+        toBlock turnoff  servantUpdateChnEvtLoop :: Monad m => Int -> DepT m () servantUpdateChnEvtLoop pargId = do     let sName = chnEvtLoopName (pn pargId)     kEvtLoop <- chngetK sName-    chnsetK sName (ifB (kEvtLoop ==* 0) 1 0)+    chnsetK sName (ifExp IfKr (kEvtLoop ==* 0) 1 0)     turnoff  readChnEvtLoop :: Monad m => ChnRef -> DepT m E@@ -151,15 +154,15 @@ chnclear name = depT_ $ opcs "chnclear" [(Xr, [Sr])] [name]  chnUpdateUdo :: Monad m => DepT m ()-chnUpdateUdo = verbatim $ unlines [+chnUpdateUdo = verbatim $ Text.unlines [     "giPort init 1",-    "opcode " ++ chnUpdateOpcodeName ++ ", i, 0",+    "opcode " <> chnUpdateOpcodeName <> ", i, 0",     "xout giPort",     "giPort = giPort + 1",     "endop"]  -chnUpdateOpcodeName :: String+chnUpdateOpcodeName :: Text chnUpdateOpcodeName = "FreePort"  freeChn :: Monad m => DepT m E@@ -185,7 +188,7 @@ event_i :: Monad m => Event -> DepT m () event_i = eventBy "event_i" Ir -eventBy :: Monad m => String -> Rate -> Event -> DepT m ()+eventBy :: Monad m => Text -> Rate -> Event -> DepT m () eventBy name rate a = depT_ $ opcs name [(Xr, Sr : repeat rate)]     (str "i" : (eventInstrId a) : (eventStart a) : (eventDur a) : (eventArgs a)) @@ -231,8 +234,8 @@ autoOff :: Monad m => E -> [E] -> DepT m [E] autoOff dt a = do     ihold-    when1 Kr (trig a)-        turnoff+    when1 IfKr (trig a) $+        toBlock turnoff     return a     where         trig = (<* eps) . (env + ) . setRate Kr . flip follow dt . l2@@ -300,13 +303,13 @@ ftgen :: E -> Gen -> E ftgen n g = opcs "ftgen" [(Ir, repeat Ir)]     $ [n, 0, int $ genSize g, genIdE $ genId g]-    ++ (maybe [] (return . str) $ genFile g)+    ++ (maybe [] (return . prim . PrimString) $ genFile g)     ++ (fmap double $ genArgs g)  genIdE :: GenId -> E genIdE = \case     IntGenId n -> int n-    StringGenId a -> str a+    StringGenId a -> prim (PrimString a)  vco2init :: [E] -> E vco2init = opcs "vco2init" [(Ir, repeat Ir)]@@ -368,8 +371,8 @@ ----------------------------------------------------------- -- soundfonts -sfload :: Monad m => String -> DepT m E-sfload fileName =  depT $ opcs "sfload" [(Ir, [Sr])] [str fileName]+sfload :: Monad m => Text -> DepT m E+sfload fileName =  depT $ opcs "sfload" [(Ir, [Sr])] [prim $ PrimString fileName]  sfplist :: Monad m => E -> DepT m () sfplist sf = depT_ $ opcs "sfplist" [(Xr, [Ir])] [sf]@@ -377,7 +380,7 @@ sfpreset :: Monad m => Int -> Int -> E -> Int -> DepT m () sfpreset bank prog sf index = depT_ $ opcs "iPreset sfpreset" [(Xr, [Ir, Ir, Ir, Ir])] [int prog, int bank, sf, int index] -sfSetList :: Monad m => String -> [(Int, Int, Int)] -> DepT m ()+sfSetList :: Monad m => Text -> [(Int, Int, Int)] -> DepT m () sfSetList fileName presets = do     sf <- sfload fileName     sfplist sf@@ -389,7 +392,7 @@ -- if we use the scaling at I-rate we don't need to use portamento. -- If we want to scale with signal the portamento is must midiVolumeFactor :: E -> E-midiVolumeFactor idx = ifB (n <* 2) 1 (recip sqrtN)+midiVolumeFactor idx = ifExp IfIr (n <* 2) 1 (recip sqrtN)     where sqrtN = sqrt n           n     = activeIr idx 
src/Csound/Typed/GlobalState/Options.hs view
@@ -28,6 +28,8 @@  import qualified Data.IntMap as IM import qualified Data.Map    as M+import Data.Text (Text)+import Data.Text qualified as Text  import Csound.Dynamic hiding (csdFlags) @@ -48,12 +50,13 @@     , csdTabFi          :: Maybe TabFi              -- ^ Default fidelity of the arrays     , csdScaleUI        :: Maybe (Double, Double)   -- ^ Scale factors for UI-window     , csdJacko          :: Maybe Jacko-    , csdJackConnect    :: Maybe [(String, String)] -- ^ list of jack connections to make after csound app is launched (Linux only)+    , csdJackConnect    :: Maybe [(Text, Text)] -- ^ list of jack connections to make after csound app is launched (Linux only)     , csdTrace          :: Maybe Bool               -- ^ Do we need debug-trace, default is False+    , csdRender         :: Maybe RenderOptions     } deriving (Eq, Show, Read)  instance Default Options where-    def = Options def def def def def def def def def+    def = Options def def def def def def def def def def  #if MIN_VERSION_base(4,11,0) instance Semigroup Options where@@ -80,7 +83,9 @@     , csdScaleUI        = csdScaleUI a <|> csdScaleUI b     , csdJacko          = csdJacko a <|> csdJacko b     , csdJackConnect    = mappend (csdJackConnect a) (csdJackConnect b)-    , csdTrace          = csdTrace a <|> csdTrace b }+    , csdTrace          = csdTrace a <|> csdTrace b+    , csdRender         = csdRender a <|> csdRender b+    }  defScaleUI :: Options -> (Double, Double) defScaleUI = maybe (1, 1) id . csdScaleUI@@ -101,7 +106,7 @@ data TabFi = TabFi     { tabFiBase   :: Int     , tabFiGens   :: IM.IntMap Int-    , tabNamedFiGens :: M.Map String Int+    , tabNamedFiGens :: M.Map Text Int     } deriving (Eq, Show, Read)  instance Default TabFi where@@ -122,7 +127,7 @@ --   given GEN-routine. -- -- with this function we can set lower table sizes for tables that are usually used in the envelopes.-fineFi :: Int -> [(Int, Int)] -> [(String, Int)] -> TabFi+fineFi :: Int -> [(Int, Int)] -> [(Text, Int)] -> TabFi fineFi n xs ys = TabFi n (IM.fromList xs) (M.fromList ys)  -- | Sets the same table size for all tables.@@ -193,7 +198,7 @@  -- Identifiers for named GEN-routines -idPadsynth, idTanh, idExp, idSone, idFarey, idWave :: String+idPadsynth, idTanh, idExp, idSone, idFarey, idWave :: Text  idPadsynth = "padsynth" @@ -206,7 +211,7 @@ ---------------------------------------------------------- -- Jacko -type JackoConnect = (String, String)+type JackoConnect = (Text, Text)  -- | Describes the Jacko header. All information that is going to be set in the global settings for Jacko opcodes. -- The jacko opcodes allows us to easily turn our app into Jack-client. We can also do it with command line flags.@@ -214,8 +219,8 @@ -- -- see the Csound docs for details: <http://csound.github.io/docs/manual/JackoOpcodes.html> data Jacko = Jacko-    { jackoClient       :: String-    , jackoServer       :: String+    { jackoClient       :: Text+    , jackoServer       :: Text     , jackoAudioIns     :: [JackoConnect]     , jackoAudioOuts    :: [JackoConnect]     , jackoMidiIns      :: [JackoConnect]@@ -235,9 +240,9 @@         , jackoFreewheel    = False         , jackoInfo         = False } -renderJacko :: Jacko -> String-renderJacko spec = unlines $ filter ( /= "")-    [ "JackoInit " ++ (show $ jackoServer spec) ++ ", " ++ (show $ jackoClient spec)+renderJacko :: Jacko -> Text+renderJacko spec = Text.unlines $ filter ( /= "")+    [ "JackoInit " <> (Text.pack $ show $ jackoServer spec) <> ", " <> (Text.pack $ show $ jackoClient spec)     , if (jackoFreewheel spec) then "JackoFreewheel 1" else ""     , if (jackoInfo spec) then "JackoInfo" else ""     , renderConnections "JackoAudioInConnect" $ jackoAudioIns spec@@ -246,9 +251,9 @@     , renderConnections "JackoMidiOutConnect" $ jackoMidiOuts spec     , "JackoOn" ]     where-        renderConnections name links = unlines $ fmap (renderLink name) links+        renderConnections name links = Text.unlines $ fmap (renderLink name) links -        renderLink name (a, b) = name ++ " " ++ (show a) ++ ", " ++  (show b)+        renderLink name (a, b) = name <> " " <> Text.pack (show a) <> ", " <> Text.pack (show b)   csdNeedTrace :: Options -> Bool
src/Csound/Typed/GlobalState/Port.hs view
@@ -5,12 +5,13 @@ -- cn write a signal to the port or can read the singals. module Csound.Typed.GlobalState.Port(     IsPort(..), mixPort, modifyPort,-    Port(..), freePort, +    Port(..), freePort,     PortCtrl(..), freePortCtrl ) where  import Control.Monad import Control.Monad.Trans.Class+import Data.Proxy  import Csound.Dynamic @@ -19,11 +20,11 @@ import Csound.Typed.Types.Tuple import Csound.Typed.Types.Prim -import Csound.Typed.GlobalState.Opcodes(freeChn, chnName, chnget, chnset, chngetK, chnsetK)    +import Csound.Typed.GlobalState.Opcodes(freeChn, chnName, chnget, chnset, chngetK, chnsetK)  -- port class -class IsPort p where +class IsPort p where     readPort  :: Sigs a => p a -> SE a     writePort :: Sigs a => p a -> a -> SE () @@ -32,7 +33,7 @@  modifyPort :: (Sigs a, IsPort port) => port a -> (a -> a) -> SE () modifyPort p f = do-    value <- readPort p +    value <- readPort p     writePort p $ f value  -- port for audio signals@@ -46,7 +47,7 @@     tupleMethods = makeTupleMethods to from         where             to :: D -> Port a-            to =  Port . toGE +            to =  Port . toGE              from :: Port a -> D             from (Port e) = fromGE e@@ -61,10 +62,10 @@     writePort port a = SE $ do         (names, values) <- lift getNamesAndValues         zipWithM_ chnset names values-        where +        where             getNamesAndValues = do                 names  <- getNames port-                values <- fromTuple a            +                values <- fromTuple a                 return (names, values)  -------------------------------------------------------------@@ -79,7 +80,7 @@     tupleMethods = makeTupleMethods to from         where             to :: D -> PortCtrl a-            to =  PortCtrl . toGE +            to =  PortCtrl . toGE              from :: PortCtrl a -> D             from (PortCtrl e) = fromGE e@@ -94,10 +95,10 @@     writePort port a = SE $ do         (names, values) <- lift getNamesAndValues         zipWithM_ chnsetK names values-        where +        where             getNamesAndValues = do                 names  <- getNamesCtrl port-                values <- fromTuple a            +                values <- fromTuple a                 return (names, values)  -------------------------------------------------------@@ -105,9 +106,9 @@ getNames :: forall a . Sigs a => Port a -> GE [E] getNames (Port ref) = do     idx <- ref-    return $ fmap (flip chnName idx) [1 .. (tupleArity ((error "No def here") :: a))]+    return $ fmap (flip chnName idx) [1 .. (tupleArity (Proxy :: Proxy a))]  getNamesCtrl :: forall a . Sigs a => PortCtrl a -> GE [E] getNamesCtrl (PortCtrl ref) = do     idx <- ref-    return $ fmap (flip chnName idx) [1 .. (tupleArity ((error "No def here") :: a))]+    return $ fmap (flip chnName idx) [1 .. (tupleArity (Proxy :: Proxy a))]
src/Csound/Typed/GlobalState/SE.hs view
@@ -23,11 +23,10 @@     fmap f = SE . fmap f . unSE  instance Applicative SE where-    pure = return+    pure = SE . return     (<*>) = ap  instance Monad SE where-    return = SE . return     ma >>= mf = SE $ unSE ma >>= unSE . mf  runSE :: SE a -> GE a
src/Csound/Typed/Gui/BoxModel.hs view
@@ -11,16 +11,16 @@ import Data.Default  data Interval = Interval-    { start :: Int-    , leng  :: Int+    { start :: !Int+    , leng  :: !Int     } deriving (Show)  -- | A rectangle. data Rect = Rect-    { px        :: Int-    , py        :: Int-    , width     :: Int-    , height    :: Int+    { px        :: !Int+    , py        :: !Int+    , width     :: !Int+    , height    :: !Int     } deriving (Show)  fromRect :: Rect -> (Interval, Interval)@@ -30,10 +30,10 @@ toRect a b = Rect (start a) (start b) (leng a) (leng b)  data AbsScene ctx a-    = Elem Rect a+    = Elem !Rect !a     | EmptyScene-    | Group [AbsScene ctx a]-    | Ctx Rect ctx (AbsScene ctx a)+    | Group ![AbsScene ctx a]+    | Ctx !Rect !ctx !(AbsScene ctx a)     deriving (Show)  @@ -71,11 +71,10 @@     deriving (Show, Functor)  instance Applicative (Scene ctx) where-    pure = return+    pure = Prim     (<*>) = ap  instance Monad (Scene ctx) where-    return = Prim     ma >>= mf = joinScene $ fmap mf ma         where             joinScene :: Scene ctx (Scene ctx a) -> Scene ctx a
src/Csound/Typed/Gui/Cabbage/Cabbage.hs view
@@ -20,6 +20,7 @@  import Data.Maybe import Control.Monad.Trans.Writer.Strict+import Data.Text (Text)  import Csound.Typed.Gui.Cabbage.CabbageLang @@ -43,7 +44,7 @@ --------------------------------------- -- widgets -widget :: String -> CabProp -> Cab+widget :: Text -> CabProp -> Cab widget name props = Cab' $ tell [Line name $ runCabProp props]  ---------------------------------------@@ -79,10 +80,10 @@ --------------------------------------- -- properties -mkProperty :: String -> [Arg] -> CabProp+mkProperty :: Text -> [Arg] -> CabProp mkProperty name args = CabProp' $ tell [Property name args] -data Col = Hash String | Rgb Int Int Int+data Col = Hash Text | Rgb Int Int Int  colProp :: Col -> [Arg] colProp x = case x of@@ -95,13 +96,13 @@ bounds :: Int -> Int -> Int -> Int -> CabProp bounds x y w h = mkProperty "bounds" (fmap IntArg [x, y, w, h]) -channel :: String -> CabProp+channel :: Text -> CabProp channel name = mkProperty "channel" [StringArg name] -text1 :: String -> CabProp+text1 :: Text -> CabProp text1 name = mkProperty "text" [StringArg name] -text2 :: String -> String -> CabProp+text2 :: Text -> Text -> CabProp text2 name1 name2 = mkProperty "text" [StringArg name1, StringArg name2]  value :: Float -> CabProp@@ -140,7 +141,7 @@ latched :: Bool -> CabProp latched b = mkProperty "latched" [boolProp b] -identchannel :: String -> CabProp+identchannel :: Text -> CabProp identchannel s = mkProperty "identchannel" [StringArg s]  rotate :: Float -> Float -> Float -> CabProp@@ -152,40 +153,40 @@ visible :: Bool -> CabProp visible a = mkProperty "visible" [boolProp a] -caption :: String -> CabProp+caption :: Text -> CabProp caption a = mkProperty "caption" [StringArg a] -widgetarray :: String -> Int -> CabProp+widgetarray :: Text -> Int -> CabProp widgetarray name n = mkProperty "widgetarray" [StringArg name, IntArg n] -popuptext :: String -> CabProp+popuptext :: Text -> CabProp popuptext a = mkProperty "popuptext" [StringArg a]  active :: Bool -> CabProp active a = mkProperty "active" [boolProp a] -svgfile :: String -> String -> CabProp+svgfile :: Text -> Text -> CabProp svgfile ty fileName = mkProperty "svgfile" (fmap StringArg [ty, fileName]) -populate :: String -> String -> CabProp+populate :: Text -> Text -> CabProp populate filetype dir = mkProperty "populate" (fmap StringArg [filetype, dir]) -mode :: String -> CabProp+mode :: Text -> CabProp mode a = mkProperty "mode" [StringArg a] -file :: String -> CabProp+file :: Text -> CabProp file a = mkProperty "file" [StringArg a] -shape :: String -> CabProp+shape :: Text -> CabProp shape a = mkProperty "shape" [StringArg a]  corners :: Float -> CabProp corners a = mkProperty "corners" [FloatArg a] -channeltype :: String -> CabProp+channeltype :: Text -> CabProp channeltype a = mkProperty "channeltype" [StringArg a] -align :: String -> CabProp+align :: Text -> CabProp align a = mkProperty "align" [StringArg a]  sliderincr :: Float -> CabProp@@ -215,13 +216,13 @@ size :: Int -> Int -> CabProp size w h = mkProperty "size" (fmap IntArg [w, h]) -pluginid :: String -> CabProp+pluginid :: Text -> CabProp pluginid a = mkProperty "pluginid" [StringArg a]  guirefresh :: Int -> CabProp guirefresh a = mkProperty "guirefresh" [IntArg a] -plant :: String -> CabProp+plant :: Text -> CabProp plant a = mkProperty "plant" [StringArg a]  child :: Bool -> CabProp@@ -239,7 +240,7 @@ scrollbars :: Bool -> CabProp scrollbars a = mkProperty "scrollbars" [boolProp a] -fontstyle :: String -> CabProp+fontstyle :: Text -> CabProp fontstyle a = mkProperty "fontstyle" [StringArg a]  scrubberpos :: Int -> CabProp@@ -248,7 +249,7 @@ zoom :: Float -> CabProp zoom a = mkProperty "zoom" [FloatArg a] -displaytype :: String -> CabProp+displaytype :: Text -> CabProp displaytype a = mkProperty "displaytype" [StringArg a]  updaterate :: Int -> CabProp
src/Csound/Typed/Gui/Cabbage/CabbageLang.hs view
@@ -2,21 +2,22 @@   Lang, Line(..), Property(..), Arg(..), ppCabbage ) where -import Text.PrettyPrint.Leijen+import Data.Text (Text)+import Text.PrettyPrint.Leijen.Text  type Lang = [Line]  data Line = Line-  { lineDef :: String+  { lineDef :: Text   , lineProperties :: [Property]   }  data Property = Property-  { propertyName :: String+  { propertyName :: Text   , propertyArgs :: [Arg]   } -data Arg = StringArg String | FloatArg Float | IntArg Int | ColonArg Float Float+data Arg = StringArg Text | FloatArg Float | IntArg Int | ColonArg Float Float  -------------------------------------------------- -- pretty print@@ -25,14 +26,14 @@ ppCabbage xs = vcat $ fmap ppLine xs  ppLine :: Line -> Doc-ppLine (Line name props) = text name <+> hcat (punctuate comma (fmap ppProp props))+ppLine (Line name props) = textStrict name <+> hcat (punctuate comma (fmap ppProp props))  ppProp :: Property -> Doc-ppProp (Property name args) = text name <> tupled (fmap ppArg args)+ppProp (Property name args) = textStrict name <> tupled (fmap ppArg args)  ppArg :: Arg -> Doc ppArg x = case x of-  StringArg s -> dquotes (text s)+  StringArg s -> dquotes (textStrict s)   FloatArg a  -> float a   IntArg a    -> int a   ColonArg a b -> float a <> colon <> float b
src/Csound/Typed/Gui/Gui.hs view
@@ -30,17 +30,19 @@ ) where  import Prelude hiding(elem, span)+import Data.Text (Text)+import Data.Text qualified as Text  import Data.Default import Data.Maybe(isNothing) import Data.Monoid  import qualified Data.IntMap as IM-import Text.PrettyPrint.Leijen(Doc)+import Text.PrettyPrint.Leijen.Text (Doc)  import Csound.Dynamic(DepT, depT_, Var(..), VarType(..), Rate(..), noRate, MainExp(..), InstrId(..)) -import qualified Text.PrettyPrint.Leijen as P(int, double, vcat, empty, text)+import qualified Text.PrettyPrint.Leijen.Text as P(int, double, vcat, empty, textStrict) import qualified Csound.Typed.Gui.BoxModel as Box import Csound.Typed.Constants(infiniteDur) @@ -59,7 +61,7 @@         { singleContent :: Win         , singleIsKeybdSensitive :: Bool }     | Tabs-        { tabsTitle     :: String+        { tabsTitle     :: Text         , tabsRect      :: Maybe Rect         , tabsContent   :: [Win]         , tabsIsKeybdSensitive :: Bool }@@ -70,7 +72,7 @@     Tabs _ _ _ res -> res  data Win = Win-    { winTitle :: String+    { winTitle :: Text     , winRect  :: Maybe Rect     , winGui   :: Gui } @@ -99,7 +101,7 @@     | Text   ValDiap ValStep      -- other widgets-    | Box String+    | Box Text     | ButBank Int Int     | Button InstrId     | Toggle@@ -108,7 +110,7 @@  type ElemOuts = [Var] -defText :: String -> Gui+defText :: Text -> Gui defText str = Gui $ Box.Prim (ElemWithOuts [Var LocalVar Ir "keybd"] [] $ Box str)  fromElem :: ElemOuts -> [InitMe] -> Elem -> Gui@@ -226,7 +228,7 @@ guiStmt defaultScaleUI panels = depT_ $ noRate (phi defaultScaleUI)     where phi scaleUI             | null panels = EmptyExp-            | otherwise   = Verbatim $ show $ P.vcat [P.vcat $ fmap (drawGui scaleUI) panels, P.text "FLrun"]+            | otherwise   = Verbatim $ Text.pack $ show $ P.vcat [P.vcat $ fmap (drawGui scaleUI) panels, P.textStrict "FLrun"]  drawGui :: ScaleFactor -> Panel -> Doc drawGui defaultScaleUI x = case x of@@ -249,7 +251,7 @@            onPanel title isKeybdSensitive rect body = P.vcat             -- panel with default position no border and capture of keyboard events-            [ ppProc "FLpanel" [ P.text $ show title, P.int $ width rect, P.int $ height rect, P.int (-1), P.int (-1), P.int 0+            [ ppProc "FLpanel" [ P.textStrict title, P.int $ width rect, P.int $ height rect, P.int (-1), P.int (-1), P.int 0                                , P.int $ if isKeybdSensitive then 1 else 0 ]             , body             , ppProc "FLpanelEnd" []]@@ -260,7 +262,7 @@             , ppProc "FLtabsEnd" []]  -panelTitle :: Panel -> String+panelTitle :: Panel -> Text panelTitle x = case x of     Single w _       -> winTitle w     Tabs title _ _ _ -> title@@ -302,7 +304,7 @@ drawTab :: (Int, Int) -> Rect -> Win -> Doc drawTab shift r w = group (winTitle w) r $ drawWin (withRelWinMargin $ shiftRect shift r) w     where group title rect body = P.vcat-            [ ppProc "FLgroup" $ (P.text $ show title) : rectToFrame rect+            [ ppProc "FLgroup" $ (P.textStrict $ Text.pack $ show title) : rectToFrame rect             , body             , ppProc "FLgroupEnd" []] @@ -324,7 +326,7 @@  drawBorder :: BorderType -> Rect -> Doc -> Doc drawBorder borderType rect a = P.vcat-    [ ppProc "FLgroup" $ ((P.text $ show "") : frame) ++ [borderAsInt borderType]+    [ ppProc "FLgroup" $ (P.empty : frame) ++ [borderAsInt borderType]     , a     , ppProc "FLgroupEnd" []]     where borderAsInt = P.int . fromEnum@@ -371,7 +373,9 @@             where label = getLabel ctx          f = fWithLabel (getLabel ctx)-        fWithLabel label name args = ppMoOpc (fmap ppVar $ elemOuts el) name ((P.text $ show $ label) : args)++        fWithLabel :: Text -> Text -> [Doc] -> Doc+        fWithLabel label name args = ppMoOpc (fmap ppVar $ elemOuts el) name ((P.textStrict label) : args)         fNoLabel name args = ppMoOpc (fmap ppVar $ elemOuts el) name args         frame = frameBy rect         frameWithoutLabel = frameBy rectWithoutLabel@@ -464,7 +468,7 @@ setProp :: Prop -> Gui -> Gui setProp p = props [p] -setLabel :: String -> Gui -> Gui+setLabel :: Text -> Gui -> Gui setLabel = setProp . SetLabel  setLabelType :: LabelType -> Gui -> Gui@@ -580,7 +584,7 @@     -- other widgets     Box     label    ->         let symbolsPerLine = 60-            numOfLines = succ $ div (length label) symbolsPerLine+            numOfLines = succ $ div (Text.length label) symbolsPerLine         in  (xBox 15 symbolsPerLine, yBox 15 numOfLines)      ButBank xn yn   -> (xn * 70, yn * 35)@@ -618,7 +622,7 @@ flSetColor, flSetColor2, flSetTextColor, flSetTextSize, flSetTextType,     flSetFont :: Var -> PropCtx -> Doc -flSetProp :: String+flSetProp :: Text     -> (PropCtx -> Maybe a)     -> (PropCtx -> Doc)     -> Var -> PropCtx -> Doc
src/Csound/Typed/Gui/Pretty.hs view
@@ -7,13 +7,14 @@   getToggleType, appMaterial, getColor1, getColor2, getTextColor, genGetColor ) where -import Data.Char import Data.Default import Data.Colour.Names(white, gray, black) import Data.Colour.SRGB+import Data.Text (Text)+import Data.Text qualified as Text -import Text.PrettyPrint.Leijen(Doc, int, hcat, hsep, punctuate, comma, text, char)-import qualified Text.PrettyPrint.Leijen as P((<+>), empty)+import Text.PrettyPrint.Leijen.Text(Doc, int, hcat, hsep, punctuate, comma, textStrict, char)+import qualified Text.PrettyPrint.Leijen.Text as P((<+>), empty)  import Csound.Dynamic(Var(..), VarType(..), Rate(..)) @@ -22,17 +23,17 @@ ------------------------------------------------------------- -- pretty printers -ppProc :: String -> [Doc] -> Doc-ppProc name xs = text name P.<+> (hsep $ punctuate comma xs)+ppProc :: Text -> [Doc] -> Doc+ppProc name xs = textStrict name P.<+> (hsep $ punctuate comma xs) -ppMoOpc :: [Doc] -> String -> [Doc] -> Doc-ppMoOpc outs name ins = f outs P.<+> text name P.<+> f ins+ppMoOpc :: [Doc] -> Text -> [Doc] -> Doc+ppMoOpc outs name ins = f outs P.<+> textStrict name P.<+> f ins     where f = hsep . punctuate comma  ppVar :: Var -> Doc ppVar v = case v of-    Var ty rate name   -> hcat [ppVarType ty, ppRate rate, text (varPrefix ty : name)]-    VarVerbatim _ name -> text name+    Var ty rate name   -> hcat [ppVarType ty, ppRate rate, textStrict (Text.cons (varPrefix ty) name)]+    VarVerbatim _ name -> textStrict name  varPrefix :: VarType -> Char varPrefix x = case x of@@ -48,7 +49,7 @@ ppRate x = case x of     Sr -> char 'S'     _  -> phi x-    where phi = text . map toLower . show+    where phi = textStrict . Text.toLower . Text.pack . show  ------------------------------------------------------------------ -- Converting readable properties to integer codes
src/Csound/Typed/Gui/Types.hs view
@@ -28,6 +28,7 @@ import Data.Colour  import Csound.Typed.Gui.BoxModel(Rect(..))+import Data.Text (Text)  -- | The Csound colours. type Color = Colour Double@@ -42,8 +43,8 @@ -- | A value span is a diapason of the value and a type -- of the scale (can be linear or exponential). data ValSpan = ValSpan-    { valSpanDiap  :: ValDiap-    , valSpanScale :: ValScaleType }+    { valSpanDiap  :: !ValDiap+    , valSpanScale :: !ValScaleType }  -- | Makes a linear @ValSpan@ with specified boundaries. --@@ -190,7 +191,7 @@  -- | Properties of the widgets. data Prop-    = SetLabel String+    = SetLabel Text     | SetMaterial Material     | SetBoxType BoxType     | SetColor1 Color | SetColor2 Color | SetTextColor Color@@ -206,7 +207,7 @@ -- cascading context, here we group properties by type  data PropCtx = PropCtx-    { ctxLabel        :: Maybe String+    { ctxLabel        :: Maybe Text     , ctxMaterial     :: Maybe Material     , ctxLabelType    :: Maybe LabelType     , ctxBoxType      :: Maybe BoxType@@ -245,5 +246,5 @@             SetTextType     a -> x { ctxTextType = Just a }             SetKnobType     a -> x { ctxKnobType = Just a } -getLabel :: PropCtx -> String+getLabel :: PropCtx -> Text getLabel = maybe "" id . ctxLabel
src/Csound/Typed/Gui/Widget.hs view
@@ -26,6 +26,8 @@ import Control.Monad.Trans.Class  import Data.Boolean+import Data.Text (Text)+import Data.Text qualified as Text  import Csound.Dynamic hiding (int, when1) import qualified Csound.Typed.GlobalState.Elements as C@@ -58,41 +60,41 @@  -- | Renders the GUI elements with tabs. Rectangles are calculated -- automatically.-tabs :: [(String, Gui)] -> SE ()+tabs :: [(Text, Gui)] -> SE () tabs = genTabs False  -- | Renders the GUI elements with tabs. Rectangles are calculated -- automatically.-keyTabs :: [(String, Gui)] -> SE ()+keyTabs :: [(Text, Gui)] -> SE () keyTabs = genTabs True -genTabs :: Bool -> [(String, Gui)] -> SE ()+genTabs :: Bool -> [(Text, Gui)] -> SE () genTabs isKey xs = geToSe $ saveGuiRoot $ Tabs "" Nothing (fmap (\(title, gui) -> Win title Nothing gui) xs) isKey  -- | Renders the GUI elements on the window. We can specify the window title -- and rectangle of the window.-panelBy :: String -> Maybe Rect -> Gui -> SE ()+panelBy :: Text -> Maybe Rect -> Gui -> SE () panelBy = genPanelBy False  -- | Renders the GUI elements on the window. We can specify the window title -- and rectangle of the window. Panesls are sensitive to keyboard events.-keyPanelBy :: String -> Maybe Rect -> Gui -> SE ()+keyPanelBy :: Text -> Maybe Rect -> Gui -> SE () keyPanelBy = genPanelBy True -genPanelBy :: Bool -> String -> Maybe Rect -> Gui -> SE ()+genPanelBy :: Bool -> Text -> Maybe Rect -> Gui -> SE () genPanelBy isKeybd title mrect gui = geToSe $ saveGuiRoot $ Single (Win title mrect gui) isKeybd  -- | Renders the GUI elements with tabs. We can specify the window title and -- rectangles for all tabs and for the main window.-tabsBy :: String -> Maybe Rect -> [(String, Maybe Rect, Gui)] -> SE ()+tabsBy :: Text -> Maybe Rect -> [(Text, Maybe Rect, Gui)] -> SE () tabsBy = genTabsBy False  -- | Renders the GUI elements with tabs. We can specify the window title and -- rectangles for all tabs and for the main window. Tabs are sensitive to keyboard events.-keyTabsBy :: String -> Maybe Rect -> [(String, Maybe Rect, Gui)] -> SE ()+keyTabsBy :: Text -> Maybe Rect -> [(Text, Maybe Rect, Gui)] -> SE () keyTabsBy = genTabsBy True -genTabsBy :: Bool -> String -> Maybe Rect -> [(String, Maybe Rect, Gui)] -> SE ()+genTabsBy :: Bool -> Text -> Maybe Rect -> [(Text, Maybe Rect, Gui)] -> SE () genTabsBy isKeybd title mrect gui = geToSe $ saveGuiRoot $ Tabs title mrect (fmap (\(a, b, c) -> Win a b c) gui) isKeybd  -- | Widgets that produce something has inputs.@@ -197,33 +199,33 @@ -- primitive elements  -- | Appends a title to a group of widgets.-setTitle :: String -> Gui -> SE Gui+setTitle :: Text -> Gui -> SE Gui setTitle name g-    | null name = return g+    | Text.null name = return g     | otherwise = do         gTitle <- box name         return $ ver [sca 0.01 gTitle, g] -setSourceTitle :: String -> Source a -> Source a+setSourceTitle :: Text -> Source a -> Source a setSourceTitle name ma = source $ do     (gui, val) <- ma     newGui <- setTitle name gui     return (newGui, val) -setLabelSource :: String -> Source a -> Source a+setLabelSource :: Text -> Source a -> Source a setLabelSource a-    | null a    = id+    | Text.null a    = id     | otherwise = fmap (first $ setLabel a) -setLabelSink :: String -> Sink a -> Sink a+setLabelSink :: Text -> Sink a -> Sink a setLabelSink a-    | null a    = id+    | Text.null a = id     | otherwise = fmap (first $ setLabel a) -setLabelSnkSource :: String -> SinkSource a -> SinkSource a+setLabelSnkSource :: Text -> SinkSource a -> SinkSource a setLabelSnkSource a-    | null a    = id-    | otherwise = fmap (\(x, y, z) -> (setLabel a x, y, z))+    | Text.null a = id+    | otherwise   = fmap (\(x, y, z) -> (setLabel a x, y, z))  singleOut :: Maybe Double -> Elem -> Source Sig singleOut v0 el = geToSe $ do@@ -290,7 +292,7 @@ -- > knob valueSpan initValue -- -- doc: <http://www.csounds.com/manual/html/FLknob.html>-knob :: String -> ValSpan -> Double -> Source Sig+knob :: Text -> ValSpan -> Double -> Source Sig knob name sp v0 = setLabelSource name $ singleOut (Just v0) $ Knob sp  -- | FLroller is a sort of knob, but put transversally.@@ -298,7 +300,7 @@ -- > roller valueSpan step initVal -- -- doc: <http://www.csounds.com/manual/html/FLroller.html>-roller :: String -> ValSpan -> ValStep -> Double -> Source Sig+roller :: Text -> ValSpan -> ValStep -> Double -> Source Sig roller name sp step v0 = setLabelSource name $ singleOut (Just v0) $ Roller sp step  -- | FLslider puts a slider into the corresponding container.@@ -306,14 +308,14 @@ -- > slider valueSpan initVal -- -- doc: <http://www.csounds.com/manual/html/FLslider.html>-slider :: String -> ValSpan -> Double -> Source Sig+slider :: Text -> ValSpan -> Double -> Source Sig slider name sp v0 = setLabelSource name $ singleOut (Just v0) $ Slider sp  -- | Constructs a list of linear unit sliders (ranges in [0, 1]). It takes a list -- of init values.-sliderBank :: String -> [Double] -> Source [Sig]+sliderBank :: Text -> [Double] -> Source [Sig] sliderBank name ds = source $ do-    (gs, vs) <- fmap unzip $ zipWithM (\n d -> slider (show n) uspan d) [(1::Int) ..] ds+    (gs, vs) <- fmap unzip $ zipWithM (\n d -> slider (Text.pack $ show n) uspan d) [(1::Int) ..] ds     gui <- setTitle name  $ hor gs     return (gui, vs) @@ -323,7 +325,7 @@ -- > numeric diapason step initValue -- -- doc: <http://www.csounds.com/manual/html/FLtext.html>-numeric :: String -> ValDiap -> ValStep -> Double -> Source Sig+numeric :: Text -> ValDiap -> ValStep -> Double -> Source Sig numeric name diap step v0 = setLabelSource name $ singleOut (Just v0) $ Text diap step  -- | A FLTK widget that displays text inside of a box.@@ -333,18 +335,18 @@ -- > box text -- -- doc: <http://www.csounds.com/manual/html/FLbox.html>-box :: String -> Display+box :: Text -> Display box label-    | length label < lim = rawBox label-    | otherwise          = fmap (padding 0 . ver) $ mapM rawBox $ parts lim label+    | Text.length label < lim = rawBox label+    | otherwise               = fmap (padding 0 . ver) $ mapM rawBox $ parts lim label     where         parts n xs-            | length xs < n = [xs]+            | Text.length xs < n = [xs]             | otherwise     = a : parts n b-            where (a, b) = splitAt n xs+            where (a, b) = Text.splitAt n xs         lim = 255 -rawBox :: String -> Display+rawBox :: Text -> Display rawBox label = geToSe $ do     (_, handle) <- newGuiVar     let gui = fromElem [guiHandleToVar handle] [] (Box label)@@ -356,7 +358,7 @@ -- > button text -- -- doc: <http://www.csounds.com/manual/html/FLbutton.html>-button :: String -> Source (Evt Unit)+button :: Text -> Source (Evt Unit) button name = setLabelSource name $ source $ do     flag <- geToSe $ onGlobals $ C.newPersistentGlobalVar Kr 0     flagChanged <- geToSe $ onGlobals $ C.newPersistentGlobalVar Kr 0@@ -368,9 +370,9 @@     where         instr ref = SE $ do             val <- readVar ref-            whens Kr-                [ (val ==* 0, writeVar ref 1)-                ] (writeVar ref 0)+            whens IfKr+                [ (val ==* 0, toBlock $ writeVar ref 1)+                ] (toBlock $ writeVar ref 0)             turnoff          instrCh ref refCh = SE $ do@@ -382,12 +384,12 @@ -- > button text -- -- doc: <http://www.csounds.com/manual/html/FLbutton.html>-toggle :: String -> Bool -> Source (Evt D)+toggle :: Text -> Bool -> Source (Evt D) toggle name initVal = mapSource snaps $ toggleSig name initVal  -- | A variance on the function 'Csound.Gui.Widget.toggle', but it produces -- a signal of piecewise constant function.-toggleSig :: String -> Bool -> Source Sig+toggleSig :: Text -> Bool -> Source Sig toggleSig name initVal = setLabelSource name $ singleOut (initToggle initVal) Toggle  initToggle :: Bool -> Maybe Double@@ -399,7 +401,7 @@ -- > butBank xNumOfButtons yNumOfButtons -- -- doc: <http://www.csounds.com/manual/html/FLbutBank.html>-butBank :: String -> Int -> Int -> (Int, Int) -> Source (Evt (D, D))+butBank :: Text -> Int -> Int -> (Int, Int) -> Source (Evt (D, D)) butBank name xn yn inits = mapSource (fmap split2 . snaps) $ butBankSig1 name xn yn inits     where         split2 a = (floor' $ a / y, mod' a x)@@ -409,7 +411,7 @@ -- | A variance on the function 'Csound.Gui.Widget.butBank', but it produces -- a signal of piecewise constant function. -- Result is (x, y) coordinate of the triggered button.-butBankSig :: String -> Int -> Int -> (Int, Int) -> Source (Sig, Sig)+butBankSig :: Text -> Int -> Int -> (Int, Int) -> Source (Sig, Sig) butBankSig name xn yn inits = mapSource split2 $ butBankSig1 name xn yn inits     where         split2 a = (floor' $ a / y, mod' a x)@@ -421,39 +423,39 @@ -- > butBank xNumOfButtons yNumOfButtons -- -- doc: <http://www.csounds.com/manual/html/FLbutBank.html>-butBank1 :: String -> Int -> Int -> (Int, Int) -> Source (Evt D)+butBank1 :: Text -> Int -> Int -> (Int, Int) -> Source (Evt D) butBank1 name xn yn inits = mapSource snaps $ butBankSig1 name xn yn inits -butBankSig1 :: String -> Int -> Int -> (Int, Int) -> Source Sig+butBankSig1 :: Text -> Int -> Int -> (Int, Int) -> Source Sig butBankSig1 name xn yn (x0, y0) = setSourceTitle name $ singleOut (Just n) $ ButBank xn yn     where n = fromIntegral $ y0 + x0 * yn  -- |  FLtext that is sink shows current the value of a valuator in a text field.-setNumeric :: String -> ValDiap -> ValStep -> Double -> Sink Sig+setNumeric :: Text -> ValDiap -> ValStep -> Double -> Sink Sig setNumeric name diap step v0 = setLabelSink name $ singleIn printk2 (Just v0) $ Text diap step  -- | A slider that serves as indicator. It consumes values instead of producing. -- -- > meter valueSpan initValue-meter :: String -> ValSpan -> Double -> Sink Sig+meter :: Text -> ValSpan -> Double -> Sink Sig meter name sp v = setLabelSink name $ singleIn setVal (Just v) (Slider sp)  ------------------------------------------------------------- -- writeable widgets -setToggleSig :: String -> Bool -> SinkSource Sig+setToggleSig :: Text -> Bool -> SinkSource Sig setToggleSig name initVal = setLabelSnkSource name $ singleInOut setVal (initToggle initVal) Toggle -setToggle :: String -> Bool -> SinkSource (Evt D)+setToggle :: Text -> Bool -> SinkSource (Evt D) setToggle name initVal = sinkSource $ do     (g, outs, ins) <- setToggleSig name initVal     let evtOuts a = outs =<< stepper 0 (fmap sig a)     return (g, evtOuts, snaps ins) -setKnob :: String -> ValSpan -> Double -> SinkSource Sig+setKnob :: Text -> ValSpan -> Double -> SinkSource Sig setKnob name sp v0 = setLabelSnkSource name $ singleInOut setVal' (Just v0) $ Knob sp -setSlider :: String -> ValSpan -> Double -> SinkSource Sig+setSlider :: Text -> ValSpan -> Double -> SinkSource Sig setSlider name sp v0 = setLabelSnkSource name $ singleInOut setVal' (Just v0) $ Slider sp  -------------------------------------------------------------
src/Csound/Typed/Render.hs view
@@ -23,7 +23,7 @@ import System.FilePath import Text.Read (readMaybe) -import Text.PrettyPrint.Leijen(displayS, renderPretty)+import Text.PrettyPrint.Leijen.Text (displayTStrict, renderPretty)  import Csound.Dynamic hiding (csdFlags) import Csound.Typed.Types@@ -59,24 +59,31 @@  renderOutBy_ :: Options -> SE () -> IO String renderOutBy_ options sigs = do-    finalOptions <- fmap (maybe options (options `mappend` )) getUserOptions-    evalGE finalOptions $ fmap renderCsd $ toCsd Nothing finalOptions (fmap (const unit) sigs)+  finalOptions <- fmap (maybe options (options `mappend` )) getUserOptions+  evalGE finalOptions $ fmap (renderCsd renderOpts) $ toCsd Nothing finalOptions (fmap (const unit) sigs)+  where+    renderOpts = fromMaybe def $ csdRender options + renderOut :: Sigs a => SE a -> IO String renderOut = renderOutBy def  renderOutBy :: Sigs a => Options -> SE a -> IO String renderOutBy options sigs = do-    finalOptions <- fmap (maybe options (options `mappend` )) getUserOptions-    evalGE finalOptions $ fmap renderCsd $ toCsd Nothing finalOptions sigs+  finalOptions <- fmap (maybe options (options `mappend` )) getUserOptions+  evalGE finalOptions $ fmap (renderCsd renderOpts) $ toCsd Nothing finalOptions sigs+  where+    renderOpts = fromMaybe def $ csdRender options  renderEff :: (Sigs a, Sigs b) => (a -> SE b) -> IO String renderEff = renderEffBy def  renderEffBy :: (Sigs a, Sigs b) => Options -> (a -> SE b) -> IO String renderEffBy options eff = do-    finalOptions <- fmap (maybe options (options `mappend` )) getUserOptions-    evalGE finalOptions $ fmap renderCsd $ toCsd (Just (arityIns $ funArity eff)) finalOptions (eff =<< getIns)+  finalOptions <- fmap (maybe options (options `mappend` )) getUserOptions+  evalGE finalOptions $ fmap (renderCsd renderOpts) $ toCsd (Just (arityIns $ funArity eff)) finalOptions (eff =<< getIns)+  where+    renderOpts = fromMaybe def $ csdRender options  renderHistory :: Maybe Int -> Int -> Options -> GE Csd renderHistory mnchnls_i nchnls opt = do@@ -106,7 +113,7 @@          getPlugins hist = case cabbageGui hist of                 Nothing -> []-                Just x  -> [(Plugin "Cabbage" (displayS (renderPretty 1 10000 $ ppCabbage x) ""))]+                Just x  -> [(Plugin "Cabbage" (displayTStrict (renderPretty 1 10000 $ ppCabbage x)))]  getInstr0 :: Maybe Int -> Int -> Options -> Dep () -> History -> Dep () getInstr0 mnchnls_i nchnls opt udos hist = do
src/Csound/Typed/Types.hs view
@@ -8,15 +8,16 @@     -- can use these functions.     withInits, withDs, withSigs, withTabs, withD, withSig, withTab, withSeed,     -- * Tuples-    module Csound.Typed.Types.Tuple,        +    module Csound.Typed.Types.Tuple,     -- * Events     module Csound.Typed.Types.Evt,      -- * Arrays-    module Csound.Typed.Types.Array, +    module Csound.Typed.Types.Array,+    module Csound.Typed.Types.PureArray,      -- * Arguments for monophonic synths-    module Csound.Typed.Types.MonoArg,  +    module Csound.Typed.Types.MonoArg,      -- * Signal space (generic signal transformers)     module Csound.Typed.Types.SigSpace,@@ -32,6 +33,7 @@ import Csound.Typed.Types.Evt import Csound.Typed.Types.Lift import Csound.Typed.Types.Array+import Csound.Typed.Types.PureArray import Csound.Typed.Types.MonoArg import Csound.Typed.Types.SigSpace @@ -50,7 +52,7 @@ withInits :: (Tuple a, Tuple b) => a -> b -> a withInits a b = genWithInits a (fromTuple b) --- | A special case of @withInits@. Here all inits are numbers. +-- | A special case of @withInits@. Here all inits are numbers. withDs :: Tuple a => a -> [D] -> a withDs a ds = genWithInits a (mapM toGE ds) @@ -58,7 +60,7 @@ withD :: Tuple a => a -> D -> a withD = withInits --- | A special case of @withInits@. Here all inits are signals. +-- | A special case of @withInits@. Here all inits are signals. withSigs :: Tuple a => a -> [Sig] -> a withSigs a sigs = genWithInits a (mapM toGE sigs) @@ -66,7 +68,7 @@ withSig :: Tuple a => a -> Sig -> a withSig = withInits --- | A special case of @withInits@. Here all inits are arrays. +-- | A special case of @withInits@. Here all inits are arrays. withTabs :: Tuple a => a -> [Tab] -> a withTabs a tabs = genWithInits a (mapM toGE tabs) @@ -74,8 +76,8 @@ withTab :: Tuple a => a -> Tab -> a withTab = withInits --- | Applies a seed to the random value. --- It's equivalent to the @withD@ but it has a special +-- | Applies a seed to the random value.+-- It's equivalent to the @withD@ but it has a special -- meaning of canceling the side effect. When random -- opcode is provided with seed value it's no longer -- contains a side effect so we don't need to restrict it.
src/Csound/Typed/Types/Array.hs view
@@ -31,6 +31,8 @@   import Control.Monad+import Data.Proxy+import Data.Text (Text)  import Csound.Dynamic hiding (writeArr, writeInitArr, readArr, newLocalArrVar, newTmpArrVar, int) import qualified Csound.Dynamic as D@@ -89,7 +91,7 @@  newArrBy :: forall ix a . (Tuple a, Tuple ix) => (Rate -> GE [E] -> SE Var) -> [D] -> SE (Arr ix a) newArrBy mkVar sizes =-    fmap Arr $ mapM (\x -> mkVar x (mapM toGE sizes)) (tupleRates $ (undefined :: a))+    fmap Arr $ mapM (\x -> mkVar x (mapM toGE sizes)) (tupleRates $ (Proxy :: Proxy a))  getIndices :: Tuple ix => [Int] -> [ix] getIndices xs = fmap (toTuple . return . fmap D.int) $ getIntIndices xs@@ -417,7 +419,7 @@ isArrayInit = True noArrayInit = False -binOp :: String -> Arr a b -> Arr a b -> SE (Arr a b)+binOp :: Text -> Arr a b -> Arr a b -> SE (Arr a b) binOp name (Arr xs) (Arr ys) = fmap Arr $ zipWithM go xs ys     where         go x y = SE $ do@@ -425,7 +427,7 @@             infOprArr isArrayInit outVar name (inlineVar x) (inlineVar y)             return outVar -convert :: String -> Arr a b -> SE (Arr a b)+convert :: Text -> Arr a b -> SE (Arr a b) convert name (Arr vars) = fmap Arr $ mapM go vars     where         go v = SE $ do@@ -435,7 +437,7 @@          idRate1 = fmap (\r -> (r, [r])) [Kr, Ar, Ir, Sr, Fr] -convert2 :: String -> Arr a b -> Arr a b -> SE (Arr a b)+convert2 :: Text -> Arr a b -> Arr a b -> SE (Arr a b) convert2 name (Arr xs) (Arr ys) = fmap Arr $ zipWithM go xs ys     where         go x y = SE $ do@@ -445,15 +447,15 @@          idRate2 = fmap (\r -> (r, [r, r])) [Kr, Ar, Ir, Sr, Fr] -extractArray :: (Tuple b) => String -> Arr a b -> SE b+extractArray :: (Tuple b) => Text -> Arr a b -> SE b extractArray name (Arr vs) = SE $ fmap (toTuple . return) $ mapM (f . inlineVar) vs     where f a = depT $ opcs name [(Xr, [Xr])] [a] -extract1 :: (Tuple b, Tuple c) => Rate -> String -> Arr a b -> SE c+extract1 :: (Tuple b, Tuple c) => Rate -> Text -> Arr a b -> SE c extract1 rate name (Arr vs) = SE $ fmap (toTuple . return) $ mapM (f . inlineVar) vs     where f a = depT $ opcs name [(rate, [Xr])] [a] -extractWith :: (Tuple b, Tuple c, Tuple d) => String -> (Rate, [Rate]) -> Arr a b -> c -> SE d+extractWith :: (Tuple b, Tuple c, Tuple d) => Text -> (Rate, [Rate]) -> Arr a b -> c -> SE d extractWith name rates (Arr vs) argument = SE $ fmap (toTuple . return) $ hideGEinDep $ do         argExps <- fromTuple argument         return $ zipWithM (\var x -> f (inlineVar var) x) vs argExps@@ -600,18 +602,18 @@  --------------------------------------------------------------- -binOpCopy :: String -> Arr a b -> Arr a b -> Arr a b -> SE ()+binOpCopy :: Text -> Arr a b -> Arr a b -> Arr a b -> SE () binOpCopy name (Arr xs) (Arr ys) (Arr outs) = mapM_ go $ zip3 xs ys outs     where         go (x, y, outVar) = SE $ infOprArr noArrayInit outVar name (inlineVar x) (inlineVar y) -convertCopy :: String -> Arr a b -> Arr a b -> SE ()+convertCopy :: Text -> Arr a b -> Arr a b -> SE () convertCopy name (Arr vars) (Arr outs) = zipWithM_ go vars outs     where         go v outVar = SE $ opcsArr noArrayInit outVar name idRate1 [inlineVar v]         idRate1 = fmap (\r -> (r, [r])) [Kr, Ar, Ir, Sr, Fr] -convert2Copy :: String -> Arr a b -> Arr a b -> Arr a b -> SE ()+convert2Copy :: Text -> Arr a b -> Arr a b -> Arr a b -> SE () convert2Copy name (Arr xs) (Arr ys) (Arr outs) = mapM_ go $ zip3 xs ys outs     where         go (x, y, outVar) = SE $ opcsArr noArrayInit outVar name idRate2 [inlineVar x, inlineVar y]
src/Csound/Typed/Types/Evt.hs view
@@ -8,6 +8,7 @@  import Data.Default import Data.Boolean+import Data.Kind (Type)  import Csound.Typed.Types.Prim import Csound.Typed.Types.Tuple@@ -57,15 +58,15 @@ sigToEvt = boolToEvt . ( ==* 1) . kr  -- | Filters events with predicate.-filterE :: (a -> BoolD) -> Evt a -> Evt a+filterE :: (a -> BoolSig) -> Evt a -> Evt a filterE pr evt = Evt $ \bam -> runEvt evt $ \a ->-    when1 (boolSig $ pr a) $ bam a+    when1 (pr a) $ bam a  -- | Filters events with effectful predicate.-filterSE :: (a -> SE BoolD) -> Evt a -> Evt a+filterSE :: (a -> SE BoolSig) -> Evt a -> Evt a filterSE mpr evt = Evt $ \bam -> runEvt evt $ \a -> do     pr <- mpr a-    when1 (boolSig pr) $ bam a+    when1 pr $ bam a  -- | Accumulator for events with side effects. accumSE :: (Tuple s) => s -> (a -> s -> SE (b, s)) -> Evt a -> Evt b@@ -83,19 +84,19 @@  -- | Accumulator for events with side effects and filtering. Event triggers -- only if the first element in the tripplet is true.-filterAccumSE :: (Tuple s) => s -> (a -> s -> SE (BoolD, b, s)) -> Evt a -> Evt b+filterAccumSE :: (Tuple s) => s -> (a -> s -> SE (BoolSig, b, s)) -> Evt a -> Evt b filterAccumSE s0 update evt = Evt $ \bam -> do     (readSt, writeSt) <- sensorsSE s0     runEvt evt $ \a -> do         s1 <- readSt         (isOn, b, s2) <- update a s1-        when1 (boolSig isOn) $ bam b+        when1 isOn $ bam b         writeSt s2  -- | Accumulator with filtering. It can skip the events from the event stream. -- If the third element of the triple equals to 1 then we should include the -- event in the resulting stream. If the element equals to 0 we skip the event.-filterAccumE :: (Tuple s) => s -> (a -> s -> (BoolD, b, s)) -> Evt a -> Evt b+filterAccumE :: (Tuple s) => s -> (a -> s -> (BoolSig, b, s)) -> Evt a -> Evt b filterAccumE s0 update = filterAccumSE s0 $ \a s -> return $ update a s  -- | Get values of some signal at the given events.@@ -131,7 +132,7 @@ -- > type instance Snap (a, b, c, d) = (Snap a, Snap b, Snap c, Snap d) -- > type instance Snap (a, b, c, d, e) = (Snap a, Snap b, Snap c, Snap d, Snap e) -- > type instance Snap (a, b, c, d, e, f) = (Snap a, Snap b, Snap c, Snap d, Snap e, Snap f)-type family Snap a :: *+type family Snap a :: Type  type instance Snap D   = D type instance Snap Str = Str
src/Csound/Typed/Types/Lift.hs view
@@ -1,4 +1,4 @@-{-# Language FlexibleInstances #-}+{-# Language FlexibleInstances, ScopedTypeVariables #-} module Csound.Typed.Types.Lift(     GE, E,     -- * Lifters@@ -19,6 +19,7 @@  ) where +import Data.Proxy import Csound.Dynamic import Csound.Typed.Types.Prim import Csound.Typed.Types.Tuple@@ -60,17 +61,13 @@  -- multi out helpers -fromPm :: Tuple a => Pm -> a-fromPm (Pm a) = res-    where res = toTuple $ fmap ( $ tupleArity res) a--fromDm :: Tuple a => Dm -> SE a-fromDm (Dm a) = res-    where-        res = fmap toTuple $ fromDep $ hideGEinDep $ fmap ( $ (tupleArity $ proxy res)) a+fromPm :: forall a. Tuple a => Pm -> a+fromPm (Pm a) =+  toTuple $ fmap ( $ tupleArity (Proxy :: Proxy a)) a -        proxy :: SE a -> a-        proxy = const undefined+fromDm :: forall a. Tuple a => Dm -> SE a+fromDm (Dm a) =+  fmap toTuple $ fromDep $ hideGEinDep $ fmap ( $ (tupleArity (Proxy :: Proxy a))) a  -- pure single 
src/Csound/Typed/Types/Prim.hs view
@@ -32,7 +32,7 @@     -- ** logic funs     when1, whens, untilDo, whileDo, boolSig,     equalsTo, notEqualsTo, lessThan, greaterThan, lessThanEquals, greaterThanEquals,-    whenD1, whenDs, untilDoD, whileDoD, untilBeginD,+    whenD1, whenDs, untilDoD, whileDoD ) where  import Prelude hiding ((<*))@@ -48,10 +48,13 @@  import Data.Default import Data.Boolean+import Data.Kind (Type) import Data.String+import Data.Text (Text)+import Data.Text qualified as Text -import Csound.Dynamic hiding (genId, double, int, str, when1, whens, ifBegin, ifEnd, elseBegin, untilBegin, untilEnd, untilDo, whileBegin, whileEnd, whileDo)-import qualified Csound.Dynamic as D(double, int, str, ifBegin, ifEnd, elseBegin, untilBegin, untilEnd, whileBegin, whileEnd)+import Csound.Dynamic hiding (genId, double, int, str, when1, whens, whileEnd)+import qualified Csound.Dynamic as D import Csound.Typed.GlobalState.GE import Csound.Typed.GlobalState.SE import Csound.Typed.GlobalState.Options@@ -169,7 +172,7 @@ preTab :: TabSize -> Int -> TabArgs -> Tab preTab size gen args = TabPre $ PreTab size (IntGenId gen) args -preStringTab :: TabSize -> String -> TabArgs -> Tab+preStringTab :: TabSize -> Text -> TabArgs -> Tab preStringTab size gen args = TabPre $ PreTab size (StringGenId gen) args  data PreTab = PreTab@@ -214,7 +217,7 @@ fromPreTab a = withOptions $ \opt -> go (defTabFi opt) a     where         go :: TabFi -> PreTab -> Gen-        go tabFi tab = Gen size (preTabGen tab) args file+        go tabFi tab = Gen size (preTabGen tab) args (Text.pack <$> file)             where size = defineTabSize (getTabSizeBase tabFi tab) (preTabSize tab)                   (args, file) = defineTabArgs size (preTabArgs tab) @@ -389,7 +392,7 @@      toGE x = case x of         Sig a       -> a-        PrimSig d   -> return $ D.double d+        PrimSig d   -> return $ setRate Kr $ D.double d  instance Val D      where     fromGE  = D@@ -548,7 +551,7 @@     ; asin = dOn1 asin asin; atan = dOn1 atan atan;  acos = dOn1 acos acos ; asinh = dOn1 asinh asinh; acosh = dOn1 acosh acosh; atanh = dOn1 atanh atanh }  class IsPrim a where-    type PrimOf a :: *+    type PrimOf a :: Type     getPrim :: a -> Maybe (PrimOf a)     fromPrim :: PrimOf a -> a @@ -628,27 +631,27 @@ instance IfB Sig  where     ifB x a b = case x of         PrimBoolSig c -> if c then a else b-        _                -> on3 ifB x a b+        _                -> on3 (ifExp IfKr) x a b  instance IfB D    where     ifB x a b = case x of         PrimBoolD c -> if c then a else b-        _              -> on3 ifB x a b+        _              -> on3 (ifExp IfIr) x a b  instance IfB Tab  where     ifB x a b = case x of         PrimBoolD c -> if c then a else b-        _              -> on3 ifB x a b+        _              -> on3 (ifExp IfIr) x a b  instance IfB Str  where     ifB x a b = case x of         PrimBoolD c -> if c then a else b-        _              -> on3 ifB x a b+        _              -> on3 (ifExp IfIr) x a b  instance IfB Spec where     ifB x a b = case x of         PrimBoolD c -> if c then a else b-        _           -> on3 ifB x a b+        _           -> on3 (ifExp IfIr) x a b  instance EqB Sig  where { (==*) = op2 (==) (==*);    (/=*) = op2 (/=) (/=*) } instance EqB D    where { (==*) = op2 (==) (==*);    (/=*) = op2 (/=) (/=*) }@@ -656,108 +659,59 @@ instance OrdB Sig where { (<*)  = op2 (<) (<*) ;    (>*)  = op2 (>) (>*);     (<=*) = op2 (<=) (<=*);    (>=*) = op2 (>=) (>=*) } instance OrdB D   where { (<*)  = op2 (<) (<*) ;    (>*)  = op2 (>) (>*);     (<=*) = op2 (<=) (<=*);    (>=*) = op2 (>=) (>=*) } +-- | Constructs generic if-block statement with single then case+-- We can choose constructors for: if, while, until statements+ifBlockBy :: Val cond => (E -> DepT GE (CodeBlock E) -> DepT GE ()) -> cond -> SE () -> SE ()+ifBlockBy cons p body =+  fromDep_ $ do+    pE <- lift $ toGE p+    cons pE (toBlock $ unSE body)+ -- | Invokes the given procedure if the boolean signal is true. when1 :: BoolSig -> SE () -> SE () when1 xp body = case xp of     PrimBoolSig p -> if p then body else return ()-    _             -> do-        ifBegin xp-        body-        ifEnd+    _             -> ifBlockBy (D.when1 IfKr) xp body  -- | The chain of @when1@s. Tests all the conditions in sequence -- if everything is false it invokes the procedure given in the second argument. whens :: [(BoolSig, SE ())] -> SE () -> SE () whens bodies el = case bodies of     []   -> el-    a:as -> do-        ifBegin (fst a)-        snd a-        elseIfs as-        elseBegin-        el-        foldl1 (>>) $ replicate (length bodies) ifEnd-    where elseIfs = mapM_ (\(p, body) -> elseBegin >> ifBegin p >> body)--ifBegin :: BoolSig -> SE ()-ifBegin a = fromDep_ $ D.ifBegin Kr =<< lift (toGE a)--ifEnd :: SE ()-ifEnd = fromDep_ D.ifEnd--elseBegin :: SE ()-elseBegin = fromDep_ D.elseBegin+    _    -> fromDep_ $ join $ lift $ do+        checksE <- mapM (toGE . fst) bodies+        let bodiesE = fmap (toBlock . unSE . snd) bodies+            elE = toBlock $ unSE el+        pure $ D.whens IfKr (zip checksE bodiesE) elE  -- | Invokes the given procedure if the boolean signal is true. whenD1 :: BoolD -> SE () -> SE () whenD1 xp body = case xp of     PrimBoolD p -> if p then body else return ()-    _             -> do-        ifBeginD xp-        body-        ifEnd+    _           -> ifBlockBy (D.when1 IfIr) xp body  -- | The chain of @when1@s. Tests all the conditions in sequence -- if everything is false it invokes the procedure given in the second argument. whenDs :: [(BoolD, SE ())] -> SE () -> SE () whenDs bodies el = case bodies of     []   -> el-    a:as -> do-        ifBeginD (fst a)-        snd a-        elseIfs as-        elseBegin-        el-        foldl1 (>>) $ replicate (length bodies) ifEnd-    where elseIfs = mapM_ (\(p, body) -> elseBegin >> ifBeginD p >> body)--ifBeginD :: BoolD -> SE ()-ifBeginD a = fromDep_ $ D.ifBegin Ir =<< lift (toGE a)---- elseIfBegin :: BoolSig -> SE ()--- elseIfBegin a = fromDep_ $ D.elseIfBegin =<< lift (toGE a)+    _    -> fromDep_ $ join $ lift $ do+        checksE <- mapM (toGE . fst) bodies+        let bodiesE = fmap (toBlock . unSE . snd) bodies+            elE = toBlock $ unSE el+        pure $ D.whens IfIr (zip checksE bodiesE) elE  untilDo :: BoolSig -> SE () -> SE ()-untilDo p body = do-    untilBegin p-    body-    untilEnd+untilDo = ifBlockBy (D.untilBlock IfKr)  whileDo :: BoolSig -> SE () -> SE ()-whileDo p body = do-    whileBegin p-    body-    whileEnd--whileBegin :: BoolSig -> SE ()-whileBegin a = fromDep_ $ D.whileBegin =<< lift (toGE a)--whileEnd :: SE ()-whileEnd = fromDep_ D.whileEnd--untilBegin :: BoolSig -> SE ()-untilBegin a = fromDep_ $ D.untilBegin =<< lift (toGE a)--untilEnd :: SE ()-untilEnd = fromDep_ D.untilEnd+whileDo = ifBlockBy (D.whileBlock IfKr)  untilDoD :: BoolD -> SE () -> SE ()-untilDoD p body = do-    untilBeginD p-    body-    untilEnd+untilDoD = ifBlockBy (D.untilBlock IfIr)  whileDoD :: BoolD -> SE () -> SE ()-whileDoD p body = do-    whileBeginD p-    body-    whileEnd--whileBeginD :: BoolD -> SE ()-whileBeginD a = fromDep_ $ D.whileBegin =<< lift (toGE a)--untilBeginD :: BoolD -> SE ()-untilBeginD a = fromDep_ $ D.untilBegin =<< lift (toGE a)+whileDoD = ifBlockBy (D.whileBlock IfIr)  -- | Creates a constant boolean signal. boolSig :: BoolD -> BoolSig
+ src/Csound/Typed/Types/PureArray.hs view
@@ -0,0 +1,70 @@+-- | Pure (read-only) arrays+module Csound.Typed.Types.PureArray+  ( PureArr+  , PureArrD+  , newPureArr+  , newPureArrD+  , readPureArr+  , readPureArrD+  ) where++import Data.List qualified as List+import Data.Proxy++import Csound.Dynamic (E, IfRate (..))+import Csound.Dynamic qualified as D+import Csound.Typed.Types.Prim+import Csound.Typed.Types.Tuple+import Csound.Typed.GlobalState.GE++-- | Pure (read-only) array.+-- We can initialise it and it's a pure value.+-- After initialisation we can read values with lookupPureArr+--+-- This version works on initialisation rate+newtype PureArrD a = PureArrD (GE [E])++-- | Pure (read-only) array.+-- We can initialise it and it's a pure value.+-- After initialisation we can read values with lookupPureArr+--+-- This version works on control rate+newtype PureArr a = PureArr (GE [E])++-----------------------------------------------------------------------------+-- initialization++-- | Inits pure array that can be read at control rate+newPureArr :: Tuple a => [a] -> PureArr a+newPureArr = PureArr . newPureArrBy IfKr++-- | Inits pure array that can be read at initialisation rate+newPureArrD :: Arg a => [a] -> PureArrD a+newPureArrD = PureArrD . newPureArrBy IfKr++newPureArrBy :: forall a . Tuple a => IfRate -> [a] -> GE [E]+newPureArrBy procRate initVals = do+  initPrimVals <- List.transpose <$> mapM fromTuple initVals+  pure $ zipWith (\outRate initPrims -> D.initPureArr outRate procRate initPrims) outRates initPrimVals+  where+    outRates = tupleRates (Proxy @a)++-----------------------------------------------------------------------------+-- read values++readPureArr :: Tuple a => PureArr a -> Sig -> a+readPureArr (PureArr vals) index =+  readPureArrBy IfKr vals (toGE index)++readPureArrD :: Arg a => PureArrD a -> D -> a+readPureArrD (PureArrD vals) index =+  readPureArrBy IfIr vals (toGE index)++readPureArrBy :: forall a . Tuple a => IfRate -> GE [E] -> GE E -> a+readPureArrBy procRate vals index = toTuple $ do+  indexE <- index+  valsE  <- vals+  pure $ zipWith (\outRate arr -> D.readPureArr outRate procRate arr (D.setRate indexRate indexE)) outRates valsE+  where+    indexRate = D.fromIfRate procRate+    outRates = tupleRates (Proxy @a)
src/Csound/Typed/Types/SigSpace.hs view
@@ -17,6 +17,7 @@ import Control.Applicative import Csound.Typed.Types.Prim import Csound.Typed.GlobalState.SE+import Data.Kind (Type) import Data.NumInstances.Tuple()  -- | A class for easy way to process the outputs of the instruments.@@ -476,7 +477,7 @@ -----------------------------------------------------------------------  class SigSpace b => At a b c where-    type AtOut a b c :: *+    type AtOut a b c :: Type     at :: (a -> b) -> c -> AtOut a b c  instance SigSpace a => At Sig Sig a where
src/Csound/Typed/Types/Tuple.hs view
@@ -3,6 +3,9 @@         TypeFamilies,         FlexibleContexts,         FlexibleInstances,+        RankNTypes,+        ScopedTypeVariables,+        InstanceSigs,         CPP #-} module Csound.Typed.Types.Tuple(     -- ** Tuple@@ -34,6 +37,7 @@ import Control.Monad.Trans.Class import Data.Default import Data.Boolean+import Data.Proxy  import Csound.Dynamic import Csound.Typed.Types.Prim@@ -49,8 +53,8 @@ data TupleMethods a = TupleMethods     { fromTuple_  :: a -> GE [E]     , toTuple_    :: GE [E] -> a-    , tupleArity_ :: a -> Int-    , tupleRates_ :: a -> [Rate]+    , tupleArity_ :: Proxy a -> Int+    , tupleRates_ :: Proxy a -> [Rate]     , defTuple_   :: a }  fromTuple :: Tuple a => a -> GE [E]@@ -59,10 +63,10 @@ toTuple :: Tuple a => GE [E] -> a toTuple = toTuple_ tupleMethods -tupleArity :: Tuple a => a -> Int+tupleArity :: Tuple a => Proxy a -> Int tupleArity = tupleArity_ tupleMethods -tupleRates :: Tuple a => a -> [Rate]+tupleRates :: Tuple a => Proxy a -> [Rate] tupleRates = tupleRates_ tupleMethods  defTuple :: Tuple a => a@@ -77,11 +81,13 @@     { fromTuple_  = fromTuple . from     , toTuple_    = to . toTuple     , tupleArity_ = const $ tupleArity $ proxy to-    , tupleRates_ = tupleRates . from+    , tupleRates_ = const $ tupleRates $ proxy to     , defTuple_   = to defTuple }-    where proxy :: (a -> b) -> a-          proxy = undefined+    where+      proxy :: (a -> b) -> Proxy a+      proxy = const Proxy + -- Tuple instances  primTupleMethods :: (Val a, Default a) => Rate -> TupleMethods a@@ -109,20 +115,25 @@ instance Tuple TabList where tupleMethods = primTupleMethods Kr  instance (Tuple a, Tuple b) => Tuple (a, b) where-    tupleMethods = TupleMethods fromTuple' toTuple' tupleArity' tupleRates' defTuple'-        where-            fromTuple' (a, b) = liftA2 (++) (fromTuple a) (fromTuple b)-            tupleArity' x = let (a, b) = proxy x in tupleArity a + tupleArity b-                where proxy :: (a, b) -> (a, b)-                      proxy = const (undefined, undefined)-            toTuple' xs = (a, b)-                where a = toTuple $ fmap (take (tupleArity a)) xs-                      xsb = fmap (drop (tupleArity a)) xs-                      b = toTuple $ fmap (take (tupleArity b)) xsb+    tupleMethods = TupleMethods+        { fromTuple_ = \(a, b) -> liftA2 (++) (fromTuple a) (fromTuple b)+        , tupleArity_ = \x -> let (a, b) = splitProxy x in tupleArity a + tupleArity b+        , toTuple_ = \xs ->+                let a = toTuple $ fmap (take (tupleArity $ proxyAsType a)) xs+                    xsb = fmap (drop (tupleArity $ proxyAsType a)) xs+                    b = toTuple $ fmap (take (tupleArity $ proxyAsType b)) xsb+                in (a, b) -            tupleRates' (a, b) = tupleRates a ++ tupleRates b-            defTuple' = (defTuple, defTuple)+        , tupleRates_ = \x -> let (a, b) = splitProxy x in tupleRates a ++ tupleRates b+        , defTuple_ = (defTuple, defTuple)+        } +proxyAsType :: a -> Proxy a+proxyAsType = const Proxy++splitProxy :: Proxy (a, b) -> (Proxy a, Proxy b)+splitProxy = const (Proxy, Proxy)+ instance (Tuple a, Tuple b, Tuple c) => Tuple (a, b, c) where tupleMethods = makeTupleMethods cons3 split3 instance (Tuple a, Tuple b, Tuple c, Tuple d) => Tuple (a, b, c, d) where tupleMethods = makeTupleMethods cons4 split4 instance (Tuple a, Tuple b, Tuple c, Tuple d, Tuple e) => Tuple (a, b, c, d, e) where tupleMethods = makeTupleMethods cons5 split5@@ -133,9 +144,9 @@ ------------------------------------------------------------------------------- -- multiple outs -multiOuts :: Tuple a => E -> a-multiOuts expr = res-    where res = toTuple $ return $ mo (tupleArity res) expr+multiOuts :: forall a . Tuple a => E -> a+multiOuts expr =+  toTuple $ return $ mo (tupleArity (Proxy :: Proxy a)) expr  ar1 :: Sig -> Sig ar2 :: (Sig, Sig) -> (Sig, Sig)@@ -178,11 +189,8 @@ instance Sig2s Sig6 instance Sig2s Sig8 -outArity :: Tuple a => SE a -> Int-outArity = tupleArity . proxy-    where-        proxy :: SE a -> a-        proxy = const undefined+outArity :: forall a . Tuple a => SE a -> Int+outArity = const $ tupleArity (Proxy :: Proxy a)  --------------------------------------------------------------------------- -- Arguments@@ -209,11 +217,11 @@ toArg :: Arg a => a toArg = arg 4 -argArity :: Arg a => a -> Int-argArity = tupleArity+argArity :: forall a . Arg a => a -> Int+argArity = const (tupleArity (Proxy :: Proxy a)) -toNote :: Arg a => a -> GE [E]-toNote a = zipWithM phi (tupleRates a) =<< fromTuple a+toNote :: forall a . Arg a => a -> GE [E]+toNote a = zipWithM phi (tupleRates (Proxy :: Proxy a)) =<< fromTuple a     where         phi rate x = case rate of             Sr -> saveStr $ getStringUnsafe x@@ -240,7 +248,7 @@  instance IfB BoolTuple where     ifB mp (BoolTuple mas) (BoolTuple mbs) = BoolTuple $-        liftA3 (\p as bs -> zipWith (ifB p) as bs) (toGE mp) mas mbs+        liftA3 (\p as bs -> zipWith (ifExp IfKr p) as bs) (toGE mp) mas mbs  -- | @ifB@ for tuples of csound values. ifTuple :: (Tuple a) => BoolSig -> a -> a -> a@@ -258,42 +266,40 @@  newtype BoolArg = BoolArg { unBoolArg :: GE [E] } -toBoolArg :: (Arg a, Tuple a) => a -> BoolArg+toBoolArg :: (Tuple a) => a -> BoolArg toBoolArg   = BoolArg . fromTuple -fromBoolArg :: (Arg a, Tuple a) => BoolArg -> a+fromBoolArg :: (Tuple a) => BoolArg -> a fromBoolArg = toTuple . unBoolArg -type instance BooleanOf BoolArg = BoolD+type instance BooleanOf BoolArg = BoolSig  instance IfB BoolArg where     ifB mp (BoolArg mas) (BoolArg mbs) = BoolArg $-        liftA3 (\p as bs -> zipWith (ifB p) as bs) (toGE mp) mas mbs+        liftA3 (\p as bs -> zipWith (ifExp IfKr p) as bs) (toGE mp) mas mbs  -- | @ifB@ for constants.-ifArg :: (Arg a, Tuple a) => BoolD -> a -> a -> a+ifArg :: (Arg a, Tuple a) => BoolSig -> a -> a -> a ifArg p a b = fromBoolArg $ ifB p (toBoolArg a) (toBoolArg b)  -- | @guardedB@ for constants.-guardedArg :: (Tuple b, Arg b) => [(BoolD, b)] -> b -> b+guardedArg :: (Tuple b) => [(BoolSig, b)] -> b -> b guardedArg bs b = fromBoolArg $ guardedB undefined (fmap (second toBoolArg) bs) (toBoolArg b)  -- | @caseB@ for constants.-caseArg :: (Tuple b, Arg b) => a -> [(a -> BoolD, b)] -> b -> b+caseArg :: (Tuple b, Arg b) => a -> [(a -> BoolSig, b)] -> b -> b caseArg a bs other = fromBoolArg $ caseB a (fmap (second toBoolArg) bs) (toBoolArg other)  ----------------------------------------------------------- -- tuple constructors -pureTuple :: Tuple a => GE (MultiOut [E]) -> a-pureTuple a = res-    where res = toTuple $ fmap ($ tupleArity res) a+pureTuple :: forall a . Tuple a => GE (MultiOut [E]) -> a+pureTuple a =+  toTuple $ fmap ($ tupleArity (Proxy :: Proxy a)) a -dirtyTuple :: Tuple a => GE (MultiOut [E]) -> SE a-dirtyTuple a = res-    where-        res = fmap (toTuple . return) $ SE-                $ mapM depT =<< (lift $ fmap ($ (tupleArity $ proxy res)) a) -        proxy :: SE a -> a-        proxy = const undefined+dirtyTuple :: forall a . Tuple a => GE (MultiOut [E]) -> SE a+dirtyTuple a =+  fmap (toTuple . return) $ SE+    $ mapM depT =<< (lift $ fmap ($ (tupleArity (Proxy :: Proxy a))) a)+