Skip to main content

Jianpu in Lilypond

Project description

jianpu-ly

Jianpu in Lilypond, from https://ssb22.user.srcf.net/mwrhome/jianpu-ly.html

jianpu-ly is a Python program (compatible with both Python 2 and Python 3) that assists with printing jianpu (numbered musical notation) in the GNU Lilypond music typesetter. The jianpu is written on a modified-appearance “stave” in Lilypond, which means Lilypond’s typesetting capabilities (lyric spacing, slurs, beams etc) will apply to the jianpu without needing to add a 5-line stave. If you prefer, the generated code for the jianpu stave may also be placed in a score with other types of stave.

Using jianpu-ly requires some technical knowledge. If you don't know what a command line is, what a text editor is, what a directory is or what Python is, then please find out about these things before attempting to use jianpu-ly. It is not an extension to Lilypond front-ends like Frescobaldi; it is a preprocessor that currently requires you to have command-line experience.

If you have problems, try a different Lilypond version. jianpu-ly works with Lilypond 2.20, 2.22 and 2.24.

Run jianpu-ly < text-file > ly-file (or jianpu-ly text-files > ly-file). There is experimental support for importing MusicXML via jianpu-ly piece.xml (or jianpu-ly piece.mxl > ly-file) but this does not work for all pieces.

Normal text files are whitespace-separated and can contain words like the following. Usually the order of characters within a note does not matter, hence #1 is the same as 1# and '1 is the same as 1' and s1 is the same as 1s.

Scale going up: 1 2 3 4 5 6 7 1'

Accidentals: 1 #1 2 b2 1

Octaves: 1,, 1, 1 1' 1''

Shortcuts for 1' and 2': 8 9

Percussion beat: x

Change base octave: < >

Semiquaver, quaver, crotchet (16/8/4th notes): s1 q1 1

Alternate way to input semiquaver, quaver, crotchet: 1\ 1\ 1 (any \ must go after the pitch not before)

Sticky durations (4 semiquavers then crotchet): KeepLength s1 1 1 1 c1

Dotted versions of the above (50% longer): s1. q1. 1.

Alternate dotted versions: 1\. 1\.

Demisemiquaver, hemidemisemiquaver (32/64th notes): d1 h1

Minims (half notes) use dashes: 1 -

Dotted minim: 1 - -

Semibreve (whole note): 1 - - -

Time signature: 4/4

Time signature with quaver anacrusis (8th-note pickup): 4/4,8

Key signature (major): 1=Bb

Key signature (minor): 6=F#

Tempo: 4=85

Lyrics: L: here are the syl- la- bles (all on one line, or newline after the : and double newline to end)

Lyrics (verse 1): L: 1. Here is verse one

Lyrics (verse 2): L: 2. Here is verse two

Hanzi lyrics (auto space): H: hanzi (with or without spaces)

Lilypond headers: title=the title (on a line of its own)

Guitar chords: chords=c2. g:7 c (on own line, or newline after the = and double newline to end)

Fret diagrams: frets=guitar (on own line)

Change guitar chords into Roman numerals: ChordsRoman

Multiple parts: NextPart

Instrument of current part: instrument=Flute (on a line of its own)

Multiple movements: NextScore

Prohibit page breaks until end of this movement: OnePage

Suppress bar numbers: NoBarNums

Suppress first-line indent: NoIndent

Ragged last line: RaggedLast

Old-style time signature: SeparateTimesig 1=C 4/4

Indonesian 'not angka' style: angka

Alternate Indonesian-style minim, dotted minim and semibreve: 1 . 1 . . 1 . . . (dot is treated as dash)

Add a Western staff doubling the tune: WithStaff

Tuplets: 3[ q1 q1 q1 ]

Grace notes before: g[#45] 1

Grace notes after: 1 ['1]g

Grace notes with durations: g[d4d5s6] 1

Simple chords: ,135' 1 1b3 1

Da capo: 1 1 Fine 1 1 1 1 1 1 DC

Dal segno: 1 1 Segno 1 1 ToCoda 1 1 DS 1 1

Repeat (with alternate endings): R{ 1 1 1 } A{ 2 | 3 }

Short repeats (percent): R4{ 1 2 }

Ties (like Lilypond's, if you don't want dashes): 1 ~ 1

Slurs (like Lilypond's): 1 ( 2 )

Erhu fingering (applies to previous note): Fr=0 Fr=4

Erhu symbol (applies to previous note): souyin harmonic up down bend tilde

Tremolo: 1/// - 1///5 -

Rehearsal letters: letterA letterB

Multibar rest: R*8

Dynamics (applies to previous note): \p \mp

Other 1-word Lilypond \ commands: ermata \> \! \( \) etc

Text: ^"above note" _"below note"

Harmonic symbols above main notes: Harm: (music) :Harm (main music)

Instrumental breaks in vocal music: 1 [( 2 3 )] 4

Other Lilypond code: LP: (block of code) :LP (each delimeter at start of its line)

Unicode approximation instead of Lilypond: Unicode

Split MIDI files per part: PartMidi

Ignored: % a comment

Copyright and Trademarks

(c) Silas S. Brown, licensed under Apache 2.

Apache is a registered trademark of The Apache Software Foundation. Python is a trademark of the Python Software Foundation. Any other trademarks I mentioned without realising are trademarks of their respective holders.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jianpu_ly-1.866.tar.gz (43.9 kB view details)

Uploaded Source

File details

Details for the file jianpu_ly-1.866.tar.gz.

File metadata

  • Download URL: jianpu_ly-1.866.tar.gz
  • Upload date:
  • Size: 43.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.12

File hashes

Hashes for jianpu_ly-1.866.tar.gz
Algorithm Hash digest
SHA256 9cb54b468b7810267243e1baa3799ce1f54df6e18ffd95f64404f0680ea91812
MD5 93ca8f2015d11e288211f755e9d28148
BLAKE2b-256 52c8655610df17bef41622947656f11f90cebfea6be5b5cde3338b381d51522e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page