Skip to main content
Topic: Acciaccatura.ms (version 1.4) (Read 30677 times) previous topic - next topic

Acciaccatura.ms (version 1.4)

This object adds a slash ornament to a grace note (appoggiatura), turning it into an acciaccatura. Playback is optionally available, which will be before the beat.

Paste the following snippet into NWC 2.75, then go to Tools > Manage Objects to install the object.

Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.751,Single)
|User|Acciaccatura.ms|Pos:-2
|Note|Dur:8th,Grace|Pos:0
|User|Acciaccatura.ms|Pos:-2|Style:Downward
|Chord|Dur:8th,Grace|Pos:0,1
|User|Acciaccatura.ms|Pos:-2
|Note|Dur:8th,Grace|Pos:0|Opts:Stem=Down
|User|Acciaccatura.ms|Pos:-2|Style:Downward
|Chord|Dur:8th,Grace|Pos:-1,0|Opts:Stem=Down
|Bar
!NoteWorthyComposerClip-End

Once the plugin is installed, insert the object to the left of the eighth grace note or chord you wish to ornament. The slash will be automatically added at the correct location on the note's flag. If Class = Standard, only a single grace note will receive the ornament; if Class = StaffSig, all subsequent eligible grace notes, up to the next Acciaccatura.ms object, will be affected. To discontinue automatic acciaccatura marks, insert another object with Class = Standard, or Visibility set to Never. (The first option will ornament a single following grace note; the second option will end ornamentation.)

Also note that for Class = StaffSig, playback will only occur for grace notes within a SPP offset of 32 quarter notes from the location of the user object. Insert additional StaffSig objects in your score if you have grace notes that are too far from the user object, or for the most accurate playback, use Class = Standard objects at each grace note location.

The object has the following parameters:

Rate: Specifies the playback rate for the acciaccatura, expressed as the number of notes per whole note duration. For example, 64 would correspond to a 1/64 note. A value of 0 disables playback, which is the default. Also note that the grace note must be muted for playback to occur.
Down-stem Style: Determines the style for the slash ornament on down-stem notes. Selecting "Upward" will render the slash from lower left to upper right (the same as for up-stem notes), while selecting "Downward" will render the slash from upper left to lower right.  The default is "Upward".

The current object will only affect an unbeamed eighth (quaver) grace note.

Note that playback will currently work correctly only for a single acciaccatura preceding a note. Multiple note playback, as well as beamed notes, are under future consideration.

Re: Acciaccatura.ms (version 0.95)

Reply #1
The Acciaccatura.ms user object has been updated, with the following changes:

  • Help text is added
  • Minor rendering adjustments

Please refer to the parent post for a description of the available parameters.

As always, feedback and suggestions are greatly appreciated.

Mike

Re: Acciaccatura.ms (version 0.95)

Reply #2
Could this be adapted to treat all subsequent grace notes as acciaccaturas until another instance cancels it?

I'm imagining something similar to Ottavamatic.

Re: Acciaccatura.ms (version 0.95)

Reply #3
Thanks for the suggestion. I'm currently exploring a way to change it to a "dual use" object: when Class=Standard, it behaves as it does now, and only modifies the next grace note it finds; when Class=StaffSig, it takes on the new behavior you propose (and inserts a label in the score).


Re: Acciaccatura.ms (version 0.95)

Reply #4
Hi,

maybe I'm wrong (sorry if it's the case ;)) but I would say that acciaccatura line might be in other direction when stem down...
I mean,  / <--- this direction for stem up (as it does) but  \ <--- this direction for stem down.

What do you think Mike?
[...] y el mayor bien es pequeño: que toda la vida es sueño, y los sueños, sueños son.

Re: Acciaccatura.ms (version 0.95)

Reply #5
Hi,

maybe I'm wrong (sorry if it's the case ;)) but I would say that acciaccatura line might be in other direction when stem down...
I mean,  / <--- this direction for stem up (as it does) but  \ <--- this direction for stem down.

What do you think Mike?

Thanks lloyd - a quick check of the Lilypond reference page would seem to indicate that you are correct. I followed the examples in this thread when I created my object. I guess I can correct the slash direction when I make my next update.

EDIT: Per follow-ups on this thread below, it seems the jury is still out. Perhaps I will add a configurable option so people can have it however they like it.

Mike

Re: Acciaccatura.ms (version 0.95)

Reply #6
maybe I'm wrong (sorry if it's the case ;)) but I would say that acciaccatura line might be in other direction when stem down...
I mean,  / <--- this direction for stem up (as it does) but  \ <--- this direction for stem down.
You are. Who knows?
Registered user since 1996

Re: Acciaccatura.ms (version 0.95)

Reply #7
Your example is from Alfred's; the one I linked is from the Lilypond reference, which I have found to be fairly accurate in the past. Do we have a tie-breaker vote? "Behind Bars" perhaps?

Re: Acciaccatura.ms (version 0.95)

Reply #8
Behind bars, strangely, does not explicitly say. However, all the examples show that the diagonal stroke is top right to bottom left (/) for tails up and top left to bottom right (\) for tails down.

Rich.

Re: Acciaccatura.ms (version 0.95)

Reply #9

Here I go again.  In 50 years of playing woodwind parts in treble clef, sometimes divisi but usually single voice, I don't recall ever seeing a grace note with a downward stem.  Rick's second example shows how limited my experience has been...  ;)

Having said that, if you slope the slash like / care must be taken to make it very obvious the flag on the downstem eighth note isn't confused by the eye into looking like a sixteenth note with no slash.  Rick's second example accomplishes this.

