Saturday, 29 September 2018

Beta Testing 2.6.7.x

Be Beautiful 

The look and feel of scores has always had some optionality, albeit just the ability to squash or expand the space between staff lines and choose the point size of the music. Oh and let’s not forget you could choose between 2 fonts for text and set sizes, weight and so on. Yep, a whole 2! 

So I thought it’s time to put some focus on this and have made two major changes in this area. Firstly you can now use a professional music font instead of the built-in graphics that have always been there. This embedded font is just the first step and in future releases you’ll be able to import any SMuFL compliant font you have access to. Some are commercial, some are free but it will allow you to personalise how your scores look beyond anything else possible today.

To access this please set your Preferences -> Format -> Use Music Font, and then hit OK, and generate a score, the new score will use the new font. Existing scores will not use the font, in case you wanted consistency across all score for now. If you want to migrate an existing score to using the font, I recommend generating a new score, and copying and pasting the contents in, as there would be so many things to manually adjust. If you want to try, set this in the Properties -> Format -> Use Music Font. Point Sizes for the music need changing, also for the time sig music area. bar lines at the right hand side need switching to align right and be moved over …. just all messy - generating new and copy/paste is definitely the way to go. I’ll see if I can write some specific migration code before we go general release.

I’ve added some smaller font sizes in the drop down list in Format -> Music -> Point Size. This is because the point sizes I was using in the inbuilt graphics were actually incorrectly labelled. A size 16 was really a size 12 so to speak. But for consistency, I haven’t changed anything so if you’re continuing to use the inbuilt graphics instead of the font, nothing changes, but if you use the font you’ll probably want to select a smaller size than you’re used to. If only my waistline worked the same way …. if anyone wants to get geeky on what point size means it’s the number 72nds of an inch that a generalised character would consume.

Yeah and text fonts, you can now use any you have on your computer. They will be rendered in any pdf you make from your score. If you send your score file to someone whose computer doesn’t have the font you chose they will get a default boring standard one as before. If you click within the text area you want to change, then use the Format -> Music -> Choose Font … menu item. I haven’t added any scope for colour, if anyone thinks that’s important please shout. Oh and there’s no mixed styling, ie certain characters bold, others plain, others italic, within a text area (because it’s immensely much more work).

Talking of beauty, the beautify tool now considers clefs and time signatures that are embedded in a music area properly. That is to say they get relocated to be the first stall element in a bar, as they should be. Please don’t argue about this one, you set the time signature at the beginning of a bar, not half way through it, so that you know how many beats are in that bar!

Music Layout

This new version isn’t just about cosmetics, there’s some real functional improvements too.

Be Who You Need To Be 

From now on when you generate a new score it will space the staff lines according to the space they need for the music point size chosen. This way you get consistent spacing of staff lines whether a Score has 4 or 6 parts for example. Great news for book authors, as the last thing you need is having to manually resize music areas to try and get that consistency throughout your book.

What you also get by having this consistent staff line spacing is the possibility for automatic creation of new pages when you overflow the size of the music area. Add one staff line too many and a new page will be created. Delete a staff line such all would fit in one music area and it removes the now unneeded pages. This isn’t ready yet, but I’m hoping to complete this before the full release. Most of the underlying changes in the code base to support this are present in the version you’re testing, if you don’t spot weirdness then we’re heading in the right direction.

As always you can set your Preferences such that new scores are generated the old way if you don’t want the consistent staff line spacing in new scores you generate. With this old behaviour though you won’t get the automatic creation of multiple pages if you overflow the music area. This is because by the very definition of resizing the music area to house all staff lines, you never can spill to a second page because it will keep squashing the staff lines into that space.

You can convert existing scores over to this style by loading them up and amending the score Properties to use the new spacing method, by unchecking the Distribute Staff Lines Evenly box in the Format tab.

By The Right!

There’s been a fix for a long standing issue that I personally didn’t like. Bar lines at the end of a staff line didn’t always seem to stick to the right hand side when zooming or changing point size. For the technically minded this was because they were placed according to the percentage along the staff line the start of the bar symbol occupied. You can now tell a bar line to have its location measured by its right hand side. All new scores will be generated with that policy set for bars at the end of a staff line. I recommend that for existing scores you generate a new score and copy and paste the whole score (without bar lines) across and hit beautify to sort it out. There is a way to select and amend the location policy of an individual bar line but it’s finnecky to have to go and do that for each. Select a barline and use Ctrl-m.

Part With It

If you had a part in a score that was repeated, we have had for a while the ability to take the last line of such a part and automagically turn it into a 1st and 2nd time variation, adjusting the bar markers and unison etc.

