Skip to main content
Topic: Trill.ms (2.4) (Read 75593 times) previous topic - next topic

Re: Test: Trill.test (0.5)

Reply #50
The Trill.test object has been updated with the following changes:
  • Parameter "Auxiliary Note Offset" has been replaced by "Auxiliary Note Interval", which has a default setting of "Auto", which will automatically determine the pitch of the auxiliary note based on the current key signature and effective accidentals on the staff, as modified by the "Accidental" parameter. For instances where this does not work, you can choose an explicit interval between -5 and 5.
  • Parameter "Accidental" now includes "Double Sharp" as a choice.
It should be noted that the Auto setting described above can result in a zero-interval trill for certain notes and accidental symbols (i.e. in the key of C major, a trilled B with a flat accidental). I'm assuming such cases are "nonsense notation".

Also please note I haven't yet implemented the "cue notehead in parens" accidental style. It remains on my ToDo list.

Please let me know if you think the accidental/trill logic needs adjusting.

Thanks,
Mike

Re: Trill.ms (1.0)

Reply #51
The Trill object has been updated, with the following changes:
  • Graduation from ".test" to ".ms". Use the "Change Object Type" user tool to update any scores which contain the .test object.

As previously noted, "cue notehead in parens" accidental style has been reserved for future implementation.

Thanks,
Mike

Re: Trill.ms (1.0)

Reply #52
After I found this nice object, I thought a little about playing trills better. I did have some ideas here, mainly from having arranged quite a number of trills for crank and band organs - so I set out to describe them, and even write an experimental program that would create trills that are "more musical." The result of all this can be found here: "Some thoughts on automatic playing of trills".

The program is my first Lua program, so it might not be the very best style; and it does not at all interface with NWC's objects - it's just a demo program for my trill note computing algorithm. But maybe it might be possible to include part of the algorithm in the Trill.ms object ... if my ideas make any sense.

H.M.

Re: Trill.ms (1.0)

Reply #53
Thanks Harald - that was an interesting post/article. There is obviously much more to trills than meets the eye.

There are certainly a number of things that could be added to Trill.ms to make it more versatile/realistic. However, the object currently has 11 parameters, and there is a hard upper limit of 16 parameters available (although it should be possible to combine a few of them). One easy improvement would be to expand "Playback Note Type" from the current 3 choices (16th, 32nd, 64th), or possibly change it to a numeric value, as in the Arpeggio object. This would give much finer control of the speed than can be had with the various dotted/double-dotted/triplet combinations that are possible with standard notation.

Mike

Re: Trill.ms (1.0)

Reply #54
Suddenly, I get this:

C:\ProgramData\Noteworthy Software\nwc2\UserPlugins\Trill.ms.nwcuser.lua:138: attempt to perform arithmetic on a nil value

Unfortunately, I cannot reproduce in a smaller score thatn the complete one.

Harald

Re: Trill.ms (1.0)

Reply #55
Suddenly, I get this:

C:\ProgramData\Noteworthy Software\nwc2\UserPlugins\Trill.ms.nwcuser.lua:138: attempt to perform arithmetic on a nil value

Unfortunately, I cannot reproduce in a smaller score thatn the complete one.

Harald
It's very easy to reproduce this: add a trill object to the very end of any score (e.g. with no notes after it).

I recently discovered that several other objects will throw a similar error if there are no notes following them. I'm posting an updated version of the Trill.ms object presently.

Thanks for the error report.

Mike

Re: Trill.ms (1.1)

Reply #56
The Trill object has been updated, with the following changes:
  • Fix a bug which caused an exception when there were no notes following the trill object.

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


Re: Trill.ms (1.1)

Reply #57
My new trill that led to the error was not at end, but somewhere in the middle ... but be that as it may, now my trills trill again!
Many thanks!
Harald

Re: Trill.ms (1.1)

Reply #58
Couple of observations:

If there is a fermata delay then it does not trill through the added delay. If the fermata is on the trill staff then it doesn't start until the delay (added on the front of the note) has elapsed. If the fermata is on another staff on a later note then it stops trilling for the length of the delay and then starts again!

