The best way to cope with legato slurs?

Discussions, advice, bug reports and much more about the "bach" environment.
Post Reply
andrzej
Posts: 14
Joined: Fri Jan 25, 2013 9:25 pm
Location: Poland

The best way to cope with legato slurs?

Post by andrzej » Tue May 19, 2015 5:55 pm

As in subject: what is the preferred way to put slurs into bach musical structures? I know bach.{roll,score} cannot display slurs (yet – I hope), but I want to describe this element of notation somehow.
tia
ak

danieleghisi
Site Admin
Posts: 1347
Joined: Fri Dec 03, 2010 1:25 pm

Re: The best way to cope with legato slurs?

Post by danieleghisi » Wed May 20, 2015 10:21 am

Hi,

I really wouldn't know how to help: slurs are currently unsupported...
You can maybe fake them by using slots? (one slot containing, say, a sign for slur start, and another one containing a sign for slur end?)

d

Phthalocyanine
Posts: 15
Joined: Sat Dec 10, 2016 10:56 pm

Re: The best way to cope with legato slurs?

Post by Phthalocyanine » Wed Dec 14, 2016 5:39 pm

I've just now realized the situation about no slur support.
I haven't really gotten that deeply into the world of slots,
and am in the middle of a crucial score transcription
into bach.score, which contains lots of slurs, and which
I will need to complete quite soon. Daniele, do you think that the slot
approach is a viably sustainable solution? Both ties,
as well as "slur style" tuplet notation being already implemented,
I wonder just out of curiosity why the common legato slur was
excluded. Particularly I was thinking about the way editing of tied notes
behaves. Selecting a tied note also selects notes it is tied to.
Shift clicking to de-select a single tied note,
once a set of tied notes has been selected,
followed by incrementing the remaining selected
note up or down the stave, breaks the tie.
It just seems to me that the system is already so close
to implementing the conventional legato slur.
But anyway, if not, if it wouldn't
be too time-consuming for you to make a simple example patch,
illustrating the slot solution,
I would be very much obliged.

Thank you so much,
Dimitri Fergadis

danieleghisi
Site Admin
Posts: 1347
Joined: Fri Dec 03, 2010 1:25 pm

Re: The best way to cope with legato slurs?

Post by danieleghisi » Thu Dec 15, 2016 10:29 am

Hi Dimitri,

