Before posting, please read: When to use this forum, when to submit a help ticket

REQ: Transposition and per-user offset tuning

Started by pheldal, October 26, 2015, 11:47:03 AM

Previous topic - Next topic


The key in which a song is played depends on the vocal-range of the singer. As musicians we have to accommodate that in different ways for different instruments. What I've found to be a simple solution is to store lyrics with chords in the key actually played and combine that with a tuning offset per musician. For guitarists a positive offset translates to the position of the capo while a negative means down-tuning. Every guitar-player in a band may have his own preferences wrt how to play a song. A song in A-major may be ok in standard tuning for one, while another prefer a capo in the 2nd position and yet another prefer a capo in the 5th. Similarly some keyboard-players do not feel equally comfortable with every key and prefer to tune their keyboard up or down a number of semi-tones.

My suggestion is thus to:

  • Store chords as present with bracketed chords as the standard where embedded in lyrics
  • Have the noted key for the song synchronised with chords when transposing
  • Add a user-specific tuning-offset attribute for each song where the offset in number of semitones can be noted
  • Each user should have access to adjust his/her tuning offsets even if the user have no regular write access
  • All user offsets should be adjusted along with embedded chords and the key of the song when transposing.
  • Lists should be displayed with the key actually played along with the individual tuning offset
  • Lyrics should then be transposed when rendered on screen according to the users noted offset
  • The tuning-offset for each user must be clearly visible in the performance interface as a number prefixed with + or -. It should preferably also be visible in the song-list and set-lists

An example:
A song played in A-major would have lyrics with embedded chords in A.
Keyboard-player 1 is happy to play in any key and does register any tuning offset
Keyboard-player 2 is a rookie who doesn't master much beyond C-major and use an offset of -3. His display of lists will show the key played and the offset. Lyrics rendered with embedded chords will display chords for playing in C-major (A minus -3 semitones)
Guitarist 1 plays lead which doesn't fly too well with capos, and will thus not note an offset
Guitarist 2 is ok with playing in A with standard tuning, but prefer the same chord-shapes should the song be transposed up, and thus note 0 as an offset to be adjusted with transposition
Guitarist 3 prefer to play the song in G and puts a capo in position 2 with a tuning offset of +2. His lyrics will be rendered with chords for playing in G (A minus +2 semitones).

Then the singer asks to go up a half step from A to Bb. Transposing of the song would then increment all noted tuning offsets accordingly:
Keys1: has no offset and will now read chords as written in Bb.
Keys2: had -3 now incremented to -2 semitones and still have lyrics+chords rendered as in C-major
Guitar1: like KB1
Guitar2: had offset set to 0 that now gets incremented to +1 and will still have lyrics with chords rendered in A
Guitar3: had offset set to +2 that now gets incremented to +3 and still have lyrics+chords rendered in G


If the singer requests a different key during a performance, the keyboarder who is tuning they keyboard to allow playing in a different key, and the guitarist who is using a capo, will have to mentally calculate the new tuning offset or capo position -- is that the problem you're trying to address?

You could add custom fields as needed to notate each band member's preferred offset for the default key. However, making custom fields that transpose along with the lyrics and chords, but use a special notation, and alter the behavior of the transposing function, and teaching everyone how to use this system, seems more complicated than the problem it is designed to solve.


The problem I'm trying to address is to have consistent reminders for everyone at all times. I play with several bands, everything from 1920s jazz to prog-metal, and have a huge combined repertoire. Others may need extra reminders if they have not practised enough. It's all about minimising the number of errors made on stage.

It is not so much about changes during a performance. The key for each song is set during practise.

Currently we use a multi-platform chordpro-based SongBook. It does offer sharing via dropbox, but each user has to maintain his/her own copy of songs if (s)he want to have chords noted in a key other than the one played. Once a musician misses a practise-session where the key of a song is changed (s)he is out if sync with the rest of the band.