If the trill is on a note tied to a subsequent note then the sound stops altogether at the end of the first note.

Not a big deal but it would be nice to have it perfected. I had thought that a work around would be to have a hidden tied note to mimic the fermata but the second problem kills that idea. :(

Re: Trill.ms (1.1)

Reply #59
Couple of observations:

If there is a fermata delay then it does not trill through the added delay. If the fermata is on the trill staff then it doesn't start until the delay (added on the front of the note) has elapsed. If the fermata is on another staff on a later note then it stops trilling for the length of the delay and then starts again!
I'm not sure I am visualizing this exactly. Can you provide a clip that shows what you are trying to do?
If the trill is on a note tied to a subsequent note then the sound stops altogether at the end of the first note.
This should work correctly if the Note Span property is set to 2, so it plays through both notes. However, please note that for ties, you should only mute the first note, otherwise you'll get a stuck note.  Again, if you show me a clip, I can make sure I am giving you a valid fix.
Not a big deal but it would be nice to have it perfected. I had thought that a work around would be to have a hidden tied note to mimic the fermata but the second problem kills that idea. :(
Thanks for the feedback; If I can't find a reasonable workaround, I'll find a way to correct the object so it handles these situations.

Re: Trill.ms (1.1)

Reply #60
If there is a fermata delay then it does not trill through the added delay.
Example:
Code: (nwc) [Select · Download]
!NoteWorthyComposer(2.75)
|AddStaff|Name:"Staff"
|StaffProperties|EndingBar:Open (hidden)
|Instrument|Name:"Recorder"|Patch:74|Pos:12
|Clef|Type:Treble
|TimeSig|Signature:4/4
|User|Trill.ms|Pos:9|AccStyle:2|Span:1|WhichFirst:Auxiliary
|TempoVariance|Style:Fermata|Pause:8|Pos:9|Justify:Center|Placement:AtNextNote
|Note|Dur:Half|Pos:1|Opts:Muted
|Rest|Dur:Half
!NoteWorthyComposer-End
Registered user since 1996

Re: Trill.ms (1.1)

Reply #61
Thanks for the example Rick.

I'm not sure exactly why this is happening. For the record, you will get the same "first note plays too long" effect if you try to use Arpeggio.ms on a fermata chord. The first nwcplay() has its duration increased by the fermata delay.

I will continue to experiment with this, to see if this is something I can adjust for during object playback.

Re: Trill.ms (1.1)

Reply #62
Tremolo and TremoloSingle both do this too.
I plays 'Bones, crumpets, coronets, floosgals, youfonymums 'n tubies.


Re: Trill.ms (1.1)

Reply #64
It happens because there can be no MIDI events during the pause.
Rick is correct. A performance pause on a fermata (or other eligible tempo variance object) essentially pauses the song for the specified duration where the item occurs. Nothing new can be played during this pause.

Therefore, to achieve 'fermata' trill playback with a custom object, you want to create a tied (or longer duration) note, most likely on a hidden staff. As mentioned earlier, the Span property on a trill would need to be increased to cover both notes.

Re: Trill.ms (1.1)

Reply #65
Quote
!NoteWorthyComposerClip(2.75,Single)
|User|Trill.ms|Pos:10.5|Class:StaffSig|Span:1|EndOffset:-8|StartOffset:-.5
|DynamicVariance|Style:Crescendo|Pos:-8.5
|RestChord|Dur:Half|Opts:Stem=Down,ArticulationsOnStem|Dur2:Whole|Pos2:4
|Chord|Dur:Half|Pos:-1,0,2|Opts:Stem=Down
!NoteWorthyComposerClip-End

In this system, the trill stops at the end of the rest under the note, not the end of the note. Also it seems difficult to get nice short trill markings - I'd like tr. then maybe two waves; it seems to want to shoot off for ages.

Re: Trill.ms (1.1)

Reply #66
In this system, the trill stops at the end of the rest under the note, not the end of the note.
It is only playing for a half note duration because Note Span is set to 1, and the rest chord has a duration of a half note (the rest duration). If you set Note Span to 2, then the trill will play for the full duration of the whole note.
Also it seems difficult to get nice short trill markings - I'd like tr. then maybe two waves; it seems to want to shoot off for ages.
I implemented the trill marking according to references that said it should cover the staff duration of the notes being played, Setting the end position to a large negative number is one way to shorten the line; another would be to set the object's visibility to Never, and then add your own text "tr~~".  If this is a legitimate trill style, I could probably add an option to implement that, that would be easier than entering the negative offsets.





Re: Trill.ms (1.1)

Reply #71
No, I think it's working fine.  ;)  (If it ain't Baroque, don't fix it.)

Re: Trill.ms (1.1)

Reply #72
Actually I was considering a new parameter on the Trill object, "Style", which would have values of "Modern" and "Baroque" (and perhaps there are others). I would have used the subject line "Trill.ms: Going for Baroque" but you beat me to the pun :)

Re: Trill.ms (1.1)

Reply #73
Sounds useful. It'd also allow various other styles to be added later.  By the way, working on this score has taught me lots about terrible old conventions of music. Like the transposing natural trumpets labelled using the word nowadays used to indicate [French] horns, but  which have to be trumpets because they're very obviously within the natural trumpet harmonic series, to writing the Soprano part using the Soprano clef (a C clef on the bottom line) - so just because something's in an old score doesn't always make it a good idea. =)

