# New Mup Features

## New Features in Mup and Mupmate Version 6.3 (released in 2014)

- The error message for missing endif has been enhanced to tell where the unclosed if, ifdef, or ifndef was begun.
- Three more clefs are supported: 8bass, bass8, and subbass.
- There is a new extendlyrics parameter. If you set this to y, and let Mup derive lyrics time value rather than specifying them explicitly, then when Mup finds a tie or slur, it will automatically add an underscore extender to any corresponding syllables, if that syllable doesn't already end with a dash or underscore.
- The -o option has been enhanced. The odd and even qualifiers can now apply to a range of pages, so you can do things like print the odd pages of one movement inside a file containing multiple movements. There is also a new "reversed" qualifier that will print pages in reverse order. This may be useful for printers that stack output sheets backwards. Also, page ranges can now include a special page number of "blank" that will print a completely blank page at that point. That may be useful, especially when panelsperpage is set to 2.
- There is a new cue parameter that lets you have a long passage of cue notes without having to specify [cue]... over and over.
- Grace notes before a cue sized chord will automatically be made smaller than regular grace notes, and grace and cue can now be specified together, to force smaller grace notes.
- The ho (horizontal offset) can now be applied to grace notes.
- When ending a set of endings, you can now specify openendending or closedendending to override Mup's usual rules for whether to draw the short vertical line at the end of the ending line.
- There is a new exit statement that will cause the rest of the input to be ignored.
- You can now optionally add a y or n flag at the end of the tablature stafflines parameter to force the word TAB to be printed vertically on every score or on no scores, rather than the default of printing it on the first score only.
- There is a new alignped parameter that will allow pedal marks to get closer to the staff, rather than always being aligned across each entire score. Pedal marks are now allowed to have a dist specified, and if alignped is set to n, they can have align specified.
- There is a new Mup macro file in the user-donated programs area, for printing stems on tablature staffs.

## New Features in Mup and Mupmate Version 6.2 (released in 2013)

- There is a new leftspace parameter, that allows you to control what portion of the white space surrounding a chord gets placed on its left side.
- There is a new mode for inputting notes, controlled by the noteinputdir parameter. If, when you have a chord with multiple notes in a voice, you enter the notes in pitch order, bottom-up, or top-down, in this new mode, Mup figures out the correct octave based on the octave of the previous note, which often reduces how much you have to type.
- You can now explicitly tell Mup which voice to use for deriving lyrics time values. That allows you to derive from voice three, or from some completely different staff.
- Since lyrics aren't used in MIDI mode, some lyrics related user errors have been reduced to warnings when run in MIDI mode.
- Unary plus and minus operators are now supported for coordinate arithmetic.
- It is now possible to save and restore the states of macros.
- It is now possible to save and restore the states of parameters.
- The scorepad, scoresep, staffpad, and staffsep parameters can now include a decimal fraction part rather than being limited to whole numbers.
- Phrase marks will now begin and end beside stems rather than at stem ends when appropriate.
- The User's Guide section on parameters now describes where each parameter takes effect, since for some of them, it may not be obvious.
- Lower case letters a-g are now considered as pitches when used as the first character of a chord, for the purposes of transposition and for sorting grids for printing via the gridsatend parameter.

## New Features in Mup and Mupmate Version 6.1 (released in 2012)

- Mup is now available for free, without registration fee, under a BSD-style license. We hope this will encourage many more people to use it, and should clear the way for it to be included in Linux distributions that would otherwise not be willing to include it.
- MIDI commands that have numeric values can now optionally include zero or more intermediate values and an ending value, along with a duration. Mup will then automatically add as many midi commands as necessary to produce smooth gradual changes. This can greatly simplify specifying things like ritards and crescendos.
- Mup is now available as both 32 and 64 bit packages in both .rpm and .deb formats.

## New Features in Mup and Mupmate Version 6.0 (released in 2012)

