Skip to main content

Topic: Trill.ms (2.1) (Read 8699 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.
  • Last Edit: 2015-11-26 08:00 am by hmmueller

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 'n youfonymums - gonna lern tubies next

Re: Trill.ms (1.1)
Reply #63
I'm not sure exactly why this is happening.
It happens because there can be no MIDI events during the pause.
Registered user since 1996

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 #67
The longer trill marking is a more modern convention. Have a look, for example, at the 1° Violin part, page 4, second system in https://archive.org/stream/lestroqueursopra00hrol#page/4/mode/2up

Re: Trill.ms (1.1)
Reply #68
I should probably create an object for that, if you think that would be useful.
Nothing to object to your object, Mike,  :D but, just in case, you can look here

Re: Trill.ms (1.1)
Reply #69
I think the notation you are referring to is called a mordent.
I disagree. Looks like a trill.
Registered user since 1996

Re: Trill.ms (1.1)
Reply #70
I disagree. Looks like a trill.
I stand corrected. I had not seen this style of trill before. Baroque?

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!