Skip to main content
Topic: Arpeggio.ms (2.3) (Read 53719 times) previous topic - next topic

Arpeggio.ms (2.3)

This object draws an arpeggio for a chord. It uses no special fonts. It will draw the arpeggio marking and optionally play the chord in arpeggio style.

To add an arpeggio to a chord, insert the object immediately before the chord which you wish to ornament. The arpeggio will automatically cover the range of notes in the chord, and will update automatically if the chord is moved or modified.

The following parameters control the appearance and operation of the arpeggio:

Side of Chord: Side of the chord (left, right) on which the arpeggio marking will be drawn. Default value is left.
Direction: Determines the direction of the arpeggio (up, down). When the direction is down, adds an arrowhead to the bottom of the arpeggio. This option also controls the arpeggio's playback (see below). Default value is 'up'.
Horizontal Offset: Used to increase or decrease the distance between the arpeggio and its chord. Value is between -5 and 5 notehead widths; default value is 0.
Extend Arpeggio with Marker: Controls whether the user object marker vertical position extends the arpeggio above or below the notes of the chord. This can be used to 'stretch' the arpeggio to extend to an adjacent staff. Note that this does not affect the arpeggio's playback. Default value is unchecked.
Force Arrowhead for Up Arpeggio: Used to force the appearance of an arrowhead for up arpeggios. (Down arpeggios always have an arrowhead.) Default value is unchecked.

The following options only pertain to playback:

Play Notes: Determines whether arpeggio playback is enabled. Default value is true. Note that the chord following the arpeggio mark should be muted for proper playback. When this chord is tied to subsequent chords, those chords should not be muted. This will allow the arpeggiated chord to play through the tie.
Arpeggio Rate: Controls the rate at which the arpeggio is played, as a number of notes per whole note duration. Range of values is 1 (very slow) to 128 (very fast), with a default value of 32. The playback speed is also relative to the score's tempo.
Anticipated Playback: When checked, specifies that the arpeggio should anticipate (precede) the chord, so that the final arpeggiated note occurs on the chord's beat position. When unchecked, a 'normal' arpeggio will occur, in which the first note of the arpeggiated chord is on the beat. Default is unchecked.

The following sample clip will get you started, and demonstrates arpeggios of various types. Note that the speed is intentionally slowed so that the up/down and normal/anticipated playback can be discerned.

Code: (nwc) [Select · Download]
!NoteWorthyComposer(2.75)
|AddStaff|Name:"Staff-1"|Group:"Standard"
|StaffProperties|EndingBar:Section Close|Visible:Y|BoundaryTop:10|BoundaryBottom:10|Lines:5|Color:Default
|StaffProperties|Muted:N|Volume:127|StereoPan:64|Device:0|Channel:2
|StaffInstrument|Trans:0|DynVel:10,30,45,60,75,92,108,127
|Clef|Type:Treble
|TimeSig|Signature:4/4
|User|Arpeggio.ms|Pos:0|Rate:16
|Chord|Dur:Whole|Pos:-9,-7,-4|Opts:Stem=Down,Muted
|Bar
|User|Arpeggio.ms|Pos:0|Dir:down|Rate:16
|Chord|Dur:Whole|Pos:b-8,b-5,-3|Opts:Muted
|Bar
|User|Arpeggio.ms|Pos:0|Dir:up|Anticipated:Y|Rate:16|ForceArrow:Y
|Chord|Dur:Whole|Pos:n-8,-6,-3|Opts:Muted
|Bar
|User|Arpeggio.ms|Pos:0|Side:right|Anticipated:Y|Rate:16
|Chord|Dur:Whole|Pos:b-7,b-4,-2|Opts:Muted
|AddStaff|Name:"Staff-2"|Group:"Standard"
|StaffProperties|EndingBar:Section Close|Visible:Y|BoundaryTop:10|BoundaryBottom:10|Lines:5|Color:Default
|StaffProperties|Muted:N|Volume:127|StereoPan:64|Device:0|Channel:3
|StaffInstrument|Trans:0|DynVel:10,30,45,60,75,92,108,127
|Clef|Type:Bass
|TimeSig|Signature:4/4
|Note|Dur:Whole|Pos:-8
|Bar
|Note|Dur:4th,Dotted|Pos:b-7
|Note|Dur:8th|Pos:b0^
|Note|Dur:8th|Pos:0|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:0|Opts:Stem=Down,Beam=End
|Note|Dur:4th|Pos:-7
|Bar
|Note|Dur:4th,Dotted|Pos:n-7
|Note|Dur:8th|Pos:n0^
|Note|Dur:8th|Pos:0|Opts:Stem=Up,Beam=First
|Note|Dur:8th|Pos:-7|Opts:Stem=Up,Beam=End
|Note|Dur:4th|Pos:0
|Bar
|Note|Dur:4th,Dotted|Pos:b-6
|Note|Dur:8th|Pos:b1^
|Note|Dur:8th|Pos:1|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:1|Opts:Stem=Down,Beam=End
|Note|Dur:4th|Pos:-6
!NoteWorthyComposer-End