- Mup now supports custom accidentals. A note may have up to 4 accidentals. Accidentals can use whatever symbols you like, predefined or user defined. You can control how accidentals affect pitch for MIDI. Two "include" files are provided for quarter step accidentals, and for Extended Helmholtz-Ellis Just Intonation Pitch Notation.
- You can set overall tuning to pythagorean or meantone, as alternatives to equal temperament.
- You can shift the overall pitch of notes from the setting of A4 being 440 Hz.
- It is now possible to define keymaps, that allow you to map keys on your computer keyboard to other symbols. This would typically be used to allow typing phonetically on a standard ASCII keyboard, while generating strings in another alphabet, such as Cyrillic or Greek. An example phonetic keymap for Cyrillic is included.
- It is now possible to specify different headers and footers for left and right hand pages.
- There is a new flipmargins parameter, that lets you interchange left and right margins setting on alternating pages. This may be useful for allows extra space for book binding.
- Margin overrides on the newscore command can now be optionally preceded by a plus or minus sign, in which case the value is taken as the amount to add or subtract from the normal margin value, rather than an actual margin value.
- There is a new indentrestart parameter that specifies whether a restart should be indented when it occurs at the beginning of a new score.
- There is a new minalignscale parameter, that allows you to set the limit on how much Mup compresses aligned strings, in its efforts to prevent them from running into the next item at the same alignment level. The limit had previous been fixed at 0.667; this parameter lets you set it from 0.1 (very extreme compression allowed) to 1.0 (no compression allowed at all). A warning is issued for any items that cannot be made to fit within the limit.
- Some additional files are included as part of the standard Mup distribution, that had previously only been available as user-donated files from the Arkkra web site.

## New Features in Mup and Mupmate Version 5.8 (released in 2011)

- The coordinates used on line, curve, print, and similar statements can now be full arithmetic expressions. Operations include addition, subtraction, multiplication, division, modulo, time offset, sqrt, sin, cos, tan, asin, acos, atan, atan2, and hypot.
- Ties and slurs can now be made to a different voice on the staff, rather than only to the same voice. This applies both to ties and slurs from individual notes, and ties and slurs of entire chords.
- The rightmargin override on a newscore or newpage command will now accept "auto" as an alternative to a specific distance. In that case, Mup will calculate the appropriate margin to use, spacing the music based on packexp and packfact parameters, without spreading to fill the line.
- There is a new option of "restsonly" to the vcombine parameter, that will never combine notes, but will combine rests whenever possible.
- There is a new mingridheight parameter. This could be useful if you want to draw empty grids that are taller than the default, or if you just like a different minimum height for grids.
- Location tags can now be set on lyric syllables.
- The restrictions on specifying font or size changes before circled and boxed text have been removed.

## New Features in Mup and Mupmate Version 5.7 (released in 2010)

- Mup now supports nearly the entire set of standard PostScript characters, including the Cyrillic and Greek alphabets, and many more letters with various diacritical marks, as well as math symbols and the Zapf Dingbats font. The maximum number of user-defined symbols has also been raised from 95 to 160.
- You can now specify a grace back up value on the end of things like phrases, just like on the beginning.
- There is a new alternate way of specifying phrases, by putting 'ph' and 'eph' markers in your music input. With this new method, you don't need to count up the number of bars lines crossed or calculate the time offsets; Mup will do that for you.
- There is a new button on the Mupmate Run parameters window, which lets you leave the window visible when saving the values. This could save some time if you are doing lots of runs with small variations in parameters, like printing individual parts from a score.
- There is a new maxmeasures parameter that lets you specify a maximum number of measures to put on any one score.
- The measnum parameter now accepts an additional value of "every N," which will put a measure number on every Nth bar line. The existing parameters for measnumstyle, measmunfont, measnumfontfamily, and measnumsize can be used to control how they look.
- There are new shortcuts for changing to a different font style within the same font family: \f(R) or \f(rom), \f(I) or \f(ital), \f(B) or \f(bold), and \f(X) or \f(boldital).
- When Mup detects an error while expanding a macro, Mupmate will now highlight both the line calling the macro and the line being expanded inside the macro, since it is possible the error could be either place.

## New Features in Mup and Mupmate Version 5.6 (released in 2009)