Re: Trill.ms (1.1)

Reply #74
You do realize there are Bb horns, don't you? The modern version is called the "marching" horn. Historically, in the days of natural horns and trumpets, horns were made in multiple sizes for use in different keys, and the Bb was known as the "alto" horn. It would have had the same harmonic series as the natural Bb trumpet.

Re: Trill.ms (2.0c)

Reply #75
The Trill.test object has been updated with the following changes:

  • The object will now render trills which span to successive systems; the extended marking will be marked with "(tr)".
  • Other code improvements have been made, resulting in more accurate rendering.

Re: Trill.ms (2.0c)

Reply #76
The current speed options available are: 'Sixteenth', 'Thirtysecond', 'Sixtyfourth'.
In some cases I find Thirtysecond too slow and Sixtyfourth too fast. In others Sixtyfourth is still too slow.
Since in both Arpeggio and Acciaccatura Mike used the much more flexible parameter "Rate" (and surreptitiously allowed the fusa  ;) ) I'm wondering if the same could be done in Trillo too.

Re: Trill.ms (2.0c)

Reply #77
The current speed options available are: 'Sixteenth', 'Thirtysecond', 'Sixtyfourth'.
In some cases I find Thirtysecond too slow and Sixtyfourth too fast. In others Sixtyfourth is still too slow.
Since in both Arpeggio and Acciaccatura Mike used the much more flexible parameter "Rate" (and surreptitiously allowed the fusa  ;) ) I'm wondering if the same could be done in Trillo too.
The code could certainly be changed to use a Rate value instead of the specific note types, but of course there would be the issue of backward compatibility. That too can be handled by the "audit" event, which would convert the note type to a corresponding Rate value when the score is opened.  I assume you would want values of 16, 32 and 64 to correspond to those three note types?

It seems that you want to have faster trill options, so I assume that 16 would be an acceptable minimum value. Would 128 be a fast enough top value?

Re: Trill.ms (2.0c)

Reply #78
I assume you would want values of 16, 32 and 64 to correspond to those three note types?
Very good guess!  :)

It seems that you want to have faster trill options, so I assume that 16 would be an acceptable minimum value. Would 128 be a fast enough top value?
The problem is to have a decent trill on a largo.
As far as I know, 1/128 (fusa) should be enough.
By the way: isn't that already the limit for the other plugins' rate?

there would be the issue of backward compatibility
Oh, yes.
But I was thinking something like: if PlayNote argument is not a number then it should be one of the three options and you can convert it to the relevant numeric value on the fly.

