# fm.leadsheet.sheet

> Published by [leadsheet.fm](https://lexicon.garden/identity/did:plc:h2pnmd2phwtpwwar2amai6a5)

✓ This is the authoritative definition for this NSID.

## Description

A chord sheet or tab for a song, written in ChordPro.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:h2pnmd2phwtpwwar2amai6a5/fm.leadsheet.sheet)
- [Documentation](https://lexicon.garden/lexicon/did:plc:h2pnmd2phwtpwwar2amai6a5/fm.leadsheet.sheet/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:h2pnmd2phwtpwwar2amai6a5/fm.leadsheet.sheet/examples)

## Definitions

### `fm.leadsheet.sheet`

**Type**: `record`

A chord sheet or tab for a song, written in ChordPro.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `album` | `string` | No |  |
| `artist` | `string` | Yes | Performing artist, as credited on the recording this sheet follows. |
| `capo` | `integer` | No |  |
| `content` | `string` | Yes |  |
| `createdAt` | `string` (datetime) | Yes |  |
| `description` | `string` | No | Author's notes: strumming pattern, how the intro is played, etc. |
| `difficulty` | `string` | No |  |
| `draft` | `boolean` | No | Not published yet: apps list and search only published sheets, and show a draft only to its author. Like any record, a draft is still publicly readable from the author's repo. |
| `forkOf` | `ref` → `com.atproto.repo.strongRef` | No | The sheet this one was derived from, as it was when forked. |
| `format` | `string` | No | Markup of `content`. ChordPro: inline [C]hords, {directives}, and {start_of_tab} blocks. |
| `key` | `string` | No | Key the sheet is written in, e.g. 'G' or 'F#m'. |
| `kind` | `string` | No | What the sheet is for: chords over lyrics (guitar), guitar tablature, ukulele chords, bass, or piano. |
| `links` | `array` | No | Where to hear the recording this sheet follows: YouTube, Bandcamp, SoundCloud, a streaming service. http(s) URLs. |
| `tags` | `array` | No |  |
| `title` | `string` | Yes | Song title. |
| `tuning` | `string` | No | How the instrument (see `kind`) is tuned. Unset or 'standard' is that instrument's standard: EADGBE guitar, GCEA ukulele, EADG bass. |
| `updatedAt` | `string` (datetime) | No |  |
| `voicings` | `array` | No | Chord shapes the author chose, at most one per chord. Readers see these instead of the shapes the app would pick. |

### `fm.leadsheet.sheet#voicing`

**Type**: `object`

How to play one chord of the sheet.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `chord` | `string` | Yes | The chord as written in `content`, e.g. 'C' or 'F#m7'. |
| `frets` | `array` | Yes | Fret for each string, in chart order (low E side first on guitar and bass, G first on ukulele), in the sheet's tuning and relative to its capo: -1 = not played, 0 = open. |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "A chord sheet or tab for a song, written in ChordPro.",
      "key": "tid",
      "record": {
        "properties": {
          "album": {
            "maxGraphemes": 200,
            "maxLength": 1000,
            "type": "string"
          },
          "artist": {
            "description": "Performing artist, as credited on the recording this sheet follows.",
            "maxGraphemes": 200,
            "maxLength": 1000,
            "type": "string"
          },
          "capo": {
            "maximum": 12,
            "minimum": 0,
            "type": "integer"
          },
          "content": {
            "maxGraphemes": 50000,
            "maxLength": 100000,
            "type": "string"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "description": {
            "description": "Author's notes: strumming pattern, how the intro is played, etc.",
            "maxGraphemes": 3000,
            "maxLength": 10000,
            "type": "string"
          },
          "difficulty": {
            "knownValues": [
              "beginner",
              "intermediate",
              "advanced"
            ],
            "maxLength": 32,
            "type": "string"
          },
          "draft": {
            "default": false,
            "description": "Not published yet: apps list and search only published sheets, and show a draft only to its author. Like any record, a draft is still publicly readable from the author's repo.",
            "type": "boolean"
          },
          "forkOf": {
            "description": "The sheet this one was derived from, as it was when forked.",
            "ref": "com.atproto.repo.strongRef",
            "type": "ref"
          },
          "format": {
            "default": "chordpro",
            "description": "Markup of `content`. ChordPro: inline [C]hords, {directives}, and {start_of_tab} blocks.",
            "knownValues": [
              "chordpro"
            ],
            "maxLength": 64,
            "type": "string"
          },
          "key": {
            "description": "Key the sheet is written in, e.g. 'G' or 'F#m'.",
            "maxLength": 16,
            "type": "string"
          },
          "kind": {
            "default": "chords",
            "description": "What the sheet is for: chords over lyrics (guitar), guitar tablature, ukulele chords, bass, or piano.",
            "knownValues": [
              "chords",
              "tab",
              "ukulele",
              "bass",
              "piano"
            ],
            "maxLength": 64,
            "type": "string"
          },
          "links": {
            "description": "Where to hear the recording this sheet follows: YouTube, Bandcamp, SoundCloud, a streaming service. http(s) URLs.",
            "items": {
              "format": "uri",
              "maxLength": 2000,
              "type": "string"
            },
            "maxLength": 5,
            "type": "array"
          },
          "tags": {
            "items": {
              "maxGraphemes": 64,
              "maxLength": 640,
              "type": "string"
            },
            "maxLength": 10,
            "type": "array"
          },
          "title": {
            "description": "Song title.",
            "maxGraphemes": 200,
            "maxLength": 1000,
            "type": "string"
          },
          "tuning": {
            "description": "How the instrument (see `kind`) is tuned. Unset or 'standard' is that instrument's standard: EADGBE guitar, GCEA ukulele, EADG bass.",
            "knownValues": [
              "standard",
              "eb-standard",
              "d-standard",
              "drop-d",
              "drop-c",
              "dadgad",
              "open-d",
              "open-g",
              "open-e",
              "open-c",
              "low-g",
              "baritone",
              "five-string"
            ],
            "maxLength": 64,
            "type": "string"
          },
          "updatedAt": {
            "format": "datetime",
            "type": "string"
          },
          "voicings": {
            "description": "Chord shapes the author chose, at most one per chord. Readers see these instead of the shapes the app would pick.",
            "items": {
              "ref": "#voicing",
              "type": "ref"
            },
            "maxLength": 100,
            "type": "array"
          }
        },
        "required": [
          "title",
          "artist",
          "content",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    },
    "voicing": {
      "description": "How to play one chord of the sheet.",
      "properties": {
        "chord": {
          "description": "The chord as written in `content`, e.g. 'C' or 'F#m7'.",
          "maxLength": 64,
          "type": "string"
        },
        "frets": {
          "description": "Fret for each string, in chart order (low E side first on guitar and bass, G first on ukulele), in the sheet's tuning and relative to its capo: -1 = not played, 0 = open.",
          "items": {
            "maximum": 24,
            "minimum": -1,
            "type": "integer"
          },
          "maxLength": 12,
          "minLength": 1,
          "type": "array"
        }
      },
      "required": [
        "chord",
        "frets"
      ],
      "type": "object"
    }
  },
  "description": "A chord sheet or tab for a song, written in ChordPro.",
  "id": "fm.leadsheet.sheet",
  "lexicon": 1
}
```