- Mup for Apple Mac OS X is now supported directly by Arkkra Enterprises, rather than only being available as ported by a user. This includes the same programs as are available for Windows and Linux, including Mupmate and Mupdisp.
- If you run Mupmate on a file that contains errors or warnings, it will now highlight those lines, and will automatically jump to the first line where a problem was detected.
- Mupmate will now append the value of the MUPPATH environment variable to the value set for "Folder for Mup Include files" in the File Locations Configuration page, when looking for "include" files.
- Mupmate will expand environment variables in paths in Preferences, as well as expanding ~ to the home directory of the current user, and ~user to the home directory of the stated user. On Apple OS X, special variables APPL, RSRC, SUPP, DOCS, and HOME are set, if they are not already set to something explicitly by the user.
- There is a new slashesbetween parameter that lets you specify you want two thick slanted lines between scores at the left edge of the staffs. These are often used when there are a lot of staffs, or when the number of scores per page varies, to help the musicians see clearly where the next score begins.
- There is a new bracketrepeats parameter that will draw brackets around repeated sections, to make them more obvious to the performer. This may be helpful when playing in dimly lit areas.
- There is a new repeatdots parameter that will allow you to get an alternate style of repeat signs that uses dots between all lines of the staff, rather than the standard two dots.
- There is a new alignrests parameter that will let you tell Mup to try to align rests with the surrounding notes in their voice, rather than staying as close as possible to the middle of the staff. This parameter can be changed mid-measure.
- A "til" clause can optionally have a stepsize offset, just like the start time can.
- Mup is now much more lenient in allowing tuplets that, strictly speaking, are mathematically incorrect. If you specify the 'n' option, to not print the tuplet number, it will now silently allow almost any summation of time values, and adjust as necessary to fit the total time you say you want the tuplet to take, on the assumption you are just using tuplets as a way to print a cadenza or chant. If you don't use the 'n' option, Mup will still warn you about any tuplets that are not really valid, but will still accept them.
- When you use the three dots to mark attributes in brackets as "good til canceled," any "with" list items will now not be applied to rests, because they are usually things that only make sense on notes (like stacatto or accents).
- The MIDI channel command will now output a channel prefix meta event, in addition to remembering the channel for future MIDI events.

## New Features in Mup Version 5.5 (released in 2008)

- There is a new emptymeas parameter. By default, Mup uses "ms;" (measure space) for any voices for which no music input is given, but often it would be handy to have it fill in a measure rest instead. You can do that by setting this parameter to "mr;" but this parameter is actually much more general, allowing you to specify any valid music input. So, for example, if you have a measure long pattern that it used frequently, you can set this parameter to that pattern, and Mup will then fill it in for you anywhere you don't explictly provide something else.
- The staff and voice contexts can now apply to a list of staffs or voices rather than just one.
- There are three new optional values to the stemshorten parameter that let you control how Mup shortens stems that protrude from the staffs.
- It is now possible to force stem direction on grace notes, just like on non-grace.
- There are new parameters to control the appearance of text "with" lists: withfont, withfontfamily, and withsize.
- It is now possible to specify a list of "with" items on rests as well as on notes.
- MIDI processing now applies legato marks by effectively setting the release to zero for those notes. (It had already applied staccato, wedges, and the combination of legato marks and staccato in previous versions of Mup.)

## New Features in Mup Version 5.4 (Released in 2007)

- It is now possible to define user defined symbols, and also to override the appearance of the builtin music symbols.
- There is now an index for the HTML version of the User's Guide, like for the PostScript version.
- There is a new lyricsdist parameter to control how close lyrics can be placed to staffs.
- Parameters that control distance from the staff (dist, chorddist, dyndist, and lyricsdist), and well as the dist on tempo and dynamic marks, etc. can now include a deicmal fraction part, rather than being restricted to whole numbers.
- There is a new maxscores parameter, that lets you set a maximum number of scores to print per page.
- There is a new useaccs parameter to let you tell Mup to print without printing a key signature, but fill in accidentals as needed to make the notes match the key signature, or to use a notation style where all accidentals are explicitly shown.
- There is also a new carryaccs parameter to let you tell Mup whether you want it to follow the normal convention that accidentals carry through to the end of the current measure (or until explicitly changed), or whether you want accidentals to apply only to the chord where they are specified.
- There is a new measnumstyle parameter that lets you control whether the measure numbers placed at the beginning of scores (as turned on by the measnum parameter) are placed inside boxes or circles or left plain.
- Failure to provide enough chords, rests, spaces, or lyrics in a measure to add up to the time signature has been changed from an error to a warning, with Mup supplying enough space to fill out the measure. This may be useful if you are still in the middle of composing, but want to look at what you have so far, even though you are only partly done with a measure. It could also be useful when entering chant or other music with an erratic number of beats between bar lines. You could just set a time signature larger than the largest "measure" you will have, and fill in as many notes as you need in each measure. Various other things that used to be treated as errors have also been relaxed to be only warnings, to be more forgiving of some typos, or things that while not strictly correct, can be safely ignored.
- When there are multiple voices overlapping, notation experts generally agree that all accidentals should be placed left of the leftmost voice. There used to be a few cases where Mup placed them between voices when that was not strictly necessary. This has been changed to only place accidentals between voices when absolutely necessary to avoid ambiguity: when voices have conflicting accidentals.
- There is a new align tag that can be applied to rom, ital, bold, boldital, and crescendo and decrescendo marks, to force several such items to be aligned vertically.

