All Projects → ultimate-guitar → Tabdown

ultimate-guitar / Tabdown

Licence: BSD-3-Clause License
Tabdown is an open mark-up language for text tabs & chords.

Projects that are alternatives of or similar to Tabdown

CliChords
[CliChords] Get ultimate-guitar.com guitar tabs and chords in your terminal - command line cli
Stars: ✭ 20 (-59.18%)
Mutual labels:  tabs, guitar, chords, guitar-tablature, ultimate-guitar, guitar-chords
Chord-Provider
A Chordpro parser/editor in SwiftUI 4 for macOS and iOS
Stars: ✭ 20 (-59.18%)
Mutual labels:  guitar, chords, guitar-tablature, guitar-chords
chords
A Kotlin multi-platform view library for displaying stringed instrument chord diagrams
Stars: ✭ 25 (-48.98%)
Mutual labels:  tabs, guitar, chords, guitar-chords
phptabs
A PHP library for reading, writing and rendering guitar tablatures and MIDI files
Stars: ✭ 34 (-30.61%)
Mutual labels:  guitar, chords, guitar-tablature
fretonator
The ultimate interactive free guitar theory tool.
Stars: ✭ 42 (-14.29%)
Mutual labels:  guitar, guitar-tablature
guitar
🎸 Online guitar toy and tablature recorder/player
Stars: ✭ 80 (+63.27%)
Mutual labels:  tabs, guitar
arpeggio
A chord naming app for guitar written in React.
Stars: ✭ 49 (+0%)
Mutual labels:  guitar, chords
tabs
Guitar tabs transcribed by me, primarily in the stoner/doom/sludge metal genres... plus a few random other things.
Stars: ✭ 34 (-30.61%)
Mutual labels:  tabs, guitar
Chord-Draw
Draw guitar chord diagrams for all variations of any chord and also display finger positions etc.
Stars: ✭ 17 (-65.31%)
Mutual labels:  guitar, guitar-chords
guitar-book
Open Source, Gatsby theme, mobile and SEO friendly with PWA for building guitar/song books. 🎸 🎤 🎵
Stars: ✭ 29 (-40.82%)
Mutual labels:  chords, guitar-chords
guitar-tabs-to-MIDI
A program that converts Guitar Tabs into MIDI files.
Stars: ✭ 38 (-22.45%)
Mutual labels:  tabs, guitar
aioneframework
Aione Framework: All-in-one lightweight mobile first front-end framework to design websites, web applications, mobile applications, progressive web applications having large number of examples, documentation, tutorials, community support, components.
Stars: ✭ 13 (-73.47%)
Mutual labels:  tabs
tabbis.js
Pure vanilla javascript tabs with nesting
Stars: ✭ 44 (-10.2%)
Mutual labels:  tabs
rc-dock
Dock Layout for React Component
Stars: ✭ 318 (+548.98%)
Mutual labels:  tabs
tabs
pure javascript tabs for ES6
Stars: ✭ 11 (-77.55%)
Mutual labels:  tabs
natural js
Natural-JS : Javascript Front-End Architecture Framework
Stars: ✭ 35 (-28.57%)
Mutual labels:  tabs
smarttab.kak
Automatic handling different styles of indentation and alignment.
Stars: ✭ 52 (+6.12%)
Mutual labels:  tabs
Excited-Gem
An Extension to manage your tabs and other browser-related features.
Stars: ✭ 18 (-63.27%)
Mutual labels:  tabs
a11y-accordion-tabs
A script for an accessible accordion tabs component
Stars: ✭ 50 (+2.04%)
Mutual labels:  tabs
pedals
No description or website provided.
Stars: ✭ 32 (-34.69%)
Mutual labels:  guitar

Tabdown

Tab markup language

Intro

Tabdown is a simplified version of a tab layout language that lets you read and edit tab texts in the most convenient manner, but also can be transformed into more advanced languages ( HTML, iOS/Android apps, Rich Text, etc.)

The main idea behind the Tabdown syntax was to make it as easy to read as it's possible. The thing is, that Tabdown-formatted tablature can be submitted/published as a bare text like there are no special formatting tags in it. Nevertheless, text in tabs should still remain a subject to the computer processing and be a well-structured document.

The Tabdown format is a Markdown language extension, suited to make the tab and chord making process easier.

Pros

  • Based on text input only. There's no need to use third-party editors and instruments, a simple text field is enough. This way you may be sure there won't be any malfunctions. Minimum coding. A couple of widespread tags and a few rules is all you need to remember. Once and for all.
  • The source code is very easy to read. When you edit a tab and see the Tabdown code you can tell at first glance where chords and author commentary are. Everything is intuitive.
  • You can automatize some of the operations, like pasting repeating song parts, separating musical parts from commentaries, writing down chords with variations.
  • It's open source software that is licensed under the terms of New BSD License.
  • Applying unique definitions for each operation ( '[ ]', '#', '//' etc.) lets any Tabdown user to create a WYSIWYG editor with autocompletes. For instance, entering '#' will open a menu where you can see the list of already created sections and with one simple click you can add an entire chunk of text to a tab page. There's no need to keep the same text chunks in a source file!
  • Flexibility - any "global variable" (e.g. "Chorus") can be overridden simply by applying the necessary adjustments.
  • The Tabdown format entails the separation of musical content and author comments visually.

