Skip to main content

Topic: Tremolo.ms (2.1) (Read 3788 times) previous topic - next topic

Tremolo.ms (2.1)
This object implements a two-note tremolo, as described in various texts. It draws the tremolo markings, and will optionally play the notes in tremolo style.

To create a tremolo, you must first create two RestChords of the desired duration. For whole, half and quarter note tremolos, the rest duration should be half of the note's duration. For eighth tremolos, the note duration should be quarter and the rest duration sixteenth. Also, the rest portion of each RestChord should be marked as hidden. Once the notes are present, insert the object between the notes, and the marking will be drawn between the stems. If additional space is needed to accommodate a larger number of beams, increase the stem length of the notes.

The following parameters control the appearance and type of tremolo:

Number of Beams: Specifies the number of beams to be drawn between the notes, between 1 and 4. Default value is 3. The number of beams for a tremolo can also be modified by highlighting the object and pressing the + or - keys.
Half Note Beam Style: Specifies one of three styles for half-note tremolos, and is an integer with values of 1 to 3. It is ignored for other tremolo durations. Default value is 1.
Play Notes: Enables playback of the tremolo. Default value is checked. Note that the RestChords should be muted for proper playback.
Triplet Playback: Specifies that the playback notes should be in triplet rhythm. This will generally be used when the tremolo notes are dotted. Default value is unchecked.
Variance (%): Specifies a dynamic variance between the first and second chord. The specified value is a multiplier for the volume of the second note. This allows more realistic playback. The range of values is 50% to 200%, and the default setting is 100% (no variance).
Beam Angle Offset: Specifies a vertical (staff position) offset to the right side of the beams, for whole note tremolos only. The range of values is -10 to 10, and the default setting is 0. This allows the beam angle to be adjusted; by default, the angle will be that of the lowest noteheads.

For whole note tremolos, the vertical position of the beams may be altered by moving the object marker up and down on the staff. The beam angle can also be adjusted using the Beam Angle Offset parameter.

If the notes on either side of the object are not both RestChords, or if their stem directions are not the same, then the tremolo will not be drawn. If the two notes are of differing durations, the tremolo will be drawn in the style of the right-hand note.

The following sample clip will get you started. The screen shot demonstrates various types of tremolos, with the bottom staff indicating the actual notes that are played.

