Skip to main content

Topic: Beam.hmm (0.8) (Read 1647 times) previous topic - next topic

Beam.hmm (0.8)
NWC is missing cross-staff beams, unison beams, more complex grouping (where some group have one running beam, others two), overhanging fractional beams, beam groups for speed variation, stemlets, single notes with beams, and double beams (double stem chords with beams on both sides). I thought this could be remedied by creating a versatile Beam object, which is attached to this posting.
In addition, there are ten example files, which mainly use examples from "Behind Bars":

  • "UnisonBeams" has three unison beam examples;
  • "CrossStaffBeams" has a percussion example and two piano examples; the last - an excerpt from a piece by Webern - is, I would say, quite interesting ...
  • "OppositeStemDirectionBeams" has some examples with stems in opposite directions (but the previous file also has some ...);
  • "ComplexGrouping" has a single example with different numbers of connecting beams - NWC cannot do this, but I doubt that this is really an important feature;
  • "FractionalBeams" shows an interesting way to indicate complex rhythms, which I have yet to see outside B.B.; and has single notes with beams.

The remaining examples are attached to the next posting.

The maximum span for a Beam object is 16 notes and rests. If a longer beam group is needed, two or more overlapping beam objects can be defined (see example in "ComplexGrouping.nwctxt").

Breaking beams at a line break does not work - you have to provide a separate Beam object for each line.

(If you possess "Behind Bars", I am interested in whether you see problems with my example scores; and if you have suggestions for interesting examples I could or should add).

H.M.
  • Last Edit: 2019-03-28 09:23 am by hmmueller

Re: Beam.test (0.8)
Reply #1
0.2 has an additional property to keep non-through-running beams together - the problem came up with an example on page 315 of B.B.

Here are the five remaining example files:

  • "SpeedVariationBeams" shows a notation that would drive our church choir crazy. This notation requires that all notes are eighths, because otherwise each user object (there is one for each slanting beam) would draw a second, unwanted parallel bar; if one wanted to play this, the varying tempo would have to be created by a tempo track.
  • "Stemlets" shows a notation that connects rests to a beamed group. E.Gould writes: "This notation is helpful for passages of complex rhythms, especially where rests occupy the start or finish of a subdivision of a beat". One could also use it to mark special notes under a beam, as my last example shows.
  • "DoubleBeams" shows double beams on a single staff, which can e.g. help with quickly notating SATB scores on two staffs.
  • "Tuplets" shows how with tuplets, one can e.g. draw one single beam above somewhat lengthened sixteenth to create the impression of "short eighths".
  • "DoubleStemmedBeams" (since 0.7) shows overlapping beams, with additional non-beamed notes on double-stemmed chords.

H.M.
  • Last Edit: 2019-03-28 09:24 am by hmmueller

Re: Beam.test (0.2)
Reply #2
Quite impressive. I have a very small suggestion: for your "spin" function (to alter the final stem length), you should use an increment/decrement of 0.5, to match the step value for the parameter on the properties window.

I look forward to experimenting with this new object.

Mike

Re: Beam.test (0.3)
Reply #3
0.3 has rounding at some crucial places, so that one can always (I hope) create horizontal beams; and, after the suggestion of Mike, the spinner now uses 0.5 increments. Also, I added another example file.

H.M.

