Re: Lilypond generates a chord from nowhere

2014-12-31 Thread Thomas Morley
2014-12-30 20:33 GMT+01:00 Stan Mulder st4588...@earthlink.net:
 I have a fretboard problem.

 I have defined a new fretboard for a plectrum banjo. Everything is working
 properly when I specify a chord, except when I specify a SLASH chord, i.e.,
 a chord with a designation for the bass player. So for example, if I specify
 a G half-diminished chord, all is well. But if I specify a G half-diminished
 chord with a D-flat in the bass, I get a fretboard fingering I don't 
 recognize.

 Okay: g:m7.5-
 Not okay: g:m7.5-/dflat

 Basically, I think the chord in both instances (with or without the slash
 notes) should be exactly the same fingerings.

Why should it?

Let me demonstrate a counter-example.

Look at the output from the following code (I refer to guitar, because
I don't know banjo).
I print not the ChordNames and FretBoards, but the Staff-context, so
that you better see what happens.

First you'll see the standard D7-chord.

Second is the same chord, adding lowered fifth in bass
a) It's close to impossible to play on the guitar while keeping the
fingerings for the standard D7 (same for other fingerings).
b) Also, in c-mojor this chord would be a
double-dominant-seventh-chord with lowered fifth (translating from
german, not sure whether it's proper english naming). In this case the
note a in the upper voices is simply a wrong note (annotated).
Add midi-output to hear it.

Third is the corrected chord with another voicing (others may be
possible as well) resulting in a different fingering.


annotation =
#(define-event-function (parser location m)(ly:music?)
  (if (music-is-of-type? m 'fingering-event)
  #{
\tweak text
  \markup {
\vcenter $(number-string (ly:music-property m 'digit))
\normal-text
\with-color #red
\bold
\vcenter - wrong Note
  }
$m
  #}
  m))

\relative c {
\clef G_8
\set fingeringOrientations = #'(right)
d-0 a'-2 c-1 fis-3 1
aes-4 d-0 a'\annotation -2 c-1 fis-3 
aes-2 fis'-3 c'-4 d-1 
}

 How can I correct this?


Now let us see how this behaves with added ChordNames- and FretBoards-contexts.

Regard the code below. Compile it first without any uncommenting.

1) Because no lookup in the fretboard-table happens, LilyPond defaults
to the 'Automatic fret diagrams', see NR
You'll likely recognize none of the fretboards.

2) Uncommenting only the \include ... will give you acces to the
predefined fretboards and the D7-fretboard will come out as known.
But not the others, because they are _not_ stored in
predefined-guitar-fretboards.ly

3) Uncommenting
\storePredefinedDiagram #default-fret-table \chordmode { d:7/aes } ...
will return the now stored fretboard for the d:7/aes (which contains
the wrong note), but not for the corrected chord, because there's
still not a predefined fretboard for it.

4) Only uncommenting
\storePredefinedDiagram #default-fret-table \chordmode { d:7^5/aes } ...
will return correct output in all contexts.



%\include predefined-guitar-fretboards.ly
%{
\storePredefinedDiagram #default-fret-table \chordmode { d:7/aes }
#guitar-tuning  #'(
   (place-fret 6 4 2)
   (mute 5)
   (place-fret 4 4 3)
   (place-fret 3 5 4)
   (place-fret 2 3 1)
   (mute 1)
   )
%}
%{
\storePredefinedDiagram #default-fret-table \chordmode { d:7^5/aes }
#guitar-tuning  #'(
   (place-fret 6 4 2)
   (mute 5)
   (place-fret 4 4 3)
   (place-fret 3 5 4)
   (place-fret 2 3 1)
   (mute 1)
   )
%}
m =
\chordmode {
\textLengthOn
\override TextScript.self-alignment-X = #-0.12
\override TextScript.font-size = #-3
\override TextScript.baseline-skip = #1.5
d1:7
  _standard D7
d:7/aes
  _\markup \center-column { D7 lowered 5 in bass with wrong note }
d:7^5/aes
  _\markup \center-column { D7 lowered 5 in bass corrected }
}


  \new ChordNames \m
  \new FretBoards \m
  \new Staff \m


Conclusio:
- It's correct (and intended) LilyPond-behaviour to handle chords with
added bass differently.
- If you want those chords displayed in a certain way, you have to
define them, so that LilyPond knows what you intend. Yes, it's
tedious. But I don't see a reasonable other method.

