[jmsl] Articulation request
jmsl at music.columbia.edu
jmsl at music.columbia.edu
Mon Jun 30 12:01:07 EDT 2008
I'd definitely second this request! Some others that would be cool:
Tenuto + Staccato
Breath marks
Square and triangular fermati
Up bow, down bow
n for niente or the 0 with slash?
.. and ...
staccatissimo
//
+
arpeggiations
Dynamics:
sfz, sffz, fp, sfp, rfz, fz
Also, a notehead + parentheses would be very handy for notating
alternating tremolos as wide trills. (i.e. Original note with
trem~~~~~ and second notehead in parentheses) (and perhaps with a
version with extra space on the left for accidental?)
As I'm writing this, however, I'm also realizing that it's not
possible to combine articulations on one note. For instance, an
accented note with a breath mark after it isn't possible. Though this
not be an issue for all, it is something that comes up in my writing.
Same goes for dynamics. Usually this isn't a problem, you could just
tie it and place the second dynamic on the second note, but for things
like fp it's problematic.
It would really be nice to be able to customize accents and dynamics,
and I think that this could really enhance JScore. /(It also, however
seems like this could wreak all manner of havoc.) I'm assuming for
dynamics, for instance that they are parsed such that a dynamic is
mapped to the volume of an instrument. With articulations, JMSL plays
notes shorter when they are staccato. It looks like JMSL's play()
method is taking care of this. (if I understand correctly that
NoteInterpreter is seeing MIDI data and not markings)
At the risk of over-reaching, perhaps Articulation and Dynamics could
eventually become classes? An articulation class could have a draw
method that could either use fonts, drawing, images to create the
symbol. (Emmenthaler, one of the fonts that comes with lilypond, is
fairly promising in these regards) The articulation class could have
a play method that could be overridden to create custom effects.
This, for instance, might allow someone to build a custom trill object
that releases with an ornament, or aleatoric tremolos, a hi-hat part
that plays different samples for closed vs. open, etc. Some of these
things are possible now, but to be able to link them tightly to the
notation would be fantastic! A note might have an articulation and
dynamics vector (order more important for dynamics?). For legacy,
getMark() returns articulationVec.get(0), and getDynamic() return
dynamicVec.get(0).
It seems like it would need both the play information (start time,
pitch, etc.) as well as the note info (staccato notes should be
interpreted differently when there's a slur over them, for instance).
There could be a standard library of articulations, but having the
ability to override and extend it would be really helpful. For
instance, I could imagine in MaxScore using a custom articulation to
trigger a Max event while the score is playing, or a special
articulation for infinite sustain until the user chooses to continue
playing.
Let me know what you think; this is a bit of a tall request, but I
think there's potentially a big payoff in the accessibility of some of
the elements that users are most likely to want to customize.
thanks,
Peter McCulloch
More information about the jmsl
mailing list