Skip to main content

Messages

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.

Messages - NoteWorthy Online

51
General Discussion / Re: Computer playback
If you don't want the keyboard to effect the state of your computer's play back synth, then turn off the echo feature. It is in Tools, Options, Record.
52
General Discussion / Re: Computer playback
As Rick points out, the Pitch Bend controller can cause this. When using it, you have to set it back to the center position. A full reset will also fix this.

Perhaps instrument changes that include pitch bend range should also reset the controller to center....this change will be considered.
(update) NWC already does this.

Update: Also looking into Flurmy's issue...
53
General Discussion / Re: A way to prevent system break?
The only ways to prevent a system break at a certain position:

  • reduce the printable size of the notation (from File, Page Setup)
  • remove extra space by placing reduction Spacers that reduce the note spacing
  • force a system break at a prior bar

So, for example, if you have:

Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.751,Single)
|Note|Dur:Half|Pos:0
|Note|Dur:Half|Pos:0
|Bar
|Note|Dur:Half|Pos:0
|Note|Dur:Half|Pos:0
|Bar
!NoteWorthyComposerClip-End

This can often be greatly reduced by using spacers:

Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.751,Single)
|Spacer|Width:10
|Note|Dur:Half|Pos:0
|Spacer|Width:10
|Note|Dur:Half|Pos:0
|Spacer|Width:10
|Bar
|Spacer|Width:10
|Note|Dur:Half|Pos:0
|Spacer|Width:10
|Note|Dur:Half|Pos:0
|Spacer|Width:10
|Bar
|Spacer|Width:10
!NoteWorthyComposerClip-End
54
General Discussion / Re: Override stem length? I wish!
I have toyed with the idea of adding playback to the Glissando.ms object

Possible adaptation of Version 2.0b of Glissando.ms:

Code: (lua) [Select · Download]
local PlaybackStyle = {'None','Chromatic','AllNaturals'}
local KeyIntervals = {
None = {},
Chromatic = {0,1,2,3,4,5,6,7,8,9,10,11},
AllNaturals = {0,2,4,5,7,9,11},
}
...

local _spec = {
...
{ id='Playback', label='Playback', type='enum', default=PlaybackStyle[1], list=PlaybackStyle },
}

...

local function GlissOctaveNearestNextInterval(t,inOctaveSemiTone)
for i,v in ipairs(t) do
if v >= inOctaveSemiTone then return i-1 end
end
return 0
end

local function CountGlissIntervals(k,v)
local o = math.floor(v/12)
local i = v % 12

return #k*o + GlissOctaveNearestNextInterval(k,i)
end

local function GlissNoteFromInterval(k,v)
local opitches = #k
local o = math.floor(v/opitches)
local i = v % opitches

return 12*o + k[i+1]
end

local function _play(t)
local playback = KeyIntervals[t.Playback]
if #playback < 1 then return end

if not (hasPriorTargetNote(priorNoteidx) and nextNoteidx:find('span', 1)) then return end
local startSPP = priorNoteidx:sppOffset()
local acc = t.TargetAcc
local dur = -startSPP

local v1 = nwcplay.getNoteNumber(priorNoteidx:notePitchPos(1) or '0')
local v2 = nwcplay.getNoteNumber(nextNoteidx:notePitchPos(1))
local inc = (v1<v2) and 1 or -1
local interval1,interval2 = CountGlissIntervals(playback,v1,inc),CountGlissIntervals(playback,v2,inc)
local deltav = math.abs(interval1-interval2)-1
if deltav < 1 then return end
local deltaSPP = dur/(deltav+1)
if deltaSPP < 1 then return end
for i=0,deltav do
local interval = interval1+(inc*i)
local notepitch = GlissNoteFromInterval(playback,interval)
if ((i==0) and (notepitch~=v1)) then notepitch = v1 end
nwcplay.note(startSPP+(deltaSPP*i),deltaSPP,notepitch)
end
end
55
General Discussion / Re: A user object request - oversize time signatures.
If your object only appears once in the staff, then a vary large span is reasonable. You can use 16384 as a reasonable large number.

