551
General Discussion / Re: Reassigning function keys?
H.M.
This section allows you to view all Messages made by this member. Note that you can only see Messages made in areas you currently have access to.
I mean a time "rest" between the end of the grace note and the start of the normal note that follows ... I have no idea if this makes any sense musically ...
!NoteWorthyComposerClip(2.751,Single)
|Note|Dur:4th|Pos:0|Opts:Stem=Down
|Note|Dur:4th|Pos:0|Opts:Stem=Down
|Note|Dur:4th|Pos:0|Opts:Stem=Down
|Note|Dur:4th|Pos:0|Opts:Stem=Down
|Bar
|Spacer|Width:25
|Bar
|Note|Dur:4th|Pos:0|Opts:Stem=Down
|Note|Dur:4th|Pos:0|Opts:Stem=Down
|Note|Dur:4th|Pos:0|Opts:Stem=Down
|Note|Dur:4th|Pos:0|Opts:Stem=Down
|Bar
!NoteWorthyComposerClip-End
-- Version 0.1
--[[--------------------------------------------------------------------------
This plugin will connect barlines with the staff below. You must specify if the current staff is Upper, Middle or Lower staff in order to draw connections correctly.
--]]--------------------------------------------------------------------------
local userObjTypeName = ...
local nextBar = nwc.drawpos.new()
local prevBoundary = nwc.drawpos.new()
local drawpos = nwcdraw.user
local drawidx1 = nwc.drawpos
local objidx = nwc.ntnidx
local searchidx = objidx.new()
local c = nwcdraw
local object_spec = {
{ id='System', label='Staff Location', type='enum', default='Top Staff', list={'Top Staff', 'Middle Staff', 'Bottom Staff'}},
}
local function do_create(t)
t.Class = 'StaffSig'
end
local function do_draw(t)
local w = nwc.toolbox.drawStaffSigLabel('BarLines3')
if not nwcdraw.isDrawing() then return w end
-- if nwcdraw.getTarget() ~= 'print' then return end
if drawpos:isHidden() then return end
local yPosTop
local yPosBottom
local setTopIfNil = function(value)
if not yPosTop then
yPosTop = value
end
end
local setBottomIfNil = function(value)
if not yPosBottom then
yPosBottom = value
end
end
local drawSegment = function(x,y,bType)
if t.System == 'Top Staff' then
nwcdraw.moveTo(x,y)
nwcdraw.barSegment(bType,y-4,y-yPosBottom)
elseif t.System == 'Middle Staff' then
nwcdraw.moveTo(x,y)
nwcdraw.barSegment(bType,y+yPosTop,y+4)
nwcdraw.moveTo(x,y)
nwcdraw.barSegment(bType,y-4,y-yPosBottom)
elseif t.System == 'Bottom Staff' then
nwcdraw.moveTo(x,y)
nwcdraw.barSegment(bType,y+yPosTop,y+4)
end
end
--- I do not understand the following (copied from BarCounter)
local me = c.user
local me_autoins = me:isAutoInsert()
drawidx1:reset()
-- don't do anything when hidden
if me:isHidden() then return end
if me_autoins then
drawidx1:find('first')
else
drawidx1:find('prior','bar')
end
if me_autoins and drawidx1:find('first','noteOrRest') then
if drawidx1:isAutoInsert() and (drawidx1:objType() == 'RestMultiBar') then
pendingBar = drawidx1:barCounter()
end
else
drawidx1:reset()
end
-- start from the first note and count bars backwards
objidx:reset()
searchidx:find(drawidx1)
while searchidx:find('prior') and (searchidx > objidx) do
--- end "I do not understand"
if searchidx:objType() == 'Boundary' and searchidx:objProp('Style') == 'NewSize' then
setTopIfNil(searchidx:objProp('Upper'))
setBottomIfNil(searchidx:objProp('Lower'))
nwc.debug("c2", yPosTop, yPosBottom)
elseif searchidx:objType() == 'Boundary' and searchidx:objProp('Style') == 'Reset' then
setTopIfNil(nwcdraw.getStaffProp('BoundaryTop'))
setBottomIfNil(nwcdraw.getStaffProp('BoundaryBottom'))
nwc.debug("c3", yPosTop, yPosBottom)
end
end
setTopIfNil(nwcdraw.getStaffProp('BoundaryTop'))
setBottomIfNil(nwcdraw.getStaffProp('BoundaryBottom'))
nwc.debug("c5", yPosTop, yPosBottom)
nextBar:reset()
local found = nextBar:find('last', 'bar')
if found then
found = nextBar:find('next', 'bar')
end
if found then
local x,y = nextBar:xyAnchor()
local barType = nextBar:objProp('Style')
drawSegment(x, y, barType)
end
nextBar:reset()
while nextBar:find('next', 'bar') do
local x,y = nextBar:xyAnchor()
drawSegment(x, y, 'BrokenDouble')
end
end
return {
spec = object_spec,
create = do_create,
width = do_draw,
draw = do_draw,
}
-- ConnectBarLines2 - derived from Lloyd's ConnectBarLines
-- Version 0.1
--[[--------------------------------------------------------------------------
This plugin will connect barlines with the staff below. You must specify if the current staff is Upper, Middle or Lower staff in order to draw connections correctly.
--]]--------------------------------------------------------------------------
local userObjTypeName = ...
local nextBar = nwc.drawpos.new()
local afterBar = nwc.drawpos.new()
local drawpos = nwcdraw.user
local object_spec = {
{ id='System', label='Staff Location', type='enum', default='Top Staff', list={'Top Staff', 'Middle Staff', 'Bottom Staff'}},
}
local function do_create(t)
t.Class = 'StaffSig'
end
local function do_draw(t)
local w = nwc.toolbox.drawStaffSigLabel('BarLines')
if not nwcdraw.isDrawing() then return w end
if drawpos:isHidden() then return end
local yPosTop = nwcdraw.getStaffProp('BoundaryTop')
local yPosBottom = nwcdraw.getStaffProp('BoundaryBottom')
local found = nextBar:find('last', 'bar')
found = nextBar:find('next', 'bar')
if found then
local x,y = nextBar:xyAnchor()
local barType = nextBar:objProp('Style')
if t.System == 'Top Staff' then
nwcdraw.moveTo(x,y)
nwcdraw.barSegment(barType,y-4,y-yPosBottom)
elseif t.System == 'Middle Staff' then
nwcdraw.moveTo(x,y)
nwcdraw.barSegment(barType,y+4,y+yPosTop)
nwcdraw.moveTo(x,y)
nwcdraw.barSegment(barType,y-4,y-yPosBottom)
elseif t.System == 'Bottom Staff' then
nwcdraw.moveTo(x,y)
nwcdraw.barSegment(barType,y+4,y+yPosTop)
end
end
end
return {
spec = object_spec,
create = do_create,
width = do_draw,
draw = do_draw,
}
!NoteWorthyComposerClip(2.751,Single)(note the !1 on all three notes on position -1), I have to live with the result in the attachment ... well then, so be it ...
|User|CueHeads.ms|Pos:-1|Class:StaffSig
|Chord|Dur:4th|Pos:-1!1,1|Opts:Stem=Up
|Chord|Dur:4th,Grace|Pos:-1!1,1
|Chord|Dur:4th|Pos:-1z!1,1z|Opts:Stem=Up
!NoteWorthyComposerClip-End
elseif ($oType == "Rest" || !timeTaken($o)) // don't filter on rests or grace notesFor splitting my particells into orchestral voices, this is a small nuisance. I just changed the line to
elseif ($oType == "Rest") // don't filter on rests... so far it seems to do what I want. Does anyone know whether there is some problem with this change (e.g. wrong computation of durations? ... but I will never have grace rest chords, I promise)
... as a (retired) IT person I have a particular aversion to the direction m$ are taking with all versions of windoze from Vista onwards.
I look beyond the immediate changes to so-called security, reliability and speed and see a much bigger and scarier picture.
Put simply, IMHO, NONE of the major tech companies are to be trusted.
... versions of windoze past XP do not fill me with any confidence...
local isBar = (objt == 'Bar')to
local isBar = (objt == 'Bar' and drawidx1:objProp('XBarCnt') ~= 'Y')Maybe this could be integrated into the official version of the plugin (the flag isBar could be renamed to isCountingBar to make its intent clearer).
elseif objt == 'Bar' and obj:objProp('XBarCnt') ~= 'Y' then
I've drawn Guade Oide Zeid to the attention of two concert band leaders and hopefully one or the other will play it.
You missed something. ...
Encountering a D.S. doesn't increment the verse counter.
The verse counter increments when playback encounters a Master Repeat Close.
Try this for Staff-1:...
!NoteWorthyComposer(2.751)
|Editor|ActiveStaff:1|CaretIndex:1|CaretPos:0
|SongInfo|Title:""|Author:"<Name>"|Lyricist:""|Copyright1:"Copyright © 2008 <Name>"|Copyright2:"All Rights Reserved"
|PgSetup|StaffSize:16|Zoom:4|TitlePage:Y|JustifyVertically:Y|PrintSystemSepMark:N|ExtendLastSystem:N|DurationPadding:Y|PageNumbers:0|StaffLabels:None|BarNumbers:None|StartingBar:1
|Font|Style:StaffItalic|Typeface:"Times New Roman"|Size:10|Bold:Y|Italic:Y|CharSet:0
|Font|Style:StaffBold|Typeface:"Times New Roman"|Size:8|Bold:Y|Italic:N|CharSet:0
|Font|Style:StaffLyric|Typeface:"Times New Roman"|Size:7|Bold:N|Italic:N|CharSet:0
|Font|Style:PageTitleText|Typeface:"Times New Roman"|Size:24|Bold:Y|Italic:N|CharSet:0
|Font|Style:PageText|Typeface:"Times New Roman"|Size:12|Bold:N|Italic:N|CharSet:0
|Font|Style:PageSmallText|Typeface:"Times New Roman"|Size:8|Bold:N|Italic:N|CharSet:0
|Font|Style:User1|Typeface:"Boxmark2"|Size:16|Bold:N|Italic:N|CharSet:0
|Font|Style:User2|Typeface:"Times New Roman"|Size:8|Bold:N|Italic:N|CharSet:0
|Font|Style:User3|Typeface:"Times New Roman"|Size:8|Bold:N|Italic:N|CharSet:0
|Font|Style:User4|Typeface:"Times New Roman"|Size:8|Bold:N|Italic:N|CharSet:0
|Font|Style:User5|Typeface:"Times New Roman"|Size:8|Bold:N|Italic:N|CharSet:0
|Font|Style:User6|Typeface:"Times New Roman"|Size:8|Bold:N|Italic:N|CharSet:0
|PgMargins|Left:1.27|Top:1.27|Right:1.27|Bottom:1.27|Mirror:N
|AddStaff|Name:"Staff-1"|Group:"Standard"
|StaffProperties|EndingBar:Section Close|Visible:Y|BoundaryTop:10|BoundaryBottom:22|Lines:5|Color:Default
|StaffProperties|Muted:N|Volume:127|StereoPan:64|Device:0|Channel:2
|StaffInstrument|Trans:0|DynVel:10,30,45,60,75,92,108,127
|Lyrics|Placement:Bottom|Align:Standard Rules|Offset:0
|Lyric1|Text:"verse one verse one verse one verse one verse one verse one verse one verse one verse one verse one\n"
|Lyric2|Text:"verse two verse two verse two verse two verse two verse two verse twoverse two verse two verse two verse two verse two verse two verse two\n"
|Lyric3|Text:"verse three verse three verse three verse three verse three verse three verse three verse three verse three verse three verse three verse three end_of_three\n"
|Tempo|Tempo:400|Pos:12
|Clef|Type:Treble
|TimeSig|Signature:4/4
|Rest|Dur:Whole
|Bar
|Rest|Dur:Half
|Rest|Dur:4th
|Rest|Dur:8th
|Note|Dur:8th|Pos:-2
|Bar|Style:MasterRepeatOpen
|Ending|Endings:3|Visibility:Never
|Flow|Style:DSalCoda|Pos:8|Justify:Right|Placement:BestFitForward|Visibility:Never
|Ending|Endings:1,2|Visibility:Never
|Flow|Style:Segno|Pos:11|Wide:Y
|Note|Dur:8th|Pos:-1|Opts:Stem=Up,Beam=First
|Note|Dur:8th|Pos:0|Opts:Stem=Up,Beam=End
|Note|Dur:8th|Pos:1|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:2|Opts:Stem=Down,Beam=End
|Note|Dur:4th|Pos:3
|Note|Dur:4th|Pos:2
|Bar
|Note|Dur:8th|Pos:-1|Opts:Stem=Up,Beam=First
|Note|Dur:8th|Pos:0|Opts:Stem=Up,Beam=End
|Note|Dur:8th|Pos:1|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:2|Opts:Stem=Down,Beam=End
|Note|Dur:4th|Pos:3
|Note|Dur:4th|Pos:2
|Flow|Style:ToCoda|Pos:5|Wide:Y
|Bar
|Ending|Endings:1
|Note|Dur:8th|Pos:3|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:2|Opts:Stem=Down,Beam=End
|Note|Dur:8th|Pos:1|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:0|Opts:Stem=Down,Beam=End
|Note|Dur:4th|Pos:-1
|Note|Dur:4th|Pos:0
|Bar|Style:MasterRepeatClose
|Ending|Endings:2
|Note|Dur:8th|Pos:3|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:2|Opts:Stem=Down,Beam=End
|Note|Dur:8th|Pos:1|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:0|Opts:Stem=Down,Beam=End
|Note|Dur:Half|Pos:-1
|Bar
|Rest|Dur:Whole
|Bar
|Rest|Dur:Whole
|Bar|Style:MasterRepeatClose|Visibility:Never
|Flow|Style:DSalCoda|Pos:8|Justify:Right|Placement:BestFitForward|Visibility:Always
|Bar|Style:Double
|Flow|Style:Coda|Pos:8|Wide:Y
|Note|Dur:Whole|Pos:-1
!NoteWorthyComposer-End
And mine too.
Long ago I made the syntax file "nwctxt.uew" and I tried to keep it up to date.
Do you have something similar I can borrow from?
Or, vice-versa, do you like to have mine?
...I don't think it's possible to insert a RestChord in NWC itself.
A chord containing a rest is created by first placing the rest, and then adding one or more notes to that rest. The duration of the rest must be smaller than that of the notes that are added to it. The stem direction assigned to the rest must be different (opposite) than the note that is being added, or the operation will fail.
Chord members can be added most efficiently by pressing <Ctrl Enter> from the computer keyboard.