[jmsl] Articulation request
jmsl at music.columbia.edu
jmsl at music.columbia.edu
Sun Jul 13 16:04:50 EDT 2008
Hi Georg
Yes any rendering these do will show up in MaxScore as well they render
to the same Graphics context as the rest of Score
Best
Nick
jmsl at music.columbia.edu wrote:
> Hi Nick,
>
> Does this have any relevance for MaxScore as well? Would be nice!
>
> Best,
>
> Georg
>
> ***************************************************
> Phone:
> +49-40-428482-763 (w)
> +49-40-23517610 (h)
> +49-172-787-4214 (m)
> +49-40-428482-770 (f)
>
> e-mail: georg.hajdu at hfmt-hamburg.de
> e-mail: georghajdu at mac.com
> http://www.georghajdu.de/index.html
> http://www.quintet.net/
> http://mmm.hfmt-hamburg.de
> ****************************************************
>
>
> On Jul 13, 2008, at 9:14 PM, jmsl at music.columbia.edu wrote:
>
>> Hi Peter
>>
>> Looks like we can use UserBeans as a convenient place to put these
>> NoteOrnament objects. UserBeans already save and load properly
>> to/from a Score file. At render time, I can have NoteRenderer iterate
>> through the Note's UserBeans, check if they are subclasses of
>> NoteOrnament and if so, call its draw() method. Note that the draw()
>> method is passed the zoom so your drawing can scale up and down.
>>
>> The abstract superclass already has an x and y offset which can be
>> used to position the ornament relative to the note.
>>
>> Here's an example of a NoteOrnament that draws an oval below a Note.
>>
>> public class DrippyNoteOrnament extends NoteOrnament {
>>
>> public DrippyNoteOrnament() {
>> setName("DrippyNoteOrnament");
>> }
>>
>> public void draw(Graphics g, double zoom, Note n) {
>> int x = n.getDrawingAnchor().x + (int) (getXoffset() * zoom);
>> int y = n.getDrawingAnchor().y + (int) (getYoffset() * zoom);
>> g.setColor(Color.blue);
>> g.drawOval(x, y, (int) (10 * zoom), (int) (80 * zoom));
>> g.setColor(Color.black);
>> }
>>
>> }
>>
>>
>> Programmatically you can assign it to a Note like this:
>> DrippyNoteOrnament drippyNoteOrnament = new DrippyNoteOrnament();
>> drippyNoteOrnament.setYoffset(12);
>> note.addUserBean(drippyNoteOrnament);
>>
>> I am writing the plug-in scanner so that NoteOrnaments will show up
>> in a hierarchical menu like other plug-ins.
>>
>> More soon
>> Nick
>>
>> jmsl at music.columbia.edu wrote:
>>> Hi Peter
>>>
>>> jmsl at music.columbia.edu wrote:
>>>> - What about the possibility of multiple marks on a single
>>>> note? (for example, a note with an accent, a fermata and a breath
>>>> mark) Otherwise, to get around this, it's a question of generating
>>>> combinations of marks.
>>> I think the idea might be that a Note would have a Vector of custom
>>> mark/ornament classes. It would iterate through and each would draw
>>> itself. So you could have both a squiggle and a twiddle on one note.
>>>> - Would it be possible for the definitions of the marks
>>>> themselves to contain information on how they were to ornament a
>>>> note? (and that that is called from within getPerformanceData() )
>>> Hmmm... maybe we could use DataTranslator here and avoid adding yet
>>> another new class.
>>>>
>>>> One other custom drawing thing that could be very, very cool: the
>>>> ability to do things like breakpoint functions on the score. This
>>>> wouldn't export to SCORE, etc. but would be really fantastic as a
>>>> compositional tool. It also gets around the paradigm of all events
>>>> being attached to notes. I can imagine a lot of things with CC
>>>> messages, etc. that happen over the course of a note, and this
>>>> seems like an interesting idea that might be possible with a custom
>>>> score renderer?
>>> Not exactly sure what you mean here. You mean continuous control of
>>> musical stuff during Score playback? Like a Note being played and
>>> spawning a MusicJob that does some arbitrary updates on its data?
>>> You could do that now with PlayLurkers. Check out
>>> http://www.punosmusic.com/pages/sabbathbride/sabbathbride.html
>>>>
>>>> I'm definitely hoping to make JMSL my main compositional software,
>>>> though I'll probably continue to use Finale, etc. for publishing.
>>>> The more that JMSL can express, the more powerful it becomes,
>>>> though I definitely agree with limiting layout and positioning
>>>> overhead.
>>> JMSL has made important advances from your use of it; your feedback
>>> and your suggestions.
>>>
>>> Thanks
>>> Nick
>>> _______________________________________________
>>> jmsl mailing list
>>> jmsl at music.columbia.edu
>>> http://music.columbia.edu/mailman/listinfo/jmsl
>> _______________________________________________
>> jmsl mailing list
>> jmsl at music.columbia.edu
>> http://music.columbia.edu/mailman/listinfo/jmsl
>
> _______________________________________________
> jmsl mailing list
> jmsl at music.columbia.edu
> http://music.columbia.edu/mailman/listinfo/jmsl
More information about the jmsl
mailing list