Re: Is anyone maintaining midi2ly?

2018-01-01 Thread Michael Ellis
On Mon, Jan 1, 2018 at 5:08 PM Gianmaria Lari 
wrote:

> Ciao Michael,
>
> Thank you for your help, now it works!!
>
Great. I added some more explanatory text to help others not stumble over
it.


> Some suggestion about your test page:
> - The text box where you can write the music is too large. My screeen
> resolution is 1920x1080 but I cannot see at the same time this text box and
> the submit/play etc. buttons
>
I agree about the height when viewed in a wide window.  There are a couple
of ways you can control it.

   1. The text area is resizable. You should be able to drag it from the
   lower right corner to whatever feels comfortable.
   2. The font sizes are all specified in viewport width units so mobile
   users will have at least a fighting chance to read it.  On a desktop, if
   you shrink the width of your browser window the fonts and the rest of the
   layout will shrink to expose more of the vertical page.

The reason for the tall text area is to support users who want to enter
extended music samples.

- The panel with "Choose pitch characters" should be put in the same panel
> with the others buttons (submit, play etc.); IMHO it is too far from the
> rest.
>
That's worth considering.  Thanks!

I've just added a couple of new examples you can paste and try. One is a
few bars of a two part duet voiced for flute and guitar. The other is a
little percussion pattern for bass drum,  snare and ride cymbal.

Cheers,
Mike
-- 
Write music faster with Tbon.

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


Re: Is anyone maintaining midi2ly?

2018-01-01 Thread Michael Ellis
On Sat, Dec 30, 2017 at 6:08 PM <k...@aspodata.se> wrote:

> David Kastrup:
> > Michael Ellis <michael.f.el...@gmail.com> writes:
> ...
> > > The MuseScore output is correct and matches the tempo and meter items
> > > embedded in the original midi file (attached).  I've also verified
> with 2 different
> > > DAW's (Reaper and Logic X) that the midi file is imported correctly.
>
> The midi file matches your msc2-meter-example.png, I can show you
> (Michael) a dump if you like.

Thanks, Karl. Always good to have a sanity check.


> Nice idea to have c--c mean c8. c16 which is much more error prone to
> type.
>
 Also easier to edit if you change your mind.  To make it a triplet rhythm,
just delete a dash to get c-c, or add a dash to get a quintuplet 60/40
swing, i.e. c--c-

You could probably change your python program to output lilypond code
> directly.
>
I'm hoping an enthusiastic contributor will send a pull request. Ditto for
musicXML.  :-)
Seriously, I decided to focus on midi output because it's the only thing
that almost all the other music software will import, more or less.

Thanks for the interest and feedback and sorry to take a couple of days to
respond.  I'll plead New Years celebrations (and also adding GM instrument
support to tbon.)
Cheers,
Mike
-- 
Write music faster with Tbon.
<https://github.com/Michael-F-Ellis/tbon/#tbon>
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Is anyone maintaining midi2ly?

2018-01-01 Thread Michael Ellis
On Sat, Dec 30, 2017 at 6:11 PM Michael Ellis <michael.f.el...@gmail.com>
wrote:

> David Kastrup wrote:
>
>- I get correct PDF output on 2.21.0 but a nonsensical wash of bar
>checks that appear to cater to 2/4 throughout.
>
>
> I'll try upgrading to 2.21 and see if that makes any difference.
>

Hmmm, I don't see a 2.21 binary for OS X.  I downloaded 2.19.80.  Got
bogged down trying to run mid2ly as a standalone under python 3.5.
-- 
Write music faster with Tbon.
<https://github.com/Michael-F-Ellis/tbon/#tbon>
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Is anyone maintaining midi2ly?

2017-12-30 Thread Michael Ellis
David Kastrup wrote:

   - I get correct PDF output on 2.21.0 but a nonsensical wash of bar
   checks that appear to cater to 2/4 throughout.

Thanks for testing it, David.  What options did you use for midi2ly and
lilypond?  My command lines were:

./midi2ly.py -o meter.ly -n -V 1 meter.midi
lilypond meter.ly

I only got one bar check complaint when LP processed meter.ly which
contains:

TrackA = {
  \numericTimeSignature\time 4/4  c'4 d'4 e'4 f'4  |  % orig
  \numericTimeSignature\time 2/4  g'8 a'8 g'8 g'8 a'8 g'8 c''4  |  % orig
  \numericTimeSignature\time 6/8  c''4 g'8 a'8 g'8 g'8 a'8 g'8  |  % orig
  \numericTimeSignature\time 2/4  c''4 c''4 r2  |  % orig
}

It was on the 6/8 line in the above which contains 8 eighth-notes.

I'll try upgrading to 2.21 and see if that makes any difference.


On Sat, Dec 30, 2017 at 5:15 PM David Kastrup <d...@gnu.org> wrote:

> Michael Ellis <michael.f.el...@gmail.com> writes:
>
> > Hi, It's been a few years since my last post here.  I'm wondering about
> the status of
> > midi2ly.  I just tried the version that came with 2.18.2 and it seems to
> handle meter
> > changes incorrectly.  Here's a short example produced from a midi file
> imported into
> > MuseScore 2.1
> >
> > msc2-meter-example.png
> >
> > and here's the result of processing what midi2ly produced from the same
> file
> >
> > ly-meter-example.png
> >
> > The MuseScore output is correct and matches the tempo and meter items
> > embedded in the original midi file (attached).  I've also verified with
> 2 different
> > DAW's (Reaper and Logic X) that the midi file is imported correctly.
> >
> > The application that produced the midi file is called tbon. It's a
> shorthand notation
> > language I wrote for projects where fast notation entry is more
> important than
> > having the full capabilities of LilyPond.  If you're curious about tbon,
> go to
> > https://github.com/Michael-F-Ellis/tbon . The README has a link to a
> live online
> > demo.
> >
> > I'd really rather use LP than MuseScore for the times when I want to
> engrave the
> > output from tbon since LP still produces better looking scores, imo, but
> not being
> > able to handle meter changes is a showstopper.
>
> I get correct PDF output on 2.21.0 but a nonsensical wash of bar checks
> that appear to cater to 2/4 throughout.
>
> --
> David Kastrup
>
-- 
Write music faster with Tbon.
<https://github.com/Michael-F-Ellis/tbon/#tbon>
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Is anyone maintaining midi2ly?

2017-12-30 Thread Michael Ellis
Hi, It's been a few years since my last post here.  I'm wondering about the
status of midi2ly.  I just tried the version that came with 2.18.2 and it
seems to handle meter changes incorrectly.  Here's a short example produced
from a midi file imported into MuseScore 2.1

[image: msc2-meter-example.png]

and here's the result of processing what midi2ly produced from the same file

[image: ly-meter-example.png]

The MuseScore output is correct and matches the tempo and meter items
embedded in the original midi file (attached).  I've also verified with 2
different DAW's (Reaper and Logic X) that the midi file is imported
correctly.

The application that produced the midi file is called *tbon*. It's a
shorthand notation language I wrote for projects where fast notation entry
is more important than having the full capabilities of LilyPond.  If you're
curious about tbon, go to https://github.com/Michael-F-Ellis/tbon . The
README has a link to a live online demo.

I'd really rather use LP than MuseScore for the times when I want to
engrave the output from tbon since LP still produces better looking scores,
imo, but not being able to handle meter changes is a showstopper.

Thanks,
Mike
-- 
Write music faster with Tbon.



meter.midi
Description: MIDI audio
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Linnstrument tablature

2015-10-28 Thread Michael Ellis
On Tue, Oct 27, 2015 at 4:21 PM, Urs Liska  wrote:

> Without trying to really understand the implications I would ask you: Is
> there a way to indicate that kind of two-dimensionality *in notation*
> and, if so, how?
> If you have an answer to that it will be easier to consider a LilyPond
> implementation.
>

Not sure if you mean the two-dimensionality of the grid layout or the two
(actually 3) dimensions of pad response.  I'll try to address both:

Because the rows are always monotonically chromatic,  they're analogous to
a fretted string so a linnstrument tuned in, say, fourths can be
represented in tab much like an 8 string guitar, e.g.

%%
-
linnstrument-fourths = \stringTuning 

first-two = \relative c,  {
  c4 e g c |
  e4 g  b c
}
next-two = \relative c' {
  2  g'4\4  c\3 |
  e4\2  g\2  b c
}

<<
  \new Staff {
\clef bass
\first-two
\clef treble
\next-two
  }
  \new TabStaff {
\set TabStaff.stringTunings = #linnstrument-fourths
  % No open strings on Linnstrument, first pad is fret 1
  \set TabStaff.minimumFret = #1
 \set TabStaff.restrainOpenStrings = ##t

\first-two \next-two
  }
>>
%%
-


The problem I alluded to in my previous post is that you might well want to
play the half-note chord in measure 3 on row 5 as 2 (frets 16,20),
but LP doesn't seem to support that yet.

There's also an issue if someone wants to arrange the row pitches ascending
from back to front.  I tried that in the string tuning list and LP didn't
do well at keeping the fret numbers low.


Concerning the 3-D pad responses,  the typical mapping is:

Z (pressure) --> loudness
X  --> pitch bend
Y  --> timbre

Those can be handled in standard notation with hairpins for loudness,
 vibrato, slurs, slides etc for pitch bend, and markup for timbre, e.g.
'sul ponte, sul tasto ...'.

Urs Liska  replied:

Your image shows it as I expected. But my question remains: if you want
> that c/e be pressed on one "string" how would you visualize that *at all*?
> Only with a clear idea about that it's possible to consider a *LilyPond*
> implementation.


That's a very good question.  Since a new convention is required I think
it's important to think carefully about what would be most readable and
cause the least conflict with existing conventions.  I'm leaning toward
something very simple, like

---16 20---  whitespace between pad numbers means play simultaneously.

For stemmed tablature, I'd say the stems should attach to the rightmost pad
number for up stems and the leftmost for downstems.

Slurs, I suppose, should extend from the leftmost pad that's musically part
of the slur to the rightmost.

For glissandi, it may be challenging to cover all possibilities.  The
Linnstrument permits a slide from any pad to any other in the same row, so
there's a need to cover cases like sliding from the center note of 3 pads
held down on a row to some other note.
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Linnstrument tablature

2015-10-28 Thread Michael Ellis
Marc Hohl <m...@hohlart.de
<mailto:m...@hohlart.de>> wrote:

Am 28.10.2015 um 01:36 schrieb Michael Ellis:

>
> On Tue, Oct 27, 2015 at 4:27 PM, Marc Hohl <m...@hohlart.de
> <mailto:m...@hohlart.de>> wrote:
>
> Wow, looks like a futuristic Chapman stick ;-)
>
>
> Yes, it's been on the market less than a year.  Mine, which came 2
> weeks ago, is #437.  I usually stay away from the bleeding edge but I
> just couldn't resist.
>

Yes, this seems to be an interesting and inspirational tool to create music.

It's the electronic instrument I've always dreamed of designing only
> better thought out.  I also really like the fact that the maker has
> open-sourced the firmware and designed it around the Arduino Due.
>
>
> Are there any examples of how this should look like?
>
> See my reply to Urs


Marc, thanks for noticing I hadn't posted to the list.  Sorry, unfamiliar
email client ...
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Linnstrument tablature

2015-10-28 Thread Michael Ellis
On Wed, Oct 28, 2015 at 11:58 AM BB  wrote:

> Sounds interesting. Which midi synth do you use with it?
>
> I'm using Logic Pro X.  It supports Channel Per Note MIDI which is needed
for polyphonically varying control messages.

A list of recommended sound generators is maintained at
http://www.rogerlinndesign.com/linnstrument-recommended-sound-generators.html
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Linnstrument tablature

2015-10-28 Thread Michael Ellis
On Wed, Oct 28, 2015 at 3:11 PM David Kastrup <d...@gnu.org> wrote:

> Michael Ellis <michael.f.el...@gmail.com> writes:
>
> > The problem I alluded to in my previous post is that you might well
> > want to play the half-note chord in measure 3 on row 5 as <c\5 e\5>2
> > (frets 16,20), but LP doesn't seem to support that yet.
>
> It seems to me that the main problem is that paper doesn't support it
> either.  Care for making a sketch how you imagine this should look like?
>
>
Here's what I wrote earlier in reply to Urs.

 I'm leaning toward something very simple, like

---16 20---  whitespace between pad numbers means play simultaneously.

For stemmed tablature, I'd say the stems should attach to the rightmost pad
number for up stems and the leftmost for downstems.

Slurs, I suppose, should extend from the leftmost pad that's musically part
of the slur to the rightmost.

For glissandi, it may be challenging to cover all possibilities.  The
Linnstrument permits a slide from any pad to any other in the same row, so
there's a need to cover cases like sliding from the center note of 3 pads
held down on a row to some other note.
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Sibelius 7 to LilyPond Conversion!

2015-10-28 Thread Michael Ellis
Just a thought: You might have some luck feeding the Sibelius XML to
music21 http://web.mit.edu/music21/doc/systemReference/faq.html and then
re-writing the XML file to feed to musicxml2ly.  Music21 is open source,
fairly powerful, and somewhat Lilypond aware.

On Wed, Oct 28, 2015 at 6:25 PM Jacques Menu  wrote:

> Hello Thomas,
>
> No luck:
> - exporting from Sibelius 7.1.3 to MusicXML produces a file, but
> music2xml crashes on it;
> - save after importing those exports into Finale 2014 and
> re-exporting as MusicXML.
>
> See below what I get. Things always end with:
> raise "More than 1 child", klass
>
> There are messages related to slurs, and it seems Sibelius mixes slurs and
> ties happily…
> Could there be such a problem in your Sibelius files?
>
> JM
>
>
>
> menu@macbookprojm:~/Desktop > ll *.xml
>  488 -rw-r--r--  1 menu  staff   246645 Oct 28 23:14:44 2015 Sleigh Ride
> Official - Trumpet in Bb 1 from Finale 2014.xml
>  472 -rw-r--r--  1 menu  staff   239577 Oct 28 23:00:40 2015 Sleigh Ride
> Official - Trumpet in Bb 1.xml
> 4016 -rw-r--r--  1 menu  staff  2052228 Oct 28 23:14:15 2015 Sleigh Ride
> Official from Finale 2014.xml
> 4184 -rw-r--r--  1 menu  staff  2140026 Oct 28 23:00:11 2015 Sleigh Ride
> Official.xml
>
>
>
> menu@macbookprojm:~/Desktop > musicxml2ly Sleigh\ Ride\ Official\ -\
> Trumpet\ in\ Bb\ 1.xml
> musicxml2ly: Reading MusicXML from Sleigh Ride Official - Trumpet in Bb
> 1.xml ...
> musicxml2ly: Converting to LilyPond expressions...
> Traceback (most recent call last):
>   File "/Applications/LilyPond.app/Contents/Resources/bin/musicxml2ly",
> line 2986, in 
> main()
>   File "/Applications/LilyPond.app/Contents/Resources/bin/musicxml2ly",
> line 2981, in main
> voices = convert (filename, options)
>   File "/Applications/LilyPond.app/Contents/Resources/bin/musicxml2ly",
> line 2892, in convert
> score = extract_score_structure (mxl_pl, staff_info)
>   File "/Applications/LilyPond.app/Contents/Resources/bin/musicxml2ly",
> line 430, in extract_score_structure
> staff = read_score_part (el)
>   File "/Applications/LilyPond.app/Contents/Resources/bin/musicxml2ly",
> line 383, in read_score_part
> staff.instrument_name = extract_display_text (partname)
>   File "/Applications/LilyPond.app/Contents/Resources/bin/musicxml2ly",
> line 907, in extract_display_text
> child = el.get_maybe_exist_named_child ("display-text")
>   File
> "/Applications/LilyPond.app/Contents/Resources/share/lilypond/current/python/musicxml.py",
> line 114, in get_maybe_exist_named_child
> return self.get_maybe_exist_typed_child (get_class (name))
>   File
> "/Applications/LilyPond.app/Contents/Resources/share/lilypond/current/python/musicxml.py",
> line 123, in get_maybe_exist_typed_child
> raise "More than 1 child", klass
> TypeError: exceptions must be old-style classes or derived from
> BaseException, not str
>
>
>
> menu@macbookprojm:~/Desktop > musicxml2ly Sleigh\ Ride\ Official.xml
> musicxml2ly: Reading MusicXML from Sleigh Ride Official.xml ...
> musicxml2ly: Converting to LilyPond expressions...
> musicxml2ly: Converting to LilyPond expressions...
> musicxml2ly: Converting to LilyPond expressions...
> musicxml2ly: Converting to LilyPond expressions...
> musicxml2ly: Converting to LilyPond expressions...
> musicxml2ly: warning: Cannot have a slur inside another slur
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
> musicxml2ly: warning: Cannot have a slur inside another slur
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
> musicxml2ly: warning: Cannot have a slur inside another slur
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
> musicxml2ly: warning: Cannot have a slur inside another slur
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
> musicxml2ly: Converting to LilyPond expressions...
> musicxml2ly: warning: Cannot have a slur inside another slur
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
> musicxml2ly: Converting to LilyPond expressions...
> musicxml2ly: warning: Cannot have a slur inside another slur
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
> musicxml2ly: Converting to LilyPond expressions...
> musicxml2ly: Converting to LilyPond expressions...
> musicxml2ly: warning: Cannot have two simultaneous slurs
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
> musicxml2ly: warning: Encountered closing slur, but no slur is open
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
> musicxml2ly: warning: Cannot have two simultaneous slurs
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
> musicxml2ly: warning: Encountered closing slur, but no slur is open
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
>   In: 
>
> musicxml2ly: Converting to LilyPond expressions...
> musicxml2ly: Converting to LilyPond expressions...
> musicxml2ly: Converting to 