## New Features in Mup Version 5.3

Version 5.3 is primarily focused on ease of use enhancements. The largest item is the additional of a companion program, called Mupmate, that provides an interface for editing, displaying, and playing Mup files with the kinds of menus and windows that many people are used to. The Help menu will take you right to the Mup User's Guide, which has also had improvements made. If you are a user who prefers the command line interface that Mup has always had, don't worry; we like to use that too, and have no intention of dropping support for it.

Windows users now only need to download a single file and execute it to install everything (although you still need to get and install GSview and Ghostscript separately, if you want to use that for viewing the PostScript files). Other users can also just download a single file that contains both program and documentation.

Other new features in 5.3 include:

- Error and warning messages have been enhanced to show you the text of the line of input where the problem was found.
- There is a new pagesize parameter that lets you specify paper size by common names like letter or a4, as an alternate to specifying pageheight and pagewidth in inches or cm.
- There is a new vcombine parameter, that lets you enter notes on separate voices, yet have them printed on a common stem when possible. Typical uses are:
  - To have separate MIDI tracks for different voices, yet have the voices printed on common stems.
  - For a style of printing where a single stem is used for the two voices on a staff except when the voices share a common note, when two opposing stems are printed.
- The scorepad parameter now accepts an optional maximum value, in addition to the minimum value.

## New Features in Mup Version 5.2

- There is now a generalized 'if' clause' that is much more flexible and powerful than the simple ifdef and ifndef. These provide capabilities somewhat similar to the preprocessors for the C and C++ languages.
- Complicated time signatures are now supported. This includes a numerator with two or more numbers added together, like 3+4 / 4, or two or more fractions added together, like 3/4 + 3/8. Alternating time signatures, such as when a piece continuously switches between 3/4 and 6/8, are also supported.
- The beamstyle and timeunit parameter values associated with a time signature are now remembered, so that if you later change back to the same time signature, you don't have to also set the beamstyle and timeunit at the same time; the value used previously for that time signature will be restored automatically. (Note that if you have existing Mup files that rely on the old behavior, they may need small modifications, but that should be rare.)
- It is now possible to force stem directionon voices 1 and 2 even when the other voice is not space.
- Improvements have been made to how the angle for beams is calculated. The "best" angle for a beam is sometimes somewhat subjective, but in general, these changes will result in more cases where beams are horizontal or less sloped,
- There are also additional ways you can control beams: A new slope interchord attribute lets you force a specific slope. The new stemshorten parameter lets you determine how much a chord's stem is allowed to be shortened when it is beamed. And the existing len chord attribute can now be set for just one end of a beamed set of chords as an alternative to setting it at both ends.
- The HTML version of the Mup User's Guide now includes 'next page' and 'previous page' links on each page.

## New Features in Mup Version 5.1