Re: Arpeggio.ms (version 1.0)

Reply #1
Mike, in this snippet the arpeggio isn't playing.
What I did wrong?

Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.75,Single)
|Clef|Type:Alto
|Key|Signature:F#,C#|Tonic:D
|TimeSig|Signature:Common
|Chord|Dur:4th,Dotted,Slur|Pos:2|Opts:Stem=Up|Dur2:Half|Pos2:-2
|Note|Dur:16th,Slur|Pos:3|Opts:Stem=Up,Beam=First
|Note|Dur:16th|Pos:4|Opts:Stem=Up,Beam=End
|User|Arpeggio.ms|Pos:3
|Chord|Dur:4th|Pos:-6,-2,3|Opts:Stem=Up
|Note|Dur:8th,Dotted|Pos:5|Opts:Stem=Down,Beam=First
|Note|Dur:16th|Pos:5|Opts:Stem=Down,Beam=End
!NoteWorthyComposerClip-End

Re: Arpeggio.ms (version 1.0)

Reply #2
Maurizio,

Mute the Chord and also change the playback speed to somewhere between 5 and 10

Rich.

Re: Arpeggio.ms (version 1.0)

Reply #3
Thanks, Rich!
I completely forgot the muting.
I suppose this can not be done automatically.

Re: Arpeggio.ms (version 1.0)

Reply #4
I think part of the issue may be that if you extend the arpeggio so that it crosses a grand staff, it can't play back both staves, only the staff that has the object.  So in this case you would not want an automatic muting.

However, thought should be given to which is preferable I guess. Automatic muting and turning off if not required or as is now.
You pays your money and Mike makes his choice !  :))



Rich.

Re: Arpeggio.ms (version 1.0)

Reply #5
I completely forgot the muting.
I suppose this can not be done automatically.
It can not. If an item causes a Note On, a user object cannot "uncause" it.
Registered user since 1996



Note clash

Reply #8
There's a problem if you stop the play and then restart it.
Try to start playing from bar 3 in the following snippet.

Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.75,Single)
|Clef|Type:Treble
|TimeSig|Signature:4/4
|User|Arpeggio.ms|Pos:0|Speed:4
|Chord|Dur:Whole|Pos:-9^,-7^,-4^|Opts:Stem=Down,Muted
|Bar
|Chord|Dur:Whole|Pos:-9,-7,-4|Opts:Stem=Down,Muted
|Bar
|Rest|Dur:Whole
|Bar
!NoteWorthyComposerClip-End

Re: Note clash

Reply #9
There's a problem if you stop the play and then restart it.
Try to start playing from bar 3 in the following snippet.

Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.75,Single)
|Clef|Type:Treble
|TimeSig|Signature:4/4
|User|Arpeggio.ms|Pos:0|Speed:4
|Chord|Dur:Whole|Pos:-9^,-7^,-4^|Opts:Stem=Down,Muted
|Bar
|Chord|Dur:Whole|Pos:-9,-7,-4|Opts:Stem=Down,Muted
|Bar
|Rest|Dur:Whole
|Bar
!NoteWorthyComposerClip-End
In order to allow a tied chord to be arpeggiated properly, I am checking for the tie, and inserting just the MIDI Note On for the played note when this is the case. This allows the note at the end of the tie to send the Note Off. However, you are muting both notes, which causes the "stuck note" behavior; the second chord doesn't send the Note Off events that are needed.