Code: (nwc) [Select · Download]
!NoteWorthyComposer(2.749741)
|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
|TimeSig|Signature:4/4
|RestChord|Dur:8th|Opts:Stem=Down,ArticulationsOnStem,Muted,HideRest|Dur2:4th|Pos2:-2
|User|Tremolo.ms|Pos:-1|Beams:3|Style:1|Play:Y
|RestChord|Dur:8th|Opts:Stem=Down,ArticulationsOnStem,Muted,HideRest|Dur2:4th|Pos2:1
|RestChord|Dur:16th|Opts:Stem=Down,ArticulationsOnStem,Muted,HideRest|Dur2:4th|Pos2:1
|User|Tremolo.ms|Pos:-1|Beams:3|Style:1|Play:Y
|RestChord|Dur:16th|Opts:Stem=Down,ArticulationsOnStem,Muted,HideRest|Dur2:4th|Pos2:0
|RestChord|Dur:16th|Opts:Stem=Down,ArticulationsOnStem,Muted,HideRest|Dur2:4th|Pos2:-1
|User|Tremolo.ms|Pos:-1|Beams:3|Style:1|Play:Y
|RestChord|Dur:16th|Opts:Stem=Down,ArticulationsOnStem,Muted,HideRest|Dur2:4th|Pos2:-2
|Bar
|RestChord|Dur:4th|Opts:Stem=Up,Muted,HideRest|Dur2:Half|Pos2:5
|User|Tremolo.ms|Pos:-1|Beams:2|Style:2|Play:Y
|RestChord|Dur:4th|Opts:Stem=Up,Muted,HideRest|Dur2:Half|Pos2:3
|Bar
|RestChord|Dur:Half|Opts:Stem=Down,Muted,HideRest|Dur2:Whole|Pos2:-5
|User|Tremolo.ms|Pos:4.5|Beams:2|Style:1|Play:Y
|RestChord|Dur:Half|Opts:Stem=Down,Muted,HideRest|Dur2:Whole|Pos2:-3
|AddStaff|Name:"Staff-1"|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
|TimeSig|Signature:4/4
|Note|Dur:32nd|Pos:-2|Opts:Stem=Up,Beam=First
|Note|Dur:32nd|Pos:1|Opts:Stem=Up,Beam
|Note|Dur:32nd|Pos:-2|Opts:Stem=Up,Beam
|Note|Dur:32nd|Pos:1|Opts:Stem=Up,Beam
|Note|Dur:32nd|Pos:-2|Opts:Stem=Up,Beam
|Note|Dur:32nd|Pos:1|Opts:Stem=Up,Beam
|Note|Dur:32nd|Pos:-2|Opts:Stem=Up,Beam
|Note|Dur:32nd|Pos:1|Opts:Stem=Up,Beam=End
|Note|Dur:32nd|Pos:1|Opts:Stem=Up,Beam=First
|Note|Dur:32nd|Pos:0|Opts:Stem=Up,Beam
|Note|Dur:32nd|Pos:1|Opts:Stem=Up,Beam
|Note|Dur:32nd|Pos:0|Opts:Stem=Up,Beam=End
|Note|Dur:32nd|Pos:-1|Opts:Stem=Up,Beam=First
|Note|Dur:32nd|Pos:-2|Opts:Stem=Up,Beam
|Note|Dur:32nd|Pos:-1|Opts:Stem=Up,Beam
|Note|Dur:32nd|Pos:-2|Opts:Stem=Up,Beam=End
|Bar
|Note|Dur:16th|Pos:5|Opts:Stem=Down,Beam=First
|Note|Dur:16th|Pos:3|Opts:Stem=Down,Beam
|Note|Dur:16th|Pos:5|Opts:Stem=Down,Beam
|Note|Dur:16th|Pos:3|Opts:Stem=Down,Beam
|Note|Dur:16th|Pos:5|Opts:Stem=Down,Beam
|Note|Dur:16th|Pos:3|Opts:Stem=Down,Beam
|Note|Dur:16th|Pos:5|Opts:Stem=Down,Beam
|Note|Dur:16th|Pos:3|Opts:Stem=Down,Beam=End
|Bar
|Note|Dur:16th|Pos:-5|Opts:Stem=Up,Beam=First
|Note|Dur:16th|Pos:-3|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-5|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-3|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-5|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-3|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-5|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-3|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-5|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-3|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-5|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-3|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-5|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-3|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-5|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-3|Opts:Stem=Up,Beam=End
!NoteWorthyComposer-End
  • Last Edit: 2018-06-04 07:17 pm by Mike Shawaluk

Re: Tremolo.ms (version 0.9)
Reply #1
The Tremolo.ms user object has been updated, with the following changes:

  • Help text is added
  • Minor rendering adjustments

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

As always, feedback and suggestions are greatly appreciated.

Mike
  • Last Edit: 2015-08-02 09:02 pm by Mike Shawaluk

Re: Tremolo.ms (version 0.95)
Reply #2
Mike, have you given any thought to making a "trill" object? It seems as though it could just be a specialized tremolo object with a different symbol and with the tremolo limited to a half- or whole-step.

Re: Tremolo.ms (version 0.95)
Reply #3
Mike, have you given any thought to making a "trill" object? It seems as though it could just be a specialized tremolo object with a different symbol and with the tremolo limited to a half- or whole-step.
Funny you should mention this. A little while ago I made a prototype object that does just the drawing part.  If you have some experience in the different types of trills, I would appreciate your expertise, if you are interested. I've noticed that there are a number of ornaments available (accidental symbols and the like) and would want to implement the options that are of most use.

Thanks,
Mike

EDIT : Please make any further replies to this thread. Thanks!
  • Last Edit: 2015-09-09 12:32 pm by Mike Shawaluk

