# demo-song

> A chill song at 80 BPM on one two-bar loop, E minor seven, G and A, all of it notes for MIDI tracks: its drums on a drum kit's pads, one part each with a fill, and an organ, a pad, a bass and a lead hook. What the arrangement's demo plays.

```bash
npx shadcn@latest add @audio-ui/demo-song
```

```ts
import { SONG_TEMPO, SONG_SCORE } from "@/lib/demo-song";
```

- Files: `lib/demo-song.ts`
- Depends on: `drum-kit`; npm: `@audio-ui/engine`
- Used by: `block-timeline`

| Export | Kind | What it is |
| --- | --- | --- |
| `SONG_TEMPO` | const |  |
| `SongNote` | interface | A note of the song, as a MIDI clip holds it: its pitch, and its start and length in beats. |
| `SONG_SCORE` | const | The song's notes by part, for MIDI tracks to play, each as long as its loop. |
| `SongScorePart` | type |  |

## Usage

The arrangement demo's song: a chill song at 80 BPM on one two-bar loop (intro, verse, chorus, outro), every part notes, played by a drum kit's pads, an organ, a pad, a bass and a lead.

```ts
import { SONG_SCORE, SONG_TEMPO } from "@/lib/demo-song";

const notes = SONG_SCORE["drums-fill"]; // a part's notes, in quarter notes
```

The [Arrangement](/docs/components/base/arrangement) block lays its parts out as clips.
