Re: How to use shapeII in 2.18 on Windows 10?

2020-02-15 Thread Urs Liska
Hi Saul,

I need some more specifics to fully address your issues.

Am Samstag, den 15.02.2020, 17:38 -0800 schrieb Saul Tobin:
> I want to try using shapeII in one of my projects, so I cloned the
> repo into my Lilypond include folder. 

Which repository? Unfortunately there are currently two where it can be
found.

> The usage guide 

I don't fully understand what you are referring to. Which usage guide?

> requires OpenLilyLib Core to use modules, which I've never tried
> before. So I cloned oll-core and followed the documented folder
> structure.

Again, which documentation exactly?

> 
> Then when I try to compile the shapeII usage example, first it tells
> me that 2.19.22 is required — presumably for oll-core. That's a
> problem for me because my project is 2.18 and cannot be upgraded due
> to breaking changes. 

Yes, there is a substantial breaking change between 2.19.21 and 22,
which required to implement certain things conditionally all over the
place. And at some point we had to decide (there was a discussion about
it) to drop support for LilyPond 2.18 - also in the naive belief that
it couldn't be too long until 2.20 would become the new stable version
...

> But shapeII itself is apparently 2.18 compatible, so what am I
> supposed to do here?

If it really is (and I assume it is because Janek implemented it on
2.17, IIRC) you will be able to use it. Try including the "module.ily"
file directly, and if that doesn't work out of the box you should be
able to copy and paste everything the traditional way.

> 
> But even when I switch to 2.19.82 just to compile the usage example, 

Please include the complete file, or a GitHub link to it, so we can
talk about the same thing.