Re: Tremolo.ms (version 1.0)
Reply #4
How can i remove the "flags" from the stems since I can't beam the rest chords?

Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.75,Single)
|RestChord|Dur:16th|Opts:Stem=Down,ArticulationsOnStem,HideRest|Dur2:8th|Pos2:1
|User|Tremolo.ms|Pos:1
|RestChord|Dur:16th|Opts:Stem=Down,ArticulationsOnStem,HideRest|Dur2:8th|Pos2:-1
|RestChord|Dur:16th,DblDotted|Opts:Stem=Down,ArticulationsOnStem,HideRest|Dur2:8th,Dotted|Pos2:#-3
|User|Tremolo.ms|Pos:1
|RestChord|Dur:16th,DblDotted|Opts:Stem=Down,ArticulationsOnStem,HideRest|Dur2:8th,Dotted|Pos2:#-5
!NoteWorthyComposerClip-End

Re: Tremolo.ms (version 1.0)
Reply #5
How can i remove the "flags" from the stems since I can't beam the rest chords?
Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.75,Single)
|RestChord|Dur:16th|Opts:Stem=Down,ArticulationsOnStem,HideRest|Dur2:4th|Pos2:1
|User|Tremolo.ms|Pos:1
|RestChord|Dur:16th|Opts:Stem=Down,ArticulationsOnStem,HideRest|Dur2:4th|Pos2:-1
|RestChord|Dur:16th,DblDotted|Opts:Stem=Down,ArticulationsOnStem,HideRest|Dur2:4th,Dotted|Pos2:#-3
|User|Tremolo.ms|Pos:1
|RestChord|Dur:16th,DblDotted|Opts:Stem=Down,ArticulationsOnStem,HideRest|Dur2:4th,Dotted|Pos2:#-5
!NoteWorthyComposerClip-End
Registered user since 1996

Re: Tremolo.ms (version 1.0)
Reply #6
The timing is established by the rests!
I forgot that.
Thank you.

Re: Tremolo.ms (version 1.0)
Reply #7
The timing is established by the rests!
I forgot that.
Thank you.
Rick answered before I saw your post; as you (re)discovered, eighth note tremolos use a quarter note as the base note, so there are no pesky flags to get in the way when the object draws the beams.

If you use the Make Tremolo.ms.lua user tool, it does some of this for you.

Thanks,
Mike
  • Last Edit: 2016-02-08 12:43 pm by Mike Shawaluk

Re: Tremolo.ms (version 1.0)
Reply #8
you (re)discovered, eighth note tremolos use a quarter note as the base note, so there are no pesky flags to get in the way when the object draws the beams.
This is one of the quirks I don't like of objects,
It goes along with the need to mute the "official" notes in an arpeggio but not the subsequent tied chords...
I regularly forget something.

So, kudos for Mike for the good work and for having demonstrated that many thing are indeed possible, but for such common tasks I would have hoped for something much more immediate and user friendly.
After all, the user friendlyness is one of the strength of NWC.

Re: Tremolo.ms (version 1.0)
Reply #9
This is one of the quirks I don't like of objects,
It goes along with the need to mute the "official" notes in an arpeggio but not the subsequent tied chords...
I regularly forget something.
If the current objects have a shortcoming, it is that they can't change the properties of notes or other elements in a score; they can only add drawing and playback. Hence, things need to be muted or made invisible in order for the object to do its work.

Perhaps the next generation of objects will have a way to "tell" a NWC note/chord to be mute, or hide its beams/stems/noteheads so the user doesn't need to make those changes. I am looking forward to seeing what the next version brings.

Mike

Re: Tremolo.ms (version 1.0)
Reply #10
I discovered that the dynamic variances are ignored by tremolo object.
Don't worry, I know a workaround.
That's just for your information.

Re: Tremolo.ms (version 1.0)
Reply #11
I discovered that the dynamic variances are ignored by tremolo object.
Don't worry, I know a workaround.
That's just for your information.
Thanks for mentioning this. There is actually an enhancement to Tremolo and TremoloSingle that I have been considering that might be related to this. If you would post an example of what you observed, along with your workaround, it will confirm whether we are thinking about the same issue.

