* BowTIE

Brass Transposition Instruction Environment

Change Log

0.24 (22 May 2004)

*      Unstuck valves in tunes with rests (Bug 909537).

*      Fixed crashing problem when Ghostscript could not be found.

*      Fixed click track introduction for tunes with incomplete first measures.

*      Added popup to request feedback and key entry.

*      Added HTML page to help feedback collection.

0.23 (28 January 2004)

*      Fix font problem in performance window under XP.

0.22 (20 January 2004)

*      Make meaning of valve mapping on performance screen explicit.

*      Allow channel selection for instrument output.

*      Allow metronome device, channel, and sound to be configured.

*      Allow selection of MIDI device for sound output.

0.21 (16 January 2004)

*      Fix problem with playback and performance sound on some systems.

*      Fix bug in .btu file documentation (help).

*      Fix bug in lichtmann.btu file to allow it to open.

*      Add caching feature to make notation previously seen display faster.

0.20 (8 January 2004)

*      Add new BowTIE unit based on Jay Lichtmann's “Transposition Studies.”

*      Update help to include BowTIE unit explanation and to correct other minor errors.

*      Replace yaps with abcm2ps to improve appearance of notation.

*      Reorganize and repackage to reduce confusion and save space.

*      Improve abc parsing to support “>” shorthand, et al.

*      Add File => Save As functionality.

*      Enable optional saving of tune changes (Transpose => Tune).

*      Allow user to rename associated abc files for Transpose => Unit changes.

*      Enable default unit creation from Unit => New.

*      Make the new "Lichtmann Lite" unit the default file to open.

*      Remove score data from .btu file and keep in separate BowTIE data (.btd) file.

*      Add Unit => Clear Scores to allow users to clear all scores from current unit.

*      Provide default buttons for changing valve mappings quickly.

*      Display current valve mappings on the performance screen.

*      Move change log (release notes) off main web page.

0.19 (16 November 2003)

*      Improve abc parsing (RFE 840391).

*      Moved troubleshooting information to the help page.

0.18 (18 October 2003)

*      Fixed bug with unit (.btu) file open that caused BowTIE to crash.

*      Fixed .btu mastery tracking bug.

*      Added content from Methodist hymnal.

*      Added Transpose => Tune support.

0.17 (25 April 2003)

*      Fixed sound problem on some systems with MIDI device conflicts.

*      Added skeleton of mastery definition user interface.

*      Added skeleton of unit definition user interface.

0.16 (19 February 2003)

*      Fixed Ghostscript installation problem in full distribution.

*      Restored TrueType fonts in performance window.

*      Introduced “BowTie unit” (.btu) file support for automatic record keeping. Support for defining BowTIE units is still pending.

0.15 (2 January 2003)

*      Made notation previewer bigger and scrollable.

*      Allowed more lines of notation in performance window.

*      Reduced startup time.

*      Reduced size of setup files.

*      Fixed performance window problem (for real this time).

0.14 (26 December 2002)

*      Fully integrated the tune notation previewer.

*      Fixed problem where performance window would not open on some systems.

*      Improved text appearance in performance window.

*      Moved all .dll files to the BowTIE directory to allow installation on more systems.

0.13 (11 December 2002)

*      Added metronome support.

*      Added “measures for nothing” option to play ticks prior to performance beginning.

*      Added option to start performance with a key stroke or mouse click (addressing issue with tunes that start with open notes).

*      Fixed problem with alternate fingerings.

*      Restored and enhanced performance scoring.

*      Added text support on performance screen.

*      Added instrument graphics to performance screen.

*      Enhanced performance calibration options.

*      Updated online help.

0.12 (25 November 2002)

*      Integrated the notation viewer.

*      Added SDL performance window.

0.11 (10 November 2002)

*      Stopped using AFPL Ghostscript and started using GNU Ghostscript.

*      Switched to more liberal GNU Public License for licensing. (Go ahead and make a million with your own version of BowTIE.)

*      Fixed problem remembering tune being worked from session to session.

*      Added performance calibration options.

*      Included Arban’s “First Studies” in content.



BowTIE was written in Perl, compiled using IndigoSTAR Software’s perl2exe, and packaged using Jordan Russell’s excellent (and free!) Inno Setup. UNIX shells were provided by the good people at Cygwin. BowTIE reads files written in the abc music format (though it probably only reads at about the fifth-grade level at this point).


BowTIE also relies on third-party tools to allow the abc files to be rendered on screen as standard music notation. Jean-Francois Moine’s abcm2ps tool is used for transforming abc files to Postscript. Additional software must be installed to view the Postscript created by abcm2ps. The free GNU Ghostscript, included in the full BowTIE distribution, is required by BowTIE to render PostScript, PDF, and bitmap versions of abc files. While Ghostscript could be used to view notation sets, we recommend using Adobe Acrobat Reader or Ghostgum’s GSview for viewing large BowTIE “units.”


A slightly modified version of the abc2abc tool from James Allwright’s abcMIDI package is included with the BowTIE distribution to transpose abc files.


BowTIE now uses the Simple DirectMedia Layer (SDL) for graphics and low-level input control. It uses Leslie Sanford’s MIDI Wrapper for MIDI support in C++. Freetype and Sam Lantinga’s SDL_ttf are used for fonts.


Nonstandard Perl modules that were crucial to the development of BowTIE include the following:


*      Win32::MIDI by C. Church.

*      Time::HiRes by Jarkko Hietaniemi.

*      Tk by Nick Ing-Simmons with help from many others.

*      Data::Dumper by Gurusamy Sarathy.

*      Proc::Background by Blair Zajac.

*      SDLPerl by David J. Goehrig and others.


Thanks go to these developers and to the Perl community in general for making projects like this one possible. Reinventing wheels is a drag. It is great to have found so many free wheels rolling around for BowTIE.


Thanks go to Jay Lichtmann, principal trumpet in the Hartford Symphony, for providing some free content and words of encouragement.


Per the terms of the GNU General Public License, BowTIE is open-source. My reprehensibly undocumented source code is included in the src directory of the distribution and in SourceForge’s CVS repository. Happy hacking, and sorry the implementation is such a mess. The anemic OO stuff seems like ill-conceived overkill to me now, but I was in a hurry. Brute force was the method of choice, so don’t look for elegance here. Send me mail if you need any clarification.

© 2002-2004 David Randolph and Tim Schellenberg (Ineptisoft)