Linnstrument tablature

2015-10-27 Thread Michael Ellis
I just acquired a Linnstrument.  It's a grid of 200 touchpads, each with
independent sensing of pressure and finger motion in both x and y.  More
about it here .

The pads are arranged in 8 rows of 25 pads.  The pitches are chromatic
along rows ( 1/2 step between adjacent pads) with user configurable
intervals between rows.  Typical row-to-row tuning is in 4ths, but other
intervals are possible.

I want to create some tablature for it.  Lilypond's custom tablature
capability is about 90% of what I need.  The only complication is that,
unlike a real stringed instrument, one can play multiple simultaneous
pitches within a row as well as across rows.  Is there a way to indicate
that in tab with LilyPond and, if so, how?

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


Re: MIDI and Volta repeats in parallel music

2014-11-23 Thread Michael Ellis
On Sun, Nov 23, 2014 at 4:46 PM, pe...@chubb.wattle.id.au wrote:

 What's more, is there a reason to have the structure in a different
 voice?





Good question. For me,  it's mostly about the DRY principle (don't repeat
yourself).  I'm in the process of writing a program that tries to maximize
one's opportunities to exploit the repetitive aspects of most compositions
when entering the notation for multiple voices.  It's a work in progress,
but if you're curious it lives at
https://github.com/Michael-F-Ellis/TransLily

As for the whole \repeat unfold business, I'd love to understand why LP can
merge repeats in the PDF but can't do it MIDI.  I know the developers are
really smart folks,  so it must be way more challenging than I'm imagining.
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: MIDI and Volta repeats in parallel music

2014-11-23 Thread Michael Ellis
On Sun, Nov 23, 2014 at 10:33 PM, Peter Chubb pe...@chubb.wattle.id.au
wrote:

 My point I think is that the structure is the structure of the voice,
 not the structure of the staff.  Which is why, BTW, the MIDI repeats
 don't unfold.

 Visibly the structure voice shows the repeats, but the repeats aren't
 actually in the music voice.


I do understand that and it makes sense for LP to support almost any crazy
thing a composer might do.  As practical matter, however,  having volte in
one voice and not another is extremely rare.  I don't think I've ever seen
that in a score.

I haven't looked at the LilyPond code for \repeat, so I'm just guessing
here, but it seems to me that  maybe \repeat unfold is wrong tool for job
since it operates at the level of music expressions.   Maybe what's needed
is lower level code that operates at the level of midi file timing.  I
think it's analogous to what LP has to do to put the repeat bars and other
staff-level annotations from one voice in the right spatial location to
relative to another voice's.  That's a non-trivial task in itself, without
even getting into what LP does to avoid vertical collisions.

So it if were up to me (and it certainly isn't), I'd like to see some
effort put into developing a new command to designated one voice as a
'master' in the midi block, so that one might write something like

\score {
   \structure \\ voiceA \\ voiceB  ... 
  \midi {
  \master \structure
  }
}

to tell LP Keep track of the repeats in the master and copy/paste as
needed in the other voices to make it so.

This is a good discussion and I hope we can continue it.  I'm going to be
traveling for the next 2 days so if my responses aren't immediate it
doesn't mean I'm not interested.

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


Re: MIDI and Volta repeats in parallel music

2014-11-22 Thread Michael Ellis
On Wed, Nov 19, 2014 at 10:54 AM, Michael Ellis michael.f.el...@gmail.com
wrote:



 ​
 I find it advantageous when working with multiple voices to keep
 'structural' information (meter, tempo, etc.) in a separate voice that gets
 combined with the other voices as illustrated in the image and code below.
 In this example, the pdf layout is correct and the MIDI output honors the
 tempo change, but doesn't repeat the second measure despite using a
 separate score block with \unfoldRepeats.


After some further research, it appears that there is no general solution
(other than copying the volte into each voice) so I'm dropping the question.

I have another question that's somewhat related.  If my example  contained
notes above the middle line, you would notice that the stem directions
would still be up because I designated \music as \voiceOne and \structure
as \VoiceTwo.


 music = \relative c' { c4 d e | f g a b  }

 structure = {
 \time 3/4 \tempo 4=60 s2.
 \time 4/4 \tempo 4=120 \repeat volta 2 { s1 }
  }

 \score {
   \new Staff = Music {
   
 \new Voice = Music { \voiceOne \music }
 \new Voice = Structure { \voiceTwo \structure }
   
   }
 }


Is there a way to tell LilyPond to apply the usual single voice rules for
stem direction to \music?
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: MIDI and Volta repeats in parallel music

2014-11-22 Thread Michael Ellis
On Sat, Nov 22, 2014 at 11:16 AM, Urs Liska u...@openlilylib.org wrote:



 Well, in this case you don't have any conflicting music in the two Voice
 contexts (because the \structure isn't a printed music voice).
 So you can simply leave out the \voiceXXX commands and you're ready.

 using \voiceOne and \voiceTwo is not mandatory at all to manage two
 voices. These commands only give LilyPond the necessary clues how to deal
 with potential collision events and how to typeset the voices (e.g. the
 stem direction you noticed, but also which voice would move to which
 direction in case of collisions etc.).


Works beautifully. Thanks, Urs!

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


Re: would 'gn' for G-natural be useful in \language english ?

2014-11-20 Thread Michael Ellis
Also American, can't see the need for this because LP supports defining
your own pitch names in an include file.

For example, I once made an include file (attached) that supports both
English and Chromatic Fixed Do solfege, i.e. one can enter an E-flat major
scale as either

ef f g af bf c d ef

or

me fa sol le te do re me

or any mixture of the two systems (but that way lies madness.)


Cheers,
Mike

On Thu, Nov 20, 2014 at 12:50 AM, Paul Morris p...@paulwmorris.com wrote:

 Another American here, but I don't have a very strong opinion on this.  I
 can
 see arguments on both sides.

 -Paul



 --
 View this message in context:
 http://lilypond.1069038.n5.nabble.com/would-gn-for-G-natural-be-useful-in-language-english-tp165872p168834.html
 Sent from the User mailing list archive at Nabble.com.

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



english-solfa.ly
Description: Binary data
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


MIDI and Volta repeats in parallel music

2014-11-19 Thread Michael Ellis
​
I find it advantageous when working with multiple voices to keep
'structural' information (meter, tempo, etc.) in a separate voice that gets
combined with the other voices as illustrated in the image and code below.
In this example, the pdf layout is correct and the MIDI output honors the
tempo change, but doesn't repeat the second measure despite using a
separate score block with \unfoldRepeats.



music = \relative c' { c4 d e | f g a b  }

structure = {
\time 3/4 \tempo 4=60 s2.
\time 4/4 \tempo 4=120 \repeat volta 2 { s1 }
 }

\score {
  \new Staff = Music {
  
\new Voice = Music { \voiceOne \music }
\new Voice = Structure { \voiceTwo \structure }
  
  }
}

\score {
\unfoldRepeats {  \structure \\ \music  }
\midi {
}
}

I can get the MIDI to repeat by copying the \repeat into the music
variable, e.g.

music = \relative c' { c4 d e | \repeat volta 2 { f g a b } }

but that defeats the convenience of keeping the 'structural' info in a
separate voice.  Is there a way to get the repeats in MIDI without
resorting to copying them into the notation for every voice?


Thanks,
Mike Ellis

*TransLily https://github.com/Michael-F-Ellis/TransLily-- a minimal
assistant for part transcription with LilyPond.*
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


ANN: TransLily - A minimalist assistant for transcribing vocal and instrumental parts in LilyPond notation.

2014-11-06 Thread Michael Ellis
I've been using LilyPond for a number of years to transcribe individual
parts from choral and instrumental music.  Along the way, I've tried
various GUI's and editor macros but none have proved quite satisfactory ---
particularly when it comes to efficiently transcribing more than one part.

I coded a solution that's made a significant improvement in the time
required to transcribe multiple  parts (as individual part sheets) and
thought it worth sharing so I put it up on GitHub at

https://github.com/Michael-F-Ellis/TransLily

The README there is a comprehensive document, so I won't rehash it here.

Although I'm describing it as a 0.1 version, that's largely because I've
only tested it on OS X.  Otherwise, it's fairly complete and solid CLI
program written in Python and should run on on Linux and probably Windows.

I'd be interested in any constructive feedback either in this thread or on
GitHub.

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


Self-contained Lilypond in a Dropbox folder for Windows users?

2012-03-27 Thread Michael Ellis
I've been collaborating with some other members of my choral group who've
decided to learn LilyPond (more converts, hooray!) to help with
transcribing individual parts.  For the OS X users, it was very easy to set
up a folder in Dropbox that included the latest LilyPond.app bundle so I
don't have to troubleshoot installation and version issues on their
individual machines.  Works great so far.

Now I'm getting inquiries from Windows users.   Is it possible to do the
same thing for them, i.e. have a LilyPond Windows install self-contained in
a Dropbox folder that they can just run with no other installation effort?
 I really want to avoid spending time figuring out why things aren't
working in Vista :-(

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


Re: Self-contained Lilypond in a Dropbox folder for Windows users?

2012-03-27 Thread Michael Ellis
On Tue, Mar 27, 2012 at 12:53 PM, Phil Holmes m...@philholmes.net wrote:

 **
 I've installed Lilypond 10s of times (must be pushing hundreds) on
 Windows, and I just download the installer and double-click it.  I'm
 assuming dropbox makes it look like a local folder, so I reckon all you'd
 need to do is point them to it for them to double click.


Thanks Phil, that's comforting to hear.  Sound like the Lily packagers have
done a very competent job.  I was really fearful of getting into Windows
hell.   Dropbox does indeed make it look like a local folder so I'll try
what you suggest and see what happens.
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Self-contained Lilypond in a Dropbox folder for Windows users?

2012-03-27 Thread Michael Ellis
Cheers,
Mike


On Tue, Mar 27, 2012 at 1:01 PM, James pkx1...@gmail.com wrote:



 I cannot speak about Vista but Windows 7 works great.

 Installing LilyPond in a dropbox folder is no different to say
 installing it on the 'd' drive. What I am not sure of though is

 You *might* need to set your path (or at least check it is set
 properly) so that LilyPond can run

 http://lilypond.org/windows.html

 See 'running on the command line' half way down.


 Thanks, James.  That's the kind of issue that scares me.  Trying to
explain to someone who's got no concept of 'path' how to append to it can
eat an amazing amount of time.  Guess I'll just have to see how it goes ...
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Need to suppress bar number checking in midi block

2012-03-25 Thread Michael Ellis
On Sat, Mar 24, 2012 at 10:51 PM, Nick Payne
nick.pa...@internode.on.net wrote:
 On 25/03/12 10:31, Michael Ellis wrote:

 mymusic = {
    \time 4/4
    \repeat volta 2 {
  g'1
       \barNumberCheck #2
    }
    c'1
    \barNumberCheck #3
 }


 Use the | character instead for barchecks:

Ah, the problem with constructing minimal examples! In real
transcriptions, I use |  after each measure and  \barNumberCheck
after groups of 5 to 10 measures.   Barchecks help me catch rhythm
errors within a measure whereas barNumberChecks catch omitted or extra
measures.  I find them both extremely useful and would hate to give up
either. Hence the question.

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


Need to suppress bar number checking in midi block

2012-03-24 Thread Michael Ellis
The NR advises using \unfoldRepeats to produce a midi file that plays
all the repeats.  I use a lot of \barNumberChecks in my work because
it saves time spotting errors.  In pieces with repeats, this produces
many Barcheck failed warnings.  Is there a way to suppress bar
checking within the midi score block?

% Tiny example
mymusic = {
   \time 4/4
   \repeat volta 2 {
 g'1
      \barNumberCheck #2
   }
   c'1
   \barNumberCheck #3
}

\book {
  \score {
     \mymusic
     \layout {}
  }
  \score {
     % Causes Barcheck failed warnings
     \unfoldRepeats \mymusic
     \midi {}
  }
}

\version 2.14.1

Thanks,
Mike


unfold.pdf
Description: Adobe PDF document
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


midiInstrument changes play one note too late.

2012-03-14 Thread Michael Ellis
Is this a known problem?  I don't see any prior reports online and
I've been seeing it since at least 2.12 but assumed it was because I
was doing some fairly complicated things.  I took time to reduce it to
a minimal example today. It's still present in 2.15.33 as shown by the
example below.  FWIW, I'm running OS X 10.6.7 and playing the midi
with QuickTime.  I'm attaching the midi file.

Is there a workaround?

Thanks,
Mike

%% Minimal Example
%% BUG? Midi instrument changes are delayed by one note.
mymusic = {

  \set midiInstrument = acoustic grand
  c'1^pno. |  % midi ok

  \set midiInstrument = cello
  d'1^cel. |  % wrong : midi plays piano.

  \set midiInstrument = acoustic grand
  e'1^pno. |  % wrong : midi plays cello
  c'1^pno. |  % midi ok

}

\score {

        \new Voice = Test { \mymusic  }
        \layout {}

        \midi {
            % This lets us specify instrument in melody
            \context {
                \Staff
                \remove Staff_performer
            }
            \context {
                \Voice
                \consists Staff_performer
            }
        }
    }

\version 2.15.33

Cheers,
Mike


midi_late_instrument_change.midi
Description: MIDI audio
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: midiInstrument changes play one note too late.

2012-03-14 Thread Michael Ellis
On Tue, Mar 13, 2012 at 5:26 PM, Michael Ellis
michael.f.el...@gmail.com wrote:
 Is this a known problem?  I don't see any prior reports online and
 I've been seeing it since at least 2.12 but assumed it was because I
 was doing some fairly complicated things.  I took time to reduce it to
 a minimal example today. It's still present in 2.15.33 as shown by the
 example below.  FWIW, I'm running OS X 10.6.7 and playing the midi
 with QuickTime.  I'm attaching the midi file.

 Is there a workaround?

 Thanks,
 Mike

 %% Minimal Example
 %% BUG? Midi instrument changes are delayed by one note.
 mymusic = {

   \set midiInstrument = acoustic grand
   c'1^pno. |  % midi ok

   \set midiInstrument = cello
   d'1^cel. |  % wrong : midi plays piano.

   \set midiInstrument = acoustic grand
   e'1^pno. |  % wrong : midi plays cello
   c'1^pno. |  % midi ok

 }

 \score {

         \new Voice = Test { \mymusic  }
         \layout {}

         \midi {
             % This lets us specify instrument in melody
             \context {
                 \Staff
                 \remove Staff_performer
             }
             \context {
                 \Voice
                 \consists Staff_performer
             }
         }
     }

 \version 2.15.33


Wow. It's rare not to get a response from this list.  Did I phrase the
question incredibly poorly?

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


Re: midiInstrument changes play one note too late.

2012-03-14 Thread Michael Ellis
On Wed, Mar 14, 2012 at 11:38 AM, Hans Aikema hans.aik...@aikebah.net wrote:
 On 14-3-2012 14:30, Michael Ellis wrote:

 On Tue, Mar 13, 2012 at 5:26 PM, Michael Ellis
 michael.f.el...@gmail.com  wrote:

 Is this a known problem?  I don't see any prior reports online and
 I've been seeing it since at least 2.12 but assumed it was because I
 was doing some fairly complicated things.  I took time to reduce it to
 a minimal example today. It's still present in 2.15.33 as shown by the
 example below.  FWIW, I'm running OS X 10.6.7 and playing the midi
 with QuickTime.  I'm attaching the midi file.

 Is there a workaround?

 Thanks,
 Mike

 Wow. It's rare not to get a response from this list.  Did I phrase the
 question incredibly poorly?

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

 Michael,

 Don't worry, IMHO your phrasing was perfectly clear. Sometimes it just takes
 more than a day for someone to notice a post, vaguely remembering reading
 something about it a while ago and than googling up the answer ;)

 But here it is: Yes it's an issue with lilypond, it is already known and
 there is a documented work-around in the issue.

 See http://code.google.com/p/lilypond/issues/detail?id=1661 for the details.

 regards,
 Hans



Thanks, Hans.  I did find that report while searching but I wasn't
sure whether it was the same problem as the report dealt with mapping
dynamic changes to parallel skip sequences.  My report deals with
instrument changes in single voice melodies.

I'm not sure how I would go about implementing the suggested
workaround for my application.  I run into the problem primarily when
transcribing individual choral parts for my section.  It's nice in the
midi output if cues from other parts are sounded by a different
instrument.  Since I don't have time to transcribe the entire score,
it's not practical to use the built-in LilyPond cue methods, so I
wrote my own that temporarily changes the instrument, shrinks the
font, and changes the font color,  thus:

cueNotes=
#(define-music-function (p l music) (ly:music?)
  for printing cue notes in teeny font in color
  #{
  \set midiInstrument = #(cueInstrument 'get)

  \override Accidental #'color = #(x11-color 'maroon)
  \override Beam #'color = #(x11-color 'maroon)
  \override NoteHead #'color = #(x11-color 'maroon)
  \override Rest #'color = #(x11-color 'maroon)
  \override Slur #'color = #(x11-color 'maroon)
  \override Stem #'color = #(x11-color 'maroon)
  \override Tie #'color = #(x11-color 'maroon)

  \teeny
  $music
  \normalsize

  \revert  Accidental #'color
  \revert  Beam #'color
  \revert  NoteHead #'color
  \revert  Rest #'color
  \revert  Slur #'color
  \revert  Stem #'color
  \revert  Tie #'color

  \set midiInstrument = #(mainInstrument 'get)

  % Note: cueInstrument and mainInstrument are scheme objects with
a get method
  % that returns a string, e.g acoustic grand
  #})

and apply it like this:

...
do4 sol mi do |
\cueNotes { do^Sop. 8va re mi fa } |
sol mi do2 |
...

How would I go about applying the workaround from the bug report to this?

In any case, this seems to me like a fairly serious defect. I hope
it's on the list for 2.16.

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


Re: midiInstrument changes play one note too late.

2012-03-14 Thread Michael Ellis
On Wed, Mar 14, 2012 at 2:50 PM, Hans Aikema hans.aik...@aikebah.net wrote:
 On 14-3-2012 18:37, Hans Aikema wrote:

 On 14-3-2012 18:01, Michael Ellis wrote:

 On Wed, Mar 14, 2012 at 11:38 AM, Hans Aikemahans.aik...@aikebah.net
  wrote:

 On 14-3-2012 14:30, Michael Ellis wrote:

 On Tue, Mar 13, 2012 at 5:26 PM, Michael Ellis
 michael.f.el...@gmail.com    wrote:

 Is this a known problem?  I don't see any prior reports online and
 I've been seeing it since at least 2.12 but assumed it was because I
 was doing some fairly complicated things.  I took time to reduce it to
 a minimal example today. It's still present in 2.15.33 as shown by the
 example below.  FWIW, I'm running OS X 10.6.7 and playing the midi
 with QuickTime.  I'm attaching the midi file.

 Is there a workaround?

 Thanks,
 Mike



 You're correct Michael,

 I misread the report... but I think it's likely that the instrument change
 is 'a note too late' due to the same issue. I'll do some experimenting on it
 and will get back to you.

 regards,
 Hans

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

 Michael,

 This looks like an issue with Quicktime:
 - When I play your midi it in Windows 7's Media player the instrument
 changes are at the right time.
 - When I convert it to a wave-file in Windows using Timidity++ the
 instrument changes at the right time
 - When I play it using Noteworthy Composer Viewer
 (http://www.noteworthysoftware.com/nwc2/viewer.htm) the instrument changes
 are at the right time
 - When I play it in Quicktime for Windows 7.7.1 (build 1680.42) the
 instrument changes a note too late
 - When I play it in Quicktime Player (7.6.6 (build 1710)) for Mac OS X
 (10.7.3) the instrument changes a note too late.

 If you ask me, I see a pattern there ;)


 regards,
 Hans

Me, too.  Thanks very much for digging into it.  I confirmed that
LilyPondTool's player doesn't have the problem on OS X.  QMidi also
seems ok.   It's kind of wild that there are no reports when I search
for QuickTime midi instrument change delay etc.  Guess most Mac
users don't listen very closely :-)

Cheers,
Mike

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


Re: Where to put user ly files on OSX?

2011-12-07 Thread Michael Ellis
On Wed, Dec 7, 2011 at 7:07 AM, Hans Aberg haber...@telia.com wrote:

 On 7 Dec 2011, at 10:22, Peter Jaques wrote:

  Thanks Hans. You didn't quite understand my question, I think.
 
  I understand that I *can* put files practically anywhere. The problem is
 that I then have to use a really long include line like:
 
  \include /Users/peter/Documents/asdf.ly
 
  unlike the factory files, which only require:
  \include english.ly


Why not use the -I (--include) command line option?  You can alias lilypond
or wrap it in a shell script and put your include files wherever you like,
 for example

alias lilypond=path/to/lilypond --include=path/to/my/includes/

Cheers,
Mike




 ___
 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


Point and click with MacVim

2011-11-16 Thread Michael Ellis
Is anyone successfully using point and click on OS X with mvim? If so, how
did you do it?  The doc says the hyperlinks depend on $LYEDITOR, but that
seems to have no effect.  The links created in the PDF are for textedit no
matter what I do.

I'm trying to get it to work with 2.14.2 on Snow Leopard.

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


Re: Cheat Sheet

2011-11-09 Thread Michael Ellis
On Wed, Nov 9, 2011 at 8:41 AM, Urs Liska li...@ursliska.de wrote:

 It does _not_ depend on the context the notes live in - it depends only on
 the order in which they appear in the input file.


Thanks, that's an easy-to-remember rule.  It deserves prominent placement
in the documentation.
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Cheat Sheet

2011-11-09 Thread Michael Ellis
On Wed, Nov 9, 2011 at 9:38 AM, David Kastrup d...@gnu.org wrote:

 Michael Ellis michael.f.el...@gmail.com writes:

  On Wed, Nov 9, 2011 at 8:41 AM, Urs Liska li...@ursliska.de wrote:
 
  It does _not_ depend on the context the notes live in - it depends
  only on the order in which they appear in the input file.
 
 
  Thanks, that's an easy-to-remember rule.  It deserves prominent
  placement in the documentation.

 It is also wrong.  This just holds for durations.  Relative octaves are
 not tracked in the input, but instead are generated when \relative is
 called.  This is established at the point of time when a music list is
 getting iterated.  If you entered the whole music list naturally
 instead of having music functions and music variables provide bits and
 pieces, then you get roughly input order, except that after chords, the
 respective octave for the next element is taken from the first element
 of the chord.  There may be further details.  Use occasional octave
 checks if you tend to get things wrong.


Ah! So the simple rule about simple rules still applies :-)
Back to my previous approach, then: Use point and click to select the first
note with the wrong octave, change it, and re-run lilypond.
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Variable assignment in music functions

2011-11-03 Thread Michael Ellis
What's the right way to define a function that assigns string values
to LilyPond variables? I'm trying to create a function in an include
file that allows me to assign different values to variables used as
midi instrument specifiers.
%
setMainCueClapInstruments=
#(define-music-function (p l main cue clap) (string? string? string?)
   #{
       mainInstrument = #$main
       cueInstrument  = #$cue
       clapInstrument = #$clap
   #}
   (make-music 'SequentialMusic 'void #t))
\setMainCueClapInstruments #cello #acoustic grand #woodblock
%
But the parser throws errors, starting with the following ...
Parsing...
string:2:7: error: syntax error, unexpected STRING

       mainInstrument = #lilyvartmpbg

I'm using LilyPond 2.14.1

Thanks,
Mike

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


Re: Variable assignment in music functions

2011-11-03 Thread Michael Ellis
On Thu, Nov 3, 2011 at 12:04 PM, David Kastrup d...@gnu.org wrote:
 Michael Ellis michael.f.el...@gmail.com writes:

 What's the right way to define a function that assigns string values
 to LilyPond variables? I'm trying to create a function in an include
 file that allows me to assign different values to variables used as
 midi instrument specifiers.
 %
 setMainCueClapInstruments=
 #(define-music-function (p l main cue clap) (string? string? string?)
    #{
        mainInstrument = #$main
        cueInstrument  = #$cue
        clapInstrument = #$clap
    #}
    (make-music 'SequentialMusic 'void #t))
 \setMainCueClapInstruments #cello #acoustic grand #woodblock
 %
 But the parser throws errors, starting with the following ...
 Parsing...
 string:2:7: error: syntax error, unexpected STRING

        mainInstrument = #lilyvartmpbg

 A music function can only do things you could also do inside of music.
 Assignments are _not_ permitted in music.  Music is something you can
 put into music variables and shuffle around.  Assignments are acted on
 immediately.

 What you _can_ put into music are property overrides and sets: those
 happen at the time they are replayed, and are wrapped into music events.

 You can, of course, just use ly:parser-define! inside of your function
 to manipulate variables.  But they will get changed at the _location_
 you call the music function, not at the _time_ the music expression is
 executed.  If you put setMainCueClapInstruments into a music variable
 then, the effect will occur at the time you define the music variable,
 not at the time you use it.

 If you want the latter, you need to go through properties.  Or even
 \ApplyToContext, but that's really obscure.


Thanks David, I appreciate the detailed explanation but I'm still
struggling with how to do what, in most programming languages, is a
fairly straightforward task:  define a variable in an outer scope and
temporarily change its value in an inner scope.

Over the past year or so, I've built up an include file with lots of
handy functions for transcribing individual choral parts from printed
scores.  As a  particular example, I have a function named cueNotes
that prints notes inline in a teeny font and different color and
specifies an alternate midi instrument and restores the defaults
before exiting.  Up until now, my preferences have been hard-coded,
e.g.

cueNotes=
#(define-music-function (p l music) (ly:music?)
  for printing cue notes in teeny font in color
  #{
  \set midiInstrument = #acoustic grand
  \override Accidental #'color = #(x11-color 'maroon)
  \override Beam #'color = #(x11-color 'maroon)
  \override NoteHead #'color = #(x11-color 'maroon)
  \override Rest #'color = #(x11-color 'maroon)
  \override Slur #'color = #(x11-color 'maroon)
  \override Stem #'color = #(x11-color 'maroon)
  \override Tie #'color = #(x11-color 'maroon)

  \teeny
  $music
  \normalsize

  \revert  Accidental #'color
  \revert  Beam #'color
  \revert  NoteHead #'color
  \revert  Rest #'color
  \revert  Slur #'color
  \revert  Stem #'color
  \revert  Tie #'color

  \set midiInstrument = #cello
  #})


But recently, other singers in my choral groups are starting to use
LilyPond and want to make use of my templates and include files but
with the ability to easily change instrument and color preferences
without having to hack the files.

So, with that as background, let me re-ask the question in a different
form:  What's the best way to support changing a set of default
values?

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


OT: A convenient tool for practicing short passages of music

2011-10-20 Thread Michael Ellis
http://www.essej.net/slforum/viewtopic.php?f=17p=2666#p2666

The link above takes you to a short python script I shared on the
SooperLooper forum.  SooperLooper is an open source audio loop application
that runs on Linux or OS-X.  The script I posted provides a command line
interface that lets you compactly specify an arbitrary sequence of measure
lengths and tempos.  When launched it provides a visual metronome (prints 1
2 3 ... in rhythm for each measure) and alternates between recording what
you play or sing and playing it back to you.  Simple-minded but exactly the
practice tool I've always wanted. So far I'm very happy with it.

Requirements:

   1. SooperLooper installed and running (implies JACK also installed and
   running)
   2. liblo and pyliblo installed
   3. python2.7  (because I used argparse)

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


Re: preprocessing an included file with system command

2011-10-01 Thread Michael Ellis
For anyone who wants to make use of it, I've attached a short python script
I wrote this morning for general purpose monitoring of files with given
extensions in an arbitrary list of directories.  Should be self-explanatory
to python hackers and adaptable to any application where you need to detect
file changes automatically and apply some processing that creates a derived
file.

Works on OS X or Linux.  Should work on Windows, too, but I haven't tried
it.

For me, this ameliorates the problem I posed in the original post.

But I still think LilyPond could benefit by adding some simple text macro
capability :-)

Cheers,
Mike


filemonitor.py
Description: Binary data
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: preprocessing an included file with system command

2011-09-25 Thread Michael Ellis
On Sun, Sep 25, 2011 at 6:34 AM, Dmytro O. Redchuk
brownian@gmail.com wrote:
 On Sat 24 Sep 2011, 23:52 Michael Ellis wrote:
 On Sat, Sep 24, 2011 at 4:28 PM, Graham Percival
  or m4 or python, I'd do this:
  # mylily.sh
  cp $1 /tmp
  sed '...' /tmp/$1  /tmp/$1-processed.ly
  lilypond /tmp/$1-processed.ly
  mv /tmp/$1-processed.ly .
 Often it can be done with something like this (within bash script;
 windows equivalent is also quite possible):

  sed '...'  $1 | lilypond -o ${1%%.ly} -

 I normally do my LilyPond work with LilyPondTool and have grown quite
 accustomed to its conveniences.   Using a wrapper script would mean
 having to alter my LilyPondTool options to specify the wrapper script
 instead of invoking LilyPond directly -- but I often  use LilyPond for
 tasks other than audio transcriptions and don't want to have to keep
 changing my LilyPondTool options.
 I would, probably, try to write shell script, which takes $PPID and checks if
 the parent is LilypondTool or like that. Not tested .)

 Anyway, your question is still interesting. I can't help here, sorry.


Thanks, Dmytro.  For my immediate problem I think I'm going to save
the Transcribe! output with some distinct extension and write a
watcher process that detects changes in files with that extension and
automatically runs my preprocessing to produce a file with a .inc
extension that I'll include in my .ly file.

But I think the larger question is whether future versions of Lily
should support some form of text macro.  Perhaps we could have
something analogous to music functions like

mymacro = #(define-immediate-function ( args ) (predicates ) ( body ))

...

\mymacro  args

with a guarantee that (body) will be executed before normal parsing
and that the return value would be injected in the file as though it
were the result of \include.

Cheers,
Mike

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


Re: preprocessing an included file with system command

2011-09-25 Thread Michael Ellis
On Sun, Sep 25, 2011 at 1:08 PM, Karl Hammar k...@aspodata.se wrote:

 One does not really want macros nor preprocessors, since it munges
 up error reporting.


Which one does not want them? :-)

