NoteWorthy Composer Forum

Forums => Tips & Tricks => Object Plugins => Topic started by: Lloyd on 2015-09-25 11:10 pm

Title: BeamRestChords.fso (version 0.2)
Post by: Lloyd on 2015-09-25 11:10 pm
This plugin beams the notes on two (or three) RestChords.

To make it work just insert an instance of this plugin before the first of the RestChords you want to beam. Notice that RestChords might be notated with quarter notes, otherwise 'real' beams will overlap the fake ones from this object.

Duration for first and last notes can be set, but it will not affect playback since 'real' duration is set by the rest of the RestChord.
Any stem length must be adjusted manually.

The following clip shows some samples. Please, test and report bugs  :))

Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.75,Single)
|User|BeamRestChords.fso|Pos:-2
|RestChord|Dur:32nd|Opts:Stem=Down,StemLength=8,ArticulationsOnStem|Dur2:4th|Pos2:-6
|RestChord|Dur:32nd|Opts:Stem=Down,StemLength=6,ArticulationsOnStem|Dur2:4th|Pos2:-2
|Bar|Style:Double
|User|BeamRestChords.fso|Pos:-2|DurNote2:Sixteenth
|RestChord|Dur:32nd|Opts:Stem=Up,ArticulationsOnStem,HideRest|Dur2:4th|Pos2:1
|RestChord|Dur:32nd|Opts:Stem=Up,ArticulationsOnStem,HideRest|Dur2:4th|Pos2:-2
|Bar|Style:Double
|User|BeamRestChords.fso|Pos:-2|DurNote1:Sixteenth|DurNote2:Sixteenth|num:3
|RestChord|Dur:32nd|Opts:Stem=Down,StemLength=11,ArticulationsOnStem|Dur2:4th|Pos2:-6
|RestChord|Dur:32nd|Opts:Stem=Down,StemLength=10,ArticulationsOnStem|Dur2:4th|Pos2:-4
|RestChord|Dur:32nd|Opts:Stem=Down,StemLength=10,ArticulationsOnStem|Dur2:4th|Pos2:-2
|Bar|Style:Double
|User|BeamRestChords.fso|Pos:-2|num:3
|RestChord|Dur:32nd|Opts:Stem=Down,ArticulationsOnStem,HideRest|Dur2:4th|Pos2:-6
|User|BeamRestChords.fso|Pos:-2|DurNote2:"Sixteenth (Beam)"
|RestChord|Dur:32nd|Opts:Stem=Down,ArticulationsOnStem,HideRest|Dur2:4th|Pos2:-4
|RestChord|Dur:32nd|Opts:Stem=Down,ArticulationsOnStem,HideRest|Dur2:4th|Pos2:-2
!NoteWorthyComposerClip-End

Title: Re: BeamRestChords.fso (version 0.1)
Post by: Rick G. on 2015-09-26 06:16 am
You might find this useful for testing:
Code: (nwc) [Select · Download]
!NoteWorthyComposer(2.75)
|PgSetup|StaffSize:18|Zoom:6
|AddStaff|Name:"Staff"
|StaffProperties|EndingBar:Open (hidden)|WithNextStaff:Layer
|User|BeamRestChords.fso|Pos:-2|DurNote2:Sixteenth|Color:1
|RestChord|Dur:32nd|Opts:Stem=Up,StemLength=7,HideRest|Dur2:4th|Pos2:1
|Rest|Dur:16th,Dotted|Visibility:Never
|RestChord|Dur:32nd|Opts:Stem=Up,StemLength=6,HideRest|Dur2:4th|Pos2:-2
|Rest|Dur:32nd|Visibility:Never
|User|BeamRestChords.fso|Pos:-2|DurNote2:Sixteenth|Color:1
|RestChord|Dur:32nd|Opts:Stem=Down,StemLength=6,HideRest|Dur2:4th|Pos2:1
|Rest|Dur:16th,Dotted|Visibility:Never
|RestChord|Dur:32nd|Opts:Stem=Down,StemLength=7,HideRest|Dur2:4th|Pos2:-2
|Rest|Dur:32nd|Visibility:Never
|Bar|Style:Double
|Note|Dur:8th|Pos:1|Opts:Stem=Down,StemLength=7,Beam=First
|Note|Dur:16th|Pos:-2|Opts:Stem=Down,StemLength=6,Beam=End
|Note|Dur:8th|Pos:1|Opts:Stem=Up,StemLength=6,Beam=First
|Note|Dur:16th|Pos:-2|Opts:Stem=Up,StemLength=7,Beam=End
|Bar|Style:Double
|AddStaff|Name:"Staff-2"
|StaffProperties|EndingBar:Open (hidden)
|Note|Dur:8th|Pos:1|Opts:Stem=Down,StemLength=7,Beam=First
|Note|Dur:16th|Pos:-2|Opts:Stem=Down,StemLength=6,Beam=End
|Note|Dur:8th|Pos:1|Opts:Stem=Up,StemLength=6,Beam=First
|Note|Dur:16th|Pos:-2|Opts:Stem=Up,StemLength=7,Beam=End
|Bar|Style:Double
|User|BeamRestChords.fso|Pos:-2|DurNote2:Sixteenth|Color:1
|RestChord|Dur:32nd|Opts:Stem=Up,StemLength=7,HideRest|Dur2:4th|Pos2:1
|Rest|Dur:16th,Dotted|Visibility:Never
|RestChord|Dur:32nd|Opts:Stem=Up,StemLength=6,HideRest|Dur2:4th|Pos2:-2
|Rest|Dur:32nd|Visibility:Never
|User|BeamRestChords.fso|Pos:-2|DurNote2:Sixteenth|Color:1
|RestChord|Dur:32nd|Opts:Stem=Down,StemLength=6,HideRest|Dur2:4th|Pos2:1
|Rest|Dur:16th,Dotted|Visibility:Never
|RestChord|Dur:32nd|Opts:Stem=Down,StemLength=7,HideRest|Dur2:4th|Pos2:-2
|Rest|Dur:32nd|Visibility:Never
|Bar|Style:Double
!NoteWorthyComposer-End
If I add:
Code: (Lua) [Select · Download]
	nwcdraw.setPen('solid', 0)
early in your code, I get a bit more accuracy.

I have done some work on beams. Instead of using trigonometery, I just used slope/intercept, i.e,:
Quote
y = mx +b
I find it easier and it may avoid some rounding errors :)
Title: Re: BeamRestChords.fso (version 0.2)
Post by: Lloyd on 2015-09-26 07:24 am
Thanks Rick G.  :D
I added pen information as you said.

Quote
Instead of using trigonometery, I just used slope/intercept
Yeah, maybe trigonometry wasn't the best nor the easier way to do it, you're right, but anyway, now it's done... and I loved the challenge! :D