cgnieder / leadsheets

A LaTeX package for creating leadsheets and songbooks
55 stars 11 forks source link

Alternative chords placement #8

Closed Wheart closed 8 years ago

Wheart commented 8 years ago

Although package leadsheets is exactly what I need to create simple songbook to sing with friends, there are two "small" features/enchantments that could make it even more nice:

  1. There is a common practice to put chords at the end of each line of text instead of over it – it's useful when you just play guitar and singing is not your best thing to do or just to print songbook in more compact form. Maybe it could be done as a style/option for verse-like environments (to switch style – just for given song or whole songbook)?
  2. Sometimes minor chords are noted as "d" instead "Dm" – actually it's kind of standard in popular Polish songbooks. Is there an easy way to "learn" transposer of different notations? On the other hand – we follow German notation with A-B-H-C but sometimes something like A-A#-H-C could be spotted :) This is rather "cosmetic" change, so it's not the first thing to do.
cgnieder commented 8 years ago

Its easy to use lowercase letters for minor chords

\documentclass{article}
\usepackage{leadsheets}
\begin{document}

\begin{song}{title=A,key=Dmi}
  ^{d}text ^{g}text ^{A}text ^{d}text
\end{song}

\end{document}

Adding them to the transposing mechanism may not be so easy, though…

I don't understand what you mean by

we follow German notation with A-B-H-C but sometimes something like A-A#-H-C could be spotted

Did you spot an error in the transposing mechanism? If yes you need to provide a MWE.

cgnieder commented 8 years ago

There is a common practice to put chords at the end of each line of text instead of over it – it's useful when you just play guitar

I have seen this but actually not very often so I wouldn't call it “common”. I also disagree that it is useful for a guitarist/non-singer: I am the guitarist in a band and rarely sing. As long as I don't know the song I find it rather irritating when the chord placement doesn't fit the text.

Nevertheless it might be a useful addition – although probably a rather difficult one to implement. I'm not sure it can be done in a reliable way.

Wheart commented 8 years ago

I don't understand what you mean by

we follow German notation with A-B-H-C but sometimes something like A-A#-H-C could be spotted

Did you spot an error in the transposing mechanism? If yes you need to provide a MWE.

I'ts just in case if you start thinking about introducing "Polish notation" - with small letters for minor chords - I just want to say that chord naming follows German notation and some "special cases" could also exist. The only real difference is small letters for minor chords. Transposing "normal" chords (A, Dm, etc) works excellent, even weird ones, written like "Dm/H". There is a problem only with minor chords written as "d" - as we both agreed earlier. You stated it won't be so easy, so postpone it, alternative chord placement seems much more usable ;)

I'm not professional musician - I used to play guitar by the fire with friends or some time ago at the church - all well-known songs. Now my children want to sing (and me to play ;) ) and I'm composing "Family Songbook" to incorporate songs from different sources into one place. Your package fits my needs very well - many thanks for you!

cgnieder commented 8 years ago

As it turns out lowercase letters for minor chords are quite easy as output as long as the input stays.

Input Dmi would give d as output, Input Ami7(b5) would give a\textsuperscript{7(\flat5)} as output and so on. Then transposing would work just fine. I will implement this.

cgnieder commented 8 years ago

implemented in commit f9952624de334d919676c1068372e6b422cf8c91

cgnieder commented 8 years ago
\documentclass{article}
\usepackage{leadsheets}
\setchords{minor=lowercase}

\begin{document}

\chordname{Dmi}
\chordname{C7}
\chordname{Gmaj7}
\chordname{Ami7(b5)}

\begin{song}[remember-chords]{title=A,key=Dmi}
\begin{verse}
  ^{Dmi}text ^{Gmi}text ^{Ami}text ^{A7}text
\end{verse}
\setleadsheets{transpose=1}
\begin{verse}
  ^text ^text ^text ^text
\end{verse}
\setleadsheets{transpose=2}
\begin{verse}
  ^text ^text ^text ^text
\end{verse}
\setleadsheets{transpose=3}
\begin{verse}
  ^text ^text ^text ^text
\end{verse}
\setleadsheets{transpose=4}
\begin{verse}
  ^text ^text ^text ^text
\end{verse}
\setleadsheets{transpose=5}
\begin{verse}
  ^text ^text ^text ^text
\end{verse}
\end{song}

\end{document}