Seriously,  I understand and, to a great extent,  sympathize with that
point of view -- especially when it involves incorporating macros into
program code.  OTOH, a little text substitution, used judiciously,  is
very often the simplest approach for working around the inelegant
corners that occur in even the best designed languages.

I'm speaking of making life a little simpler for LilyPond users,  a
large fraction of whom are savvy programmers.   Speaking for myself,
I'm pretty certain I can make good choices about when and when not to
use macros.

Cheers,
Mike

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


preprocessing an included file with system command

2011-09-24 Thread Michael Ellis
If I define a music function to apply an arbitrary system command to a
file thusly,

sysinc =
#(define-music-function (p l cmd fname) (string? string?)
   Run system command, cmd, and redirect output to fname.
    then include fname in input.
    (system (string-concatenate (list cmdfname)))
    #{ \include $fname #})

and use it to preprocess an input file ,

\sysinc cat junk.txt | sed 's/4/8/g'  junk.inc

it works as expected, BUT, I have to run LilyPond twice for changes in
the original file to show up in the lilypond output.  Is there anyway
around this limitation?

Note: what I'm actually trying to do with the preprocessing, as
opposed to the trivial example above,  is something that cannot be
done easily with a music function.  I know about the --evaluate
command line option but that's also not practical for what I'm trying
to do.

Thanks,
Mike

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


Re: preprocessing an included file with system command

2011-09-24 Thread Michael Ellis
On Sat, Sep 24, 2011 at 4:28 PM, Graham Percival
gra...@percival-music.ca wrote:
 On Sat, Sep 24, 2011 at 01:30:55PM -0400, Michael Ellis wrote:
 Note: what I'm actually trying to do with the preprocessing, as
 opposed to the trivial example above,  is something that cannot be
 done easily with a music function.  I know about the --evaluate
 command line option but that's also not practical for what I'm trying
 to do.

 Does the preprocessing require scheme?  If you're just using sed
 or m4 or python, I'd do this:
 # mylily.sh
 cp $1 /tmp
 sed '...' /tmp/$1  /tmp/$1-processed.ly
 lilypond /tmp/$1-processed.ly
 mv /tmp/$1-processed.ly .

Thanks Graham,  I did consider wrapping the pre-processing and
LilyPond in shell script as you've described.  Here's the long
explanation of what I'm trying to do and why I've hesitated to use a
wrapper script.

I frequently use a program called Transcribe! when I want to
transcribe jazz solos or songs with no sheet music available.
Transcribe! has a very nice interface that takes a lot of the pain out
of the job.  It's really easy to lay down measure markers for the
audio and then use keyboard to short cuts to move measure by measure
through piece with the ability to loop and slow down.  You can also
type arbitrary text into entry areas associated with each measure and
have Transcribe spit the all the texts out to a single file.  So I
thought, aha! LilyPond, and now I have a template that \include's the
output from Transcribe!  Works well for purely instrumental
transcription,  less so if I have to include lyrics.  I've described
my accumulator music functions that let me enter lyrics and notation
on alternating lines in other posts so I won't go into that here
except to say that the invocation is a bit lengthy -- as is this
explanation, I'm afraid.

I normally do my LilyPond work with LilyPondTool and have grown quite
accustomed to its conveniences.   Using a wrapper script would mean
having to alter my LilyPondTool options to specify the wrapper script
instead of invoking LilyPond directly -- but I often  use LilyPond for
tasks other than audio transcriptions and don't want to have to keep
changing my LilyPondTool options.

I was hoping to set things up so I can enter some short hand for the
lengthier items in Transcribe!, send its output to an include file,
and use LilyPondTool to check my progress from time to time.  That
means  invoking some preprocessing on the included file to expand my
shorthand into valid ly expressions.  These include invoking
\lyricmode which doesn't seem to be practical in a music function
unless I crawl out on the bleeding edge of the most recent 2.15.x
builds.

So anyway, what I'd really like to see is a way to do simple text
substitution in  LilyPond input before parsing begins.  It's more than
a little frustrating to know that scheme with all its awesome text
munging capabilities is there but not usable for such very simple
tasks.

In the meantime, I'd settle for the ability to run shell commands on a
file and be able to include the output during parsing.   As I said in
the first post,  what I've got so far actually works.  I can live with
it as is but it would be nice not to have to remember to run it twice
each time I want to see my progress.  Failing that, it would be nice
to hear an expert explanation of why that's not possible.

Cheers,
Mike

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


Parsing lyrics in a music function

2011-09-15 Thread Michael Ellis
I've written some music functions I use frequently to operate on lyrics.
 For example, there's one call lacc that allows me to intermix lyrics and
notation by accumulating the lyrics into a list I can instantiate later in
the \score block.   Very nice and convenient, but the usage is a little
messy:

\lacc \lyricmode { This is a ly -- ric line. }
c4 d e f | g a

\lacc \lyricmode { Here is the next. }
b c  | d c2. |

Normally, I deal with the messiness by defining a keystroke macro in my
editor that wraps a line of bare text in the necessary commands and braces.
 I now find myself   (skipping a long story)  needing to work in an
environment where keystroke macros will not be available.

Is it possible to define a music function that will do the work of my
keystroke macro?  Ideally I'd like to be able to  write in an input file
something like

