Re: Aleatoric / modern notation

2013-01-31 Thread David Nalesnik
Hi Jeffrey and Ben,

On Wed, Jan 16, 2013 at 2:13 PM, SoundsFromSound
soundsfromso...@gmail.comwrote:

 I agree - you have done an amazing job with this, thank you so much!

 Ben



 Jeffrey Trevino wrote
  Hi David,
 
  I really hope this ends up in Lilypond; you've clearly put a ton of work
  into this. And it's even commented now! Brilliant.
 
  It seems to be working just fine; I'll holler if there are troubles.
 
  cheers,
  Jeff


Thank you for your kind words!

Ultimately, it would be nice if something like this could get into LilyPond.

Though I'm making progress on this, there are some serious issues that I'm
having, and I've frankly hit a wall.

I've attached the latest version of the file.  It enhances the version
attached above by adding a bracket with text (for the purpose of specifying
a timing).

The problems I'm having relate to vertical spacing.  Presumably, the Frame,
being an inside-staff-object, isn't taken into consideration in vertical
spacing.  You can see that the Frame is ignored in skyline calculations by
uncommenting the line at the top of the file.  The situation at the top of
the Frame isn't as dire, because there the bracket--an outside-staff
object--influences spacing.  (Not enough, however.)

If you want a demonstration of the bad that can happen, uncomment the lower
part of the example.  It gets worse if you increase the number of
repetitions.

You can always limit the staves per page, or move the staves further apart.
 So this is usable.  Obviously, there is a better solution, though.

@Mike S,--if you're seeing this, will your current work on skylines allow a
fix?

--David


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


Re: Aleatoric / modern notation

2013-01-16 Thread SoundsFromSound
I agree - you have done an amazing job with this, thank you so much!

Ben



Jeffrey Trevino wrote
 Hi David,
 
 I really hope this ends up in Lilypond; you've clearly put a ton of work
 into this. And it's even commented now! Brilliant.
 
 It seems to be working just fine; I'll holler if there are troubles.
 
 cheers,
 Jeff
 
 On Sat, Jan 12, 2013 at 10:23 AM, David Nalesnik
 lt;

 david.nalesnik@

 gt;wrote:
 
 Hi Jeff,

 On Sat, Jan 12, 2013 at 11:37 AM, Jeffrey Trevino 
 

 jeffrey.trevino2@

 wrote:

 Hi David,

 I just saw this fix. Thanks for spending so much time tweaking this.
 Maybe there's a way it can be integrated into the Lilypond code, since
 you've spent so much time developing it. I'll be using it in a score
 soon.


 I've actually been working at this off and on since I sent you that fix,
 and I've added some functionality.  You no longer need to guess at the
 length of the extender line: you specify its endpoint with the command
 \frameExtenderEnd.  Also, the extender (now a separate grob called
 FrameExtender) can be broken across lines.

 There are still some issues to resolve.  One of these problems is that
 the
 new stencil isn't taken into account in vertical spacing, and this can
 result in overlaps in extreme cases.  (Try moving some of the groups into
 regions with many ledger lines.) I'm guessing that the difficulty arises
 because the frame isn't an outside-staff object, but I'm unsure how to
 proceed.

 There's some test code in the attached file.  Mike Solomon suggested that
 I handle alignment between the component parts (the frame, the extender,
 and ultimately a bracket-with-timing affair to encompass the frame and
 extender) with an alignment grob (as DynamicLineSpanner and the like).
  This is one angle I'm exploring.  (At the moment, uncommenting the
 \consists line will just draw boxes around the whole affair.)

 Anyway, I hope this proves helpful.  Please let me know if you have any
 suggestions, or run into difficulties.

 lt;http://www.jeffreytrevino.com/gt;
 
 ___
 lilypond-user mailing list

 lilypond-user@

 https://lists.gnu.org/mailman/listinfo/lilypond-user





-
composer | sound designer
--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Aleatoric-modern-notation-tp18113p139671.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: Aleatoric / modern notation

2013-01-15 Thread Jeffrey Trevino
Hi David,

I really hope this ends up in Lilypond; you've clearly put a ton of work
into this. And it's even commented now! Brilliant.

It seems to be working just fine; I'll holler if there are troubles.

cheers,
Jeff

On Sat, Jan 12, 2013 at 10:23 AM, David Nalesnik
david.nales...@gmail.comwrote:

 Hi Jeff,

 On Sat, Jan 12, 2013 at 11:37 AM, Jeffrey Trevino 
 jeffrey.trevi...@gmail.com wrote:

 Hi David,

 I just saw this fix. Thanks for spending so much time tweaking this.
 Maybe there's a way it can be integrated into the Lilypond code, since
 you've spent so much time developing it. I'll be using it in a score soon.


 I've actually been working at this off and on since I sent you that fix,
 and I've added some functionality.  You no longer need to guess at the
 length of the extender line: you specify its endpoint with the command
 \frameExtenderEnd.  Also, the extender (now a separate grob called
 FrameExtender) can be broken across lines.

 There are still some issues to resolve.  One of these problems is that the
 new stencil isn't taken into account in vertical spacing, and this can
 result in overlaps in extreme cases.  (Try moving some of the groups into
 regions with many ledger lines.) I'm guessing that the difficulty arises
 because the frame isn't an outside-staff object, but I'm unsure how to
 proceed.

 There's some test code in the attached file.  Mike Solomon suggested that
 I handle alignment between the component parts (the frame, the extender,
 and ultimately a bracket-with-timing affair to encompass the frame and
 extender) with an alignment grob (as DynamicLineSpanner and the like).
  This is one angle I'm exploring.  (At the moment, uncommenting the
 \consists line will just draw boxes around the whole affair.)

 Anyway, I hope this proves helpful.  Please let me know if you have any
 suggestions, or run into difficulties.

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


Re: Aleatoric / modern notation

2013-01-12 Thread Jeffrey Trevino
Hi David,

I just saw this fix. Thanks for spending so much time tweaking this. Maybe
there's a way it can be integrated into the Lilypond code, since you've
spent so much time developing it. I'll be using it in a score soon.

cheers,
Jeff

