Re: Automatic generation of scores skeletons

2013-10-18 Thread Jacques Menu
Hello Johann,Here is what I've come to after some cleanup:menu@mac  ./GenerateLilypondSkeleton.py -h-- Usage: ./GenerateLilypondSkeleton.py [-h|--help] [-d|--debug] [-b|--barNumbers] [(-n|--notes=) aLilypondNoteOrRest] fileNamefor example:./GenerateLilypondSkeleton.py -n dis ThemaAllegroWoO37Trio.jsonFrom the following JSON spec:menu@mac  cat ThemaAllegroWoO37Trio.json{"version": "2.17.19","title" : "Thema allegro","__subtitle"   : "pour instruments en Ut","__subsubtitle"  : "(en Ré majeur, tonalité originale Mib)","composer"   : "Ludwig van Beethoven (1808 -1854)","tagline": "J. Menu - September 2013","enteredby"   : "Jacques Menu","instrumentName": "Bassoon","clef" : "bass","key"  : "g \\major","time" : "2/4","initialUpBeat" : "8*1","firstBarNumber": 129,"finalBarPosition"   : "150:4/8","doubleBarsPositions"  : ["132:4/8"],"barNumbersAtBeginningOflines" : [135, 142, 146],"tempoMarks"  : { "129:1/8":"Thema allegro", "144:1/8":"Coda"},"repeats": [ {"128:4/8-136:3/8": [1, []]}, {"136:4/8-144:3/8": [2, ["144:1/8-144:3/8", "144:1/8-144:4/8"]]} ],"partName"   : "bassoonPart"}the following LP source files can be obtained automatically:

ThemaAllegroWoO37Trio_with_notes.ly
Description: Binary data


ThemaAllegroWoO37Trio_with_all_bar_numbers.ly
Description: Binary data


ThemaAllegroWoO37Trio_without_notes.ly
Description: Binary data
Removing the"barNumbersAtBeginningOflines" can be done simply by writing it"_barNumbersAtBeginningOflines" instead for example, which leads to:

ThemaAllegroWoO37Trio_without_forced_breaks.ly
Description: Binary data
I'm still working on the repeats alternatives, currently not handled, and the reason why I started all this actually.Also,"tempoMarks"could be specified as a list, as "repeats" is,for regularity.The constraints on JSON syntax make the latter a bit complex, I'm afraid, with number of repetitions and list of alternatives...A nice w-e!JM--Jacques MenuCh. de la Pierre 121023 Crissiermailto:jacques.m...@tvtmail.ch

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


Re: Automatic generation of scores skeletons

2013-10-15 Thread Janek Warchoł
Hi,

2013/10/9 Jacques Menu jacques.m...@epfl.ch
 Do you think there could be interest in such a tool for anyone else than its 
 author?