Unmute the second chord and you should experience correct playback behavior. This is mentioned in the context-sensitive help for the Play parameter:

Quote
Note that the chord which follows the arpeggio marking should be muted for proper playback. When
this chord is tied to subsequent chords, those chords should *NOT* be muted. This will allow the
arpeggiated chord to play through the tie.

Re: Arpeggio.ms (version 1.0)

Reply #10
Sorry, Mike.  :-[
But then: the chord must be muted, the same for the followuing tied chords, but not the last one...
Very easy to overlook something.

Another question: since the arpeggio rate is proportional to the score's tempo, I expected "playback speed" related to the usual note duration, so e.g., 32 meaning 1/32.
The value seems instead completely arbitrary and 32 as a default is by far too fast.
As Rich suggested, a value of 10..16 seems far better.

Re: Arpeggio.ms (version 1.0)

Reply #11
Another question: since the arpeggio rate is proportional to the score's tempo, I expected "playback speed" related to the usual note duration, so e.g., 32 meaning 1/32.
The value seems instead completely arbitrary and 32 as a default is by far too fast.
As Rich suggested, a value of 10..16 seems far better.
You are right; the current default speed is probably not optimum. However, be aware that the speed value does NOT have to be a whole number.

The default speed is something that is easy enough to change, but of course there would be compatibility issues if I changed it now. But maybe sooner is better than later? What would you (or others) suggest as a more appropriate default speed?

Footnote: The "Speed" parameter is used to set the spacing between successive notes of the arpeggio, via the formula PPQ / Speed, where PPQ is the number of MIDI pulses per quarter note. Thus, a Speed of 1 would represent quarter note spacing for the arpeggiated notes, and 32 would be 128th notes (perhaps a bit too fast, as you say). It depends on the tempo.

Re: Arpeggio.ms (version 1.0)

Reply #12
Since most musicians are by far more familiar with the score note duration than with the MIDI details, I'll suggest the very complicated formula: 4*PPQ/Speed.  ;)
In this case 4 means 1/4, 8 means 1/8 and so on. What's clearer for a musician?  :D
Furthermore, as you said, no restriction to use only integer values.
Default value? 32 (i.e. 1/32) like NWC grace notes.

Re: Arpeggio.ms (version 1.0)

Reply #13
Since most musicians are by far more familiar with the score note duration than with the MIDI details, I'll suggest the very complicated formula: 4*PPQ/Speed.  ;)
In this case 4 means 1/4, 8 means 1/8 and so on. What's clearer for a musician?  :D
Furthermore, as you said, no restriction to use only integer values.
Default value? 32 (i.e. 1/32) like NWC grace notes.
What you say makes sense; I will make this change. Since the change would affect any scores that people have already created with the Arpeggio.ms object, I will change the name of the parameter from 'Speed' to 'Rate', and there will be an audit event to fix existing arpeggios to use the new parameter and adjusted value when a score is opened.

Re: Arpeggio.ms (1.1)

Reply #14
The Arpeggio.ms object has been updated, with the following changes:

  • 'Speed' parameter replaced by 'Rate', with different scaling and more reasonable default value.

Please refer to the parent post for additional information.

Re: Arpeggio.ms (1.1)

Reply #15
Thank you, Mike.

Re: Arpeggio.ms (1.2)

Reply #16
The Arpeggio.ms object has been updated, with the following changes:

  • Fixed bug for extreme combinations of playback rate, note count and duration.

Please refer to the parent post for additional information.

Re: Arpeggio.ms (1.2)

Reply #17
F.Y.I. If you do an audit bar lines, the arpeggio mark (i.e. object) of the first chord in a bar goes at the end the previous measure.  :)

Re: Arpeggio.ms (1.2)

Reply #18
F.Y.I. If you do an audit bar lines, the arpeggio mark (i.e. object) of the first chord in a bar goes at the end the previous measure.  :)
Thanks for the report :)

I don't have any control over where NWC inserts the bar lines during an Audit Bar Lines. In theory, the arpeggio should have been displayed next to the chord, even with an intervening bar line.  I now see that this was not happening, so I've made a very small fix to the code to correct that. (But I still think that Audit Bar Lines should not insert bar lines between objects and notes.) Also, it should be noted that this fix will only work when the bar line does not occur at a system break. Under those conditions, the arpeggio will NOT be displayed.

Thanks,
Mike

 

Re: Arpeggio.ms (1.3)

Reply #19
The Arpeggio.ms object has been updated, with the following changes:

  • Fix horizontal position of arpeggio when there is an intervening (non-system-breaking) bar line.

Please refer to the parent post for additional information.


Re: Arpeggio.ms (1.3)

Reply #20
Well, to say the truth I didn't expect you could do anything about it, so... thank you very much, Mike.

Re: Arpeggio.ms (1.3)

Reply #21
As an aside NW seems to put most things (clefs, keys, boundaries, markers and spacers) before the bar line, but text after it. It won't rearrange existing correct bar lines though.

Re: Arpeggio.ms (1.3)

Reply #22
Bug report: Mike, this clip:
Code: [Select · Download]
!NoteWorthyComposerClip(2.75,Single)
|Clef|Type:Treble
|TimeSig|Signature:3/4
|Note|Dur:4th|Pos:n-3
|User|Arpeggio.ms|Pos:0
|Dynamic|Style:p|Pos:-10|Visibility:TopStaff
|Chord|Dur:Half|Pos:-3^,1^,4^,6^|Opts:Stem=Down
|Bar
|Chord|Dur:Half,Dotted|Pos:-3^,1^,4^,6^|Opts:Stem=Down
|Bar
|Chord|Dur:Half,Dotted|Pos:-3,1,4,6|Opts:Stem=Down
|Bar
|Rest|Dur:Whole|Opts:Stem=Down
|Bar|Style:Double
|Rest|Dur:Half|Opts:Stem=Down
|Dynamic|Style:mp|Pos:-10|Visibility:TopStaff
|Note|Dur:4th|Pos:2|Opts:Stem=Down
|Bar
|Note|Dur:4th,Slur|Pos:n5|Opts:Stem=Down
|Note|Dur:4th|Pos:b3|Opts:Stem=Down
|Note|Dur:4th|Pos:2|Opts:Stem=Down
|Bar
|Note|Dur:4th,Dotted,Slur|Pos:n5|Opts:Stem=Down
|Note|Dur:8th,Slur|Pos:#4|Opts:Stem=Down
|Note|Dur:8th,Slur|Pos:5|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:6|Opts:Stem=Down,Beam=End
|Bar
|Note|Dur:4th,Dotted,Slur|Pos:b7|Opts:Stem=Down
|Note|Dur:8th,Slur|Pos:6|Opts:Stem=Down
|Note|Dur:8th,Slur|Pos:7|Opts:Stem=Down,Beam=First
|Note|Dur:8th,Slur|Pos:n8|Opts:Stem=Down,Beam=End
|Bar
|TempoVariance|Style:Fermata|Pause:0|Pos:12.5|Justify:Center|Placement:AtNextNote
|Chord|Dur:Half,Dotted|Pos:4,9|Opts:Stem=Down
!NoteWorthyComposerClip-End
represents a few measures out of the middle of a piano right-hand part. If you play it straight through, everything works fine. But if you put the cursor anywhere after the arpeggiated chord and press [play], NWC will sound the arpeggiated chord before beginning play - as if sounding a held chord that the later material is supposed to be heard over. It appears that a noteoff command is not being properly sent - or, more accurately, is being sent in a way that NWC can recognize only in the course of play, not when it's checking backward to look for notes that are already being heard.

I'll turn off play for now, and fake it with invisible grace notes if I have to. But I'd appreciate a look at it.

Bill

Re: Arpeggio.ms (1.3)

Reply #23
Hi Bill,

The fix for this is very easy - you just need to mute the first chord of the arpeggio. But leave the tied chords unmuted, per the help text for the "Play Notes" parameter.

Let me know if this fixes your problem.

Mike

Re: Arpeggio.ms (1.3)

Reply #24
I figured I would add a short explanation for the operation of the plug-in that is giving the "hanging note" behavior. It may be overly technical, so feel free to ignore it if it's too much information.

The normal usage for the arpeggio object is to mute the chord which follows it, so that there will be only one set of playback notes. When the arpeggio precedes a single chord, it will play a series of notes, each with a note-on and note-off event. However, if the leading chord of the arpeggio is tied to subsequent chords, I don't want to add note-off events, since those will be supplied by the final chord in the tie. Therefore, the plugin checks for this, and will suppress the extra note-off events when there are ties present.

In the case of your sample, because the initial chord was not muted, it was inserting its own note-on events, in addition to those of the plugin, meaning that there were extra notes without corresponding note-offs.  But the bottom line is, muting the first chord takes care of everything.

Re: Arpeggio.ms (1.3)

Reply #25
I regularily forget to mute the first chord, so I always use the relevant user tool...   O:)

Re: Arpeggio.ms (1.3)

Reply #26
Thanks, Mike. Should do the job. I'll let you know if it doesn't. Your explanation makes perfect sense.

Re: Arpeggio.ms (1.3)

Reply #27
Extend Arpeggio with Marker: what's that for?
Well, ok, I know what it does, but why to have it selectable? What's bad in having it always on?

Re: Arpeggio.ms (1.3)

Reply #28
Well, ok, I know what it does, but why to have it selectable? What's bad in having it always on?
In theory you are correct; as long as the position marker is within the chord, that checkbox can be left on even in cases where there is no need to extend. But I felt this might be confusing if people weren't careful in where they placed the marker.  Plus, that feature was added early in the life cycle, so changing or removing the parameter now might break existing scores.

Are you finding it inconvenient to have to check the box for each arpeggio you use? I.e. are you looking for some change in the object's behavior to make it easier to use?

Re: Arpeggio.ms (1.3)

Reply #29
Oh, Mike, nothing so important! Simple curiosity.
Maybe I'd prefer to have it cheched by default, but that's very easy to change in the source.

What I would need is an easy way to do (play) a grand arpeggio, that is, an arpeggio which spans two staves, but that's another matter.

Re: Arpeggio.ms (1.3)

Reply #30
For your info: I often use one hidden "arpeggio" to play a harp "cluster" for which even 1/64 is too slow.
Simple, straightforward and almost impossible to do otherwise!
Thank you for this very useful object.

Re: Arpeggio.ms (1.3)

Reply #31
Maybe I'd prefer to have it cheched by default, but that's very easy to change in the source.
That might be easy to achieve if I add logic to inherit settings from the previous arpeggio on the staff (I've done this for other objects)
What I would need is an easy way to do (play) a grand arpeggio, that is, an arpeggio which spans two staves, but that's another matter.
There is a way to do this, approximately, if you don't mind the entire arpeggio being "anticipated". Add objects to each staff, and set the starting one to anticipated, and the ending one to non-anticipated (the middle notes will overlap, but it shouldn't be too noticable.)

Re: Arpeggio.ms (1.3)

Reply #32
Quote
There is a way to do this, approximately, if you don't mind the entire arpeggio being "anticipated". Add objects to each staff, and set the starting one to anticipated, and the ending one to non-anticipated (the middle notes will overlap, but it shouldn't be too noticable.)
Good idea.
Thanks Mike, I'll try.

Re: Arpeggio.ms (1.3)

Reply #33
I tried.
Not bad, but the note overlapping is much more noticeable than I expected.
If I could delay the upper (not anticipated) part one time unit or anticipate one time unit the lower (anticipated) part...  ;)

Re: Arpeggio.ms (1.3)

Reply #34
I tried.
Not bad, but the note overlapping is much more noticeable than I expected.
If I could delay the upper (not anticipated) part one time unit or anticipate one time unit the lower (anticipated) part...  ;)
One trick you can try, that might be less noticable, would be to insert an extra note in the starting chord, that is the same note as the first note of the following chord, and then change it to a blank space notehead.

I forgot to mention that there was another "cheat" method of doing this, courtesy of @Richard Woodroffe. It won't work in every circumstance, but you can try this: Put all of the arpeggio notes (for both staves) on the upper staff, and change the noteheads for the lower staff notes to blank noteheads. Then mute the chord on the lower staff and don't put an arpeggio on it. You might need to hide leger lines on the upper staff chord as well.

I should also mention that I tried a quick & dirty addition to the object to add a "start delay" to the entire arpeggio, but it was buggy. I might look at this further, as a way to "merge" arpeggios on separate staves (until/unless NWC gives us a way to see notes on other staves.)

Re: Arpeggio.ms (1.3)

Reply #35
Silly me!
As usual, I forgot I can change the noteheads in a chord at wish.
I was wondering how I could hide the "extra" notes...
Thank you, Mike.

Re: Arpeggio.ms (1.3)

Reply #36
To keep bothering you  ;) , why the second arpeggio doesn't play correctly?
Code: (nwc) [Select · Download]
!NoteWorthyComposer(2.75)
|Editor|ActiveStaff:1|CaretIndex:1|CaretPos:-5
|SongInfo|Title:""|Author:""|Lyricist:""|Copyright1:""|Copyright2:""
|PgSetup|StaffSize:16|Zoom:4|TitlePage:Y|JustifyVertically:Y|PrintSystemSepMark:N|ExtendLastSystem:N|DurationPadding:Y|PageNumbers:0|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:2.00|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
|Text|Text:"Moderato vivace"|Font:StaffBold|Pos:18
|Tempo|Tempo:120|Pos:12.5|Visibility:Never
|TimeSig|Signature:AllaBreve
|Rest|Dur:4th|Visibility:Never
|Bar|Style:Transparent|XBarCnt:Y
|DynamicVariance|Style:Sforzando|Pos:-8|Placement:AtNextNote
|User|Arpeggio.ms|Pos:-3|Visibility:Never
|Chord|Dur:Whole|Pos:5z,b6,8,9,12|Opts:Muted
|Bar
|User|Arpeggio.ms|Pos:-3|Visibility:Never
|Chord|Dur:Half,Dotted|Pos:-4z,-3,b-1,n0,3|Opts:Stem=Up
|Rest|Dur:4th
|Bar
|Rest|Dur:8th,Dotted
|Chord|Dur:16th,Slur|Pos:n-8,-5|Opts:Stem=Up
|Chord|Dur:4th|Pos:-6,-3|Opts:Stem=Up
|Rest|Dur:8th,Dotted
|Chord|Dur:16th,Slur|Pos:6,9|Opts:Stem=Down
|Chord|Dur:4th|Pos:8,11|Opts:Stem=Down
|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:Treble
|Key|Signature:Bb|Tonic:F
|TimeSig|Signature:AllaBreve
|Rest|Dur:4th|Visibility:Never
|Bar|Style:Transparent|XBarCnt:Y
|User|Arpeggio.ms|Pos:31.5|Anticipated:Y|MarkerExtend:Y
|Chord|Dur:Whole|Pos:b-1,1,2,5|Opts:Muted
|Clef|Type:Bass
|Bar
|User|Arpeggio.ms|Pos:22|Anticipated:Y|MarkerExtend:Y
|Chord|Dur:Half,Dotted|Pos:2,b4,n5,8|Opts:Stem=Down,Muted
|Rest|Dur:8th
|Note|Dur:16th,Slur|Pos:-1|Opts:Stem=Up,Beam=First
|Note|Dur:16th,Slur|Pos:#-2|Opts:Stem=Up,Beam=End
|Bar
|Note|Dur:4th|Pos:-5|Opts:Stem=Up
|Clef|Type:Treble
|Rest|Dur:8th,Dotted
|Chord|Dur:16th,Slur|Pos:-1,2|Opts:Stem=Down
|Chord|Dur:4th|Pos:1,4|Opts:Stem=Down
|Clef|Type:Bass
|Rest|Dur:8th
|Note|Dur:16th,Slur|Pos:-1|Opts:Stem=Up,Beam=First
|Note|Dur:16th,Slur|Pos:#-2|Opts:Stem=Up,Beam=End
|Bar
|Bar|Style:SectionClose
!NoteWorthyComposer-End
N.B. Please note the "extra" dot due to the blank notehead.  :) And the same happens with the accidentals.

Re: Arpeggio.ms (1.3)

Reply #37
FYI: Your second chord in the upper staff is not muted.

Re: Arpeggio.ms (1.3)

Reply #38
Here's an idea for a possible future enhancement: could there be a color assignment for muted notes in the editor? It would make it easier to tell what's muted and what's not. (It can be defaulted to Black)

Re: Arpeggio.ms (1.3)

Reply #39
The usual idiot.  :-[
Normally I utilise the user tool to create the arpeggio exactly because I tend to forget to mute the chord.
In this case I was experimenting and I don't even though to check if the chord was muted.
Thanks.

Re: Arpeggio.ms (1.3)

Reply #40
Here's an idea for a possible future enhancement: could there be a color assignment for muted notes in the editor? It would make it easier to tell what's muted and what's not. (It can be defaulted to Black)

Another thought for muted notes: could the ability to mute be added to the context menu that shows up when you right-click on an individual notehead? That would solve several problems for me that currently require layers.

Re: Arpeggio.ms (1.3)

Reply #41
Another thought for muted notes: could the ability to mute be added to the context menu that shows up when you right-click on an individual notehead? That would solve several problems for me that currently require layers.

Bill,  it seems that you want to mute one or a number of notes within a chord. But as things stand at the moment, you are having to have the muted notes on one layer and the sounding notes on another layer and you are putting them together to make the chord.

If this is the case, then a "Rick solution" might suit. You can mute individual notes in a chord by having a tied muted headless whole  grace notes immediately before the chord. This mutes the notes tied but not the others.

Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.75,Single)
|Clef|Type:Treble
|Instrument|Name:"Trumpet"|Patch:56|Trans:0|DynVel:10,30,45,60,75,92,108,127|Pos:6|Wide:Y
|Text|Text:"1 playing"|Font:StaffItalic|Pos:-8
|Chord|Dur:Whole,Grace|Pos:-1z^,1z^,3z^|Opts:Muted|Visibility:Never
|Chord|Dur:Half|Pos:-1,1,3,5|Opts:Stem=Up
|Rest|Dur:4th
|Rest|Dur:4th
|Text|Text:"4 playing"|Font:StaffItalic|Pos:-8
|Chord|Dur:Half|Pos:-1,1,3,5|Opts:Stem=Up
!NoteWorthyComposerClip-End

Maybe not as easy as a right click - but it works now !
Rich.

Re: Arpeggio.ms (1.3)

Reply #42
I was reading Rich's (actually Rick's) tied hidden muted grace note workaround, and thought to myself that it's a shame this approach wouldn't work with the Arpeggio object ... until I realized it could!  I have tested a small change to the code that will mute (i.e. not play) any arpeggio note that is tied-in from an existing note. In this case it would be the muted grace note.

I can't think of any reason for having an arpeggio that is tied into; can anyone else? If not, I'll post this change.

Re: Arpeggio.ms (1.3)

Reply #43
Quote
Maybe I'd prefer to have it cheched by default
No, I don't like to have it checked by default because in that case the stem down chords will have the arpeggio marker starting at the beginning of the stem! (Why?)

Special cases