With enough practise most live musicians may not need chord-sheets on stage, but setlists noting the key the song is intended to be played in along with the offset used by each musician tells everything necessary to get it right. Seeing that a song is played in E with offset +4 is a pretty strong reminder to me as a guitar-player about how I play that song. Having the chords transposed within lyrics is mostly a tool for practise.


If you are establishing the keys during a rehearsal, I'd recommend setting up a custom field for each user who wants to save their preferred key or offset info and they can update those fields as needed. Custom fields can be assigned to particular users and then they won't display for other users. You can display custom fields in on-screen song layouts or in printed set lists. Then either...

1) Your bandmates can learn how to use the transpose buttons in the set list view. Transpositions there are not saved, so your saved lyrics will continue to use the standard key.

2) Alternatively, your bandmates can learn to save their own version of the lyrics and chords using the personal sync settings. Then they can save their transposed key instead of doing the transposition every time they perform. The disadvantage is that they will have to update their own copy of the lyrics and chords whenever you update the master copy; for example, if you make a correction in the lyrics. You can mitigate that problem by keeping only lyrics in the lyrics field and only chords in the chords field.

Whether you do 1 or 2 depends on how often this comes up and how comfortable your bandmates are in doing the transposing on the fly. Each band member could decide which approach works best for them. But if the transposing is really only needed for practice, then I'd stick with option 1 for simplicity.

P.S. Do you ever do 1920's jazz and prog-metal in the same show? I'd like to see that!


Quote from: arlo on October 26, 2015, 07:05:57 PM
If you are establishing the keys during a rehearsal, I'd recommend setting up a custom field for each user who wants to save their preferred key or offset info and they can update those fields as needed. Custom fields can be assigned to particular users and then they won't display for other users. You can display custom fields in on-screen song layouts or in printed set lists.

I think the use of custom fields per user for tuning offsets may be a decent workaround. The only remaining problem is that I'd like to see the content of the custom field(s) available to me in on-screen playlists (like in the list of songs), not just printouts. I see printouts with notes about instruments and singers for each song being mostly for sharing with the hired sound-engineers etc. On stage I prefer to stick to a tablet or smartphone, and it would then be essential to see the content of the custom field both in the playlist and on the lyrics page during a show. Is there a way for each user to customise the fields being displayed in hos/her playlists, and extra fields to be displayed next to or on top of lyrics?

In a typical scenario I would work from the setlist/lyrics screen with icons for various functions down the left side of the screen and turn pages left and right as we go. From this screen I plan to trigger scenes in my lighting-rig (controlled by dmxis) and program-changes for various equipment via MIDI. There is however essential information I am missing from this screen:

  • The key the song actually is played in (key-field). There is no guarantee that the chords that are embedded in lyrics match the key the song is meant to be played in
  • The instrument(s) I'm supposed to use and tuning offset (custom field). This info may be encoded in a single field, for example: "Git+3", "Nyl+4", "El+2", "Man+2", "Bass", "Ban"
I know I can hit the edit (pencil) icon to access the information, but would prefer not to have to jump back and forth all the time.



Quote from: arlo on November 02, 2015, 08:31:00 AM
Instructions for customizing your screen layout are on this page:

Super. Should have noticed. There is some auto-translation of UI-elements into my language (Norwegian) in Android that is throwing me off. Some headers and menu texts are confusing. I'm used to having an english UI for most, if not all of the music-related applications I use. 


If any translations seem wrong, you can tell me specifically and I can pass that on to my translation volunteers.

Also, you can change the app to English on a non-English device (or vice versa) from Settings > General Settings > Interface Language.


I keep returning to this issue. The described workarounds will do the job, but there is ample room for mistakes. Just missing a single tap on a transpose-button is critical if you try to do manual transposition on the fly. Another issue is that some users need to maximise the size of visible text to be able to read it. Everyone doesn't have the eyes of a falk, unfortunately. That also means ditching menus and controls to maximise the view of lyrics and chords. It is critical to keep the tasks as simple as possible during a performance, and constant swapping between different views is cumbersome. Just swiping right/left for next/previous song should ideally be all that is required on stage. That is hard to achieve for everyone if you for example have a combination of differently tuned string instruments (guitar, mandolin) using varying capo-positions and a keyboard-player who isn't comfortable playing in any key and has to transpose on the fly.