However, if a user places multiple instances of your object on the staff, then this can cause problems. It will trigger every instance of your object to be placed at the front of later systems. You could avoid this issue in your span method:

Code: (lua) [Select · Download]
local function do_span(t)
if nwc.ntnidx:find('next','user',userObjTypeName) then
return nwc.ntnidx:indexOffset()-1,'items'
end

return 16384,'bars'
end

This has the potential to impact NWC performance for very large staffs. If you don't want to allow multiple instances at all, then you could use an audit method to turn off the Span class for later object instances on a staff.

Code: (lua) [Select · Download]
local function do_audit(t)
t.Class = nwc.ntnidx:find('prior','user',userObjTypeName) and 'Standard' or 'Span'
end
57
General Discussion / Re: Beam Direction
Although no longer required in this case, 2.75a Beta 10 includes a beam group option which can be used to properly segment groups in a beam:

Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.751,Single)
|TimeSig|Signature:2/4
|Note|Dur:32nd|Pos:-4|Opts:Stem=Up,Beam=First
|Note|Dur:32nd|Pos:-4|Opts:Stem=Up,Beam
|Note|Dur:32nd|Pos:-4|Opts:Stem=Up,Beam
|Note|Dur:32nd|Pos:-4|Opts:Stem=Up,Beam
|Note|Dur:32nd|Pos:-4|Opts:Stem=Up,Beam,BeamGrp
|Note|Dur:32nd|Pos:-4|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-4|Opts:Stem=Up,Beam=End
|Rest|Dur:32nd
|Note|Dur:32nd|Pos:-4|Opts:Stem=Up,Beam=First
|Note|Dur:32nd|Pos:-4|Opts:Stem=Up,Beam
|Note|Dur:32nd|Pos:-4|Opts:Stem=Up,Beam
|Note|Dur:32nd|Pos:-4|Opts:Stem=Up,Beam,BeamGrp
|Note|Dur:32nd|Pos:-4|Opts:Stem=Up,Beam=End
|Rest|Dur:16th
|Bar
|TimeSig|Signature:6/8
|Note|Dur:32nd|Pos:-4|Opts:Stem=Up,Beam=First
|Note|Dur:32nd|Pos:-4|Opts:Stem=Up,Beam
|Note|Dur:32nd|Pos:-4|Opts:Stem=Up,Beam
|Note|Dur:32nd|Pos:-4|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-4|Opts:Stem=Up,Beam,BeamGrp
|Note|Dur:32nd|Pos:-4|Opts:Stem=Up,Beam
|Note|Dur:32nd|Pos:-4|Opts:Stem=Up,Beam
|Note|Dur:32nd|Pos:-4|Opts:Stem=Up,Beam,BeamGrp
|Note|Dur:32nd|Pos:-4|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-4|Opts:Stem=Up,Beam=End
|Rest|Dur:4th,Dotted
|Bar
|TimeSig|Signature:2/4
|Note|Dur:8th,Dotted|Pos:-4|Opts:Stem=Up,Beam=First
|Note|Dur:16th|Pos:-4|Opts:Stem=Up,Beam
|Note|Dur:8th,Dotted|Pos:-4|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-4|Opts:Stem=Up,Beam=End
|Bar
|TimeSig|Signature:3/8
|Note|Dur:8th,Dotted|Pos:-4|Opts:Stem=Up,Beam=First
|Note|Dur:16th|Pos:-4|Opts:Stem=Up,Beam
|Note|Dur:8th|Pos:-4|Opts:Stem=Up,Beam=End
|Bar
|Note|Dur:8th|Pos:-4|Opts:Stem=Up,Beam=First
|Note|Dur:16th|Pos:-4|Opts:Stem=Up,Beam,BeamGrp
|Note|Dur:8th,Dotted|Pos:-4|Opts:Stem=Up,Beam=End
|Bar
|Rest|Dur:16th
|Note|Dur:16th|Pos:-4|Opts:Stem=Up,Beam=First
|Note|Dur:16th|Pos:-4|Opts:Stem=Up,Beam,BeamGrp
|Note|Dur:16th|Pos:-4|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-4|Opts:Stem=Up,Beam=End,BeamGrp
|Rest|Dur:16th
!NoteWorthyComposerClip-End
58
Object Plugins / Re: TimeSigScaler.nw
When the TimeSigScaler immediately follows an actual time signature, it only shows itself as as an up/down arrow in the editor.