\lyr This is a lyric line

and have LilyPond do the rest,  but none of my attempts thus far have
worked.


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


Re: Parsing lyrics in a music function

2011-09-15 Thread Michael Ellis
On Thu, Sep 15, 2011 at 3:16 PM, David Kastrup d...@gnu.org wrote:

 Michael Ellis michael.f.el...@gmail.com writes:

  I've written some music functions I use frequently to operate on
  lyrics.  For example, there's one call lacc that allows me to
  intermix lyrics and notation by accumulating the lyrics into a list I
  can instantiate later in the \score block.   Very nice and convenient,
  but the usage is a little messy:
 
 
  \lacc \lyricmode { This is a ly -- ric line. }
  c4 d e f | g a
 
  \lacc \lyricmode { Here is the next. }
  b c  | d c2. |
 
  Normally, I deal with the messiness by defining a keystroke macro in
  my editor that wraps a line of bare text in the necessary commands and
  braces.  I now find myself   (skipping a long story)  needing to work
  in an environment where keystroke macros will not be available.
 
  Is it possible to define a music function that will do the work of my
  keystroke macro?  Ideally I'd like to be able to  write in an input
  file something like
 
  \lyr This is a lyric line
 
  and have LilyPond do the rest,  but none of my attempts thus far have
  worked.

 The arguments of a music function are parsed before it is called, so
 no.  However, if you already are in lyrics mode, you can pick up the
 music in that manner.  You may also think about doing

 \lacc  This is a lyric line 

 and then using ly:parser-parse-string to pick up lyricmode expressions.
 It might be nice at one point of time to be able to call #{ \lyricmode
 \somefunction-taking-a-music-argument #} or similar trickery, but this
 kind of closure is not available yet.

 Thanks, David.  I figured it must be a parsing issue so it's nice to have
it clarified by someone knowledgable.   I like the ly:parser-parse-string
idea.  Does that function return a music object if the parsing is
successful?

Would it work to have my \lacc function massage the string so that it
becomes

\lyricmode { This is a lyric line }

and then call ly:parser-parse-string to return the result?

For reference (and in case someone else might find it useful) here is the
complete set of functions I currently have:

