451
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 - Mike Shawaluk
452
General Discussion / Re: boxed text
It would be possible to modify BarLabel.ms to add some positioning flexibility, such as allowing the box to be left or right aligned in addition to centered, and there are some other "niceties" that I've thought of since I created it, like allowing the line thickness and spacing to be adjusted. Maybe allow different shapes besides a rectangle. But when I created it, one of the things that people liked about it was that it was simple to use; not a lot of options to mess with. And it is especially handy for its intended use case, which is bar numbers. Perhaps @hmmueller would consider adding a boxed text option to his XText.hmm object

It was ingenious of you to think of this alternate use for BarLabel.ms. I guess this is an example of thinking outside the box?

453
General Discussion / Re: Hairpins
454
General Discussion / Re: Hairpins
Code: (nwc) [Select · Download]
!NoteWorthyComposer(2.751)
|Editor|ActiveStaff:2|CaretIndex:1|CaretPos:7
|SongInfo|Title:""|Author:"<Name>"|Lyricist:""|Copyright1:"Copyright © 2018 <Name>"|Copyright2:"All Rights Reserved"
|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
|Lyrics|Placement:Bottom|Align:Standard Rules|Offset:0
|Lyric1|Text:"bring. Glo-ry! Glo-ry!\n"
|Note|Dur:8th|Pos:-5|Opts:Stem=Up,Beam=First
|Dynamic|Style:f|Pos:10.5
|Note|Dur:16th|Pos:0|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-2^|Opts:Stem=Up,Beam
|Note|Dur:8th|Pos:-2|Opts:Stem=Up,Beam=End
|Rest|Dur:8th
|Note|Dur:16th|Pos:0|Opts:Stem=Up,Beam=First
|Note|Dur:16th|Pos:-1^|Opts:Stem=Up,Beam
|Note|Dur:8th|Pos:-1|Opts:Stem=Up,Beam=End
|Bar
|AddStaff|Name:"Staff-1"|Group:"Standard"
|StaffProperties|EndingBar:Section Close|Visible:Y|BoundaryTop:10|BoundaryBottom:14|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:"bring.\n"
|Dynamic|Style:mf|Pos:7|Visibility:Never
|Note|Dur:Half,Dotted|Pos:-5|Opts:Crescendo
|Spacer|Width:425
|Dynamic|Style:f|Pos:8
|Spacer|Width:450
|Note|Dur:8th,Grace|Pos:-5|Visibility:Never
|Spacer|Width:350
|Bar
!NoteWorthyComposer-End
455
General Discussion / Re: Hairpins
I am looking for help in getting those hairpins to behave satisfactorily.
I found this topic from 10 years ago.
https://forum.noteworthycomposer.com/?topic=6446.msg45412#msg45412
Have there been any new tricks or tools discovered? I've tried using an invisible muted grace note and that helps sometimes. Not always, like when I want a new hairpin after a whole note to show a crescendo on the note moving into a new dynamic range.
Thanks
But then again, if you are not worried about the hairpin playing, you can always use this.
456
Tips & Tricks / Re: An experiment in tuplets

