launchpad-control-0.0.1.0: High and low-level interface to the Novation Launchpad midi controller.

Safe HaskellNone

System.MIDI.Launchpad.Apps.DrumSeq

Description

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).

Synopsis

Documentation

data Cfg Source

Constructors

Cfg 

Fields

seqSteps :: !Int

How many steps we have (it can be more than 8!)

stepResolution :: !Int

Length of a step. 24 is quarter note, 12 is 1/8th, etc.

midiFrom :: !Int

which note should be the lowest (MIDI notes, for example 36 or 48 or 60 are C notes)

defaultVelocity :: !Int

default velocity of a note (0..7)

Instances

defaultCfg :: CfgSource

8 steps by default, and 1/8th note per step

data Mode Source

Constructors

Pattern 
Velocities !Int 

Instances

data State Source

Constructors

State 

Fields

_playing :: !Bool
 
_screenPos :: !Int
 
_notes :: !(UArray (Int, Int) Int)

encoding both velocities and notes

_playNotes :: [PlayNote]
 

Instances

data PlayNote Source

Notes played at the moment

Constructors

PlayNote 

Fields

_note :: !Int
 
_stopAt :: !Int
 

drumSequencer :: Cfg -> MonadicApp Cfg Mode StateSource

A drum sequencer app.