Re: Trill.ms (1.0)

Reply #79
The Trill.ms object has been updated, with the following changes:
  • Change the "Playback Note Type" dropdown parameter (Sixteenth, Thirtysecond, Sixtyfourth) to a numeric "Playback Rate" parameter (as is also done for Arpeggio.ms and Acciaccatura.ms). Scores which reference the older parameter value will be automatically upgraded to the rate parameter.  (Thanks to @Flurmy for the enhancement request.)


Re: Trill.ms (2.1)

Reply #80
Already done?
Thanks to you for the quinck upgrade, Mike!

Re: Trill.ms (2.1)

Reply #81
I am trying to print the wavy line without the "tr" text. Is that possible?

Re: Trill.ms (2.1)

Reply #82
At present, the object will always print the 'tr' symbol, although the wavy line can be suppressed (for one-note trills).  If you do not require playback, you can insert a text object with "~" (wavy) or "-" (jagged) characters, using the StaffSymbols font.

Re: Trill.ms (2.1)

Reply #83
Hi Mike

I was looking at my computer file for user plug ins and objects, and I noticed that I had two versions of a few things, with different names.

For example, Trill.ms.nwcuser and Trill.ms.nwcuser.lua

Can I safely delete the .lua versions (which have an older date on them)?

Thanks


Re: Trill.ms (2.1)

Reply #84
Hi Mike

I was looking at my computer file for user plug ins and objects, and I noticed that I had two versions of a few things, with different names.

For example, Trill.ms.nwcuser and Trill.ms.nwcuser.lua

Can I safely delete the .lua versions (which have an older date on them)?

Thanks
It depends on whether you have Windows configured to hide the extensions of files.  When you are looking at the files in Windows explorer, what does the "Type" column show for each of the two files, i.e. Trill.ms.nwcuser and Trill.ms.nwcuser.lua ? You could also highlight each of the files, right click and choose Properties, and then go to the Details tab, and see what it displays for Name.



Re: Trill.ms (2.2)

Reply #87
The Trill.ms object has been updated, with the following changes:
  • Added a built-in user tool to toggle trill on/off for a selected note.
  • Inserting a new trill will now copy parameter values from a previous instance in the current staff.

Re: Trill.ms (2.2)

Reply #88
I stumped on a problem with the trill object.
If the trill is the upper note of a chord (no matter if the duration of the notes is the same or different) the chord don't plays at all and the trillling note is... the lowest one!

If I use the old tool that makes a trill using the grace notes I have the upper note trilling ok but also the unpleasant result of the chord playing at the end of the trill. What I need is not possible in this way. The only way is an hidden staff.

Maybe the simplest fix could be to make the trilling note the upper one instead of the lowest.
The very best would be to have the upper note trilling and the rest of the chord playing as usual.

I'll take a look if I can fix the object, but maybe Mike can do a miracle...

Re: Trill.ms (2.2)

Reply #89
Gosh! I didn't expect it was so trivial to apply the fix!
About the best solution... That's a different hat.

N.B. The attached file is zipped because I'm not allowed to upload an object of somepone else, and I don't want to steal the honor from Mike.
I hope Mike will not be offended by my "instrusion" and will update the official object.

Re: Trill.ms (2.2)

Reply #90
I just saw both of these messages, and since it's been 3 years since I last updated this object, I needed to refresh my memory a bit, reconfigure my code environment, and then figure out what you had changed in the code. Having now done that, I see that your change was very straightforward and should work as expected.

When I added playback to Trill.ms, I obviously did not try to implement chord playback, which might have been possible, but I can't think of any instruments that can play trill chords. If someone needs to do that, it could be notated using Tremolo.ms (which can also do a single note trill).  I chose the lowest note of the chord for playback because it seemed like a safe choice. Playing the highest note is also a safe choice. However, different scores might want different results, so the "proper" way to implement this would be with an additional parameter, to specify lowest vs. highest. For backward compatibility, the lowest note would be the default value for the parameter. Does that make sense?