Cons

  • The rule that must be followed: You can't simply name a section "# Author comments" or start writing a commentary. It must be defined.
  • The only major effort that authors need to make for things to work is to follow the rules. You can think about it as a next level of creating tabs.
  • Special characters must be escaped. if you want to use one of the technical symbols, used for the Tabdown layout you must enter a backslash before them.

Syntax

Chords

Chords are placed in square brackets:

[Am]
[Dm]     [A#]                [F]        [C]
Do you know what's worth fighting for,
[Dm]        [A#]        [F]      [C]
When it's not worth dying for?
[Dm]      [A#]        [F]      [C]
Does it take your breath away
[A#]                         [C]
And you feel yourself suffocating?

Variations

If you want to mention a specific chord variation that must be applied to all the same chords in tab, use the following construction:

[chord]: fingering

For instance:

[G7b13]: 3x344x

To define two-digit frets, strings must be separated with a hyphen "-":

[chord]: f-i-n-g-e-r-i-n-g

For instance:

[Cadd9]: x-x-10-9-8-10

Besides that, a variation for a specific chord can be defined if it differs from the variations of other chords with the same name. There are 2 ways to represent a variation.defined if it differs from the variations of other chords with the same name. There are 2 ways to represent a variation.

  • Inline with chord
  • As reference in the tab legend below a tab

Defining variations with inline

Specific chord variations can be defined together with normal chords

[chord](fingering)

For instance:

[Dm](x-x-10-9-8-10)     [A#]                [F]        [C]
Do you know what's worth fighting for,

Defining variations with reference

Variation can be defined as link, which can be seen in a tab legend below a tab:

[chord][link_number]
  
[link_number]: fingering

For instance:

[Dm][1]     [A#]                [F][2]        [C]
Do you know what's worth fighting for,
[Dm]        [A#]        [F][2]      [C]
When it's not worth dying for?
.....
  
  
[1]: x-x-10-9-8-10
[2]: 1x323x

Song sections

Song section title is words, that follow the "#" sign and non-mandatory space after it. Songs section title ends with a line break.

# section

For instance:

# Verse

Section body is all the lines from the title of the current section to the title of the next section or the end of a song, provided there are no more sections.

Commentaries

You should use commentary characters in order to define author commentary. The most important thing about a commentary is that it refers to the current song section and is not transferred to repeating song sections. Commentaries may be onelined:

// comment

For instance:

[Dm][1]     [A#]                [F][2]        [C]
Do you know what's worth fighting fоr,
// Can be played with D# instead of Dm
[Dm]        [A#]        [F][2]      [C]
When it's not worth dying fоr?

And multilined:

/*
comment
*/

For instance:

[Dm][1]     [A#]                [F][2]        [C]
Do you know what's worth fighting fоr,
/*
Can be played with D# instead of Dm
Sounds better with capo
*/
[Dm]        [A#]        [F][2]      [C]
When it's not worth dying fоr?

Metadata

Metadata is defined in the following way:

% metaName1: value
% metaName2: value

For instance:

% tuning: E A D G B E
% capo: 2

To define metadata follow the following rules:

  • A line that contains metadata must start with a % symbol
  • Metadata must be written in the "key: value" format
  • There may be non-mandatory space between % and key
  • The key and value divider (the colon ":") may contain an unlimited number of spaces before and after it
  • Metadata value must be written in the same line as key
  • All metadata must be written in a single block, line by line, without any breaks
  • There can be only one metadata block (first at the top)
  • Metadata is non-mandatory tab information. However, meta-information title (key) is restricted by the list of available values (see below). Metadata that doesn't belong to this list must be escaped.
  • Metadata may be bordered with 3 dashes at the top and bottom. E.g.
---
% tuning : E A D G B E
% capo   : 2
---

Valid key and value for metadata:

key values type default example
tuning E A D G B E string E A D G B E E A D G B E
capo 0..100 number 0 1
description string This version is different because unlike the others it has no bar chords and has a capo on the 3rd fret. It's very easy for beginners.
instrument guitar,bass,drum,ukulele,piano string guitar ukulele
type text,tab pro string text text
song-part whole song,intro,solo,chorus string whole song intro
arrangement-type original,author string original original
arrangement-style fingerstyle string fingerstyle

Escaping characters

If you want to use any of the technical characters that are used inTabdownlayout, place a backslash "" before them.

\[Green Day - 21 Guns\]
  
[Dm][1]     [A#]                [F][2]        [C]
Do you know what's worth fighting for,
[Dm]        [A#]        [F][2]      [C]
When it's not worth dying for?
.....
  
  
[1]: xx109810
[2]: 1x323x

License

The Tabdown format is licensed under the terms of New BSD License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].