Thanks,
Mike

Re: Tremolo.ms (version 1.0)
Reply #12
That's it, Mike:
Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.75,Single)
|Dynamic|Style:pp|Pos:-10|Wide:Y
|Dynamic|Style:ff|Pos:-10|Wide:Y|Visibility:Never
|MPC|Controller:exp|Style:Linear Sweep|TimeRes:Quarter|SweepRes:10|Pt1:0,26|Pt2:4,127|Pos:8|Wide:Y
|RestChord|Dur:Half|Opts:Stem=Up,Crescendo,Muted,HideRest|Dur2:Whole|Pos2:8,10
|User|Tremolo.ms|Pos:0|Beams:2
|RestChord|Dur:Half|Opts:Stem=Up,Crescendo,Muted,HideRest|Dur2:Whole|Pos2:6
|Bar
|Dynamic|Style:ff|Pos:-9.5
|Chord|Dur:Whole|Pos:6,8,10
!NoteWorthyComposerClip-End

Re: Tremolo.ms (version 1.0)
Reply #13
 Changing the channel volume via the dynamic works too.


Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.75,Single)
|Dynamic|Style:pp|Opts:Volume=30|Pos:-10|Wide:Y
|RestChord|Dur:Half|Opts:Stem=Up,Crescendo,Muted,HideRest|Dur2:Whole|Pos2:8,10
|User|Tremolo.ms|Pos:0|Beams:2
|RestChord|Dur:Half|Opts:Stem=Up,Crescendo,Muted,HideRest|Dur2:Whole|Pos2:6
|Bar
|Dynamic|Style:ff|Opts:Volume=108|Pos:-9.5
|Chord|Dur:Whole|Pos:6,8,10
!NoteWorthyComposerClip-End
Rich.

Re: Tremolo.ms (version 1.0)
Reply #14
Yes, right. But usually I prefer to leave the volume untouched (using expression instead) so at the end I can do a fine mixing with the staff volume parameter.

No slur and wrong duration
Reply #15
I don't understand why the tremolo object can't be slurred.
Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.751,Single)
|RestChord|Dur:4th|Opts:Stem=Up,Muted,HideRest|Dur2:Half,Dotted,Slur|Pos2:b5,8
|User|Tremolo.ms|Pos:0|Beams:1|TripletPlayback:Y|Style:2
|RestChord|Dur:4th,Slur|Opts:Stem=Up,Muted,HideRest|Dur2:Half,Dotted,Slur|Pos2:4
|Note|Dur:8th,Slur|Pos:3|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:1|Opts:Stem=Down,Beam=End
|Bar
!NoteWorthyComposerClip-End
Furthermore, the tremolo duration is 2/4 while it should be 3/4 (the dot is ignored).
N.B. I made the tremolo using the embedded user tool.

Re: No slur and wrong duration
Reply #16
I don't understand why the tremolo object can't be slurred.
...
Furthermore, the tremolo duration is 2/4 while it should be 3/4 (the dot is ignored).
N.B. I made the tremolo using the embedded user tool.
The current embedded tool does not make the rest portion dotted when the note is dotted; perhaps I need to change it. In the meanwhile, you can select the notes and press the . key three times to get the correct playback duration. Also be aware that the tool will set the "Triplet Playback" checkbox when the source notes are dotted (this is per feedback from @Richard Woodroffe during development of the object). It also appears that when the embedded tool converts the chords into rest chords, it does not preserve the slur property, so that it has to be reapplied. I will also look into this.

Re: No slur and wrong duration
Reply #17
The beta version of Tremolo.ms (in the Backstage forum) has been updated to version 2.0b. Its embedded user tool will now properly set the dotted duration of the rest portions, and will preserve slurs from the original notes. (Note that the actual object drawing and playback code has not changed)
  • Last Edit: 2017-04-16 04:12 am by Mike Shawaluk