Some tips:

  • F11 shows how it really looks
  • the TimeSigScaler entry of User Tools,.Plugins adds a scaler object to every time signature in a file
  • additional instances can be placed on their own if the time signature is not changing (such as in your example)
  • a spacer before the real time signature will prevent extra preceding white space
  • a spacer immediately after the TimeSigScaler will prevent extra white space on the right ride
  • the scaling can be set using +/- keys while the object is selected by itself
59
General Discussion / Re: A user object request - oversize time signatures.
I went ahead and posted a plugin that formalizes the example from earlier in the topic. The plugin includes a user tool that will apply the scaling to every time signature in a file. Some manual cleanup will likely still be required.

This object can be used to draw a scaled version of a prior, usually hidden, time signature. This object should always be placed after the real time signature.
60
Object Plugins / TimeSigScaler.nw
This object can be used to draw a scaled version of a prior, usually hidden, time signature. This object should always be placed after the real time signature.

Code: [Select · Download]
!NoteWorthyComposerClip(2.75,Single)
|Clef|Type:Bass
|Key|Signature:F#|Tonic:G
|TimeSig|Signature:4/4|Visibility:Never
|User|TimeSigScaler.nw|Pos:0
|Spacer|Width:0
|Rest|Dur:Whole
|Bar
|TimeSig|Signature:5/4|Visibility:Never
|User|TimeSigScaler.nw|Pos:0
|Spacer|Width:0
|Rest|Dur:Whole
|Bar
|TimeSig|Signature:4/4|Visibility:Never
|User|TimeSigScaler.nw|Pos:0
|Note|Dur:4th|Pos:1
|Note|Dur:4th|Pos:2
|Note|Dur:4th|Pos:1
|Note|Dur:4th|Pos:0
|Bar
|TimeSig|Signature:9/8|Visibility:Never
|User|TimeSigScaler.nw|Pos:0
|RestMultiBar|NumBars:32|PrintOnce:N|WhenHidden:ShowBars,ShowRests|Visibility:Never
!NoteWorthyComposerClip-End

This object is derived from existing discussion excerpted below:

Occasionally the scores I play for musicals have a time signature that is significantly larger than you would normally expect.  They extend from the centre line the same way that a normal time signature does, but instead of being completely enclosed in the staff (I.E. each number is 2 spaces high), they extend above and below by approximately an additional space to space and a half.  Think scaled by 150% to 175%.  This can be really, really helpful.  Especially if the score is busy.
61
General Discussion / Re: A user object request - oversize time signatures.
Yeah, sorry, I should have understood what you meant. Just turn off the StaffSig:

Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.75,Single)
|Bar
|User|OversizeTimeSig.test|Pos:0|Scale:175
|TimeSig|Signature:9/8|Visibility:Never
|RestMultiBar|NumBars:32|PrintOnce:N|WhenHidden:ShowBars,ShowRests|Visibility:Never
!NoteWorthyComposerClip-End

You can remove this line from the plugin:

Code: (lua) [Select · Download]
t.Class = 'StaffSig'

A user tool that adds an OversizeTimeSig object to every time signature is pretty straight forward. As far as a single object instance that redraws all instances of a time signature, Lloyd's original solution is about as good as it will get.
62
General Discussion / Re: A user object request - oversize time signatures.
One observation - What I meant by "make sure it's been made invisible" was that the object would modify the existing time signature to make it invisible, not detect one that is already invisible...  I don't know if the API's will allow for this.

They don't.

Eric, I notice with your version that the time sig. gets placed on every new system...

Not exactly. It has to accompany any actual time signature that is placed. The plugin code could be enhanced to support standard sizes on new printed systems after its first appearance.

