[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: The "let vibrate" tie
From: |
Pierre Perol-Schneider |
Subject: |
Re: The "let vibrate" tie |
Date: |
Tue, 14 May 2019 21:35:43 +0200 |
Hi guys,
As far as I understood, the tie Vicente is talking about is the one attached...
Cheers,
Pierre
Le mar. 14 mai 2019 à 15:02, Ben <address@hidden> a écrit :
>
> On 5/14/2019 6:22 AM, Andrew Bernard wrote:
>
> Hello Vincente,
>
> You can use LSR 715 by Robin Bannister to extend LV's.
>
> Thomas Morley wrote the following to help me do more extensive things with LV
> ties. If you need help in this or to see some examples, just ask. This may be
> more powerful than you require.
>
> Andrew
>
> %====
>
> % adjust laissezVibrer ties
> % From Thomas Morley
>
>
> affect-LaissezVibrerTies =
> #(define-music-function (x-start amount)
> ((list? (circular-list #f)) number?)
> "
> Extends @code{LaissezVibrerTie}s by @var{amount}.
> Example:
>
> @verbatim
> {
> \\affect-LaissezVibrerTies #2
> <fis' cis'' a''>2\\laissezVibrer
> }
> @end verbatim
>
> If @var{x-start} is specified, the start of a single @code{LaissezVibrerTie}
> may be tweaked. The numeric value of this element of @var{x-start} determines
> the amount of the offset.
> @code{LaissezVibrerTie}s which should not be tweaked are to be specified with
> @code{#f}
> Example:
>
> @verbatim
> {
> \\affect-LaissezVibrerTies #'(#f 1 #f) #2
> <fis' cis'' a''>2\\laissezVibrer
> }
> @end verbatim
> "
> #{
> \once
> \override LaissezVibrerTieColumn #'before-line-breaking =
> #(lambda (grob)
> (let* ((ties (ly:grob-array->list (ly:grob-object grob 'ties)))
> (c-ps
> (map
> (lambda (tie) (ly:grob-property tie 'control-points))
> ties))
> (directions
> (map
> (lambda (tie) (ly:grob-property tie 'direction))
> ties))
> (first-cps
> (map
> (lambda (c-p) (first c-p))
> c-ps))
> (second-cps
> (map
> (lambda (c-p) (second c-p))
> c-ps))
> (third-cps
> (map
> (lambda (c-p) (third c-p))
> c-ps))
> (fourth-cps
> (map
> (lambda (c-p) (fourth c-p))
> c-ps))
> (new-first-cps
> (for-each
> (lambda (first-cp x)
> (if (number? x)
> (set-car! first-cp (+ (car first-cp) x))))
> first-cps x-start))
> ;; TODO:
> ;; Several hardcoded values following here.
> ;; Find better dependencies!!
> (new-second-cps
> (for-each
> (lambda (second-cp x dir)
> (let ((val (if (number? x) x 0.4)))
> (set-car!
> second-cp
> (+ (car second-cp) (* val 1.2)))
> (set-cdr!
> second-cp
> (+ (cdr second-cp) (min (* dir (/ amount 10)) 0.3)))))
> second-cps x-start directions))
> (new-third-cps
> (for-each
> (lambda (third-cp x dir)
> (let ((val (if (number? x) 0.2 0.4)))
> (set-car!
> third-cp
> (+ (car third-cp) (- amount val)))
> (set-cdr!
> third-cp
> (+ (cdr third-cp) (min (* dir (/ amount 10)) 0.3)))))
> third-cps x-start directions))
> (new-fourth-cps
> (for-each
> (lambda (fourth-cp)
> (set-car! fourth-cp (+ (car fourth-cp) amount)))
> fourth-cps)))
>
> (for-each
> (lambda (tie first-cp second-cp third-cp fourth-cp)
> (ly:grob-set-property! tie 'control-points
> (list first-cp second-cp third-cp fourth-cp)))
> ties first-cps second-cps third-cps fourth-cps)))
> #})
>
>
>
> %====
>
>
> On Tue, 14 May 2019 at 18:23, Vicente Sanches <address@hidden> wrote:
>>
>> How can I input that l.v. ("let vibrate") tie used generally with timpani
>> and mallets such as vibraphone em marimba?
>>
>> Tried to use open and closed parentheses without notes inside, but it didn't
>> work.
>>
>> Example in the link bellow just in the 1st seconds of the video, in the 4th
>> and 5th measures:
>>
>> https://www.youtube.com/watch?v=VEMyj-8I3pw
>>
>>
>
> I use Harm's function all the time, it works very well.
>
> Robin's snippet #715 is also handy on-the-fly for sure, but for certain
> applications it needs a little more tweaking.
>
> For example, the l.v. ties are touching noteheads on a lot of chords, so
> you'd need to simply adjust the LaissezVibrerTie.details.note-head-gap each
> time - which may get to be a hassle if this happens a lot across your score
> in different settings. :)
>
> \version "2.19.83"
>
>
> extendLV =
> #(define-music-function (parser location further) (number?)
> #{
> \once \override LaissezVibrerTie.X-extent = #'(0 . 0)
> \once \override LaissezVibrerTie.details.note-head-gap = #(/ further -2)
> \once \override LaissezVibrerTie.extra-offset = #(cons (/ further 2) 0)
> #})
>
> \relative c' {
> \extendLV #2.5
> e8 \laissezVibrer r16 r8
> \extendLV #1 < c e g b >4\laissezVibrer
> }
>
>
> %%%%%%%
>
> % Harm's
>
> \affect-LaissezVibrerTies #1 < c e g b >4\laissezVibrer
>
> (see attached)
>
> HTH
>
>
> _______________________________________________
> lilypond-user mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/lilypond-user
laissezVibrer.png
Description: PNG image