[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