251
Hi Frank,
the only way to control the vertical placement of a < or > (cresc./decresc.) is to position a dynamic somewhere in FRONT of it and move the dynamic to the required vertical position. This dynamic may be hidden if you wish. The < or > will follow it up and down.
Dynamics that follow a < or > have no impact on the vertical position of any < or > that precede them.
Please see this example:
!NoteWorthyComposerClip(2.751,Single)
|Clef|Type:Treble
|Key|Signature:C|Tonic:C
|TimeSig|Signature:4/4
|Dynamic|Style:f|Pos:-8.5|Justify:Right
|Note|Dur:4th|Pos:-6|Opts:Crescendo
|Note|Dur:4th|Pos:-5|Opts:Crescendo
|Note|Dur:4th|Pos:-4|Opts:Crescendo
|Note|Dur:4th|Pos:-3|Opts:Crescendo
|Bar
|Dynamic|Style:ff|Pos:-11.5|Justify:Right
|Note|Dur:4th|Pos:-2|Opts:Diminuendo
|Note|Dur:4th|Pos:-3|Opts:Diminuendo
|Note|Dur:4th|Pos:-4|Opts:Diminuendo
|Note|Dur:4th|Pos:-5|Opts:Diminuendo
|Bar
|Dynamic|Style:p|Pos:9|Justify:Right|Visibility:Never
|Note|Dur:4th|Pos:-6|Opts:Crescendo
|Note|Dur:4th|Pos:-4|Opts:Crescendo
|Note|Dur:4th|Pos:-2|Opts:Crescendo
|Note|Dur:4th|Pos:b0|Opts:Crescendo
|Bar
|Dynamic|Style:f|Pos:11.5|Justify:Right|Visibility:Never
|Note|Dur:4th|Pos:1|Opts:Diminuendo
|Note|Dur:4th|Pos:b0|Opts:Diminuendo
|Note|Dur:4th|Pos:-2|Opts:Diminuendo
|Note|Dur:4th|Pos:-4|Opts:Diminuendo
|Bar
|Dynamic|Style:pp|Pos:9
|Note|Dur:Whole|Pos:-6
!NoteWorthyComposerClip-End
264
Hi Frank,
generally the Soprano would be the top note and the Alto the next one down, but I'm sure you know that.
I would actually like a bit more context from the score. E.G. is it an SATB score, or Piano/Vocal or what?
The reason I ask is that if the staff immediately below is singing the same words at the same time (I.E. a Tenor/Bass part), and is in Bass clef, then the A that is in the middle of the chord in question is mirrored in the bass and could probably, if necessary, be left out.
Without context it's difficult to be sure, but they may be expecting more voices than just Soprano/Alto. Maybe Sop/Alto/Alto, or Sop/Sop/Alto... Any number of possibilities.
Also, are you aware that you can create chords on a single staff without layering?
If not, please see the "Chord Member Command" in the Help screen.
Layering is often the best choice for complex chord structures, but not always necessary. It IS very important when wanting to print separate parts for each voice while still being able to see them combined when appropriate.
See below for an example of chords on a single staff. Click Select, <Ctrl+C> to copy to the clipboard and then paste it into a new staff, or as a new file, in NWC:
!NoteWorthyComposerClip(2.751,Single)
|Clef|Type:Treble
|Key|Signature:C|Tonic:C
|TimeSig|Signature:4/4
|Rest|Dur:Half
|Rest|Dur:4th
|Chord|Dur:8th|Pos:-3,0|Opts:Stem=Up,Beam=First
|Chord|Dur:8th|Pos:-3^,-1^,1^|Opts:Stem=Up,Beam=End
|Bar
|Chord|Dur:16th|Pos:-3,-1,1|Opts:Stem=Up,Beam=First
|Chord|Dur:16th|Pos:-6,-3|Opts:Stem=Up,Beam
|Chord|Dur:8th|Pos:-6^,-3^|Opts:Stem=Up,Beam=End
|Chord|Dur:4th|Pos:-6,-3
|Rest|Dur:4th
|Chord|Dur:8th|Pos:-1,1|Opts:Stem=Up,Beam=First
|Chord|Dur:8th|Pos:-3,0|Opts:Stem=Up,Beam=End
!NoteWorthyComposerClip-End
Also see attached Vocal Ranges file - N.B this is notional only - different authorities have different ideas.
283
Hi SEBC,
I just tried your sample and it worked correctly for me (V2.8 beta1 - not sure if it makes a difference though the release notes do NOT mention any changes to playback logic). After the first time through I replaced all those rests with crotchets so I could hear where things were going.
Double barlines terminate a special ending, but I don't recall them impacting the flow of a DS or DC and To Coda.
I do have one question though. Is there any reason your To Coda is at the start of the bar, before the rest, and not at the end of the bar which I would normally expect?
!NoteWorthyComposerClip(2.751,Single)
|User|CueHeads.ms|Pos:-3|Class:StaffSig
|Clef|Type:Treble
|Key|Signature:F#,C#|Tonic:D
|TimeSig|Signature:4/4
|Text|Text:"INTRO"|Font:StaffItalic|Pos:6
|Note|Dur:4th|Pos:1
|Note|Dur:4th|Pos:1
|Note|Dur:4th|Pos:1
|Note|Dur:4th|Pos:1
|Bar|Style:Double
|Flow|Style:Segno|Pos:7|Wide:Y
|Text|Text:"SECTION 1"|Font:StaffItalic|Pos:6
|Note|Dur:4th|Pos:-1
|Note|Dur:4th|Pos:-1
|Note|Dur:4th|Pos:-1
|Note|Dur:4th|Pos:-1
|Bar
|Flow|Style:ToCoda|Pos:8|Wide:Y
|Note|Dur:4th|Pos:0
|Note|Dur:4th|Pos:0
|Note|Dur:4th|Pos:0
|Note|Dur:4th|Pos:0
|Bar|Style:Double
|Text|Text:"SECTION 2"|Font:StaffItalic|Pos:6
|Note|Dur:4th|Pos:-2
|Note|Dur:4th|Pos:-2
|Note|Dur:4th|Pos:-2
|Note|Dur:4th|Pos:-2
|Flow|Style:DSalCoda|Pos:8|Wide:Y
|Bar
|Flow|Style:Coda|Pos:7|Wide:Y
|Note|Dur:4th|Pos:1
|Note|Dur:4th|Pos:1
|Note|Dur:4th|Pos:1
|Note|Dur:4th|Pos:1
!NoteWorthyComposerClip-End
288
Yup. There is an available note property called "Beam group start". Select the 5th 16th note, press <Alt+Enter> to access the property dialogue, and tick the "Beam group start" check box.
!NoteWorthyComposerClip(2.751,Single)
|Note|Dur:16th|Pos:-1|Opts:Stem=Up,Beam=First
|Note|Dur:16th|Pos:-1|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-1|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-1|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-1|Opts:Stem=Up,Beam,BeamGrp
|Note|Dur:16th|Pos:-1|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-1|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-1|Opts:Stem=Up,Beam=End
!NoteWorthyComposerClip-End
293
Hey Warren, long time no chat
I just did a little testing and I don't think so. It appears that copying to the editor results in it re-ordering it the way it wants.
However, doing this programmatically will probably bypass the editor routine and may end up with ambiguous results. I can't test that though I suspect that anytime NWC reads an nwctxt, even if it's a file, it will probably fix it. I vaguely remember this coming up in a discussion lo, these many moons ago, when nwctxt was first created.
<edit>
I found this - not specific to your question but speaks to the integrity checking:
https://forum.noteworthycomposer.com/?topic=6220.msg41844#msg41844
Good grief, that was written 15 years ago, how did I remember its existence?
</edit>
Point to note though; when creating a split duration chord the order of note/chord member entry can make a difference:
!NoteWorthyComposerClip(2.751,Single)
|Chord|Dur:8th|Pos:3|Opts:Stem=Up|Dur2:4th|Pos2:-6,-2
|Note|Dur:8th|Pos:3|Opts:Stem=Up
|Bar
|Chord|Dur:8th|Pos:3|Opts:Stem=Up|Dur2:4th|Pos2:-6,-2
|Note|Dur:8th|Pos:3
!NoteWorthyComposerClip-End
The first chord was entered from bottom to top, the following quaver was entered last and was automatically stem up.
The second chord was entered from top to bottom and again the following quaver was entered last. This time it was automatically stem down.
Of course, this is an editor quirk.
I did copy the nwctxt to notepad and tweaked some orders, but after copying back to a new staff NWC re-ordered the clip to what you see above.
This clip:
!NoteWorthyComposerClip(2.751,Single)
|Chord|Dur:8th|Pos:-3|Opts:Stem=Down,Beam=First|Dur2:8th|Pos2:1
|Note|Dur:8th|Pos:1|Opts:Stem=Down,Beam=End
|Bar
|Chord|Dur:8th|Pos:-3|Opts:Stem=Down,Beam=First|Dur2:8th|Pos2:1
|Note|Dur:8th|Pos:1|Opts:Stem=Down,Beam=End
|Bar
|Chord|Dur:8th|Pos:1|Opts:Stem=Up,Beam=First|Dur2:8th|Pos2:-3
|Note|Dur:8th|Pos:1|Opts:Stem=Up,Beam=End
|Bar
|Chord|Dur:8th|Pos:1|Opts:Stem=Up,Beam=First|Dur2:8th|Pos2:-3
|Note|Dur:8th|Pos:1|Opts:Stem=Up,Beam=End
!NoteWorthyComposerClip-End
First chord entered bottom up. Set stem down, enter, stem up, ctlr+enter, remove stem up, enter, select, <ctlr+b>
Second chord entered bottom up. Set stem down, enter, stem up, ctlr+enter, enter, select, <ctlr+b>
Third chord entered top down. Set stem up, enter, stem down, ctlr+enter, remove stem up, enter, select, <ctlr+b>
Fourth chord entered top down. Set stem up, enter, stem down, ctlr+enter, enter, select, <ctlr+b>
Note the beaming.
I don't know if this is a help or a hindrance...
299
I think I've found the problem in the object code that stopped the internal user tool from working.
Updated versions attached below.
The following code snippet is from my test copy of ChordPlay.lp.nwcuser.lua:
-- if o:Is('Text') and string.match(o:Get('Text','Text') or '','^%s*[A-G][b#]?[^/%s]*%s*/*%s*[^%s]*%s*$') then
if o:Is('Text') and string.match(o:Get('Text') or '','^%s*[A-G][b#]?[^/%s]*%s*/*%s*[^%s]*%s*$') then
local o2 = nwcItem.new('|User|'..userObjTypeName)
o2.Opts.Name = o.Opts.Text
-- o2.Opts.Pos = o:Provide('Pos',0) - 1
o2.Opts.Pos = o:Provide('Pos',0) - 5
You'll note I've left the original lines in place as comments.
<edit> 2022/02/25
I've just learned that the difference noted above:
Get('Text','Text') vs Get('Text') is specific the the NWC 2.8 beta I'm using.
If you have downloaded my version below and have NWC 2.75 and if the embedded tool (which appears in the .Plugins group) doesn't work then edit the file to remove the comment "--" on the line containing Get('Text','Text') and put it into the line that contains Get('Text') instead. I believe this should resolve it. Thanks to Mike Shawaluk for confirming this difference in the NWC 2.8 beta lua API.
This code snippet is from "Convert Text to ChordPlay.lp.lua:
if item:Is('Text') then
local textProp = item:Get('Text') or '--'
if textProp:match('^%"*%s*[A-G][b#]?[^/%s]*%s*/*%s*[^%s]*%s*%"*$') then
local newItem = nwcItem.new('|User|ChordPlay.lp')
-- local newPos = (tonumber(item:Get('Pos')) or 0) - 1
local newPos = (tonumber(item:Get('Pos')) or 0) - 5
If you compare the original:
-- if o:Is('Text') and string.match(o:Get('Text','Text') or '','^%s*[A-G][b#]?[^/%s]*%s*/*%s*[^%s]*%s*$') then
with the apparently equivalent section from the .automatic (working) tool:
local textProp = item:Get('Text') or '--'
if textProp:match('^%"*%s*[A-G][b#]?[^/%s]*%s*/*%s*[^%s]*%s*%"*$') then
you will notice the Get('Text' sections are different.
I have absolutely zero idea of how these actually work (not a programmer remember) but it seemed to me the "extra" ,'Text' in the original was the primary point of difference so as you can see from my sample above I removed that bit from my test copy and it appears to now work correctly.
To explain some of my thinking, when I saw the Get('Text','Text') construct it reminded me of the Global_Mod syntax for identifying a text object (the first 'Text') with a comma delineator and specified text (the second 'Text') and that seemed spurious. Especially as any specific text needed would come from the
'^%s*[A-G][b#]?[^/%s]*%s*/*%s*[^%s]*%s*$') section which I think is a regular expression (of which I have no understanding due to a severe lack of familiarity. I.E. I never learned them )
I would appreciate some guidance from someone who knows what all this crap actually means and why my change seems to have worked
And maybe why it's a bad idea and recommend a different change...
Oh yeah, this change:
-- o2.Opts.Pos = o:Provide('Pos',0) - 1
o2.Opts.Pos = o:Provide('Pos',0) - 5
Repositions the object so the text appears at the same vertical location as the original text object - will only work properly at 16pt which is my default size for text chords. *Chord text chords are top anchored (an error on my part when I first created them - I still have no idea how it happened, but it's wa-ay too late to change it now) and the displayed text of ChordPlay objects is bottom anchored. Thus the anchor point must move if the visible text is to remain in the same relative position.
The original ChordPlay.nw object lowered the anchor by 1 Pos (I imagine for normal text like Arial or Times New Roman which are also bottom anchored - at least I think that's the case), but for *Chord sourced ones at 16pt it needs to come down by 5 Pos distances. I haven't tested, but I'm pretty sure if the objects were sized at, say, 12 point, the change would need to be 4.
Had I not made the error with *Chord fonts this change would not be necessary.
<edit>
UPDATE - attachments added. Removed from reply #32
ChordPlay.lp.nwcuser.lua - New version 1.7c attached (V1.7b removed from reply#32 above). This one has a working embedded user tool, as discussed above, that should appear in the .plugins group in the User Tool dialogue. Defaults to SwingChord at 16pt, regular style
Unzip and copy to:
C:\ProgramData\Noteworthy Software\nwc2\UserPlugins
Also
"Convert Text to ChordPlay.lp.lua.zip" moved to here - no changes.
Unzip and copy to:
C:\Program Files (x86)\Noteworthy Software\NoteWorthy Composer 2\AutoUserTools
so that it mirrors the original installation of "Convert Text to ChordPlay.nw.lua"
You may choose to locate it elsewhere but I suspect that may generate some confusion.
Both user tools will position the object so the textual portion appears where the text object was, provided it was sized at 16pt.
USE AT YOUR OWN RISK - NO warranties apply.