Re: Beam.hmm (0.4)
Reply #4
I have now upgraded the Beam object from .test to .hmm. There are quite a few changes for this first "production ready" version:

  • Most important, the beam options for notes and rests under the beam have been changed from obscure symbols to (somewhat) understandable texts.
  • The selection of the number of beams for a beam group is now on the start note of the beam group , i.e. the note after the reduced number of beams (similar to NWC's "Beam group start" option) - this seems a little more intuitive than the previous attempt, where one specified the beam reduction on its left side.
  • The maximum span of a Beam object is now 16 notes and rests. If a longer beam group is needed, two or more overlapping beam objects can be defined (see extreme example in "ComplexGrouping.nwctxt").
  • A span of 1 is also supported; this can be used for single beamed notes (see last example in "FractionalBeams.nwctxt").
  • Stemlets for rests compute their length correctly.
  • There is a rudimentary option for stemlets on notes (see last example in "Stemlets.nwctxt").
  • Some more examples have been added.

As always, I'm happy about any comments!

H.M.

Re: Beam.hmm (0.4)
Reply #5

Looking forward to seeing your examples, HMMM, but I can't see any of these beam variations in the nwctxt files I downloaded/opened. 

It seems to be a matter of not having the right fonts, or just not having set the fonts up in Page Setup. 

What are the font settings?
(It might be a good idea to add a small note to the tool popup saying which fonts are needed.)

David 

This might be good to explain

What fonts . 

Re: Beam.hmm (0.4)
Reply #6
Hi -

I don't think it has to do with fonts. First, the .nwctxt files do contain the font names embedded, so one should see in the page setup whether there would be any unusual fonts.
But second and more important, I do not use fonts, but rather draw the beams with NWC's plugin machinery (in concrete, the nwcdraw module; the code for drawing a beam is copied verbatim from the nwcdraw documentation).

Just to make sure - I use NWC version 2.75a.2.

And I have attached an image on how "Stemlets.nwctxt" looks in my NWC ... what does yours look like?

//Edit:
Do you see any alerts - either
  • when opening NWC (which would indicate a problem with Beam.hmm's source code),
  • or when opening an example .nwctxt file (which would either indicate that Beam.hmm is not installed at the expected folder, or again an error in the source code which for some reason does not occur on my computer)?

H.M.
  • Last Edit: 2018-05-16 10:57 am by hmmueller

Re: Beam.hmm (0.4)
Reply #7
I do not use fonts
Not completely exact: CrossStaffBeams.nwctxt uses MusikChordSansGermanic.
But after having said so, I agree with you: I don't think it has to do with fonts.
(N.B. Everything is fine here with XP.)
And... thank you for all your work!

Re: Beam.hmm (0.4)
Reply #8
Not completely exact: ...
Ah - I meant the Beam plugin itself. But thanks for that hint - I'll remove that incidental dependency in an example. & thanks for the confirmation that it works on (at least) one other computer :)

H.M.

Re: Beam.hmm (0.4)
Reply #9
Interesting that we can now produce the correct spacing between beams (a quarter of a staff space). But not terribly useful until NWC does the same for ordinary beams, or at least offers the option.

Re: Beam.hmm (0.4)
Reply #10
Hi -
...I don't think it has to do with fonts. First, the .nwctxt files do contain the font names embedded, so one should see in the page setup whether there would be any unusual fonts.
But second and more important, I do not use fonts, but rather draw the beams with NWC's plugin machinery (in concrete, the nwcdraw module; the code for drawing a beam is copied verbatim from the nwcdraw documentation).

Just to make sure - I use NWC version 2.75a.2.

And I have attached an image on how "Stemlets.nwctxt" looks in my NWC ... what does yours look like?

//Edit:
Do you see any alerts - either
  • when opening NWC (which would indicate a problem with Beam.hmm's source code),
  • or when opening an example .nwctxt file (which would either indicate that Beam.hmm is not installed at the expected folder, or again an error in the source code which for some reason does not occur on my computer)?

H.M.
1.  I don't have MusikChordSansGermanic and it isn't listed in the Fonts section of the Scriptorium.  Where can I download it? Does it need to be set up as Userfont1, or something else in Page Setup Fonts?
2.  I also use NWC version 2.75a.2.
3.  Alert = "Detected 4 unknown user objects in Stemlets.nwctxt"
4.  See attached Stemlets.PHN (9.79 KB) 
5.  I opened the nwctxt file in an already open NWC2 session.  NWC2 never generates error messages for me when I open the program.

d





Re: Beam.hmm (0.4)
Reply #11
1.  I don't have MusikChordSansGermanic and it isn't listed in the Fonts section of the Scriptorium.  Where can I download it? Does it need to be set up as Userfont1, or something else in Page Setup Fonts?
Dont set it up - I'll repair the examples so that they dont need it ... just my error. But this is no problem for your scores.

3.  Alert = "Detected 4 unknown user objects in Stemlets.nwctxt"
If you go to Tools-->Options-->Folders, what is the folder near "Object Plugins"? Is this exactly the folder where you installed (copied) the Beam.hmm.nwcuser.lua file to?
  • If not, then this is the problem: The file is not where NWC looks for user plugins. Place the file in that folder, and then hopefully all works fine.
  • If it is, please check whether you installed it under some non-admin rights, so that it is not visible under normal Windows user rights. I confess I dont fully understand Windows here, but I know form first-hand experience that such things happen - I then open a cmd shell as "Administrator" and do the copying of the file in it, and then all works ... maybe you could try that.

4.  See attached Stemlets.PHN (9.79 KB) 
Thanks - that's why I am quite sure that the plugin is "somewhere else" than NWC looks for plugins.

5.  I opened the nwctxt file in an already open NWC2 session.  NWC2 never generates error messages for me when I open the program.
Good to know! - if that had happened, there would be an error in some source code which NWC finds on startup.

I hope that helps ...

H.M.




Re: Beam.hmm (0.4)
Reply #12
1.  I don't have MusikChordSansGermanic and it isn't listed in the Fonts section of the Scriptorium.  Where can I download it? Does it need to be set up as Userfont1, or something else in Page Setup Fonts?

Hi David, though you don't really need it for this, it is available as part of an optional suite upgrade I did in 2009:
http://zoundz.pardyline.com.au/SupportFiles/Fonts/ChordFontsDoSiGermanic.zip

The link is on the Scripto in the same place as my other suites:
https://nwc-scriptorium.org/helpful.html#Fonts
I plays 'Bones, crumpets, coronets, floosgals 'n youfonymums - gonna lern tubies next

Re: Beam.hmm (0.4)
Reply #13
I have now looked into the plugin and into the examples - none of them contains any string that contains the letters "German" anywhere. So how can it be David stumbles over that font??? :o - any help is appreciated!

H.M.

Re: Beam.hmm (0.4)
Reply #14
File CrossStaffBeams.nwctxt still has Germanic fonts specified as User1 and User5.

Re: Beam.hmm (0.4)
Reply #15
Thanks (I had a wrong option in my string search ...) - I have now replaced the file with one that has all User Fonts set to Times New Roman.

H.M.

Re: Beam.hmm (0.4)
Reply #16
...If you go to Tools-->Options-->Folders, what is the folder near "Object Plugins"? Is this exactly the folder where you installed (copied) the Beam.hmm.nwcuser.lua file to?

Hi H.M.,
You hit the nail on the head.  I didn't know I had to download/install the LUA file.  The demo files open correctly now. Good stuff!
Thank you.
d


Re: Beam.hmm (0.4)
Reply #17
Hi David, though you don't really need it for this, it is available as part of an optional suite upgrade I did in 2009:
http://zoundz.pardyline.com.au/SupportFiles/Fonts/ChordFontsDoSiGermanic.zip

The link is on the Scripto in the same place as my other suites:
https://nwc-scriptorium.org/helpful.html#Fonts

Hi Lawrie, thanks! 
Don't know how I missed it.  I'll blame it on my recent retina surgery.
d




Re: Beam.hmm (0.5)
Reply #18
Version 0.5 has improved support for double beams. The example file DoubleBeams.nwctxt (attached to the second posting of the thread) shows that one can (or could) now write typical SATB scores without layered staffs, even if there are parallel runs of eighths - for example, Händel's "See, the conqu'ring hero comes" (in Germany, this melody is mainly known as a Christmas song "Tochter Zion", with lyrics by F.Ranke).

However, the plugin does not yet work correctly on double-stemmed chords with two different durations - it always takes the shorter duration, instead of the one of the "right stem". I suspect fixing this requires a major rewrite, so it may make some time.

H.M.

Re: Beam.hmm (0.6)
Reply #19
Version 0.6 has an additional option "one beam less", which draws one beam less than the tails of the notes request. This can be useful for drawing certain tuplets.

Re: Beam.hmm (0.6)
Reply #20
There seems to be so much in this object which needs lots of investigation, all in due time.

But of course, the real winner is when you get it to do something that you personally want to achieve and Noteworthy does not yet support.

This happened for me today when I realised that I could use beam.hmm to achieve cross bar line beaming.
For those of you that have tried doing this, you will know that the page printing mechanism can easily go disastrously awry when employing tricks to achieve a beam across a bar line.

So - thank you Harald for a use that you did not specify (at least I don't think you did) when introducing your object plugin (Cross staff mentioned - not cross bar line)


Rich.

Re: Beam.hmm (0.6)
Reply #21
... for a use that you did not specify ...

Well, no, I did not specify it, and didn't think of it! As a writer of a plugin, it feels like a real winner when someone else finds a good new use of a plugin ... so thank you for this! When I find time, I might/should add an example for this also to the initial posting(s) ... and check out a littel what happens at line and page breaks ... ...

H.M.

Re: Beam.hmm (0.8)
Reply #22
With just a handful of changed lines, version 0.7 makes it possible to limit the number of beams at a note to a fixed number of zero to three beams, irrespective of the actual note length.

This is very useful for two-stemmed chords. Actually, the beam object could always be applied twice to two-stemmed chords - however, up to now it looked only at the shorter note length for beaming both stems. With the new options for drawing a fixed number of beams, one can now also draw the correct number of beams for the longer note length.

The additional option to draw zero beams is useful if a two-stemmed chord does not require a beam for its longer note: The beam object now nicely draws the stem for the non-beamed note (which is not drawn by Noteworthy, as overriding the stem to zero removes both stems).

The attached example (also attached to the second posting of the thread for completeness) shows a two-stemmed chord at the beginning of the measure, with two beam objects applied to it: The upper has fixed number of zero beams and therefore only draws the stem for the half note; the lower one takes care of the beam for the eights. However, at the fifth eighth, another two-stemmed chord with a sixteenth tries to interfere. But the beam object for the lower notes here fixes its number of beams to 1, so that no fractional beams for a sixteenth are drawn. In the meantime, yet another beam object connects the four sixteenths on top with two beams.

H.M.
  • Last Edit: 2019-03-28 09:25 am by hmmueller

Re: Beam.hmm (0.8)
Reply #23
A small change in version 0.8 now makes RestChords behave as expected - see the (modified) example in the previous posting.

H.M.

P.S. ... but the spacing of the dot and the notes is not nice. This is probably still a kludge, at least in more complexe cases like these.
  • Last Edit: 2019-03-28 09:40 am by hmmueller

Re: Beam.hmm (0.8)
Reply #24
... and I just found another use for this object with the 0.7 modifications: Creating a double-stemmed chord with different stem lengths (which, AFAIK, NWC does not support out of te box). See attached example!