64
General Discussion / Re: Beam Direction
Currently, the drawing of a fractional beam is not time signature/beat aware. It simply gravitates toward a preceding dot (in the primary voicing), if one is present. This situation will be reviewed.
65
General Discussion / Re: Updated nwc-conv for 2.75 with UTF8 support?
The nwc-conv tool is nothing but a front-end for the NWC2 program.

Version 2.75 exports MIDI text as utf-8, which is probably causing your problem.

Version 2.75a provides for ANSI text during MIDI export from the Tools, Options, File, ANSI text encoding option.
66
Object Plugins / Re: ChordPlay.nw
Updated to protect from a song position out of range error when playing or exporting to a MIDI file.
67
User Tools / Re: Attach Objects To Next Note.nw
Updated to return the number of object instances that were actually moved. The return report now looks like this:

Code: [Select · Download]
Results for TremoloSingle.ms (file mode)

Objects found:    390
Objects moved:    85
Objects deleted:  0
69
User Tools / Attach Objects To Next Note.nw
A support incident with the TremoloSingle.ms object type led to the attached user tool. This user tool can be run in Clip or File Text modes. When run in file mode, it returns file text.

This tool attaches all instances of the designated user object type to the target note that follows it, skipping any rests or bar lines that separate the object from its target note. This has been designed to work with TremoloSingle.ms objects, but would work for other objects that specifically target notes, and not rests or bar lines.

In version 2.75a, you can install this tool directly from Tools, User Tools, Download by entering its name at the prompt:

Code: (txt) [Select · Download]
Attach Objects To Next Note.nw


Example

Spoiler (click to show/hide)
70
Tips & Tricks / Re: Uninstalled Object listing
Currently, plugins are not without a cost, as they impact startup time and memory footprint, as well as potentially expanding the Add Object and Plugin Tool lists.

I don't see NWC offering a facility to encourage installing everything. However, the community could create a *.nwc master file of objects that demonstrates a large collection of them. This master file would enable something similar to what you describe, as it could be used to quickly download and install a large collection of plugins, and also demo their capabilities.

Alternately, perhaps an overview page that demonstrates many of the objects would be helpful.

I'll think about it. This Plugin board is meant to provide much of this now, as it can be casually browsed.

74
User Tools / Re: Retrieve NWC File Version, Font, and Play Time Information
I don't know what is happening for you, although the filename character issue is mentioned above. If you are not getting a report after running the tool, then the batch command is not concluding properly (the exit /b 99 call triggers report mode back to NWC).

It might help if you explained more details about your system. Also, are you able to run the user tool command shown below? If so, what do you get?

Code: [Select · Download]
cmd.exe /C "set && exit /b 99"
78
User Tools / Retrieve NWC File Version, Font, and Play Time Information
NWC 2.75 has a builtin INFO method that can be accessed from the command line. It shows you some summary stats about a file, including NWC version used to create it, play time, and fonts used. You can access this facility from the User Tool mechanism using the attached Windows batch file. The recommended user tool settings are also shown.

Additional Details: A file's path name is sent to user tools that handle File Text. The file path is only provided for existing non-sample files. If you want to retrieve the version info for an old file, you must make sure that you do not save it prior to invoking this tool. Once you save a file in a new version of NWC, the old information is lost.

Additionally, user tools receive input encoded as utf-8. If your files are named with characters beyond simple ASCII, you will likely experience issues with this tool.

Spoiler (click to show/hide)
80
General Discussion / Smart Insertion Point?
We are reviewing the need for the Smart Insertion Point setting in Tools, Options, Editor. It would help us to know how you currently use this setting. Your answer will greatly help in this process.
81
General Discussion / Re: Copying staffs more efficiently
2.75a Beta 7 includes a subtle change that might make this work better for those using  Smart Insertion Point.

