Features

Export and print

Paper, PDF and .gp for everyone you play with, plus MIDI for other software and WAV audio rendered by the Resonance Engine.

Print-quality PDF, or straight to paper

A4 or Letter, portrait or landscape, with margins, scale, which tracks to include, headers and page numbers — then write a PDF or hand the same settings to the system print dialog. The output is vector, from the same renderer that draws the screen.

.gp that Guitar Pro opens

Tonograph writes .gp. Before it does, it tells you exactly what the format cannot carry from your score — so nothing goes missing quietly.

Your own format

.tonograph is JSON: readable, diffable and yours. Auto-save and crash recovery use it.

{
  "format": "tonograph",
  "formatVersion": 2,
  "savedAt": "2026-07-28T00:00:00.000Z",
  "appVersion": "0.1.0",
  "model": {
    "title": "Scarlet Engine",
    "subtitle": "Tonograph sample score",
    "artist": "Noop",
    "music": "Noop",
    "copyright": "© 2026 Noop. Sample score — free to modify and use.",
    "tempoBpm": 132,
    "tempoLabel": "Driving",
    "masterBars": [
      {
        "keySignature": {
          "accidentals": 0,
          "mode": "minor"
        },
        "section": {
          "text": "Intro"
        }
      }
    ],
    "tracks": [
      {
        "name": "Lead Guitar",
        "shortName": "Ld.",
        "color": "#f0d264",
        "midiProgram": 30,
        "tuning": [
          40,
          45,
          50,
          55,
          59,
          64
        ],
        "displayTransposition": -12,
        "volume": 14,
        "bars": [
          {
            "voices": [
              {
                "beats": [
                  {
                    "duration": "whole",
                    "isRest": true,
                    "notes": []
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "name": "Rhythm Guitar",
        "shortName": "Rhy.",
        "color": "#88aef2",
        "midiProgram": 29,
        "tuning": [
          40,
          45,
          50,
          55,
          59,
          64
        ],
        "displayTransposition": -12,
        "volume": 11,
        "balance": 5,
        "bars": [
          {
            "voices": [
              {
                "beats": [
                  {
                    "duration": "eighth",
                    "pickStroke": "down",
                    "notes": [
                      {
                        "string": 5,
                        "fret": 0,
                        "isPalmMute": true
                      }
                    ],
                    "dynamics": "mf"
                  },
                  {
                    "duration": "eighth",
                    "pickStroke": "down",
                    "notes": [
                      {
                        "string": 5,
                        "fret": 0,
                        "isPalmMute": true
                      }
                    ],
                    "dynamics": "mf"
                  },
                  {
                    "duration": "eighth",
                    "pickStroke": "down",
                    "notes": [
                      {
                        "string": 5,
                        "fret": 0,
                        "isPalmMute": true
                      }
                    ],
                    "dynamics": "mf"
                  },
                  {
                    "duration": "eighth",
                    "pickStroke": "down",
                    "notes": [
                      {
                        "string": 5,
                        "fret": 0,
                        "isPalmMute": true
                      }
                    ],
                    "dynamics": "mf"
                  },
                  {
                    "duration": "eighth",
                    "pickStroke": "down",
                    "notes": [
                      {
                        "string": 4,
                        "fret": 2,
                        "accent": "normal"
                      },
                      {
                        "string": 5,
                        "fret": 0,
                        "accent": "normal"
                      }
                    ],
                    "dynamics": "mf"
                  },
                  {
                    "duration": "eighth",
                    "pickStroke": "down",
                    "notes": [
                      {
                        "string": 5,
                        "fret": 0,
                        "isPalmMute": true
                      }
                    ],
                    "dynamics": "mf"
                  },
                  {
                    "duration": "eighth",
                    "pickStroke": "down",
                    "notes": [
                      {
                        "string": 4,
                        "fret": 5
                      },
                      {
                        "string": 5,
                        "fret": 3
                      }
                    ],
                    "dynamics": "mf"
                  },
                  {
                    "duration": "eighth",
                    "pickStroke": "up",
                    "notes": [
                      {
                        "string": 4,
                        "fret": 7
                      },
                      {
                        "string": 5,
                        "fret": 5
                      }
                    ],
                    "dynamics": "mf"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  }
}
One bar of Scarlet Engine, exactly as the file stores it.

Manual

Exporting and printing

Save your score and export it as .gp, PDF, MIDI or WAV.

See how to use it

Start with the free version

Open your .gp files, play them through the Resonance Engine, and decide afterwards.

Get the free version for Mac