> it tells me:
> 
> :1:10: error: cannot find file: `oll-core/internal/os-
> path.ily'
> (search path: `C:/Program Files
> (x86)/LilyPond/2.19.82/usr/share/lilypond/current/fonts/svg/;C:/Progr
> am Files
> (x86)/LilyPond/2.19.82/usr/share/lilypond/current/fonts/type1/;C:/Pro
> gram Files
> (x86)/LilyPond/2.19.82/usr/share/lilypond/current/fonts/otf/;C:/Progr
> am Files
> (x86)/LilyPond/2.19.82/usr/share/lilypond/current/scm;C:/Program
> Files (x86)/LilyPond/2.19.82/usr/share/lilypond/current/ps;C:/Program
> Files
> (x86)/LilyPond/2.19.82/usr/share/lilypond/current/ly;C:/Users/Saul
> Tobin/.lily;')
> \include 
>  "oll-core/internal/os-path.ily"
> C:/Users/Saul Tobin/.lily/openlilylib/oll-core/package.ily:57:2:
> error: GUILE signaled an error for the expression beginning here
> #
>  (if (not (defined? 'openlilylib-root))
> 

As said, I don't know what file exactly you are trying to compile, and
I'm wondering why you have even reached a point where this specific
file is searched.
But what I *do* see is that you haven't told LilyPond where to look for
openLilyLib. As said also I don't know exactly what documentation you
are referring to, but if you have seen any documentation detailing
something about directory structure it should also include the
instruction which directory to add to LilyPond's search path.

HTH
Urs

> A quick search showed me a previous thread in which a user apparently
> tried and never succeeded in getting oll-core to work on Windows 10.
> 
> Can anyone shed some light on how to do this? All I want to do is
> include a snippet. Even if I'm just copy and pasting, I'm fine with
> it, but from what I can tell the module structure introduces
> complicated dependencies between files so I can't even do that. I
> thought modules were supposed to make things easier.
> 
> Thanks,
> 
> Saul




How to use shapeII in 2.18 on Windows 10?

2020-02-15 Thread Saul Tobin
I want to try using shapeII in one of my projects, so I cloned the repo
into my Lilypond include folder. The usage guide requires OpenLilyLib Core
to use modules, which I've never tried before. So I cloned oll-core and
followed the documented folder structure.

Then when I try to compile the shapeII usage example, first it tells me
that 2.19.22 is required — presumably for oll-core. That's a problem for me
because my project is 2.18 and cannot be upgraded due to breaking changes.
But shapeII itself is apparently 2.18 compatible, so what am I supposed to
do here?

But even when I switch to 2.19.82 just to compile the usage example, it
tells me:

:1:10 <0>: error: cannot find file: `oll-core/internal/os-path.ily'

(search path: `C:/Program Files
(x86)/LilyPond/2.19.82/usr/share/lilypond/current/fonts/svg/;C:/Program
Files
(x86)/LilyPond/2.19.82/usr/share/lilypond/current/fonts/type1/;C:/Program
Files
(x86)/LilyPond/2.19.82/usr/share/lilypond/current/fonts/otf/;C:/Program
Files (x86)/LilyPond/2.19.82/usr/share/lilypond/current/scm;C:/Program
Files (x86)/LilyPond/2.19.82/usr/share/lilypond/current/ps;C:/Program Files
(x86)/LilyPond/2.19.82/usr/share/lilypond/current/ly;C:/Users/Saul
Tobin/.lily;')

\include

"oll-core/internal/os-path.ily"

C:/Users/Saul Tobin/.lily/openlilylib/oll-core/package.ily:57:2 <1>: error:
GUILE signaled an error for the expression beginning here

#

(if (not (defined? 'openlilylib-root))


A quick search showed me a previous thread in which a user apparently tried
and never succeeded in getting oll-core to work on Windows 10.


Can anyone shed some light on how to do this? All I want to do is include a
snippet. Even if I'm just copy and pasting, I'm fine with it, but from what
I can tell the module structure introduces complicated dependencies between
files so I can't even do that. I thought modules were supposed to make
things easier.


Thanks,


Saul


Re: ly:make-pitch​

2020-02-15 Thread Urs Liska
Am Sonntag, den 16.02.2020, 00:19 +0100 schrieb David Kastrup:
> Freeman Gilmore  writes:
> 
> > On Sat, Feb 15, 2020 at 11:08 AM David Kastrup  wrote:
> > 
> > > Freeman Gilmore  writes:
> > > 
> > > > Were can I find the procedure for ly:make-pitch ?
> > > 
> > > Beneath
> > > 
> > > lily/pitch-scheme.cc:LY_DEFINE (ly_make_pitch, "ly:make-pitch",
> > > 
> > 
> > I could not find this in the LilyPond program, but I did find this
> > in Git
> > Hub.
> > 
> > I do not understand what i do not know; but it looks like nothing
> > more than
> > giving a LilyPond  name to a scheme procedure ly:make-pitch that
> > asked
> > about, no algorithm.  It does mention the 3 variable inputs but not
> > how or
> > what it does.
> > 
> > Where is this procedure in the LilyPond files?
> 
> I have no idea what you call "the LilyPond files".

I think there's a misunderstanding here. Freeman asks for (I assume)
the *Scheme* definition of the ly:make-pitch procedure.

@Freeman: Usually the procedures starting with "ly:" are not defined in
Scheme but in the C++ files. 
The C++ function (I'm not sure function is the correct term here)
"LY_DEFINE" somehow maps the Scheme function ly:make-pitch to the C++
function ly_make_pitch.

So if you want to know how that procedure works (or any of the ly:
stuff) you will have to look at the C++ code because the Scheme
function is essentially an *interface* to the C++ function.

HTH
Urs

> 




Re: ly:make-pitch​

2020-02-15 Thread David Kastrup
Freeman Gilmore  writes:

> On Sat, Feb 15, 2020 at 11:08 AM David Kastrup  wrote:
>
>> Freeman Gilmore  writes:
>>
>> > Were can I find the procedure for ly:make-pitch ?
>>
>> Beneath
>>
>> lily/pitch-scheme.cc:LY_DEFINE (ly_make_pitch, "ly:make-pitch",
>>
>
> I could not find this in the LilyPond program, but I did find this in Git
> Hub.
>
> I do not understand what i do not know; but it looks like nothing more than
> giving a LilyPond  name to a scheme procedure ly:make-pitch that asked
> about, no algorithm.  It does mention the 3 variable inputs but not how or
> what it does.
>
> Where is this procedure in the LilyPond files?

I have no idea what you call "the LilyPond files".

-- 
David Kastrup
My replies have a tendency to cause friction.  To help mitigating
damage, feel free to forward problematic posts to me adding a subject
like "timeout 1d" (for a suggested timeout of 1 day) or "offensive".



Re: ly:make-pitch​

2020-02-15 Thread Freeman Gilmore
On Sat, Feb 15, 2020 at 11:08 AM David Kastrup  wrote:

> Freeman Gilmore  writes:
>
> > Were can I find the procedure for ly:make-pitch ?
>
> Beneath
>
> lily/pitch-scheme.cc:LY_DEFINE (ly_make_pitch, "ly:make-pitch",
>

I could not find this in the LilyPond program, but I did find this in Git
Hub.

I do not understand what i do not know; but it looks like nothing more than
giving a LilyPond  name to a scheme procedure ly:make-pitch that asked
about, no algorithm.  It does mention the 3 variable inputs but not how or
what it does.

Where is this procedure in the LilyPond files?

Thank you, ƒg

And the docs (for what they are worth) are likely more or less in the
Internals Reference.

-- 
David Kastrup


Transposing instruments

2020-02-15 Thread Kieren MacMillan
Hi Pierre-Luc,

> I now feel a weight have been lifted from my shoulders.

Well, I hope we don’t hear from you years from now saying “For what it's worth, 
I wish somebody would have told me earlier that I
should use clefs rather than transpositions.”  LOL

Cheers,
Kieren.


Kieren MacMillan, composer (he/him/his)
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info




Transposing instruments

2020-02-15 Thread Pierre-Luc Gauthier
Hello again Kieren,

Sort of a pedantic conversation here but anyway, the way I manage
transposition is  :

I write music somewhere :

piccolo = { c'''4 }
clarinet = { c''4 }
violin = { c'' }
guitar = { e, }
bass = { e,, }
\addQuote "x" \x

Then I define the parts :

piccoloPart = \transpose c' c { \tranposition c'' …}
piccoloScore = \clef "treble^8" …
hornPart = \transpose f c' { \transposition f …}
hornScore = \clef alto …

Transposition is an instrument problem. Guitarist and bassist expect a
treble and a bass clef.

If I'm transposing for, say, the clarinet part in A of Bf, why should
I not transpose the bass part?

Le sam. 15 févr. 2020 à 10:56, Kieren MacMillan
 a écrit :
> if you try to reuse your guitarStaff…

This guitarStaff is made to be displayed to a guitarist expected to
play a guitar. Not to be used anywhere else.

> the notes will be the wrong ones

Transposed notes for a Bf clarinet are not the wrong notes.

I guess my point is : guitar, piccolo and basse are no different to me
than clarinets, horns, english horns, etc.

I now feel a weight have been lifted from my shoulders.
-- 
Pierre-Luc Gauthier



Re: ly:make-pitch​

2020-02-15 Thread David Kastrup
Freeman Gilmore  writes:

> Were can I find the procedure for ly:make-pitch ?

Beneath

lily/pitch-scheme.cc:LY_DEFINE (ly_make_pitch, "ly:make-pitch",

And the docs (for what they are worth) are likely more or less in the
Internals Reference.

-- 
David Kastrup



Re: Stop Tablature from moving up an octave

2020-02-15 Thread Kieren MacMillan
Hi Pierre-Luc,

>> NO! Instead, use a transposing clef:
> 
> I guess people (and books) diverge in opinion here.
> But I do not write bass parts with \clef "bass_8" neither guitar with
> \clef "treble_8".

That’s fine, from a visual perspective — just turn off the ClefModifier.

The problem I see with your code is similar to the [main] problem with relative 
mode: if you try to reuse your guitarStaff, the notes will be the wrong ones. 
With my version, the notes are the correct ones.

Cheers,
Kieren.


Kieren MacMillan, composer (he/him/his)
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info




ly:make-pitch​

2020-02-15 Thread Freeman Gilmore
Were can I find the procedure for ly:make-pitch ?
Thank you, ƒg


Re: Stop Tablature from moving up an octave

2020-02-15 Thread Pierre-Luc Gauthier
Le sam. 15 févr. 2020 à 10:45, Kieren MacMillan
 a écrit :

> > guitarStaff = \transpose c c' {
> >  % Here we transpose

> NO! Instead, use a transposing clef:

I guess people (and books) diverge in opinion here.
But I do not write bass parts with \clef "bass_8" neither guitar with
\clef "treble_8".
In my non transposing conductor scores though I explicitely use
"bass_8" for basses and "treble_8" for guitars.

-- 
Pierre-Luc Gauthier



Re: Stop Tablature from moving up an octave

2020-02-15 Thread Bob Stricklin
Thanks to all for the excellent support an help.

It is clear to me now and I have it working properly.

Bob




Re: Stop Tablature from moving up an octave

2020-02-15 Thread Kieren MacMillan
Hi Pierre-Luc,

> \version "2.21.0"
> 
> song = {
>  % here you write the music the
>  % way it should sound
>
>|
> }

Yes.

> guitarStaff = \transpose c c' {
>  % Here we transpose

NO! Instead, use a transposing clef:

  guitarStaff = {
\clef "treble_8"
\new Voice { \song }
  }

If for some (unknown!) reason you don’t want to see the "8", use \omit 
ClefModifier.

> For what it's worth, I wish somebody would have told me earlier
> that I should use absolute mode rather than relative.



Cheers,
Kieren.


Kieren MacMillan, composer (he/him/his)
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info




Re: Stop Tablature from moving up an octave

2020-02-15 Thread Pierre-Luc Gauthier
Guitar (like the bass) is a transposing instrument.

The Tab part though is not transposing (obviously).

\version "2.21.0"

song = {
  % here you write the music the
  % way it should sound

|
}

guitarStaff = \transpose c c' {
  % Here we transpose because a
  % guitar is a transposing instrument
  \new Staff \with {
\transposition c
% This^ will help with MIDI and
% with \cueDuring etc.
  } \new Voice \with {
  } \song
}

guitarTab = {
  \new TabStaff \with {
  } \new TabVoice \with {
  } \song
}

guitarReal = \new Staff \with {
  \clef bass
} \new Voice \with {
} \song

guitarPart = \new GrandStaff \with {
  instrumentName = "Guitar"
} <<
  \guitarStaff
  \guitarTab
>>

\score {
  <<
\guitarPart
\guitarReal
  >>
}

For what it's worth, I wish somebody would have told me earlier that I
should use absolute mode rather than relative.
e.g. :  e, is the low e on your guitar.

Le sam. 15 févr. 2020 à 09:49, David Kastrup  a écrit :
>
> Bob Stricklin  writes:
>
> > I am new to Lilypond and can not get Tablature for guitar to work like I 
> > think it should.
> >
> > The documentation indicates Lilypond will select the lowest fret and open 
> > strings.
> >
> > When I run my example below the tablature selects fret position 12 and not 
> > zero for three of the note groups.
> > I want it to select zero for all strings played. Is there an easy solution 
> > to this issue?
> >
> > Its odd that the code works properly for one of the three note groupings.
> >
> > This is to represent finger picking a bass note and two other notes with 
> > fingers.
> >
> > My Simplified code input using Frescobaldi on Ubuntu 18.04.
> >
> > \version "2.18.2"
> >
> > song = {
> >  
> > }
> >
> >   \score {
> >   <<
> > %   \override StringNumber #'transparent = ##t
> >\relative c'
> >
> >  {\song }
> >}
> >
> >\new TabStaff
> >
> > {\song}
> >>>
> > }
>
> Looks to me like you are entering everything an octave too high.  From
> \relative c' the note e, just gives e while the lowest note of a guitar
> is actually e, .
>
> You are aware that guitar notes written in treble clef sound an octave
> lower than written?  "Correct" guitar notes are written using \clef
> "treble_8" though a lot of notes abound not bothering spelling out the
> octavation.
>
> But LilyPond does care about the actual pitch.  Check the Midi and
> compare with your instrument.
>
> --
> David Kastrup
> My replies have a tendency to cause friction.  To help mitigating
> damage, feel free to forward problematic posts to me adding a subject
> like "timeout 1d" (for a suggested timeout of 1 day) or "offensive".
>


-- 
Pierre-Luc Gauthier
\version "2.21.0"

song = {
  % here you write the music the
  % way it should sound

|
}

guitarStaff = \transpose c c' {
  % Here we transpose because a
  % guitar is a transposing instrument
  \new Staff \with {
\transposition c
% This^ will help with MIDI and
% with \cueDuring etc.
  } \new Voice \with {
  } \song
}

guitarTab = {
  \new TabStaff \with {
  } \new TabVoice \with {
  } \song
}

guitarReal = \new Staff \with {
  \clef bass
} \new Voice \with {
} \song

guitarPart = \new GrandStaff \with {
  instrumentName = "Guitar"
} <<
  \guitarStaff
  \guitarTab
>>

\score {
  <<
\guitarPart
\guitarReal
  >>
}

Re: Stop Tablature from moving up an octave

2020-02-15 Thread David Kastrup
Bob Stricklin  writes:

> I am new to Lilypond and can not get Tablature for guitar to work like I 
> think it should.
>
> The documentation indicates Lilypond will select the lowest fret and open 
> strings.
>
> When I run my example below the tablature selects fret position 12 and not 
> zero for three of the note groups.
> I want it to select zero for all strings played. Is there an easy solution to 
> this issue?
>
> Its odd that the code works properly for one of the three note groupings.
>
> This is to represent finger picking a bass note and two other notes with 
> fingers.
>
> My Simplified code input using Frescobaldi on Ubuntu 18.04.
>
> \version "2.18.2"
>
> song = {
>  
> }
>
>   \score {
>   <<
> %   \override StringNumber #'transparent = ##t
>\relative c'
>  
>  {\song }
>}
>  
>\new TabStaff 
>
> {\song}
>>>
> }

Looks to me like you are entering everything an octave too high.  From
\relative c' the note e, just gives e while the lowest note of a guitar
is actually e, .

You are aware that guitar notes written in treble clef sound an octave
lower than written?  "Correct" guitar notes are written using \clef
"treble_8" though a lot of notes abound not bothering spelling out the
octavation.

But LilyPond does care about the actual pitch.  Check the Midi and
compare with your instrument.

-- 
David Kastrup
My replies have a tendency to cause friction.  To help mitigating
damage, feel free to forward problematic posts to me adding a subject
like "timeout 1d" (for a suggested timeout of 1 day) or "offensive".



Stop Tablature from moving up an octave

2020-02-15 Thread Bob Stricklin
I am new to Lilypond and can not get Tablature for guitar to work like I think 
it should.

The documentation indicates Lilypond will select the lowest fret and open 
strings.

When I run my example below the tablature selects fret position 12 and not zero 
for three of the note groups.
I want it to select zero for all strings played. Is there an easy solution to 
this issue?

Its odd that the code works properly for one of the three note groupings.

This is to represent finger picking a bass note and two other notes with 
fingers.

My Simplified code input using Frescobaldi on Ubuntu 18.04.

\version "2.18.2"

song = {
 
}

  \score {
  <<
%   \override StringNumber #'transparent = ##t
   \relative c'
 
 {\song }
   }
 
   \new TabStaff 
   
{\song}
>>
}

Output numbers only:

0   0   0   0
12  12  0   12

0   0   0   0

I wish there was an ability to:

Select string and fret manually. Something like \3-0.

It would also be helpful to have a command like
\set TabStaff.maximumFret=#5   This would force the automatic code to 
remain in the first few frets.




Re: layout doesn't work as I expected

2020-02-15 Thread fcorvi
Thank you Kieren that was very useful, I will definitely also fix my
indentation style!



--
Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html



Re: layout doesn't work as I expected

2020-02-15 Thread fcorvi
Thanks David, I was missing the difference between locals and globals layouts
now everything is more clear



--
Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html



Re: layout doesn't work as I expected

2020-02-15 Thread fcorvi
Thanks Aaron that was smooth and clear :)



--
Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html