<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.lilypond.community/index.php?action=history&amp;feed=atom&amp;title=Variable_bow_thickness_depending_on_length</id>
	<title>Variable bow thickness depending on length - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.lilypond.community/index.php?action=history&amp;feed=atom&amp;title=Variable_bow_thickness_depending_on_length"/>
	<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Variable_bow_thickness_depending_on_length&amp;action=history"/>
	<updated>2026-05-04T21:17:23Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Variable_bow_thickness_depending_on_length&amp;diff=4941&amp;oldid=prev</id>
		<title>Lemzwerg: New category</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Variable_bow_thickness_depending_on_length&amp;diff=4941&amp;oldid=prev"/>
		<updated>2025-11-21T23:36:47Z</updated>

		<summary type="html">&lt;p&gt;New category&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:36, 21 November 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l129&quot;&gt;Line 129:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 129:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Tweaks and overrides]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Tweaks and overrides]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Stylesheet]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Stylesheet]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Really cool]][[Category:Snippet]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Really cool]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Snippet]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lemzwerg</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Variable_bow_thickness_depending_on_length&amp;diff=4015&amp;oldid=prev</id>
		<title>Lemzwerg at 23:02, 21 November 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Variable_bow_thickness_depending_on_length&amp;diff=4015&amp;oldid=prev"/>
		<updated>2025-11-21T23:02:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:02, 21 November 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l129&quot;&gt;Line 129:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 129:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Tweaks and overrides]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Tweaks and overrides]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Stylesheet]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Stylesheet]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Really cool]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Really cool&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]][[Category:Snippet&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lemzwerg</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Variable_bow_thickness_depending_on_length&amp;diff=2527&amp;oldid=prev</id>
		<title>Jean Abou Samra: Replace version=&quot;2.24.0&quot; with version=&quot;2.24&quot; now that the LilyWiki extension supports auto-selecting the latest release in a stable series</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Variable_bow_thickness_depending_on_length&amp;diff=2527&amp;oldid=prev"/>
		<updated>2025-11-16T18:52:22Z</updated>

		<summary type="html">&lt;p&gt;Replace version=&amp;quot;2.24.0&amp;quot; with version=&amp;quot;2.24&amp;quot; now that the LilyWiki extension supports auto-selecting the latest release in a stable series&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:52, 16 November 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l11&quot;&gt;Line 11:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 11:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-----&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;lilypond version=&quot;2.24&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.0&lt;/del&gt;&quot; full&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;lilypond version=&quot;2.24&quot; full&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;% http://lists.gnu.org/archive/html/lilypond-user/2016-03/msg00328.html&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;% http://lists.gnu.org/archive/html/lilypond-user/2016-03/msg00328.html&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Variable_bow_thickness_depending_on_length&amp;diff=581&amp;oldid=prev</id>
		<title>Jean Abou Samra: Import snippet from LSR</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Variable_bow_thickness_depending_on_length&amp;diff=581&amp;oldid=prev"/>
		<updated>2025-10-26T22:44:30Z</updated>

		<summary type="html">&lt;p&gt;Import snippet from LSR&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;If a house-style prefers to have thicker slurs (and/or ties, etc.), sometimes they can appear overly thick when their length is short. To counter this apparent increase of thickness, you can make the &amp;lt;code&amp;gt;&amp;#039;thickness&amp;lt;/code&amp;gt; property of slurs variable depending on its length.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The following snippet uses the function &amp;lt;code&amp;gt;variable-bow-thickness&amp;lt;/code&amp;gt; which requires four values, two for min and max bow length (&amp;lt;code&amp;gt;min-l&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;max-l&amp;lt;/code&amp;gt;, respectively) and two for min and max bow thickness (&amp;lt;code&amp;gt;min-t&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;max-t&amp;lt;/code&amp;gt;, respectively). The final thickness is determined by the following conditions:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Length &amp;amp;lt; &amp;lt;code&amp;gt;min-l&amp;lt;/code&amp;gt;, then thickness = &amp;lt;code&amp;gt;min-t&amp;lt;/code&amp;gt;&lt;br /&gt;
* Length &amp;amp;gt; &amp;lt;code&amp;gt;max-l&amp;lt;/code&amp;gt;, then thickness = &amp;lt;code&amp;gt;max-t&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;min-l&amp;lt;/code&amp;gt; ≤ Length ≤ &amp;lt;code&amp;gt;max-l&amp;lt;/code&amp;gt;, then thickness = linearly interpolated between &amp;lt;code&amp;gt;min-t&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;max-t&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24.0&amp;quot; full&amp;gt;&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% &lt;br /&gt;
% http://lists.gnu.org/archive/html/lilypond-user/2016-03/msg00328.html&lt;br /&gt;
% By Abraham Lee, refactored to a more convenient function by Sharon Rosner&lt;br /&gt;
% further edited by Harm&lt;br /&gt;
% Thanks to Aaron and Jean for their help.&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
&lt;br /&gt;
%% If excecution time gets worse you may try to go for a simpler &lt;br /&gt;
%% estimation of the length by calculating the linear distance between &lt;br /&gt;
%% the bows endpoints. Therefore comment&lt;br /&gt;
%% (len (bezier-approx-length cpt 0 1))&lt;br /&gt;
%% and uncomment the lines above in `variable-bow-thickness&amp;#039;.&lt;br /&gt;
%%   --Harm&lt;br /&gt;
&lt;br /&gt;
\paper { tagline = ##f }&lt;br /&gt;
&lt;br /&gt;
#(define (bezier-curve control-points t)&lt;br /&gt;
&amp;quot;Given a Bezier curve of arbitrary degree specified by @var{control-points},&lt;br /&gt;
compute the point at the specified position @var{t}.&amp;quot;&lt;br /&gt;
  (if (&amp;lt; 1 (length control-points))&lt;br /&gt;
      (let ((q0 (bezier-curve (drop-right control-points 1) t))&lt;br /&gt;
            (q1 (bezier-curve (drop control-points 1) t)))&lt;br /&gt;
        (cons&lt;br /&gt;
          (+ (* (car q0) (- 1 t)) (* (car q1) t))&lt;br /&gt;
          (+ (* (cdr q0) (- 1 t)) (* (cdr q1) t))))&lt;br /&gt;
      (car control-points)))&lt;br /&gt;
&lt;br /&gt;
#(define (bezier-approx-length control-points from to)&lt;br /&gt;
&amp;quot;Given a Bezier curve of arbitrary degree specified by @var{control-points},&lt;br /&gt;
compute its approximate arc length between the positions @var{from} and @var{to}.&amp;quot;&lt;br /&gt;
  (let* ((steps 10)&lt;br /&gt;
         (params (iota steps from (/ (- to from) (1- steps))))&lt;br /&gt;
         (points (map (lambda (x) (bezier-curve control-points x)) params))&lt;br /&gt;
         (length &lt;br /&gt;
           (fold &lt;br /&gt;
             (lambda (a b prev) &lt;br /&gt;
               (+ prev (ly:length (- (car a) (car b)) (- (cdr a) (cdr b)))))&lt;br /&gt;
             0 &lt;br /&gt;
             (drop points 1) &lt;br /&gt;
             (drop-right points 1))))&lt;br /&gt;
    ; Need to support negative length when the range is inverted.&lt;br /&gt;
    (if (&amp;lt; from to) length (- length))))&lt;br /&gt;
          &lt;br /&gt;
#(define (variable-bow-thickness min-l max-l min-t max-t) &lt;br /&gt;
  (lambda (grob)&lt;br /&gt;
      (let* ((cpf (ly:grob-property-data grob &amp;#039;control-points))&lt;br /&gt;
             (cpt (ly:grob-property grob &amp;#039;control-points))&lt;br /&gt;
             ;(cp0 (car cpt)) &lt;br /&gt;
             ;(cp3 (cadddr cpt))&lt;br /&gt;
             ;(dx (- (car cp3) (car cp0)))&lt;br /&gt;
             ;(dy (- (cdr cp3) (cdr cp0)))&lt;br /&gt;
             ;(len (ly:length dx dy))&lt;br /&gt;
             (len (bezier-approx-length cpt 0 1))&lt;br /&gt;
             (thickness&lt;br /&gt;
               (cond ((&amp;lt; len min-l) min-t)&lt;br /&gt;
                     ((&amp;gt; len max-l) max-t)&lt;br /&gt;
                     (else &lt;br /&gt;
                       (+ min-t &lt;br /&gt;
                         (* (- len min-l)&lt;br /&gt;
                            (/ (- max-t min-t) &lt;br /&gt;
                               (- max-l min-l))))))))&lt;br /&gt;
        (ly:grob-set-property! grob &amp;#039;thickness thickness)&lt;br /&gt;
        (ly:grob-set-property! grob &amp;#039;control-points (ly:unpure-call cpf grob)))))&lt;br /&gt;
&lt;br /&gt;
music =&lt;br /&gt;
 \relative c&amp;#039; { &lt;br /&gt;
   \cadenzaOn&lt;br /&gt;
   c16[( d]) ^\( c[(\) d^\( e]) c[(\) d^\( e f]) c[( d e f g])\) &lt;br /&gt;
   \bar &amp;quot;&amp;quot;&lt;br /&gt;
   \break&lt;br /&gt;
   \set tieWaitForNote = ##t&lt;br /&gt;
   c,4~ e~ g~ c~ e~ g~ &amp;lt;c,, e g c e g&amp;gt;&lt;br /&gt;
   \bar &amp;quot;|.&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
\score {&lt;br /&gt;
  \music&lt;br /&gt;
  \header { piece = &amp;quot;Thickness = 1.2 (default)&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
\score {&lt;br /&gt;
  \music&lt;br /&gt;
  \header { piece = &amp;quot;Thickness = 2.7 (fixed)&amp;quot; }&lt;br /&gt;
  \layout { &lt;br /&gt;
    \override Slur.thickness = #2.7&lt;br /&gt;
    \override PhrasingSlur.thickness = #2.7&lt;br /&gt;
    \override Tie.thickness = #2.7&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
\score {&lt;br /&gt;
  \music&lt;br /&gt;
  \header { piece = &amp;quot;Thickness = 1 to 3 (variable)&amp;quot; }&lt;br /&gt;
  \layout { &lt;br /&gt;
    \override PhrasingSlur.after-line-breaking = #(variable-bow-thickness 6 25 1 3) &lt;br /&gt;
    \override Slur.after-line-breaking = #(variable-bow-thickness 6 25 1 3) &lt;br /&gt;
    \override Tie.after-line-breaking = #(variable-bow-thickness 6 18 1 2) &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
\score {&lt;br /&gt;
  {&lt;br /&gt;
    \override Slur.after-line-breaking = #(variable-bow-thickness 1 2 1 33)&lt;br /&gt;
  &lt;br /&gt;
    \shape #&amp;#039;((10 . 0) (0 . 0) (0 . 0) (0 . 0) ) Slur&lt;br /&gt;
    b1( b&amp;#039;)&lt;br /&gt;
    &lt;br /&gt;
    b1-\shape #&amp;#039;((10 . 0) (0 . 0) (0 . 0) (0 . 0)) ( b&amp;#039;)&lt;br /&gt;
  }&lt;br /&gt;
  \header { piece = &amp;quot;Results of \\shape are respected.&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Expressive marks]]&lt;br /&gt;
[[Category:Expressive marks]]&lt;br /&gt;
[[Category:Tweaks and overrides]]&lt;br /&gt;
[[Category:Stylesheet]]&lt;br /&gt;
[[Category:Really cool]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
</feed>