So, I would still very much like an optional individual key-offset-parameter with on-the-fly transposition of embedded chordpro-style chords. I acknowledge that this is less important for pop/rock bands, but I do a lot of backing for choir/vocal-bands where you hardly ever can play in a key that is optimal for instruments. When playing finger-style acoustic in this setting I need a capo for more than 90% of songs in a set to get the optimal tone from the instrument, while the keyboard-player next to me either plays in the actual key or transposes from C or whatever else (s)he is comfortable with.

Are there other users who have views, recommendations or ideas about other/better ways to solve the problem than those we have discussed so far in this thread?


Another issue is that some users need to maximise the size of visible text to be able to read it.

Since last September, you can place items on top the document viewer in your layouts. This means you can size the document (lyrics) viewer to fill your layout, then place a transpose button or a custom field on top of it, if you wish. This is not available if you simply double-tap a document to expand it to full-screen ... you need to create a layout for this.


I have the same problem (and wish  ;)):

When playing a song where a guitarist uses a capo and the bassist doesn't some of the really great features won't work any more.
To avoid the need for transposing every time you play a song there would be two possible solutions:
* User specific Lyrics with chords (currently ever user can have his own document but not his own lyrics with chords) or
* a user and song specific offset (compensating for special Tunings or capos)

My band would appreciate one of this features very much!


* User specific Lyrics with chords (currently ever user can have his own document but not his own lyrics with chords) or

Users can turn on Lyrics or Chords in Settings > Account Sync > Personal Sync. Ideally you would have your chords separate from your lyrics (using the separate Chords field) so users can save their own personal chords but everyone can share the same lyrics.

* a user and song specific offset (compensating for special Tunings or capos)

I'll put that on my wish list.


I'm bumping this request, but at the same time I'd like to simplify it somewhat:

Much of what I described initially can be solved with personal custom fields. What remains is the need for a personal transpose setting that would apply by default when the user opens a song and that remain relative (number of half-notes up or down) to the chords written into Bandhelper.

A song is written with chords for the key of C, but played in E.  The key for the song is specified as E which is the crucial place to check for each musician. However, things may get a little simpler.
Guitar-player 1: Uses a capo on the 4th fret and plays the chords as noted in C. The capo-position is noted in an individual custom field that specify the instrument and capo position (here Guitar+4). This guy needs no transposing of the written chords
Guitar-player 2: Plays with no capo based off the standard open E-chord. If his custom field that indicate instrument and offset says guitar/no-capo, then he would look for chord-instructions written in E. I.e he should ideally have the written chords transposed up 4 semitones.
Keyboard-player: prefer to play the song in G: To make that E he puts a note into his personal custom-field to transpose his keyboard down 3 semitones from G to E. He is then looking for chords written to play in G which could happen automatically if bandhelper would support it.

The ideal in order to be able to automate changes as the key for the song is altered is still to have individual fields for transpose (-11 to +11 semitones)  and tuning offset (keyboard transpose, string-instrument capo etc) (-11 to +11). The tuning-offset may be specified in a personal custom fields as described in the example, but that requires manual adjustment if the key for the song is changed. Instructions to transpose the noted chords could be registered in a similar way and manually maintained with changes, but the problem is that things quickly get too complex and things forgotten in the stress on stage.


Arlo, another vote for that wish please.
Where someone uses a capo and others do not, I can set up a personal field for Capo position but then all the chords need shifting.  This will often be the chords which are among the lyrics.
I guess it would need the means to temporarily switch off that shift, in order to play without the capo sometimes, though the usual #/b buttons will do that.
The Capo field should perhaps not be just a numeric offset (if you were thinking of building it in) as it sometimes has to miss the low E string and maybe other permutations too.


Yesterday's big release adds personal transpose settings to the song edit page. If you set a transpose amount here, chords will be transposed automatically when you view them, but your bandmates will see the default chords (or their own personal transposing).

All the new changes are listed here: