NoteWorthy Composer Forum

Forums => Tips & Tricks => Object Plugins => Topic started by: Mike Shawaluk on 2015-03-23 11:18 pm

Title: Arpeggio.ms (2.1)
Post by: Mike Shawaluk on 2015-03-23 11:18 pm
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
Title: Re: Arpeggio.ms (version 1.0)
Post by: Flurmy on 2015-10-11 04:24 pm
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
Title: Re: Arpeggio.ms (version 1.0)
Post by: Richard Woodroffe on 2015-10-11 04:27 pm
Maurizio,

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

Title: Re: Arpeggio.ms (version 1.0)
Post by: Flurmy on 2015-10-11 04:34 pm
Thanks, Rich!
I completely forgot the muting.
I suppose this can not be done automatically.
Title: Re: Arpeggio.ms (version 1.0)
Post by: Richard Woodroffe on 2015-10-11 04:45 pm
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 !  :))



Title: Re: Arpeggio.ms (version 1.0)
Post by: Rick G. on 2015-10-11 04:58 pm
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.
Title: Re: Arpeggio.ms (version 1.0)
Post by: Richard Woodroffe on 2015-10-11 05:00 pm
You pays your money and Mike makes his choice !  :))

Or maybe he doesn't . Thanks Rick

Title: Re: Arpeggio.ms (version 1.0)
Post by: Flurmy on 2015-10-11 05:29 pm
It can not. If an item causes a Note On, a user object cannot "uncause" it.
Exactly what I supposed.
Title: Note clash
Post by: Flurmy on 2015-10-11 08:07 pm
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
Title: Re: Note clash
Post by: Mike Shawaluk on 2015-10-11 09:53 pm
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.
Title: Re: Arpeggio.ms (version 1.0)
Post by: Flurmy on 2015-10-13 08:07 pm
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.
Title: Re: Arpeggio.ms (version 1.0)
Post by: Mike Shawaluk on 2015-10-13 08:21 pm
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.
Title: Re: Arpeggio.ms (version 1.0)
Post by: Flurmy on 2015-10-14 07:08 pm
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.
Title: Re: Arpeggio.ms (version 1.0)
Post by: Mike Shawaluk on 2015-10-14 07:38 pm
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.
Title: Re: Arpeggio.ms (1.1)
Post by: Mike Shawaluk on 2015-10-15 02:29 am
The Arpeggio.ms object has been updated, with the following changes:


Please refer to the parent post for additional information.
Title: Re: Arpeggio.ms (1.1)
Post by: Flurmy on 2015-10-15 07:15 pm
Thank you, Mike.
Title: Re: Arpeggio.ms (1.2)
Post by: Mike Shawaluk on 2015-11-27 02:22 pm
The Arpeggio.ms object has been updated, with the following changes:


Please refer to the parent post for additional information.
Title: Re: Arpeggio.ms (1.2)
Post by: Flurmy on 2016-03-29 01:22 pm
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.  :)
Title: Re: Arpeggio.ms (1.2)
Post by: Mike Shawaluk on 2016-03-29 05:36 pm
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
Title: Re: Arpeggio.ms (1.3)
Post by: Mike Shawaluk on 2016-03-29 05:38 pm
The Arpeggio.ms object has been updated, with the following changes:


Please refer to the parent post for additional information.

Title: Re: Arpeggio.ms (1.3)
Post by: Flurmy on 2016-03-29 08:29 pm
Well, to say the truth I didn't expect you could do anything about it, so... thank you very much, Mike.
Title: Re: Arpeggio.ms (1.3)
Post by: Peter Edwards on 2016-03-30 09:50 am
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.
Title: Re: Arpeggio.ms (1.3)
Post by: William Ashworth on 2016-10-20 04:49 am
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
Title: Re: Arpeggio.ms (1.3)
Post by: Mike Shawaluk on 2016-10-20 10:34 am
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
Title: Re: Arpeggio.ms (1.3)
Post by: Mike Shawaluk on 2016-10-20 02:02 pm
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.
Title: Re: Arpeggio.ms (1.3)
Post by: Flurmy on 2016-10-20 06:01 pm
I regularily forget to mute the first chord, so I always use the relevant user tool...   O:)
Title: Re: Arpeggio.ms (1.3)
Post by: William Ashworth on 2016-10-22 02:27 am
Thanks, Mike. Should do the job. I'll let you know if it doesn't. Your explanation makes perfect sense.
Title: Re: Arpeggio.ms (1.3)
Post by: Flurmy on 2016-11-15 10:29 pm
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?
Title: Re: Arpeggio.ms (1.3)
Post by: Mike Shawaluk on 2016-11-16 01:25 am
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?
Title: Re: Arpeggio.ms (1.3)
Post by: Flurmy on 2016-11-16 08:49 pm
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.
Title: Re: Arpeggio.ms (1.3)
Post by: Flurmy on 2016-11-16 08:52 pm
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.
Title: Re: Arpeggio.ms (1.3)
Post by: Mike Shawaluk on 2016-11-16 10:06 pm
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.)
Title: Re: Arpeggio.ms (1.3)
Post by: Flurmy on 2016-11-16 10:09 pm
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.
Title: Re: Arpeggio.ms (1.3)
Post by: Flurmy on 2016-11-19 10:45 am
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...  ;)
Title: Re: Arpeggio.ms (1.3)
Post by: Mike Shawaluk on 2016-11-19 10:58 am
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.)
Title: Re: Arpeggio.ms (1.3)
Post by: Flurmy on 2016-11-19 01:39 pm
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.
Title: Re: Arpeggio.ms (1.3)
Post by: Flurmy on 2016-11-19 02:04 pm
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.
Title: Re: Arpeggio.ms (1.3)
Post by: NoteWorthy Online on 2016-11-19 02:57 pm
FYI: Your second chord in the upper staff is not muted.
Title: Re: Arpeggio.ms (1.3)
Post by: Mike Shawaluk on 2016-11-19 03:12 pm
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)
Title: Re: Arpeggio.ms (1.3)
Post by: Flurmy on 2016-11-19 04:33 pm
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.
Title: Re: Arpeggio.ms (1.3)
Post by: William Ashworth on 2016-11-19 06:44 pm
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.
Title: Re: Arpeggio.ms (1.3)
Post by: Richard Woodroffe on 2016-11-19 08:53 pm
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 !
Title: Re: Arpeggio.ms (1.3)
Post by: Mike Shawaluk on 2016-11-19 10:05 pm
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.
Title: Re: Arpeggio.ms (1.3)
Post by: Flurmy on 2016-12-01 08:28 pm
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?)
Title: Special cases
Post by: Flurmy on 2017-01-04 02:16 pm
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
Title: Re: Special cases
Post by: Mike Shawaluk on 2017-01-04 04:15 pm
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 (https://forum.noteworthycomposer.com/?topic=9201.msg67193#msg67193). 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.
Title: Re: Arpeggio.ms (1.3)
Post by: Flurmy on 2017-01-04 07:47 pm
Thank you, Mike.
Title: Re: Arpeggio.ms (1.3)
Post by: Flurmy on 2017-02-08 10:38 pm
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
Title: Re: Arpeggio.ms (1.3)
Post by: Rick G. on 2017-02-08 11:09 pm
A missing note: look at the note (B) after the last last arpeggio.
I disagree.
Title: Re: Arpeggio.ms (1.3)
Post by: Mike Shawaluk on 2017-02-09 12:38 am
(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.
Title: Re: Arpeggio.ms (1.3)
Post by: Rick G. on 2017-02-09 12:48 am
the final notes of each arpeggio will actually occur after the start of the next note.
No, they don't.
One problem is that 'Anticipated playback' is checked for the first two, but not the last one. Still, playback is:
Code: (mtx) [Select · Download]
768 On ch=1 n=74 v=110
784 On ch=1 n=77 v=110
800 On ch=1 n=82 v=110
816 On ch=1 n=74 v=0
816 On ch=1 n=77 v=0
816 On ch=1 n=82 v=0
816 On ch=1 n=82 v=110
1120 On ch=1 n=82 v=0
for the last one. If you slow it down, playback sounds better. As it is, 16 clicks between Note On's for the B flat is barely audible at a fast tempo. If you make the 'Arpeggio rate' 128, there is 36 clicks between the Note On's for the B flat. That sounds better.

IMO, you are running into the limits of the synth's knowledge of what to do.
Title: Re: Arpeggio.ms (1.3)
Post by: Mike Shawaluk on 2017-02-09 02:36 am
Your comments are correct; you quoted my message shortly before I replaced it with a more accurate statement. I didn't notice the anticipated setting on two of the arpeggios, but that might also explain some of the playback oddities.
Title: Re: Arpeggio.ms (1.3)
Post by: Flurmy on 2017-02-09 07:10 pm
Ah, timing overflow! I'm used to check it on grace notes. I overlooked it in this case.
Thanks, Mike.
Title: Re: Arpeggio.ms (1.3)
Post by: Rick G. on 2017-02-10 12:52 am
Ah, timing overflow!
There is no timing overflow. At least so far as I can see.
Title: Re: Arpeggio.ms (1.3)
Post by: Flurmy on 2017-02-10 10:12 pm
Yes, ok, no time overflow. Simply time full.
Quote
816 On ch=1 n=82 v=0
816 On ch=1 n=82 v=110
There is no break at all, so the second B flat is not heard at that speed, at least with my synth.
It seems simply a continuation of the first B flat, hence the effect "missing note".
Title: Re: Arpeggio.ms (1.3)
Post by: Rick G. on 2017-02-10 10:37 pm
There is no break at all, so the second B flat is not heard at that speed, at least with my synth.
Even with a slight break I can't hear the second B flat at fast tempos. I would think that this varies by instrument and by synth.
Title: Re: Arpeggio.ms (2.0c)
Post by: Mike Shawaluk on 2017-08-28 09:35 pm
The Arpeggio.ms object has been updated for version 2.75a, with the following changes:


Please refer to the parent post for additional information.
Title: Re: Arpeggio.ms (2.0c)
Post by: SEBC on 2018-01-17 01:03 pm
Good  morning

I am re-reading this thread and finally realizing that I can notate arpeggios to extend across both staves, but I am having trouble doing it. Of course I am.

Would someone be willing to walk me through the process step by step? I like to think that this might help someone else down the road...

As always, many thanks for your help!
Title: Re: Arpeggio.ms (2.0c)
Post by: Mike Shawaluk on 2018-01-17 02:42 pm
Good  morning

I am re-reading this thread and finally realizing that I can notate arpeggios to extend across both staves, but I am having trouble doing it. Of course I am.

Would someone be willing to walk me through the process step by step? I like to think that this might help someone else down the road...

As always, many thanks for your help!
There are two aspects to making a cross-staff arpeggio. One is getting the right appearance, and another is getting it to play correctly. If you just want the correct visual appearance, and are not concerned with playback, that's the easier case, so I'll describe that first.

Normally, the Arpeggio.ms object will automatically size itself for the chord it is applied to. However, there is a special parameter labeled "Extend Arpeggio with Marker" which, when checked, will allow you to "stretch" an arpeggio above or below the top or bottom note of the chord. So if you want to extend an arpeggio across two staves, you would add the object on one staff, check the aforementioned Extend Arpeggio with Marker box, and then highlight and move the Arpeggio object's marker downward until it covers the notes in the staff below.

Here's a quick example if my description above does not make sense:
Code: (nwc) [Select · Download]
!NoteWorthyComposer(2.751)
|PgMargins|Left:1.27|Top:1.27|Right:1.27|Bottom:1.27|Mirror:N
|AddStaff|Name:"Staff"|Group:"Standard"
|StaffProperties|EndingBar:Section Close|Visible:Y|BoundaryTop:12|BoundaryBottom:12|Lines:5|Color:Default
|StaffProperties|Muted:N|Volume:127|StereoPan:64|Device:0|Channel:1
|StaffInstrument|Trans:0|DynVel:10,30,45,60,75,92,108,127
|Clef|Type:Treble
|User|Arpeggio.ms|Pos:-23.5|MarkerExtend:Y
|Chord|Dur:4th|Pos:-6,-4,-1|Opts:Muted
|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:Bass
|Chord|Dur:4th|Pos:-2,0,2
!NoteWorthyComposer-End
Title: Re: Arpeggio.ms (2.0c)
Post by: Flurmy on 2018-01-17 06:51 pm
Regarding the playing:

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.)

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.)
Title: Re: Arpeggio.ms (2.0c)
Post by: Mike Shawaluk on 2018-01-17 07:00 pm
Thank you @Flurmy for the reminder. I remembered giving that advice before but was too lazy to look it up this morning :) I also recall playing with the "start delay" parameter. Had there been demand/requests for it, I'd have added it by now.
Title: Re: Arpeggio.ms (2.0c)
Post by: Flurmy on 2018-01-17 07:08 pm
Another solution, courtesy of Rick the Wizard:
Code: (nwc) [Select · Download]
!NoteWorthyComposer(2.751)
|Editor|ActiveStaff:1|CaretIndex:1|CaretPos:1
|SongInfo|Title:""|Author:"<Name>"|Lyricist:""|Copyright1:"Copyright © 2018 <Name>"|Copyright2:"All Rights Reserved"
|PgSetup|StaffSize:16|Zoom:7|TitlePage:Y|JustifyVertically:Y|PrintSystemSepMark:N|ExtendLastSystem:N|DurationPadding:Y|PageNumbers:0|StaffLabels:None|BarNumbers:None|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.2|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:"Times New Roman"|Size:8|Bold:N|Italic:N|CharSet:0
|Font|Style:User2|Typeface:"Times New Roman"|Size:8|Bold:N|Italic:N|CharSet:0
|Font|Style:User3|Typeface:"Times New Roman"|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:"Staff"|Group:"Standard"
|StaffProperties|EndingBar:Section Close|Visible:Y|BoundaryTop:12|BoundaryBottom:12|Lines:5|Color:Default
|StaffProperties|Muted:N|Volume:127|StereoPan:64|Device:0|Channel:1
|StaffInstrument|Trans:0|DynVel:10,30,45,60,75,92,108,127
|Clef|Type:Treble
|Tempo|Tempo:30|Pos:8.5
|Spacer|Width:50
|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:8th,Grace|Pos:-6^|Opts:Stem=Up,Beam=First|Visibility:Never
|Note|Dur:8th,Grace|Pos:-4^|Opts:Stem=Up,Beam=End|Visibility:Never
|User|Arpeggio.ms|Pos:-23.5|MarkerExtend:Y|Play:N
|Chord|Dur:4th|Pos:-6,-4,-1
|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:Bass
|Note|Dur:8th,Grace|Pos:-1^|Opts:Stem=Up,Beam=First|Visibility:Never
|Note|Dur:8th,Grace|Pos:1^|Opts:Stem=Up,Beam|Visibility:Never
|Note|Dur:8th,Grace|Pos:3^|Opts:Stem=Up,Beam=End|Visibility:Never
|Note|Dur:Whole,Grace|Pos:-4x^|Opts:Muted|Visibility:Never
|Note|Dur:Whole,Grace|Pos:-4y^|Visibility:Never
|Note|Dur:Whole,Grace|Pos:-4y^|Visibility:Never
|Note|Dur:Whole,Grace|Pos:-4y|Visibility:Never
|Chord|Dur:4th|Pos:-1,1,3
!NoteWorthyComposer-End
Title: Re: Arpeggio.ms (2.0c)
Post by: Flurmy on 2018-01-17 07:15 pm
Mike,
I normally use my slightly imperfect user tool to make arpeggios instead of the one embedded for one reason: I can arpeggiate a whole sequence at once (all the chords in the selection) without having to apply the tool to each chord singularily.
Of course the single notes and the tied chords are excluded.
Is it possible to have such a feature in the embedded tool?
You know, playing harp the arpeggios are so many...  :D
Title: Re: Arpeggio.ms (2.0c)
Post by: Mike Shawaluk on 2018-01-17 07:44 pm
Because the embedded user tool is part of the plugin file, my goal was to "keep it simple". You know, the 80-20 rule. Plus, user tools are really not my forte (yet). Unfortunately, you are clearly in the 20%, but fortunately, there is your tool (and NWC's) for the more complex behavior.

I'll keep it in mind, though, as I learn more about how user tools work.
Title: Re: Arpeggio.ms (2.0c)
Post by: SEBC on 2018-01-17 09:33 pm
Flurmy

Do you really play the harp or just the computer harp?
Title: Re: Arpeggio.ms (2.0c)
Post by: SEBC on 2018-01-17 09:46 pm
Thanks again, Mike. My problem was that I was using the wrong method to try and move the marker, and it wouldn't budge (highlight and stretch with the mouse). Now I know to use the up or down arrow.  What Child is This, verse 2 is looking much better!

Thanks for taking time to explain it to me and for the example. I am not too worried about playback at this point. I am still figuring out how to make these scores look correct!

Title: Re: Arpeggio.ms (2.0c)
Post by: Flurmy on 2018-01-18 09:45 pm
Flurmy
Do you really play the harp or just the computer harp?
Well, "play" is a sort of overstatement.  ;)
I just strum harp like many other instruments, mainly keyboards, recorders, quena, tin whistle, mandolin, guitar, violin...
It's my daughter that plays harp, both celtic (lever) and classic (pedal), so I often have to arrange musics for harp or harp and recorder (and play with her).
Title: Re: Arpeggio.ms (2.0c)
Post by: William Ashworth on 2018-01-25 07:21 pm
Mike, can you spot a reason why the arpeggio fails to cut off in this clip? (It's the arpeggio: if you remove it, the clip sounds properly.)

Code: [Select · Download]
!NoteWorthyComposerClip(2.751,Single)
|Clef|Type:Treble
|Instrument|Name:"Acoustic Grand Piano"|Patch:0|Trans:0|DynVel:10,30,45,60,75,92,108,127|Pos:15.5
|TimeSig|Signature:3/4
|User|Arpeggio.ms|Pos:-1
|Dynamic|Style:p|Pos:-8
|Chord|Dur:Half,Dotted|Pos:b5^,b7^,b10^|Opts:Muted
|Bar
|Chord|Dur:Half,Dotted|Pos:5,7,10|Opts:Muted
|Bar
|TimeSig|Signature:4/4
|Rest|Dur:Half
|Note|Dur:Half|Pos:15
!NoteWorthyComposerClip-End
Title: Re: Arpeggio.ms (2.0c)
Post by: Mike Shawaluk on 2018-01-25 07:50 pm
You need to unmuted the 2nd (tied) chord.  The following is from the help text 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.

When you mute a note in NWC, it will suppress that note's "note on" and "note off" events. We don't want to suppress the "note off" on the tied chord since that will cause a hanging note.
Title: Re: Arpeggio.ms (2.0c)
Post by: William Ashworth on 2018-01-25 09:43 pm
Thanks.
Title: What the Hell...
Post by: Flurmy on 2018-01-27 10:02 pm
I don't understand what's going on.
Try "staff play" (<shift><F5>) on the top staff...

Code: (nwc) [Select · Download]
!NoteWorthyComposer(2.751)
|Editor|ActiveStaff:1|CaretIndex:1|CaretPos:0
|SongInfo|Title:"Lascia ch\'io pianga"|Author:""|Lyricist:""|Copyright1:""|Copyright2:""
|PgSetup|StaffSize:20|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:12.31|Bold:Y|Italic:Y|CharSet:0
|Font|Style:StaffBold|Typeface:"Times New Roman"|Size:10|Bold:Y|Italic:N|CharSet:0
|Font|Style:StaffLyric|Typeface:"Times New Roman"|Size:9.23|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:"Boxmarks"|Size:24|Bold:N|Italic:N|CharSet:0
|Font|Style:User2|Typeface:"Times New Roman"|Size:13|Bold:N|Italic:N|CharSet:0
|Font|Style:User3|Typeface:"Times New Roman"|Size:13|Bold:N|Italic:N|CharSet:0
|Font|Style:User4|Typeface:"Times New Roman"|Size:13|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:0.51|Top:0.00|Right:0.51|Bottom:0.51|Mirror:N
|AddStaff|Name:"Vocal"|Label:"Vocal"|Group:"Standard"
|StaffProperties|EndingBar:Open (hidden)|Visible:Y|BoundaryTop:18|BoundaryBottom:10|Lines:5|Color:Default
|StaffProperties|Muted:N|Volume:127|StereoPan:64|Device:0|Channel:1
|StaffInstrument|Patch:54|Trans:0|DynVel:10,30,45,60,75,92,108,127
|Clef|Type:Treble
|Key|Signature:C|Tonic:C
|TimeSig|Signature:Common
|Tempo|Tempo:90|Pos:10
|Rest|Dur:4th
|Dynamic|Style:f|Pos:-8
|Note|Dur:8th|Pos:n3
|Rest|Dur:16th
|Note|Dur:16th|Pos:3
|Note|Dur:8th|Pos:4
|Note|Dur:8th|Pos:5
|Note|Dur:8th|Pos:5
|Note|Dur:8th|Pos:b2
|Rest|Dur:4th
|Bar
|Note|Dur:4th|Pos:b2
|Note|Dur:8th|Pos:2
|Note|Dur:8th|Pos:1
|Note|Dur:8th|Pos:b-1
|Note|Dur:8th|Pos:-1
|Rest|Dur:8th
|Note|Dur:8th|Pos:1
|Bar
|AddStaff|Name:"Right Hand"|Label:"Keyboard"|Group:"Keyboard"
|StaffProperties|EndingBar:Open (hidden)|Visible:Y|BoundaryTop:13|BoundaryBottom:10|Lines:5|WithNextStaff:Brace,ConnectBars,Layer|Color:Default
|StaffProperties|Muted:N|Volume:127|StereoPan:64|Device:0|Channel:2
|StaffInstrument|Name:"Harpsichord"|Patch:6|Trans:0|DynVel:10,30,45,60,75,92,108,127
|Clef|Type:Treble
|Key|Signature:C|Tonic:C
|TimeSig|Signature:Common
|Rest|Dur:4th
|Dynamic|Style:mp|Pos:-8
|User|Arpeggio.ms|Pos:-3|Offset:0|Anticipated:Y
|Chord|Dur:Half|Pos:-2,b2,n3|Opts:Muted
|User|Arpeggio.ms|Pos:-3|Offset:0|Anticipated:Y
|Chord|Dur:Half|Pos:0^,b2^,5^|Opts:Muted
|Bar
|Chord|Dur:Half|Pos:0,2,5
|User|Arpeggio.ms|Pos:-3|Offset:0|Anticipated:Y
|Chord|Dur:Half|Pos:b-1,1,b6|Opts:Muted
|Bar
!NoteWorthyComposer-End
Title: Re: What the Hell...
Post by: Rick G. on 2018-01-27 11:42 pm
I don't understand what's going on.
Nor do I, but if you remove the ties from the bottom staff, the anomaly goes away.
NWC 2.75a.2 seems to have some bugs when translating the effect of ties into MIDI
Title: Re: Arpeggio.ms (2.0c)
Post by: Mike Shawaluk on 2018-01-27 11:58 pm
I think I know "what" is happening, but I don't know "why".  I'm going to post some technical details here, in the hopes that @NoteWorthy Online will see this and perhaps be able to comment.

The Arpeggio.ms object normally use the function nwcplay.note() to play its notes. However, because the second chord is tied, that arpeggio instead uses the nwcplay.midi() function to play the note, so that it only generates a "noteOn" MIDI event (the following tied chord will supply the "noteOff" events to end the arpeggio).  The API documentation for nwcplay.note() and nwcplay.midi() each say "The channel and port are set by the current staff environment."

It appears that the nwcplay.midi() on the bottom staff is sounding when you are playing just the top staff (via Shift-F5), when it should be muted along with the other notes. Interestingly, if you mute the lower staff and then just click F5 (Play), it does the same thing. For added fun, mute both staves and click Play, and you will hear just the lower arpeggio.

If I remove the tie on the second arpeggio, the playback artifact goes away (which I suspect is because it is no longer using the nwcplay.midi() function for playback).

All of the above long-winded technobabble is trying to say that perhaps it is a bug in NWC. I can't see that I am doing anything incorrect in the plugin that would cause this behavior; I assume that nwcplay.midi() calls should respect the "muteness" of a staff.

EDIT: @Rick G. posted a reply while I was entering mine, and he made some of the same observations.
Title: Re: Arpeggio.ms (2.0c)
Post by: William Ashworth on 2018-09-24 07:57 pm
Hi Mike -
Small problem with the Arpeggio object, shown in this clip from the accompaniment to a song I'm working on:

Code: [Select · Download]
!NoteWorthyComposerClip(2.751,Single)
|Clef|Type:Treble
|Instrument|Name:"Acoustic Grand Piano"|Patch:0|Trans:0|DynVel:10,30,45,60,75,92,108,127|Pos:16.5
|Note|Dur:Half,Dotted,Slur|Pos:8^|Opts:Stem=Down
|Bar
|Dynamic|Style:p|Pos:-9|Justify:Center|Placement:AtNextNote
|User|Arpeggio.ms|Pos:-4
|Chord|Dur:Half,Dotted|Pos:8^|Opts:Stem=Up,Muted|Dur2:Half,Dotted|Pos2:-3^,-1^,1^,b3^
|Bar
|TimeSig|Signature:12/8
|TempoVariance|Style:Fermata|Pause:0|Pos:14.5|Justify:Center|Placement:AtNextNote
|Chord|Dur:Whole,Dotted|Pos:8|Opts:Stem=Up|Dur2:Whole,Dotted|Pos2:-3,-1,1,3
!NoteWorthyComposerClip-End

The arpeggio should only apply  to the new notes in the second measure (the F4 through the Eb5); it shouldn't extend to the tied C6 from the previous measure. I can fix this with a layer, of course, but I don't think I should need to. A fix would be appreciated.

Thanks,

Bill
Title: Re: Arpeggio.ms (2.0c)
Post by: Mike Shawaluk on 2018-09-25 03:54 am
I think see what is happening. The Arpeggio object does not recognize/respect a tie-in from a previous note. It would be possible to tell it to skip the playback of tied-in notes, and for the above example (where the final note of the arpeggio is the one we want to skip) this would play as expected. However, if there were other tied-in notes within an arpeggio chord, with the current code, there would be "gaps" in the playback where the tied notes occur.  It might make more sense to have the Arpeggio object only play one of the halves of a split stem chord, via a new option parameter.

I'm currently on vacation and won't have time to fix this for a while. I would suggest that you put the upper and lower sets of notes on their own staff, as you proposed.
Title: Re: Arpeggio.ms (2.0c)
Post by: William Ashworth on 2018-09-25 05:19 am
Thanks for the response, Mike. I'll look forward to an eventual fix - playing only half of a split-stem chord as an option would probably handle most circumstances. In the meantime, there is still the layers option.
Title: Re: Arpeggio.ms (2.0c)
Post by: William Ashworth on 2018-09-25 03:37 pm
A related problem: the object doesn't mute when the staff it's on is muted. If the notes of the arpeggiated chord are tied, the object doesn't send a noteOff command, and because the staff is muted, the end of the chord doesn't send one either. As a result, NWC thinks the chord is still playing all the way to the end of the piece, and will sound it if you start play at any later time - a little ghost piano chord that sounds off even if every staff related to the piano part is muted - even if the piano staves are incomplete and you've started play well beyond the place where they end. Took me a while to figure out where that ghost was coming from.

And related to THAT is the fact that the note with the incoming tie (in yesterday's example) doesn't receive a noteOff until the next time a note is sounded at that pitch, even if the staff isn't muted.  In that case, I get a bright little ghost note instead of a ghost chord when I start play after the arpeggio. Apparently the object depends on NWC to send a noteOff, and NWC thinks it doesn't need to send one because the note has been muted.

I was postponing the creation of the second layer, but I guess I'd better get to that right now....

EDIT: the new layer didn't help. The ghost chord still sounds. Evidently no noteOff is being sent with the ties present, whether or not anything is muted.

EDIT 2: removing the ties from the arpeggiated chord on the new layer has eliminated the ghost chord. The ties from the muted chord in the original layer still work to carry the sound over, even though they are on a different layer from the sounded chord (well, they're assigned to the same MIDI channel). Crisis averted for now.
Title: Re: Arpeggio.ms (2.0c)
Post by: Rick G. on 2018-09-25 04:42 pm
A related problem: the object doesn't mute when the staff it's on is muted.
It is probably possible for the object to detect this, but IMO, NoteWorthy should.
NoteWorthy would be improved if it did not generate any MIDI events from a muted staff.

If you really want to stop a staff from producing sound, assign playback to a non-existent device.
That should supress everything except tempo changes.
Title: Re: Arpeggio.ms (2.0c)
Post by: Mike Shawaluk on 2018-09-26 12:46 pm
It is probably possible for the object to detect this, but IMO, NoteWorthy should.
NoteWorthy would be improved if it did not generate any MIDI events from a muted staff.

If you really want to stop a staff from producing sound, assign playback to a non-existent device.
That should supress everything except tempo changes.
Just a short note: it seems that this issue was already discussed earlier in this thread, here (https://forum.noteworthycomposer.com/?topic=9087.msg69402#msg69402) and here (https://forum.noteworthycomposer.com/?topic=9087.msg69396#msg69396). I tend to agree with Rick that this is a NWC "bug", but as he says above, perhaps it's possible to check the staff properties to see if it is muted, and suppress the MIDI events under that condition.

EDIT: There is a method available for checking staff properties. For example:
Code: (lua) [Select · Download]
print (nwcdraw.getStaffProp("Muted"))
will return true/false based on the Muted checkbox for staff properties. Unfortunately, I cannot invoke nwcdraw() methods in the Play event handler, so there does not seem to be a reliable way to check for this, outside of something kludgy like checking for mute during the Draw event, storing that value in a global variable, and then checking that variable during the Play event.
Title: Re: Arpeggio.ms (2.0c)
Post by: William Ashworth on 2018-10-15 05:51 pm
It occurred to me this morning - struggling once again with the arpeggio object and ties - that a handy user object to have would be one that simply sent an "All Notes Off" command.
Title: Re: Arpeggio.ms (2.0c)
Post by: Rick G. on 2018-10-15 06:55 pm
It occurred to me this morning - struggling once again with the arpeggio object and ties
I assume that "It" is a stuck note. This will produce a "note off" to stop it:
Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.751,Single)
|Note|Dur:Whole,Grace|Pos:0^|Opts:Muted|Visibility:Never
|Note|Dur:Whole,Grace|Pos:0|Visibility:Never
|Rest|Dur:64th
!NoteWorthyComposerClip-End
The above produces this MIDI output:
Code: (mtx) [Select · Download]
1 On ch=1 n=71 v=0
The rest will be mostly unneeded. It is there only because grace notes at the end of the song are ignored by NoteWorthy.
Title: Re: Arpeggio.ms (2.0c)
Post by: William Ashworth on 2018-10-15 11:38 pm
Rick, I haven't tried your kludge yet, but I'm assuming from what I'm seeing in it that it only stops notes on specific pitches. That's helpful. But what I'm looking for is something generic that can simply be placed anywhere in the score you want everything to stop playing.
Title: Re: Arpeggio.ms (2.0c)
Post by: Rick G. on 2018-10-15 11:43 pm
I'm looking for is something generic that can simply be placed anywhere in the score you want everything to stop playing.
What you wanted was obvious. I just added what you might do.
Title: Re: Arpeggio.ms (2.0c)
Post by: Rick G. on 2018-10-16 04:59 am
I can fix this with a layer, of course, but I don't think I should need to.
This seems to work:
Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.751,Single)
|Clef|Type:Treble
|Instrument|Name:"Acoustic Grand Piano"|Patch:0|Trans:0|DynVel:10,30,45,60,75,92,108,127|Pos:16.5
|Note|Dur:Half,Dotted,Slur|Pos:8^|Opts:Stem=Down
|Bar
|Dynamic|Style:p|Pos:-9|Justify:Center|Placement:AtNextNote
|Note|Dur:4th,Grace|Pos:-3^|Visibility:Never
|Note|Dur:4th,Grace|Pos:-1^|Visibility:Never
|Note|Dur:4th,Grace|Pos:1^|Visibility:Never
|User|Arpeggio.ms|Pos:-4|Play:N
|Chord|Dur:4th,Grace|Pos:-3^,b3^|Visibility:Never
|Chord|Dur:Half,Dotted|Pos:8^|Opts:Stem=Up|Dur2:Half,Dotted|Pos2:-3^,-1^,1^,b3^
|Bar
|TimeSig|Signature:12/8
|TempoVariance|Style:Fermata|Pause:0|Pos:14.5|Justify:Center|Placement:AtNextNote
|Chord|Dur:Whole,Dotted|Pos:8|Opts:Stem=Up|Dur2:Whole,Dotted|Pos2:-3,-1,1,3
!NoteWorthyComposerClip-End
Title: Re: Arpeggio.ms (2.0c)
Post by: Mike Shawaluk on 2018-12-01 12:12 pm
All,

I've been back from vacation for a while, but I got side-tracked on this issue. In the meanwhile, there are some other developments that "tie into" this issue (pun intended).  Namely, the issue of NWC playing MIDI events on a muted staff has been addressed as of version 2.8 beta 1.

Therefore, I will skip the above kludge to check for a muted staff, but I will implement the change to suppress arpeggio playback on notes that have a "tie in" from a previous note. I previously commented that this approach could cause a slight gap in the playback of an arpeggio if there were tied-in notes in the interior of the chord. However, I don't think this would occur that often in scores, so I am opting for the KISS principle and going for the less complicated approach, that doesn't require yet another object setting.

Thank you all for your support and feedback.

Mike
Title: Re: Arpeggio.ms (2.1)
Post by: Mike Shawaluk on 2018-12-01 12:55 pm
The Arpeggio.ms object has been updated, with the following changes:


Please refer to the parent post for additional information.

Title: Side effects
Post by: Flurmy on 2019-05-11 09:18 am
When there is a suite of arpeggios on the same notes and the arpeggios must be played anticipated, then the note off of the previous notes arrive after the note on of the anticipated following arpeggio, leaving only the topmost note with an awful effect.
Try this:
Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.751,Single)
|Clef|Type:Treble
|Key|Signature:Bb|Tonic:F
|TimeSig|Signature:4/4
|Rest|Dur:4th|Opts:Stem=Up
|Bar
|User|Arpeggio.ms|Pos:-3|Anticipated:Y
|Chord|Dur:Whole|Pos:-6,-3,-1,1,4|Opts:Muted
|Bar
|User|Arpeggio.ms|Pos:-3|Offset:0|Anticipated:Y
|Chord|Dur:Whole|Pos:-6,-3,-1,1,4|Opts:Muted
|Bar
|User|Arpeggio.ms|Pos:-3|Offset:0|Anticipated:Y
|Chord|Dur:Whole|Pos:-6,-3,-1,1,4|Opts:Muted
|Bar
|User|Arpeggio.ms|Pos:-3|Offset:0|Anticipated:Y
|Chord|Dur:Whole|Pos:-7,-5,-3,0,2|Opts:Muted
|Bar
|User|Arpeggio.ms|Pos:-3|Offset:0|Anticipated:Y
|Chord|Dur:Whole|Pos:-6,-3,-1,1,4|Opts:Muted
|Bar
|User|Arpeggio.ms|Pos:-3|Offset:0|Anticipated:Y
|Chord|Dur:Whole|Pos:-6,-3,-1,1,4|Opts:Muted
!NoteWorthyComposerClip-End
Any idea on how to circumvent this without big impact on the visible score (beside using a playing hidden layer, of course)?
Title: Re: Side effects
Post by: Mike Shawaluk on 2019-05-11 01:31 pm
When there is a suite of arpeggios on the same notes and the arpeggios must be played anticipated, then the note off of the previous notes arrive after the note on of the anticipated following arpeggio, leaving only the topmost note with an awful effect.
Try this:
{snip}
Any idea on how to circumvent this without big impact on the visible score (beside using a playing hidden layer, of course)?
Congratulations! You've found a bug that has been in the plugin almost forever! I'm trying to figure out how the best way to fix this.

As a side note, the same bug is present in the GuitarChord.ms object, when you select consecutive chords with the same final note and anticipated playback (which is not surprising since the code is almost identical for strum playback).

Thanks,
Mike
Title: Re: Arpeggio.ms (2.1)
Post by: Flurmy on 2019-05-11 03:48 pm
Mike, it's hard to call it a bug.
I would be a bug if the arpeggios where a built-in feature, but being an extra (i.e. a plugin) I think it's hard to modify what happens "elsewere" in the score, out of the control of the plugin.
Of course I'll be glad to be disproved...  :)
Title: Re: Side effects
Post by: Rick G. on 2019-05-11 04:42 pm
When there is a suite of arpeggios on the same notes and the arpeggios must be played anticipated, then the note off of the previous notes arrive after the note on of the anticipated following arpeggio ...
Any idea on how to circumvent this without big impact on the visible score (beside using a playing hidden layer, of course)?
Perhaps:
Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.751,Single)
|Bar
|User|Arpeggio.ms|Pos:-3|Anticipated:Y
|RestChord|Dur:Half,DblDotted|Opts:Stem=Up,Muted,HideRest|Dur2:Whole|Pos2:-6,-3,-1,1,4
|Rest|Dur:8th|Opts:Stem=Up|Visibility:Never
!NoteWorthyComposerClip-End
It appears that Arpeggio.ms uses Dur to time the note off and ignores Dur2
Title: Re: Arpeggio.ms (2.1)
Post by: Mike Shawaluk on 2019-05-11 04:57 pm
As you observed, when you have two consecutive arpeggios which have the same notes, and the second arpeggio is anticipated, some of the "note on" events for arpeggio #2 are inserted before the corresponding "note off" event for arpeggio #1.  Sort of like the following picture, where 1 represents a "note on", and 0 represents a "note off":
Code: [Select · Download]
       1        0|1        0
     1         10|         0
   1         1  0|         0
 1         1    0|         0
The net result is that the "note off" events for the 2nd arpeggio are making the 1st arpeggio notes end early for all but the top (final) note, so that note "sticks out".

I can't think of an easy way to fix this. As has been noted previously, anticipated arpeggios (and guitar chords) are sort of primitive time travel devices, since they place MIDI events in the past, relative to the location of the object. In the above example, I guess what you are hearing is the result of the causality violation that I refer to in the documentation :)

One workaround to get normal playback would be to create a second layered staff and alternate the like chords between the two staves, making sure to use a different MIDI channel for each staff. Something like this:
Code: (nwc) [Select · Download]
!NoteWorthyComposer(2.751)
|AddStaff|Name:"Staff"|Group:"Standard"
|StaffProperties|EndingBar:Section Close|Visible:Y|BoundaryTop:12|BoundaryBottom:12|Lines:5|WithNextStaff:Layer|Color:Default
|StaffProperties|Muted:N|Volume:127|StereoPan:64|Device:0|Channel:1
|StaffInstrument|Trans:0|DynVel:10,30,45,60,75,92,108,127
|Clef|Type:Treble
|Key|Signature:Bb|Tonic:F
|TimeSig|Signature:4/4
|Rest|Dur:4th|Opts:Stem=Up
|Bar
|User|Arpeggio.ms|Pos:-3|Anticipated:Y
|Chord|Dur:Whole|Pos:-6,-3,-1,1,4|Opts:Muted
|Bar
|Rest|Dur:Whole|Visibility:Never
|Bar
|User|Arpeggio.ms|Pos:-3|Offset:0|Anticipated:Y
|Chord|Dur:Whole|Pos:-6,-3,-1,1,4|Opts:Muted
|Bar
|User|Arpeggio.ms|Pos:-3|Offset:0|Anticipated:Y
|Chord|Dur:Whole|Pos:-7,-5,-3,0,2|Opts:Muted
|Bar
|User|Arpeggio.ms|Pos:-3|Offset:0|Anticipated:Y
|Chord|Dur:Whole|Pos:-6,-3,-1,1,4|Opts:Muted
|Bar
|Rest|Dur:Whole|Visibility:Never
|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
|Key|Signature:Bb|Tonic:F
|TimeSig|Signature:4/4
|Rest|Dur:4th|Opts:Stem=Up
|Bar
|Rest|Dur:Whole|Visibility:Never
|Bar
|User|Arpeggio.ms|Pos:-3|Offset:0|Anticipated:Y
|Chord|Dur:Whole|Pos:-6,-3,-1,1,4|Opts:Muted
|Bar
|Rest|Dur:Whole|Visibility:Never
|Bar
|Rest|Dur:Whole|Visibility:Never
|Bar
|Rest|Dur:Whole|Visibility:Never
|Bar
|User|Arpeggio.ms|Pos:-3|Offset:0|Anticipated:Y
|Chord|Dur:Whole|Pos:-6,-3,-1,1,4|Opts:Muted
!NoteWorthyComposer-End
Title: Re: Arpeggio.ms (2.1)
Post by: Flurmy on 2019-05-11 05:51 pm
Rick the wizard strikes again.
How to exploit a "bug" for something useful.  :)
Rick, you're incredible!
Thank you.

Quote
I can't think of an easy way to fix this.
Alas, so do I.