%% 
#(define (make-music-accumulator)
  (define acc '())

  (define (add lyr)
(set! acc (append acc lyr)))

  (define (get) acc)

  (define (interface op . rest)
(cond
  ((eq? op 'add)
(add (car rest)))
  ((eq? op 'get)
(get))
  (else (error Undefined operation

  interface)

#(define defaultLyricAccumulator (make-music-accumulator))

lacc =
#(define-music-function (parser location music) (ly:music?)
  For accumulating lyrics mixed with notation
  (defaultLyricAccumulator
'add
(ly:music-property music 'elements))
  (make-music 'SequentialMusic 'void #t))



getLyrics =
#(define-music-function (parser location) ()
 for retrieving accumulated lyrics.
  (make-music
'SequentialMusic
'elements
(defaultLyricAccumulator 'get)))

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


Re: Parsing lyrics in a music function

2011-09-15 Thread Michael Ellis
On Thu, Sep 15, 2011 at 4:46 PM, David Kastrup d...@gnu.org wrote:

 Michael Ellis michael.f.el...@gmail.com writes:

  Thanks, David.  I figured it must be a parsing issue so it's nice to
  have it clarified by someone knowledgable.   I like the
  ly:parser-parse-string idea.  Does that function return a music object
  if the parsing is successful?

 No.  ly:parse-string-expression does, so that would be the smarter idea.

  Would it work to have my \lacc function massage the string so that it
  becomes
 
  \lyricmode { This is a lyric line }
 
  and then call ly:parser-parse-string to return the result?

 Yes.  With parser-parse-string, you'd do something like
 parseStringResult = \lyricmode { ... } and then look up the parser
 variable parseStringResult.  ly:parse-string-expression is, of course,
 much more suitable.

 Did ly:parse-string-expression go away in 2.14.1?  I get an undefined
variable error if I try something like:

\version 2.14.1
abc = #(define-music-function (parser loc) ()
(ly:parse-string-expression parser { a b c' })
)
\displayMusic \abc

 %lilypond %args /Users/mellis/Desktop/AudioTranscriptions/parsertest.ly
Processing `/Users/mellis/Desktop/AudioTranscriptions/parsertest.ly'
Parsing...ERROR: Unbound variable: ly:parse-string-expression

I don't get that error with other ly:parse-xxx  functions.
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Basic LilyPond Cheat Sheet

2011-09-12 Thread Michael Ellis
Nice job, Rheinhold!  Good choices for what to include and what to leave
out.

Cheers,
Mike

 Am 12.09.2011 14:39, schrieb Reinhold Kainhofer:

 Dear all,
 Sometimes it can be very useful -- in particular for new and not so
 experienced users -- to have the basic LilyPond syntax available
 compressed on
 one single sheet. I have created such a cheat sheet that displays the
 basic
 lilypond syntax and usage (without any tweaks and overrides) on one
 single
 page, while also being visually appealing.


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


Re: MusicXML exporter (was Re: Lilypond lobbying?)

2011-08-24 Thread Michael Ellis
On Wed, Aug 24, 2011 at 5:14 PM, Jan Nieuwenhuizen jann...@gnu.org wrote:

 Pierre THIERRY writes:

 [cc lilypond-devel]

  If memory serves, so far we have US$200, C$100 and €200. If I were to
  work alone on this bounty, that would allow me to allocate
  approximately 20hrs, which should clearly be enough to write a nice
  XML exporting in some schema mimicking Lilypond's representation, and
  probably also the XSLT transformation to MusicXML (I'm not sure how
  much time figuring it and then debugging it will take, it has been
  ages since I played with XSLT).

 To fix this bug, what we need is a very clear bug report to know when we
 can close it.  Actually, we require that for all bugs, so #665 should
 never have been entered into the bug database like this.

 What I would like to see attached to #665 is at least one .ly with
 corresponding .xml with bonusses attached.

 Possibly it's best to delay #665 and split it up into several different
 issues (and attached bounties), each with it's own .ly -- and starting
 with a most simple one.

 It's only about an hour of work (see below) to convert a simple and
 prepared .ly score to musicxml, see below.

 Jan



That sounds encouraging.  So how far away are we from being able to handle a
more realistic score, say a string quartet or a 4-part choral score with
with lyrics and piano reduction?

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


Re: MusicXML exporter (was Re: Lilypond lobbying?)

2011-08-24 Thread Michael Ellis
On Wed, Aug 24, 2011 at 6:34 PM, Kieren MacMillan 
kieren_macmil...@sympatico.ca wrote:

 Hi all,

  In short, the only way to make it extendable for the future (so
  that one day we can also export the layout) is to handle (MusicXML)
 export
  similar to MIDI generation, namely via translators that collect all
 events and
  all settings as they appear in the score.

 +1.
 KMac.


This makes sense.  A standalone converter would, essentially, have to
duplicate Lily's internal logic.  Why write the same code twice?
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: MusicXML exporter (was Re: Lilypond lobbying?)

2011-08-23 Thread Michael Ellis
Count me in for US$100 toward the project.  Not sure how much programming
time I can offer in addition,  but I'll certainly be more than willing to
test the XML output with Finale 2010 as I have a full copy.

FWIW,  If this is done well I think it will open LilyPond to more new users
than you would ever guess.   As a personal example, I sometimes collaborate
with a composer/arranger who uses Finale exclusively.  She composes on paper
a real piano and then uses the Finale interface to her electric piano to
enter the notes.  She readily admits that entering dynamics, articulations,
etc in Finale is time-consuming and clunky and that the LilyPond scores I
produce are indeed better looking.

If there were a reliable 2-way XML conversion between the two programs it
would not only allow me to use LilyPond when we work together but would, I
think, give her just enough enough incentive to invest the effort needed to
start using LilyPond, too.

Cheers,
Mike


On Tue, Aug 23, 2011 at 2:54 PM, Kieren MacMillan 
kieren_macmil...@sympatico.ca wrote:

 Hi Pierre,

  What kind of funding would be possible

 I offer C$100 to the MusicXML project.

 If [Jan: hint hint!] my C$100 goes to creating a function (e.g.,
 \displayLilystreamXML) which simply converts the raw Lilypond music stream
 (i.e., what we see with \displayMusic) as an XML blob, I'm happy to do for
 free all the XSLT coding required to turn that LilystreamXML into useable
 MusicXML.

 However, if the entire project will be in C++ and/or Scheme, I can offer
 little (to nothing) beyond the C$100.

  how many would we be on the project?

 If you scan the archives for XML, you'll find that a bunch of people have
 offered help on this.
 You'll probably want to do a fresh call for team members, though, as the
 thread has been dormant of late.

 Cheers,
 Kieren.
 ___
 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: How can I get good layout and good midi without writing everything twice?

2011-04-12 Thread Michael Ellis
On Tue, Apr 12, 2011 at 12:38 PM, Helge Hafting helge.haft...@hist.nowrote:

 What I need, is to get the midi output for
  \appoggiatura{e16 fis} e16
 but the layout for
  e16\prall



Hi Helge,
You could use tags. The following produced the desired results for me even
though LilyPond (2.13.54) issued a warning: programming error: Going back
in MIDI time.

I think the warning will go away if there's some music before the grace
notes.

music = {
  \tag #'played {\appoggiatura{e16 fis} e16}
  \tag #'printed {e16\prall}
}

\score {
\removeWithTag #'played \music
\layout {}
}
\score {
\removeWithTag #'printed \music
\midi {}
}

Hope this helps,
Mike
___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: swing rhythm in midi output?

2011-04-09 Thread Michael Ellis
One way would be to write a music function that produces converts
straight-eighths to swing values.  Here's an outline of what's needed.
 Perhaps someone has already solved this.  You should be able to find some
code in LSR that can be modified to do what you want.  Changing durations is
trivial, figuring out where the beats start is a bit messier.

swingme =
#(define-music-function parser location music) (ly:music? music)
   Scan music for pairs of eighth notes starting on a beat.  Lengthen the
first and shorten the second
   ;; your code here 
)#

mymusic = { % your notes }

\score {
\mymusic %what gets printed

\midi { \swingme \mymusic } % what gets played
}

Cheers,
Mike


On Sat, Apr 9, 2011 at 1:09 PM, Marc Mouries m...@mouries.net wrote:

 Is possible to write regular eight notes and set settings in midi output to
 generate a swing rhythm like?




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


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


Re: Absurd thing to do

2011-03-31 Thread Michael Ellis
On Thu, Mar 31, 2011 at 9:29 AM, Christopher R. Maden cr...@maden.org wrote:

 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 On 03/31/2011 12:30 AM, Shane Brandes wrote:
  Does anyone have any experience converting lilypond to finale type
  files? I only ask this because I have had a run in with a publisher
  who thinks it would be too much work as all their output is from that
  app and all mine is now on lilypond. I gave him a pretty good lecture
  on the awesome nature of Lilypond, but to no avail. Not that it would
  change our other argument (I am an obsolete composer), but I want to
  at least abolish that one if possible. I suspect it is possible to run
  a .ly into an .xml and then import it somehow but have not had the
  opportunity to try it out myself. Nor do I really want to.

 I can’t say for certain, but converting text formats is what I do, so I
 may be able to help.  I’m not familiar with the Finale XML format, but
 if you can send me a sample or a specification, I’ll see what I can do.


A few comments:

1. I don't think there's anything absurd about wanting to generate
MusicXML output.  IMO, it's seriously needed by anyone who want to
collaborate with other composers.  I work almost 100% in LilyPond even
though I own a full copy of Finale 2010.  LilyPond produces better
looking output and, for me anyway, it's far faster to enter any music
that has a significant number of articulations and dynamics.  OTOH, I
was recently working with a very fine arranger to harmonize a song I
wrote.  She works in Finale only and is not likely to convert to
LilyPond anytime soon.  So I had to use Finale while we were
collaborating and then re-enter the finished composition by hand in
LilyPond to get the output quality I wanted.

2. In the same vein,  Finale's midi creation and playback capabilities
are currently very far ahead of LilyPond.  However, I can't easily
avail myself of them because  so much is lost trying to import
LilyPond midi output to Finale.  OTOH Finale does a very good job of
importing MusicXML and generating midi from that.

3.  MuseScore looks very promising as a free GUI and it can output .ly
xml2ly but can't go the other way.

4.  I realize it's a difficult problem.  From what I think I
understand from Reinhold K's prior work,  successful translation
requires more than syntax mapping from .ly to .xml -- there are also
semantic differences, ie. LilyPond expresses more of the musical
intent than MusicXML.   Hence it's unlikely that a musicxml2ly program
can do the job without re-creating all of Lily's internal logic.

5. Apparently Reinhold, Han-Wen, and others came to the conclusion
that the right way to go involves creating an additional backend for
LilyPond to generate the MusicXML.  However, as discussed in the
thread linked below, it seems as though such a backend would have to
access at least two different stages in the processing chain.

http://old.nabble.com/MusicXML-backend-for-lilypond--td17957920.html

I'd be willing to help out -- in whatever small way I can -- if
someone wants to revive the effort.

Cheers,
Mike

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


Re: no natural sign when clef changes

2011-03-31 Thread Michael Ellis
On Thu, Mar 31, 2011 at 6:04 PM, James Lowe james.l...@datacore.com wrote:
 hello

 James.

 On 31 Mar 2011, at 22:25, Bernhard Ott bernhard@gmx.net wrote:

 Dear all,

 IMHO there should be a natural sign showing the f' after the clef-change: am 
 I wrong?

 music = \relative c' {
    c8 d e fis
    c d e f
    c8 d e fis
    \clef alto c d e f
 }
 \score {
 
        { \new Staff #(set-accidental-style 'modern-cautionary 'Staff)
        \music
    }
    { \new Staff #(set-accidental-style 'default 'Staff)
        \music
    }
 
 }


 hmmm...my Read says nothing but Stone says

 If a clef changes within a measure and the same note occurs before and after 
 the clef change, the accidental must be repeated.

 However were this f an octave higher I'd say no natural (cancellation) is 
 needed. So is this pitch being judged as higher just because it is 'higher' 
 in the staff or is it really an octave higher? Otherwise it ought to have a 
 natural by default.

 That's my rather on the fence take :)


Don't C-clefs always indicate middle-C?  Hence the F is the same pitch, right?
Cheers,
Mike

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


Re: 2.13.54 breaks NoteNames vertical spacing

2011-03-20 Thread Michael Ellis
On Sun, Mar 20, 2011 at 6:56 AM, Phil Holmes m...@philholmes.net wrote:
 - Original Message - From: Keith OHara k-ohara5...@oco.net
 To: lilypond-user@gnu.org
 Sent: Sunday, March 20, 2011 7:26 AM
 Subject: Re: 2.13.54 breaks NoteNames vertical spacing


 Michael Ellis michael.f.ellis at gmail.com writes:

  In 2.12,  the NoteNames output lays close beneath the lyric line.
 In 2.13.54 the gap is quite large and the output collides with
 markup above the next staff.  Is there a workaround?


 Try
 \layout { \context {
  \NoteNames
  \override VerticalAxisGroup #'staff-affinity = #UP
 }}

 The initialization file (engraver-init.ly) actually says
  % FIXME: not sure what the default should be here.
  \override VerticalAxisGroup #'staff-affinity = #DOWN

 So let's set the correct default now.  Is there any reason to assume that
 note-
 names will most often be associated with the staff above or the staff
 below ?

 If not, we can set staff-affinity to CENTER -- which doesn't really mean
 center
 but means get close to a staff on either side.  I guess the programmer
 didn't
 think that 'staff-affinity = #PROMISCUOUS  was appropriate.

 It definitely works best with staff-affinity UP, where the note names are
 below the stave.  Presumably it would be best with DOWN where they're above.
 It also is improved with:

 \paper {
   system-system-spacing #'padding = #5
 }


 IIRC, this is all to do with the system spacing not taking account of
 non-staff grobs?  I do think this is likely to cause a number of problems in
 the future.



Thanks!  The staff-affinity setting restores the old behavior.  FWIW,
I had to use the \with syntax to get it to actually compile.

\context NoteNames \with {
\override VerticalAxisGroup #'staff-affinity = #UP
} {  \notes }

The system-system-spacing change had no effect, AFAICT.

Making staff-affinity to default to #UP seems sensible to me.  Oh, and
congrats to the development team; compared to 2.12.3,  2.13.54 does a
noticeably better job  of making good trade-offs between note spacing
(horizontally) and lyric syllable spacing.

Cheers,
Mike

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


Re: Suppress NoteNames output on ties ?

2011-03-20 Thread Michael Ellis
On Sun, Mar 20, 2011 at 9:42 AM, Gilles THIBAULT
gilles.thiba...@free.fr wrote:
 #(define-music-function (parser location music) (ly:music?)
 (let ((prev-was-tie? #f))
  (define (tied-note-skip evt)
    (let ((elt (ly:music-property evt 'element))
          (elts (ly:music-property evt 'elements))
          (name (ly:music-property evt 'name)))
     (cond ((and prev-was-tie? (eq? name 'EventChord))
               (set! prev-was-tie? #f)
               (skip-of-length  evt))
           ((eq? name 'TieEvent)
               (set! prev-was-tie? #t)
               #f) ;; all tie events will be deleted
           (else
               (if (ly:music? elt) (ly:music-set-property! evt 'element
                                       (tied-note-skip elt)))
               (if (pair? elts) (ly:music-set-property! evt 'elements
                                       (filter-map tied-note-skip elts)))
               evt
 (tied-note-skip music)))

Thank you, Gilles. This is very nice and works almost perfectly.  I've
found one case where it isn't yet quite right.

I was copying a part from Bernstein's Chichester Psalms.  In Movement
I,  there is a section in 7/4 with dashed bars in each measure after
beat 4.  To save typing, I had created a variable thus:

bdash = { \noBreak \bar dashed }

The \noBreak is necessary to prevent system breaks at the dashed bar.
I noticed that the function was not suppressing the NoteNames output
for notes tied across the dashed bar lines.  It appears that the
\noBreak is the culprit.

mymusic = {
\time 7/4
c'2 c'2 ~ \bar dashed c'2.^ok  |
c'2 c'2 ~ { \noBreak \bar dashed } c'2.^fail |
c'2 c'2 ~ \noBreak  c'2.^fail |
}

I will try to debug and fix it -- unless someone already knows the answer!

Cheers,
Mike
attachment: notenamesnobreak.png___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Suppress NoteNames output on ties ?

2011-03-20 Thread Michael Ellis
On Sun, Mar 20, 2011 at 2:53 PM, Michael Ellis
michael.f.el...@gmail.com wrote:
 On Sun, Mar 20, 2011 at 9:42 AM, Gilles THIBAULT
 gilles.thiba...@free.fr wrote:
 #(define-music-function (parser location music) (ly:music?)
 (let ((prev-was-tie? #f))
  (define (tied-note-skip evt)
    (let ((elt (ly:music-property evt 'element))
          (elts (ly:music-property evt 'elements))
          (name (ly:music-property evt 'name)))
     (cond ((and prev-was-tie? (eq? name 'EventChord))
               (set! prev-was-tie? #f)
               (skip-of-length  evt))
           ((eq? name 'TieEvent)
               (set! prev-was-tie? #t)
               #f) ;; all tie events will be deleted
           (else
               (if (ly:music? elt) (ly:music-set-property! evt 'element
                                       (tied-note-skip elt)))
               (if (pair? elts) (ly:music-set-property! evt 'elements
                                       (filter-map tied-note-skip elts)))
               evt
 (tied-note-skip music)))

 Thank you, Gilles. This is very nice and works almost perfectly.  I've
 found one case where it isn't yet quite right.

 I was copying a part from Bernstein's Chichester Psalms.  In Movement
 I,  there is a section in 7/4 with dashed bars in each measure after
 beat 4.  To save typing, I had created a variable thus:

 bdash = { \noBreak \bar dashed }

 The \noBreak is necessary to prevent system breaks at the dashed bar.
 I noticed that the function was not suppressing the NoteNames output
 for notes tied across the dashed bar lines.  It appears that the
 \noBreak is the culprit.

 mymusic = {
    \time 7/4
    c'2 c'2 ~ \bar dashed c'2.^ok  |
    c'2 c'2 ~ { \noBreak \bar dashed } c'2.^fail |
    c'2 c'2 ~ \noBreak  c'2.^fail |
 }


The failures are fixed if I change

(cond ((and prev-was-tie? (eq? name 'EventChord))

to

(cond ((and prev-was-tie? (eq? name 'NoteEvent))

This seems to work perfectly for single line music without chords.
I'm going to push a little farther and see if I can get it to handle
tied chords correctly.   At present the logic cancels itself after the
first note of the chord and the subsequent ones are not suppressed.

Cheers,
Mike

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


Re: Suppress NoteNames output on ties ?

2011-03-18 Thread Michael Ellis
On Thu, Mar 17, 2011 at 10:23 AM, Michael Ellis
michael.f.el...@gmail.com wrote:
 Is it possible to tell  the NoteNames engraver to print the name for
 only the first note of a sequence of tied notes?

     mymusic = { c'4 c' ~ c'2 }
     \score {
         
         \new Voice  \mymusic
         \context NoteNames \mymusic
         
     }


Didn't get any replies. Does anyone know the answer to this?

Thanks,
Mike

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


Re: Transposing chords

2011-03-18 Thread Michael Ellis
On Fri, Mar 18, 2011 at 6:24 PM, John Donovan mersey.vik...@gmail.com wrote:
 \version 2.12.3

 thechords = \chordmode {
   c2 f
 }

 scale = \relative c' {
  \clef treble
  \key c \major
  \time 4/4
  c4 d e f g a b c \chordmode {\thechords}
 }

 \score {
    \new Staff {
      \scale
      \transpose c g {\scale}
    }
 }


Hi John,
I've run into essentially the same problem transposing sets of
exercises into different keys.  What's needed -- I think -- is a
scheme function that takes an absolute pitch range as one of its
arguments and alters the octave of the target pitch it if falls
outside the range.  This would not be too terribly difficult to
program but getting it right could be a bit fussy because right is
somewhat subjective. For instance, do you want the scale to always
ascend without wrapping notes but keep the chord pitches within a
certain range?  Is it ok to change the chord inversions?   

I ended up doing it manually because I only had a few example forms to
transpose to all keys.  If you have hundreds examples, it might be
worthwhile to write a scheme function.  Hopefully someone has already
created something in the LSR that you might be able to adapt.   I
wrote some code a few of months ago to do modal transpositions and
inversions.  You might be able to scavenge some of procedures as a
starting point.  For example, here's a function that takes some music
as input and applies a converter function to each pitch.  If you can
figure out how to define an appropriate converter function to pass as
an argument you might be halfway there.

(define-public (change-pitches music converter)
  Recurse through music, applying converter to pitches.
   Converter is typically a transposer or an inverter as
   defined above in this module, but may be user-defined.
   The converter function must take a single pitch as its
   argument and return a new pitch.  These are LilyPond
   scheme pitches, e.g. (ly:make-pitch 0 2 0).

  (let ((elements (ly:music-property music 'elements))
(element (ly:music-property music 'element))
(pitch (ly:music-property music 'pitch)))

(cond
 ((ly:pitch? pitch)
  (ly:music-set-property! music 'pitch (converter pitch)))

 ((pair? elements)
  (map (lambda (x) (change-pitches x converter)) elements))

 ((ly:music? element)
  (change-pitches element converter)


HTH,
Mike

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


Re: [OT] Vivi, the Virtual Violinist, plays LilyPond music

2011-03-18 Thread Michael Ellis
On Fri, Mar 18, 2011 at 11:42 AM, Kieren MacMillan
kieren_macmil...@sympatico.ca wrote:
 Dmytro,

 our creativity can make other people more active or make them
 watching just another idol. The lower the barrier --- the more crap.
 The more crap --- the more just another idols and the less of creativity.

 I couldn't have put it better myself.

The crap that disturbs me the most is when great art is put to petty
ends to sell product.  The reason most musicians despise the Pachelbel
Canon has nothing to do with the quality of the composition. They're
just sick of it, largely because it became so popular in the late '70s
that it was the background of choice for commercials selling
everything from luxury cars to baby powder.  In a similar vein, I
really love Carmina Burana but if I hear one more football or monster
truck ad blaring O Fortuna I may be put off of it forever.

Cheers,
Mike

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


Suppress NoteNames output on ties ?

2011-03-17 Thread Michael Ellis
Is it possible to tell  the NoteNames engraver to print the name for
only the first note of a sequence of tied notes?

    mymusic = { c'4 c' ~ c'2 }
    \score {
        
        \new Voice  \mymusic
        \context NoteNames \mymusic
        
    }



Thanks,
Mike
attachment: notenamestied.png___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: [OT] Vivi, the Virtual Violinist, plays LilyPond music

2011-03-17 Thread Michael Ellis
I, for one, welcome our new computer overlords. -- Ken Jennings
:-,
Mike

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


Re: what about simplifying music notation?

2011-03-14 Thread Michael Ellis
On Mon, Mar 14, 2011 at 1:43 AM, David Rogers
davidandrewrog...@gmail.comwrote:

 * Marc Weber marco-owe...@gmx.de [2011-03-14 04:01]:


  -- O -- (O is the body of a note here)
 -- O --

 the interval between both pitches depends on the location.
 Why?

 Why should e-g be different from g - h ?

 Wouldn't it be easier to assign notes (c,d,e,..) natural numbers?
 then define

 could be:
 ---O- nr 16
 ---O- nr 12
 ---O- nr 8
 ---O- nr 4
 ---O- nr 0

 to be always 4 semitones?

 Then many tasks such as transposing music to a different key would
 become a simple math operation: simply add a number.

 Many musicians who play occasionally only would benefit a lot.

 Has anyone else thought about this before?




 Sure, various people have come up with several interesting and
 useful (at least potentially useful) systems. I think in the end the
 trick is not so much coming up with a good system as getting people to
 adopt it. The installed base (to mis-use a term) of traditional
 notation is very large, and people who already know any system at all
 are reluctant to learn another unless it will bring them large and
 immediate benefits.

 In other words, your system is good but everybody will ignore you
 anyway. Sad, and not ideal, but I think it's true.


@Marc The website below may be of interest. It has a number of alternative
music notation systems that have been proposed as replacements for
traditional notation.

http://musicnotation.org/musicnotations/index.html

Many of them are quite clever but I think David's comment is correct.  It's
extremely difficult to get people to abandon what they've spent years
learning.

Cheers,
Mike
___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: what about simplifying music notation?

2011-03-14 Thread Michael Ellis
On Mon, Mar 14, 2011 at 11:06 AM, Francisco Vila paconet@gmail.com wrote:

 2011/3/14 David Kastrup d...@gnu.org:
  Francisco Vila paconet@gmail.com writes:
  Frets in a guitar are absolutely chromatic.  I did not mention
  fretless instruments.
 
  So please explain how you are would sort frets into a diatonic scale
  arrangement corresponding to white keys on a piano, with the frets
  corresponding to black keys put someplace else.

 I a sense, frets behave like buttons.

  The frets in a guitar are not _deliberately_ designed around a chromatic
  scale, but because their positioning is dictated by physics.

 Still, frets behave somewhat like buttons.

  Contrast that with a flute or a saxophone or anything else with a
  _deliberate_ design of controls.

 That's why I mentioned Stanley Jordan who percutes strings against the
 fretboard only, thus allowing complex two-hand polyphony and making
 frets look as if they were buttons :-))

I'm not familiar with Stanley Jordan's music but a guitar tuned by
fifths,  like a cello or violin, has a very convenient relationship to
diatonic scales because the first 3 modes (ionian, dorian, and
phrygian)  have symmetric tetrachords starting on the 1st and 5th
degrees of each mode.   See the diagram below.

  HEAD
---
.  .   .  .   .  .
c g  d a  e b
.  .   .  .   f  c
d a  e b  .  .
.  .   f  c  g d
e b  .  .   .  .
f  c  g d  a b



So the major scale patterns are very easy to visualize.  Of course you
need to have huge hands or play high on the neck to execute them
without shifting.

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


Re: what about simplifying music notation?

2011-03-14 Thread Michael Ellis
On Mon, Mar 14, 2011 at 11:38 AM, Michael Ellis
michael.f.el...@gmail.com wrote:
 On Mon, Mar 14, 2011 at 11:06 AM, Francisco Vila paconet@gmail.com 
 wrote:

 2011/3/14 David Kastrup d...@gnu.org:
  Francisco Vila paconet@gmail.com writes:
  Frets in a guitar are absolutely chromatic.  I did not mention
  fretless instruments.
 
  So please explain how you are would sort frets into a diatonic scale
  arrangement corresponding to white keys on a piano, with the frets
  corresponding to black keys put someplace else.

 I a sense, frets behave like buttons.

  The frets in a guitar are not _deliberately_ designed around a chromatic
  scale, but because their positioning is dictated by physics.

 Still, frets behave somewhat like buttons.

  Contrast that with a flute or a saxophone or anything else with a
  _deliberate_ design of controls.

 That's why I mentioned Stanley Jordan who percutes strings against the
 fretboard only, thus allowing complex two-hand polyphony and making
 frets look as if they were buttons :-))

 I'm not familiar with Stanley Jordan's music but a guitar tuned by
 fifths,  like a cello or violin, has a very convenient relationship to
 diatonic scales because the first 3 modes (ionian, dorian, and
 phrygian)  have symmetric tetrachords starting on the 1st and 5th
 degrees of each mode.   See the diagram below.

  HEAD
 ---
 .  .   .  .   .  .
 c g  d a  e b
 .  .   .  .   f  c
 d a  e b  .  .
 .  .   f  c  g d
 e b  .  .   .  .
 f  c  g d  a b



 So the major scale patterns are very easy to visualize.  Of course you
 need to have huge hands or play high on the neck to execute them
 without shifting.


Oops! Typo in last line of diagram.  Highest note is, of course, e
instead of b.

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


Re: what about simplifying music notation?

2011-03-14 Thread Michael Ellis
On Mon, Mar 14, 2011 at 2:03 PM,  i...@kristoflauwers.domainepublic.net wrote:

 On Mon, March 14, 2011 6:57 pm, Bernardo Barros wrote:
 we have a decimal system and you want to represent a numeral system
 based on 12 or 24 like [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B].
 You should propose a system base on 12 or 24 then.

 In computer science they use the hexadecimal system because it fits
 computer's bytes representation, if your object is the 12-tone scale,
 be consistent with your system :-)


 in practice, most computer programmers think in midi notes: 60 being
 middle C, 72 the C above that, ...
 as an extension, some software allows 'factional midi notes' (although
 they are not in the midi standard, and hardware synths won't understand
 them). so 62.33 is on third of a semitone higher then D. this is not as
 far fetched as it may seem. i use it e.g. to present overtone scales in
 just intonation..


@Marc
I think we're offering too much discouragement here instead of helping
you figure out how to use LilyPond to experiment with your ideas.  So
here's an adaptation of a script I use to generate solfege syllables
using the NoteNames engraver.  By mapping numbers to the Dutch
notenames,  you can print them under the notes.  It's probably not the
complete solution you have in mind and you may want to use a different
numbering scheme but at least you can use it to enter some real music
and see if having the chromatic note numbers under the notes is truly
helpful.

Cheers,
Mike

%
dutchtonumbers =
#`((ceses . 10)
   (ces . 11)
   (c . 0)
   (cis . 1)
   (cisis . 2)
   (deses . 0)
   (des . 1)
   (d . 2)
   (dis . 3)
   (disis . 4)
   (eeses . 2)
   (ees . 3)
   (e . 4)
   (eis . 5)
   (eisis . 6)
   (feses . 7)
   (fes . 4)
   (f . 5)
   (fis . 6)
   (fisis . 7)
   (geses . 5)
   (ges . 6)
   (g . 7)
   (gis . 8)
   (gisis . 9)
   (aeses . 7)
   (aes . 8)
   (a  . 9)
   (ais . 10)
   (aisis . 11)
   (beses . 9)
   (bes . 10)
   (b   . 11)
   (bis   . 0)
   (bisis . 1)
   )

noteNumbers =
#(lambda (grob)
   (let* ((default-name (ly:grob-property grob 'text))
  (new-name (assoc-get default-name dutchtonumbers)))
 (ly:grob-set-property!
   grob
   'text
   (markup #:italic #:smaller new-name))
 (ly:text-interface::print grob)))

mymusic = \relative c' { c d e f g a b c }

\score {

\new Voice {
\mymusic
}

\context NoteNames \with {
\override NoteName #'stencil = #noteNumbers
} {  \mymusic }


}
%
attachment: notenumbers.png___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Tonic Sol-Fa

2011-03-07 Thread Michael Ellis
On Mon, Mar 7, 2011 at 10:10 AM, Tim Sheasby t...@sheafpublishing.co.za wrote:
 I know that LilyPond does not currently support Tonic Sol-Fa notation. 
 However, in my work on African Hymn I found that many Africans are familiar 
 with this form of notation. Most of my source material was originally set 
 using this format. I devised a spreadsheet with formulas to convert bars of 
 tonic sol-fa into lilypond notation. Actually it just converts the d, m, r, f 
 etc to the appropriate a, b, c etc based on the key of the song. I added 
 shortcuts for adding rests and skips as well - simply using SS instead of s 
 and RR instead of r. Once I have entered the notes simply copy the converted 
 columns into LilyPond and voila!

Hi Tim,
Not quite sure if your work is similar to what I've been doing with
solfege-based part transcriptions but, on the chance it might be
useful,  I've adapted some music function templates that let you write
music in solfege, like so

\lacc \lyricmode { Mun -- gu ni pen -- doh }
do8\f do re mi do4. r8 |

\lacc \lyricmode { Ba -- ba weh tu, }
do8 do re4 do4. r8 |

\lacc \lyricmode { Mun -- gu weh tuh, }
do8 do ti4 la4. r8 |

\lacc \lyricmode { Ah tu pen -- dah. }
sol8 do re4 do4. r8 |

to produce the attached example with the solfege syllables in smaller
italic beneath lyrics.

Some earlier versions are available in LSR and on StackOverflow.com,
but I've been refining the templates since then.  I'll be happy to
share them it if seems useful.

Cheers,
Mike
attachment: mungu.png___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: [OT] Vivi, the Virtual Violinist, plays LilyPond music

2011-03-04 Thread Michael Ellis
Thanks Graham,
I just downloaded and looked at Dr. Chubb's script.  It looks nicely
coded  and seems to address a number of issues that bother me about
LilyPond's midi output.
Cheers,
Mike



On Fri, Mar 4, 2011 at 2:48 PM, Graham Percival
gra...@percival-music.ca wrote:
 On Thu, Mar 03, 2011 at 03:50:37PM -0500, Michael Ellis wrote:
 I've been thinking for a while about broaching the subject of
 LilyPond's midi output on this forum -- I feel  that this is one area
 where Lily is rather behind the curve compared to her commercial
 sisters. I wonder if some of your work could be applicable to helping
 LilyPond generate sound that's as beautiful as the sheet music.

 Unfortunately, Vivi isn't applicable to lilypond directly --
 redistributing all the audio feature extraction and machine
 learning code would be a monumental task, as well as probably
 quadrupling the download size.  The kind of audio performance by
 Vivi is not at all related to MIDI.

 A first place to look at improving the MIDI output would be
 integrating Dr. Peter Chubb's work on articulate.ly:
 http://www.nicta.com.au/people/chubbp/articulate

 Cheers,
 - Graham


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


Re: Learning Scheme

2011-03-03 Thread Michael Ellis
Hi Tim,
I've been walking down this path during the past few months.  So far,
the tutorial that helped me most is the online book at

http://icem-www.folkwang-hochschule.de/~finnendahl/cm_kurse/doc/schintro/schintro_4.html#SEC3

It's rather old, but the informal yet very concrete approach was just
perfect for my background and experience.

Cheers,
Mike



On Thu, Mar 3, 2011 at 1:14 PM, Tim Sheasby t...@sheafpublishing.co.za wrote:
 Wanting to get more involved in LilyPond. Would like to learn Scheme. What is 
 the best tutorial to get going? Thanks

 Tim Sheasby
 t...@sheafpublishing.co.za






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



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


Re: [OT] Vivi, the Virtual Violinist, plays LilyPond music

2011-03-03 Thread Michael Ellis
On Thu, Mar 3, 2011 at 2:53 PM, Graham Percival
gra...@percival-music.ca wrote:
 Hi all,

 My PhD research has swept me into the direction of automatic music
 performance. �In particular, generating realistic-sounding audio
 from sheet music.

Thanks for sharing this, Graham.  Vivi seems like nice work and the
rhythm test was fun.  FWIW, your post seems to me not so off-topic.
I've been thinking for a while about broaching the subject of
LilyPond's midi output on this forum -- I feel  that this is one area
where Lily is rather behind the curve compared to her commercial
sisters. I wonder if some of your work could be applicable to helping
LilyPond generate sound that's as beautiful as the sheet music.

Cheers,
Mike

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


Re: function argument computation

2011-02-25 Thread Michael Ellis
On Fri, Feb 25, 2011 at 9:20 AM, Peter Buhr pab...@sympatico.ca wrote:

 specialB = #(define-music-function (parser location suffix) (string?)
 #{
\base (concat XXX $suffix) #$suffix   % DOES NOT WORK
 #})


Hi Peter,
I think the following does what you're looking for.

specialB =
 #(define-music-function (parser location suffix) (string?)
(define combined (string-append XXX suffix))
   #{
   \base $combined $suffix
   #})

Cheers,
Mike
___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Why LilyPond?

2011-02-19 Thread Michael Ellis
On Sat, Feb 19, 2011 at 12:41 PM, Francisco Vila paconet@gmail.comwrote:

  On 2/19/11 9:47 AM, Phil Holmes em...@philholmes.net wrote:
 
  My wife has just asked and I don't know the answer.  Why is LilyPond
 called
  LilyPond?
 
 
  http://lilypond.org/web/about/name



Telling your wife such a romantic story could be risky -- unless you've
already created something equally wonderful and named it for her!

Cheers,
Mike
___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: 99 bottles of beer on the wall

2011-02-19 Thread Michael Ellis
On Sat, Feb 19, 2011 at 6:24 PM, Graham Percival
gra...@percival-music.ca wrote:

 Wow.  Brilliant work here:
 http://99-bottles-of-beer.net/language-lilypond-1351.html

Pretty cool!  I wonder if the number lookups could be simplified with
the  'r' format spec?

(use-modules (ice-9 format))

(string-split (format #f ~r 99) #\-)   == (ninety nine)

The syllabification alist would still be needed, of course.

Cheers,
Mike

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


Shorthand notation for multi-measure rests in music with frequent meter changes ?

2011-02-16 Thread Michael Ellis
I'm currently transcribing parts from music with frequently changing
meters and segments where a part is resting.  The sequence below is
typical.

    \time 3/4 R1*3/4 |
    \time 3/8 R1*3/8 |
    \time 4/4 R1*8/4 |  % 2 bars
    \time 3/8 R1*3/8 |

Does anyone know how to write a music function that will support a
more compact notation? Being able specify the time signature changes
and rests shown above with a syntax like the following would be a nice
timesaver.

mmr = #(define-music-function )

\mmr  3/4  3/8  2*4/4  3/8  ...

The best I've been able to cobble together is too messy to be useful
because of the need to use the # sign before arguments, etc.  In
particular, I haven't found any way to pass a bare fraction like 3/4
into a music function.


Thanks,
Mike

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


Re: Shorthand notation for multi-measure rests in music with frequent meter changes ?

2011-02-16 Thread Michael Ellis
Thanks Neil, those are good tips.  I'm a long time vim user so
shortcuts are certainly a possibility.  OTOH, I've recently found that
JEdit + LilyPondTool makes a real difference in my productivity
compared to vim + some helper scripts I had put together.

I know JEdit has its own Java-based macro language but if I'm going to
let coding distract me from music (happens waaayyy too often) I might
as well put the time into getter better at Scheme.

Anyway, I do appreciate the suggestions and may put them to use if
creating a music-function looks like too big a time-sink.

Cheers,
Mike



On Wed, Feb 16, 2011 at 2:24 PM, Neil Thornock neilthorn...@gmail.com wrote:
 I can't answer your question, but I have two responses to the dilemma.
  First, R2. is more compact than R1*3/4, and R1*2 is better than
 R1*8/4.  Same with R4*5 vs R1*5/4.

 Also, if you happen to use Vim -- I keep all my time signatures in a
 separate file from the notes.  It's then simple to map time signatures
 to keystrokes; entering time signatures can be very very fast.  So I
 hit the letter A and I get \time 1/4 s4.

 Quick and maybe not helpful answer, but there you go.

 On Wed, Feb 16, 2011 at 11:53 AM, Michael Ellis
 michael.f.el...@gmail.com wrote:
 I'm currently transcribing parts from music with frequently changing
 meters and segments where a part is resting.  The sequence below is
 typical.

     \time 3/4 R1*3/4 |
     \time 3/8 R1*3/8 |
     \time 4/4 R1*8/4 |  % 2 bars
     \time 3/8 R1*3/8 |

 Does anyone know how to write a music function that will support a
 more compact notation? Being able specify the time signature changes
 and rests shown above with a syntax like the following would be a nice
 timesaver.

 mmr = #(define-music-function )

 \mmr  3/4  3/8  2*4/4  3/8  ...

 The best I've been able to cobble together is too messy to be useful
 because of the need to use the # sign before arguments, etc.  In
 particular, I haven't found any way to pass a bare fraction like 3/4
 into a music function.


 Thanks,
 Mike

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




 --
 Neil Thornock, D.M.
 The recent BYU Symphony Orchestra performance of Plutoids:
 http://neilthornock.net/mp3s/plutoids.mp3
 Assistant Professor of Music
 Composition/Theory
 Brigham Young University


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


Re: Error in running Lilypond

2011-02-13 Thread Michael Ellis
Hi Father,

It certainly looks like a path problem or maybe two problems.   /python
seems unlikely,  as does  ?usr/.

Try opening up the Jedit Plugins/Plugin Options window and navigate to
LilyPondTool Commands.   Check the entry for python.   If it says /python
as shown in your error message, try removing the /.   Also check to see if
any of the other paths look suspicious.   Hope this helps.

Cheers,
Mike


On Sun, Feb 13, 2011 at 8:23 AM, Father Gordon Gilbert fatherg...@gmail.com
 wrote:

 Hi List,

 I just finally installed Lilypond and jEdit with LilyPondTool on my PC-BSD
 box, and I'm having a bit of trouble.

 I downloaded a piece from Mutopia, and when I tried to convert-ly, got the
 following message:

 Error running external command.
 See the activity log about the problem.
 Cannot run probram/python (in directory
 ?usr/home/gord/Documents/songs/LilypondSets): java.io.IOException:
 error=2, No such file or directory

 Same result when I tried to compile the file.

 It's probably a path thing, but I'm not a geek, so I don't necessarily know
 how to fix these things.

 Help?

 Gordon+


 --
 Fr. Gordon Gilbert
 Penetanguishene, ON

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


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


Re: Error in running Lilypond

2011-02-13 Thread Michael Ellis
On Sun, Feb 13, 2011 at 6:05 PM, Father Gordon Gilbert fatherg...@gmail.com
 wrote:

 /usr/local/bin/python: can't open file '/usr/local/bin/convert-ly.py'


Is convert.ly present in /usr/local/bin?  The error is claiming otherwise.

Cheers,
Mike
___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Can't use NoteNames twice in score block ??

2011-02-11 Thread Michael Ellis
On Fri, Feb 11, 2011 at 8:53 AM, Phil Holmes m...@philholmes.net wrote:

 Michael,

 Did you make any progress with creating a Tiny example of this issue?


No.  I tried for a while and then decided to let it sleep.  It's not
impacting the things I'm currently doing with LilyPond.  Thanks for
asking! If it's a real bug I'm sure it will come back to bite me again
and I'll pursue it then.

Cheers,
Mike

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


Re: How do you tell tempo for indications in English

2011-02-02 Thread Michael Ellis
Hi Patrick,

Short of conducting extensive field research in Ireland's pubs, you might
try asking the question here.

http://www.thesession.org/discussions/

Cheers,
Mike


On Wed, Feb 2, 2011 at 6:59 AM, James Lowe james.l...@datacore.com wrote:

 Hello,

 -Original Message-
 From: lilypond-user-bounces+james.lowe=datacore@gnu.org [mailto:
 lilypond-user-bounces+james.lowe lilypond-user-bounces%2Bjames.lowe=
 datacore@gnu.org] On Behalf Of Patrick Horgan
 Sent: 02 February 2011 04:05
 To: Mailinglist lilypond-user
 Subject: How do you tell tempo for indications in English

 I'm setting some of O'Neill's Irish tunes, and the tempo indications are (a
 selection):

 Animated, Boldly, Cheerful, Cheerfully, Gaily, Gracefully, Moderate,
 Plaintive, Plaintively, Playful, Playfully, Rather slow, Slow, Slow and
 distinctly, Slow and mournful, Slow and tenderly, Slow and with feeling,
 Slow with expression, Slow and feeling, Spirited, Tenderly, Very slow, With
 animation, With expression, With feeling, With spirit

 What do you do with that?  I can find tables of usual tempo ranges for
 italian tempo indications, but I have no idea what to do with these.
 I'd like them to be authentic, in that the midi file would be about as fast
 as the tune would usually be played in an Irish pub.  Does anyone have any
 ideas?

 ---

 I don’t think there is such a thing a 'authentic' tempo range if you are
 referring to setting crotchet/quaver/minim tempo speeds.

 What you are asking, it seems is, 'what speed is 'cheerful''?

 Which doesn't makes much sense.

 I expect it was simply played 'cheerfully' and that would depend on who was
 doing the playing. Also can you be sure that the same tune played in one
 'Irish pub' is any different from a 'non-Irish pub' or that other 'Irish
 pub' down the road? The music is probably played as fast or slow as the
 musicians play it and that can depend on how many times they have played
 together, the smell of the crowd or simply the number of pints  of the
 'black stuff' they have put away before/during the gig. ;) 110201-63

 Sorry if that sounds a bit flippant, but I am not sure what kind of answer
 you are going to get other than someone else's guestimation of which you
 could do yourself.

 Tempo in terms of words (rather than beat numbers) is more about feeling
 than speed.

 James




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

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


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


Re: error in predefined chord diagram?

2011-01-29 Thread Michael Ellis
Hi Bart,
Sounds like it's giving you a C#dim7, typically spelled C# E G A# .
Cheers,
Mike



On Sat, Jan 29, 2011 at 2:02 PM, bart deruyter bart.deruy...@gmail.com wrote:
 Hi all,

 I've noticed something strange in the predefined chord diagrams for guitar.
 While writing on my book for teaching guitar, I noticed the chord C#
 diminished is weird to say at the least. The fret diagram is very wrong I'm
 afraid :
 http://lilypond.org/doc/v2.13/Documentation/notation/predefined-fretboard-diagrams
 To be more precise, it shows the use of the third fret on the g-string. Last
 time I checked, this is A# or Bb. What does this do in C# diminished? Or am
 I so very mistaken?

 What should I do to fix this in my code?

 Grtz,
 Bart
 http://www.bartart3d.be/

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



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


Re: error in predefined chord diagram?

2011-01-29 Thread Michael Ellis
On Sat, Jan 29, 2011 at 2:57 PM, David Kastrup d...@gnu.org wrote:

 Uh, why wouldn't it be in C# diminuished?  It's a minor third below C#,
 or three minor thirds above it.

 Or am I so very mistaken?

 What should I do to fix this in my code?

 What's to fix?

Just looked at the doc.  Bart's right.  The staff shows C# E G.
Either the diagram or the staff notation should be changed.  FWIW,
this is one of those cases where jazz chord naming is often sloppy.
Most classical theory books use the degree symbol alone to indicate a
diminished triad and add the numeral seven when a fully-diminished 7th
is to be indicated.

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


Re: error in predefined chord diagram?

2011-01-29 Thread Michael Ellis
As long as I'm on my soapbox :-),  it occurs to me that it would be a
service to any student guitarist looking at that chart if the staff
notation showed the actual voicing of the chords, perhaps in
parentheses, alongside the root position close voicings, e.g

g,  c  e  bes c' e'

for the C7 chord.

Cheers,
Mike

On Sat, Jan 29, 2011 at 3:19 PM, bart deruyter bart.deruy...@gmail.com wrote:
 Would be very nice to add these too indeed :-).
 So, in other words, I'll have to create my own fretboards to be able to
 continue for now?

 grtz,
 Bart
 http://www.bartart3d.be/


 2011/1/29 Michael Ellis michael.f.el...@gmail.com

 I agree.  Changing the diagrams to match the names and notation will
 make it right.  For completeness, it might be nice to add the °7
 forms.  OTOH, there are an awful lot of fakebooks out there that use °
 when they really intend °7.
 Cheers,
 Mike



 On Sat, Jan 29, 2011 at 3:07 PM, bart deruyter bart.deruy...@gmail.com
 wrote:
  The score is correct, the diagrams are wrong, of all diminished chords I
  think. C diminished and D diminished are wrong too, the diagrams at
  least.



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


Re: Problem with barcheck

2011-01-29 Thread Michael Ellis
As Jay pointed out,  \times 2/3 {d8 g a } will occupy the time of two
eighth-notes, not three.  Hence the barcheck fails because there is an
eighth-note's worth of time remaining in your first measure (and 2
1/8's missing in the second.)

Cheers,
Mike



On Sat, Jan 29, 2011 at 3:01 PM, Martin Chicoine
martin.chico...@gmail.com wrote:
 The following example gives me barcheck errors. Could someone explain why?

 %%%
 \version 2.12.3

 \header {
        title = 
 }

 staffViolon = \new Staff {
    \time 6/8
    \set Staff.instrumentName = Violon
    \set Staff.midiInstrument = violin
    \key g \major
    \clef treble
    \relative c' {
          b'4 d,8 ~ \times 2/3 {d8 g a } |
          \times 2/3 {b8 d c} \times 2/3 {b a g} |
    }

 }

 \score {
        
                \staffViolon
        

        \midi {
        }

        \layout {
        }
 }



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


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


Re: engraving rules question - voices with merged heads

2011-01-29 Thread Michael Ellis
I agree with James.  As I think I've commented in another thread, I've
seen many rehearsals interrupted when singers needed to ask a question
because of confusing notation.  Think of it this way: as a composer
you want to give the performers every possible chance to get it right
the first time so they can spend more time working on bringing your
music to life in performance.

Cheers,
Mike



2011/1/29 James Bailey derhindem...@googlemail.com:

 On Jan 29, 2011, at 9:40 PM, Janek Warchoł wrote:

 W dniu 29 stycznia 2011 12:00:50 UTC+1 użytkownik James Bailey
 derhindem...@googlemail.com napisał:

 On Jan 29, 2011, at 11:25 AM, Janek Warchoł wrote:

 2011/1/29 James Bailey derhindem...@googlemail.com:

 On Jan 29, 2011, at 12:17 AM, Janek Warchoł wrote:

 Hi,

 recently i was told that this notation

  { \mergeDifferentlyHeadedOn  b'2 \\ { b'8 a' g' f' }  }

 is not allowed in vocal music (i.e., the noteheads shouldn't be
 merged). Is that true?

 correct. you shouldn't merge heads in vocal music.

 Interesting. Is that true also when both voices have filled noteheads,
 i.e.

  {  { b'4 g' } \\ { b'8 a' g' f' }  }

 ?
 Here LilyPond merges noteheads automatically, and i don't remember any
 simple means to switch that off.

 Thanks,
 Janek

 This is different. One voice has a beam, while the other doesn't. There
 isn't any way to mistake a half note for a quarter note in this case, as is
 the case in the other.

 Sorry, but it doesn't make sense to me. In both examples one voice has
 a beam and the other doesn't.
 Please look at the attachments:
 A - everything is clear. notes in upper voice must be quarters because
 they have filled heads and no beams, while notes in lower voice must
 be eights because they have filled heads and beams. Here we agree.
 B - note in upper voice must be a half because it has a hollow
 notehead and no beam. First note in lower voice has a hollow notehead,
 but it cannot be a half because it has a beam. Therefore, it must be
 an eight note. I don't see any way in which a half note could be
 mistaken for a quarter note in this example.

 This is not normal vocal music engraving. This is more typical of piano 
 music. I've seen this in piano music, and never in vocal music. Were I 
 singing this, I'd understand what it meant, but it seems an unnecessary 
 complication. Vocal music engraving traditions stem from everything being 
 sight read. I'd have to read this twice, or at least stumble over it once 
 before I realized that it wasn't a half note for the lower voice.

 The only case in which a half note could be mistaken for a quarter
 note would be in C. I agree that merging heads in C would be totally
 unacceptable.

 thanks,
 Janek
 C.pngA.pngB.png


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


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


Re: Nesting ly:music-property error

2011-01-29 Thread Michael Ellis
Hi Scott,

I think the problem is that the music in your example doesn't have an
'elements property.  You can eliminate the error by changing the third
line in your code to

#(display-scheme-music (ly:music-property $myx 'pitch))

but what gets displayed is an empty list '().  Probably not what you
want, right?

Some of the more experienced Schemers on the list may be able to offer
better help.

Cheers,
Mike



On Sat, Jan 29, 2011 at 6:28 PM,  banners...@ccacompanies.com wrote:
 myN = #(define-music-function (parser location myx ) (ly:music?)
 #{
 #(display-scheme-music (ly:music-property (ly:music-property $myx 'elements)
 'pitch))
 #})

     \myN c

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


Re: Nesting ly:music-property error

2011-01-29 Thread Michael Ellis
Sorry, my previous answer was rubbish.  The following runs without
error and prints the pitch object.

myN = #(define-music-function (parser location myx ) (ly:music?)
(display-scheme-music
(ly:music-property
(car (ly:music-property myx 'elements))
'pitch))
myx)

\myN c

Cheers,
Mike



On Sat, Jan 29, 2011 at 6:46 PM, Michael Ellis
michael.f.el...@gmail.com wrote:
 Hi Scott,

 I think the problem is that the music in your example doesn't have an
 'elements property.  You can eliminate the error by changing the third
 line in your code to

 #(display-scheme-music (ly:music-property $myx 'pitch))

 but what gets displayed is an empty list '().  Probably not what you
 want, right?

 Some of the more experienced Schemers on the list may be able to offer
 better help.

 Cheers,
 Mike



 On Sat, Jan 29, 2011 at 6:28 PM,  banners...@ccacompanies.com wrote:
 myN = #(define-music-function (parser location myx ) (ly:music?)
 #{
 #(display-scheme-music (ly:music-property (ly:music-property $myx 'elements)
 'pitch))
 #})

     \myN c


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


Re: Nesting ly:music-property error

2011-01-29 Thread Michael Ellis
Right. In the general case, you need to recurse through 'elements and
'element similar to the following:

(define-public (change-pitches music converter)
;; Recurse through music, applying converter to pitches.
;; The converter function must take a single pitch as its
;; argument and return a new pitch.  These are LilyPond
;; scheme pitches, e.g. (ly:make-pitch 0 2 0)

(let ((es (ly:music-property music 'elements))
  (e (ly:music-property music 'element))
  (p (ly:music-property music 'pitch)))

(cond
((ly:pitch? p)
(ly:music-set-property! music 'pitch (converter p)))

((pair? es)
(map (lambda (x) (change-pitches x converter)) es))

((ly:music? e)
(change-pitches e converter)


Cheers,
Mike



On Sat, Jan 29, 2011 at 8:22 PM,  banners...@ccacompanies.com wrote:
 Thanks

 (car ) was the trick I would have been looking for a long time to come up
 with that one.

 (car (...))- returns the first member of a list.

 I'm assuming that if that member is a function it returns the functions
 result, which is why we get the solution?

 Scott


 -Original Message-
 From: Michael Ellis [mailto:michael.f.el...@gmail.com]
 Sent: Saturday, January 29, 2011 07:01 PM
 To: banners...@ccacompanies.com
 Cc: lilypond-user@gnu.org
 Subject: Re: Nesting ly:music-property error

 Sorry, my previous answer was rubbish. The following runs without error and
 prints the pitch object. myN = #(define-music-function (parser location myx
 ) (ly:music?) (display-scheme-music (ly:music-property (car
 (ly:music-property myx 'elements)) 'pitch)) myx) \myN c Cheers, Mike On Sat,
 Jan 29, 2011 at 6:46 PM, Michael Ellis wrote:  Hi Scott,   I think the
 problem is that the music in your example doesn't have an  'elements
 property.  You can eliminate the error by changing the third  line in your
 code to   #(display-scheme-music (ly:music-property $myx 'pitch))   but
 what gets displayed is an empty list '().  Probably not what you  want,
 right?   Some of the more experienced Schemers on the list may be able to
 offer  better help.   Cheers,  Mike On Sat, Jan 29, 2011 at 6:28
 PM,   wrote:  myN = #(define-music-function (parser location myx )
 (ly:music?)  #{  #(display-scheme-music (ly:music-property
 (ly:music-property $myx 'elements)  'pitch))  #})       \myN c 

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


Automatic metronome track?

2011-01-28 Thread Michael Ellis
I want to automate the process of generating a midi metronome track
for rehearsal purposes.  It's trivial if the piece is in the same
meter throughout,  e.g. if the piece has 97 measures in 4/4 you can
do:

\new Voice = Click {
\set midiInstrument = #woodblock
\repeat unfold 97 \drums {wbh4 wbl wbl wbl}
}

but what if the meter is frequently changing? I'm transcribing the
baritone part out of a large new work that, no exaggeration, seldom
goes more than a few bars without changing meter.   I googled various
combinations LilyPond, metronome, click,  measure but didn't
find anything.  Is there a scheme function I can use to detect the
start of a measure and the current meter?  Or some other way to
accomplish the same thing.  I want to end up with a music function
that looks like

 \clickTrack \mymusic

that will scan through a music variable, \mymusic,  and return a
wbh on each downbeat and a wbl on the remainder.


Cheers,
Mike

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


Re: exercise notation

2011-01-25 Thread Michael Ellis
Hello Jose,

I've found the simplest thing is to generate them all at once.  It
doesn't take that much time for normal sized choral pieces and you get
all the files at once.  If you have the music for each voice in
separate variables,  say \soprano, \alto, \tenor, \bass,  then a \book
block like the one below will produce 5 pdfs and 5 midi files -- one
for each of the parts plus one containing them all.

\book {
\score {
  \new Voice  \soprano
  \new Voice  \alto
  \new Voice  \tenor
  \new Voice  \bass

  \layout { }
  \midi  {}
 }
#(define output-suffix Soprano)
\score {
  \new Voice  \soprano
  \layout { }
  \midi  {}
 }
#(define output-suffix Alto)
\score {
  \new Voice  \alto
  \layout { }
  \midi  {}
 }
#(define output-suffix Tenor)
\score {
  \new Voice  \tenor
  \layout { }
  \midi  {}
 }

#(define output-suffix Bass)
\score {
  \new Voice  \bass
  \layout { }
  \midi  {}
 }

} %% end of book


Cheers,
Mike



On Tue, Jan 25, 2011 at 3:25 PM,  lilyp...@josebreden.nl wrote:
 Hello,

 Singing in a coral I would like to exercise the different parts (soprano,
 alto, bass).
 So I would like to generate from a single .ly-file, multiple midi-files:
 - all parts together (which is allready working)
 - only soprano part
 - only alto part
 - only bass part
 With a small kind of switch.

 My preference would be using boulean variables for example:
 * midi-soprano = true/false
 * midi-alto = true/false
 * midi-bass = true/false

 How can I implement something like this, in the attached example?

 Thanks a lot in advance!!

 Regards, Jose



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


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


Re: Understanding herd of curly braces

2011-01-24 Thread Michael Ellis
Hi Seth,

It sounds as though you've not had previous exposure to programming
languages where nested braces (curly and otherwise) are common.  The
short answer to your question is that the braces identify which pieces
of text go with which command.   The indentation levels are only
significant in the sense that they make the file easier for humans to
read.  The computer doesn't care as long as the opening and closing
braces are matched.

Most programmers use special text editors with features that help you
see which opening and closing braces belong with each other, e.g.  if
you put the cursor on a particular brace, the editor will highlight
its mate.  I won't presume to recommend a particular editor to you --
better to find a friend who's a programmer and get him/her to help you
choose one and get started using it.

I know this probably isn't much help, but at least it may point you in
the right direction.

Cheers,
Mike


On Mon, Jan 24, 2011 at 4:07 PM, Seth Williamson hazelmo...@gmail.com wrote:

 I have turned out a few simple jobs with LilyPond, mainly simple copying jobs 
 just for practice and -- as a practical matter -- a few pieces that I needed 
 to transpose into another key.
 However, as I look at LilyPond code generated by others, it's not obvious to 
 me (usually near the end of a document) what each closing curly brace refers 
 to.
 Am I even SUPPOSED to be able to figure that out by looking at all the closed 
 curly braces, usually at different indentations on different lines?  Are you 
 supposed to see these things and know to what they apply in the code above?  
 Is there a logic here that I'm missing?
 I am trying to figure out the logic of why the close braces (in particular) 
 appear where they are and at a given indentation.  So far there's nothing 
 intuitive about it.
 Such documentation as I've been able to find at the LilyPond site and 
 elsewhere has been of limited utility in this regard.
 Is this something you just learn by doing?  Or can anybody help me out?
 Seth Williamson
 ___
 lilypond-user mailing list
 lilypond-user@gnu.org
 http://lists.gnu.org/mailman/listinfo/lilypond-user


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


Re: Pentatonic Diatonic Transposition?

2011-01-23 Thread Michael Ellis
On Sun, Jan 23, 2011 at 7:21 AM, Patrick Schmidt p.l.schm...@gmx.de wrote:
 Hi Michael,

 nice work! I just think that the name modal transposition is a little
 misleading in this case.

Thanks, Patrick! I agree that the name may be confusing.  I considered
calling it something like \scalarImitation, since that's also
musically correct description of what it does.

FWIW, if you wanted to recast a passage in C-major to c-minor
(aeolian) you could use it this way:

cAeolian = { a b c d e f g }
\transpose a c \modalTranspose c a \cAeolian \somemusic

provided, of course, that \somemusic contained only notes in the key of C.

I'm pressed for time today, but will try to give a more thoughtful
reply to the other points in your message this evening.  Perhaps some
others on the list will weigh in with more suggestions in the
meantime.


Cheers,
Mike

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


Re: Pentatonic Diatonic Transposition?

2011-01-21 Thread Michael Ellis
On Fri, Jan 21, 2011 at 4:41 AM, Daniel basso.ridicul...@gmail.com wrote:
 Any other ideas?


Hi Daniel,

Here's a partial, but very general solution that will modally
transpose within any scale (or any ordered set of pitches) of any
length using modulo arithmetic.  To make it usable in LilyPond, you'll
need to wrap it in one or music functions that can

1. Extract pitch names from  music as strings or, better yet as symbols.
2. Run the pitch names through a transposer created with the scheme
function below
3. Deal with octave issues so that your melodic outline is preserved.
This is probably the trickiest part.
4. Insert the modified pitches back into the music stream.

Cheers,
Mike

#(use-modules (srfi srfi-1))  %needed for list-index and list-ref

#(define (make-modal-transposer scale)
;; Returns a transposer  for the specified scale
;; Usage example:
;;Create a transposer for C major pentatonic
;;(define c-pent (make-modal-transposer '(c d e g a)))
;;
;;Apply to sequence of pitch names,
;;specifying the starting pitch of the desired mode as
;;the first argument to the transposer.
;;(c-pent  'd   '(c c e d a))== '(d d g e c)

(define (index item lis)
(list-index (lambda (x) (equal? item x)) lis))

(lambda (mode-pitch pitch-sequence)
(if (not (member mode-pitch scale))
(error Transposition target pitch not in scale!))
(map
(lambda (p)
(if (not (member p scale))
(error Sequence pitch not in scale!))
(list-ref scale
(modulo (+ (index p scale) (index mode-pitch scale))
(length scale

pitch-sequence)))

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


Re: Using the input-tag music property

2011-01-20 Thread Michael Ellis
On Thu, Jan 20, 2011 at 2:22 AM, Johan Vromans jvrom...@squirrel.nl wrote:

 Attached is some scheme code that's probably too long for a snippet,

 I don't mind long snippets. Please put it on LSR.


Thanks, Johan. I think it needs some clean-up first, e.g. making the
procedures properly tail-recursive.  BTW, can you point me to some
particularly well-written snippets in the LSR?  I've read the style
guide, but  I'd also like to have some good models to imitate :-)

Cheers,
Mike

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


Re: Using the input-tag music property

2011-01-20 Thread Michael Ellis
On Thu, Jan 20, 2011 at 11:02 AM, Johan Vromans jvrom...@squirrel.nl wrote:
 I seldom look at the style... If it work I copy and use it :).

Cleaned up and submitted to LSR.  Awaiting approval.
Cheers,
Mike

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


Re: Suppress chord names from MIDI output

2011-01-18 Thread Michael Ellis
+1  Having two score blocks in a book block is working very nicely for me.
Cheers,
Mike


On Tue, Jan 18, 2011 at 1:12 PM, James Bailey
derhindem...@googlemail.comwrote:

 Have two \score blocks, one without \ChordName, but including \midi, and
 one with \layout, that includes the \ChordName context.
___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Solfege Resources -- 404 bach chorales in Lilypond format with Movable Do solfege.

2011-01-04 Thread Michael Ellis
On Tue, Jan 4, 2011 at 4:17 AM, Graham Percival
gra...@percival-music.ca wrote:
 I think you are wrong.  I think that this Margaret person has
 created works that are under copyright, and you are taking those
 works and claiming to offer them under a license that she did not
 consent to.


Actually no.  A license is (in part) a promise that the licensor will
not sue the licensee so long as s/he adheres to the terms of the
license.  The licenses I offer, by law, can apply only to whatever
portions of the work are my original contributions.  Margaret's rights
are not abrogated in any way by a license between me and someone who
downloads one of the files from Solfege Resources.   She or her heirs
and assigns could still go after someone anyone who uses the files for
financial profit.  I'm merely promising that I won't go after them
with regard to my work. Moreover, I have diligently acknowledged
Margaret's work and urged users to respect her terms of use despite
that fact that there is, under U.S. law as I understand it, reason to
doubt that what's in my files (sequences of pitches and rhythms) are
anything other than minor alterations of music already in the public
domain.

Cheers,
Mike

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


Re: Solfege Resources -- 404 bach chorales in Lilypond format with Movable Do solfege.

2011-01-03 Thread Michael Ellis
Mike, Graham, Henning,

Thanks again, it's all good discussion.  For the time being, I've altered
the home page on the solfege-resources site to offer two choices of License,
namely Free Art license in addition to CC BY-NC-AS.  I've also added a
couple paragraphs explaining my understanding of U.S. copyright law and
urging users to accept the CC license with commercial restriction in honor
of Margaret GreenTree's patient labor while acknowledging that patient labor
in itself may not create copyrightable work and therefore offering also the
Free Art option.   I realize that it may all be legally meaningless,  but it
seems as I close as I can come for the moment to balancing the various legal
and ethical  considerations.

I've still not heard from her.  Hopefully she's just on vacation and will
eventually reply.

I'm still open to replacing the notation in the Bach Chorales with Phil's
work and offering those under Free Art license only.  (Phil, if you will
send me a gmail address (needed by googlecode.com), I will authorize it for
commit privileges on the site).   But please hold off from making extensive
changes as I'd like to revise the lilypond files to achieve even greater
separation between the notation and the output.  I'd like to get to the
point where the notation files look like:

\include common.ly
\header { ... }
voiceFoo =  { ... music ... }
voiceBar = { ... music ... }
...
\output

where \output is a scheme function defined in common.ly that (somehow)
detects the voicenames and creates all the \book { \score   { ... } } blocks
needed to create the PDF and MIDI files for the full score and individual
parts.

If that is possible in LilyPond it would make it very simple for folks who
want to contribute transcriptions of other works to put their files in a
simple format and, at the same time, allow all the output to have a
consistent look.  It also could allow for the use of command line defines to
control what gets generated.

I'm going to start a separate thread on that topic, so lets not discuss it
here.

Cheers,
Mike


On Mon, Jan 3, 2011 at 6:03 AM, Graham Percival gra...@percival-music.cawrote:

 On Mon, Jan 03, 2011 at 02:16:44AM -0800, Mike Blackstock wrote:
 Just to clarify: anything is copyrightable of course

 That is false.

  - there's no laws
 that I'm aware of that
 prevent people from asserting a copyright; question is, can it/has it
 a
 chance of standing up?

 You are confusing things.  Somebody may claim to possess copyright
 on something, but asserting a copyright does not mean that it
 is, in fact, under copyright.  Whether something is under
 copyright is a question of the written law and case histories (in
 countries which recognize precedence), not mere opinion.

 Granted, a pessimist may point out that certain highly-paid
 lawyers are more successful in having judges agree with their
 opinions than non-highly-paid lawyers.  I am not claiming that the
 case history is a perfect record of objective judgements, but (for
 better or worse) those judgements *are* the precedence.


 Moreover, there are in fact laws against abusing the system.
 Various jursidictions have laws against malicious prosecution.
 The (in)famous DMCA of the USA requires a copyright claimant to
 swear under perjury that they do, in fact, own the copyright in
 question.

 Admittedly, this does not appear to be enforced -- there have been
 a few cases wherein the MPAA, RIAA, or actors on their behalf,
 have claimed copyright when they did not in fact own the
 copyright.  But that's a problem of enforcement, not the written
 law.


   I spent an hour or so doing various searches looking for court
 decisions
   and came up blank; I'm wondering if we're making a mountain out of
 a
   mole-hill? Can somebody find an instance of a music publisher suing
   somebody over such things?

 I believe that it is more common to issue a cease and desist
 letter first; if the offending party complies with it, there is
 generally no lawsuit.  These definitely happen; for example,
 recent action against guitar tab notation for pop songs:
 http://www.wired.com/listening_post/2007/03/music_publisher/

 I've heard that publishers of Christian pop/rock songs are
 particularly active in this regard.  There's good money in selling
 sheet music to church groups!

 And don't forget about the German kindergarden that was recently
 sued for infringing copyright on sheet music:

 http://www.dw-world.de/dw/article/0,,14741186,00.html?maca=en-rss-en-all-1573-rdf


  Like I say I couldn't find any with my
   average search skills; it would certainly be illuminating to see how
 the
   courts have ruled however.

 Sadly, these stories are a dime a dozen these days.  In many
 cases, they never go to court because any lawyer will tell their
 client that they don't have a hope of defending against the
 charge.

 For example, if your amateur church choir photocopies a 1984
 arrangement of a hymn for SATB 

Completely separating notation from output logic

2011-01-03 Thread Michael Ellis
I'm trying to develop an include file with Scheme functions that will
allow notation files to contain nothing more than a header block and
music for one or more voices.   Below is what I've got so far.  What
I'm finding is that I can easily define a music function that appends
voices to a list and a corresponding function that retrieves them in
order within the context of  a \score block.   What doesn't work so
far  is trying to generate the score block itself.  I get an error
complaining about Unexpected \score.  I'm assuming that's because a
\score isn't a music type.  Is that right?  Also, what I'm doing now
feels a bit hackish.  Is there a more elegant approach?

Thanks,
Mike

%% To go into an include file, e.g. myinclude.ly ...
\version 2.12.3
%% Append music for one voice to a list.
appendVoice = #(define-music-function (P L ml m) (list? ly:music?)
(append! ml m))

%% Insert a voice in a score block
newvoice = #(define-music-function (P L M) (ly:music?)
#{
\new Voice $M
#})

%% Insert list of voices to a score block
allvoices = #(define-music-function (P L  mlist) (list?)
(if (eq? mlist '())
#{  #}
(let ((v (car mlist)))
#{
\newvoice  $v
#}
(allvoices (cdr mlist)

%% Generate a score block containing voices from a list.
thescore = #(define-music-function (P L mlist) (list?)
#{
\score {

\allvoices \myvoices

}
#})


%% ---
%% To go into a notation file

%\include myinclude.ly

#(define myvoices '())

\appendVoice \myvoices \relative c' { e f g a }
\appendVoice \myvoices \relative c' { c d e f }

%% THIS WORKS
\score {

\allvoices \myvoices

}

%% THIS DOES NOT
\thescore \myvoices


Cheers,
Mike

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


Re: Completely separating notation from output logic

2011-01-03 Thread Michael Ellis
Thanks, Carl.  I probably should have included some background
information.  If I had only one piece of music to worry about, I'd do
it exactly as you suggest.  Problem is I've got 404 Bach Chorales on
the Solfege Resources site and expect to eventually have hundreds or
even thousands more from other composers whose work is public domain.
  Each one has a separate \book { \score {} \score{} } block to
generate pdf + midi files for all parts together plus each part
individually.  There are also some mildly hairy Scheme functions that
invoke the NoteNames engraver and use quoteDuring to add fermatas from
the Soprano part to individual parts.

Having all the output logic in a single include file would:
1.  Allow me to define a dead-simple format for contributions of
other public domain transcriptions, e.g
  \include common.ly
  \head { }
  #(define voices '())
  \appendVoice \voices { ... }  % e.g. Soprano
  \appendVoice \voices { ... )   % e.g. Alto
  ...
  \theOutput  \voices  % all the files for all the voices

2.  Make it easy to improve who wanted a to change the formatting
by only requiring them to modify the common.ly

3.  Eliminate the need for (or at least greatly simplify) external
scripts to rebuild the world after changes.

I'm not sure how I could do all that by including named files in score files.

Cheers,
Mike



On Mon, Jan 3, 2011 at 5:04 PM, Carl Sorensen c_soren...@byu.edu wrote:
 Personally, I think you're going about this exactly backwards.  Rather than
 including the score in a notation file, I think you should include the
 notation in a score file.  That way, you can easily reuse the notation in
 multiple places.

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


Re: Completely separating notation from output logic

2011-01-03 Thread Michael Ellis
On Mon, Jan 3, 2011 at 5:41 PM, Michael Ellis michael.f.el...@gmail.com wrote:
    2.  Make it easy to improve who wanted a to change the formatting
 by only requiring them to modify the common.ly


Meant to say:
 2.  Make it easy for myself or users to improve the formatting ...

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


Re: Completely separating notation from output logic

2011-01-03 Thread Michael Ellis
Thanks Graham, I did use python to generate the first set of files
and, being fairly expert with it, python is always my weapon of
choice.  The limitation I see in this case is trying to support a
minimal input format for contributors to use. I was able to make it
work for the Greentree files because MuseScore emitted voice name
variables with a recognizable pattern e.g.  AAvoiceBA = \relative c''
{ and always ended the music with a closing }  on a line by itself,
and so forth.

I don't want to burden contributors with anything that rigid and I
don't want to write a python parser for LilyPond syntax or even adapt
the one that comes with Frescobaldi.  That would feel like hunting
flies with an elephant gun.

Hence the reluctant decision to handle it in Scheme.  I did find a
thread from 2008 between Reinhold K., Han-Wen, and Nicolas S, but they
are operating with pretty high-level knowledge of Lily internals.  It
would be nice to find a well-documented solution that didn't require
combing through the Lily sources.  I'll keep looking.  This can't be
that hard to do, right?

Cheers,
Mike



On Mon, Jan 3, 2011 at 9:44 PM, Graham Percival
gra...@percival-music.ca wrote:
 On Mon, Jan 03, 2011 at 05:41:48PM -0500, Michael Ellis wrote:
 Thanks, Carl.  I probably should have included some background
 information.  If I had only one piece of music to worry about, I'd do
 it exactly as you suggest.  Problem is I've got 404 Bach Chorales on
 the Solfege Resources site and expect to eventually have hundreds or
 even thousands more from other composers whose work is public domain.

 This has been solved a few times.  Look in the mailing list
 archives, and/or look at Reinhold's orchestralily, etc.

 Personally, I'd just reinvent the wheel and generate score files
 with python, using some naming scheme for directories and files.
 But I'd do so knowing that this solution was stupidly reinventing
 the wheel.

 Cheers,
 - Graham


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


Re: Solfege Resources -- 404 bach chorales in Lilypond format with Movable Do solfege.

2011-01-02 Thread Michael Ellis
Hi Phil  Graham,
Thanks very much for the information and discussion.  It's all
extremely useful.  Let me see if I can paraphrase a few points that
are influencing my thinking:

We all seems to agree that:

   1. The music of the chorales (the sequences of pitches and
rhythms notated in the Breitkopf edition) is public domain.
   2. The Breitkopf edition itself is also in the public domain.
   3. Margaret Greentree's XML files do not contain any copyright
assertions other than for the PDF output.
   4. Her site has the following text in the footer of each page:
 © 1996-2010 by Margaret Greentree, some rights reserved.
Free midi files and sets, ongoing corrections.
 This site may be browsed, referenced or linked. Download the
ftp files, but do not use images or music for financial profit.
Commercial use of material without permission from me or the artists
is an infringement of rights reserved.

Given the above, it seems that an important question is whether her
reservation of rights applies to distributing material created by
applying LilyPond to the notation sequences embodied in her XML.   I
don't mean to sound like a lawyer here (and I'm most assuredly not
one), but to the extent that her notes match those in public domain
editions, one could argue that no copyright is possible.

On the other hand, I'm not sure that failing to declare a copyright to
the XML files necessarily invalidates a copyright to the digital
representation she created and one could argue that the translation
produced by MuseScore (via xml2ly, I think) is a purely mechanical
re-representation of her work.

As to my own contributions to this work, I am ok with dropping
commercial clause and issuing it with either the CC license or the
Free Art license or both.  So I think we need to wait for a response
from Margaret.  Hopefully she will be amenable to what we would like
to do.

Needless to say, another alternative would be to replace her work with
yours, Phil.  I think you said you've got about 300 of the chorales
already transcribed.  Is that right?  Would it be difficult to plug
your note sequences into the format I'm using?


Cheers,
Mike


On Sun, Jan 2, 2011 at 6:44 AM, Phil Hézaine philippe.heza...@free.fr wrote:

 Le 01/01/2011 23:30, Graham Percival a écrit :
  On Sat, Jan 01, 2011 at 10:08:38PM +0100, Phil Hézaine wrote:
  Moreover, there are chorals which aren't changed from the Public Domain.
  I've checked some of it against my sources. Well, only a little bit.
  And i'm not sure of the data integrity of her typesetting.
 
  Interesting.
 
  Then, why to claim a clause of copyright non-commercial without arguments?
 
  Well, if she made any editorial changes, the result is not in the
  public domain.  Arguably, even simply making unintentional data
  entry changes could be enough for the result to be under
  copyright.
 
  What a shame that Margaret Gentree is not on this list. We could have a
  better understanding. Are Barenreiter or Musica Budapest's sources
  closed?
 
  Unless they created an urtext edition, then yes, the notes and
  markings are under copyright.  Even if they created an urtext
  edition, the actual layout of music on the page is under
  copyright.  In the latter case, typing the notes into a text file
  (for processing with lilypond) does not infringe copyright,
  whereas making a photocopy would infringe.
 
  Could we use her work in a GNU app like GNU Solfege without
  infringements between the GPL and her license?
 
  No.  GPL does not allow you to play additional restrictions on the
  distribution of material; the CC-NC has an extra restriction (no
  commercial use).
 
  For now I plan to publish the 371 chorals from Breitkopf with a Free Art
  license,
 
  Have you checked that the Breitkopf edition is free from
  copyright?  Mutopia has a good short discussion about this:
  http://www.mutopiaproject.org/contribute.html
 
  Cheers,
  - Graham

 Thanks for the informations, Graham, it's always useful.
 The handy sources i have are exactly the same you find on ISMLP:


  http://imslp.org/wiki/Chorale_Harmonisations,_BWV_1-438_%28Bach,_Johann_Sebastian%29

 Rédacteur:
 Johann Philipp Kirnberger
 Carl Philipp Emanuel Bach

 Édition:
 Leipzig: Breitkopf und Härtel, n.d.[1878]. Plate V.A. 10
 Droit d'auteur: Public Domain

 Notes:
 Based on 1st edition (Leipzig: Breitkopf, 1784–1788)
 2 staves, without lyrics


 I think I'm right.
 However I add in my typesetting the BWV references and the corrected
 titles (there are a lot) from jsbchorales, and i point out the chorales
 in duplicate.
 Yes, in fact there are not 371 chorales in this edition!
 Off course, I'll mention the origin of my references in my final work. I
 think there is no copyright issue about their catalogue.
 Am i wrong?

 If you check the second chorale from the Breitkopf's edition against the
 jsb sources (BWV 347) you'll see no difference.
 The first chorale (BWV 269) has just a missing tie for the alto, 5 bars
 

Re: Solfege Resources -- 404 bach chorales in Lilypond format with Movable Do solfege.

2011-01-02 Thread Michael Ellis
Thanks Graham, it's good to get the straight story!  I must say there are
certainly some confusing aspects to copyright law.  So If I'm understanding
you correctly, if I were to transcribe a fugue from an out of copyright
source, I have a copyright if I make a mistake and none if I copy it
perfectly!  What if I transcribe from a copyrighted source and make a
mistake (or a lot of mistakes)?  Or copy from a copyrighted source only
those aspects that exist verbatim in a non-copyrighted version, e.g. notes
and rhythms as Bach wrote them but no dynamics or layout added by the
editor?

Anyway, I do appreciate the insights.  For the time being I'm interpreting
her publicly granted rights according to the notice on her web site, i.e
free use for purposes other than financial profit.

Cheers,
Mike


On Sun, Jan 2, 2011 at 6:51 PM, Graham Percival gra...@percival-music.cawrote:

 On Sun, Jan 02, 2011 at 12:59:39PM -0500, Michael Ellis wrote:
  We all seems to agree that:
 1. The music of the chorales (the sequences of pitches and
  rhythms notated in the Breitkopf edition) is public domain.
 2. The Breitkopf edition itself is also in the public domain.

 I haven't checked it myself, but if this Breitkopf edition is on
 IMSLP, then yes.

 3. Margaret Greentree's XML files do not contain any copyright
  assertions other than for the PDF output.

 Assertion is completely irrelevant to the status of being under
 copyright or not.  If something would normally be under copyright,
 then it is under copyright the instant that it is produced in
 fixed form.  (i.e. as soon as I type each letter of this
 paragraph, it is under copyright -- even though I am not going to
 append Copyright (c) 2011 Graham Percival to this email)

  Given the above, it seems that an important question is whether her
  reservation of rights applies to distributing material created by
  applying LilyPond to the notation sequences embodied in her XML.

 No.  The question is whether her particular rendition of the Bach
 chorales in XML can be under copyright.  If it is -- and I believe
 it can be, especially since somebody noted that her rendition was
 not completely accurate -- then all the XML files are under
 copyright, and you cannot do (legally) anything with them without
 her express permission (with certain exeptions that vary from
 country to country).

  On the other hand, I'm not sure that failing to declare a copyright to

 Failing to declare a copyright has no meaning since 1970 or so.
 In the first half of the 20th century, that had a legal meaning,
 but after one particular major rewrite of copyright law, any idea
 in fixed form (paraphrased) was under copyright.

 Cheers,
 - Graham

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


Re: Solfege Resources -- 404 bach chorales in Lilypond format with Movable Do solfege.

2011-01-02 Thread Michael Ellis
A few excerpts from the Wikipedia article on derivative works.  Highlighting
and italics added by me.

17 U.S.C. http://en.wikipedia.org/wiki/Title_17_of_the_United_States_Code
§ 103(b) http://www.law.cornell.edu/uscode/17/103(b).html provides:

The copyright in a compilation or derivative work extends only to the
material contributed by the author of such work, as distinguished from the
preexisting material employed in the work, and does not imply any exclusive
right in the preexisting material. The copyright in such work is independent
of, and does not affect or enlarge the scope, duration, ownership, or
subsistence of, any copyright protection in the preexisting material.


US Copyright Office Circular 14: Derivative
Workshttps://docs.google.com/viewer?url=http%3A%2F%2Fwww.copyright.gov%2Fcircs%2Fcirc14.pdf
notes
that:

A typical example of a derivative work received for registration in the
Copyright Office is one that is primarily a new work but incorporates some
previously published material. This previously published material makes the
work a derivative work under the copyright law. To be copyrightable, a
derivative work must be different enough from the original to be regarded as
a new work or must contain a substantial amount of new material. *Making
minor changes or additions of little substance to a preexisting work will
not qualify the work as a new version for copyright purposes. The new
material must be original and copyrightable in itself. Titles, short
phrases, and format, for example, are not copyrightable.*


When does derivative-work copyright exist?

For copyright protection to attach to a later, allegedly derivative work, it
must display some originality of its own. It cannot be a rote, uncreative
variation on the earlier, underlying work. The latter work must contain
sufficient new expression, over and above that embodied in the earlier work
for the latter work to satisfy copyright law’s requirement of
originalityhttp://en.wikipedia.org/wiki/Originality
.

Although serious emphasis on originality, at least so designated, began with
the Supreme Court’s 1991 decision in *Feist v.
Ruralhttp://en.wikipedia.org/wiki/Feist_v._Rural
*, some pre-*Feist* lower court decisions addressed this requirement in
relation to derivative works. In *Durham Industries, Inc. v. Tomy
Corp.*[1]http://en.wikipedia.org/wiki/Derivative_work#cite_note-0
and
earlier in *L. Batlin  Son, Inc. v.
Snyder*,.[2]http://en.wikipedia.org/wiki/Derivative_work#cite_note-1the
Second Circuit held that a derivative work must be original relative to the
underlying work on which it is based. Otherwise, it cannot enjoy copyright
protection and copying it will not be copyright infringement.

In the *Batlin* case, one maker of Uncle Sam toy banks sued another for
copying its coin-operated bank, which was based on toy banks sold in the
United States[3]
http://en.wikipedia.org/wiki/Derivative_work#cite_note-2 since
at least the 1880s. (These toys have Uncle Sam's extended arm and
outstretched hand adapted to receive a coin; when the user presses a lever,
Uncle Sam appears to put the coin into a carpet bag.) The plaintiff's bank
was so similar to the 19th Century toys, differing from them only in the
changes needed to permit a plastic molding to be made, that it lacked any
original expression. Therefore, even though the defendant's bank was very
similar to the 
plaintiff's,[4]http://en.wikipedia.org/wiki/Derivative_work#cite_note-3
the
plaintiff's was not entitled to any copyright protection. To extend
copyrightability to minuscule variations would simply put a weapon for
harassment in the hands of mischievous copiers intent on appropriating and
monopolizing public domain work.

--


Obviously, laws vary from country to country, but to me this suggests that
it would be very hard to assert a copyright claim to any set of of rhythms
and pitches that are already available in the public domain.  I think that's
why I was having trouble with the concept that a copy of a chorale with a
mistake is a copyrighted work.

Cheers,
Mike


On Sun, Jan 2, 2011 at 8:09 PM, Michael Ellis michael.f.el...@gmail.comwrote:

 Thanks Graham, it's good to get the straight story!  I must say there are
 certainly some confusing aspects to copyright law.  So If I'm understanding
 you correctly, if I were to transcribe a fugue from an out of copyright
 source, I have a copyright if I make a mistake and none if I copy it
 perfectly!  What if I transcribe from a copyrighted source and make a
 mistake (or a lot of mistakes)?  Or copy from a copyrighted source only
 those aspects that exist verbatim in a non-copyrighted version, e.g. notes
 and rhythms as Bach wrote them but no dynamics or layout added by the
 editor?

 Anyway, I do appreciate the insights.  For the time being I'm interpreting
 her publicly granted rights according to the notice on her web site, i.e
 free use for purposes other than financial profit.

 Cheers

  1   2   >