If you’re using the font, it now displays a bracket across the top of 1st and 2nd time lines with the 1 and 2 embedded. This is more in keeping with what folks are used in the pipe band drumming world. It’s not something regular musicians would recognise, but that’s a fight for another day, hint d/s capo etc.

Also, a second part power tool has been added, you can completely expand a repeated part, i.e. have it written out in full with no repeats, like you would do if you discover that actually only 3 out of 8 bars are the same in the piano and forte so you duplicate the staff lines, adjust the repeat dots on the bars, remove the unison from the notes copied from the piano … or you use the Format -> Music -> Compress/Expand Repeated Parts tool, that does all this for you.

Mind I said instead of converting existing scores to use the font but to generate a new one and copy in the music? Well having these two part power tools it’s now easy to generate a score, adjust whatever parts need writing out in full to be expanded, set up any parts that have repeat variations and so they match exactly the ones you’d handcrafted before (and cursed me for for being so manual to do). Now that your newly generated score has the identical layout to the first copying and pasting the contents is much easier!

Protection Is A Good Thing

It’s been very annoying to have to remember to hit save every so often in case the computer crashes or you switch it off without remembering to save your work. You can now tell Drum Score Editor to continuously save your score. Never again will an edit be lost!

Of course you might not like that, because sometimes you open up a Score to use as a template for a new one and start making changes before doing Save As. If you do that with continuous save switched on your original file will get overwritten as you make those changes so depending how you work this might not be what you want. Before the full release I’ll have created an option for you to journal all the updates you make. As the name suggests this keeps a journal to the side of your original file and should the computer or software crash, the next time you try to open that score you’ll be asked whether to apply the updates in the journal or discard them and use the original score.

Up to you which method you prefer but my intent is to make it so the journalling is switched on by default in this release. You won’t need to do anything to get your scores protected that way, but if you prefer to have continuous saving to the original file then open up Preferences and you’ll find in the General screen all the dials to twiddle to tell it what you want.


Fixed a bug that’s embarrassingly been known to me for a year, where if you have a rest in the middle of a triplet and select the rest and hit the l (lower case L) to force beams under it, then it the note before it would both have a beam and a tail. Yuk. Sorted.

Wednesday, 18 July 2018

Stretch Your Irregular Groups

And your knowledge of them! Sometimes an irregular group means stretch the notes over a longer period rather than the more common "play these notes in the time of a lesser number". This exceptional circumstance we are calling Stretched Irregular Groups. Here’s an example of where that makes sense in a rounded 2/4 hornpipe.
Nice flow, but the last phrase there is pretty staccato when played exactly as written. In pipe bands we’d probably swing that a bit but not by dotting and cutting the first 2 flams in the last bar, that would take away from the rounded hornpipe feel. What we probably want is something that stretches the phrase from the 2nd flam in the last bar and blends it with the run of singles, but how would we write that if not dot and cut? The cut is pushing the second flam too far away and spoiling the rounded hornpipe metre. What we should write in that circumstance is this:

Ah but Drum Score Editor is complaining there’s not enough notes in the bar now, because what we’re trying to say is stretch these 5 notes out over the space of 6 notes. That will give us a little swing but without making it too dot and cut. Musical theory says doing this for a quintuplet is actually allowed, but rare. Not so rare in our pipe band drumming world now I’d say! However Drum Score Editor doesn’t know anything about whether the author intends to make it 5 notes in the time of 4 or 5 notes in the time of 6. In fact how would a human know reading the score? Well it can actually only mean 5 in the time of 6 when written correctly otherwise the bar is short of notes if interpreted as 5 in the time of 4. 

So how do we tell Drum Score Editor when we want the quintuplet, and other irregular groups to have the more rare interpretation of being in the time of a greater number notes, ie that we want to stretch the irregular group instead of the more usual compressing more notes in? Well up until now we couldn’t, because it didn’t support the concept of stretched irregular groups. What we’re adding here is a variation in the keystroke sequences used to create irregular groups. 

When we create an irregular group today we select the group of notes and then hit the appropriate number key, i.e. hit a 5 and you get a quintuplet. But it’s the compressing quintuplet, not the stretching one. To say create a stretching quintuplet use the Ctrl key with the number 5. With Ctrl being pressed at the same time as the number, it tells Drum Score Editor that your intention is that this is a stretched irregular group.

As always you can use undo / redo around this edit, which is in fact a toggle. i.e. if the selected group of notes is already marked as a form of quintuplet it will toggle off the irregular group, otherwise will toggle on the irregular group, as a stretch or compressed depending on whether the Ctrl key is down or not.