On Tue, Dec 11, 2012 at 3:04 PM, David Nalesnik david.nales...@gmail.comwrote:

 On Sat, Dec 8, 2012 at 7:21 PM, David Nalesnik david.nales...@gmail.com
 wrote:

 [...]

 
  Trying to work out the problem, I've done a little rewriting so I'll
  include the engraver here.  You can just substitute this in the
  problematic file.
 

 Well, I did break something.  Here's the fix:

 frameEngraver =
 #(lambda (context)
   (let ((span '())
 (stub '())
 (event-drul (cons '() '(
 (make-engraver
   (listeners ((frame-event engraver event)
   (if (= START (ly:event-property event 'span-direction))
   (set-car! event-drul event)
   (begin
 (set-cdr! event-drul event)
 (set-car! event-drul '())
   (acknowledgers
 ((note-column-interface engraver grob source-engraver)
  (if (ly:spanner? span)
  (begin
(ly:pointer-group-interface::add-grob span 'elements grob)
(add-bound-item span grob)))
  (if (ly:item? stub)
  (ly:pointer-group-interface::add-grob stub 'elements grob)))
 ((script-interface engraver grob source-engraver)
  (if (ly:spanner? span)
  (ly:pointer-group-interface::add-grob span 'elements grob))
  (if (ly:item? stub)
  (ly:pointer-group-interface::add-grob stub 'elements grob)))
 ((dynamic-interface engraver grob source-engraver)
  (if (ly:spanner? span)
  (ly:pointer-group-interface::add-grob span 'elements grob))
  (if (ly:item? stub)
  (ly:pointer-group-interface::add-grob stub 'elements grob)))
 ((inline-accidental-interface engraver grob source-engraver)
  (if (ly:spanner? span)
  (ly:pointer-group-interface::add-grob span 'elements grob))
  (if (ly:item? stub)
  (ly:pointer-group-interface::add-grob stub 'elements grob

   ((process-music trans)
(if (ly:stream-event? (car event-drul))
(begin
  (set! span (ly:engraver-make-grob trans 'Frame (car
 event-drul)))
  (set! stub (ly:engraver-make-grob trans 'FrameStub (car
 event-drul)))
  (ly:grob-set-object! stub 'frame span)
  (ly:grob-set-property! stub 'direction LEFT)
  (set-car! event-drul '(
(if (ly:stream-event? (cdr event-drul))
(if (null? span)
(ly:warning No start to this box.)
(begin
  (set! stub (ly:engraver-make-grob trans 'FrameStub
 (cdr event-drul)))
  (ly:grob-set-property! stub 'direction RIGHT)
  (ly:grob-set-object! stub 'frame span)
  (ly:engraver-announce-end-grob trans span (cdr
 event-drul))

   ((stop-translation-timestep trans)
(if (ly:stream-event? (cdr event-drul))
(begin
  (set! span '())
  (set-cdr! event-drul '(
(set! stub '())




-- 
《〠》】〶【〖〠〗〶〛〷〚
Jeff Treviño
PhD Candidate in Music Composition
@ the University of California, San Diego
〖〠〗〶〛〷〚《〠》】〶
Skype: jeffreytrevino
E-mail: jeffrey.trev...@gmail.com
〚《〠》】〶【〖〠〗〶〛〷
9310H Redwood Dr.
La Jolla, CA 92037
USA
〖〠〗〶〛〷〚《〠》】〶【
http://www.jeffreytrevino.com/
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Aleatoric / modern notation

2013-01-12 Thread David Nalesnik
Hi Jeff,

On Sat, Jan 12, 2013 at 11:37 AM, Jeffrey Trevino 
jeffrey.trevi...@gmail.com wrote:

 Hi David,

 I just saw this fix. Thanks for spending so much time tweaking this. Maybe
 there's a way it can be integrated into the Lilypond code, since you've
 spent so much time developing it. I'll be using it in a score soon.


I've actually been working at this off and on since I sent you that fix,
and I've added some functionality.  You no longer need to guess at the
length of the extender line: you specify its endpoint with the command
\frameExtenderEnd.  Also, the extender (now a separate grob called
FrameExtender) can be broken across lines.

There are still some issues to resolve.  One of these problems is that the
new stencil isn't taken into account in vertical spacing, and this can
result in overlaps in extreme cases.  (Try moving some of the groups into
regions with many ledger lines.) I'm guessing that the difficulty arises
because the frame isn't an outside-staff object, but I'm unsure how to
proceed.

There's some test code in the attached file.  Mike Solomon suggested that I
handle alignment between the component parts (the frame, the extender, and
ultimately a bracket-with-timing affair to encompass the frame and
extender) with an alignment grob (as DynamicLineSpanner and the like).
 This is one angle I'm exploring.  (At the moment, uncommenting the
\consists line will just draw boxes around the whole affair.)

Anyway, I hope this proves helpful.  Please let me know if you have any
suggestions, or run into difficulties.


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


Re: Aleatoric / modern notation

2012-12-11 Thread David Nalesnik
On Mon, Dec 10, 2012 at 11:30 PM, David Kastrup d...@gnu.org wrote:

 The behavior is undefined if I remember correctly: an error is not
 guaranteed by the standard.  I think Guilev2 will produce an error, but
 LilyPond is still at Guilev1.

OK, thanks!

-David

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


Re: Aleatoric / modern notation

2012-12-11 Thread David Nalesnik
On Sat, Dec 8, 2012 at 7:21 PM, David Nalesnik david.nales...@gmail.com wrote:

[...]


 Trying to work out the problem, I've done a little rewriting so I'll
 include the engraver here.  You can just substitute this in the
 problematic file.


Well, I did break something.  Here's the fix:

frameEngraver =
#(lambda (context)
  (let ((span '())
(stub '())
(event-drul (cons '() '(
(make-engraver
  (listeners ((frame-event engraver event)
  (if (= START (ly:event-property event 'span-direction))
  (set-car! event-drul event)
  (begin
(set-cdr! event-drul event)
(set-car! event-drul '())
  (acknowledgers
((note-column-interface engraver grob source-engraver)
 (if (ly:spanner? span)
 (begin
   (ly:pointer-group-interface::add-grob span 'elements grob)
   (add-bound-item span grob)))
 (if (ly:item? stub)
 (ly:pointer-group-interface::add-grob stub 'elements grob)))
((script-interface engraver grob source-engraver)
 (if (ly:spanner? span)
 (ly:pointer-group-interface::add-grob span 'elements grob))
 (if (ly:item? stub)
 (ly:pointer-group-interface::add-grob stub 'elements grob)))
((dynamic-interface engraver grob source-engraver)
 (if (ly:spanner? span)
 (ly:pointer-group-interface::add-grob span 'elements grob))
 (if (ly:item? stub)
 (ly:pointer-group-interface::add-grob stub 'elements grob)))
((inline-accidental-interface engraver grob source-engraver)
 (if (ly:spanner? span)
 (ly:pointer-group-interface::add-grob span 'elements grob))
 (if (ly:item? stub)
 (ly:pointer-group-interface::add-grob stub 'elements grob

  ((process-music trans)
   (if (ly:stream-event? (car event-drul))
   (begin
 (set! span (ly:engraver-make-grob trans 'Frame (car event-drul)))
 (set! stub (ly:engraver-make-grob trans 'FrameStub (car
event-drul)))
 (ly:grob-set-object! stub 'frame span)
 (ly:grob-set-property! stub 'direction LEFT)
 (set-car! event-drul '(
   (if (ly:stream-event? (cdr event-drul))
   (if (null? span)
   (ly:warning No start to this box.)
   (begin
 (set! stub (ly:engraver-make-grob trans 'FrameStub
(cdr event-drul)))
 (ly:grob-set-property! stub 'direction RIGHT)
 (ly:grob-set-object! stub 'frame span)
 (ly:engraver-announce-end-grob trans span (cdr event-drul))

  ((stop-translation-timestep trans)
   (if (ly:stream-event? (cdr event-drul))
   (begin
 (set! span '())
 (set-cdr! event-drul '(
   (set! stub '())

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


Re: Aleatoric / modern notation

2012-12-10 Thread David Nalesnik
David,

On Sun, Dec 9, 2012 at 12:34 AM, David Kastrup d...@gnu.org wrote:
 David Nalesnik david.nales...@gmail.com writes:

 It turns out that the my definition of event-drul as '(() . ()) was
 the problem.  I substituted (cons '() '()) and everything works just
 fine...even with the file that gave you the issues with multiple
 staves.  I don't understand why '(() . ()) and (cons '() '()) aren't
 equivalent.

 The problem is rather that '(() . ()) is equivalent, like eq?, with
 itself.  It is a constant, meaning that on a second run, the _same_ cons
 cell is being used as in the first run, even if you changed its car and
 cdr in the mean time.

 (cons '() '()) allocates a new cons cell for every run.  '() itself is
 not a pair and so it is immutable and not susceptible to this problem.


Thank you for this explanation.  I've searched around for more
information about Scheme constants, and learned that an error message
ought to be returned when applying set-car! and the like to a
constant.  However, using the guile sandbox I'm able to do this:

guile (define my-constant-pair '(73 . 88))
guile (set-car! my-constant-pair 3)
guile my-constant-pair
(3 . 88)

(I'm trying an example given here:
http://jayreynoldsfreeman.com/Aux/Tutorials/Modifying%20Lists.html)

I don't understand this--because clearly using set-car! and set-cdr!
with a constant led to problems within the engraver; why will the
sandbox allow me to do this?

-David

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


Re: Aleatoric / modern notation

2012-12-10 Thread David Kastrup
David Nalesnik david.nales...@gmail.com writes:

 (I'm trying an example given here:
 http://jayreynoldsfreeman.com/Aux/Tutorials/Modifying%20Lists.html)

 I don't understand this--because clearly using set-car! and set-cdr!
 with a constant led to problems within the engraver; why will the
 sandbox allow me to do this?

The behavior is undefined if I remember correctly: an error is not
guaranteed by the standard.  I think Guilev2 will produce an error, but
LilyPond is still at Guilev1.

-- 
David Kastrup

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


Re: Aleatoric / modern notation

2012-12-08 Thread David Nalesnik
Hi Jeffrey,

I'm copying this to the list since I myself am not sure about something here.

On Sat, Dec 8, 2012 at 5:13 AM, Jeffrey Trevino
jeffrey.trevi...@gmail.com wrote:
 Hi David,

 Thanks for revising this more for me. I really appreciate your efforts, and
 I will take a look at this asap and write back. For my learning, could you
 please explain what exactly you changed between versions 4 and 5 that got it
 working in parallel?


Well, I must say that I was a bit mystified by this, and I don't
understand why the original form wouldn't work on multiple staves.

I spent a good deal of time trying to figure out the sequence of the
various methods within the engraver--i.e., when is process-music
called in relation to listeners and acknowledgers.  The order
these methods appear is not necessarily the order in which they are
called in a timestep, and a method may be called more than once within
a single timestep--process-music, for example.  You have to understand
the sequence to know what information you have to work with at any
given time.  (For example, process-music will be called in a timestep
before any grobs are acknowledged and afterwards as well.  Trying to
work with grobs that aren't there yet necessitates some sort of check,
so you don't get errors.)

I don't see any problem with the engraver here.

I did notice something which I can't account for.  You'll notice that
`frameEngraver4.ly' uses a variable event-drul.  When a frame-event
is heard (created by \frameStart/\frameEnd), that event is stored in
this variable.  I then use the contents of this variable to determine
what to do: start a frame, end a frame, create a stub (for spacing) at
the beginning, create a stub at the end.

This doesn't work here, and I don't know why.  The version of the
engraver I last sent you substitutes a system of setting variables
called stop? and go? to control the steps.  It works.  BUT... when
you substitute the earlier method, it doesn't work. I've attached this
simple substitution so you can see what I mean. (The ignoring weird
minimum distance stems from the fact that a FrameStub has nothing in
its 'elements array--it should contain the last grobs within the
frame--this info is used for assessing its dimensions).

[If anyone reading this knows how to get the event-storing method how
to work, please let me know.  This seems to be a better technique.]

I hope this is useful...

-David


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


Re: Aleatoric / modern notation

2012-12-08 Thread David Nalesnik
Hi again,

On Sat, Dec 8, 2012 at 7:21 AM, David Nalesnik david.nales...@gmail.com wrote:
 Hi Jeffrey,

 I'm copying this to the list since I myself am not sure about something here.

 On Sat, Dec 8, 2012 at 5:13 AM, Jeffrey Trevino
 jeffrey.trevi...@gmail.com wrote:
 Hi David,

 Thanks for revising this more for me. I really appreciate your efforts, and
 I will take a look at this asap and write back. For my learning, could you
 please explain what exactly you changed between versions 4 and 5 that got it
 working in parallel?


 Well, I must say that I was a bit mystified by this, and I don't
 understand why the original form wouldn't work on multiple staves.


[snip]


 I did notice something which I can't account for.  You'll notice that
 `frameEngraver4.ly' uses a variable event-drul.


It turns out that the my definition of event-drul as '(() . ()) was
the problem.  I substituted (cons '() '()) and everything works just
fine...even with the file that gave you the issues with multiple
staves.  I don't understand why '(() . ()) and (cons '() '()) aren't
equivalent.

Trying to work out the problem, I've done a little rewriting so I'll
include the engraver here.  You can just substitute this in the
problematic file.

frameEngraver =
#(lambda (context)
  (let ((span '())
(stub '())
(event-drul (cons '() '(
(make-engraver
  (listeners ((frame-event engraver event)
  (if (= START (ly:event-property event 'span-direction))
  (set-car! event-drul event)
  (begin
(set-cdr! event-drul event)
(set-car! event-drul '())
  (acknowledgers
((note-column-interface engraver grob source-engraver)
 (if (ly:spanner? span)
 (begin
   (ly:pointer-group-interface::add-grob span 'elements grob)
   (add-bound-item span grob)))
 (if (ly:item? stub)
 (ly:pointer-group-interface::add-grob stub 'elements grob)))
((script-interface engraver grob source-engraver)
 (if (ly:spanner? span)
 (ly:pointer-group-interface::add-grob span 'elements grob))
 (if (ly:item? stub)
 (ly:pointer-group-interface::add-grob stub 'elements grob)))
((dynamic-interface engraver grob source-engraver)
 (if (ly:spanner? span)
 (ly:pointer-group-interface::add-grob span 'elements grob))
 (if (ly:item? stub)
 (ly:pointer-group-interface::add-grob stub 'elements grob)))
((inline-accidental-interface engraver grob source-engraver)
 (if (ly:spanner? span)
 (ly:pointer-group-interface::add-grob span 'elements grob))
 (if (ly:item? stub)
 (ly:pointer-group-interface::add-grob stub 'elements grob

  ((process-music trans)
   (if (ly:stream-event? (car event-drul))
   (begin
 (set! span (ly:engraver-make-grob trans 'Frame (car event-drul)))
 (set! stub (ly:engraver-make-grob trans 'FrameStub (car
event-drul)))
 (ly:grob-set-object! stub 'frame span)
 (ly:grob-set-property! stub 'direction LEFT)
 (set-car! event-drul '(
   (if (ly:stream-event? (cdr event-drul))
   (if (null? span)
   (ly:warning No start to this box.)
   (begin
 (set! stub (ly:engraver-make-grob trans 'FrameStub
(cdr event-drul)))
 (ly:grob-set-property! stub 'direction RIGHT)
 (ly:grob-set-object! stub 'frame span)
 (ly:engraver-announce-end-grob trans span (cdr event-drul))
 (set-cdr! event-drul '())

  ((stop-translation-timestep trans)
   (set! stub '())

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


Re: Aleatoric / modern notation

2012-12-07 Thread David Nalesnik
Hi Jeffrey,

On Thu, Dec 6, 2012 at 3:44 PM, Jeffrey Trevino
jeffrey.trevi...@gmail.com wrote:
 Hi all,

 Could someone please take a look at the latest scheme code in this thread
 and figure out how we can use this frame engraver construct on multiple
 staffs in the same score simultaneously? It's pretty important for preceding
 in my work, and I can't figure out how to get it working.

Sorry to leave you hanging--I haven't had much time to devote to
LilyPond recently.

I've got the engraver working so you can have independent frames on
separate staves.  I haven't been able to test it very much, so do let
me know if it looks like I've broken something.

There's several issues that I do know about, however.

The first is that the extender lines will push barlines out of the
way.  I suppose you could set the 'X-extent of any BarLine you want to
cross to '(+inf.0 . -inf.0) as I did in the example in
`frameEngraver4.ly'.  Here I removed the BarLine engraver.  I suppose
you could work with very large bars if you want barlines in some
places,  Let me know if you find a technique that works here.

The second issue is that you have to experiment with the extender
lengths to get the right values.

Anyway, HTH!

-David


frameEngraver5.ly
Description: Binary data
attachment: frameEngraver5.png___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Aleatoric / modern notation

2012-12-06 Thread Jeffrey Trevino
Hi all,

Could someone please take a look at the latest scheme code in this thread
and figure out how we can use this frame engraver construct on multiple
staffs in the same score simultaneously? It's pretty important for
preceding in my work, and I can't figure out how to get it working.

thank you,
Jeff

On Sun, Nov 25, 2012 at 5:19 PM, David Nalesnik david.nales...@gmail.comwrote:

 Hi Jeffrey,

 On Sat, Nov 24, 2012 at 11:47 AM, Jeffrey Trevino
 jeffrey.trevi...@gmail.com wrote:
  Hi David,
 
  Yes, I think it's reasonable to confine the frame to a single line, even
  though the arrow must be breakable.
 
  I'm also having problems using the construct on parallel staffs within a
  score. It works fine for a single staff, but when I try to use the same
  construct on two staffs simultaneously, I get, 
 
  warning: No start to this box.
  Preprocessing graphical objects...frameEngraver4.ly:124:23: In procedure
  ly:grob-property in expression (ly:grob-property frame (quote
  padding)):frameEngraver4.ly:124:23: Wrong type argument in position 1
  (expecting Grob): ()
 
  
 
  I don't know how the Scheme is working here, so maybe you can try out
 two of
  these in parallel and let me know if it's working for you.
 

 Nope, I get the same error...  Argh!  I'm not sure why this is
 happening.  As soon as I get some time, I'll need to go over the
 engraver with a fine-toothed comb.  I know how to approach the issue
 of the broken extender line, but I want to make sure I'm working from
 a sound base first.

 -David

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


Re: Aleatoric / modern notation

2012-11-25 Thread David Nalesnik
Hi Jeffrey,

On Sat, Nov 24, 2012 at 11:47 AM, Jeffrey Trevino
jeffrey.trevi...@gmail.com wrote:
 Hi David,

 Yes, I think it's reasonable to confine the frame to a single line, even
 though the arrow must be breakable.

 I'm also having problems using the construct on parallel staffs within a
 score. It works fine for a single staff, but when I try to use the same
 construct on two staffs simultaneously, I get, 

 warning: No start to this box.
 Preprocessing graphical objects...frameEngraver4.ly:124:23: In procedure
 ly:grob-property in expression (ly:grob-property frame (quote
 padding)):frameEngraver4.ly:124:23: Wrong type argument in position 1
 (expecting Grob): ()

 

 I don't know how the Scheme is working here, so maybe you can try out two of
 these in parallel and let me know if it's working for you.


Nope, I get the same error...  Argh!  I'm not sure why this is
happening.  As soon as I get some time, I'll need to go over the
engraver with a fine-toothed comb.  I know how to approach the issue
of the broken extender line, but I want to make sure I'm working from
a sound base first.

-David

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


Re: Aleatoric / modern notation

2012-11-24 Thread Jeffrey Trevino
Hi there,

The box construct from this thread is working fine on my machine, but I'd
like to know how to add one important feature to it: It's currently the
case that the arrow isn't breakable, i. e. if the box's entire duration
exceeds the graphic space of the first line, the arrow stops on the first
line and you end up with a bunch of blank space on the second line. How can
the arrow break and continue on the second line? I know that many spanners
have a breakable attribute -- maybe there's a straightforward way to add
this ability to the box's arrow?

best,
Jeff

On Thu, Nov 15, 2012 at 2:10 PM, David Nalesnik david.nales...@gmail.comwrote:

 Hi Jeffrey,

 On Wed, Nov 14, 2012 at 1:05 AM, Jeffrey Trevino
 jeffrey.trevi...@gmail.com wrote:
  Hi David,
 
  This is a very help description. Maybe you could describe for me: I see
 both
  the box duration as a spacer duration and the line duration as extender
  length, in what seem to be unitless units.

 The way it's set up now, the extender length is measured in staff-spaces.

 
  Here is an addition -- although I'm not sure if it's an improvement --
 that
  might be important in some cases: It seems that it would be helpful to
  describe the line length of the arrow in terms of spacers if possible, to
  more easily describe the duration occupied by the entire frame construct.

 Yes, that's a good idea.  I don't like having to fiddle with numbers
 to get it to look right.

  Likewise, I would like to be able to draw a bracket over the frame's
 graphic
  duration, with a note duration or series of tied durations above the
  bracket, centered, to indicate the duration of the frame clearly. I don't
  know how this would work; maybe it would be possible to use a bracket
  spanner and then enter durations?

 This would be doable, but I think markup would be the way to go here.
 That way, you can specify the duration in clock time (which I've done
 when I've used this sort of notation).

 One concern I have here stems from the fact that frame notation isn't
 standardized, and there are many variants: there's no way everybody's
 favorite notation could be accommodated.  As one example, putting a
 box around the notes isn't the only way it's done: I have in front of
 me a piece by Bruce Saylor which puts an ellipse around the notes.  So
 I think the only workable approach is to offer some bare-bones
 implementation.  For more idiosyncratic notations, I guess the answer
 is to turn to Inkscape and the like.

 (In any case, I'd like to get something basic working first before
 adding frills.)

 -David




-- 
《〠》】〶【〖〠〗〶〛〷〚
Jeff Treviño
PhD Candidate in Music Composition
@ the University of California, San Diego
〖〠〗〶〛〷〚《〠》】〶
Skype: jeffreytrevino
E-mail: jeffrey.trev...@gmail.com
〚《〠》】〶【〖〠〗〶〛〷
9310H Redwood Dr.
La Jolla, CA 92037
USA
〖〠〗〶〛〷〚《〠》】〶【
http://www.jeffreytrevino.com/
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Aleatoric / modern notation

2012-11-24 Thread David Nalesnik
Hi Jeffrey,

On Sat, Nov 24, 2012 at 9:58 AM, Jeffrey Trevino
jeffrey.trevi...@gmail.com wrote:
 Hi there,

 The box construct from this thread is working fine on my machine, but I'd
 like to know how to add one important feature to it: It's currently the case
 that the arrow isn't breakable, i. e. if the box's entire duration exceeds
 the graphic space of the first line, the arrow stops on the first line and
 you end up with a bunch of blank space on the second line. How can the arrow
 break and continue on the second line? I know that many spanners have a
 breakable attribute -- maybe there's a straightforward way to add this
 ability to the box's arrow?

Yes, this is something which could be added.  It's a problem I've been
aware of and wanted to fix.  (The issue at the moment is having the
time to do it now that the end of the semester is here!

The extender line certainly should have this capability, but I'm in
doubt about the frame itself.  Would it make sense to insist that the
frame be confined to a single line?

-David

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


Re: Aleatoric / modern notation

2012-11-24 Thread Jeffrey Trevino
Hi David,

Yes, I think it's reasonable to confine the frame to a single line, even
though the arrow must be breakable.

I'm also having problems using the construct on parallel staffs within a
score. It works fine for a single staff, but when I try to use the same
construct on two staffs simultaneously, I get, 

warning: No start to this box.
Preprocessing graphical objects...frameEngraver4.ly:124:23: In procedure
ly:grob-property in expression (ly:grob-property frame (quote
padding)):frameEngraver4.ly:124:23: Wrong type argument in position 1
(expecting Grob): ()



I don't know how the Scheme is working here, so maybe you can try out two
of these in parallel and let me know if it's working for you.

best,
Jeff

On Sat, Nov 24, 2012 at 8:10 AM, David Nalesnik david.nales...@gmail.comwrote:

 Hi Jeffrey,

 On Sat, Nov 24, 2012 at 9:58 AM, Jeffrey Trevino
 jeffrey.trevi...@gmail.com wrote:
  Hi there,
 
  The box construct from this thread is working fine on my machine, but I'd
  like to know how to add one important feature to it: It's currently the
 case
  that the arrow isn't breakable, i. e. if the box's entire duration
 exceeds
  the graphic space of the first line, the arrow stops on the first line
 and
  you end up with a bunch of blank space on the second line. How can the
 arrow
  break and continue on the second line? I know that many spanners have a
  breakable attribute -- maybe there's a straightforward way to add this
  ability to the box's arrow?

 Yes, this is something which could be added.  It's a problem I've been
 aware of and wanted to fix.  (The issue at the moment is having the
 time to do it now that the end of the semester is here!

 The extender line certainly should have this capability, but I'm in
 doubt about the frame itself.  Would it make sense to insist that the
 frame be confined to a single line?

 -David




-- 
《〠》】〶【〖〠〗〶〛〷〚
Jeff Treviño
PhD Candidate in Music Composition
@ the University of California, San Diego
〖〠〗〶〛〷〚《〠》】〶
Skype: jeffreytrevino
E-mail: jeffrey.trev...@gmail.com
〚《〠》】〶【〖〠〗〶〛〷
9310H Redwood Dr.
La Jolla, CA 92037
USA
〖〠〗〶〛〷〚《〠》】〶【
http://www.jeffreytrevino.com/
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Aleatoric / modern notation

2012-11-15 Thread David Nalesnik
Hi Jeffrey,

On Wed, Nov 14, 2012 at 1:05 AM, Jeffrey Trevino
jeffrey.trevi...@gmail.com wrote:
 Hi David,

 This is a very help description. Maybe you could describe for me: I see both
 the box duration as a spacer duration and the line duration as extender
 length, in what seem to be unitless units.

The way it's set up now, the extender length is measured in staff-spaces.


 Here is an addition -- although I'm not sure if it's an improvement -- that
 might be important in some cases: It seems that it would be helpful to
 describe the line length of the arrow in terms of spacers if possible, to
 more easily describe the duration occupied by the entire frame construct.

Yes, that's a good idea.  I don't like having to fiddle with numbers
to get it to look right.

 Likewise, I would like to be able to draw a bracket over the frame's graphic
 duration, with a note duration or series of tied durations above the
 bracket, centered, to indicate the duration of the frame clearly. I don't
 know how this would work; maybe it would be possible to use a bracket
 spanner and then enter durations?

This would be doable, but I think markup would be the way to go here.
That way, you can specify the duration in clock time (which I've done
when I've used this sort of notation).

One concern I have here stems from the fact that frame notation isn't
standardized, and there are many variants: there's no way everybody's
favorite notation could be accommodated.  As one example, putting a
box around the notes isn't the only way it's done: I have in front of
me a piece by Bruce Saylor which puts an ellipse around the notes.  So
I think the only workable approach is to offer some bare-bones
implementation.  For more idiosyncratic notations, I guess the answer
is to turn to Inkscape and the like.

(In any case, I'd like to get something basic working first before
adding frills.)

-David

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


Re: Aleatoric / modern notation

2012-11-14 Thread SoundsFromSound
David:

That was exactly what I was hoping for - absolutely! Thank you so much, it
totally makes sense now.  More and more I keep seeing just how powerful
LilyPond can be - it's scary sometimes!

(but always in a good way lol)

Thanks again,
Ben



David Nalesnik-2 wrote
 Hi Ben,
 
 On Tue, Nov 13, 2012 at 8:46 PM, SoundsFromSound
 lt;

 soundsfromsound@

 gt; wrote:
 I'm trying to wrap my head around the frameEngraver4 and can't quite
 grasp
 the syntax and how to customize the code to suit my needs.

 Is there a guide or cheat-sheet that explains how to use frameEngraver to
 it's fullest potential?  I feel like it's a bit over my head and I feel
 lost
 when trying to make sense of it.

 Thanks for any feedback.

 
 Well, there's no guide or cheat-sheet, but I can give you a brief run
 through--which amounts to what you see in the example at the bottom.
 Basically,  you include the engraver as I do in the \layout block..
 Then, you surround the notes in your frame with \frameStart and
 \frameEnd.  You control the length of the line-with-arrow by
 overriding the property 'extender-length.  This line unfortunately
 won't cross a bar line unless you override the barline's X-extent to
 '(+inf.0 . -inf.0) -- i.e., so it has no X-extent at all.  (This is
 one of the issues I'll have to look into.)
 
 There's not much customization that's possible at the moment.  It
 would be relatively easy to add a property to control the height of
 the extender-line relative to the box (right now it's always
 centered), and I'll see about doing that.  I'll need to add a
 provision for controlling the width of the box.  The implementation
 here is pretty rudimentary--just designed to get something working.
 
 As I say, I'll need to look at some scores to see the kinds of
 customizations which are desirable.  If you have any ideas, please let
 me know.
 
 Most of what's in this file (anything above the example) might be
 tucked away into a file which you include to cut down on the mess.
 
 Hope this is helpful--
 David
 
 ___
 lilypond-user mailing list

 lilypond-user@

 https://lists.gnu.org/mailman/listinfo/lilypond-user





-
composer | sound designer
--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Aleatoric-modern-notation-tp18113p136369.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: Aleatoric / modern notation

2012-11-13 Thread Jeffrey Trevino
Whoa --

It's marvelous to see such a detailed response to my question.

Most importantly, frameEngraver4 works! I will study the differences
between 3 and 4 to see what changed.

As mentioned, it seems to me that the best course of action would be to
make dynamic spanner creation a high development priority and an expected
user interaction: Custom notational constructs like these have been around
for half a century or so, and it would be especially welcoming to
contemporary composers if the system were to facilitate them with some kind
of interface.

If this can't happen, I'm grateful to have threads like these to
perpetually modify my contemporary music spanners at each new release.

thank you for your attention,
Jeff

On Mon, Nov 12, 2012 at 11:33 PM, David Kastrup d...@gnu.org wrote:

 Janek Warchoł janek.lilyp...@gmail.com writes:

  - you can pay one of the experienced developers to implement
  specifically this feature.  But that would probably be expensive, as
  programming work is expensive in general.  You'll probably need to
  find several other people willing to pay for this.
 
  I'm confused, I thought David was a developer - no?
 
  Yes, he is.  Our most active one at the moment.
 
  You said paying him would not be a likely path to seeing
  this boxed notation implemented further, but rather just to help
 LilyPond
  in general, progress as software.
 
  It depends.  You can add $10/month to the general David fund, just
  to enable David working on LilyPond in general (that's continouous
  financial support).  Or you can negotiate a specific contract with him
  - or someone else - where you'd give that person a significantly
  bigger amount of money once and he'd implement something specific
  (that's hiring a programmer to implement a feature).

 There is also David Nalesnik who has been the one doing the previous
 implementation IIRC.

 The situation with me is that LilyPond users and developers are keeping
 me financially afloat with the understanding that I spend my available
 time on improving LilyPond according to what I consider best at the
 moment.

 Since I am excellent at programming and awful at self-discipline, this
 arrangement tends to deliver quite better value for the money than
 actually hiring me for more specific tasks.  And if I got stuck on more
 specific tasks, that would be to the detriment of the people who are
 already contributing to my costs of living.

 So we are in the somewhat absurd situation that people tend to recommend
 my services in order to improve my finances, but that I actually don't
 feel like I can in good conscience offer to do non-trivial side jobs
 that can cause me to deadlock for longer times.

 --
 David Kastrup


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




-- 
《〠》】〶【〖〠〗〶〛〷〚
Jeff Treviño
PhD Candidate in Music Composition
@ the University of California, San Diego
〖〠〗〶〛〷〚《〠》】〶
Skype: jeffreytrevino
E-mail: jeffrey.trev...@gmail.com
〚《〠》】〶【〖〠〗〶〛〷
9310H Redwood Dr.
La Jolla, CA 92037
USA
〖〠〗〶〛〷〚《〠》】〶【
http://www.jeffreytrevino.com/
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Aleatoric / modern notation

2012-11-13 Thread SoundsFromSound
I'm trying to wrap my head around the frameEngraver4 and can't quite grasp
the syntax and how to customize the code to suit my needs.  

Is there a guide or cheat-sheet that explains how to use frameEngraver to
it's fullest potential?  I feel like it's a bit over my head and I feel lost
when trying to make sense of it.  

Thanks for any feedback.

Ben


Whoa --

It's marvelous to see such a detailed response to my question.

Most importantly, frameEngraver4 works! I will study the differences
between 3 and 4 to see what changed.

As mentioned, it seems to me that the best course of action would be to
make dynamic spanner creation a high development priority and an expected
user interaction: Custom notational constructs like these have been around
for half a century or so, and it would be especially welcoming to
contemporary composers if the system were to facilitate them with some kind
of interface.

If this can't happen, I'm grateful to have threads like these to
perpetually modify my contemporary music spanners at each new release.

thank you for your attention,
Jeff

On Mon, Nov 12, 2012 at 11:33 PM, David Kastrup lt;dak@gt; wrote:

 Janek Warchoł lt;janek.lilypond@gt; writes:

  - you can pay one of the experienced developers to implement
  specifically this feature.  But that would probably be expensive, as
  programming work is expensive in general.  You'll probably need to
  find several other people willing to pay for this.
 
  I'm confused, I thought David was a developer - no?
 
  Yes, he is.  Our most active one at the moment.
 
  You said paying him would not be a likely path to seeing
  this boxed notation implemented further, but rather just to help
 LilyPond
  in general, progress as software.
 
  It depends.  You can add $10/month to the general David fund, just
  to enable David working on LilyPond in general (that's continouous
  financial support).  Or you can negotiate a specific contract with him
  - or someone else - where you'd give that person a significantly
  bigger amount of money once and he'd implement something specific
  (that's hiring a programmer to implement a feature).

 There is also David Nalesnik who has been the one doing the previous
 implementation IIRC.

 The situation with me is that LilyPond users and developers are keeping
 me financially afloat with the understanding that I spend my available
 time on improving LilyPond according to what I consider best at the
 moment.

 Since I am excellent at programming and awful at self-discipline, this
 arrangement tends to deliver quite better value for the money than
 actually hiring me for more specific tasks.  And if I got stuck on more
 specific tasks, that would be to the detriment of the people who are
 already contributing to my costs of living.

 So we are in the somewhat absurd situation that people tend to recommend
 my services in order to improve my finances, but that I actually don't
 feel like I can in good conscience offer to do non-trivial side jobs
 that can cause me to deadlock for longer times.

 --
 David Kastrup


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





-
composer | sound designer
--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Aleatoric-modern-notation-tp18113p136361.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: Aleatoric / modern notation

2012-11-13 Thread David Nalesnik
Hi Ben,

On Tue, Nov 13, 2012 at 8:46 PM, SoundsFromSound
soundsfromso...@gmail.com wrote:
 I'm trying to wrap my head around the frameEngraver4 and can't quite grasp
 the syntax and how to customize the code to suit my needs.

 Is there a guide or cheat-sheet that explains how to use frameEngraver to
 it's fullest potential?  I feel like it's a bit over my head and I feel lost
 when trying to make sense of it.

 Thanks for any feedback.


Well, there's no guide or cheat-sheet, but I can give you a brief run
through--which amounts to what you see in the example at the bottom.
Basically,  you include the engraver as I do in the \layout block..
Then, you surround the notes in your frame with \frameStart and
\frameEnd.  You control the length of the line-with-arrow by
overriding the property 'extender-length.  This line unfortunately
won't cross a bar line unless you override the barline's X-extent to
'(+inf.0 . -inf.0) -- i.e., so it has no X-extent at all.  (This is
one of the issues I'll have to look into.)

There's not much customization that's possible at the moment.  It
would be relatively easy to add a property to control the height of
the extender-line relative to the box (right now it's always
centered), and I'll see about doing that.  I'll need to add a
provision for controlling the width of the box.  The implementation
here is pretty rudimentary--just designed to get something working.

As I say, I'll need to look at some scores to see the kinds of
customizations which are desirable.  If you have any ideas, please let
me know.

Most of what's in this file (anything above the example) might be
tucked away into a file which you include to cut down on the mess.

Hope this is helpful--
David

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


Re: Aleatoric / modern notation

2012-11-13 Thread Jeffrey Trevino
Hi David,

This is a very help description. Maybe you could describe for me: I see
both the box duration as a spacer duration and the line duration as
extender length, in what seem to be unitless units.

Here is an addition -- although I'm not sure if it's an improvement -- that
might be important in some cases: It seems that it would be helpful to
describe the line length of the arrow in terms of spacers if possible, to
more easily describe the duration occupied by the entire frame construct.
Likewise, I would like to be able to draw a bracket over the frame's
graphic duration, with a note duration or series of tied durations above
the bracket, centered, to indicate the duration of the frame clearly. I
don't know how this would work; maybe it would be possible to use a bracket
spanner and then enter durations?

thank you for your help,
Jeff

On Wed, Nov 14, 2012 at 4:58 AM, David Nalesnik david.nales...@gmail.comwrote:

 Hi Ben,

 On Tue, Nov 13, 2012 at 8:46 PM, SoundsFromSound
 soundsfromso...@gmail.com wrote:
  I'm trying to wrap my head around the frameEngraver4 and can't quite
 grasp
  the syntax and how to customize the code to suit my needs.
 
  Is there a guide or cheat-sheet that explains how to use frameEngraver to
  it's fullest potential?  I feel like it's a bit over my head and I feel
 lost
  when trying to make sense of it.
 
  Thanks for any feedback.
 

 Well, there's no guide or cheat-sheet, but I can give you a brief run
 through--which amounts to what you see in the example at the bottom.
 Basically,  you include the engraver as I do in the \layout block..
 Then, you surround the notes in your frame with \frameStart and
 \frameEnd.  You control the length of the line-with-arrow by
 overriding the property 'extender-length.  This line unfortunately
 won't cross a bar line unless you override the barline's X-extent to
 '(+inf.0 . -inf.0) -- i.e., so it has no X-extent at all.  (This is
 one of the issues I'll have to look into.)

 There's not much customization that's possible at the moment.  It
 would be relatively easy to add a property to control the height of
 the extender-line relative to the box (right now it's always
 centered), and I'll see about doing that.  I'll need to add a
 provision for controlling the width of the box.  The implementation
 here is pretty rudimentary--just designed to get something working.

 As I say, I'll need to look at some scores to see the kinds of
 customizations which are desirable.  If you have any ideas, please let
 me know.

 Most of what's in this file (anything above the example) might be
 tucked away into a file which you include to cut down on the mess.

 Hope this is helpful--
 David

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




-- 
《〠》】〶【〖〠〗〶〛〷〚
Jeff Treviño
PhD Candidate in Music Composition
@ the University of California, San Diego
〖〠〗〶〛〷〚《〠》】〶
Skype: jeffreytrevino
E-mail: jeffrey.trev...@gmail.com
〚《〠》】〶【〖〠〗〶〛〷
9310H Redwood Dr.
La Jolla, CA 92037
USA
〖〠〗〶〛〷〚《〠》】〶【
http://www.jeffreytrevino.com/
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Aleatoric / modern notation

2012-11-12 Thread Janek Warchoł
On Mon, Nov 12, 2012 at 1:25 AM, SoundsFromSound
soundsfromso...@gmail.com wrote:
 I'll keep you posted for sure.  Say, do you suppose that this boxed notation
 utility could be implemented sooner (and perhaps with more powerful
 features) in LilyPond if funding/support increased?

Well, i think the situation is like this:
- increasing continouous financial support (e.g. for David) has a
positive effect on lily development in general, but i think that the
difference wrt/ boxed notation itself wouldn't be noticeable (i.e.
don't expect that if you give more money to David Kastrup he'll go and
implement this soon),
- contributing to Lily yourself (i.e. writing code, or documentation,
or helping with organizing things - you don't have to be a programmer
to help) also has a positive effect on lily development in general,
but the difference wrt/ implementing boxed notation won't be
noticeable unless you start working on boxed notation itself,
- you can pay one of the experienced developers to implement
specifically this feature.  But that would probably be expensive, as
programming work is expensive in general.  You'll probably need to
find several other people willing to pay for this.

cheers,
Janek

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


Re: Aleatoric / modern notation

2012-11-12 Thread SoundsFromSound
(see below)


Janek Warchoł-2 wrote
 On Mon, Nov 12, 2012 at 1:25 AM, SoundsFromSound
 lt;

 soundsfromsound@

 gt; wrote:
 I'll keep you posted for sure.  Say, do you suppose that this boxed
 notation
 utility could be implemented sooner (and perhaps with more powerful
 features) in LilyPond if funding/support increased?
 
 Well, i think the situation is like this:
 - increasing continouous financial support (e.g. for David) has a
 positive effect on lily development in general, but i think that the
 difference wrt/ boxed notation itself wouldn't be noticeable (i.e.
 don't expect that if you give more money to David Kastrup he'll go and
 implement this soon),
 
 I see.
 
 - contributing to Lily yourself (i.e. writing code, or documentation,
 or helping with organizing things - you don't have to be a programmer
 to help) also has a positive effect on lily development in general,
 but the difference wrt/ implementing boxed notation won't be
 noticeable unless you start working on boxed notation itself,
 
 I wish I could contribute more to the notation programming itself but
 I'm not a strong programmer (unless you count OOP like MaxMSP, etc) -
 so that really isn't an option for me.
 
 
 - you can pay one of the experienced developers to implement
 specifically this feature.  But that would probably be expensive, as
 programming work is expensive in general.  You'll probably need to
 find several other people willing to pay for this.
 
 I'm confused, I thought David 
/
 was 
/
 a developer - no? You said paying him would not be a likely path to seeing
 this boxed notation implemented further, but rather just to help LilyPond
 in general, progress as software.
 
 How would one go about getting an estimate with regards to requests like
 this one? Thank you for clarifying this for me, because up until this
 point, I thought the boxed notation situation was in its current state
 because it simply was not possible (from a coding standpoint or something)
 - not a matter of time/funding/desire for modern notation possibilities.
 
 Thanks!
 
 Ben
 
 
 cheers,
 Janek
 
 ___
 lilypond-user mailing list

 lilypond-user@

 https://lists.gnu.org/mailman/listinfo/lilypond-user





-
composer | sound designer
--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Aleatoric-modern-notation-tp18113p136304.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: Aleatoric / modern notation

2012-11-12 Thread Janek Warchoł
Hi,

you seem to use some very strange quotation style.  Please use regular
quotation style (i.e. your text without  marks, each quotation level
has one  more).

On Mon, Nov 12, 2012 at 8:44 PM, SoundsFromSound
soundsfromso...@gmail.com wrote:

 Janek Warchoł-2 wrote
 - contributing to Lily yourself (i.e. writing code, or documentation,
 or helping with organizing things - you don't have to be a programmer
 to help) also has a positive effect on lily development in general,
 but the difference wrt/ implementing boxed notation won't be
 noticeable unless you start working on boxed notation itself,

 I wish I could contribute more to the notation programming itself but
 I'm not a strong programmer (unless you count OOP like MaxMSP, etc) -
 so that really isn't an option for me.

as i've said, there are tasks not involving programming.  And they do
make a difference.

 - you can pay one of the experienced developers to implement
 specifically this feature.  But that would probably be expensive, as
 programming work is expensive in general.  You'll probably need to
 find several other people willing to pay for this.

 I'm confused, I thought David was a developer - no?

Yes, he is.  Our most active one at the moment.

 You said paying him would not be a likely path to seeing
 this boxed notation implemented further, but rather just to help LilyPond
 in general, progress as software.

It depends.  You can add $10/month to the general David fund, just
to enable David working on LilyPond in general (that's continouous
financial support).  Or you can negotiate a specific contract with him
- or someone else - where you'd give that person a significantly
bigger amount of money once and he'd implement something specific
(that's hiring a programmer to implement a feature).

 How would one go about getting an estimate with regards to requests like
 this one?

No idea.  I don't know how much work this feature would require.  A
wild guess would be something between 5 and 50 hours for an
experienced programmer.  Considering appropriate programmer salaries,
that means anywhere between $200 and $3000.
But my estimate could just as well be totally wrong right from the start.

 Thank you for clarifying this for me, because up until this
 point, I thought the boxed notation situation was in its current state
 because it simply was not possible (from a coding standpoint or something)
 - not a matter of time/funding/desire for modern notation possibilities.

Well, almost everything is possible when you have enough money.  If
someone would give us a million dollars, we would hire a dozen
experienced programmers for a year and after that time LilyPond would
become a completely different project, possibly overcoming many
present problems (and inventing new ones ;P).  Do you have a
millionaire friend, perchance?

best,
Janek

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


Re: Aleatoric / modern notation

2012-11-12 Thread SoundsFromSound

Hi,

you seem to use some very strange quotation style.  Please use regular
quotation style (i.e. your text without  marks, each quotation level
has one  more).

Sorry, the device I was on must have auto-corrected-added an additional
character. ()

Weird.

-Ben



-
composer | sound designer
--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Aleatoric-modern-notation-tp18113p136312.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: Aleatoric / modern notation

2012-11-12 Thread David Nalesnik
On Mon, Nov 12, 2012 at 2:20 PM, Janek Warchoł janek.lilyp...@gmail.com wrote:
 Hi,

 you seem to use some very strange quotation style.  Please use regular
 quotation style (i.e. your text without  marks, each quotation level
 has one  more).

 On Mon, Nov 12, 2012 at 8:44 PM, SoundsFromSound
 soundsfromso...@gmail.com wrote:

 Janek Warchoł-2 wrote

 - you can pay one of the experienced developers to implement
 specifically this feature.  But that would probably be expensive, as
 programming work is expensive in general.  You'll probably need to
 find several other people willing to pay for this.

 I'm confused, I thought David was a developer - no?

 Yes, he is.  Our most active one at the moment.

 You said paying him would not be a likely path to seeing
 this boxed notation implemented further, but rather just to help LilyPond
 in general, progress as software.

 It depends.  You can add $10/month to the general David fund, just
 to enable David working on LilyPond in general (that's continouous
 financial support).  Or you can negotiate a specific contract with him
 - or someone else - where you'd give that person a significantly
 bigger amount of money once and he'd implement something specific
 (that's hiring a programmer to implement a feature).

I think that there's some confusion between the Davids here...  Janek
is speaking of David Kastrup.  The author of the file under discussion
is me, David Nalesnik, with generous contributions from Mike Solomon.


 Thank you for clarifying this for me, because up until this
 point, I thought the boxed notation situation was in its current state
 because it simply was not possible (from a coding standpoint or something)
 - not a matter of time/funding/desire for modern notation possibilities.

It should be possible to get frame notation into LilyPond.  In fact, I
could quickly convert the file into a patch.  However, I'd like to get
it right.  There is much testing/improving/study of examples in
published scores to be done.  (Provision has to be made for a frame
extending across a line break, for one thing.)

You could of course hire somebody to get this expedited, but I'm happy
to work on this further, bounty or no.

Best,
David

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


Re: Aleatoric / modern notation

2012-11-12 Thread David Kastrup
Janek Warchoł janek.lilyp...@gmail.com writes:

 - you can pay one of the experienced developers to implement
 specifically this feature.  But that would probably be expensive, as
 programming work is expensive in general.  You'll probably need to
 find several other people willing to pay for this.

 I'm confused, I thought David was a developer - no?

 Yes, he is.  Our most active one at the moment.

 You said paying him would not be a likely path to seeing
 this boxed notation implemented further, but rather just to help LilyPond
 in general, progress as software.

 It depends.  You can add $10/month to the general David fund, just
 to enable David working on LilyPond in general (that's continouous
 financial support).  Or you can negotiate a specific contract with him
 - or someone else - where you'd give that person a significantly
 bigger amount of money once and he'd implement something specific
 (that's hiring a programmer to implement a feature).

There is also David Nalesnik who has been the one doing the previous
implementation IIRC.

The situation with me is that LilyPond users and developers are keeping
me financially afloat with the understanding that I spend my available
time on improving LilyPond according to what I consider best at the
moment.

Since I am excellent at programming and awful at self-discipline, this
arrangement tends to deliver quite better value for the money than
actually hiring me for more specific tasks.  And if I got stuck on more
specific tasks, that would be to the detriment of the people who are
already contributing to my costs of living.

So we are in the somewhat absurd situation that people tend to recommend
my services in order to improve my finances, but that I actually don't
feel like I can in good conscience offer to do non-trivial side jobs
that can cause me to deadlock for longer times.

-- 
David Kastrup


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


Re: Aleatoric / modern notation

2012-11-11 Thread David Nalesnik
Ben,

On Sat, Nov 10, 2012 at 9:53 PM, SoundsFromSound
soundsfromso...@gmail.com wrote:
 David:

 I see, thanks for clarifying that for me.  So, in your opinion, if I wanted
 to use these aleatoric boxes on a few scores here and there, that would be
 doable - though not ideal, it would /work/- correct? I wouldn't ever need
 this type of notation on anything of a larger scale.

I think that if you're using it on single files (and not, say, with
lilypond-book), there shouldn't be a problem.  At least I haven't
noticed anything untoward.  But understand that the way the new grob
is built up with its new properties and event-class and such is not
done in a sound way.  There is currently no proper user interface for
doing this sort of thing in an .ly file.  When there is one, parts of
this file will need to be rewritten (as happened in the situation that
brought you to the list, which came about because of a step in the
direction of this new-grob-with-all-the-fixings interface made by
David Kastrup).


 I ask because in future scores I'll have to do something similar to this and
 want to make sure I don't corrupt my dear LilyPond install :)

No, the files are safe!

-David

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


Re: Aleatoric / modern notation

2012-11-11 Thread SoundsFromSound
David,

Thanks for the feedback! It's sad to hear that boxed notation is a bit
challenging in LilyPond (i.e. not possible without breaking parts of it) -
do you think there will ever be a native, more acceptable way to do boxed
notation in the future?  I'm not much a programmer so I apologize if that is
a silly question, but it'd be awesome if it could be implemented.  I'm not
sure if you mean it's not possible yet, or not possible from a programming
standpoint.

Thanks,
Ben


David Nalesnik-2 wrote
 Ben,
 
 On Sat, Nov 10, 2012 at 9:53 PM, SoundsFromSound
 lt;

 soundsfromsound@

 gt; wrote:
 David:

 I see, thanks for clarifying that for me.  So, in your opinion, if I
 wanted
 to use these aleatoric boxes on a few scores here and there, that would
 be
 doable - though not ideal, it would /work/- correct? I wouldn't ever need
 this type of notation on anything of a larger scale.
 
 I think that if you're using it on single files (and not, say, with
 lilypond-book), there shouldn't be a problem.  At least I haven't
 noticed anything untoward.  But understand that the way the new grob
 is built up with its new properties and event-class and such is not
 done in a sound way.  
*
 There is currently no proper user interface for
 doing this sort of thing in an .ly file. 
*
  When there is one, parts of
 this file will need to be rewritten (as happened in the situation that
 brought you to the list, which came about because of a step in the
 direction of this new-grob-with-all-the-fixings interface made by
 David Kastrup).
 

 I ask because in future scores I'll have to do something similar to this
 and
 want to make sure I don't corrupt my dear LilyPond install :)
 
 No, the files are safe!
 
 -David
 
 ___
 lilypond-user mailing list

 lilypond-user@

 https://lists.gnu.org/mailman/listinfo/lilypond-user





-
composer | sound designer
--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Aleatoric-modern-notation-tp18113p136229.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: Aleatoric / modern notation

2012-11-11 Thread David Nalesnik
Ben,

On Sun, Nov 11, 2012 at 4:27 PM, SoundsFromSound
soundsfromso...@gmail.com wrote:
 David,

 Thanks for the feedback! It's sad to hear that boxed notation is a bit
 challenging in LilyPond (i.e. not possible without breaking parts of it) -
 do you think there will ever be a native, more acceptable way to do boxed
 notation in the future?  I'm not much a programmer so I apologize if that is
 a silly question, but it'd be awesome if it could be implemented.  I'm not
 sure if you mean it's not possible yet, or not possible from a programming
 standpoint.


At some point in time, I do hope that there is an interface which will
allow users to define fully functioning grobs within .ly files.  I
think that will be a giant step forward for the program, as it will
lead to all sorts of new capabilities. I can't speak to the details of
how this will be done as this is beyond my skill level.

The current way to create new grobs is to make the necessary additions
to the various files in the code base.  (This is what was done
recently to create the MeasureCounter grob.)

It should be possible to add frame notation this way, but I think it
will be a long road!  (If you do use this engraver, please let me know
if you run into problems or wish it could do something it can't; I'll
be happy to try to improve it, and possibly do this the right way if
it's promising...)

Best,
David

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


Re: Aleatoric / modern notation

2012-11-11 Thread SoundsFromSound
David:

I'll keep you posted for sure.  Say, do you suppose that this boxed notation
utility could be implemented sooner (and perhaps with more powerful
features) in LilyPond if funding/support increased?  If so, this is one
feature where I'd absolutely give all that I could to make possible. :) $

Ben



David Nalesnik-2 wrote
 Ben,
 
 On Sun, Nov 11, 2012 at 4:27 PM, SoundsFromSound
 lt;

 soundsfromsound@

 gt; wrote:
 David,

 Thanks for the feedback! It's sad to hear that boxed notation is a bit
 challenging in LilyPond (i.e. not possible without breaking parts of
 it) -
 do you think there will ever be a native, more acceptable way to do boxed
 notation in the future?  I'm not much a programmer so I apologize if that
 is
 a silly question, but it'd be awesome if it could be implemented.  I'm
 not
 sure if you mean it's not possible yet, or not possible from a
 programming
 standpoint.

 
 At some point in time, I do hope that there is an interface which will
 allow users to define fully functioning grobs within .ly files.  I
 think that will be a giant step forward for the program, as it will
 lead to all sorts of new capabilities. I can't speak to the details of
 how this will be done as this is beyond my skill level.
 
 The current way to create new grobs is to make the necessary additions
 to the various files in the code base.  (This is what was done
 recently to create the MeasureCounter grob.)
 
 It should be possible to add frame notation this way, but I think it
 will be a long road!  (If you do use this engraver, please let me know
 if you run into problems or wish it could do something it can't; I'll
 be happy to try to improve it, and possibly do this the right way if
 it's promising...)
 
 Best,
 David
 
 ___
 lilypond-user mailing list

 lilypond-user@

 https://lists.gnu.org/mailman/listinfo/lilypond-user





-
composer | sound designer
--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Aleatoric-modern-notation-tp18113p136248.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: Aleatoric / modern notation

2012-11-10 Thread David Nalesnik
Hi Jeffrey,

On Sat, Nov 10, 2012 at 12:42 AM, David Kastrup d...@gnu.org wrote:
 Jeffrey Trevino jeffrey.trevi...@gmail.com writes:

 Hi all,

 I'm trying to get the frameEngraver3.ly code from this aleatoric
 notation thread going on Lilypond 2.16.0-1, and I get the following
 errors:

 GNU LilyPond 2.16.0
 Processing `frameEngraver.ly'
 Parsing...
 frameEngraver.ly:27:1: error: GUILE signaled an error for the
 expression beginning here
 #
 (define-event-class 'frame-event
 Unbound variable: define-event-class

 The code contains

 %% based on regression test `scheme-text-spanner.ly'
 %% Thanks, Mike

 That regression test tampered with internals of LilyPond in a manner
 that broke session integrity (any changes propagated to further files
 processed on the command line).  It likely still does.  The internals
 changed in the mean time.

 It was probably a mistake to ever include this regtest.  It just gives
 people bad ideas.

 --
 David Kastrup


It is possible to get this working with 2.16 on up.  You just need to
rewrite a few things after the changes done to the regression test on
which the file is based.

I'm attaching a revision of the file which won't raise the errors you
saw, but it is not a solution to the problems that David Kastrup
mentions.

Best,
David N.


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


Re: Aleatoric / modern notation

2012-11-10 Thread David Nalesnik
 On Sat, Nov 10, 2012 at 12:42 AM, David Kastrup d...@gnu.org wrote:

 That regression test tampered with internals of LilyPond in a manner
 that broke session integrity (any changes propagated to further files
 processed on the command line).  It likely still does.  The internals
 changed in the mean time.

As a demonstration of the bleed-over between files processed on the
command line, the following file (let's say named
`frameEngraver4test.ly') will process without error if run with
'frameEngraver4.ly' on the command line:

lilypond frameEngraver4 frameEngraver4test.ly

The file:

\version 2.17.6

frameStart =
#(make-span-event 'FrameEvent START)

frameEnd =
#(make-span-event 'FrameEvent STOP)

\relative c'' {
  \override Stem #'transparent = ##t
  \override Beam #'transparent = ##t
  \once \override Frame #'extender-length = #8
  \frameStart dis'8[ e f \frameEnd ges] s2
  \once \override Frame #'extender-length = #11
  \frameStart d,8[ e f \frameEnd g] s2
  \once \override Staff.BarLine #'X-extent = #'(+inf.0 . -inf.0) %
line can cross bar line
  s2
  \once \override Frame #'extender-length = #3.5
  \frameStart fis'8[ bes,, aes, \frameEnd e'']
}

\layout {
  \context {
\Global
\grobdescriptions #my-grob-descriptions
#my-event-classes
  }
  \context {
\Voice
\consists \frameEngraver
  }
}

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


Re: Aleatoric / modern notation

2012-11-10 Thread SoundsFromSound




-
composer | sound designer
--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Aleatoric-modern-notation-tp18113p136168.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: Aleatoric / modern notation

2012-11-10 Thread SoundsFromSound
Hi David,

I'm a little confused.  What problems was David talking about, I didn't
follow.  So we shouldn't use this boxed notation approach, or we should but
with caveats?

Thanks,
Ben




 That regression test tampered with internals of LilyPond in a manner
 that broke session integrity (any changes propagated to further files
 processed on the command line).  It likely still does.  The internals
 changed in the mean time.

 It was probably a mistake to ever include this regtest.  It just gives
 people bad ideas.

 --
 David Kastrup


It is possible to get this working with 2.16 on up.  You just need to
rewrite a few things after the changes done to the regression test on
which the file is based.

I'm attaching a revision of the file which won't raise the errors you
saw, but it is not a solution to the problems that David Kastrup
mentions.

Best,
David N.

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


frameEngraver4.ly (13K)
lt;http://lilypond.1069038.n5.nabble.com/attachment/136166/0/frameEngraver4.lygt;





-
composer | sound designer
--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Aleatoric-modern-notation-tp18113p136170.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: Aleatoric / modern notation

2012-11-10 Thread David Nalesnik
Hi Ben,

On Sat, Nov 10, 2012 at 9:00 PM, SoundsFromSound
soundsfromso...@gmail.com wrote:
 Hi David,

 I'm a little confused.  What problems was David talking about, I didn't
 follow.  So we shouldn't use this boxed notation approach, or we should but
 with caveats?


As I understand it, the issue is that the file changes the internals,
so there is a bleed-over between files processed together on the
command line (as the example I just provided demonstrates).

My take is that you could use it with caveats.   You could use it only
when processing files singly, or in batches (but check if there is
anything unexpected in output).

-David

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


Re: Aleatoric / modern notation

2012-11-10 Thread SoundsFromSound
David:

I see, thanks for clarifying that for me.  So, in your opinion, if I wanted
to use these aleatoric boxes on a few scores here and there, that would be
doable - though not ideal, it would /work/- correct? I wouldn't ever need
this type of notation on anything of a larger scale.

I ask because in future scores I'll have to do something similar to this and
want to make sure I don't corrupt my dear LilyPond install :)

Thanks,
Ben



David Nalesnik-2 wrote
 Hi Ben,
 
 On Sat, Nov 10, 2012 at 9:00 PM, SoundsFromSound
 lt;

 soundsfromsound@

 gt; wrote:
 Hi David,

 I'm a little confused.  What problems was David talking about, I didn't
 follow.  So we shouldn't use this boxed notation approach, or we should
 but
 with caveats?

 
 As I understand it, the issue is that the file changes the internals,
 so there is a bleed-over between files processed together on the
 command line (as the example I just provided demonstrates).
 
 My take is that you could use it with caveats.   You could use it only
 when processing files singly, or in batches (but check if there is
 anything unexpected in output).
 
 -David
 
 ___
 lilypond-user mailing list

 lilypond-user@

 https://lists.gnu.org/mailman/listinfo/lilypond-user





-
composer | sound designer
--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Aleatoric-modern-notation-tp18113p136172.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: Aleatoric / modern notation

2012-11-10 Thread David Kastrup
SoundsFromSound soundsfromso...@gmail.com writes:

 Hi David,

 I'm a little confused.  What problems was David talking about, I didn't
 follow.  So we shouldn't use this boxed notation approach, or we should but
 with caveats?

One shouldn't

a) tamper with internals
b) expect the tampering to remain working in future versions

Mike took some code that was _not_ made a public interface because it
was not able to work according to the expectations of a public interface
(namely that using it in one user-level file will not affect other,
independent files), copied it and made a public interface from it.

Now of course this does not work reliably in a multi-file scenario, and
since it does not work reliably, whenever there _will_ be a public
interface for that kind of thing, it will _necessarily_ have different
interfaces.

So the approach was broken, and it was _guaranteed_ to stop working the
moment the underlying implementation was changed to something less
broken.

-- 
David Kastrup


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


Re: Aleatoric / modern notation

2012-11-09 Thread Jeffrey Trevino
Hi all,

I'm trying to get the frameEngraver3.ly code from this aleatoric notation
thread going on Lilypond 2.16.0-1, and I get the following errors:

GNU LilyPond 2.16.0
Processing `frameEngraver.ly'
Parsing...
frameEngraver.ly:27:1: error: GUILE signaled an error for the expression
beginning here
#
 (define-event-class 'frame-event
Unbound variable: define-event-class
Interpreting music...
frameEngraver.ly:209:48: warning: Event class should be a list
  \once \override Frame #'right-extra-padding =
#0
frameEngraver.ly:210:23: warning: Event class should be a list
  \frameStart dis'8[ e
   f \frameEnd ges] s2
frameEngraver.ly:212:44: warning: Event class should be a list
  \once \override Frame #'extender-length =
#12
frameEngraver.ly:213:22: warning: Event class should be a list
  \frameStart d,,8[ e
  f \frameEnd g] s2
frameEngraver.ly:215:44: warning: Event class should be a list
  \once \override Frame #'extender-length =
#3.5
frameEngraver.ly:216:23: warning: Event class should be a list
  \frameStart f'8[ aes
   g \frameEnd bes] s4
Preprocessing graphical objects...
Finding the ideal number of pages...
Fitting music on 1 page...
Drawing systems...
Layout output to `frameEngraver.ps'...
Converting to `./frameEngraver.pdf'...
fatal error: failed files: frameEngraver.ly

I can't code in Scheme, and I've yet to find any tutorial in the Lilypond
docs that would get me to this level of Scheme integration with Lilypond.
But it seems to be the case that it throws an error once for a scheme
function and again because of expected typing. Since a subsequent (relative
to the message to which frameEngraver3.ly was attached) message in the
thread recommended revision to frameEngraver3.ly, specifically the addition
of \frameStart command marks after the frame's first pitch, I've attached
my copy of the file to make it clear which code exactly has generated these
errors.

This might be a good scheme lesson for me, right here, come to think of it.
I've got LISP, so maybe I'm not as far as I think.

best,
Jeff


On Tue, Mar 13, 2012 at 9:33 AM, David Nalesnik david.nales...@gmail.comwrote:

 Hi Mike,

 Excellent work!


 I'm glad you think so!



 I've attached a new file that addresses some of the issues you identify
 above:

 --) It uses axis-group::width to box accidentals


 Beautiful!  Now there's really no need for the extra padding properties.
  (I've kept them in the attached file, but combined them into a single
 property which takes a pair = 'extra-padding.)


 --) It creates a FrameStub grob to occupy the horizontal space that a
 frame line takes up (note that I don't know if this actually works - I'm
 not sure how to test it - but at least it doesn't crash!).  Whenever you
 have a spanner that somehow occupies horizontal space at its bounds, you
 can create stub grobs that approximate this space.  This technique also
 works for items that, for whatever reason, have heights that are difficult
 to approximate (see SpanBarStub and StemStub, for example).


 This works great for spacing on the left side.  It wasn't working on the
 right, so I added 'extender-length in (plus a slight correction accounting
 for arrow-length, etc., which should be fairly easy to calculate). Now it
 will push everything forward nicely.

 One thing I've noticed, though, is that the line will not cross a bar
 line.  If I increase the length of the extender, the bar line is simply
 pushed to the right.  I figured out one way around this--namely, setting
 the X-extent of the bar line to (+inf.0 . -inf.0), which is what I do in
 the attached file. Of course this has other consequences.  Is there any
 other way?

 --) It gets rid of some dead or unused code.


 Thank you very much for your improvements and explanations--I think I've
 learned quite a bit!

 Best,
 David


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




-- 
《〠》】〶【〖〠〗〶〛〷〚
Jeff Treviño
PhD Candidate in Music Composition
@ the University of California, San Diego
〖〠〗〶〛〷〚《〠》】〶
Skype: jeffreytrevino
E-mail: jeffrey.trev...@gmail.com
〚《〠》】〶【〖〠〗〶〛〷
9310H Redwood Dr.
La Jolla, CA 92037
USA
〖〠〗〶〛〷〚《〠》】〶【
http://www.jeffreytrevino.com/


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


Re: Aleatoric / modern notation

2012-11-09 Thread SoundsFromSound
Jeff:

I actually just found myself having that same exact problem tonight as well. 
My error says:

Event class should be a list... 

...just the way you mention it for your score.  I'm not sure how to proceed,
but I just wanted to let you know that it's not just you.  And I too am not
very comfortable with Scheme.

I'm sure someone will help with this! :)

Ben



Hi all,

I'm trying to get the frameEngraver3.ly code from this aleatoric notation
thread going on Lilypond 2.16.0-1, and I get the following errors:

GNU LilyPond 2.16.0
Processing `frameEngraver.ly'
Parsing...
frameEngraver.ly:27:1: error: GUILE signaled an error for the expression
beginning here
#
 (define-event-class 'frame-event
Unbound variable: define-event-class
Interpreting music...
frameEngraver.ly:209:48: warning: Event class should be a list
  \once \override Frame #'right-extra-padding =
#0
frameEngraver.ly:210:23: warning: Event class should be a list
  \frameStart dis'8[ e
   f \frameEnd ges] s2
frameEngraver.ly:212:44: warning: Event class should be a list
  \once \override Frame #'extender-length =
#12
...etc



-
composer | sound designer
--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Aleatoric-modern-notation-tp18113p136120.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: Aleatoric / modern notation

2012-11-09 Thread David Kastrup
Jeffrey Trevino jeffrey.trevi...@gmail.com writes:

 Hi all,

 I'm trying to get the frameEngraver3.ly code from this aleatoric
 notation thread going on Lilypond 2.16.0-1, and I get the following
 errors:

 GNU LilyPond 2.16.0
 Processing `frameEngraver.ly'
 Parsing...
 frameEngraver.ly:27:1: error: GUILE signaled an error for the
 expression beginning here
 #
 (define-event-class 'frame-event
 Unbound variable: define-event-class

The code contains

%% based on regression test `scheme-text-spanner.ly'
%% Thanks, Mike

That regression test tampered with internals of LilyPond in a manner
that broke session integrity (any changes propagated to further files
processed on the command line).  It likely still does.  The internals
changed in the mean time.

It was probably a mistake to ever include this regtest.  It just gives
people bad ideas.

-- 
David Kastrup


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


Re: Aleatoric / modern notation

2012-03-27 Thread David Kastrup
David Nalesnik david.nales...@gmail.com writes:

 Hi Mike,

 Excellent work!


 I'm glad you think so!
  


 I've attached a new file that addresses some of the issues you
 identify above:
 
 --) It uses axis-group::width to box accidentals
 

 Beautiful!  Now there's really no need for the extra padding
 properties.  (I've kept them in the attached file, but combined them
 into a single property which takes a pair = 'extra-padding.)

There is quite a bit of code duplication of internals of LilyPond, and
likely one of the reasons that the respective functions did not have a
public interface is just that it changes LilyPond for the rest of its
lifetime, even when it is run on multiple files (like as part of
lilypond-book).

-- 
David Kastrup


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


Re: Aleatoric / modern notation

2012-03-26 Thread Siska Ádám
Hi developers,

On 2012.03.13., at 17:33, David Nalesnik wrote:

 Hi Mike,
 
 Excellent work!
 
 
 I'm glad you think so!
 
 
 
 I've attached a new file that addresses some of the issues you identify
 above:
 
 --) It uses axis-group::width to box accidentals
 
 
 Beautiful!  Now there's really no need for the extra padding properties.
 (I've kept them in the attached file, but combined them into a single
 property which takes a pair = 'extra-padding.)
 
 
 --) It creates a FrameStub grob to occupy the horizontal space that a
 frame line takes up (note that I don't know if this actually works - I'm
 not sure how to test it - but at least it doesn't crash!).  Whenever you
 have a spanner that somehow occupies horizontal space at its bounds, you
 can create stub grobs that approximate this space.  This technique also
 works for items that, for whatever reason, have heights that are difficult
 to approximate (see SpanBarStub and StemStub, for example).
 
 
 This works great for spacing on the left side.  It wasn't working on the
 right, so I added 'extender-length in (plus a slight correction accounting
 for arrow-length, etc., which should be fairly easy to calculate). Now it
 will push everything forward nicely.
 
 One thing I've noticed, though, is that the line will not cross a bar line.
 If I increase the length of the extender, the bar line is simply pushed to
 the right.  I figured out one way around this--namely, setting the X-extent
 of the bar line to (+inf.0 . -inf.0), which is what I do in the attached
 file. Of course this has other consequences.  Is there any other way?
 
 --) It gets rid of some dead or unused code.
 
 
 Thank you very much for your improvements and explanations--I think I've
 learned quite a bit!
 
 Best,
 David


I tried to use the frame engraver of this thread, but I was unable to do so. 
I'm constantly getting 'syntax error, unexpected EVENT_IDENTIFIER' errors and 
the LilyPond compiler won't recognize the \frameStart and \frameEnd commands. 
The only thing I changed was the version number itself, as I'm using the stable 
version (2.14.2). Do you have any idea what the problem could be? Or is this 
code using some specific feature of 2.15?


Thanks,
Ádám



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


Re: Aleatoric / modern notation

2012-03-26 Thread David Nalesnik
Hi Ádám,


 I tried to use the frame engraver of this thread, but I was unable to do
 so. I'm constantly getting 'syntax error, unexpected EVENT_IDENTIFIER'
 errors and the LilyPond compiler won't recognize the \frameStart and
 \frameEnd commands. The only thing I changed was the version number itself,
 as I'm using the stable version (2.14.2). Do you have any idea what the
 problem could be? Or is this code using some specific feature of 2.15?


I can't explain the difference in behavior, but with 2.14.2 you need to put
\frameEnd and \frameStart after the note.  So, the following can be
substituted into the file attached earlier in this thread:

\relative c'' {
  \override Stem #'transparent = ##t
  \override Beam #'transparent = ##t
  \once \override Frame #'extender-length = #8
   dis'8[ \frameStart e f  ges] \frameEnd s2
  \once \override Frame #'extender-length = #11
   d,8[ \frameStart e f  g] \frameEnd s2
  \once \override Staff.BarLine #'X-extent = #'(+inf.0 . -inf.0) % line can
cross bar line
  s2
  \once \override Frame #'extender-length = #3.5
   fis'8[ \frameStart bes,, aes, e''] \frameEnd
}

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


Re: Aleatoric / modern notation

2012-03-26 Thread Siska Ádám
Hi David,

On 2012.03.26., at 23:05, David Nalesnik wrote:

 Hi Ádám,
 
 
 I tried to use the frame engraver of this thread, but I was unable to do
 so. I'm constantly getting 'syntax error, unexpected EVENT_IDENTIFIER'
 errors and the LilyPond compiler won't recognize the \frameStart and
 \frameEnd commands. The only thing I changed was the version number itself,
 as I'm using the stable version (2.14.2). Do you have any idea what the
 problem could be? Or is this code using some specific feature of 2.15?
 
 
 I can't explain the difference in behavior, but with 2.14.2 you need to put
 \frameEnd and \frameStart after the note.  So, the following can be
 substituted into the file attached earlier in this thread:
 
 \relative c'' {
  \override Stem #'transparent = ##t
  \override Beam #'transparent = ##t
  \once \override Frame #'extender-length = #8
   dis'8[ \frameStart e f  ges] \frameEnd s2
  \once \override Frame #'extender-length = #11
   d,8[ \frameStart e f  g] \frameEnd s2
  \once \override Staff.BarLine #'X-extent = #'(+inf.0 . -inf.0) % line can
 cross bar line
  s2
  \once \override Frame #'extender-length = #3.5
   fis'8[ \frameStart bes,, aes, e''] \frameEnd
 }
 
 -David


Thanks A LOT!!! For this, and for the frame itself as well.


Best,
Ádám


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


Re: Aleatoric / modern notation

2012-03-20 Thread David Nalesnik
Hi James,

BTW, I didn't mention before, but it looks like I'm going to be using that
 feathered-beam function, derived from work by David, and this box-notation
 function, also coming from David's work.


Oh, I just helped out a bit with that one--thanks definitely go to Harm.



 So David -- I guess I owe you a beer or three, or something.


Glad this works for you--let me know if you run into any problems.

Virtual beer(s) gladly accepted!

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


Re: Aleatoric / modern notation

2012-03-17 Thread James Harkins
At Tue, 13 Mar 2012 11:33:30 -0500,
David Nalesnik wrote:
 Hi Mike,
 
 Excellent work!
 
 I'm glad you think so!

BTW, I didn't mention before, but it looks like I'm going to be using that 
feathered-beam function, derived from work by David, and this box-notation 
function, also coming from David's work.

So David -- I guess I owe you a beer or three, or something.

Thanks!
James


--
James Harkins /// dewdrop world
jamshar...@dewdrop-world.net
http://www.dewdrop-world.net

Come said the Muse,
Sing me a song no poet has yet chanted,
Sing me the universal.  -- Whitman

blog: http://www.dewdrop-world.net/words
audio clips: http://www.dewdrop-world.net/audio
more audio: http://soundcloud.com/dewdrop_world/tracks

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


Re: Aleatoric / modern notation

2012-03-13 Thread m...@apollinemike.com
On Mar 13, 2012, at 4:25 AM, David Nalesnik wrote:

 I've defined a grob, Frame, and given it several properties.  One of these, 
 'padding, adds space between the frame and its contents, as you would expect. 
  The length of the continuation line is controlled by the property 
 'extender-length.  Then, there's 'extra-left-padding and 
 'extra-right-padding.  These last are there to correct a shortcoming: I can't 
 think of an artful way to accomodate an accidental before the first note of a 
 group so there isn't a collision.
 
 Another problem is that the horizontal spacing doesn't adapt to the frame.  I 
 suppose this comes from the fact that I've hijacked a TextSpanner, so that 
 collisions are reckoned with outside staff objects.  Is there anything I can 
 do about this?
 

Excellent work!

I've attached a new file that addresses some of the issues you identify above:

--) It uses axis-group::width to box accidentals
--) It creates a FrameStub grob to occupy the horizontal space that a frame 
line takes up (note that I don't know if this actually works - I'm not sure how 
to test it - but at least it doesn't crash!).  Whenever you have a spanner that 
somehow occupies horizontal space at its bounds, you can create stub grobs that 
approximate this space.  This technique also works for items that, for whatever 
reason, have heights that are difficult to approximate (see SpanBarStub and 
StemStub, for example).
--) It gets rid of some dead or unused code.

Cheers,
MS


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


Re: Aleatoric / modern notation

2012-03-13 Thread David Nalesnik
Hi Mike,

Excellent work!


I'm glad you think so!



 I've attached a new file that addresses some of the issues you identify
 above:

 --) It uses axis-group::width to box accidentals


Beautiful!  Now there's really no need for the extra padding properties.
 (I've kept them in the attached file, but combined them into a single
property which takes a pair = 'extra-padding.)


 --) It creates a FrameStub grob to occupy the horizontal space that a
 frame line takes up (note that I don't know if this actually works - I'm
 not sure how to test it - but at least it doesn't crash!).  Whenever you
 have a spanner that somehow occupies horizontal space at its bounds, you
 can create stub grobs that approximate this space.  This technique also
 works for items that, for whatever reason, have heights that are difficult
 to approximate (see SpanBarStub and StemStub, for example).


This works great for spacing on the left side.  It wasn't working on the
right, so I added 'extender-length in (plus a slight correction accounting
for arrow-length, etc., which should be fairly easy to calculate). Now it
will push everything forward nicely.

One thing I've noticed, though, is that the line will not cross a bar line.
 If I increase the length of the extender, the bar line is simply pushed to
the right.  I figured out one way around this--namely, setting the X-extent
of the bar line to (+inf.0 . -inf.0), which is what I do in the attached
file. Of course this has other consequences.  Is there any other way?

--) It gets rid of some dead or unused code.


Thank you very much for your improvements and explanations--I think I've
learned quite a bit!

Best,
David


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


Re: Aleatoric / modern notation

2012-03-12 Thread David Nalesnik
Hi,

On Sun, Mar 11, 2012 at 3:18 AM, m...@apollinemike.com 
m...@apollinemike.com wrote:


 On Mar 11, 2012, at 8:53 AM, James Harkins wrote:

  At Sun, 11 Mar 2012 08:12:35 +0100,
  m...@apollinemike.com wrote:
  The best way to achieve that with current LilyPond is Scheme engravers.
 
  There have been a few examples of Scheme engravers posted on this list
 (if you search Scheme engraver you'll find one - there are also examples in
 the input/regression folder of the LilyPond source).  You'd want to create
 one that begins and ends a spanner when it hears a given event (you can
 invent a BoxNoteEvent, for example) and acknowledges note columns in the
 interim, putting them in a grob-array called note-columns or
 what-have-you.  Then, make a print method that extracts these note columns
 (or whatever grobs you're interested in) finds the min/max height and
 width, and draws a box at those dimensions.
 
  If you want to get fancy, you can add extra spacing width to the left
 of the first note column and the right of the last note column to make sure
 there are no collisions with the box and surrounding material.
 
  I see... would it be too much to ask you to send your engraver to me
 (off list if you prefer)? That's of course assuming you developed one for
 your own music. Normally I don't mind doing some research and
 experimentation on my own, but in this case --
 

 Unfortunately, the way I created mine was way hackish and not at all
 extensible, intelligent, or suitable to your needs (I hijacked a beam grob).
 The best thing to do is go ahead w/ the score as if it were to have boxes
 and then put something like :

 c d
 %\startBoxedNotes
 e f g
 %\endBoxedNotes

 wherever you need it.  There are enough people on this list who know
 Scheme that someone is likely to pop up w/ a more fleshed-out solution in
 the next 6 weeks, and if not, in 6 weeks (if not less), I'll have some time
 to give it a go.


Awhile ago, I worked a little on an engraver which would add boxes to
groups of notes (and include articulations and dynamics as well).  I gave
up on it, but decided to revive it in response to this thread.  I hope what
I've come up with will prove useful for frame notation.

I've defined a grob, Frame, and given it several properties.  One of these,
'padding, adds space between the frame and its contents, as you would
expect.  The length of the continuation line is controlled by the property
'extender-length.  Then, there's 'extra-left-padding and
'extra-right-padding.  These last are there to correct a shortcoming: I
can't think of an artful way to accomodate an accidental before the first
note of a group so there isn't a collision.

Another problem is that the horizontal spacing doesn't adapt to the frame.
 I suppose this comes from the fact that I've hijacked a TextSpanner, so
that collisions are reckoned with outside staff objects.  Is there anything
I can do about this?

This is all very rough, but perhaps it can serve as a starting point.  Any
suggestions for improvement are welcome!

HTH,
David


frameEngraver.ly
Description: Binary data
attachment: frameEngraver.png___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Aleatoric / modern notation

2012-03-11 Thread Carl Sorensen
On 3/11/12 12:53 AM, James Harkins jamshar...@gmail.com wrote:

At Sun, 11 Mar 2012 08:12:35 +0100,
m...@apollinemike.com wrote:
 The best way to achieve that with current LilyPond is Scheme engravers.
 
 There have been a few examples of Scheme engravers posted on this list
(if you search Scheme engraver you'll find one - there are also examples
in the input/regression folder of the LilyPond source).  You'd want to
create one that begins and ends a spanner when it hears a given event
(you can invent a BoxNoteEvent, for example) and acknowledges note
columns in the interim, putting them in a grob-array called
note-columns or what-have-you.  Then, make a print method that
extracts these note columns (or whatever grobs you're interested in)
finds the min/max height and width, and draws a box at those dimensions.
 
 If you want to get fancy, you can add extra spacing width to the left
of the first note column and the right of the last note column to make
sure there are no collisions with the box and surrounding material.

I see... would it be too much to ask you to send your engraver to me (off
list if you prefer)? That's of course assuming you developed one for your
own music. Normally I don't mind doing some research and experimentation
on my own, but in this case --

You might offer a bounty to Mike or to David Kastrup, in which case they
would write the custom engraver for you.

HTH,

Carl


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


Re: Aleatoric / modern notation

2012-03-11 Thread m...@apollinemike.com
On Mar 11, 2012, at 5:33 AM, James Harkins wrote:

 Possibly a common question, sorry if asked and answered before, but Google 
 failed me...
 
 I'm considering some aleatoric notation (so-called box notation) for a 
 piece but couldn't find info in the manuals (the contemporary notation 
 section of the 2.14.2 docs @ lilypond.org is empty), or in the LSR, or Google 
 searches to find out how to realize it.
 
 By box notation I mean collections of gestures/phrases, enclosed in a box, 
 with an arrow indicating to keep doing that until the arrow stops. The 
 phrases could use normal rhythmic notation or proportional notation without 
 stems/flags.
 
 Some time ago, somebody posted a link to Mike Solomon's granini di luce 
 beccucciati da uccelli di silenzio as an example of contemporary notation. 
 The attached pic from it illustrates more-or-less what I'm after (though I 
 wouldn't need the slash).
 
 Thanks!
 James
 

Hey James,

The best way to achieve that with current LilyPond is Scheme engravers.

There have been a few examples of Scheme engravers posted on this list (if you 
search Scheme engraver you'll find one - there are also examples in the 
input/regression folder of the LilyPond source).  You'd want to create one that 
begins and ends a spanner when it hears a given event (you can invent a 
BoxNoteEvent, for example) and acknowledges note columns in the interim, 
putting them in a grob-array called note-columns or what-have-you.  Then, 
make a print method that extracts these note columns (or whatever grobs you're 
interested in) finds the min/max height and width, and draws a box at those 
dimensions.

If you want to get fancy, you can add extra spacing width to the left of the 
first note column and the right of the last note column to make sure there are 
no collisions with the box and surrounding material.

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


Re: Aleatoric / modern notation

2012-03-11 Thread m...@apollinemike.com

On Mar 11, 2012, at 8:53 AM, James Harkins wrote:

 At Sun, 11 Mar 2012 08:12:35 +0100,
 m...@apollinemike.com wrote:
 The best way to achieve that with current LilyPond is Scheme engravers.
 
 There have been a few examples of Scheme engravers posted on this list (if 
 you search Scheme engraver you'll find one - there are also examples in the 
 input/regression folder of the LilyPond source).  You'd want to create one 
 that begins and ends a spanner when it hears a given event (you can invent a 
 BoxNoteEvent, for example) and acknowledges note columns in the interim, 
 putting them in a grob-array called note-columns or what-have-you.  Then, 
 make a print method that extracts these note columns (or whatever grobs 
 you're interested in) finds the min/max height and width, and draws a box at 
 those dimensions.
 
 If you want to get fancy, you can add extra spacing width to the left of the 
 first note column and the right of the last note column to make sure there 
 are no collisions with the box and surrounding material.
 
 I see... would it be too much to ask you to send your engraver to me (off 
 list if you prefer)? That's of course assuming you developed one for your own 
 music. Normally I don't mind doing some research and experimentation on my 
 own, but in this case --
 

Unfortunately, the way I created mine was way hackish and not at all 
extensible, intelligent, or suitable to your needs (I hijacked a beam grob).
The best thing to do is go ahead w/ the score as if it were to have boxes and 
then put something like :

c d
%\startBoxedNotes
e f g
%\endBoxedNotes

wherever you need it.  There are enough people on this list who know Scheme 
that someone is likely to pop up w/ a more fleshed-out solution in the next 6 
weeks, and if not, in 6 weeks (if not less), I'll have some time to give it a 
go.

Cheers,
MS


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


Re: Aleatoric / modern notation

2012-03-11 Thread James Harkins
At Sun, 11 Mar 2012 13:40:19 +,
Carl Sorensen wrote:
 You might offer a bounty to Mike or to David Kastrup, in which case they
 would write the custom engraver for you.

Thinking about that... either monetary or a delivery from a microbrewery? :-p

This might be viable in the meantime. I already know how to make a zigzag using 
a glissando following it.

http://lsr.dsi.unimi.it/LSR/Item?id=377

hjh


--
James Harkins /// dewdrop world
jamshar...@dewdrop-world.net
http://www.dewdrop-world.net

Come said the Muse,
Sing me a song no poet has yet chanted,
Sing me the universal.  -- Whitman

blog: http://www.dewdrop-world.net/words
audio clips: http://www.dewdrop-world.net/audio
more audio: http://soundcloud.com/dewdrop_world/tracks

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


Aleatoric / modern notation

2012-03-10 Thread James Harkins
Possibly a common question, sorry if asked and answered before, but Google 
failed me...

I'm considering some aleatoric notation (so-called box notation) for a piece 
but couldn't find info in the manuals (the contemporary notation section of 
the 2.14.2 docs @ lilypond.org is empty), or in the LSR, or Google searches to 
find out how to realize it.

By box notation I mean collections of gestures/phrases, enclosed in a box, 
with an arrow indicating to keep doing that until the arrow stops. The phrases 
could use normal rhythmic notation or proportional notation without stems/flags.

Some time ago, somebody posted a link to Mike Solomon's granini di luce 
beccucciati da uccelli di silenzio as an example of contemporary notation. The 
attached pic from it illustrates more-or-less what I'm after (though I wouldn't 
need the slash).

Thanks!
James


--
James Harkins /// dewdrop world
jamshar...@dewdrop-world.net
http://www.dewdrop-world.net

Come said the Muse,
Sing me a song no poet has yet chanted,
Sing me the universal.  -- Whitman

blog: http://www.dewdrop-world.net/words
audio clips: http://www.dewdrop-world.net/audio
more audio: http://soundcloud.com/dewdrop_world/tracks

inline: box-notation.png___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Aleatoric / modern notation

2012-03-10 Thread James Harkins
At Sun, 11 Mar 2012 08:12:35 +0100,
m...@apollinemike.com wrote:
 The best way to achieve that with current LilyPond is Scheme engravers.
 
 There have been a few examples of Scheme engravers posted on this list (if 
 you search Scheme engraver you'll find one - there are also examples in the 
 input/regression folder of the LilyPond source).  You'd want to create one 
 that begins and ends a spanner when it hears a given event (you can invent a 
 BoxNoteEvent, for example) and acknowledges note columns in the interim, 
 putting them in a grob-array called note-columns or what-have-you.  Then, 
 make a print method that extracts these note columns (or whatever grobs 
 you're interested in) finds the min/max height and width, and draws a box at 
 those dimensions.
 
 If you want to get fancy, you can add extra spacing width to the left of the 
 first note column and the right of the last note column to make sure there 
 are no collisions with the box and surrounding material.

I see... would it be too much to ask you to send your engraver to me (off list 
if you prefer)? That's of course assuming you developed one for your own music. 
Normally I don't mind doing some research and experimentation on my own, but in 
this case --

- This is for a concert that will be in mid-May, for which I'm writing a new 
piece and I will have to rehearse everything else as well.

- I'm also turning some students loose on a big SuperCollider interface to 
connect webcam (and maybe iphone) data to sound parameters. Lots of bugs 
popping up there. That will probably be on the same concert.

- Full-time teaching schedule.

I worry that I wouldn't have time to cobble together enough scheme knowledge 
(starting from nothing) to put together my own engraver... by which I mean, I'm 
really under serious time pressure and if this is going to take, oh, more than 
a couple of hours, it's more than I can afford right now. (I'm estimating 10-15 
hours.)

I'd really appreciate it -- otherwise, I'll find another way to notate the idea.

James


--
James Harkins /// dewdrop world
jamshar...@dewdrop-world.net
http://www.dewdrop-world.net

Come said the Muse,
Sing me a song no poet has yet chanted,
Sing me the universal.  -- Whitman

blog: http://www.dewdrop-world.net/words
audio clips: http://www.dewdrop-world.net/audio
more audio: http://soundcloud.com/dewdrop_world/tracks

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