packages feed

djembe-0.1.1.2: README.md

# Djembe

Djembe is a Haskell embedded domain-specific language for composing drum beats.

## Example

Let's define a few quarter note length drum hits
```haskell
bass  = n4 $ hsong (Hit BassDrum1 0 100)
snare = n4 $ hsong (Hit SnareDrum2 0 100)
hihat = n4 $ hsong (Hit ClosedHihat 0 100)
```

Now let's create a simple composition
```haskell
beat = bass <> snare <> bass <> hihat
```

Finally we can play it at a specific tempo
```haskell
> play beat 200
```

We can also compose beats using [dseq](http://www.csounds.com/journal/issue8/dseq.html) notation
``` haskell
funky = dseq OpenHihat   8 ".... ...7 .... .7.."
     <> dseq ClosedHihat 8 "7777 777. 7777 7.77"
     <> dseq SnareDrum1  8 ".... 7..7 .7.7 7..7"
     <> dseq BassDrum1   8 "7.7. ..7. ..7. .7.."
```

## Inspiration
- [Bang](https://github.com/5outh/Bang)
- [The Haskell School of Music / Paul Hudak](http://haskell.cs.yale.edu/?post_type=publication&p=112)
- [dseq](http://www.csounds.com/journal/issue8/dseq.html)