I just noticed that when zoomed out, the clef can still get missed when changing staff. Perhaps this can still be improved a bit more...
83
Object Plugins / Re: ChordPlay.nw
Updated as follows:

  • When not using Lawrie Pardy's chord fonts, '#' and 'b' are automatically mapped to true flat and sharp characters for display purposes.
  • When using one of Lawrie Pardy's Germanic chord fonts, B and Bb are automatically remapped to H and B for display purposes.
84
General Discussion / Re: Adding H to ...Chord fonts?
Regarding the ChordPlay.nw object, it can be changed to allow 'H' named chords. I have also been playing with a unicode conversion mechanism so that #/b get displayed as ♯/♭ (unicode variant).

Treating 'B' named chords as B♭ is a little trickier.
87
Object Plugins / Re: TremoloSingle.ms (1.2)
It uses the stem direction, which can be set on those whole notes. Just flip the stem direction...

Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.75,Single)
|User|TremoloSingle.ms|Pos:-7|Beams:2
|Chord|Dur:Whole|Pos:-3,0,2|Opts:Muted
|Bar
|User|TremoloSingle.ms|Pos:-2.5|Beams:2
|Chord|Dur:Whole|Pos:-2,1,3|Opts:Stem=Up,Muted
!NoteWorthyComposerClip-End
88
General Discussion / Re: Hyphenation
You can use a different hyphen character, which will not be recognized by NWC.

For example, you could change to a non-breaking hyphen (U+2011):

Code: [Select · Download]
re-cline

would become:

Code: [Select · Download]
re‑ cline
92
General Discussion / Re: Missing Slur at System Break
Seems to work for me:

Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.75,Single)
|Clef|Type:Treble
|Note|Dur:4th|Pos:0
|Note|Dur:4th|Pos:0
|Note|Dur:4th|Pos:0
|Note|Dur:4th,Slur|Pos:0
|Bar|Style:MasterRepeatOpen
|Note|Dur:4th,Slur|Pos:0
|Note|Dur:4th|Pos:0
|Note|Dur:4th|Pos:0
|Note|Dur:4th,Slur|Pos:0
|Bar
|Ending|Endings:1
|Note|Dur:4th,Slur|Pos:0
|Note|Dur:4th,Slur|Pos:0
|Note|Dur:4th|Pos:0
|Note|Dur:4th|Pos:0
|Bar|Style:MasterRepeatClose|SysBreak:Y
|Ending|Endings:2
|Note|Dur:4th,Slur|Pos:0
|Note|Dur:4th|Pos:0
|Note|Dur:4th|Pos:0
|Note|Dur:4th|Pos:0
|Bar|Style:SectionClose
|Note|Dur:4th|Pos:0
|Note|Dur:4th|Pos:0
|Note|Dur:4th|Pos:0
|Note|Dur:4th|Pos:0
!NoteWorthyComposerClip-End
96
Object Plugins / LineSpan.nw
This object can be used to add special lines that span across a selection of notes. An optional text instruction can accompany the line.

Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.75,Single)
|Clef|Type:Treble
|Note|Dur:4th|Pos:0
|Note|Dur:4th|Pos:0
|User|LineSpan.nw|Pos:9|Text:Slowly
|Spacer|Width:125
|Note|Dur:4th|Pos:0
|Note|Dur:4th|Pos:0
|Bar
|Note|Dur:4th|Pos:0
|Note|Dur:4th|Pos:0
|Note|Dur:4th|Pos:0
|Note|Dur:4th|Pos:0
!NoteWorthyComposerClip-End
98
General Discussion / Re: Object for general note range instructions?
A plugin based feature that needs to visually span bar lines/systems has two techniques that can be used to fully implement this:

  • Use two objects, with special handling of cases for one or the other not in the current system
  • Use the StaffSig class to draw in target systems beyond its home system (indicated by isAutoInsert)

Some additional examples of these techniques can also be seen in BarCounter.nw, PageTxtMaestro.nw, and TabStaff.nw.
99
General Discussion / Re: Making room for... nothing :-)
The notehead is blank, as opposed to hidden, which is an important distinction. If you want the chord to behave as though the note is not there, then removing it is the only way.

As for showing an indication in edit mode, this is certainly doable. No promises at this point...