I wouldn't rely on Lilypond as an authority, the developers stand in exactly the same position as Eric - they're software designers with an interest in music, and they don't create the world's notation standards. 

Perhaps there would be some way to make the slash direction user-controllable for downward stem notes.  If a \ stem is mandatory on downstem graces, there's bound to be some in the Noteworthy community who would find it difficult to live with.


Re: Acciaccatura.ms (version 1.0)

Reply #10
The Acciaccatura.ms user object has been updated, with the following changes:

  • Help text is updated
  • StaffSig option is added, allowing multiple grace notes to be ornamented with a single object instance.

Please note that I have decided to leave the slash direction on downward stems as is for now, as discussed above. If someone can convince me that a configurable option is worthwhile, I'll add it.

Please refer to the parent post for a description of the object.

As always, feedback and suggestions are greatly appreciated.

Mike

Re: Acciaccatura.ms (version 1.0)

Reply #11
Quote
To discontinue automatic acciaccatura marks, insert another object with Class = Standard, or Visibility set to Never.
Yes, but with a difference: setting Visibility to Never works as described; inserting another object with Class = Standard will work for the subsequent grace notes but the first one.

Re: Acciaccatura.ms (version 1.0)

Reply #12
This is correct; I've updated the description at the top of the thread to mention this.

Thanks,
Mike

Re: Acciaccatura.ms (version 1.0)

Reply #13
Mike,
just a BIG thank you for a very useful object
(The first which I've tried to use)
At last you've got this 85-year old to venture into the use of objects.

Re: Acciaccatura.ms (version 1.0)

Reply #14
One little glitch (in my opinion): if I put an acciaccatura object with Class = StaffSig, then all the grace notes have a slash... including the hidden ones, in which case only the slash is visible!  :D
The workaround is simple but I think it should be very easy to "fix" the object.  ;)

Re: Acciaccatura.ms (version 1.1)

Reply #15
The Acciaccatura.ms user object has been updated, with the following changes:

  • Marking is now suppressed on hidden grace notes

For the programming minded, you can see the code changes here.

Please refer to the parent post for a description of the object.

As always, feedback and suggestions are greatly appreciated.

Re: Acciaccatura.ms (version 1.1)

Reply #16
Thanks a lot, Mike!

Re: Acciaccatura.ms (version 1.1)

Reply #17
There is a reason for the acciaccatura inserted as StaffSig is no more visible as... I don't remember how it's called.
Let me say: like "PageTxtMaestro".

Re: Acciaccatura.ms (version 1.1)

Reply #18
There is a reason for the acciaccatura inserted as StaffSig is no more visible as... I don't remember how it's called.
Let me say: like "PageTxtMaestro".
I'm afraid I don't understand your question/request. Is it not displaying in your score? Can you post an example?

Re: Acciaccatura.ms (version 1.1)

Reply #19
Ops!
Unable to reproduce the effect.
Sorry Mike, forget it all.

Re: Acciaccatura.ms (version 1.1)

Reply #20
I know this plugin is just esthetic, but, Mike, what do you thing about making it also playing?
When the tempo is slow, 1/32 is too long for an acciaccatura and I have to add a staff just for this.
Sometimes also an 1/64 is too slow. The best could be to also allow the fusa (1/128).

Re: Acciaccatura.ms (version 1.1)

Reply #21
I'm not that familiar with the different types of grace notes, so I wouldn't know how to proceed with adding playback to this object. I would assume that playback would only take place when the ornamented note is muted, but what other parameters should there be to control its playback? Duration? Time offset?  How would its playback differ from a regular grace note? Would it make sense for playback to only occur when the object is in Standard mode (i.e. not StaffSig)?

Re: Acciaccatura.ms (version 1.1)

Reply #22
Well, I thing the arpeggio is similar but more complicated.
There you already solved the problem of the note duration and of the optional anticipated playing.
Look at the acciaccatura like a... one note arpeggio.
Or did I overlook something?

Re: Acciaccatura.ms (version 1.1)

Reply #23
I understand what you are saying, and I know how to add playback events to a plugin, but in order to do this correctly, I want to understand the mechanics of the acciaccatura, versus what NWC is already doing with its built-in grace note (which I assume is an appoggiatura).

Said another way: I don't want to "guess" as to how and when to play back the notes. I'm looking for some sort of rules on how to create the MIDI notes, what variations should exist for their playback, and what the default values should be. Hopefully, this can be done in a "mathematical" way. Does that make sense?

One final comment: I've done a bit of searching on the term, and most pages discuss them in terms of specific instruments. Most often it will be piano or flute, with differences in how they are played for those two instruments. Also, there seems to be some differences in how they are played over the years. Maybe some of this is not relevant to the discussion and can be safely ignored, but I know that many NWC users are creating scores for historical pieces, so perhaps I need to address these changes.

I apologize if I am being dense here. When it comes to certain notation, I am a bit of a novice, and I want to "do it right".

Thanks again,
Mike

Re: Acciaccatura.ms (version 1.1)

