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 +13/−7
- src/Csound/Typed/Control.hs +9/−16
- src/Csound/Typed/Control/Api.hs +11/−10
- src/Csound/Typed/Control/ArrayTraverse.hs +2/−4
- src/Csound/Typed/Control/Instr.hs +10/−14
- src/Csound/Typed/Control/MacrosArgs.hs +4/−3
- src/Csound/Typed/Control/Mix.hs +5/−10
- src/Csound/Typed/Control/Ref.hs +12/−12
- src/Csound/Typed/Control/Sf2.hs +7/−6
- src/Csound/Typed/GlobalState/Elements.hs +38/−65
- src/Csound/Typed/GlobalState/GE.hs +41/−43
- src/Csound/Typed/GlobalState/Opcodes.hs +20/−17
- src/Csound/Typed/GlobalState/Options.hs +19/−14
- src/Csound/Typed/GlobalState/Port.hs +13/−12
- src/Csound/Typed/GlobalState/SE.hs +1/−2
- src/Csound/Typed/Gui/BoxModel.hs +10/−11
- src/Csound/Typed/Gui/Cabbage/Cabbage.hs +22/−21
- src/Csound/Typed/Gui/Cabbage/CabbageLang.hs +8/−7
- src/Csound/Typed/Gui/Gui.hs +19/−15
- src/Csound/Typed/Gui/Pretty.hs +11/−10
- src/Csound/Typed/Gui/Types.hs +6/−5
- src/Csound/Typed/Gui/Widget.hs +49/−47
- src/Csound/Typed/Render.hs +15/−8
- src/Csound/Typed/Types.hs +10/−8
- src/Csound/Typed/Types/Array.hs +12/−10
- src/Csound/Typed/Types/Evt.hs +9/−8
- src/Csound/Typed/Types/Lift.hs +8/−11
- src/Csound/Typed/Types/Prim.hs +39/−85
- src/Csound/Typed/Types/PureArray.hs +70/−0
- src/Csound/Typed/Types/SigSpace.hs +2/−1
- src/Csound/Typed/Types/Tuple.hs +55/−49
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)+