Re: In 2.24, EADG string tuning for bass guitar tablature?

2024-01-30 Thread Kevin Cole
On Tue, Jan 30, 2024 at 12:38 PM Aaron Hill  wrote:
>
> Ok, the source does just use the standard EADG tuning.

I was wondering. As I say, I don't play it, but when I looked around
it seemed like there was no need to specify an explicit tuning, since
it seemed very common in my cursory research.

> But the reason mandolin-tuning did not work is that the strings are
> tuned too high for the notes.  Compare from string-tunings-init.ly:
>
> 
> \makeDefaultStringTuning #'bass-tuning \stringTuning 
> \makeDefaultStringTuning #'mandolin-tuning \stringTuning 
> 

> Now LilyPond is going to prefer fretting closer to the nut, so you will
> need to use string numbers to get the output to match the source
> tablature which is the ideal fretting position for that measure.
>
> And be careful with the \clef command being inside the \riff music
> variable.  TabStaff has its own specialized clef for printing the word
> "TAB".  You'll only want to apply the \clef to the Staff.
>
> 
> \version "2.22.0"
> \language "english"
>
> riff = \relative {
>\time 5/4
>c8\2[ g8\3] r8 c,8\4 ds8\4[ g8\3] f4\3 f'8\1 r8
> }
>
> \score {
>\new StaffGroup <<
>  \new Staff \with { \omit StringNumber } { \clef "bass_8" \riff }
>  \new TabStaff \with { stringTunings = #bass-tuning } { \riff }
>>>
> }
> 
>
> (StaffGroup will also get you that nice bracket out front.)

Thanks! It now looks (and as close as MIDI can) sounds pretty good to me.



Re: PDF Bookmarks

2024-01-30 Thread Jean Abou Samra
There is a known bug when combining `\tocItem` and `\bookpart`. See [issue 
#6355](https://gitlab.com/lilypond/lilypond/-/issues/6355). I've just posted a 
workaround on the issue.



signature.asc
Description: This is a digitally signed message part


PDF Bookmarks

2024-01-30 Thread Mariya Kireva
Hello all,

I have many \tocItem-s inside different bookparts wich i compile to one PDF 
document. I expected, that the \tocItem-s will create automatically bookmarks 
in my PDF document and they will appear in my PDF viewer, but is not the case. 
Can anybody help with this issue?

Best regards,
Mariya Kireva

Re: In 2.24, EADG string tuning for bass guitar tablature?

2024-01-30 Thread Aaron Hill

On 2024-01-30 8:20 am, Kevin Cole wrote:

Are you able to provide a link to the source score?  If it shows both
the tablature as well as standard notation, it should be pretty easy 
to

verify the intended tuning.


A newer MWE plus images that illustrate my question... a bit:


\version "2.24.2"
\language "english"

riff = \relative {
  \time 5/4
  \clef "bass_8"% I assume from examples that's right.
  c8[ g8] r8 c,8 ds8[ g8] f4 f'8 r8
}

\score {
\new Staff
  <<
\new Voice\with { \omit StringNumber }   \riff
\new TabStaff \with { stringTunings = #bass-tuning } \riff
  >>
}


original.png is what I'm copying from and mwe.png is what the above 
produces.


NOTE: I've changed mandolin-tuning back to bass-tuning.


Ok, the source does just use the standard EADG tuning.

But the reason mandolin-tuning did not work is that the strings are 
tuned too high for the notes.  Compare from string-tunings-init.ly:



\makeDefaultStringTuning #'bass-tuning \stringTuning 
\makeDefaultStringTuning #'mandolin-tuning \stringTuning 


Now LilyPond is going to prefer fretting closer to the nut, so you will 
need to use string numbers to get the output to match the source 
tablature which is the ideal fretting position for that measure.


And be careful with the \clef command being inside the \riff music 
variable.  TabStaff has its own specialized clef for printing the word 
"TAB".  You'll only want to apply the \clef to the Staff.



\version "2.22.0"
\language "english"

riff = \relative {
  \time 5/4
  c8\2[ g8\3] r8 c,8\4 ds8\4[ g8\3] f4\3 f'8\1 r8
}

\score {
  \new StaffGroup <<
\new Staff \with { \omit StringNumber } { \clef "bass_8" \riff }
\new TabStaff \with { stringTunings = #bass-tuning } { \riff }
  >>
}


(StaffGroup will also get you that nice bracket out front.)


-- Aaron Hill



Re: In 2.24, EADG string tuning for bass guitar tablature?

2024-01-30 Thread Kevin Cole
> Are you able to provide a link to the source score?  If it shows both
> the tablature as well as standard notation, it should be pretty easy to
> verify the intended tuning.

A newer MWE plus images that illustrate my question... a bit:


\version "2.24.2"
\language "english"

riff = \relative {
  \time 5/4
  \clef "bass_8"% I assume from examples that's right.
  c8[ g8] r8 c,8 ds8[ g8] f4 f'8 r8
}

\score {
\new Staff
  <<
\new Voice\with { \omit StringNumber }   \riff
\new TabStaff \with { stringTunings = #bass-tuning } \riff
  >>
}


original.png is what I'm copying from and mwe.png is what the above produces.

NOTE: I've changed mandolin-tuning back to bass-tuning.


Re: In 2.24, EADG string tuning for bass guitar tablature?

2024-01-30 Thread Aaron Hill

On 2024-01-30 7:17 am, Kevin Cole wrote:

I don't play bass guitar and my music theory-fu leaves a lot to be
desired, but I am attempting to transcribe from an existing score that
shows a tablature staff explicitly saying that it uses EAGD tuning.
After poking around a bit, I found that the mandolin uses the same
tuning (? I don't play any stringed instruments. So maybe that's not
right.)



Speaking as a bass player, EAGD just looks like someone fat-fingered the 
standard EADG tuning.  You would almost certainly have to re-string with 
lighter gauge to achieve it (especially if that D is a high D).  That, 
or the tuning results from swapping the D and G strings of the standard 
form, producing more interesting fingerings that the original bassist 
preferred.  (Some lefties who learned on right-handed basses are used to 
the upside-down fingerings, so it is not impossible to imagine a lefty 
getting a true left-handed bass but still wanting an upside-down or 
nearly upside-down layout.)


Are you able to provide a link to the source score?  If it shows both 
the tablature as well as standard notation, it should be pretty easy to 
verify the intended tuning.



-- Aaron Hill



Re: [large/complex projects] where should transpositions go?

2024-01-30 Thread Kieren MacMillan
Hi Simon,

> I’d like to share two approaches I’ve developed for such issues.

Thanks for all this!

> Firstly, I couldn’t take time to study your setup and how that makes these 
> approaches viable or not—sorry for that.

No worries — I recognize it’s a lot for anyone to try to wrap their head around 
if they’re not already in it to begin with.

> Secondly, if possible, I always try to use vanilla LilyPond tools

Me, too!

> I prefer using tags as far as they may take me over using the editionEngraver

Me, too! I just: (a) consider the Edition-Engraver to fall under the “vanilla 
Lilypond” rubric in the same way as other bespoke Scheme code does; and (b) 
have a lower limit than other people on how far tags “optimally go”.  ;)

> I prefer complicated \include setups with Scheme conditionals over using 
> make. This is in an attempt to improve maintainability and reduce overhead.

100%. 

>> I don’t believe quoted music can be transposed directly (i.e., you need to 
>> create a second, pre-transposed, quotation)
> What I’ve started doing after running into this problem is for example
> 
> sop = { %{soprano music%} }
> \addQuote "sop" \sop
> \addQuote "sop8vb" \transpose c c, \sop

Yes, that’s what I do (cf. “you need to create a second, pre-transposed, 
quotation”). I just wish it didn’t require that.

> Recently I even put this into my standard include files to avoid having that 
> third (or more) lines from the example:

That’s quite useful, actually. Thanks! (I really need to get more sugar in my 
Lilypond “diet”… I’m just working so hard on so many things that I never seem 
to have time to sit back and refine the sugar. )

> Another technique is this:
> 
> %%% from my library/ly-utility.ily file
> musicFunctionDummy = #(define-music-function (mus) (ly:music?) mus)
> 
> addToplevelMusicFunctions =
> #(define-scheme-function (names) (symbol-list-or-symbol?)
>(let* ((name-list (if (list? names) names (list names)))
>   (lookup-function
>(lambda (name) (let ((fn (ly:parser-lookup name)))
> (if (equal? fn '())
> (begin
>  (ly:warning "Cannot find music function
> ~a to add to toplevel functions.\n" name)
>  musicFunctionDummy)
> fn
>   (fn-list (map lookup-function name-list)))
>  (set! toplevel-music-functions
>(append fn-list toplevel-music-functions
> %%%
> 
> Example usage:
> 
> %%%
> transposer = \transpose g f \etc
> enharmonicsChooser = \keepWithTag #'originalSpelling \etc
> \addToplevelMusicFunctions transposer,enharmonicsChooser
> %%%

Currently I’m neither quite sure how this works, nor if/how it might be useful 
to me… but I appreciate the example, and will look into it!

Thanks,
Kieren.
__

My work day may look different than your work day. Please do not feel obligated 
to read or respond to this email outside of your normal working hours.




In 2.24, EADG string tuning for bass guitar tablature?

2024-01-30 Thread Kevin Cole
I don't play bass guitar and my music theory-fu leaves a lot to be
desired, but I am attempting to transcribe from an existing score that
shows a tablature staff explicitly saying that it uses EAGD tuning.
After poking around a bit, I found that the mandolin uses the same
tuning (? I don't play any stringed instruments. So maybe that's not
right.)

When I attempt to change:

\new TabStaff \with { stringTunings = #bass-tuning } \riff

to:

\new TabStaff \with { stringTunings = #mandolin-tuning } \riff

the TabStaff goes blank.

The 2.25 documentation page suggests it should work, there is no
corresponding 2.24 documentation page, yet there is no indication that
there was a change in this area between 2.24 and 2.25 in the changes
documentation.

https://lilypond.org/doc/v2.25/Documentation/notation/custom-tablatures
https://lilypond.org/doc/v2.24/Documentation/notation/custom-tablatures
- 404 not found
https://lilypond.org/doc/v2.25/Documentation/changes-big-page

Here's what I came up with as an MWE:

%%
\version "2.24.2"

riff = \relative {
  \clef "bass_8"% I assume from examples that's right.
  c,4 d e f
}

\score {
\new Staff
  <<
\new Voice\with { \omit StringNumber }   \riff
\new TabStaff \with { stringTunings = #mandolin-tuning } \riff
  >>
}
%%