- You may specify a time value that is the summation of several time values. This can be used to obtain beaming, lyrics, or tuplets with durations that cannot be represented with a single time value, like a half note plus an eighth note. It also gives an alternate way to specify chord ties.
- Cross-staff stems are now supported.
- You can now explicitly specify a direction of "up" on rolls to get an upward arrow drawn at the top of the roll. (Before, only a downward roll would get an arrow.)
- Mup will now allow you to beam across spaces as well as rests.
- There is a new restsymmult parameter. Setting it to y will cause Mup to use an alternate style for multirests of eight measures or less, which uses rest symbols.
- There is a new string sequence that will be replaced by the page number of the last page. This may useful to be able to automatically get output like "Page 2 of 4 pages."
- There is a new option for printing of tuplet numbers, where the number is always printed, but the bracket is never printed.
- If you want to have the same lyrics above some staffs and below others, it is now possible to specify that on a single input line, rather than requiring two.
- Improvements have been made to how voice 3 is placed, which will often eliminate the need to manually specify a horizontal offset.

## New Features in Mup Version 5.0

- Mup now supports the shaped notes often used in "Sacred Harp" music, also sometimes called "fasola" notation. New note head characters are available for the most common system of 4 shapes, as well as a system with 7 shapes. As part of this feature, there is a new headshape context and a new noteheads parameter that lets you define what shapes will be used for notes.
- Note head shapes can also be specified on specific chords or a specific note within a chord. This makes it possible to do things like have both normal and X-shaped notes on the same stem.
- There are new "slash" note heads, often used to indicate repeated chords, and a new "blankhead" note head, that can be used if you just want a stem without any note head.
- There is a new stemlen parameter that lets you set the default stem length. A common use for this would be to set this parameter to 0.0, to not have any stems at all (sometimes used for chant).
- It is now possible to change the clef, defoct, and release parameters in the middle of a measure.
- You can now include raw PostScript in the input to the copied to the output. This could be used, for example, to include a picture or logo with your music.
- In addition to the old way of specifying key signature, by stating the number of sharps or flats, it is now possible to specify the key by name, as in "a major" or "c# minor."
- There is a new swingunit parameter. Some styles of music are often written with straight eighth notes or dotted-eighth-sixteeen notations, but where the players "know" that the composer really wants the music played with the first note in each pair twice as long as the second, as if it were a quarter-eighth triplet. This parameter will make Mup's MIDI output automatically follow that kind of performance convention.
- It is possible to set the rehearsal letter or number to a specific value, to override the automatic incrementing. This might be especially useful when there are multiple songs or movements in a single Mup file.

## New Features in Mup Version 4.6

- There are new top, bottom, top2, and bottom2 contexts that let you define a second layer of headers and footers. These new contexts can be changed multiple times in a file, so you can use different headings and footing for different songs or movements within a file.
- There is a new "block" context, that lets you place blocks of text in your musical scores.
- There is a new paragraph command for printing long sections of text that you would like to have automatically wrapped around unto as many lines as needed. The right margin can be justified or ragged.
- For Linux, in addition to being available in tar.gz format, Mup files are now available in rpm package format, for very quick-and-easy installation. The MS-DOS/Windows Mup files are now available as self-extracting zip files, so you don't need to have an unzip program to unpack them.
- The visible parameter now accepts a value of "whereused." With this value, when a staff has no notes on an entire score, that staff is not printed. This might be used, for example, to save paper on an orchestral score by only printing staffs for instruments when they are actually playing.
- There are new parameters measnumfont, measnumfontfamily, and measnumsize, to control the appearance of automatic measure numbers.
- It is now possible to unset parameters in voice or staff context, to make them revert to their values in the next more general context where they are set (staff or score).
- When a repeatstart gets moved to the beginning of a score, sometimes you'd like the bar line at the end of the previous score to be a double bar rather than single bar. It is now possible to specify that.
- There is a new -F option that is like the -f option, except it derives the name of the output file based on the name of the input file, rather than you needing to specify an output file name.
- The Mup input file name is given in the PostScript output file, so that PostScript viewer programs like gv can use it in their window title.
- There is now a majordomo mailing list available for registered Mup users. This is a forum for talking with other Mup users, to discuss questions and tips on using Mup.

## New Features in Mup Version 4.5