As a side note, the reason the chord doesn't play during trill playback is because the chord is normally muted. You can unmute the chord and it will play, with the trill playing over the entire chord, but that is probably not what you want. Separate staves will give you the most control for that situation.

Re: Trill.ms (2.2)

Reply #91
No, Mike, I don't want the whole chord to trill!  :o  Only the top note.
At least that's what's needed by the scores for piano I have.   :)
And I doubt that, in case of a trill on a chord, someone wants the lower note trilling. In that case a more specific (and clear) notation is in order!  ::)

I feel stupid: I forgot that the chord is muted. Simply unmuting it solves the remaining problem!  :-[
Possibly there is a double key-on midi event for the top note (I didn't check), but this seems creating no problem (checked  ;) ).

What was the need to mute the note in the score? Maybe the clash between the starting note of the trill and the note of the score?
I think I can live with it (i.e. not using "auxiliary first" with chords)...  :P

Well, now I'm completely satisfied of the last (mine...) version.
Thanks a lot.

Re: Trill.ms (2.2)

Reply #92
What was the need to mute the note in the score? Maybe the clash between the starting note of the trill and the note of the score?

Every other object I've written whose playback replaces the notation (arpeggio, tremolos, glissando, acciaccatura) requires the notes be muted in order to sound right. In some cases, not muting the notes will still sound okay, but as you have noted, there might be some double or overlapping of the playback. Of course, special care needs to be taken when there are ties, but this is noted in the instructions for the affected objects.

Since you are happy with your fix, I'll hold off on making the change official, in case someone else has a suggestion or other feedback to offer. Maybe I'll make the change for the next release of NWC :)


Re: Trill.ms (2.2)

Reply #94
For details on the object's parameters, refer to the context-sensitive help on object's properties page.
Hi Mike,

I am trying to understand what was being discussed here under topic of Ojbect, it is better if there is the image/picture, that we can see as the result of using the object, for example can anyone show the pictture of song sheet that used Page Maestro text?
Thank you,

Frank

Re: Trill.ms (2.2)

Reply #95
can anyone show the pictture of song sheet that used Page Maestro text?
Well, not exactly a picture, but maybe even better: look at all my recent submissions to the Scriptorium.

Re: Trill.ms (2.2)

Reply #96
A tiny change suggestion: In the attached score of Durante's Magnificat in b flat, the trill should play in eighths.
The piece is notated alla breve, the tempo is about half=105...110. In more modern times (starting around Haydn), this would of course be notated in common time and quarters, but it isn't so here. So, I think the minimum trill rate of 16 should be changed to 8 (I can do that locally, of course; but why not change it for all  :-[ )

H.M.

Trill.ms (2.3)

Reply #97
The Trill.ms object has been updated with the following changes:
  • If the trill is applied to a chord with playback selected, it will play the top note of the chord, instead of the bottom one (courtesy of @Flurmy).
  • The minimum value for the Rate parameter has been changed from 16 to 8, as requested by @hmmueller

 

Re: Trill.ms (2.3)

Reply #98
... small hiccup: The help text for the Rate parameter still says that the minimum is 16.
Also, there's a playNoteRate array (whose purpose I don't see on my quick glance) - would it now like to heave an Eighth entry?

H.M.

Re: Trill.ms (2.3)

Reply #99
... small hiccup: The help text for the Rate parameter still says that the minimum is 16.
Also, there's a playNoteRate array (whose purpose I don't see on my quick glance) - would it now like to heave an Eighth entry?
You are correct about my failure to update the help text. I realized that right after I posted the update. It seems a shame to waste another version number just to fix the help text.  :P

The playNoteRate array is only used by the audit() method. As you might recall, the Trill object used to have a PlayNote parameter which had a text value of Sixteenth, Thirtysecond or Sixtyfourth.  I later changed the object to have a numeric Rate value, which is also used by Arpeggio.ms. The audit() method uses the array to convert the old text value to the correct numeric Rate value. Since the old object never had a text Eighth value, there's no need to add it to the array for conversion purposes. Does that make sense?