Re: Tremolo.ms (version 1.0)
Reply #18
Mike,
I already added the dots to the rests; I was just informing you of the problem.

Quote
It also appears that when the embedded tool converts the chords into rest chords, it does not preserve the slur property, so that it has to be reapplied.
The fix wasn't so easy: it was simply not possible to slur the tremolo. I don't know why.

Anyway, forget it: the new beta seems ok.
Thank you a lot, Mike.

Re: Tremolo.ms (version 1.0)
Reply #19
it was simply not possible to slur the tremolo. I don't know why.
Code: (nwc) [Select · Download]
|RestChord|Dur:4th|Opts:Stem=Up,Muted,HideRest|Dur2:Half,Dotted,Slur|Pos2:b5,8
Something (perhaps a User Tool) managed to create a Dur: without a slur and a Dur2: with a slur. This confuses the GUI which shows a slur but won't let you remove it. Or fix it.
Registered user since 1996

Re: Tremolo.ms (version 1.0)
Reply #20
Code: (nwc) [Select · Download]
|RestChord|Dur:4th|Opts:Stem=Up,Muted,HideRest|Dur2:Half,Dotted,Slur|Pos2:b5,8
Something (perhaps a User Tool) managed to create a Dur: without a slur and a Dur2: with a slur. This confuses the GUI which shows a slur but won't let you remove it. Or fix it.
That is exactly what happened (and what needed to be fixed in the embedded tool).

Re: Tremolo.ms (version 1.0)
Reply #21
So the problem is not only solved but also fully understood: Good.
Thanks Mike and Rick.

Re: Tremolo.ms (version 2.0b)
Reply #22
The Tremolo.ms user object has been updated, with the following changes:

  • An embedded user tool has been added, which allows tremolo markings to be added for selected notes.

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


Re: Tremolo.ms (2.0c)
Reply #23
The Tremolo.ms user object has been updated, with the following changes:

  • The embedded user tool has been updated, to no longer set TripletPlayback automatically for dotted notes.

Please note that no changes have been made to the actual Tremolo.ms drawing/playback operation.

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

Re: Tremolo.ms (2.0c)
Reply #24
The embedded user tool has been updated, to no longer set TripletPlayback automatically for dotted notes.
Good improvement.
Registered user since 1996

Re: Tremolo.ms (2.0c)
Reply #25
Well, I succeeded in implementing whole note tremolos today. I'm not sure why my position looked different from the sample clip, and if it matters if the lines are a bit higher or lower. What's the thinking on this? Also, I had first hidden the rests, which then meant my notes were also hidden. I didn't know until now that there was an option to hide rests in the rest chord.

I see on Wikipedia that they are showing bass note tremolo lines as parallel to the notes, half way between them. Is this the normal notation? Is the plug-in able to do this instead of angled lines?

https://en.wikipedia.org/wiki/Tremolo#Notation

My use of tremolos to this point has been bass clef octave whole note trem. for piano accompaniments. I think this will work very well. Thank you for developing this tool!

Re: Tremolo.ms (2.0c)
Reply #26
For whole note tremolos, the position of the beams will be different depending on whether the rest chords have the rests on the top or bottom. You can flip the direction by highlighting the rest chord and pressing Shift+Up or Shift+Down. Also, note that both rest chords must be in the same direction in order for the tremolo to be drawn.

It would not be difficult to add an offset parameter that would allow the angle of the beams for whole note tremolos to be adjusted. Currently, they are drawn at the same angle as the noteheads.

Thanks for the suggestions and kind words.

Re: Tremolo.ms (2.1)
Reply #27
The Tremolo.ms user object has been updated, with the following changes:

  • A new parameter has been added which allows the angle of whole note tremolo beams to be adjusted.

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


Re: Tremolo.ms (2.1)
Reply #28
Woah! That was fast!

Re: Tremolo.ms (2.1)
Reply #29
Woah! That was fast!
Apparently a little too fast - I should have tested more thoroughly. Please resync your plugin, there was a small typo I missed that could break some other tremolo durations.