Chords in OpenLP



  • I tried the free ones, mainly VideoPsalm (very good with lots of good features, but no stage view yet) and Quelea (quite simple to use, has good features including stage view and remote control, was able to import songs with chords, BUT the chords are not displayed at the right words). I tried several others, but they all lacked in features or were not working well.
  • @JGE: Currently OpenLP does not support importing of chords from any format. I hope to change this before the 2.6 release where I hope to get chords support ready. I wont promise anything though...
  • tgctgc
    edited June 2016
    hi @STEPHANVS and @tomasss
    I've now created a branch which includes some of the chord-code you made. I've created a new chord-webview where the chords are shown, see the link under the remote settings.
    I've also added support for different chord-notations (german/english/neo-latin), you can chose in the settings.
    Transposing of chords is also possible in the lyrics editor.
    @STEPHANVS , I could not make your code work, but if you are willing to make a patch I'll try to integrate it.
    You can download a test-build of the branch from:
    Some feedback would be appreciated :)
  • Hi
    I modified an old source (2.0.5) on my home computer.
    How do I compile it for windows, so I can use it at church?

    I couldn't send a pm, so I posted here (sorry about that).

                       David M.
  • Great news, super, thanks @tgc.
    I am so busy now and I check it only for short time. But I don't know why, I cannot import my songs with chords. There are some error:

    ValueError: unexpected '{' in field name

    There are some funcionality missing on chords screen from my last update:
    - show/hide chords
    - +/- font size

    It's on good way. Thanks.
  • @dm82david, compiling on windows is not so easy... First try to move to the latest release ~ 2.4 or development trunk, and then read and then checkout and look at the comments in the top of windows/
  • @tomasss The import error was unrelated to the chord-changes, but should be fixed now in the branch and in this build:
  • edited June 2016
    Hello Tgc

    The problem is on the line 461 on the file openlp/plugins/songs/lib/

    text = text.replace('{/{tag}}}'.format(tag=tag), '</tag>')
    change to

    text = text.replace('{{/{tag}}}'.format(tag=tag), '</tag>')

  • I have already set the environment for old 2.0.5 release,
    I have a from version 1.9.9.

    I used from openlp/packaging revision 12, but at some point got an error.
    I will try some other day.
    Thanks for help!
                   David M.
  • tgctgc
    edited June 2016
    @dm82david please start a new thread or drop by in IRC.
  • Hi,

    Just another update on the chord support I'm working on, based on the work posted here. I got a new build I'd like you to test :)
    The current features are:
     * Support for chords in ChordPro format.
     * Display chords on new stageview (available on http://<ipaddress>:<port>/chords).
     * Display chords on mainview (if enabled in song settings).
     * Import from the following formats: OpenLyrics, OpenSong, VideoPsalm.
     * Export to OpenLyrics format.
    There are still some features missing, such as printing song with/without chords.
    The code is available from this branch: lp:~tomasgroth/openlp/chords
    Or if you're on windows you can get a build from here:
  • Just had a look at this tonight - great work! I've been hoping this would be added at some stage. I'll play with it some more and give some more detailed feedback, but the quick test I gave it on Linux Mint looked outstanding. Thank you!

  • edited July 2016
    Big thanks @tgc. I tried to import my songs with chords, but there was an error when I wanted to view this lyrics:

    Traceback (most recent call last):
    File "openlp\core\lib\", line 477, in on_selection_change
    File "openlp\core\lib\", line 491, in on_preview_click
    File "openlp\core\lib\", line 626, in build_service_item
    File "openlp\plugins\songs\lib\", line 611, in generate_slide_data
    File "openlp\plugins\songs\lib\", line 322, in song_to_xml
    File "openlp\plugins\songs\lib\", line 473, in _add_text_with_tags_to_lines
    ValueError: unexpected '{' in field name

    chords format is:{cl}Ako {c}[Hm]{/c}rieka {c}[A]{/c}{/cl}

    But when I use chords only in brackets then it's ok: Ako [Hm]rieka [A]
    And I check that you used old version of "slide.html". There are also option chords on/off and size of fonts in my newer version of html (

  • @tomasss @bishopm thank you for testing!

    @tomasss  The error you see is unrelated to the chord changes, but it will of course have to be fixed anyway. The error prevents importing any OpenLyrics-formatted song with formatting tags.
    I left out the on/off and zoom buttons and the font changes because I did not want to introduce these features in the chord-stageview, which is more or less just an extension of the the existing stageview. If these changes should be added, they should go into the main stageview first. I also left out the on/off button since this is now a dedicated chord stageview, so the assumption was that you actually want to see chords if you use it.
  • Thanks for working on the chords, they work awesome! 
    I had a couple questions. I installed using the file, OpenLP-2.4.1-bzr2614-setup. 

    I notice that the media plugin is disabled and the checkbox for status (active) is greyed out. Any idea why? 

    Second question is regarding the browser displaying the chords webpage. My iphone6, android phone and PC show the webpage fine. However using chrome or safari on my ipad, the page starts to zoom in (so you can't see all the lyrics/chords) as you go through the different slides in a song. Same thing happened on another ipad. 
  • I have downloaded the last version of chords available on this thread. I thought for sure the transpose + - options would be there but nothing...can anybody tell me why it does not show up?? 

    Thanks so much for all your help to make this work!!!
  • When I installed the build that TGC mentioned above, the transpose options worked perfectly.
    "Or if you're on windows you can get a build from here:"

    I just had problems with the media plugin and ipads displaying the chord page as mentioned in my previous post.

  • Thanks you for testing @rohanlori and @johnwry

    @rohanlori The media plugin is disabled because the test-build-server is not fully up to date when it comes to handling some of the changes in the media plugin - unrelated ti chords. Maybe I can get it fixed before the next test build. The zoom issue you mention is a known bug on iOS:  Hopefully we can find a workaround.

    @johnwry It sounds like you looked at the standard stage view, you need to use the new chord stage view.
  • Hello, 
    Thank you for making this software first of all. It has been a blessing to my church for the past 4 months. This past month, we were talking about adding chords for the musicians and this beta version appeared. Today during the worship practice however, we noticed how even if I put in the chord as Bb, it shows up in chord view as A#.  I understand that those are the same chords, however when playing piano, it is tough to change it up on the fly. Is there any way to make it show up exactly how I type in the chord? In the OpenLP software, it still says Bb, however in chord view it changes all the "flats" to the "sharp" equivalent.  

    Thank you so much in advance and thanks for all the volunteers that put in all their hard work!
  • @jgagianas: there is a line in .js file:
    notesPreferred = ['-', '#', '#', 'b', '#', 'b', '#', '#', 'b', '#', 'b', '#'];
    change it to:
    notesPreferred = ['-', '#', '#', 'b', '#', 'b', '#', '#', 'b', '#', '#', '#'];

    The reason for this behavior is the transpose function, and that there is no property for the song, that would define the proper notation of each chord. For example in F# major the proper notation for 3 is A#, but in F major 4 is Bb (or B in the german system). We could code the chord of the song in hidden HTML, like the chords are currently, but I had no time to do it yet. You can manipulate the shown chords by altering the notesPreferred, notesSharp, notesFlat variables. Also adding the green lines would show the original chords, if no transpose is active:

    notesPreferred = ['-', '#', '#', 'b', '#', 'b', '#', '#', 'b', '#', 'b', '#'];
    if (transposeValue == 0 ) {
    return chord;
    } else {
    for (i = 0; i <= chordSplit.length - 1; i++) {
    return transposedChord;
    Just to be clear, is this in the AppData\Roaming\openlp\data\Stages\Chord view\stage.js\ file? 

    I can't seem to find any other .js file.  But I don't see that line anywhere in stage.js. 

  • @jgagianas: What version OpenLP are you using? Did you create the custom stage, if so, which zip files did you download?
  • @STEPHANVS He is using the test-build I linked to earlier.

    @jgagianas ; You will find the chords.js in "c:\program files (x86)\openlp\plugins\remotes\html\js\"
  • @tgc I was able to find the chords.js file. However in notesPreferred, it shows like this notesPreferred = ['b','#','#','#','#','#','#','#','#','#','#','#']. I would like everything to show b except C# and F#.  Per our pianist.  I hate to be a pain, but can you help me accomplish this?  
  • @jgagianas: notesPreferred = ['b','#','b','b','b','b','#','b','b','b','b','b'];
    The logic here is that the transpose function will pick the string from notesSharp or notesFlat, depending on the value found in notesPreferred. There are 12 values in each, representing the 12 notes of an octave. I do not know why the notesPreferred in your file looks like that, but basically you can use 3 values in notesPreferred (let's take C#/Db, the 2nd value from the array as an example):
    - 'b': string from notesFlat will be used (in this case 'Db')
    - '#': string from notesSharp will be used (in this case 'C#')
    - '-' (or any other character): notation preference is not forced
Sign In or Register to comment.