Gingko Usage - Glidias/gingkstep GitHub Wiki
About GingkoApp
GingkoApp is a separate 3rd-party account service to manage tree-like documents (not managed by me). Currently, this is an interim solution at the moment and the intention is to develop a similar program later on with built-in song editing/previewing functions and user account storage. It's using a rather old legacy version of the application that is no longer maintained to my knowledge but has the current capability to publicly quickly publish a given URL, which can be read by the Gingkstep application to open a "tree" of documents in which the songs can be loaded.
Publishing
To start learning, refer to the following sample : https://gingkoapp.com/yldqss (fork your own copy with the "Copy" button above).
To publish a tree id that can be loaded by Gingkstep application:
Type in the tree id in the "Open Tree" box and click on "Load" to load it up!
Syntax conventions
Below is the screenshot on how to arrange your songs or slideshow content.
Currently (at the moment), the Gingkstep parser only support processing 2 levels deep worth of content (no deeper). So, the root level cards (first column) consist of each song of the song list, and the secondary level under root (second column) consist of the child lyrics slides under each song. Any empty cards are skipped/ignored.
Determine songs
To determine whether a Gingko card is a song (that has lyrics and potentially chords), the first child card (in the 2nd column) for each song respectively must have textual content written in a certain way to identify it as a song to be parsed via a song parser. Any subsequent sibling cards after the first child will be assumed to use the same parser so you only need to identify the first child card with the associated parser. This typically involves using the backtick character 3 times on the first line (and potentially last line) of the card text to identify a song to be parsed. (Note: backtick character is the ~
tilde key typically found to the left of the number row key 1
on the keyboard)
Regular chord sheets (closed fixed-width preview)
```
Am C/G F C
Let it be, let it be, let it be, let it be
C G F C/E Dm C
Whisper words of wisdom, let it be
```
Ultimate Guitar chord sheets (closed fixed-width preview)
```ug
[Chorus]
Am C/G F C
Let it be, let it be, let it be, let it be
C G F C/E Dm C
Whisper words of wisdom, let it be
```
Chord pro format (closed fixed-width preview)
```cp
{title: Let it be}
{subtitle: ChordSheetJS example version}
{key: C}
{comment: Chorus}
Let it [Am]be, let it [C/G]be, let it [F]be, let it [C]be
[C]Whisper words of [G]wisdom, let it [F]be [C/E] [Dm] [C]
````
ChordPro format (alternative format: unclosed non-fixed-width preview)
```
{title: Let it be}
{subtitle: ChordSheetJS example version}
{key: C}
{comment: Chorus}
Let it [Am]be, let it [C/G]be, let it [F]be, let it [C]be
[C]Whisper words of [G]wisdom, let it [F]be [C/E] [Dm] [C]
Currently, ChordPro (https://www.chordpro.org/) is the recommended format to use, especially for songs that don't have chords (ie. you only want lyrics). It is also used as the default parser for Gingko root cards (on the first column) for enclosing triple backticks zones, when it comes to determining extra parent metadata information to overwrite an song's existing metadata.
Header information for songs
As stated, you can define (at first column root cards) a general title in plain text and custom key signatures and custom capo directives based on ChordPro format, or extra metadata to overwrite the song's existing metadata or account for missing metadata in certain songs due to the nature of the format of the song lyrics being written with. These are identified as Chordpro body of texts containing ONLY metadata (no comments, no chords, no lyrics) enclosed by plain triple backticks lines (doesn't need to be labelled cp
).
Example 1: you to prepare your own preferred custom Key signature (which you can use to direct Ginkstep to automatically prepare a default transposed version of a song written in a given key to your own default preferred key) for a given session. (Transpose to Eb
as default key over a song written in key of B
)
Example 2: You can remove the X
on the key to define a {key:
metadata information that will overwrite the song's existing key and resultantly prepare a transposed version of the song from Em
to Cm
instead. The last key definition (Em
) is to signify the actual written key of the song since non-ChordPro formats don't have any official syntax to define song Key metadata.
As with both examples above, after defining metadata-only content, additional ChordPro portions of texts can be used for defining custom (lyricless) intros and such for root header slides during the slideshow. The song key for such intro body of texts can be written in a key different from the song's main key itself, but by default will use the song's defined prepared key if no key signature is defined for a given header ChordPro song portion.
Modulation and Capo changes
Within the given body of the song itself (2nd column), with ChordPro format, (or any format that has syntax that allows for defining key
/capo
metadata), you can define changes in key signature and capo (mid-song) by creating separate cards within the song to contain different metadata.
Example: Penny Lane song which is written in multiple cards that supports modulating back and forth between the B
and A
key signatures. Gingkstep also supports modulating between major vs minor key signatures (or also enharmonic key signatures).
Extra parser parameters for song parsers
Parameters are split by hyphen characters (ie. minus -
) to signify different parameters beyond the first parameter (first parameter is always used to indicate a particular song parser, if any).
join
into single slide
By default, the Gingkstep parser will split each song paragraph into individual slides for the slideshow. However, if you need multiple paragraphs within the same card still remain within the same slide, you can add a join
/-join
parameter to the given parser directive.
Example Chord Pro (open):
```join
{key: D}
{capo: 2}
paragraph 1 goes here atwatawtaw
paragraph 2 goes here awatiwtj awtawtw a
Example Chord Pro (enclosed):
```cp-join
{key: D}
{capo: 2}
paragraph 1 goes here atwatawtaw
paragraph 2 goes here awatiwtj awtawtw a
```
Example Ultimate Guitar (enclosed):
```ug-join
[Verse 1]
A G
paragraph 1 goes here atwatawtaw
Em6/D
paragraph 2 goes here awatiwtj awtawtw a
```
Example Regular Chord sheet (enclosed):
```join
A G
paragraph 1 goes here atwatawtaw
Em6/D
paragraph 2 goes here awatiwtj awtawtw a
```
Can Gingko/Gingkstep be used to store/present general slide information (ie. non-songs?)
Yes, this should be possible. Just avoid use the syntax conventions associated with identifying songs so it won't get parsed by the associated song parsers.
More links on GingkoApp.
Usage video: https://www.youtube.com/watch?v=njlfbpo_ebY&feature=emb_title
More links on ChordPro implementation and API
Not all features in Chordpro might be supported. Currently, there might be issues with the parser in certain cases. Be sure to check the below link on what is known to be supported.
https://github.com/martijnversluis/ChordSheetJS#supported-chordpro-directives
As of now not all Metadata (beyond Copyright, Artist,Original Key, etc.) is shown in song footer for Gingkstep. This is subjected to change.