The idea is that if I am putting a septuplet run in staff #1 and there are 4 quarter notes in staff #2, I really don't care if the notes line up exactly.
Does that make more sense?
457
Tips & Tricks / Re: An experiment in tuplets
Of course, all these "blank head features" collide with CueHeads ....
458
Tips & Tricks / Re: An experiment in tuplets
Imagine that a user wishes to create a custom tuplet at some spot in their score. They would insert the tuplet notation as grace notes, and then make the notes hidden and muted. This gives them zero duration in the measure. Then, they would insert a non-grace rest of the desired duration of the tuplet, and mark that hidden as well. Immediately preceding these notes, there would be a user object, which would have necessary parameters to control the appearance (and playback) of the tuplet. The object would then loop over the grace notes and draw them on the staff as regular notes, using the appropriate properties of the grace notes (stem direction, beam type, "duration", etc.)
I've left out some details, but let me know if this approach could work in theory. It could be a bit simpler than the CueStaff object since it only needs to draw notes, and maybe rests. Does the idea sound feasible?
Mike
459
General Discussion / Re: An idea
For example, with the tremolo tool, I started by reading the instructions. That didn't totally illuminate me, so I opened the example. Then, I tried and failed to make one. (Had missed a key point) Then I cut and pasted the example into my score. Then I went into the settings to figure out how it was set up. Then I asked for some clarification and googled a few notation related things, went back and was successful.
460
Object Plugins / Re: Tremolo.ms (2.1)
Woah! That was fast!
461
Object Plugins / Re: Tremolo.ms (2.1)
- 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.
462
Object Plugins / Re: Tremolo.ms (2.0c)
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.
463
General Discussion / Re: An idea
I think it has been suggested that the user object (and user tool) subsystems could be sort of "proving ground" for new program features. If an object is popular, and a significant number of users find it useful (or perhaps indispensable), maybe it WILL become a standard feature in a future version. Likewise, there have been numerous workarounds and tricks to achieve special spacing, slur positioning, etc. over the years, and finally in the current version we have much better control over notation appearance: finer vertical positioning and stem length, accidental, extra notehead space and augmentation dot spacing, slur positioning, and so on. Courtesy accidentals now exist as a native feature. I think much of the evolution to create these new features has been from the community of users in this and other forums, letting the NWC authors know what they like and don't like, what they need and don't need.
We will all have to wait and see what the future brings as far as the next version of NWC is concerned. I am looking forward to the next beta period (which I think is a bit overdue).
464
General Discussion / Re: My (new, and long) NWC wishlist
P-3. A builtin option when grace notes start to sound (before the beat or on the beat).
Some of you have provided solutions for this - can you give me some URLs that I could add here? Thanks!
465
General Discussion / Re: Do we need a "CueStaff" plugin?
There is code in NWC which will "shut down" any plugin that is taking too much CPU time. You may have already seen this in action if you accidentally create an infinite loop (which I have done from time to time). If this is happening for you with the current code, then perhaps this technique isn't going to work. However, maybe there is a bug lurking that is causing the plugin to run excessively. I don't recall if there is a way for a plugin to log the execution time, however.
One small note/suggestion for your current code that draws bar lines: nwcdraw.barSegment. Look at the code for TabStaff.nw for an example of this.
All in all, this is an excellent proof of concept, but as you say, it will take much work to build it out to handle more notation.
Editorial comment follows:
What would be helpful for this (and other) objects would be some way to tell NWC to "not draw things" so that the user object could draw them instead. Objects like this (as well as CueHeads.ms and Beam.hmm and a few others) are forced to use special tricks like blank space noteheads and zero-stem-length notes in order to suppress the drawing of noteheads and flags. We can currently use the marker object to suppress the rendering of slurs, articulations and triplet markings, but there are more things that would be useful to be able to hide or control. However, I don't know what NWC has in store for the next version, since the author has been very quiet lately. Perhaps there will be other mechanisms available that give us some of the new features and abilities that we are trying to do via plugins. I guess we'll have to wait and see.
466
General Discussion / Re: Do we need a "CueStaff" plugin?
467
User Tools / Re: Is there a way to get the current cursor position ("caret position") ...
I indicated a saved nwctxt file just as an example, but those values are also dynamically sent to a user tool. I would suggest running the "nwctxt File Explorer" user tool, which is installed as part of the NWC2 User Tool Starter Kit. (You can find it under the .Developer Tools group). This is a handy tool for browsing the structure of a score from a user tool's perspective.
I seem to recall that it is possible for a clip text user tool to also access the score's file text, but I can't think of any examples off the top of my head. Hopefully one of the other user tool authors can provide an example.
468
User Tools / Re: Is there a way to get the current cursor position ("caret position") ...
Code: (nwc) [Select · Download]
|Editor|ActiveStaff:1|CaretIndex:5|SelectIndex:7|CaretPos:0CaretIndex holds the cursor position when the file was saved. If there was an active selection, SelectIndex will hold that. I haven't figured out what CaretPos indicates.
I haven't verified this, but I would assume that this information is available if you are using file mode in the user tool.
469
Object Plugins / Re: Breve.test (0.1)
Just a quick note, you probably know you can hide accidental signs by hitting 7, 8 or 9 a second time.
470
Object Plugins / Re: RepeatMark.ms (0.3)
A number of plugins that I wrote were created because they were things I found myself wanting or needing, for the choral music files that I was creating for our church choir. Once I created them, I was happy to share them with other NWC users. RepeatMark.ms is not one of these; that one was a somewhat recent addition, and was something I did mainly to see if it would fit the needs of people who create scores that require them. I've never really needed a repeat mark (or simile mark, which I now understand is the better name for that notation) in the scores I create.
That said - I would be happy to relegate the RepeatMark code over to you, where you can evolve it as needed, since you have more knowledge as to how these marks are actually used. Feel free to start a new thread with your RepeatMark.hmm (or SimileMark.hmm) code, and I'll retire the version in this thread once you have done that.
Thanks,
Mike
471
Object Plugins / Re: Breve.test (0.1)
And I have another question: Can a plugin somehow detect whether a font is actually installed? .setFont does not return any "success" value, and even querying .getTypeFace() afterwards just returns the set typeface, even if it is 'asdfghj' or some other nonsense. This seems to be the way the Windows font system works ... but I would like to give the user some - any - feedback if the square breve head cannot be drawn (my ugly kicked-over I's, on the other hand, always work ... as long as a "Times New Roman" font is present ...).
472
General Discussion / Re: Objects online synch
Do a search on "TLS 1.0 end of life" for more information. I am guessing that NWC's web host has already disabled it, and it appears that TLS 1.0 is the latest version directly supported by Windows XP. Hopefully someone will prove me wrong on that last bit.
473
Object Plugins / Re: Breve.test (0.1)
(a) CueHeads detecting Breve should be possible - I already thought of this, but the creators of both would have to discuss this

(b) Implementing width and marking the chords as hidden: I actually started with this, but it did not work out at all (maybe I did not try all possibilities). The main problem is that hidden notes are not aligned by NWC with other notes, and therefore it is alsmost impossible to place the breves lined up with notes on other staffs; it gets worse with (*) accidentals, (*) the "increase spacing" option in the page setup, (*) lyrics (breves are mostly useful for vocal music) etc. That's why I ended up with the blank noteheads ...
(In the course of this and - upcoming - considerations about RepeatMarks, I would wish that (x) NWC had more than one - distinguishable - "quite" blank heads; and (y) a way to insert additional, note-aligned spacers when drawing (my idea would be that width(t) could return some more sophisticated result ... but that's long-term ...)
474
General Discussion / Re: Learning to crescendo and decrescendo
475
Object Plugins / Re: Breve.test (0.1)
This is just a theoretical suggestion, which I haven't tried.
476
Object Plugins / Re: Breve.test (0.1)
This user object does not work nicely with the Cueheads.ms object, because that object also uses blank note heads.
477
General Discussion / Re: Why use hidden staves?
I'm not interested in that plugin since all I want is the display of the chord name.
How can I make ChordPlay hush?![]()
Of course I can (and I do) use text for chord names, but having a... "dedicated" item simplifies the creation of a user tool to transpose the chords or also to simplify operations on them like, for example, moving all them up or down at once.
(N.B. Yes, I already did the transpose tool for text chords long ago and it still works fine, but...)
One of the nice parts of the ChordPlay.nw object is that it automatically transposes, but I assume you knew that. No user tool required.
478
General Discussion / Re: Why use hidden staves?
a) While I still use text chords, the new Chord user object may be more suitable for you.
479
Object Plugins / Re: Beam.hmm (0.4)
480
Tips & Tricks / Re: Writing a plugin's transpose - how to apply semitones to staff position?
I'd like to write a transpose function that moves the staff position of my user object - but how can I change the staff position from inside the transpose method? Any help is appreciated ...
H.M.
481
General Discussion / Re: Italics again
In your lyrics, put several consecutive underline characters ( _ ) in place of the syllables you will be doing with italics. NWC will render these as spaces, assuming that you set the "Underscore shown as space" checkbox. You can experiment with the number of underscores for each syllable to give you the right spacing. You can even hyphenate your underscores if you have a two syllable Hebrew word (i.e. ______-______ ) so you'll get the hyphen at the right spot, and you can put the syllables on either side.
Also, Warren didn't mention this, but for the text expressions, you probably want to set each syllable's placement to be center justification, aligned at the next note/bar.
Good luck!
482
General Discussion / Re: Change the widge of measures?
For your problem with the drum staff, perhaps you could use hidden staves for the sound, and a visible staff with bar repeat symbols for each repetitive patterned bar to reduce the space each bar takes up. This symbol is available as a text object in all of my *Dings font suites.
483
General Discussion / Re: Printing to PDF
484
General Discussion / Re: Printing to PDF
- Install your PDF generation program (which you have already done)
- While running NWC, go to File > Printer Setup..., and choose the PDF driver from the dropdown list.
- Open a score, then go to File > Print... and click OK. It should prompt you as it did before.
485
Object Plugins / Re: Beam.test (0.2)
I look forward to experimenting with this new object.
Mike
486
Object Plugins / Re: XText.hmm (0.6)
No complaints from me

Mike
Edit: Oops, maybe not "shorter" since you had to double up the % because of string.gsub... but still should be faster.
487
Object Plugins / Re: XText.hmm (0.6)
A question/suggestion for you: I notice in your code you have a function named replaceAll(text, k, v) where you are doing string.find() and string.sub() within a loop. Did you consider using the Lua string.gsub() function? I think it should work well for what you are doing.
Thanks,
Mike
488
General Discussion / Re: My (new, and long) NWC wishlist
I suppose you know that BarCounter.nw.nwcuser.lua does this too, do you?
G-2. Beams between staffs
489
General Discussion / Re: Beyond Bars Lyric sizes
This is a perfect opportunity to bring up what I see as an annoying quirk of NWC regarding lyrics: the way it determines line spacing. For a particular font, as you change the point size, the line spacing is also changed, but the two sometimes are not changed equally. It is as though the line spacing is rounded to some coordinate system, and will sometimes give tighter or looser line spacing. Also, it is only possible to directly enter point size as a whole number (although there are workarounds to enter fractional font sizes that I will leave to others to describe). In addition to more uniform/predictable lyric spacing, I'd like to see a few enhancements around lyrics:
- A separate setting for lyric line spacing
- The ability to specify fractional font sizes without needing to resort to workarounds
- The ability to incorporate bold, italic or underlining in lyrics (without having to resort to special composite fonts) Maybe bold and underline are overkill, but italics at least would be nice to have.
- The ability to change lyric position (and spacing) "on the fly" using boundary commands.
490
General Discussion / Re: Inserting dynamics
If you press "d" (lower case) it brings up the selector, that lets you choose the dynamics visually, as you describe. However, if you press "D" (upper case) it brings up the more terse dialog box (but that has additional options).
Hope that helps,
Mike
491
Object Plugins / Re: Envelope.hmm (0.7) - supporting envelopes in NWC
Thank you! -> I have uploaded version 0.7 with corrected @ labels. Also, I have removed all the commented nwc.debug calls.
H.M.
BTW, this is not a big deal, but I noticed that when you bumped the version to 0.7, it still says 0.6 in the help comment section. You can fix that when you go to 0.8

Also, I saw this usage comment:
Quote
--!! (17) Why are these plugins (both Envelope and its Maestro) shown as tiny triangles?
It's more of a "tear drop" but that is the standard icon for a user plugin. You've probably noticed that a number of other plugins show as sideways text with an oval around them. There's a "toolbox" for drawing that which you can use if you like; you should look at the source code for one of those objects to see how it's done (try Cueheads.ms as an example).
Basically you would add the following code:
Code: (lua) [Select · Download]
-- Following line is outside any functions
local userObjSigName = nwc.toolbox.genSigName(userObjTypeName)
-- Following three lines are added to the top of the _draw hook
local isStaffSig = (t.Class == 'StaffSig')
local w = isStaffSig and nwc.toolbox.drawStaffSigLabel(userObjSigName) or 0
if not nwcdraw.isDrawing() then return w end
You could include additional information inside the oval, such as the name of the controller.
You would also need to add "width = _draw" to your return hooks.
492
Object Plugins / Re: Envelope.hmm (0.6) - supporting envelopes in NWC
** Question: Where does one see the comments after @... properties? I knew that once, I believe - but have not found that explanation ...
When you have the object properties window open, you would click the "?" in the title bar, and then click on a particular field. If your second click is the object name (or any property which doesn't have an @ entry) it will display the information that precedes the first @ entry.
However, one note: you have named some of your @ labels incorrectly. You should use the "id" value, not the "label" value. For some of your Envelope.hmm entries, they are the same, so they work.
Mike
493
General Discussion / Re: Multiple Rests (Please Help! I'm such a beginner)
Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.751,Single)
|RestMultiBar|NumBars:15|PrintOnce:N|WhenHidden:ShowBars,ShowRests|Visibility:Always
!NoteWorthyComposerClip-End
494
Object Plugins / Re: Envelope.test (0.3) - supporting envelopes in NWC
(5) [see code/please help] I would like to set the color of all envelope objects for one controller to the corresponding maestro's object color - is this possible?
One thing you might try is to create an embedded user tool for your Envelope object, and have it set the color based on the color of the corresponding EnvelopeMaestro object. This should work in theory because a user tool can modify any object property.
495
Object Plugins / Re: Envelope.test (under development) - supporting envelopes in NWC
I have only looked over your code and comments briefly so far, but I have one suggestion that might help, regarding your use of {ntnidx}:objProp() to retrieve the properties of your Maestro object. You might try using {ntnidx}:userProp() instead, as this will be "filtered through" the spec table, and should thus have default values (and types) applied.
I will give it a closer look-at this weekend, but this is an interesting plugin you are undertaking - thanks for your efforts!
Mike
496
User Tools / Re: Turn grace notes into real ones.
Code: [Select · Download]
var NoteLengths = [ "Whole", "Half", "4th", "8th", "16th", "32nd", "64th", "128th", "256th", "512th", "1028th" ]You probably want that to be "1024th" (although NWC doesn't support notes that short yet). Also, there should be a ";" at the end of the statement to be proper JavaScript.
497
General Discussion / Re: incorrect layout
In a created song some lyrics are printed wrong.
<Image Link>
What can I do to fix this problem?
Regards.
Guido van Harten
Patient: Doc, it hurts when I do this: (patient makes a particular motion)
Doctor: Well then, don't do that!
When you enter notes and lyrics into NWC, it will add space between the notes when particular lyric syllables are longer, so that the text remains readable. However, as you have shown, inserting a spacer between two notes, which overrides NWC's automatic spacing, can also be used to bring notes closer together. Doing this also overrides the automatic lyric spacing, because you told it you want those notes closer today, and it is obeying your command. This is made worse in your example because of the small notes and the correspondingly large lyric font. (Incidentally, what notation typeface are you using, which has those round noteheads?)
If you really need the notes that close together, there are a few options:
- Add one or more underscores to the end of the first note's word/syllable, and to the beginning of the second note's word/syllable. This might not work for your example, because then they will run into the adjacent lyrics.
- Put the word/syllable for the first note on the existing lyric line, and add a 2nd lyric line below with just the second note's word/syllable. (or add the second word via a text object)
- Try a smaller lyric font size, or a larger notation font size
But my best advice would be to increase the spacing between the two notes, or, in the above doctor's advice, "don't do that!"

498
General Discussion / Re: verse numbering
499
General Discussion / Re: new computer recommendations

500