the fact is that ties and slurs are two very different things.
A tie is trivially representable via a 1/0 flag ("is the note tied to the next one?"). That is all.
A slur is much complicated, since it requires the knowledge of the position of the ending note as well. We have thought about it a lot, and the only way we have found to represent it is to use an ID-based system: link a slot to slurs, then if two notes contains in a given slot the same ID, they end up being connected via a slur. Any other way seems to have a certain number of disadvantages (some don't allow for overlapping/crossing slurs, some create troubles when adding notes inside them, and so on). We might be wrong of course. And the ID-based system itself does not look at all as an elegant solution to us. The content of the slot (ID) would not be musically meaningful in any way – and IDs are NEVER represented in the gathered syntax of any bach object. A different way to go would be representing slurs as groups, in the header of the object. This doesn't seem natural to us either, we'd like somehow to keep this note-attached.

All this to say: we haven't found a "good" solution yet. If you have any suggestions, we're of course happy to read them. We'd like to represent slurs in a "musically meaningful way", possibly connected with notes. And the issue is not graphical, of course - the issue is to find a representation proper.

Waiting for this representation, if I had to somehow display slurs right now, and my slurs did not overlap, the only thing I could think of is the patch below, using lyrics to display "slur ranges" (see slot 7 in the score, and #lyrics in the help center). Of course, provided you don't already use lyrics... This of course won't be the final way of mapping slurs. As I said, the final way of using them will probably be connected to slots (maybe via a dedicated slot type), but we are really not sure about this yet.

Best,
Daniele

PS. By the way, I hope you'll be happy to know that from next major release (somewhere in spring?), dynamics, noteheads, articulations, and text annotations will all be properly supported via slot linkage.


<pre><code>
----------begin_max5_patcher----------
1931.3oc6bszaiaCD9bxuBCcZKPRVRp2EEEnm1K8TWzSEEAzRzQbW8pRzwwc
28+dIoDokrosS7CY2.4cijsFQNy7MebzHYZ9sauwZZwKjZqI+7j+ZxM27sau
4F4gDG3l1OeiUF9knTbs7zrvLV0bp0cMhJwrnDZ9SOVQhXMcisiyCf6lD5I1
BcAhcHzCfI+caaJlyRIL1xRRSCrrzhnwRcTL8K2CAJcjOOilyagT+v1CJLC4
4ltrhFUGUjVT0oAM5nWKpYKSkZzxRbfeb6shM2cpbaXH7T31AuNutNoXQimu
nnJl7BijWSKxqunPfcvo.A7dKw8mwwe4b5ySwQIOvYWUj852PaoiGD5z3+NO
XKd4n8wRJukjXJqBm+jBBxmmlZsCD5tc+2TdWsp4bDnDWwZGOC4VgVTJM+qb
Qzn4oXlfovJpSKjN.PgTbNUFAWOuhv6nojpU8CnW+jWvHIDb7lcQmvniBvhI
yvySYhFIN8ZiNduXs+JzP1c4suT83ybSi6BMForAfPfpQkUjZRNS5jchQR13
pMFBOL9nnlzHFaPGdb2TNsmquuKx0VbtPea+.Yi7bPbqpWKqY3Yy3PnJkq6c
Sb0BynwznDbdNIcExi5BQOWPiZZJRAEhijiyTcn0GDrheRro8c51OcQTAmdv
nSooT1RItEBAchqM90pnpZHzzm54qgR2a01tNXFt5q7nyrhbVM8ekrXnHuno
Qngc8g5RbDUvk0XORNbx19ADf+pOSNdI2m6YqJUHz7LbDYchswjkq0NsECzV
7zmDJnqPjiVHIOAWkUjSiX3oopgrs7cA5qdq11iRIyTQpOINiOsR1WIK0hxj
xx5zPwH1JLMmMkfypo4B7hrgGHXBxgL+VEEmpFujPiIqnNb3s2.5U4Q4Bcs0
dWZQQYGRET8+UrqtGR2eKRJRIOJSY9XLlgeDne01asoSaYnB7klOqnSm1HP5
K78e92+y+3y8Y0xDjh87XYeIbPT1o8O5BZLKQ7lGeo8eh75ONKs.y7bzGjeF
hQ5.+PWeGWTPu9HgPeJQpM7bVQ+9mGOdJkzvT34XIwxjcVqAW7fX4xEIbxWI
e.Xix5HEGwCPRCuhmaEmGunhxHZEoOQz5.jPuSlMOORjxyLPYVZKX8O8OZyU
mdkfE30CpHuPajSePka5kuIc0wLIcyz22EVVmiK6jCrmv3hL93nAxAaT1Q3l
ZpKijUVTIFTeUxJsMxJSK3l.slYlUxylsovVR4hAgTFvuvhWPn2PPJ6bcgWI
gJHLvwG37+gTYvChz3XNUlvW1NqYKha4Mj2cIydi7Fv6W5h6Vywr07KF4HUi
4Vd+mawa64V1QdEi7E1XNk2szDeizjMuwh8dKGKeGeKGAqCRynojcbEZiRaw
o4GENE.PPa20xac0PlB2fLUtsrMaJoEenCSxFOH.BQfgHYyveKLGVzCBLlKP
7EQXJBlWjSLEAeGmrDBMiPvQDRgPle5LPzHBoPHyOo.n8HBoPHy2VLzYDgTH
j46DD5NhPJDx7s+.8FQHEBYtxen+HBoPn.yHTvHBoPnPyHT3HBo9xpLWSMZr
lZMBYtlZzXM0ZDxbM0nwZp0Hj4ZpQi0TqQHy0TiFqoViPlqoFMVSsFgLWSMZ
rlZMBYtlZzXM0ZDxbM0nwZp0Hj4ZpQi0TqmpMlqo1drlZq05qrL94Tu4LKrf
QT6ixhWqUIEUw52rg3JRy2qkZ+VQUCyWuAUs1WF05bYTq6vq1URamzyqcvty
laI4C0mK2Yx3ql+qqjplh8aJo+FmFDeMwvOJpq0aa1aJ4YRZa5g9CvfeDoe+
q7Kj0MzA4G3Hlo1MHjdV81af22+066YIf012w56ZdAqYdNGt4416qsbSJzkR
4.yg2Mhrm2fXncXGCcKAwe46WnXnx57NJJ14zF8.vPWoMB2kMteC75hNXeUR
GTip7MLSD58ibRNgSxZS5OfC6g9PoAhNQC6+Pyu0qJwOcHwaKGrr5h4i1UbV
cmKYVcW3YJ7lLbgW6q478tfgO5pSjuKkecjjVQCAG+PzCR+sY4b7OBNzoFIg
GLJZaLbuG67ZoH7.nizKPWmoqCb.1ajt4oJbYBMR.RN.wQuu0y6MiDeq0Oc1
7AeOa2NWT+5o.uME6uly5cv7ocW.3gPl1v3ZdtUusTz9fSi0cPZ2F.gWLseJ
KM+9VC3DfIHmvtV0NFYdBXiG9396aF3OLILzVsyUdgD6CdO2.jyEnLuUNs+Y
pH95iKI95dXvA6gtN6HrdeSOeHX9a2h7s8C6XQGYEqGf9CBg6W+WvZLT0Is6
R5uBJBxwd.KBZ8QVwCVFwignb1CAguYa6.SOGdARO6CQ16+4OcJ8xfq7qRqi
6tCEh3tiqabLip18CL359wEn8AuSvC8.rmkNmnh44pkWtI+cmkuLYSr5rPRo
VMyjqNYx7j8VSypKlWEoVfhTqtdcVDfhI0LZdyucuUmjSuyIgFGSx6thCESq
Eq6Qx07KfwEWsWq4DbUYMdmQqoIxgKKaWDyjlhvPrxveoYM1RtRlYkQya9ns
7iUjmopyWpCKbUTBkQhXyqZVymdwqYMWyJqHlTkOmJWKqtUn4eb6+APeAY..
-----------end_max5_patcher-----------
</code></pre>

Phthalocyanine
Posts: 15
Joined: Sat Dec 10, 2016 10:56 pm

Re: The best way to cope with legato slurs?

Post by Phthalocyanine » Thu Dec 15, 2016 5:05 pm

Hi Daniele,

Yes I see the idea there with your example patch for
using the lyrics markings as slur. Not ideal, but it is
at least an existing graphical way of playing the
role.
Now this however is an interesting
point about what I take to be your concern:
from the perspective of computer music canonically
understood, graphical interface items are just assumed
to be "meaningful" like you say, in the sense that their usage within
a program will ultimately have some causal relationship to
sound, as to be calculated and rendered.
By contrast, commercially available notation engraving platforms,
from what I can understand anyway, implement no way
of attaching this kind of causal role to their slur feature.
In one case, a fairly wide range of graphico-aesthetic flexibility
has been provided; yet it seems the telos there, and in these
solutions in general, is the writing of scores for use by
traditional instrumental performers.
I am guessing that with Bach, such a goal
cannot be prioritized ahead of those concerns
pertaining to the building of a full-blooded, extensible
computer music environment. Is that right? In other words,
you could add a slur-marking to the system that "doesn't do anything
other than look like a slur", but from the standpoint of computer music,
it would be superficial, and inconsistent with the fact that
everything in the system would be assumed to
actually do something, to actually have a
behavior vis-a-vis the system itself,
over and above however the graphical marking merely
appears to the eye. Is that sort of the idea?

Thanks Daniele,
Dimitri

danieleghisi
Site Admin
Posts: 1347
Joined: Fri Dec 03, 2010 1:25 pm

Re: The best way to cope with legato slurs?

Post by danieleghisi » Fri Dec 16, 2016 8:55 am

Hi Dimitri, partly - yes. But my concern is not (only) about the causal relationship between element and rendered result; it is more about finding a casual and pertinent relationship between representation and score. bach scores are represented as user-accessible lllls, where each item has a meaning; putting IDs in such scores would mean to throw away the principle of "meaningfulness" of score encoding. (And you are right: musical typesetting software don't have this issue.)

d

sydy
Posts: 155
Joined: Tue Mar 21, 2017 1:34 pm

Re: The best way to cope with legato slurs?

Post by sydy » Mon Sep 30, 2019 10:25 am

Hy,

SLURS ARE NEEDED
I had the same question today. I'm actually working on a score for voices and a Bach-based synth (with other little nice things.).
So I'm very fond of the idea to have the score of the voices running together with the score for the synth (visualizing: bach.score as master bach.roll as "slave" spaced by customspacing absolute)

SIMPLE WORKAROUND
So yes, slurs are indeed important if you want to read the score as it sounds. As slots can go beyond the length of a note, I used the following workaround which at least for me works totally fine.
- assign a slot, type function (named it something exotic like "slur")
(assign the hot key S – or whatever you like)
- set the temporalmode to miliseconds
- set Extend Beyond Tails (this way you can draw your slur as long as you like)

Now, you can draw your slur the way you like. I use 3 points and adapt the two lines with alt so they have a nice curve.
(open the slot for slurs and send the bach.roll/score the message slotwinalpha -80 [super transparent], so you can see better what you're drawing)
change the color of your slot if you want it black for a possible print...
Here's little example.
Tell me what you think about it.

<pre><code>
----------begin_max5_patcher----------
2394.3oc6bk0baiiD9Y6eEp39prCNHH.1p1G1rGyKadJyKSkJkKZRHKjgjPE
IkOxTy+8E.7PjhfxRhZ73MKUbnnvU28W2na.dz+10W4cu5YQg2h+5hur3pq9
squ5JaQlBtp92W4kF9bTRXgsYd2GFs91hHUtvaYU0axEEhrxvRoJ6tbQTY0v
EbKv7I.SnLDiQPKWPP92RYLeFfwoDBhS0Ex45VtbAN.bKXwWW1RxXUokhn5h
JRTkOIyBS1rNzTtt400jsMUlkHpZNstv6eJRktQyT2KSjkuXphAffl9TJdtL
RknxqXVyf04.rCqHisxs59ucCDSaD5uqTolxg9fawAADDzmRC3bDqtApsVbv
Kq9i2Nl8QkLpBz8qKLQ7fHyRGXiztV8TpHrXatP2i6E40JI3xl+ZYvpgaSXj
L6gNRCJv0w1dsRkUVH+tvRTTKVFKVEtMoLSUJL.dMU0bcRhWaeWKiE6DBM8V
17WaSzLsFAZTJ7FkxCcFTTaiEYqCySUYxnxv6SD0zrlU7V9Zm1NNcsD6BlZl
YSXd43PX7KYgoxnhdfBuETpjjxW1zvZFpen+eenQUzEp0iusyd+8bYXRiwPp
LVFsNLKSjri4zyIvKW3uSpBKiVq0sclacCzpOIVaU.sZBjOui50pdLDsQC9Y
0l7vLCy8Iw2+tpn8m+rHSOKPexGsSwaF.MSopPxtfBamgRMj8XX72rlxA2hA
c+zXaGkHV0vD+jgN1C+6pCsjKQo1T2nu30nfzRk2WMMrtHTSQsc6WEuzL1+i
OYZ4dG2gG5YPZYoZtz9NCLR3pvHqD1TVQY3pUIxrF.jrr4ucJFoVwHhkkZj7
AgyYJOsVkHty5t7t3vxv61gO0su1UZkLZcxI0HdGgtpBq8i96GEIpHs+rEhL
yoarE1hQdVaT82q1lEYmEzqVMZ4sGp5Uw65St645+Y7ve2pDUXYfeagdMSwO
p1AAL..Fv3A8nUQCCerzpCaJ5M4tWcOjq8Q2qjWJxB2zunXUZnL6xKnTT.Gi
7YNH1DD2RQ5FUdXRpJVTI9IZA+w8z15XXlvF624mjwkqMmDtsT0uGqExGVW5
ttBsOlDqW+Up7RoH1FDn1HbWyhTad4o0hrhM53pCncXjNpPQEKGFGlE+Ttrb
Ga21Pz9F1EIayOcaYuO68VXM6TIOaMetVyoxjDYgHRkEWLhEM7+4rnwCsnUk
KjYkZQszsksyJ+A0Icm0scjlhLNympWFwgrjxTYmnOwij3bB0mfX+QapAOKS
MemlZVYYbisQp9Mzb6szK5IZtAlsxFXkQFyg1nNylcjM6H6jLwBF2Q1AbhM6
.a1A1wXcQcZcYtxetMtFViKaqezv1ya0tL2ybkIhCrBDm09mIFy.HHlrmq42
M1ubmXbwlwbNNrl2ReiAP.Dh.uE9F+g+pi.ANU8I5OtU8CqY100nfKzI3Bgt
g1gfz+O.smmGKHxMzhlg1ICstu9RP7LzNYn080SA5OCsSFZceQDfjYncxPq6
MOCClg1ICst24HjNCsSFZcuwQHaFZmLz5d+hP9LzNUnEMX+XMO9KtwV20VeK
qi89SBgoXFN3c5lxPC1TVxK4ihuick57R7l2v6PrcvtxB0zLZah8RqLBDefl
Ti0g+XaGeldJFrMMC0Vq6yXdgcUaMBudFgcfvC1s1tGUwSzaQo2brtg3q6sr
gl2x1zgV2aYCMuksoCst2xFZdKaSGZcukMz7V1lNz5dKan4srMYnE69VngAy
P6Tf1tiUZZX8Cva+WUAUon62c5xZUdbuS5d+dqdv.Z9dTEgiGg72HBheqIn+
aMAIukDbWsog4+p4Mbqegce2nV14EipuMamso17hyrq1lcWMrl9G72eXsGfe
vbGf3iw0IhGEI09Of68lJU0hi7gPI.5SILey40OFDsuKPECuBTMS9WYN72F4
Jo7oWFtmo0ZrZ4hTY4hGkhjEeLeaQYQoLMs+TbvHeuGjMPSbrnyvp66lC9gp
agwEGAMbQp5lgWZDseuCh.UCF9b3KjOm2xWvw4qx0h7gZLcnjaOLm0E1PSi6
.uAp9ap3RvgsGP962ofAcRakbFxKxG+ZVIG8XhHDJiB.L6fGPYPNwZN8p8Dy
YPDl.nXaO4b.Fxwm0SI0q1CHJfyHLRP8xJvH5wQp.JAFvqVMBfwXTJ83jMBD
qEIyCYCFAobtl3zSimQTHCwzDsRsAQ.JDvOJpinZfM.X0wAAAXnO6ndD1Pbt
OBPnlWHcs.CgTJFD312pr30mSNxLGhyYN1ypdQ7s9Y76Le9R4UsdTOMmpH3q
575TcSMfM48pldVN+6xmfwbe0Ktx+7uD385QKBuvJ5N9zHV8wQ5v8cwZTdEP
ddYBWpkIL0.SG6isKDiPZGjXBpJLjOKfv9CJLDV6K1mgp8uxPHJyG6eTbIgw
vbfOlWEJhRID9QEJhqCMS0AQ.1HQLN.Df3mFaS7oTSGspFFFfP.D9RpCPLJz
mi7Q0AZC3ls96NtSu0HdptY2exC6jsQA50275dYekI0vOfu7KSsYh2oOzDd.
C2MDmaH8DvU+owBfoFk8LcCeC1Y7nK8xWFIr26yfm2.mbzsiCVmUNyJm2AJm
wSZMQpsY0YdH3huZZzue80lC1t3EtYSc50wl2vLYMLuzvuUkasr4CKuTYV0O
sojIubwixl1aS3Ndg4Qqkkhnxs4U4IomC78p5pJVjmsUZ680ZhZHYQ4KI6m2
x1khk1FKUetLrbawceRjssJaKsKcQ0M2lc+CqjIIsYBrqZq4Jul78jWUsKqK
tWVCCw8glGoQvsXHlZt+t5yzmPHcRuT08A1zIehOGXxkQ25Gfn9D6YL8FWw1
zO1dcCsiV5PvUT.vYl0jXNSWDrWBKyj5ldnJIZgnsIIMSxwRswbuApQ8aw71
1usT8PdXrTTokA1xsp3J31lDpx00ZgcKlTiooZ.U1zGcaGQYjJedpJgVFzMl
hoA9TnERzqrDZAG+8vkyDN2SgegUBWRr9y+7u7e9WPuINJYhmT2+sOlrUbC7
PZMysKJqeRzCCMpAClDzZiyq0LVz4hHlUL3uHRRTOcXVrapK6K1zbGQuZd1t
jb1PQfgHPqDPYPl0fR2GhYR5ET.rYgreRkDexHrALAV6OBGAIVNE1096hvf4
EIx3JN7vyaOMdqIiv0sSA95sFxWZQdn8hLpOSi2lqR4YJPUQkrorRaFvaScp
cylYKu92u9+xqdp1B
-----------end_max5_patcher-----------
</code></pre>

Works fine for me.
Hope this helps some of you.
m

Post Reply