Reply #24
Sorry if I chime in - I think you will (or have to) open a can of worms with play back of ornaments (at least, I'm going to open it ...).

First, currently, NWC plays grace notes "wrongly" - by default, they are in today's music almost always played before the beat (so that the main note is on the beat), but NWC plays the grace note on the beat. But at least in older music, and if one wants to stress the ornament, playing it nearer to or right on the beat is also useful or even "correct".

But then, all note playing by NWC is a huge (and, often, not too good) compromise. Just singling out the grace note and maybe the arpeggio may help a few here with a few pieces, but actually the whole concept of "what does it mean to render a score" needs to be revisited. For example, it is, in general, certainly wrong in many cases to play notes exactly as long as they are notated (i.e., up to the start of the next beat minus an epsilon to create an audible break to the next note); and it is often not even clear that notes are to be started when the score says so ("laid back" and "laid forward" playing are typical styles even in classical music!).

To "go meta" even more, I think that one even needs to know for what purpose a sound rendition is made. Even with live performing, you will sing or play very differently if you want to get a crisp and clear rhythm e.g. in early rehearsals - whereas in the actual concert, many decisions on where notes start and how long they sound will be different.

I use NWC to create rehearsal voices for our choir - there, I need "mathematical placement of notes". But I also try to do "more artistic renditions" - and see and hear many limits there.

In some other thread, someone asked about hooking up Kontakt to NWC - I have looked at Kontakt (and some other virtual instruments) a little and found that parameterizing them is a software project of its own. I have some ideas on how this should be done - but mainly I think that revisiting "how to play music from a notation program" needs a "holistic" approach.

For the current topic and plugin, I would therefore say that there is not too much to be gained from deep research - rather, some compromise that makes a few users somewhat more happy would actually be fine.

(I "criticized" the trill object also some time back on the grounds that it is too limited to play "real" or "really good" trills. But exactly because it is not easy - if possible at all - to design a trill that can do "all trills needed", I am happy with the current, simple version. If I need something more versatile - well, I'll probably have to do it - or at least, specify it! - myself ...).

H.M.

P.S. On re-reading, this is sort of rambling along - forgive me if it does not make too much sense ...

Re: Acciaccatura.ms (version 1.1)

Reply #25
Thanks very much for sharing that information, it was very helpful. I have done a few experiments with the native NWC grace notes, and I'm made the following observations:

As you say, they occur on the beat, and they steal time from the notes they precede. However, I've noticed that when they are muted, they no longer steal playback time from the following notes (which makes sense). Therefore, if an acciaccatura object were applied to a muted grace note (so that it could play in its stead), it would be able to play anticipated (which I would say is the desired effect). However, I don't think it would be able to be played on the beat, since it would overlap the following note's playback (unless that note were ALSO muted, which opens the can of worms slightly wider)

Another challenge for such an object is to not overlap the notes which precede it. Plus, there is the fact that it's not possible to add "before beat" playback on the first note of a score. I have mentioned this in the help file for Arpeggio.ms:
Quote
Note that if playback begins with an anticipated arpeggio, it will play in the normal style, since attempting to begin its playback before the start of the score, or before the user presses the Play button, could result in a causality violation.

Re: Acciaccatura.ms (version 1.1)

Reply #26
OT: I like the "could" in "could result in a causality violation." You might add ", thereby possibly bringing the known universe to an immediate end" or the like  ;D  :o

Re: Acciaccatura.ms (version 1.1)

Reply #27
Quote
Sorry if I chime in
Nope: thanks for chiming in, instead.
I completely agree with you. You saved my typing effort.  :D

Quote
I don't think it would be able to be played on the beat, since it would overlap the following note's playback (unless that note were ALSO muted, which opens the can of worms slightly wider)
Exactly as the arpeggio requires...

Quote
another challenge for such an object is to not overlap the notes which precede it.
Exactly like the arpeggio.

Quote
Plus, there is the fact that it's not possible to add "before beat" playback on the first note of a score.
Yes, but a hidden rest on all the staves solves brilliantly the problem.
And the arpeggio has also the problem of not exceeding the length of the chord, otherwise some odd things happen.

As I told, I'm amazed on how you somehow solved all those problem in the arpeggio object.
And if I had time to study Lua (and now it's already more than a year that I formulated that wish), starting with your object I would do it myself.

 

Re: Acciaccatura.ms (version 1.1)

Reply #28
Okay, so based on the comments from @Flurmy and @hmmueller, I think I am ready to begin work on an Acciaccatura.test object, which will do the following:
  • Current ornament behavior
  • When the following grace note is muted, and the Playback option is checked, it will perform its playback function, which will ONLY be "before beat" playback.
  • The duration of the playback note will be specified via a parameter, possibly along with a "delay" parameter (I need feedback on whether this is needed). I am thinking of specifying this in the same units as the Arpeggio rate: a number which corresponds to the type of note. I.e. 32 = 32nd note, 64 = 64th note. Probably a maximum of 128.
  • I'm not sure if a StaffSig object can insert playback events, but I will experiment with this.
  • In looking at "Behind Bars", I notice that she provides examples of acciaccatura markings on multiple beamed notes. Is this something that is called for enough that I should implement it? And likewise, I suppose the object will need to handle multiple grace notes? (this could be the tricky part - basically an actual arpeggio)

Re: Acciaccatura.ms (version 1.1)

Reply #29
The duration of the playback note will be specified via a parameter, possibly along with a "delay" parameter
Sorry, what do you mean with "delay"? (No, I'm not just requesting a translation  :D )

In looking at "Behind Bars", I notice that she provides examples of acciaccatura markings on multiple beamed notes.
Sorry again. What's "Behind Bars"?
Anyway, yes, it's normal to have multiple notes acciaccatura.

Re: Acciaccatura.ms (version 1.1)

Reply #30
Sorry, what do you mean with "delay"? (No, I'm not just requesting a translation  :D )
Perhaps "delay" was the wrong word. I mean a time "rest" between the end of the grace note and the start of the normal note that follows. Maybe an example would help. Let's say I have a 64th note acciaccatura followed by a quarter note. If the "rest" was zero, then the start of the grace note playback would be 1/64 beat prior to the start of the quarter note. But perhaps you want the note to have a shorter duration, but still start 1/64 beat before the quarter note. You could do this by setting the duration of the grace note to be 1/128, and then having a 1/128th "rest" value.  I have no idea if this makes any sense musically, which is why I asked the question in the first place.  I suppose it would have the same effect to not have the "rest" parameter, and simply add a staccato mark on the grace note (which I also don't know if that makes any sense notation-wise).
Sorry again. What's "Behind Bars"?
This.
Anyway, yes, it's normal to have multiple notes acciaccatura.
Thanks for the feedback.

Re: Acciaccatura.ms (version 1.1)

Reply #31
FWIW you can only have one acciaccatura which is played as short as possible immediately before (sometimes with) the principal note. The term is Italian for crushed. Multiple notes would almost certainly be appoggiaturas which have a definite length. They can be lengthened with hidden tied notes, but not shortened. We do need a method of playing them too before the beat.


Re: Acciaccatura.ms (version 1.1)

Reply #32
I mean a time "rest" between the end of the grace note and the start of the normal note that follows ... I have no idea if this makes any sense musically ...
No, this doesn't make sense. On all instruments I know (strings, keys, wind), acciaccaturas are played "quickly", which requires that are they played with a single "movement" (or air breath). If a composer or arranger wanted a gap, she or he could always write it with standard notation - which has become useful, and later customary, anyway from maybe the mid-1800s onward.

H.M.

Re: Acciaccatura.ms (version 1.1)

Reply #33
From the italian version of Wikipedia (the english version is less detailed):
Quote
The acciaccatura is drawn with one or more notes of short value. When it's a single note it has a diagonal stroke to tell it from the appoggiatura.
In the multiple acciaccatura, instead, the notes are two or more and are written as small notes of 1/16, 1/32, 1/64 or 1/128 of duration, without the stroke, slurred to the real note.
(omissis)
The duration of the execution is very short.
(omissis)
It's possible to find simple, double, triple or intermediate (??? Sorry, I don't understand what they mean with this) acciaccature.
The acciaccature are often found before a chord.
In the 1600 the acciaccature were usually played on beat; in the 1800 the were often played anticipated.

Re: Acciaccatura.ms (version 1.1)

Reply #34
There are limits to what can currently be done with plugin objects. From what I understand, a plugin can add MIDI events at a specified point in time in the score, but plugin itself has no "duration". That is, it takes up no beats in the score. Also, it can't affect the playback parameters of any other notes in the score. This is why I am limited to having "before beat" playback; the note that follows the acciaccatura can't be moved or shortened, so it will play back at its intended spot. I suppose it's possible to insert a hidden rest in front of the main note, but that would leave extra space in the measure and throw off the timing. Also, I don't think that hidden grace rests will steal time from the start of a note. (Someone please correct me if I am wrong on this)

Re: Acciaccatura.ms (version 1.1)

Reply #35
....I don't think that hidden grace rests will steal time from the start of a note. (Someone please correct me if I am wrong on this)

I'm pretty sure you're right, Mike. Hidden grace objects (notes and rests) take no time. This is so they can be used to help shape slurs without affecting playback.

Re: Acciaccatura.ms (version 1.1)

Reply #36
Code: (nwc) [Select · Download]
!NoteWorthyComposer(2.75)
|Editor|ActiveStaff:2|CaretIndex:1|CaretPos:0
|SongInfo|Title:""|Author:""|Lyricist:""|Copyright1:""|Copyright2:""
|PgSetup|StaffSize:16|Zoom:4|TitlePage:Y|JustifyVertically:Y|PrintSystemSepMark:N|ExtendLastSystem:N|DurationPadding:Y|PageNumbers:1|StaffLabels:None|BarNumbers:Plain|StartingBar:1
|Font|Style:StaffItalic|Typeface:"Times New Roman"|Size:10|Bold:Y|Italic:Y|CharSet:0
|Font|Style:StaffBold|Typeface:"Times New Roman"|Size:8|Bold:Y|Italic:N|CharSet:0
|Font|Style:StaffLyric|Typeface:"Times New Roman"|Size:7|Bold:N|Italic:N|CharSet:0
|Font|Style:PageTitleText|Typeface:"Times New Roman"|Size:24|Bold:Y|Italic:N|CharSet:0
|Font|Style:PageText|Typeface:"Times New Roman"|Size:12|Bold:N|Italic:N|CharSet:0
|Font|Style:PageSmallText|Typeface:"Times New Roman"|Size:8|Bold:N|Italic:N|CharSet:0
|Font|Style:User1|Typeface:"MusikDingsSans"|Size:16|Bold:N|Italic:N|CharSet:0
|Font|Style:User2|Typeface:"MusikTextEuroSans"|Size:10|Bold:N|Italic:N|CharSet:0
|Font|Style:User3|Typeface:"MusikTextEuroSans"|Size:8|Bold:N|Italic:N|CharSet:0
|Font|Style:User4|Typeface:"Times New Roman"|Size:8|Bold:N|Italic:N|CharSet:0
|Font|Style:User5|Typeface:"Times New Roman"|Size:8|Bold:N|Italic:N|CharSet:0
|Font|Style:User6|Typeface:"Times New Roman"|Size:8|Bold:N|Italic:N|CharSet:0
|PgMargins|Left:1.27|Top:1.27|Right:1.27|Bottom:1.27|Mirror:N
|AddStaff|Name:"Right hand"|Label:"Harp"|Group:"Standard"
|StaffProperties|EndingBar:Open (hidden)|Visible:Y|BoundaryTop:13|BoundaryBottom:10|Lines:5|WithNextStaff:Brace,ConnectBars|Color:Default
|StaffProperties|Muted:N|Volume:127|StereoPan:64|Device:0|Channel:1
|StaffInstrument|Name:"Harp"|Patch:46|Trans:0|DynVel:10,30,45,60,75,92,108,127
|Clef|Type:Treble
|Key|Signature:Bb|Tonic:F
|TimeSig|Signature:Common
|Dynamic|Style:f|Pos:-8|Visibility:Never
|Tempo|Tempo:63|Pos:14|Visibility:Never
|Bar
|Chord|Dur:16th|Pos:-2,0,5|Opts:Stem=Down,Beam=First
|Chord|Dur:16th|Pos:1,6|Opts:Stem=Down,Beam
|TempoVariance|Style:Ritenuto|Pos:13
|Chord|Dur:16th|Pos:2,7|Opts:Stem=Down,Beam
|Chord|Dur:16th|Pos:1,6|Opts:Stem=Down,Beam=End
|Chord|Dur:16th|Pos:0,5|Opts:Stem=Down,Beam=First
|Chord|Dur:16th|Pos:-1,4|Opts:Stem=Down,Beam
|Chord|Dur:16th|Pos:-2,3|Opts:Stem=Down,Beam
|Chord|Dur:16th|Pos:-3,2|Opts:Stem=Down,Beam=End
|Spacer|Width:225
|Note|Dur:Whole,Grace|Pos:-5x^|Opts:Muted|Visibility:Never
|Note|Dur:Whole,Grace|Pos:-5y^|Visibility:Never
|Note|Dur:Whole,Grace|Pos:-5y^|Visibility:Never
|Note|Dur:Whole,Grace|Pos:-5y^|Visibility:Never
|Note|Dur:Whole,Grace|Pos:-5y|Visibility:Never
|Note|Dur:8th,Grace|Pos:-4^|Opts:Stem=Up,Beam=First|Visibility:Never
|Note|Dur:8th,Grace|Pos:-2^|Opts:Stem=Up,Beam|Visibility:Never
|Note|Dur:8th,Grace|Pos:1^|Opts:Stem=Up,Beam=End|Visibility:Never
|TempoVariance|Style:Fermata|Pause:4|Pos:11|Justify:Center|Placement:AtNextNote
|Tempo|Tempo:40|Pos:17|Visibility:Never
|Chord|Dur:4th|Pos:-4,-2,1,3|Opts:Stem=Up
|Tempo|Tempo:63|Pos:14|Visibility:Never
|Text|Text:"a tempo"|Font:StaffItalic|Pos:19
|Dynamic|Style:mf|Pos:-11
|Chord|Dur:8th,Triplet=First|Pos:-3,4|Opts:Stem=Up,Beam=First
|Chord|Dur:8th,Triplet|Pos:-2,5|Opts:Stem=Up,Beam
|Chord|Dur:8th,Triplet=End|Pos:-1,6|Opts:Stem=Up,Beam=End
|Bar
|Bar|Style:SectionClose|SysBreak:Y
|AddStaff|Name:"Left hand"|Group:"Standard"
|StaffProperties|EndingBar:Open (hidden)|Visible:Y|BoundaryTop:10|BoundaryBottom:10|Lines:5|WithNextStaff:Brace,ConnectBars|Color:Default
|StaffProperties|Muted:N|Volume:127|StereoPan:64|Device:0|Channel:2
|StaffInstrument|Name:"Harp"|Patch:46|Trans:0|DynVel:10,30,45,60,75,92,108,127
|Clef|Type:Bass
|Key|Signature:Bb|Tonic:F
|TimeSig|Signature:Common
|Dynamic|Style:mp|Pos:-8|Visibility:Never
|Bar
|User|Arpeggio.ms|Pos:-3|Offset:0|Anticipated:Y
|Chord|Dur:4th|Pos:0,2,5|Opts:Stem=Up,Muted|Dur2:Half|Pos2:-4
|Chord|Dur:4th|Pos:2,5,7|Opts:Stem=Up
|User|Arpeggio.ms|Pos:22|MarkerExtend:Y|Play:N
|Spacer|Width:50
|Note|Dur:8th,Grace|Pos:-1^|Opts:Stem=Up,Beam=First|Visibility:Never
|Note|Dur:8th,Grace|Pos:3^|Opts:Stem=Up,Beam|Visibility:Never
|Note|Dur:8th,Grace|Pos:5^|Opts:Stem=Up,Beam|Visibility:Never
|Note|Dur:8th,Grace|Pos:7^|Opts:Stem=Up,Beam=End|Visibility:Never
|Note|Dur:Whole,Grace|Pos:-5x^|Opts:Muted|Visibility:Never
|Note|Dur:Whole,Grace|Pos:-5y^|Visibility:Never
|Note|Dur:Whole,Grace|Pos:-5y^|Visibility:Never
|Note|Dur:Whole,Grace|Pos:-5y|Visibility:Never
|Chord|Dur:4th|Pos:3,5,7|Opts:Stem=Up|Dur2:4th|Pos2:-1
|Rest|Dur:4th
|Bar
|Bar|Style:SectionClose
!NoteWorthyComposer-End
A trick from Rick the Wizard...



Re: Acciaccatura.ms (version 1.2)

Reply #39
The Acciaccatura.ms user object has been updated, with the following changes:

  • Playback has been implemented, as a note of specified duration prior to the beat.

Please refer to the parent post for a description of the available parameters.


Re: Acciaccatura.ms (version 1.2)

Reply #40
There is only one problem with this. 

Your rendition of a playing Acciaccatura is now better and more flexible than the NoteWorthy version of the Appoggiatura.

You can see what's coming can't you ?

Rich.

Re: Acciaccatura.ms (version 1.2)

Reply #41
There is only one problem with this. 

Your rendition of a playing Acciaccatura is now better and more flexible than the NoteWorthy version of the Appoggiatura.

You can see what's coming can't you ?
I guess one possible outcome would be for NWC to add a property to a grace note to allow the flag to be shown / not shown, and for playback to begin before or at the beat, which would render the object obsolete.  I am okay with that; it won't be the first object that has been ashcanned because of a new feature.

Re: Acciaccatura.ms (version 1.2)

Reply #42
It didn't work for me until I realised that you needed to mute the grace note. Perhaps this could be mentioned more explicitly in the dialogue box.

And just a thought: if you muted the main note too then could you steal time from it so that we could have a variable appoggiatura on the beat specified by perhaps a minus number.

Re: Acciaccatura.ms (version 1.21)

Reply #43
The Acciaccatura.ms user object has been updated, with the following changes:

  • The object's help file has been updated to clarify playback requirements.

Re: Acciaccatura.ms (version 1.3)

Reply #44
The Acciaccatura.ms user object has been updated, with the following changes:

  • A parameter has been added to specify the rendering style for down-stem acciaccatura.

Re: Acciaccatura.ms (version 1.3)

Reply #45
Thank you very much, Mike.
But I found a buglet. Listen here:
Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.751,Single)
|User|Acciaccatura.ms|Pos:2|Class:StaffSig|Rate:64
|Clef|Type:Treble
|Key|Signature:Bb|Tonic:F
|TimeSig|Signature:Common
|Tempo|Tempo:60|Pos:13|Visibility:Never
|Text|Text:"Largo"|Font:StaffItalic|Pos:8
|Rest|Dur:8th
|Dynamic|Style:p|Pos:-14|Wide:Y|Justify:Right|Placement:AtNextNote
|Note|Dur:8th,Slur|Pos:-8|Opts:Stem=Up,Beam=First
|Note|Dur:8th,Grace,Slur|Pos:-6|Opts:Muted
|Note|Dur:8th,Slur|Pos:-7|Opts:Stem=Up,Beam
|Note|Dur:8th|Pos:-8|Opts:Stem=Up,Beam=End
|Bar
!NoteWorthyComposerClip-End

Re: Acciaccatura.ms (version 1.3)

Reply #46
While I suppose that the previous problem is due to the fact that, using the acciaccatura at the staff signature, the note velocity is decided once for all at the beginning, this problem is more subtle (I think):
Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.751,Single)
|User|Acciaccatura.ms|Pos:2|Class:StaffSig|Rate:64
|Clef|Type:Treble
|Key|Signature:Bb|Tonic:F
|Tempo|Tempo:50|Pos:16|Visibility:Never
|TimeSig|Signature:2/4
|Dynamic|Style:f|Pos:-11
|Text|Text:"Largo"|Font:StaffItalic|Pos:11
|Chord|Dur:4th,Accent|Pos:-3,-1,2|Opts:Stem=Up
|Chord|Dur:4th,Accent|Pos:-3,0,2|Opts:Stem=Up
|Bar
|Chord|Dur:Half,Accent|Pos:2,3,7|Opts:Stem=Down
|Bar
|Chord|Dur:8th,Accent|Pos:#1,3,6|Opts:Stem=Down,Beam=First
|TempoVariance|Style:Fermata|Pause:2|Pos:6|Justify:Center|Placement:AtNextNote
|Note|Dur:8th|Pos:-6^|Opts:Stem=Down,Beam=End
|Note|Dur:32nd|Pos:-6|Opts:Stem=Up,Beam=First
|Note|Dur:32nd,Slur|Pos:-7|Opts:Stem=Up,Beam
|Note|Dur:32nd,Slur|Pos:-8|Opts:Stem=Up,Beam
|Tempo|Tempo:40|Pos:12|Visibility:Never
|TempoVariance|Style:Rallentando|Pos:8
|Note|Dur:32nd,Slur|Pos:#-9|Opts:Stem=Up,Beam=End
|Note|Dur:16th,Triplet=First,Slur|Pos:-8|Opts:Stem=Up,Beam=First
|Note|Dur:16th,Triplet,Slur|Pos:#-6|Opts:Stem=Up,Beam
|Note|Dur:16th,Triplet=End|Pos:-4|Opts:Stem=Up,Beam=End
|Bar
|Tempo|Tempo:30|Pos:10|Visibility:Never
|Tempo|Tempo:60|Pos:6|Visibility:Never
|Note|Dur:Half,Accent|Pos:0|Opts:Stem=Down
|Bar|Style:Double
|TimeSig|Signature:Common
|Tempo|Tempo:60|Pos:13|Visibility:Never
|Text|Text:"Largo"|Font:StaffItalic|Pos:8
|Rest|Dur:Half
|Rest|Dur:8th
|Dynamic|Style:p|Pos:-14|Wide:Y|Justify:Right|Placement:AtNextNote
|Note|Dur:8th,Slur|Pos:-8|Opts:Stem=Up,Beam=First
|Note|Dur:8th,Grace,Slur|Pos:-6|Opts:Crescendo,Muted
|Note|Dur:8th,Slur|Pos:-7|Opts:Stem=Up,Crescendo,Beam
|Note|Dur:8th|Pos:-8|Opts:Stem=Up,Crescendo,Beam=End
|Bar
|Note|Dur:Half|Pos:-1^|Opts:Stem=Up,Crescendo
|Note|Dur:8th|Pos:-1|Opts:Stem=Up,Crescendo,Beam=First
|Note|Dur:8th|Pos:-3|Opts:Stem=Up,Crescendo,Beam
|Note|Dur:8th,Slur|Pos:-3|Opts:Stem=Up,Crescendo,Beam
|Note|Dur:8th|Pos:-2|Opts:Stem=Up,Crescendo,Beam=End
|Dynamic|Style:mf|Pos:-14|Visibility:Never
|Bar
|Note|Dur:8th,Grace,Slur|Pos:-2|Opts:Stem=Up,Muted
|Note|Dur:8th,Slur|Pos:-3|Opts:Stem=Up,Beam=First
|Note|Dur:8th|Pos:-4|Opts:Stem=Up,Beam=End
|Note|Dur:Half,Slur|Pos:0^|Opts:Stem=Down,Slur=Downward
|Note|Dur:8th,Slur|Pos:0|Opts:Stem=Up,Slur=Downward,Beam=First
|Note|Dur:8th|Pos:-7|Opts:Stem=Up,Beam=End
|Bar
|DynamicVariance|Style:Crescendo|Pos:-14|Placement:AtNextNote
|Note|Dur:8th,Slur|Pos:-7|Opts:Stem=Up,Beam=First
|Note|Dur:8th,Slur|Pos:-8|Opts:Stem=Up,Beam
|Note|Dur:8th,Slur|Pos:#-6|Opts:Stem=Up,Beam
|Note|Dur:8th,Slur|Pos:-4|Opts:Stem=Up,Beam=End
|Note|Dur:8th|Pos:-2|Opts:Stem=Up,Beam=First
|Note|Dur:8th,Slur|Pos:-2|Opts:Stem=Up,Beam
|Note|Dur:8th,Slur|Pos:-3|Opts:Stem=Up,Beam
|Note|Dur:8th|Pos:-6|Opts:Stem=Up,Beam=End
|Bar
|Note|Dur:8th,Slur|Pos:-4|Opts:Stem=Up,Beam=First
|Note|Dur:8th|Pos:-5|Opts:Stem=Up,Beam=End
|Dynamic|Style:f|Pos:-14|Visibility:Never
|Note|Dur:8th,Grace,Slur|Pos:-4|Opts:Stem=Up,Muted
|Note|Dur:16th,Staccato,Slur|Pos:-5|Opts:Stem=Up,Diminuendo,Beam=First
|Note|Dur:16th,Staccato,Slur|Pos:#-6|Opts:Stem=Up,Diminuendo,Beam
|Note|Dur:16th,Staccato,Slur|Pos:-5|Opts:Stem=Up,Diminuendo,Beam
|Note|Dur:16th,Staccato,Slur|Pos:-4|Opts:Stem=Up,Diminuendo,Beam=End
|Note|Dur:8th,Staccato|Pos:-3|Opts:Stem=Up,Beam=First
|Dynamic|Style:p|Pos:-14|Visibility:Never
|Note|Dur:8th,Slur|Pos:-8|Opts:Stem=Up,Beam
|Note|Dur:8th,Grace,Slur|Pos:n-6|Opts:Stem=Up,Muted
|Note|Dur:8th,Slur|Pos:-7|Opts:Stem=Up,Beam
|Note|Dur:8th|Pos:-8|Opts:Stem=Up,Beam=End
|Bar
|Note|Dur:Half|Pos:-1^|Opts:Stem=Up,Crescendo
|Note|Dur:8th|Pos:-1|Opts:Stem=Up,Crescendo,Beam=First
|Note|Dur:8th|Pos:-3|Opts:Stem=Up,Crescendo,Beam
|Note|Dur:8th,Slur|Pos:-3|Opts:Stem=Up,Crescendo,Beam
|Note|Dur:8th|Pos:-2|Opts:Stem=Up,Crescendo,Beam=End
|Bar
|Dynamic|Style:f|Pos:-14|Visibility:Never
|Note|Dur:8th,Grace,Slur|Pos:-2|Opts:Stem=Up,Muted
|Note|Dur:8th,Slur|Pos:-3|Opts:Stem=Up,Beam=First
|Note|Dur:8th|Pos:-4|Opts:Stem=Up,Beam=End
|Note|Dur:Half,Slur|Pos:0^|Opts:Stem=Down,Slur=Downward
|Note|Dur:8th,Slur|Pos:0|Opts:Stem=Up,Slur=Downward,Beam=First
|Note|Dur:8th|Pos:-7|Opts:Stem=Up,Beam=End
|Bar
|TempoVariance|Style:Rallentando|Pos:8
|Note|Dur:8th,Slur|Pos:-7|Opts:Stem=Up,Beam=First
|Note|Dur:8th|Pos:-8|Opts:Stem=Up,Beam
|Note|Dur:8th,Slur|Pos:-5|Opts:Stem=Up,Beam
|Note|Dur:8th|Pos:#-6|Opts:Stem=Up,Beam=End
|Note|Dur:4th,Dotted,Slur|Pos:-2|Opts:Stem=Up
|Note|Dur:8th|Pos:-4|Opts:Stem=Up
|Bar
|Dynamic|Style:f|Pos:-14
|Note|Dur:8th,Slur|Pos:-4|Opts:Stem=Up,Beam=First
|Note|Dur:8th|Pos:-5|Opts:Stem=Up,Beam=End
|Note|Dur:8th,Grace,Slur|Pos:-4|Opts:Stem=Up,Muted
|Note|Dur:8th,Slur|Pos:-5|Opts:Stem=Up,Beam=First
|Note|Dur:8th,Slur|Pos:#-6|Opts:Stem=Up,Beam=End
|Note|Dur:4th|Pos:-5|Opts:Stem=Up
|Tempo|Tempo:40|Pos:10|Visibility:Never
|Rest|Dur:4th
|Bar|Style:MasterRepeatOpen
|Tempo|Tempo:80|Pos:9|Visibility:Never
|Dynamic|Style:mf|Pos:-11
|Note|Dur:4th,Slur|Pos:1^|Opts:Stem=Down
|Note|Dur:16th,Triplet=First,Slur|Pos:1|Opts:Stem=Down,Beam=First
|Note|Dur:16th,Triplet,Slur|Pos:n0|Opts:Stem=Down,Beam
|Note|Dur:16th,Triplet=End,Slur|Pos:1|Opts:Stem=Down,Beam
|Note|Dur:16th,Triplet=First,Slur|Pos:2|Opts:Stem=Down,Beam
|Note|Dur:16th,Triplet,Slur|Pos:3|Opts:Stem=Down,Beam
|Note|Dur:16th,Triplet=End,Slur|Pos:4|Opts:Stem=Down,Beam=End
|Note|Dur:16th,Dotted|Pos:5|Opts:Stem=Down,Beam=First
|Note|Dur:32nd,Slur|Pos:4|Opts:Stem=Down,Beam
|Note|Dur:16th,Dotted|Pos:3|Opts:Stem=Down,Beam
|Note|Dur:32nd,Slur|Pos:2|Opts:Stem=Down,Beam=End
|Note|Dur:8th,Slur|Pos:1|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:b0|Opts:Stem=Down,Beam=End
|Bar
|Note|Dur:8th,Slur|Pos:0|Opts:Stem=Up,Beam=First
|Note|Dur:8th|Pos:-1|Opts:Stem=Up,Beam=End
|Note|Dur:8th,Grace,Slur|Pos:0|Opts:Stem=Up,Muted
|Note|Dur:8th,Dotted,Slur|Pos:-1|Opts:Stem=Up,Beam=First
|Note|Dur:16th,Slur|Pos:#-2|Opts:Stem=Up,Beam=End
|Note|Dur:Half|Pos:-1|Opts:Stem=Up
|Bar
!NoteWorthyComposerClip-End
Listen attentively to bar 13 and 15...

Re: Acciaccatura.ms (version 1.3)

Reply #47
I think the problem is that a plugin object can only insert playback events close to the object. From the API documentation:
Quote
The durationPulses and offsetSPP are restricted to an area near the current play back position (MAXSPPOFFSET)
13 measures is too far away.

Since there is already an issue with the dynamic changes, I think the best solution is to not use the StaffSig option for playback purposes. In fact, I will probably update the object to prevent StaffSig playback, unless someone can convince me that it's possible to overcome these two issues.

Re: Acciaccatura.ms (version 1.3)

Reply #48
Ok, but anyway I don't understand why the grace notes in bars 13 and 15 don't play.

Re: Acciaccatura.ms (version 1.3)

Reply #49
I didn't explain that very well, so let me try in a bit more detail.

When a plugin object wants to play a note, it needs to indicate when in the score the note starts playing, and how long it should play.  It specifies the starting time as a song pointer position value, or SPP. The units for this position are MIDI pulses, and there are 192 pulses per quarter note. The SPP value that is used is an offset, or distance, between the user object in the score and the location of the note. The NWC plugin API says that the maximum distance that a playback note can be from the location of the object is 6144 MIDI pulses. This can be either on either side of the object (i.e. before or after).

For example, let's look at the grace notes in the 11th and 13th measures.  The StaffSig Acciaccatura.ms is at the very beginning of the score, so it is at location 0.  The first 4 measures of your clip are in 2/4 time, so that adds up to 8 quarter notes of duration. The next 6 measures are in common (4/4) time, so that means another 24 quarter notes of duration. 8 plus 24 equals 32. The grace note in the 11th measure is exactly at the start of the measure, so if we take 32 quarter notes, times 192 pulses per quarter note, we get 6144 pulses, which happens to be the exact maximum distance allowed. Now, the acciaccatura plays in anticipation of the grace note, so the offset is slightly less, and the note plays.   However, the notes in the 13th and 15th measures are farther away - specifically, they are 7872 and 9408 MIDI pulses, respectively. That is why the object can't play them. Please note that this is a limitation set by the NWC plugin API, and is not something I can change.

Now, there are several solutions for this. One would be to put an Acciaccatura.ms plugin in front of each of the notes, in non-StaffSig mode. Then, the SPP distance will be 0, and playback will work as expected. Another option that I don't really recommend is to insert another StaffSig Acciacc. (that is getting tiresome to type!!!) somewhere before the 13th measure, Since each StaffSig Acciacc. object is programmed to only play notes up until the next StaffSig object that it encounters, that subsequent object will play the notes that follow it, which are closer than 6144 pulses away.  However, as you noted in your first message, there are still problems with having a StaffSig object play back notes across multiple measures, since it won't know the dynamics at each location where it is playing notes (an object only "knows" the dynamic volume at the location in the score where the object is.)

Sorry if that was a bit long winded. Please let me know if it makes a little more sense (assuming that I did not put you to sleep).