Simple Time
Compound Time

Duplet2 in the time of 1, ie subdivision2 in the time of 32 in the time of 32 in the time of 3
Triplet3 in the time of 23 in the time of 43 in the time of 23 in the time of 4
Quadruplet4 in the time of 34 in the time of 64 in the time of 34 in the time of 6
Quintuplet5 in the time of 45 in the time of 65 in the time of 35 in the time of 6
Sextuplet6 in the time of 46 in the time of 86 in the time of 36 in the mite of 12
Septuplet7 in the time of 47 in the time of 87 in the time of 67 in the time of 12
Octuplet8 in the time of 68 in the time of 168 in the time of 68 in the time of 12
Nonuplet9 in the time of 49 in the time of 89 in the time of 69 in the time of 12

Note some of these are impractical, or more properly said so illogical to use in pipe band drumming. Take a quadruplet in a simple time signature, what does 4 in the time of 3 mean in the situation where the normal subdivision is an even number, how do you get 3 notes of equal value that you want to play 4 notes over? If anyone has any knowledge on this subject, especially for the higher numbered irregular groups please shout. 

If this were Sibeius or Finale it would allow any ratio to be expressed, e.g. 4:3 means 4 in the time of 3, so the author has complete freedom. When we need that in pipe band scores I’ll implement it - haven’t seen it once yet. There’s another challenge! has a good explanation of irregular groups.

Version 2.6.6 will be released for testing shortly with this feature added.

Tuesday, 19 June 2018

Drum Score Editor Release Notes 2.6.5

New Features

Floaty Swiss Ghost Notes

Added at the last minute, the capability appeared from nowhere, very spooky. So currently all grace notes are attached to the note that they are gracing. I.E. the little note in a flam is attached to it’s main note, the 3 little notes of a swiss rough are attached to their main note. What this means is if the first note in a bar has grace notes they must be on the right hand side of the bar line. There is no way to move the grace notes before the bar. Some people specifically have a written style where the 3 grace notes of the swiss rough are written before the bar. So we still can’t do that. Well we can, but not in any way other than the sucky hack that this apparition of a feature is. What we’ve done is introduce a ghost note, ie it’s a note you can enter like any other, using i and shift-i for left and right hands, and the ghost note always has a swiss rough attached to it’s invisible main note. It’s main note has no value, so doesn’t upset bar warnings, and beautify doesn’t get a fright either.

So how do you use it? If you want the first note in a bar to be a swiss rough where the grace notes are to go in the bar before, enter the note without a swiss rough in that bar, then go to the previous bar and enter the floaty swiss ghost note. Go try it, spookily it’s easier than it sounds!

Linked Variables in Text Areas

Previously in Drum Score Editor you could always use a % substitution in a text area and it would perform a one time load of the value of the property into the text area. After that if you edited the text area, any changes did not reflect back in the property for example. Similarly changing a property wouldn’t result in the info in the text area changing. Consider the title for example, when you used the New Score Wizard it would ask for the title, it would put it in the properties and in the text area as %title which would result in a one time load of the title and nothing else. Now if a text area is set to a % variable, then it’s linked to the score property it represents, e.g. %title, %author ….

Link Tune Type in New Scores

When a new score is generated the chosen tune type is just text that’s added. There was no connection between the tune type property and the generated text area - now there is, edit the property and the text area on the screen updates, and vice versa.

Auto Increment the Version Number

There’s always been a version number as a property of each score. Nothing happened with it, it was a manual, documentary thing that was just for book keeping purposes. Now we increment the version number (if it’s a number, you can put anything you like in it), on first edit after a score is opened. And if you undo that edit then yep, it tracks all your edits and resets it back. There’s also a variable name you can use in a text area called %version.

Read Only Text Areas

Wanted a read only text area, for data such as the date last updated. What’s this about a date last updated I hear you say? See below, it’s another new thing.

Date Last Updated

Thought it might be useful. Tracks the date the last update to the score was made. You can use it in a read only text area.

External Mono Microphone

Added support for external mono microphones plugged into any orifice your compute permits.

macOS Full Screen Mode

When pressing the maximise button on the main window frame, on macOS the usual behaviour is to use the native full screen mode. We now obey our Apple masters and do as expected.

Sextuplets, Septuplets

