Safe Haskell | None |
---|
A simple drum sequencer app.
Each row plays a different note. Each note can have a velocity; to set this, press the triangle button on the right corresponding to the given row; then the columns represent velocities.
When there are more than 8 step, you can scroll with the left/right buttons (jumping 8 steps).
- data Cfg = Cfg {
- seqSteps :: !Int
- stepResolution :: !Int
- midiFrom :: !Int
- defaultVelocity :: !Int
- defaultCfg :: Cfg
- data Mode
- = Pattern
- | Velocities !Int
- data State = State {}
- data PlayNote = PlayNote {}
- drumSequencer :: Cfg -> MonadicApp Cfg Mode State
- initialState :: Cfg -> State
- startStop :: Cfg -> Bool -> State -> State
- button :: Cfg -> ButtonPress -> ButtonMonad Mode State ()
- counterStep :: Cfg -> Int -> Int
- invCounterStep :: Cfg -> Int -> Int
- totalTicks :: Cfg -> Int
- noteOnOff :: Cfg -> Bool -> Int -> Int -> MidiMessage'
- sync :: Cfg -> Mode -> Int -> SyncMonad State ()
- renderArrows :: Cfg -> State -> [(Button, Color)]
- render :: Cfg -> Mode -> State -> Maybe Int -> RenderMonad ()
Documentation
Cfg | |
|
8 steps by default, and 1/8th note per step
Notes played at the moment
drumSequencer :: Cfg -> MonadicApp Cfg Mode StateSource
A drum sequencer app.
initialState :: Cfg -> StateSource
button :: Cfg -> ButtonPress -> ButtonMonad Mode State ()Source
counterStep :: Cfg -> Int -> IntSource
invCounterStep :: Cfg -> Int -> IntSource
totalTicks :: Cfg -> IntSource