- There is a new -x option that lets you extract a portion of a song. This can be especially useful for MIDI, where you might want to listen to just a few measures in the middle or end of a piece. But it also works in printing mode, so you can print just an excerpt of a piece.
- It is now possible to specify "subbeams," both with custom beaming and via the beamstyle parameter. This can be used when there are a lot of very short notes, and you want to subdivide the beam groupings.
- The drawing of phrase marks, ties, and slurs has been re-implemented to produce more aesthetically pleasing curves.
- There is a new special character, called \(space), which is printed like a normal space on output, but which is not treated like a space when Mup is looking for word or syllable boundaries. The most common use for this would probably be on chant lyrics, where you want several words to be sung to the same note. It might also be useful in cases where Mup would normally split a long string at a word boundary to avoid running off the edge of a page, but for some reason you want to prevent that splitting.
- It is possible to print a text string centered above a line. This is likely to be the most useful for printing "gliss." by a wavy line for a glissando, but it can be used on any kind of line.
- There are some new user-donated files, including a Windows installer, and Mup syntax files for nedit and vim.

## New Features in Mup Version 4.4

- Many of the changes in this release were to make Mup conform more closely with established guidelines or rules for musical notation. This mainly involved small adjustments to cosmetic details, like how accidentals and dots are placed. For mid-score clef changes, the clef is now placed before the barline, as it should be, rather than after. There is also an improved algorithm for determining where to end the underscores on lyrics.
- The use of labels, both labels associated with individual staffs and labels associated with staffs grouped by braces or brackets, has been made more flexible. It used to be that the "label" was only used on the very first score, with "label2" used on all subsequent scores. Thus resetting label after the beginning really had no effect. Now, however, whenever a new label is specified, that label will be used for the next score, going back to label2 for subsequent scores. As an example, this might be useful if staff 1 was used for just soprano at the beginning of the song, so you wanted label="Soprano" and label2="S" for that portion, but later soprano and alto share the staff, so you would like label="Soprano/alto" to clearly point out the change, but then revert to just "SA" on subsequent staffs, to conserve space.
- You can specify a bulge direction for note ties, note slurs, chord ties, and chord slurs, if you wish to override Mup's choice of direction.
- You can now use \s(PV) or \s(previous) in a text string to return to the previous size.
- The 8treble clef is now supported. This is like the treble8 clef, except the 8 is printed above the G clef rather than below it, to show notes that sound an octave higher than a normal treble clef.
- Phrase marks can now have an optional line type modifier of dotted or dashed.

## New Features in Mup Version 4.3

- There is a new rehstyle parameter that controls whether rehearsal marks are boxed, circled, or plain.
- It is no longer necessary to specify verse numbers for lyrics (unless you want to skip a verse). If not specified, each succeeding set of lyrics for a given staff and place defaults to having a verse number one more than the previous verse.
- There is a new way to force the position of individual lyrics syllables that is particularly useful for ensuring that verse numbers or the beginnings of poetic lines align consistently on all verses.
- There are new -E and -C options that let you see how macros expand, which can help you in debugging very complex macros.
- There is a new staffpad parameter, and the value of the scorepad parameter can now be negative. Using negative values for these can let you jam staffs or scores closer together in cases where Mup is spacing them wider apart than is really necessary.
- It is now possible to have more than one voice on tablature staffs just like on non-tablature.
- It is now possible to temporarily override margins on a particular score. This can let you indent one score differently than the others, or end a piece with a shorter-than-normal score.
- There is now an "alt pedstar" value for the pedstyle parameter This is like the "pedstar" value except that when there is a pedal "bounce," only a "Ped" is printed, rather than a "* Ped."
- There is a new user-donated program called Winmup which provides a Windows front-end for the MS-DOS version of Mup. The Visual Basic source code for Winmup is also available.
- Several miscellaneous changes were made to improve the quality of printed output and to improve portability. Current Mup users may find the layout of some songs may change somewhat when they upgrade.

## New Features in Mup Version 4.2

- A third voice per staff is now supported.
- It is now possible to adjust the horizontal placement of notes.
- It is now possible to beam across rests.
- The optional automatic measure numbers at the beginnings of scores are now printed in a larger size.
- The chord-at-a-time input style has been made more versatile. Previously, if a voice was mentioned in a pattern, that voice could not be used for voice-at-a-time input style in that measure, even if the pattern was never actually used. Now the restriction only applies if the pattern is actually used.
- Strings can be printed enclosed in a circle or elipse.
- There is a new beamslope parameter that controls the maximum tilt for beams.
- There is a new pad parameter that provides an additional way to control how close together note groups are placed horizontally.
- There is a new MIDI "port" keyword. This can let you assign different tracks to different ports on multi-port MIDI devices, allowing for more than 16 channels.
- The minimum values for the scoresep and staffsep parameters can now be set as low as 6, rather than the previous minimum of 9.