Nothing to do with lots of babies. Sometimes some people write two triplets as a sextuplet, well they wanted to but we interpreted wrongly. It now beautifies and warns for bar content properly. Same for septuplets.


  • Made it less error prone when manually pasting a license key in, strips white space from start and end
  • Some tweaks to try and make it a bit prettier. There’s an icon in your face in the middle of the workspace when empty. It scales to fit up to a certain size and the Windows libraries seem to be a bit jaggedy (technical term) but rather than delay more I’ll work on that in the background. Talking of backgrounds on macOS the background is a cool day grey colour but Windows makes it white on my test machine. Not sure why on that but again, more background background work
  • Other updates in this area include making sure the screen location and windows is preserved properly between sessions in the software. It seemed to creep up the screen if not using full screen, and sometimes start in the bottom corner of the screen at some bizarrely minimum size.
  • Should remember if you’ve maximised your window too now

Friday, 5 January 2018

Guest Post: Batch up your PDFs

Greetings fellow Editors.

My name is Owen, you may know me as "that one person out there using git to version control their scores". I've been asked to do a guest post on a feature that's new to DSE 2.6.4: command line export-to-pdf, how to use it and why you might want to.


This is fairly easy. You'll need a licenced copy of DSE, a java runtime environment installed (this is actually optional, see below), and an open command prompt (cmd.exe on Windows or Terminal on Mac/*nix). At your prompt, type the following command:

java -jar <path to DSE jar> createPDF <path to .ds file> <path to .pdf file>

The <path to ...> bits can be either absolute (starting with a / or drive letter), or relative to your current location. You may find it useful to run the command from either the folder holding your .ds files, or the folder you want the .pdf to appear in. I'm on Windows and I like to keep my .ds files separate from the corresponding .pdf files, so I run my command from the folder that contains both the .ds folder and the .pdf folder, and it looks like this:

java -jar "C:\Program Files (x86)\DrumScoreEditor\app\DrumScoreEditor-2.6.4.jar" createPDF Scores\3-4March.ds PDFs\Retreats.pdf

If you don't already have java installed (and don't want to get it), you can invoke the application directly:

<path to DSE executable> createPDF <path to .ds file> <path to .pdf file>

In this case, however, the file paths will need to be absolute.

Let's say you wanted to be a bit lazy, and just name the .pdf file the same as the .ds file (with the appropriate extension, of course!). In that case, you can simply specify a destination directory, and that's what'll happen:

java -jar "C:\Program Files (x86)\DrumScoreEditor\app\DrumScoreEditor-2.6.4.jar" createPDF Scores\3-4March.ds PDFs

Let's say you wanted to be really lazy, and do all the .ds files in a folder, exporting them to .pdf files of the same name. In that case, you can simply specify source and destination directories, and that's what'll happen.

java -jar "C:\Program Files (x86)\DrumScoreEditor\app\DrumScoreEditor-2.6.4.jar" createPDF Scores PDFs

This is actually far more efficient than doing the files one at a time, because the overhead of starting up the program only happens once.


This is a little harder to answer. On its own, this probably isn't going to make anybody's life easier. If you're editing a drum score, then it's actually less effort to go File -> Export -> Export as pdf... than it is to open up a command prompt and do all that typing. But the beauty of being able to run a command to do this is that it opens up possibilities for automation.

I mentioned earlier that I am using git to keep track of the different versions of scores (I assume that mine is not the only band that likes to constantly tweak their scores!). One of the things that git can do is run user-specified sequences of commands when certain things happen, so I have configured my system such that when I'm happy with how the .ds files are, I can have git automatically do the following (using GNU make):

  • Check which files have changed, and only do the next steps for those files that have changed (this is the bread and butter of GNU make)
  • If I have two - or sometimes even three - small tunes in a set, make a new .ds file with those scores on one page (using a program I wrote myself)
  • Convert the .ds files to .pdf files (which is what this post is all about)
  • Merge multiple .pdf files into one - e.g. put a March, a Strathspey, and a Reel into a three-page MSR.pdf (using sejda [])
  • Upload any changed files to Google Drive, so that the corps can download the new score (using gdrive [])

These are all steps that I had to perform manually before setting this up, and it was often error prone; I'd forget to actually export the changed score and I'd end up uploading the same .pdf file to Google Drive, or I'd accidentally merge the .pdf files in the wrong order, or I'd make a change to a score that shares a page with another score but then forget to make the same change in the .ds file of that score alone. Now, however, all this happens automatically, so I have a much smaller chance of making a mistake.

This is really only possible with a command-line way to export a .pdf, which Alan has kindly incorporated into DSE for me in this release. Prior to this I had been using Sikulix ( to do the exports by making the mouse cursor actually do the File -> Export -> Export as pdf... movement, but it's much faster and more reliable to do it this way.

Happy Scoring!