Reply #44
This leaves some unterminated notes.
Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.75,Single)
|User|Arpeggio.ms|Pos:-3|Offset:0|Anticipated:Y
|Chord|Dur:Whole|Pos:-5,-1,2,4^,6^|Opts:Stem=Down,Muted
|Bar
|Chord|Dur:Whole|Pos:4,6
!NoteWorthyComposerClip-End

When using a fermata at the end of an arpeggio if the playing mode is not "anticipated playback" the result is... odd.
Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.75,Single)
|Rest|Dur:4th
|TempoVariance|Style:Fermata|Pause:8|Pos:9|Justify:Center|Placement:AtNextNote
|User|Arpeggio.ms|Pos:-3
|Chord|Dur:4th|Pos:-4,-2,1,3|Opts:Muted
!NoteWorthyComposerClip-End

Re: Special cases

Reply #45
This leaves some unterminated notes.
Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.75,Single)
|User|Arpeggio.ms|Pos:-3|Offset:0|Anticipated:Y
|Chord|Dur:Whole|Pos:-5,-1,2,4^,6^|Opts:Stem=Down,Muted
|Bar
|Chord|Dur:Whole|Pos:4,6
!NoteWorthyComposerClip-End
I see what the problem is; it will only happen for partially tied chords. The fix is simple, and is included in my update for 2.75a. If you want to manually update the current version, make the following change in the code file (Arpeggio.ms.nwcuser.lua):

Change line 143 from:

    if play:isTieOut() then
to
    if play:isTieOut(i) then

When using a fermata at the end of an arpeggio if the playing mode is not "anticipated playback" the result is... odd.
Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.75,Single)
|Rest|Dur:4th
|TempoVariance|Style:Fermata|Pause:8|Pos:9|Justify:Center|Placement:AtNextNote
|User|Arpeggio.ms|Pos:-3
|Chord|Dur:4th|Pos:-4,-2,1,3|Opts:Muted
!NoteWorthyComposerClip-End
This was discussed in another thread. Basically, there can be no MIDI events during a fermata/breath mark which has a delay, so the arpeggio gets paused. As noted in that thread, trills and tremolos are also affected by this.

Re: Arpeggio.ms (1.3)

Reply #46
Thank you, Mike.

Re: Arpeggio.ms (1.3)

Reply #47
A missing note: look at the note (B) after the last last arpeggio.
Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.751,Single)
|Clef|Type:Treble
|Key|Signature:Bb,Eb,Ab|Tonic:E
|Tempo|Tempo:80|Pos:8.5|Visibility:Never
|TimeSig|Signature:Common
|Note|Dur:4th|Pos:1|Opts:Stem=Up
|Bar
|User|Arpeggio.ms|Pos:-3|Offset:0|Anticipated:Y
|Chord|Dur:16th|Pos:-4,-2,1,3|Opts:Stem=Up,Beam=First,Muted
|Note|Dur:8th,Dotted|Pos:4|Opts:Stem=Up,Beam=End
|User|Arpeggio.ms|Pos:-3|Offset:0|Anticipated:Y
|Chord|Dur:4th|Pos:-6,-2,1,3,5|Opts:Muted
|Note|Dur:4th|Pos:5
|User|Arpeggio.ms|Pos:-3
|Chord|Dur:16th|Pos:2,4,7|Opts:Stem=Down,Beam=First,Muted
|Note|Dur:8th,Dotted|Pos:7^|Opts:Stem=Down,Beam=End
|Bar
|Note|Dur:4th|Pos:7
|Note|Dur:8th|Pos:8|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:7|Opts:Stem=Down,Beam=End
|Note|Dur:8th|Pos:5|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:4^|Opts:Stem=Down,Beam=End
|Note|Dur:8th|Pos:4
|Rest|Dur:8th
|Bar
!NoteWorthyComposerClip-End


Re: Arpeggio.ms (1.3)

Reply #49
(I agree with Rick.)

The first and third arpeggios are being played at an accelerated rate (faster than the rate=32 setting) since there are more notes present than would fit the chord duration. If you slow down the tempo, you'll hear that all of the notes are present.