## New Features in Mup Version 4.1

- Guitar grids can now be printed, either where they are used in the music, or summarized at the end of a song. There is also a library of pre-defined grids that you can "include" in your music.
- Non-ASCII characters from the Latin-1 alphabet can now be typed directly into strings in Mup input, rather than needing to be specified by name. Shortcut names have also been added for guillemots.
- The maximum number of staffs has been raised to 40.
- The stafflines and staffscale parameters can now be changed at any bar line rather than only at the beginning of a song. Changing either of them forces a new score.
- The staffsep parameter can now be set on a per-staff basis, rather than just for the score as a whole.
- There are new parameters that allow you to control the order that items above, below, and between staffs are stacked.
- It is now possible to turn off the automatic numbering of measure repeats and the printing of multirest numbers.
- It is now possible to specify the vertical placement of a rest character, if you want to override Mup's automatic placement.
- It is now possible to concatenate strings. This is likely to be most useful in macros, but can be used anywhere strings are used.
- There is a new firstpage parameter, which is similar to the -p command line option, for setting the first page number.
- There is a new restcombine parameter, which is similar to the -c command line option, for automatically combining a sequences of rest measures into multirests.
- Music symbols that occur inside ital or boldital strings will automatically be made italics to match the string.
- It is possible to vertically center lyrics. This is useful when there is a refrain with identical words for all verses, and you only want it printed once.
- It is now allowed to have a brace to the left of brackets, to group a subset of staffs. (Previously, only brackets were allowed to be nested that way.)

## New Features in Mup Version 4.0

- There is now an alternate input style, in which you can enter music a chord at a time rather than a voice at a time. For certain kinds of music, this may be more natural, and allow you to enter music more quickly. The previous input style has also been made more flexible, such that it is now possible to specify that one line of input will go to voice 1 on one staff or set of staffs and voice 2 on another staff or set of staffs. These enhancements make it easier to do things like input a vocal score and automatically get a piano reduction.
- It is now possible to transform a parameter passed to a macro into a string. If you are a C programmer, you will find this works somewhat like the # operator of ANSI C preprocessor macros. If you're not a C programmer, suffice it to say that this allows Mup macros to be used to do things they couldn't do before.
- There is a new special bar type, called restart, that lets you end the current set of staffs and begin a new set of staffs on the same line, as is sometimes done for a short coda.
- The symbols for accidentals (like # and &) are now translated to their corresponding musical symbols everywhere in chords, rather than only if they immediately follow the letters A through G. You can, however, turn off this automatic translation for individual cases where you want them to be treated literally.
- Quadruple whole rests are supported.
- It is possible to force a measure rest to be shown with a rest symbol other than the whole rest symbol that is usually used.
- There is a new addtranspose parameter. This enables you to use the transpose parameter to change the transposition on specific staffs for transposing instruments, then use addtranpose to transpose the entire score into a new key.
- There is a new warn parameter which allows you to control whether warning messages are printed or not.
- There is a new ontheline parameter. This allows you to control whether notes on 1-line staffs are printed above, below, or on the line.
- The dist and chorddist parameters can be overridden on individual items. A dist override can also be specified on rehearsal marks. Each dist override can also include a modifier to force items to a specific place, even if they then overwrite other items that Mup would normally avoid.
- There is a new -M option which is like the -m option, except the name of the MIDI file is derived from the Mup input file name, rather than requiring you to supply a name.
- If a given input file name does not exist, Mup will try appending .mup to the name and attempt to open that file.
- It is now possible to specify an uncollapseable space. This may be useful when drawing "slash" marks and at other times.
- There is a new user-donated program called midi2mup, which is a Perl script that can convert a MIDI file to Mup input.
- The uguide gives examples of how to places verses as text blocks below the scores.

## Coming Attractions

We're always interested in hearing about what features you would like to see in the next version of Mup. What features we add will depend on your input, so please send us a note at support@arkkra.com.