I'm interested, although i don't have time to delve deeper into this
now (that's why i didn't answer immediately) - sorry :-(

What would be important for me: making it as generic as possible (so
that it wouldn't impose using a particular score structure), even at
the cost of some features.  And adding it to LilyPond itself
(built-in).

best,
Janek

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


Re: Automatic generation of scores skeletons

2013-10-15 Thread Carl Peterson
On Thu, Oct 10, 2013 at 2:22 AM, Johan Vromans jvrom...@squirrel.nl wrote:

 Jacques Menu jacques.m...@epfl.ch writes:

  After struggling with irregular bars, I've been working on a Python3
 tool that
  transforms a spec such as:
  [...]
  into a ready-to-compile Lilypond source file.

 Very interesting. It reminds me of something I considered a while ago:
 a kind of meta-staff where the structure of the score is described
 (time/tempo, repeats, special \bar's, and so on). These would then apply
 to all the staffs automatically.

 The rationale is that while a LilyPond score consists of horizontal
 staffs, it is in fact structured vertically and sometimes it has
 advantages to treat it as such. For example, using pseudo-LP:


This is a variant on the technique I use in my own templating system for
SATB hymns. I have one LP file where I define the actual music. In addition
to each voice part, I also define a meta-voice that contains the
information about key, time signature, bars, etc., that is applied as an
additional voice on each staff.

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


Re: Automatic generation of scores skeletons

2013-10-14 Thread Jacques Menu
Hello Paul,

Le 13 oct. 2013 à 18:49:01, Paul Morris p...@paulwmorris.com a écrit :

 Jacques Menu-2 wrote
 Also, entering the spec data could be done in a GUI window as an
 extension.
 
 I could see this being integrated into Frescobaldi, perhaps?

I'll contribute it with pleasure!

JM

 
 Nice work, btw!
 -Paul 
 
 
 
 --
 View this message in context: 
 http://lilypond.1069038.n5.nabble.com/Automatic-generation-of-scores-skeletons-tp152025p152260.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


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


Re: Automatic generation of scores skeletons

2013-10-13 Thread Paul Morris
Jacques Menu-2 wrote
 Also, entering the spec data could be done in a GUI window as an
 extension.

I could see this being integrated into Frescobaldi, perhaps?

Nice work, btw!
-Paul 



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Automatic-generation-of-scores-skeletons-tp152025p152260.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


Re: Automatic generation of scores skeletons

2013-10-10 Thread Johan Vromans
Jacques Menu jacques.m...@epfl.ch writes:

 After struggling with irregular bars, I've been working on a Python3 tool that
 transforms a spec such as:
 [...]
 into a ready-to-compile Lilypond source file.

Very interesting. It reminds me of something I considered a while ago:
a kind of meta-staff where the structure of the score is described
(time/tempo, repeats, special \bar's, and so on). These would then apply
to all the staffs automatically.

The rationale is that while a LilyPond score consists of horizontal
staffs, it is in fact structured vertically and sometimes it has
advantages to treat it as such. For example, using pseudo-LP:

  structure = {
  A1
  \repeat volta 2 {
 A2
  }
  \alternative{
 A21
 A22
  }
  A3
  \bar ||
  A4
  \bar :|
  A5
  }
  A1 = { ... }
  B1 = { ... }
  C1 = { ... }
  ... and so on ...
  voiceA = { \A1 \A2 \A21 \A22 \A3 \A4 \A5 }
  voiceB = { \B1 \B2 \B21 \B22 \B3 \B4 \B5 }
  voiceC = { \C1 \C2 \C21 \C22 \C3 \C4 \C5 }

Much can be achieved with macro's, I know.

Can you give me a url for your tool?

Thanks,

-- Johan

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


Re: Automatic generation of scores skeletons

2013-10-10 Thread Simon Bailey
hi,

this sounds similar to reinhold kainhofer's orchestralily package:
http://kainhofer.com/orchestrallily/

i'm not sure if reinhold is still actively maintaining it, but it might
also be worth a look.

regards,
sb


On Thu, Oct 10, 2013 at 8:22 AM, Johan Vromans jvrom...@squirrel.nl wrote:

 Jacques Menu jacques.m...@epfl.ch writes:

  After struggling with irregular bars, I've been working on a Python3
 tool that
  transforms a spec such as:
  [...]
  into a ready-to-compile Lilypond source file.

 Very interesting. It reminds me of something I considered a while ago:
 a kind of meta-staff where the structure of the score is described
 (time/tempo, repeats, special \bar's, and so on). These would then apply
 to all the staffs automatically.

 The rationale is that while a LilyPond score consists of horizontal
 staffs, it is in fact structured vertically and sometimes it has
 advantages to treat it as such. For example, using pseudo-LP:

   structure = {
   A1
   \repeat volta 2 {
  A2
   }
   \alternative{
  A21
  A22
   }
   A3
   \bar ||
   A4
   \bar :|
   A5
   }
   A1 = { ... }
   B1 = { ... }
   C1 = { ... }
   ... and so on ...
   voiceA = { \A1 \A2 \A21 \A22 \A3 \A4 \A5 }
   voiceB = { \B1 \B2 \B21 \B22 \B3 \B4 \B5 }
   voiceC = { \C1 \C2 \C21 \C22 \C3 \C4 \C5 }

 Much can be achieved with macro's, I know.

 Can you give me a url for your tool?

 Thanks,

 -- Johan

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




-- 
Do not meddle in the affairs of trombonists, for they are subtle and quick
to anger.
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Automatic generation of scores skeletons

2013-10-10 Thread Jacques Menu
Hello Johan,

Leave me a week or two to have a version I can make available.
Will keep you informed!

JM

Le 10 oct. 2013 à 08:22:32, Johan Vromans jvrom...@squirrel.nl a écrit :

 Jacques Menu jacques.m...@epfl.ch writes:
 
 After struggling with irregular bars, I've been working on a Python3 tool 
 that
 transforms a spec such as:
 [...]
 into a ready-to-compile Lilypond source file.
 
 Very interesting. It reminds me of something I considered a while ago:
 a kind of meta-staff where the structure of the score is described
 (time/tempo, repeats, special \bar's, and so on). These would then apply
 to all the staffs automatically.
 
 The rationale is that while a LilyPond score consists of horizontal
 staffs, it is in fact structured vertically and sometimes it has
 advantages to treat it as such. For example, using pseudo-LP:
 
  structure = {
  A1
  \repeat volta 2 {
 A2
  }
  \alternative{
 A21
 A22
  }
  A3
  \bar ||
  A4
  \bar :|
  A5
  }
  A1 = { ... }
  B1 = { ... }
  C1 = { ... }
  ... and so on ...
  voiceA = { \A1 \A2 \A21 \A22 \A3 \A4 \A5 }
  voiceB = { \B1 \B2 \B21 \B22 \B3 \B4 \B5 }
  voiceC = { \C1 \C2 \C21 \C22 \C3 \C4 \C5 }
 
 Much can be achieved with macro's, I know.
 
 Can you give me a url for your tool?
 
 Thanks,
 
 -- Johan
 
 ___
 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: Automatic generation of scores skeletons

2013-10-10 Thread Johan Vromans
Simon Bailey si...@bailey.at writes:

 this sounds similar to reinhold kainhofer's orchestralily package:
 http://kainhofer.com/orchestrallily/

A quick glance on this impressive(!) project learns that it is about
maintaining scores and (horizontal) parts ( = voices ).

What I have in mind is imposing horizontal structure (bars, repeats) on
the vertical parts ( = movements ).

Maybe I should go for a proof-of-concept to make clear what's all about.

-- Johan

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


Re: Automatic generation of scores skeletons

2013-10-09 Thread Tim Reeves
Jacques,

This sounds like a great idea to me. I'm surprised no one else has 
commented.


Tim Reeves


 Message: 1
 Date: Wed, 9 Oct 2013 18:15:15 +0200
 From: Jacques Menu jacques.m...@epfl.ch
 To: lilypond-user@gnu.org Users lilypond-user@gnu.org
 Cc: Jacques Menu jacques.m...@epfl.ch
 Subject: Automatic generation of scores skeletons
 Message-ID: f1291479-40e4-46ed-a095-f91aa1f91...@epfl.ch
 Content-Type: text/plain; charset=us-ascii
 
 Hello Folks,
 
 After struggling with irregular bars, I've been working on a Python3
 tool that transforms a spec such as:
 
 {
 title : Thema allegro,
 composer  : Ludwig van Beethoven (1808 -1854),
 tagline   : J. Menu - September 2013,
 enteredby : Jacques Menu,
 
 instrumentName: Bassoon,
 clef  : bass,
 key   : g \\major,
 time  : 2/4,
 
 initialUpBeat : 8*1,
 
 firstBarNumber: 129,
 lastBarNumber : 150,
 
 finalBarPosition  : 150:4/8,
 
 barNumbersAtBeginningOflines  : [135, 142, 146],
 
 tempoMarks: { 129:1/8:Thema allegro, 144:
 1/8:Coda},
 
 repeats   : [{128:4/8-136:3/8, 1, []}, 
 {136:4/8-144:3/8, 2, [144:1/8-144:3/8, 144:1/8-144:4/8]}],
 
 partName  : bassoonPart
 
 }
 
 into a ready-to-compile Lilypond source file.
 
 The latter contains either actual notes (all the same pitch) to 
 check the layout, or lines merely containing the %nnn comment at 
 the end, ready to be filled with the actual notes by whichever means.
 
 The spec is in JSON format, which avoids writing a specific parser.
 
 136:4/8-144:3/8 denotes a range starting at the 4th eight in 
 measure 136 and ending at the 4rd eight in measure 144, inclusive.
 
 There are still issues regarding the description of alternatives, as
 you can see.
 
 barNumbersAtBeginningOflines can be used optionally to force line 
 breaks, to help check the score comparing it with the original.
 There's also the possibility to specify doubleBarsPositions.
 
 The score described by the spec above is part of Beethoven's Trio X 
 WoO37 for flute, bassoon and piano:
 
 
 
 The same skeleton could be used for the other instruments, of course.
 
 Also, entering the spec data could be done in a GUI window as an 
extension.
 
 Do you think there could be interest in such a tool for anyone else 
 than its author?
 
 JM
 
 --
 
 Jacques Menu
 Ch. de la Pierre 12
 1023 Crissier
 
 mailto:jacques.m...@tvtmail.ch
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user