HTH,
  Harm

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Lilypond generates a chord from nowhere

2014-12-30 Thread Stan Mulder
I have a fretboard problem.

I have defined a new fretboard for a plectrum banjo. Everything is working
properly when I specify a chord, except when I specify a SLASH chord, i.e.,
a chord with a designation for the bass player. So for example, if I specify
a G half-diminished chord, all is well. But if I specify a G half-diminished
chord with a D-flat in the bass, I get a fretboard fingering I don't recognize.

Okay: g:m7.5-
Not okay: g:m7.5-/dflat

Basically, I think the chord in both instances (with or without the slash
notes) should be exactly the same fingerings. How can I correct this?

Here's an example below:


\version 2.19.15
\include english.ly

%% tunings for 4-string banjo
\makeDefaultStringTuning #'plectrumTuning \stringTuning c g b d'

\storePredefinedDiagram #default-fret-table \chordmode {c}   
#plectrumTuning  #o;o;1;2; % C
\storePredefinedDiagram #default-fret-table \chordmode {g:m7.5-} 
#plectrumTuning  #5;3;2;5; % Gø

chordNames = \chordmode {
c1 g:m7.5- g:m7.5-/dflat

}

melody = \relative c'' {
c1 c c
}

\score {

\new ChordNames \chordNames
\new FretBoards \chordNames { 
\set Staff.stringTunings = #plectrumTuning
\override 
FretBoard.fret-diagram-details.finger-code = #'in-dot
\override 
FretBoard.fret-diagram-details.number-type = #'arabic
}
\new Staff { \melody }

}





%Stan


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Lilypond generates a chord from nowhere

2014-12-30 Thread Robert Schmaus


__

In religion, faith is a virtue. In science, faith is a vice.
-- Jerry Coyne

 On 30 Dec 2014, at 20:33, Stan Mulder st4588...@earthlink.net wrote:
 
 Basically, I think the chord in both instances (with or without the slash
 notes) should be exactly the same fingerings. How can I correct this?

There might be a better solution to this, but this should work: use two 
different chord-variables, like

Banjochords = \chordmode{ g : min7.5- }
Basschords = \chordmode{ g : min7.5- / dflat }

And then use \Banjochords in the fretboard staff, \Basschords in the Chordnames 
staff. You'll have to keep the chords twice, but this shouldn't be a problem if 
you write one and then copy/paste/edit the other one. 

You see, Lilypond can't know that the slash chord should not be played as such 
by the banjo ...

Best, Robert  
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Lilypond generates a chord from nowhere

2014-12-30 Thread Simon Albrecht

Am 30.12.2014 22:08, schrieb Robert Schmaus:


__

In religion, faith is a virtue. In science, faith is a vice.
-- Jerry Coyne


On 30 Dec 2014, at 20:33, Stan Mulder st4588...@earthlink.net wrote:

Basically, I think the chord in both instances (with or without the slash
notes) should be exactly the same fingerings. How can I correct this?

There might be a better solution to this,
Using tags should be more efficient, see 
http://lilypond.org/doc/v2.18/Documentation/notation/different-editions-from-one-source#using-tags.

HTH, Simon

  but this should work: use two different chord-variables, like

Banjochords = \chordmode{ g : min7.5- }
Basschords = \chordmode{ g : min7.5- / dflat }

And then use \Banjochords in the fretboard staff, \Basschords in the Chordnames 
staff. You'll have to keep the chords twice, but this shouldn't be a problem if 
you write one and then copy/paste/edit the other one.

You see, Lilypond can't know that the slash chord should not be played as such 
by the banjo ...

Best, Robert
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user



___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Lilypond generates a chord from nowhere

2014-12-30 Thread Stan Mulder
Simon Albrecht simon.albrecht at mail.de writes:

 Using tags should be more efficient, see 

http://lilypond.org/doc/v2.18/Documentation/notation/different-editions-from-one-source#using-tags.
 HTH, Simon

Simon,

I considered using two different definitions of the chords as Robert
suggested, but when I tried tags, they are more efficient and the code is
easier to maintain. Tags sort of act like an if-then-else construction. It
adds complexity, but it works. Thanks for the help

Stan


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user